diff --git a/packages/devui-vue/devui-cli/commands/build-volar-support.js b/packages/devui-vue/devui-cli/commands/build-volar-support.js new file mode 100644 index 0000000000..9aec318920 --- /dev/null +++ b/packages/devui-vue/devui-cli/commands/build-volar-support.js @@ -0,0 +1,67 @@ +const path = require("path"); +const { + buildComponentItem, + buildGlobalDTSEnd, + buildGlobalDTSStart, + buildComponents, + buildDirectiveItem, + buildDirective, + buildServiceItem, + buildService +} = require('../templates/dts'); +const { writeFileSync } = require('fs'); +const { useRelationTree } = require("../composables/use-relation-tree"); +const { bigCamelCase } = require('../shared/utils'); + +/** + * @param {Record} replaceIdentifier + * @param {string[]} readyToReleaseComponentName + */ +exports.volarSupport = (replaceIdentifier, readyToReleaseComponentName) => { + const componentDTSItem = []; + const directiveDTSItem = []; + const serviceDTSItem = []; + const componentPath = readyToReleaseComponentName.map((name) => path.resolve('./devui', name, 'index.ts')); + const tree = useRelationTree(componentPath); + tree.forEachChild((foldNode) => { + foldNode.forEachChild((node) => { + let nodeName = node.name.replace(/\$/gim, '').replace(/directive/gim, ''); + let reference = nodeName; + const needToTransform = replaceIdentifier?.[foldNode.name]?.[node.name] !== undefined; + if (!node.isComponet){ + const hasType = new RegExp(node.type, 'gim'); + if (!hasType.test(reference)){ + reference += `-${node.type}`; + } + reference = bigCamelCase(reference); + } + if (needToTransform){ + reference = replaceIdentifier[foldNode.name][node.name]?.['reference']; + nodeName = replaceIdentifier[foldNode.name][node.name]?.['exportKey']; + } + if (node.type === 'component'){ + componentDTSItem.push(buildComponentItem(bigCamelCase(nodeName), reference)); + } + if (node.type === 'directive'){ + directiveDTSItem.push(buildDirectiveItem(nodeName, reference)); + } + if (node.type === 'service'){ + serviceDTSItem.push(buildServiceItem(nodeName, reference)); + } + }); + }); + const template = ` +${buildGlobalDTSStart()} +${buildComponents(componentDTSItem.join('\n'))} +${buildDirective(directiveDTSItem.join('\n'))} +${buildService(serviceDTSItem.join('\n'))} +${buildGlobalDTSEnd()} +`; + try { + writeFileSync('./build/global.d.ts', template); + } catch (e) { + console.log(e.message); + return false; + } + return true; +}; diff --git a/packages/devui-vue/devui-cli/commands/build.js b/packages/devui-vue/devui-cli/commands/build.js index 7e4d457e26..3fb2bb74ec 100644 --- a/packages/devui-vue/devui-cli/commands/build.js +++ b/packages/devui-vue/devui-cli/commands/build.js @@ -6,7 +6,11 @@ const vue = require('@vitejs/plugin-vue'); const vueJsx = require('@vitejs/plugin-vue-jsx'); const nuxtBuild = require('./build-nuxt-auto-import'); const { isReadyToRelease } = require('../shared/utils'); - +const { execSync } = require('child_process'); +const { volarSupport } = require('./build-volar-support'); +const logger = require('../shared/logger'); +const replaceIdentifierPath = path.resolve(__dirname,'../replaceIdentifer.json'); +const replaceIdentifier = JSON.parse(fs.readFileSync(replaceIdentifierPath).toString()); const entryDir = path.resolve(__dirname, '../../devui'); const outputDir = path.resolve(__dirname, '../../build'); @@ -67,7 +71,8 @@ const createPackageJson = (name) => { "version": "0.0.0", "main": "index.umd.js", "module": "index.es.js", - "style": "style.css" + "style": "style.css", + "types": "../types/${name}/index.d.ts" }`; fsExtra.outputFile(path.resolve(outputDir, `${name}/package.json`), fileStr, 'utf-8'); @@ -81,15 +86,31 @@ exports.build = async () => { const isDir = fs.lstatSync(componentDir).isDirectory(); return isDir && fs.readdirSync(componentDir).includes('index.ts'); }); - + const readyToReleaseComponentName = []; for (const name of components) { if (!isReadyToRelease(name)) { continue; } + readyToReleaseComponentName.push(name); await buildSingle(name); createPackageJson(name); nuxtBuild.createAutoImportedComponent(name); } - + // 生成global.d.ts + try { + execSync(`pnpm run build:components:dts`); + } catch {} nuxtBuild.createNuxtPlugin(); + logger.success('准备生成global.d.ts'); + const volarSupportbuildState = volarSupport(replaceIdentifier, readyToReleaseComponentName); + fs.writeFileSync('./build/index.d.ts', ` +export * from './types/vue-devui'; +import _default from './types/vue-devui'; +export default _default; +`); + if (volarSupportbuildState){ + logger.success('global.d.ts生成成功'); + } else { + logger.error('global.d.ts生成失败, 因为发生错误'); + } }; diff --git a/packages/devui-vue/devui-cli/composables/use-extra.js b/packages/devui-vue/devui-cli/composables/use-extra.js new file mode 100644 index 0000000000..3d301395cf --- /dev/null +++ b/packages/devui-vue/devui-cli/composables/use-extra.js @@ -0,0 +1,57 @@ +const ts = require('typescript'); +/** + * + * @param {string} code node full text. + * @returns {RegExpMatchArray | null} + */ +function extraComponentName(code){ + const regexp = /app\.component\(((?.*)\.name), (?.*)\)/; + const groups = regexp.exec(code)?.groups; + if (groups?.components){ + return groups.components; + } +} +/** + * + app.directive('file-drop', fileDropDirective); + * @param {string} code + */ +function extraDirective(code){ + const regexp = /app\.directive\('(?.*), ?(?.*)\);/; + const groups = regexp.exec(code)?.groups; + if (groups?.fileName){ + return groups.fileName; + } +} + +function extraGlobalProperties(code) { + const globalPropertiesReg = /app\.config\.globalProperties\.(?\$.*) = (?.*);/; + const provideReg = /app\.provide\((?.*)\..*, ?new? ?(?.*)\((?.*)\);/gm; + const groups = globalPropertiesReg.exec(code)?.groups || provideReg.exec(code); + if (groups?.serviceName){ + return groups.serviceName; + } +} + +function extraValue(code){ + return extraComponentName(code) ?? extraDirective(code) ?? extraGlobalProperties(code); +} +/** + * + * @param {string} code + */ +function extraType(code){ + const isDirective = /app\.directive/.test(code); + const isComponent = /app\.component/.test(code); + const isGlobalProperties = /app\.config\.globalProperties/.test(code); + const isProvide = /app\.provide/.test(code); + if (isDirective) {return 'directive';} + if (isComponent) {return 'component';} + if (isGlobalProperties || isProvide) {return 'service';} +} + +exports.extra = extraValue; +exports.extraType = extraType; +exports.extraDirective = extraDirective; +exports.extraComponentName = extraComponentName; +exports.extraGlobalProperties = extraGlobalProperties; diff --git a/packages/devui-vue/devui-cli/composables/use-relation-tree.js b/packages/devui-vue/devui-cli/composables/use-relation-tree.js new file mode 100644 index 0000000000..794d045ad8 --- /dev/null +++ b/packages/devui-vue/devui-cli/composables/use-relation-tree.js @@ -0,0 +1,159 @@ +const ts = require('typescript'); +const { extra, extraType } = require('./use-extra'); +const {readFileSync} = require('fs'); + +class componentNode { + /** + * + * @param {String} name componentName + * @param {Boolean} ready + */ + constructor(name){ + this.name = name; + /** @type {componentNode} */ + this.children = []; + this.type = ''; + this.isComponet = false; + } + /** + * + * @param {(node: componentNode) => void} callback + */ + forEachChild(callback){ + for (const child of this.children){ + callback(child); + } + } +} + +class componentRelationTree{ + constructor(){ + /** + * @type {componentNode} + */ + this.root = new componentNode('root'); + } + /** + * + * @param {componentNode} node component relation Node. Used to describe the relationship between components + */ + insert(node){ + if (!this.#_hasSameNode(node)){ + this.root.children.push(node); + } + } + /** + * + * @param {componentNode} node + * @param {componentNode | componentNode[]} child + */ + insertChild(node, children){ + if (this.#_hasSameNode(node)){ + for (const child of this.root.children){ + if (child.name === node.name){ + if (children instanceof Array){ + child.childen.push(...children); + } else { + child.children.push(children); + } + } + } + } + } + /** + * + * @param {string} name component name + * @return {componentNode} + */ + find(name){ + for (const child of this.root.children){ + if (child.name === name){ + return child; + } + } + } + /** + * + * @param {componentNode} node + * @return {Boolean} + */ + #_hasSameNode(node){ + let idx=0; + let hasSame = false; + while (this.root.children.length !== idx){ + /** @type {componentNode} */ + const child = this.root.children[idx++]; + hasSame = child.name === node.name; + } + return hasSame; + } +} + +/** + * @param {string} indexPath + * @return {string} + */ +function readIndexFile(indexPath){ + return readFileSync(indexPath).toString(); +} +/** + * + * @param {string[]} componentPaths component fold paths + */ +exports.useRelationTree = function (componentPaths){ + /** + * @type {ts.SourceFile[]} + */ + const tsPrograms = []; + const tree = new componentRelationTree(); + tree.root.type = 'root'; + for (const path of componentPaths){ + tsPrograms.push(ts.createSourceFile('', readIndexFile(path))); + } + for (const program of tsPrograms){ + /** + * @type {ts.ExportDeclaration[]} + */ + const sourceFile = program.getSourceFile(); + program.forEachChild((node) => { + if (ts.isExportAssignment(node)){ + /** + * @type {ts.ObjectLiteralElement} + */ + const exportObject = node.getChildAt(0, sourceFile); + /** @type {ts.Node[]} */ + const properties = exportObject.parent.expression.properties; + /** @type {componentNode} */ + let componentTreeNode; + properties.forEach((property) => { + if (ts.isPropertyAssignment(property)){ + const Identifier = property.getChildAt(0, sourceFile).getText(sourceFile); + const value = property.getChildAt(2, sourceFile).getText(sourceFile); + if (Identifier === 'title'){ + componentTreeNode = new componentNode(value.split(' ')[0].slice(1), true); + } + } else { + /** @type {ts.MethodDeclaration} */ + const method = property; + /** @type {ts.Block} */ + const block = method.body.getChildAt(1, sourceFile); + const blockChildren = block.getChildren(sourceFile); + for (const child of blockChildren){ + const childCode = child.getFullText(sourceFile); + const nodeName = extra(childCode); + const nodeType = extraType(childCode); + const childNode = new componentNode(nodeName); + childNode.type = nodeType; + childNode.isComponet = nodeType === 'component'; + if (nodeName){ + componentTreeNode.children.push(childNode); + } + } + } + }); + tree.insert(componentTreeNode); + } + }); + } + return tree.root; +}; diff --git a/packages/devui-vue/devui-cli/replaceIdentifer.json b/packages/devui-vue/devui-cli/replaceIdentifer.json new file mode 100644 index 0000000000..938a6cdf00 --- /dev/null +++ b/packages/devui-vue/devui-cli/replaceIdentifer.json @@ -0,0 +1,36 @@ +{ + "Modal":{ + "Modal":{ + "exportKey": "Modal", + "reference": "Modal" + }, + "Body":{ + "exportKey": "ModalBody", + "reference": "Modal" + }, + "Header":{ + "exportKey": "ModalHeader", + "reference": "Modal" + }, + "Footer":{ + "exportKey":"ModalFooter", + "reference": "Modal" + } + }, + "ImagePreview":{ + "$imagePreviewService":{ + "exportKey": "imagePreviewService", + "reference": "ImagePreviewService" + }, + "ImagePreviewDirective":{ + "exportKey": "DImagePreview", + "reference": "ImagePreviewDirective" + } + }, + "Message":{ + "$message":{ + "exportKey": "message", + "reference": "Message" + } + } +} diff --git a/packages/devui-vue/devui-cli/templates/dts.js b/packages/devui-vue/devui-cli/templates/dts.js new file mode 100644 index 0000000000..0fcb1f9a6b --- /dev/null +++ b/packages/devui-vue/devui-cli/templates/dts.js @@ -0,0 +1,39 @@ +exports.buildGlobalDTSStart = () => { + return ` +export{} +declare module '@vue/runtime-core' {`; +}; +exports.buildComponentItem = (componentName, key='') => { + return `D${componentName}: typeof import('./types/vue-devui')['${key || componentName}']`; +}; +exports.buildDirectiveItem = (directive, key='') => { + return `v${directive}?: typeof import('./types/vue-devui')['${key || directive}']`; +}; +exports.buildServiceItem = (service,key='') => { + return `$${service}?: typeof import('./types/vue-devui')['${key || service}']`; +}; +exports.buildGlobalDTSEnd = () => { + return ` +}`; +}; +exports.buildComponents = (componentString) => { + return ` + export interface GlobalComponents{ + ${componentString} + } +`; +}; +exports.buildDirective = (directiveString) => { + return ` + export interface ComponentCustomProps { + ${directiveString} + } +`; +}; +exports.buildService = (serviceSting) => { + return ` + export interface ComponentCustomProperties{ + ${serviceSting} + } +`; +}; diff --git a/packages/devui-vue/package.json b/packages/devui-vue/package.json index fdd2e98a9e..f8ed8da7b3 100644 --- a/packages/devui-vue/package.json +++ b/packages/devui-vue/package.json @@ -30,6 +30,7 @@ "test": "jest --config jest.config.js", "coverage": "jest --config jest.config.js --coverage", "build:components": "node ./devui-cli/index.js build", + "build:components:dts": "vue-tsc --declaration --emitDeclarationOnly", "generate:theme": "node ./devui-cli/index.js generate:theme", "generate:dts": "node ./devui-cli/index.js generate:dts", "release": "node ./devui-cli/index.js release", @@ -71,6 +72,7 @@ "@types/chalk": "^2.2.0", "@types/commander": "^2.12.2", "@types/jest": "^26.0.24", + "@types/node": "^16.11.6", "@types/ora": "^3.2.0", "@typescript-eslint/eslint-plugin": "^4.27.0", "@typescript-eslint/parser": "^4.27.0", @@ -98,6 +100,6 @@ "vite-svg-loader": "^2.2.0", "vitepress": "0.20.1", "vitepress-theme-demoblock": "1.3.2", - "vue-tsc": "^0.2.2" + "vue-tsc": "0.38.8" } } diff --git a/packages/devui-vue/tsconfig.json b/packages/devui-vue/tsconfig.json index 76123c6a8e..122331aa8d 100644 --- a/packages/devui-vue/tsconfig.json +++ b/packages/devui-vue/tsconfig.json @@ -13,7 +13,9 @@ "paths": { "hooks/*": ["./devui/shared/hooks/*"], "@devui/*": ["./devui/*"], - } + }, + "declaration": true, + "declarationDir": "build/types", }, "include": ["devui/**/*.ts", "devui/**/*.d.ts", "devui/**/*.tsx", "devui/**/*.vue"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a66467927..22774e8054 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 importers: @@ -36,7 +36,7 @@ importers: lint-staged: 11.2.6 npm-run-all: 4.1.5 stylelint: 13.13.1 - stylelint-config-recommended-scss: 4.3.0_d55469ff7b1b68c43b61270d19a60ab6 + stylelint-config-recommended-scss: 4.3.0_2vkgt733dnumio3be4grtjqkwy stylelint-config-standard: 22.0.0_stylelint@13.13.1 stylelint-scss: 3.21.0_stylelint@13.13.1 @@ -94,8 +94,8 @@ importers: vue: 3.2.31 devDependencies: '@commitlint/config-conventional': 11.0.0 - '@typescript-eslint/eslint-plugin': 4.33.0_959502c0ea240e86d4d2ba8b8c0fee45 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 4.33.0_vhpgmuzysxx5j7ipvhfxzq7itq + '@typescript-eslint/parser': 4.33.0_typescript@4.5.5 '@vitejs/plugin-vue': 2.2.2_vite@2.8.4+vue@3.2.31 commander: 9.0.0 fs-extra: 10.0.0 @@ -104,16 +104,6 @@ importers: vite: 2.8.4 vue-tsc: 0.29.8_typescript@4.5.5 - packages/devui-theme/build: - specifiers: - '@commitlint/config-conventional': ^11.0.0 - '@typescript-eslint/eslint-plugin': ^4.27.0 - '@typescript-eslint/parser': ^4.27.0 - devDependencies: - '@commitlint/config-conventional': 11.0.0 - '@typescript-eslint/eslint-plugin': 4.33.0_2951ba233cd46bb4e0f2f0a3f7fe108e - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0 - packages/devui-vue: specifiers: '@babel/parser': ^7.15.5 @@ -130,6 +120,7 @@ importers: '@types/commander': ^2.12.2 '@types/jest': ^26.0.24 '@types/lodash-es': ^4.17.4 + '@types/node': ^16.11.6 '@types/ora': ^3.2.0 '@typescript-eslint/eslint-plugin': ^4.27.0 '@typescript-eslint/parser': ^4.27.0 @@ -168,7 +159,7 @@ importers: vitepress-theme-demoblock: 1.3.2 vue: ^3.2.37 vue-router: ^4.0.3 - vue-tsc: ^0.2.2 + vue-tsc: 0.38.8 dependencies: '@devui-design/icons': 1.3.0 '@floating-ui/dom': 0.4.4 @@ -196,9 +187,10 @@ importers: '@types/chalk': 2.2.0 '@types/commander': 2.12.2 '@types/jest': 26.0.24 + '@types/node': 16.11.25 '@types/ora': 3.2.0 - '@typescript-eslint/eslint-plugin': 4.33.0_959502c0ea240e86d4d2ba8b8c0fee45 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 4.33.0_vhpgmuzysxx5j7ipvhfxzq7itq + '@typescript-eslint/parser': 4.33.0_typescript@4.5.5 '@vitejs/plugin-vue': 1.10.2_vite@2.8.4 '@vitejs/plugin-vue-jsx': 1.3.7 '@vue/babel-plugin-jsx': 1.1.1 @@ -223,7 +215,7 @@ importers: vite-svg-loader: 2.2.0 vitepress: 0.20.1_sass@1.49.8 vitepress-theme-demoblock: 1.3.2_sass@1.49.8 - vue-tsc: 0.2.3_typescript@4.5.5 + vue-tsc: 0.38.8_typescript@4.5.5 packages: @@ -2309,7 +2301,7 @@ packages: '@sinonjs/commons': 1.8.3 dev: true - /@stylelint/postcss-css-in-js/0.37.2_4f7b71a942b8b7a555b8adf78f88122b: + /@stylelint/postcss-css-in-js/0.37.2_j55xdkkcxc32kvnyvx3y7casfm: resolution: {integrity: sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==} peerDependencies: postcss: '>=7.0.0' @@ -2317,12 +2309,12 @@ packages: dependencies: '@babel/core': 7.17.5 postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom transitivePeerDependencies: - supports-color dev: true - /@stylelint/postcss-markdown/0.36.2_4f7b71a942b8b7a555b8adf78f88122b: + /@stylelint/postcss-markdown/0.36.2_j55xdkkcxc32kvnyvx3y7casfm: resolution: {integrity: sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==} deprecated: 'Use the original unforked package instead: postcss-markdown' peerDependencies: @@ -2330,7 +2322,7 @@ packages: postcss-syntax: '>=0.36.2' dependencies: postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom remark: 13.0.0 unist-util-find-all-after: 3.0.2 transitivePeerDependencies: @@ -2541,7 +2533,7 @@ packages: '@types/yargs-parser': 20.2.1 dev: true - /@typescript-eslint/eslint-plugin/4.33.0_2951ba233cd46bb4e0f2f0a3f7fe108e: + /@typescript-eslint/eslint-plugin/4.33.0_vhpgmuzysxx5j7ipvhfxzq7itq: resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -2552,36 +2544,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.33.0_eslint@7.32.0 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0 + '@typescript-eslint/experimental-utils': 4.33.0_typescript@4.5.5 + '@typescript-eslint/parser': 4.33.0_typescript@4.5.5 '@typescript-eslint/scope-manager': 4.33.0 debug: 4.3.3 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/eslint-plugin/4.33.0_959502c0ea240e86d4d2ba8b8c0fee45: - resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': 4.33.0_eslint@7.32.0+typescript@4.5.5 - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.5.5 - '@typescript-eslint/scope-manager': 4.33.0 - debug: 4.3.3 - eslint: 7.32.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -2592,25 +2558,7 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0: - resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/experimental-utils/4.33.0_eslint@7.32.0+typescript@4.5.5: + /@typescript-eslint/experimental-utils/4.33.0_typescript@4.5.5: resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -2620,34 +2568,14 @@ packages: '@typescript-eslint/scope-manager': 4.33.0 '@typescript-eslint/types': 4.33.0 '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.5.5 - eslint: 7.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 + eslint-utils: 3.0.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/4.33.0_eslint@7.32.0: - resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0 - debug: 4.3.3 - eslint: 7.32.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser/4.33.0_eslint@7.32.0+typescript@4.5.5: + /@typescript-eslint/parser/4.33.0_typescript@4.5.5: resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -2661,7 +2589,6 @@ packages: '@typescript-eslint/types': 4.33.0 '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.5.5 debug: 4.3.3 - eslint: 7.32.0 typescript: 4.5.5 transitivePeerDependencies: - supports-color @@ -2680,26 +2607,6 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/typescript-estree/4.33.0: - resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - debug: 4.3.3 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree/4.33.0_typescript@4.5.5: resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2763,13 +2670,6 @@ packages: vue: 3.2.31 dev: true - /@volar/code-gen/0.27.24: - resolution: {integrity: sha512-s4j/QqOZUW03PeD6LmVYI00Q1C3CfJEOePDOQwDvCTUov4lFk0iSBtFyYhjlLyQ1pdtV1+TDTErkj2aMQtc4PA==} - dependencies: - '@volar/shared': 0.27.24 - '@volar/source-map': 0.27.24 - dev: true - /@volar/code-gen/0.29.8: resolution: {integrity: sha512-eohLLUqPChHRPDFT5gXn4V6pr/CeTri7Ou5GI26lUvBRRAbP8p+oYfQRcbMPGeKmVkYjfVj0chsxQGx6T8PQ4Q==} dependencies: @@ -2777,13 +2677,10 @@ packages: '@volar/source-map': 0.29.8 dev: true - /@volar/html2pug/0.27.13: - resolution: {integrity: sha512-3NYgNA5F3PDsKbbpOrVdGy2S7ZYmZIbFmbp1A/27DDzjj/uIC9Pj7HXVvbYOzi8HcOxUPt0BMrh4TVzBUaCFww==} + /@volar/code-gen/0.38.8: + resolution: {integrity: sha512-e37jd+JwNjBpWiBblsdmYMbJ9bELiuj2yZrsXv1IVKpYNSfvS92ZiYjJqVXHUwpzNeZjFG0RCd5nTpbiebwANw==} dependencies: - domelementtype: 2.2.0 - domhandler: 4.3.0 - htmlparser2: 6.1.0 - pug: 3.0.2 + '@volar/source-map': 0.38.8 dev: true /@volar/html2pug/0.29.8: @@ -2795,14 +2692,6 @@ packages: pug: 3.0.2 dev: true - /@volar/shared/0.27.24: - resolution: {integrity: sha512-Mi8a4GQaiorfb+o4EqOXDZm9E/uBJXgScFgF+NhtcMBOUKHNMKQyLI7YRGumtyJTTdaX7nSDJjGGTkv23tcOtQ==} - dependencies: - upath: 2.0.1 - vscode-jsonrpc: 8.0.0-next.6 - vscode-uri: 3.0.3 - dev: true - /@volar/shared/0.29.8: resolution: {integrity: sha512-Y1NN6irkIukD+T0wf4p/dHWYL90sacN2e2lYoDXxRlvoYxwANnHgw0J0Rcp+yw58ElWRScdG7/YntEIuZWeJsw==} dependencies: @@ -2811,23 +2700,14 @@ packages: vscode-uri: 3.0.3 dev: true - /@volar/source-map/0.27.24: - resolution: {integrity: sha512-2I5a7cXqekZ66D6lHep7ttJgvVVtPEBUIe1hnpcGbnXWNA2ya6f6jKNNyTmrXQyfkh32IEuaUd4kocR+3AKMag==} - dependencies: - '@volar/shared': 0.27.24 - dev: true - /@volar/source-map/0.29.8: resolution: {integrity: sha512-7w+UoYtnc6UQu30CgMVvx0YN4dzDgP4TIsSmUaW62AGmxU9Lxwp3Kkn/4N8efi91z8ma5Z78v/HddyJPwAC3LA==} dependencies: '@volar/shared': 0.29.8 dev: true - /@volar/transforms/0.27.24: - resolution: {integrity: sha512-sOHi1ZSapFlxn7yPl4MO5TXd9aWC0BVq2CgXAJ2EESb+ddh2uJbGQgLLNocX+MDh419cUuuFT2QAJpuWHhJcng==} - dependencies: - '@volar/shared': 0.27.24 - vscode-languageserver: 8.0.0-next.8 + /@volar/source-map/0.38.8: + resolution: {integrity: sha512-JZvpjW/z2U3wq5wvwcTounPrRAZuSl4hlVKr3y7y72bKr++6W05OnX7fl/ddw39G/wLHdI2ag5+4JWsSd/EYhg==} dev: true /@volar/transforms/0.29.8: @@ -2849,6 +2729,26 @@ packages: upath: 2.0.1 dev: true + /@volar/vue-code-gen/0.38.8: + resolution: {integrity: sha512-iQVNmIu1TqnqTko+l9yeylmZipZ8zNH20XZAK9+48hkv2fEQnnJn5AI2W9Zb2M5DkGMpbYiJk9Fq1vm51YY1+g==} + dependencies: + '@volar/code-gen': 0.38.8 + '@volar/source-map': 0.38.8 + '@vue/compiler-core': 3.2.37 + '@vue/compiler-dom': 3.2.37 + '@vue/shared': 3.2.37 + dev: true + + /@volar/vue-typescript/0.38.8: + resolution: {integrity: sha512-7WeFt5piz9I6FKw2cQQCWm+75MxS6xCOGm300iu+hJORlroN2dwWbwj97pQnDGbjQbftCRplUYf0GqmhcOsanQ==} + dependencies: + '@volar/code-gen': 0.38.8 + '@volar/source-map': 0.38.8 + '@volar/vue-code-gen': 0.38.8 + '@vue/compiler-sfc': 3.2.37 + '@vue/reactivity': 3.2.37 + dev: true + /@vscode/emmet-helper/2.8.4: resolution: {integrity: sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==} dependencies: @@ -3003,7 +2903,6 @@ packages: dependencies: '@vue/reactivity': 3.2.31 '@vue/shared': 3.2.31 - dev: false /@vue/runtime-core/3.2.37: resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} @@ -3017,7 +2916,6 @@ packages: '@vue/runtime-core': 3.2.31 '@vue/shared': 3.2.31 csstype: 2.6.19 - dev: false /@vue/runtime-dom/3.2.37: resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} @@ -3034,7 +2932,6 @@ packages: '@vue/compiler-ssr': 3.2.31 '@vue/shared': 3.2.31 vue: 3.2.31 - dev: false /@vue/server-renderer/3.2.37_vue@3.2.37: resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} @@ -4008,6 +3905,8 @@ packages: on-headers: 1.0.2 safe-buffer: 5.1.2 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true /concat-map/0.0.1: @@ -4171,8 +4070,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -4321,12 +4220,22 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: true /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 dev: true @@ -5019,21 +4928,44 @@ packages: dependencies: debug: 3.2.7 resolve: 1.22.0 + transitivePeerDependencies: + - supports-color dev: true - /eslint-module-utils/2.7.3: + /eslint-module-utils/2.7.3_ulu2225r2ychl26a37c6o2rfje: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 + transitivePeerDependencies: + - supports-color dev: true /eslint-plugin-import/2.25.4_eslint@7.32.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: array-includes: 3.1.4 array.prototype.flat: 1.2.5 @@ -5041,7 +4973,7 @@ packages: doctrine: 2.1.0 eslint: 7.32.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 + eslint-module-utils: 2.7.3_ulu2225r2ychl26a37c6o2rfje has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 @@ -5049,6 +4981,10 @@ packages: object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: true /eslint-plugin-vue/7.20.0_eslint@7.32.0: @@ -5081,13 +5017,12 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@7.32.0: + /eslint-utils/3.0.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 7.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5695,15 +5630,6 @@ packages: readable-stream: 3.6.0 dev: true - /htmlparser2/6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - dependencies: - domelementtype: 2.2.0 - domhandler: 4.3.0 - domutils: 2.8.0 - entities: 2.2.0 - dev: true - /htmlparser2/7.2.0: resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} dependencies: @@ -7645,7 +7571,7 @@ packages: trouter: 2.0.1 dev: true - /postcss-html/0.36.0_4f7b71a942b8b7a555b8adf78f88122b: + /postcss-html/0.36.0_j55xdkkcxc32kvnyvx3y7casfm: resolution: {integrity: sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==} peerDependencies: postcss: '>=5.0.0' @@ -7653,7 +7579,7 @@ packages: dependencies: htmlparser2: 3.10.1 postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom dev: true /postcss-less/3.1.4: @@ -7700,12 +7626,31 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-syntax/0.36.2_postcss@7.0.39: + /postcss-syntax/0.36.2_kei4jy7wdgbhc236h4oijypxom: resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true dependencies: postcss: 7.0.39 + postcss-html: 0.36.0_j55xdkkcxc32kvnyvx3y7casfm + postcss-less: 3.1.4 + postcss-scss: 2.1.1 dev: true /postcss-value-parser/4.2.0: @@ -8537,7 +8482,7 @@ packages: resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} dev: true - /stylelint-config-recommended-scss/4.3.0_d55469ff7b1b68c43b61270d19a60ab6: + /stylelint-config-recommended-scss/4.3.0_2vkgt733dnumio3be4grtjqkwy: resolution: {integrity: sha512-/noGjXlO8pJTr/Z3qGMoaRFK8n1BFfOqmAbX1RjTIcl4Yalr+LUb1zb9iQ7pRx1GsEBXOAm4g2z5/jou/pfMPg==} peerDependencies: stylelint: ^10.1.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 @@ -8584,8 +8529,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true dependencies: - '@stylelint/postcss-css-in-js': 0.37.2_4f7b71a942b8b7a555b8adf78f88122b - '@stylelint/postcss-markdown': 0.36.2_4f7b71a942b8b7a555b8adf78f88122b + '@stylelint/postcss-css-in-js': 0.37.2_j55xdkkcxc32kvnyvx3y7casfm + '@stylelint/postcss-markdown': 0.36.2_j55xdkkcxc32kvnyvx3y7casfm autoprefixer: 9.8.8 balanced-match: 2.0.0 chalk: 4.1.2 @@ -8611,7 +8556,7 @@ packages: micromatch: 4.0.4 normalize-selector: 0.2.0 postcss: 7.0.39 - postcss-html: 0.36.0_4f7b71a942b8b7a555b8adf78f88122b + postcss-html: 0.36.0_j55xdkkcxc32kvnyvx3y7casfm postcss-less: 3.1.4 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 @@ -8619,7 +8564,7 @@ packages: postcss-sass: 0.4.4 postcss-scss: 2.1.1 postcss-selector-parser: 6.0.9 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom postcss-value-parser: 4.2.0 resolve-from: 5.0.0 slash: 3.0.0 @@ -8633,6 +8578,8 @@ packages: v8-compile-cache: 2.3.0 write-file-atomic: 3.0.3 transitivePeerDependencies: + - postcss-jsx + - postcss-markdown - supports-color dev: true @@ -8865,15 +8812,6 @@ packages: /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - /tsutils/3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - dev: true - /tsutils/3.21.0_typescript@4.5.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -9298,18 +9236,6 @@ packages: resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} dev: true - /vscode-pug-languageservice/0.27.24: - resolution: {integrity: sha512-GSvsFB+rPhAD7cBlEKCVNNsFGIaOnp/0zyLw3WpYbXY24vJZafXu1kHvtYaaQXJRnIhqp5EI5p+EqpdI3hTBnw==} - dependencies: - '@volar/code-gen': 0.27.24 - '@volar/shared': 0.27.24 - '@volar/source-map': 0.27.24 - '@volar/transforms': 0.27.24 - pug-lexer: 5.0.1 - pug-parser: 6.0.0 - vscode-languageserver: 8.0.0-next.8 - dev: true - /vscode-pug-languageservice/0.29.8: resolution: {integrity: sha512-QHYAzDSJLg7GOLxCZ12qsM0dAM0dPeMSS1t4kKfzLsfpErmZpFzkAIXbidVrNMdMffGZMtTuIlcpEyWHbx96Iw==} dependencies: @@ -9322,16 +9248,6 @@ packages: vscode-languageserver: 8.0.0-next.8 dev: true - /vscode-typescript-languageservice/0.27.25: - resolution: {integrity: sha512-nxpJI9MnF2rn5rKL/032Qrsq3T9DgM3slK5fwZp3suNdo90JG2zFTs3Ola8n62k7+KWu4A775obxyb4wLIW6Gw==} - dependencies: - '@volar/shared': 0.27.24 - semver: 7.3.5 - upath: 2.0.1 - vscode-languageserver: 8.0.0-next.8 - vscode-languageserver-textdocument: 1.0.4 - dev: true - /vscode-typescript-languageservice/0.29.8: resolution: {integrity: sha512-eecDqHk4WjEvy6VHQ6teHczppQ9yJO2wExCy7yu7WiFj35qbw0h4G6Erv46MvP3ClL8FggFzD7s1qM6vdqJUfw==} dependencies: @@ -9350,29 +9266,6 @@ packages: resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==} dev: true - /vscode-vue-languageservice/0.27.30: - resolution: {integrity: sha512-nPnUNCMqqHfxcCPLyLWvmgbNCgos3SwvPcl/CzAnMbqcjLtNZppsdI7bKX3EEj0Jbg6SGLQ9NanIvZaMI1bsUA==} - dependencies: - '@volar/code-gen': 0.27.24 - '@volar/html2pug': 0.27.13 - '@volar/shared': 0.27.24 - '@volar/source-map': 0.27.24 - '@volar/transforms': 0.27.24 - '@vscode/emmet-helper': 2.8.4 - '@vue/compiler-dom': 3.2.37 - '@vue/reactivity': 3.2.31 - '@vue/shared': 3.2.37 - request-light: 0.5.7 - upath: 2.0.1 - vscode-css-languageservice: 5.1.13 - vscode-html-languageservice: 4.2.1 - vscode-json-languageservice: 4.2.0 - vscode-languageserver: 8.0.0-next.8 - vscode-languageserver-textdocument: 1.0.4 - vscode-pug-languageservice: 0.27.24 - vscode-typescript-languageservice: 0.27.25 - dev: true - /vscode-vue-languageservice/0.29.8: resolution: {integrity: sha512-qSJdvW5ttyGUB/8uWDKgo8vnIoFnXYlBP4Z/cn54btsRn6ZMw7IJGJU1381e7p/yGvMTLeGbugD53SghbnSa6g==} dependencies: @@ -9443,25 +9336,25 @@ packages: vue: 3.2.37 dev: false - /vue-tsc/0.2.3_typescript@4.5.5: - resolution: {integrity: sha512-0ahxAnQolmv6EOnv5zxeMi4vCpM4PkhjU70i/EI44OzMWq4OErjLZhEh8EXOLtMx6FBRuuqS5fiBXcuqLpoL7Q==} + /vue-tsc/0.29.8_typescript@4.5.5: + resolution: {integrity: sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==} hasBin: true peerDependencies: typescript: '*' dependencies: + '@volar/shared': 0.29.8 typescript: 4.5.5 - vscode-vue-languageservice: 0.27.30 + vscode-vue-languageservice: 0.29.8 dev: true - /vue-tsc/0.29.8_typescript@4.5.5: - resolution: {integrity: sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==} + /vue-tsc/0.38.8_typescript@4.5.5: + resolution: {integrity: sha512-hhyc5SODiekcYNXG08aNg17LogR19o3i14avVejo+Fm45Dqk9Ke6rb0M19HoTKdQGfZBgqg2VUboYxmtAukWeg==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/shared': 0.29.8 + '@volar/vue-typescript': 0.38.8 typescript: 4.5.5 - vscode-vue-languageservice: 0.29.8 dev: true /vue/3.2.31: @@ -9472,7 +9365,6 @@ packages: '@vue/runtime-dom': 3.2.31 '@vue/server-renderer': 3.2.31_vue@3.2.31 '@vue/shared': 3.2.31 - dev: false /vue/3.2.37: resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==}