diff --git a/packages/meta/package.json b/packages/meta/package.json
index a8a1be7d..e90e7141 100644
--- a/packages/meta/package.json
+++ b/packages/meta/package.json
@@ -26,11 +26,11 @@
},
"dependencies": {
"@volar/typescript": "^2.4.23",
- "@vue/language-core": "3.0.8",
+ "@vue/language-core": "2.2.12",
"path-browserify": "^1.0.1",
"pathe": "^2.0.3",
- "vue-component-meta": "^3.0.8",
- "vue-component-type-helpers": "^3.0.8"
+ "vue-component-meta": "^2.2.12",
+ "vue-component-type-helpers": "^2.2.12"
},
"devDependencies": {
"@types/path-browserify": "^1.0.3"
diff --git a/packages/meta/src/base.ts b/packages/meta/src/base.ts
index 210bcb10..6af1e659 100644
--- a/packages/meta/src/base.ts
+++ b/packages/meta/src/base.ts
@@ -1,9 +1,10 @@
-import { createLanguageServiceHost, resolveFileLanguageId, type TypeScriptProjectHost } from '@volar/typescript'
+import type { TypeScriptProjectHost } from '@volar/typescript'
+import { createLanguageServiceHost, resolveFileLanguageId } from '@volar/typescript'
import * as vue from '@vue/language-core'
-import pathBrowserify from 'path-browserify'
-import type * as ts from 'typescript'
-
-const { posix: path } = pathBrowserify
+import path from 'pathe'
+import type ts from 'typescript'
+import { code as typeHelpersCode } from 'vue-component-type-helpers'
+import { code as vue2TypeHelpersCode } from 'vue-component-type-helpers/vue2.js'
import type {
ComponentMeta,
@@ -27,24 +28,7 @@ export function createCheckerByJsonConfigBase(
rootDir = rootDir.replace(windowsPathReg, '/')
return baseCreate(
ts,
- () => {
- const commandLine = vue.createParsedCommandLineByJson(ts, ts.sys, rootDir, json)
- const { fileNames } = ts.parseJsonConfigFileContent(
- json,
- ts.sys,
- rootDir,
- {},
- undefined,
- undefined,
- vue.getAllExtensions(commandLine.vueOptions)
- .map(extension => ({
- extension: extension.slice(1),
- isMixedContent: true,
- scriptKind: ts.ScriptKind.Deferred
- }))
- )
- return [commandLine, fileNames]
- },
+ () => vue.createParsedCommandLineByJson(ts, ts.sys, rootDir, json, undefined),
checkerOptions,
rootDir,
path.join(rootDir, 'jsconfig.json.global.vue')
@@ -59,54 +43,29 @@ export function createCheckerBase(
tsconfig = tsconfig.replace(windowsPathReg, '/')
return baseCreate(
ts,
- () => {
- const commandLine = vue.createParsedCommandLine(ts, ts.sys, tsconfig)
- const { fileNames } = ts.parseJsonSourceFileConfigFileContent(
- ts.readJsonConfigFile(tsconfig, ts.sys.readFile),
- ts.sys,
- path.dirname(tsconfig),
- {},
- tsconfig,
- undefined,
- vue.getAllExtensions(commandLine.vueOptions)
- .map(extension => ({
- extension: extension.slice(1),
- isMixedContent: true,
- scriptKind: ts.ScriptKind.Deferred
- }))
- )
- return [commandLine, fileNames]
- },
+ () => vue.createParsedCommandLine(ts, ts.sys, tsconfig),
checkerOptions,
path.dirname(tsconfig),
tsconfig + '.global.vue'
)
}
-function baseCreate(
+export function baseCreate(
ts: typeof import('typescript'),
- getConfigAndFiles: () => [
- commandLine: vue.ParsedCommandLine,
- fileNames: string[]
- ],
+ getCommandLine: () => vue.ParsedCommandLine,
checkerOptions: MetaCheckerOptions,
rootPath: string,
globalComponentName: string
) {
- let [commandLine, _fileNames] = getConfigAndFiles()
- /**
- * Used to lookup if a file is referenced.
- */
- let fileNames = new Set(_fileNames.map(path => path.replace(windowsPathReg, '/')))
+ let commandLine = getCommandLine()
+ let fileNames = commandLine.fileNames.map(path => path.replace(windowsPathReg, '/'))
let projectVersion = 0
- vue.writeGlobalTypes(commandLine.vueOptions, ts.sys.writeFile)
-
const projectHost: TypeScriptProjectHost = {
getCurrentDirectory: () => rootPath,
getProjectVersion: () => projectVersion.toString(),
getCompilationSettings: () => commandLine.options as any,
- getScriptFileNames: () => [...fileNames],
+ getScriptFileNames: () => fileNames,
getProjectReferences: () => commandLine.projectReferences
}
const globalComponentSnapshot = ts.ScriptSnapshot.fromString('')
@@ -138,7 +97,7 @@ function baseCreate(
}
}
],
- new vue.FileMap(ts.sys.useCaseSensitiveFileNames),
+ new vue.FileMap(ts.sys.useCaseSensitiveFileNames) as any,
(fileName) => {
let snapshot = scriptSnapshots.get(fileName)
@@ -168,9 +127,40 @@ function baseCreate(
}
}
)
- const { languageServiceHost } = createLanguageServiceHost(ts as any, ts.sys, language, s => s, projectHost)
+ const { languageServiceHost } = createLanguageServiceHost(ts as any, ts.sys, language as any, s => s, projectHost)
const tsLs = ts.createLanguageService(languageServiceHost as any)
+ const directoryExists = languageServiceHost.directoryExists?.bind(languageServiceHost)
+ const fileExists = languageServiceHost.fileExists.bind(languageServiceHost)
+ const getScriptSnapshot = languageServiceHost.getScriptSnapshot.bind(languageServiceHost)
+ const globalTypesName = vue.getGlobalTypesFileName(commandLine.vueOptions)
+ const globalTypesContents = `// @ts-nocheck\nexport {};\n` + vue.generateGlobalTypes(commandLine.vueOptions)
+ const globalTypesSnapshot: ts.IScriptSnapshot = {
+ getText: (start, end) => globalTypesContents.slice(start, end),
+ getLength: () => globalTypesContents.length,
+ getChangeRange: () => undefined
+ }
+ if (directoryExists) {
+ languageServiceHost.directoryExists = (path) => {
+ if (path.endsWith('.vue-global-types')) {
+ return true
+ }
+ return directoryExists(path)
+ }
+ }
+ languageServiceHost.fileExists = (path) => {
+ if (path.endsWith(`.vue-global-types/${globalTypesName}`) || path.endsWith(`.vue-global-types\\${globalTypesName}`)) {
+ return true
+ }
+ return fileExists(path)
+ }
+ languageServiceHost.getScriptSnapshot = (path) => {
+ if (path.endsWith(`.vue-global-types/${globalTypesName}`) || path.endsWith(`.vue-global-types\\${globalTypesName}`)) {
+ return globalTypesSnapshot
+ }
+ return getScriptSnapshot(path)
+ }
+
if (checkerOptions.forceUseTs) {
const getScriptKind = languageServiceHost.getScriptKind?.bind(languageServiceHost)
languageServiceHost.getScriptKind = (fileName) => {
@@ -195,18 +185,16 @@ function baseCreate(
updateFile(fileName: string, text: string) {
fileName = fileName.replace(windowsPathReg, '/')
scriptSnapshots.set(fileName, ts.ScriptSnapshot.fromString(text))
- // Ensure the file is referenced
- fileNames.add(fileName)
projectVersion++
},
deleteFile(fileName: string) {
fileName = fileName.replace(windowsPathReg, '/')
- fileNames.delete(fileName)
+ fileNames = fileNames.filter(f => f !== fileName)
projectVersion++
},
reload() {
- [commandLine, _fileNames] = getConfigAndFiles()
- fileNames = new Set(_fileNames.map(path => path.replace(windowsPathReg, '/')))
+ commandLine = getCommandLine()
+ fileNames = commandLine.fileNames.map(path => path.replace(windowsPathReg, '/'))
this.clearCache()
},
clearCache() {
@@ -232,9 +220,7 @@ function baseCreate(
function getMetaScriptContent(fileName: string) {
const code = `
-import type { ComponentType, ComponentProps, ComponentEmit, ComponentSlots, ComponentExposed } from 'vue-component-meta/lib/helpers';
-import type * as Components from '${fileName.slice(0, -'.meta.ts'.length)}';
-
+import * as Components from '${fileName.slice(0, -'.meta.ts'.length)}';
export default {} as { [K in keyof typeof Components]: ComponentMeta; };
interface ComponentMeta {
@@ -243,7 +229,9 @@ interface ComponentMeta {
emit: ComponentEmit;
slots: ComponentSlots;
exposed: ComponentExposed;
-}
+};
+
+${commandLine.vueOptions.target < 3 ? vue2TypeHelpersCode : typeHelpersCode}
`.trim()
return code
}
@@ -254,7 +242,6 @@ interface ComponentMeta {
return _getExports(program, typeChecker, componentPath).exports.map(e => e.getName())
}
- /// >>>> Start compodium patch
function getComponentMeta(componentPath: string, exportName = 'default'): ComponentMeta & { compodium?: Record } {
const program = tsLs.getProgram()!
const typeChecker = program.getTypeChecker()
@@ -262,7 +249,7 @@ interface ComponentMeta {
const _export = exports.find(property => property.getName() === exportName)
if (!_export) {
- throw `Could not find export ${exportName}`
+ throw `[Compodium] Could not find export ${exportName}`
}
const componentType = typeChecker.getTypeOfSymbolAtLocation(_export, symbolNode)
@@ -275,7 +262,7 @@ interface ComponentMeta {
let _exposed: ReturnType | undefined
let _compodium: Record | undefined
- const meta = {
+ return {
get type() {
return _type ?? (_type = getType())
},
@@ -291,13 +278,21 @@ interface ComponentMeta {
get exposed() {
return _exposed ?? (_exposed = getExposed())
},
-
get compodium() {
return _compodium ?? (_compodium = getCompodiumMeta())
}
}
- return meta
+ function getType() {
+ const $type = symbolProperties.find(prop => prop.escapedName === 'type')
+
+ if ($type) {
+ const type = typeChecker.getTypeOfSymbolAtLocation($type, symbolNode)
+ return Number(typeChecker.typeToString(type))
+ }
+
+ return 0
+ }
function getCompodiumMeta(): Record | undefined {
const snapshot = language.scripts.get(componentPath)?.snapshot
@@ -383,32 +378,16 @@ interface ComponentMeta {
// Traverse the AST to find and transform the object literal
return traverse(node)
}
- /// >>>> End Compodium patch
-
- function getType() {
- const $type = symbolProperties.find(prop => prop.escapedName === 'type')
-
- if ($type) {
- const type = typeChecker.getTypeOfSymbolAtLocation($type, symbolNode)
- return Number(typeChecker.typeToString(type))
- }
-
- return 0
- }
function getProps() {
const $props = symbolProperties.find(prop => prop.escapedName === 'props')
- const vnodeEventRegex = /^onVnode[A-Z]/
+ const propEventRegex = /^on[A-Z]/
let result: PropertyMeta[] = []
if ($props) {
const type = typeChecker.getTypeOfSymbolAtLocation($props, symbolNode)
const properties = type.getProperties()
- const eventProps = new Set(
- meta.events.map(event => `on${event.name.charAt(0).toUpperCase()}${event.name.slice(1)}`)
- )
-
result = properties
.map((prop) => {
const {
@@ -417,12 +396,12 @@ interface ComponentMeta {
return resolveNestedProperties(prop)
})
- .filter(prop => !vnodeEventRegex.test(prop.name) && !eventProps.has(prop.name))
+ .filter(prop => !propEventRegex.test(prop.name))
}
// fill global
if (componentPath !== globalComponentName) {
- globalPropNames ??= getComponentMeta(globalComponentName).props.map(prop => prop.name)
+ globalPropNames ??= getComponentMeta(globalComponentName).props.map((prop: any) => prop.name)
for (const prop of result) {
prop.global = globalPropNames.includes(prop.name)
}
@@ -450,12 +429,10 @@ interface ComponentMeta {
)
: {}
- for (
- const [propName, defaultExp] of Object.entries({
- ...vueDefaults,
- ...tsDefaults
- })
- ) {
+ for (const [propName, defaultExp] of Object.entries({
+ ...vueDefaults,
+ ...tsDefaults
+ })) {
const prop = result.find(p => p.name === propName)
if (prop) {
prop.default = defaultExp.default
@@ -539,14 +516,14 @@ interface ComponentMeta {
typeChecker: ts.TypeChecker,
componentPath: string
) {
- const sourceFile = program.getSourceFile(getMetaFileName(componentPath))
+ const sourceFile = program?.getSourceFile(getMetaFileName(componentPath))
if (!sourceFile) {
- throw 'Could not find main source file'
+ throw '[Compodium] Could not find main source file'
}
const moduleSymbol = typeChecker.getSymbolAtLocation(sourceFile)
if (!moduleSymbol) {
- throw 'Could not find module symbol'
+ throw '[Compodium] Could not find module symbol'
}
const exportedSymbols = typeChecker.getExportsOfModule(moduleSymbol)
@@ -562,7 +539,7 @@ interface ComponentMeta {
}
if (!symbolNode) {
- throw 'Could not find symbol node'
+ throw '[Compodium] Could not find symbol node'
}
const exportDefaultType = typeChecker.getTypeAtLocation(symbolNode)
@@ -585,7 +562,7 @@ function createSchemaResolvers(
const visited = new Set()
function shouldIgnore(subtype: ts.Type) {
- const name = getFullyQualifiedName(subtype)
+ const name = typeChecker.typeToString(subtype)
if (name === 'any') {
return true
}
@@ -617,8 +594,8 @@ function createSchemaResolvers(
function resolveNestedProperties(prop: ts.Symbol): PropertyMeta {
const subtype = typeChecker.getTypeOfSymbolAtLocation(prop, symbolNode)
- let schema: PropertyMetaSchema | undefined
- let declarations: Declaration[] | undefined
+ let schema: PropertyMetaSchema
+ let declarations: Declaration[]
return {
name: prop.getEscapedName().toString(),
@@ -629,7 +606,7 @@ function createSchemaResolvers(
text: tag.text !== undefined ? ts.displayPartsToString(tag.text) : undefined
})),
required: !(prop.flags & ts.SymbolFlags.Optional),
- type: getFullyQualifiedName(subtype),
+ type: typeChecker.typeToString(subtype),
rawType: rawType ? subtype : undefined,
get declarations() {
return declarations ??= getDeclarations(prop.declarations ?? [])
@@ -644,12 +621,12 @@ function createSchemaResolvers(
const signatures = propType.getCallSignatures()
const paramType = signatures[0]?.parameters[0]
const subtype = paramType ? typeChecker.getTypeOfSymbolAtLocation(paramType, symbolNode) : typeChecker.getAnyType()
- let schema: PropertyMetaSchema | undefined
- let declarations: Declaration[] | undefined
+ let schema: PropertyMetaSchema
+ let declarations: Declaration[]
return {
name: prop.getName(),
- type: getFullyQualifiedName(subtype),
+ type: typeChecker.typeToString(subtype),
rawType: rawType ? subtype : undefined,
description: ts.displayPartsToString(prop.getDocumentationComment(typeChecker)),
get declarations() {
@@ -662,12 +639,12 @@ function createSchemaResolvers(
}
function resolveExposedProperties(expose: ts.Symbol): ExposeMeta {
const subtype = typeChecker.getTypeOfSymbolAtLocation(expose, symbolNode)
- let schema: PropertyMetaSchema | undefined
- let declarations: Declaration[] | undefined
+ let schema: PropertyMetaSchema
+ let declarations: Declaration[]
return {
name: expose.getName(),
- type: getFullyQualifiedName(subtype),
+ type: typeChecker.typeToString(subtype),
rawType: rawType ? subtype : undefined,
description: ts.displayPartsToString(expose.getDocumentationComment(typeChecker)),
get declarations() {
@@ -679,49 +656,25 @@ function createSchemaResolvers(
}
}
function resolveEventSignature(call: ts.Signature): EventMeta {
- let schema: PropertyMetaSchema[] | undefined
- let declarations: Declaration[] | undefined
- let subtype = undefined
- let subtypeStr = '[]'
- let getSchema = () => [] as PropertyMetaSchema[]
-
- if (call.parameters.length >= 2) {
- subtype = typeChecker.getTypeOfSymbolAtLocation(call.parameters[1]!, symbolNode)
- if ((call.parameters[1]!.valueDeclaration as any)?.dotDotDotToken) {
- subtypeStr = getFullyQualifiedName(subtype)
- getSchema = () => typeChecker.getTypeArguments(subtype! as ts.TypeReference).map(resolveSchema)
- } else {
- subtypeStr = '['
- for (let i = 1; i < call.parameters.length; i++) {
- subtypeStr += getFullyQualifiedName(typeChecker.getTypeOfSymbolAtLocation(call.parameters[i]!, symbolNode))
- + ', '
- }
- subtypeStr = subtypeStr.slice(0, -2) + ']'
- getSchema = () => {
- const result: PropertyMetaSchema[] = []
- for (let i = 1; i < call.parameters.length; i++) {
- result.push(resolveSchema(typeChecker.getTypeOfSymbolAtLocation(call.parameters[i]!, symbolNode)))
- }
- return result
- }
- }
- }
+ const subtype = typeChecker.getTypeOfSymbolAtLocation(call.parameters[1] as ts.Symbol, symbolNode)
+ let schema: PropertyMetaSchema[]
+ let declarations: Declaration[]
return {
- name: (typeChecker.getTypeOfSymbolAtLocation(call.parameters[0]!, symbolNode) as ts.StringLiteralType).value,
+ name: (typeChecker.getTypeOfSymbolAtLocation(call.parameters[0] as ts.Symbol, symbolNode) as ts.StringLiteralType).value,
description: ts.displayPartsToString(call.getDocumentationComment(typeChecker)),
tags: call.getJsDocTags().map(tag => ({
name: tag.name,
text: tag.text !== undefined ? ts.displayPartsToString(tag.text) : undefined
})),
- type: subtypeStr,
+ type: typeChecker.typeToString(subtype),
rawType: rawType ? subtype : undefined,
signature: typeChecker.signatureToString(call),
get declarations() {
return declarations ??= call.declaration ? getDeclarations([call.declaration]) : []
},
get schema() {
- return schema ??= getSchema()
+ return schema ??= typeChecker.getTypeArguments(subtype as ts.TypeReference).map(resolveSchema)
}
}
}
@@ -732,18 +685,16 @@ function createSchemaResolvers(
kind: 'event',
type: typeChecker.signatureToString(signature),
get schema() {
- return schema ??= signature.parameters.length
+ return schema ??= signature.parameters.length > 0
? typeChecker
- .getTypeArguments(
- typeChecker.getTypeOfSymbolAtLocation(signature.parameters[0]!, symbolNode) as ts.TypeReference
- )
+ .getTypeArguments(typeChecker.getTypeOfSymbolAtLocation(signature.parameters[0] as ts.Symbol, symbolNode) as ts.TypeReference)
.map(resolveSchema)
: undefined
}
}
}
function resolveSchema(subtype: ts.Type): PropertyMetaSchema {
- const type = getFullyQualifiedName(subtype)
+ const type = typeChecker.typeToString(subtype)
if (shouldIgnore(subtype)) {
return type
@@ -752,7 +703,7 @@ function createSchemaResolvers(
visited.add(subtype)
if (subtype.isUnion()) {
- let schema: PropertyMetaSchema[] | undefined
+ let schema: PropertyMetaSchema[]
return {
kind: 'enum',
type,
@@ -761,7 +712,7 @@ function createSchemaResolvers(
}
}
} else if (typeChecker.isArrayLikeType(subtype)) {
- let schema: PropertyMetaSchema[] | undefined
+ let schema: PropertyMetaSchema[]
return {
kind: 'array',
type,
@@ -771,10 +722,9 @@ function createSchemaResolvers(
}
} else if (
subtype.getCallSignatures().length === 0
- && (subtype.isClassOrInterface() || subtype.isIntersection()
- || (subtype as ts.ObjectType).objectFlags & ts.ObjectFlags.Anonymous)
+ && (subtype.isClassOrInterface() || subtype.isIntersection() || (subtype as ts.ObjectType).objectFlags & ts.ObjectFlags.Anonymous)
) {
- let schema: Record | undefined
+ let schema: Record
return {
kind: 'object',
type,
@@ -783,22 +733,11 @@ function createSchemaResolvers(
}
}
} else if (subtype.getCallSignatures().length === 1) {
- return resolveCallbackSchema(subtype.getCallSignatures()[0]!)
+ return resolveCallbackSchema(subtype.getCallSignatures()[0] as ts.Signature)
}
return type
}
- function getFullyQualifiedName(type: ts.Type) {
- const str = typeChecker.typeToString(
- type,
- undefined,
- ts.TypeFormatFlags.UseFullyQualifiedType | ts.TypeFormatFlags.NoTruncation
- )
- if (str.includes('import(')) {
- return str.replace(/import\(.*?\)\./g, '')
- }
- return str
- }
function getDeclarations(declaration: ts.Declaration[]) {
if (noDeclarations) {
return []
@@ -809,7 +748,7 @@ function createSchemaResolvers(
const fileName = declaration.getSourceFile().fileName
const sourceScript = language.scripts.get(fileName)
if (sourceScript?.generated) {
- const script = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root)
+ const script = (sourceScript.generated.languagePlugin as any).typescript?.getServiceScript(sourceScript.generated.root)
if (script) {
for (const [sourceScript, map] of language.maps.forEach(script.code)) {
for (const [start] of map.toSourceLocation(declaration.getStart())) {
@@ -898,13 +837,12 @@ function readVueComponentDefaultProps(
}
}
- if (scriptSetupRanges?.defineModel) {
- for (const defineModel of scriptSetupRanges.defineModel) {
- const obj = defineModel.argNode ? findObjectLiteralExpression(defineModel.argNode) : undefined
+ if (scriptSetupRanges?.defineProp) {
+ for (const defineProp of scriptSetupRanges.defineProp) {
+ const argNode = (defineProp as any).argNode
+ const obj = argNode ? findObjectLiteralExpression(argNode) : undefined
if (obj) {
- const name = defineModel.name
- ? sfc.scriptSetup.content.slice(defineModel.name.start, defineModel.name.end).slice(1, -1)
- : 'modelValue'
+ const name = defineProp.name ? sfc.scriptSetup.content.slice(defineProp.name.start, defineProp.name.end).slice(1, -1) : 'modelValue'
result[name] = resolveModelOption(ast, obj, printer, ts)
}
}
@@ -985,10 +923,11 @@ function readTsComponentDefaultProps(
// export default { ... }
if (ts.isObjectLiteralExpression(component)) return component
// export default defineComponent({ ... })
+ // export default Vue.extend({ ... })
else if (ts.isCallExpression(component)) {
if (component.arguments.length) {
- const arg = component.arguments[0]!
- if (ts.isObjectLiteralExpression(arg)) {
+ const arg = component.arguments[0]
+ if (arg && ts.isObjectLiteralExpression(arg)) {
return arg
}
}
@@ -1017,14 +956,10 @@ function resolvePropsOption(
for (const prop of props.properties) {
if (ts.isPropertyAssignment(prop)) {
- const name = prop.name.getText(ast)
+ const name = prop.name?.getText(ast)
if (ts.isObjectLiteralExpression(prop.initializer)) {
- const defaultProp = prop.initializer.properties.find(p =>
- ts.isPropertyAssignment(p) && p.name.getText(ast) === 'default'
- ) as ts.PropertyAssignment | undefined
- const requiredProp = prop.initializer.properties.find(p =>
- ts.isPropertyAssignment(p) && p.name.getText(ast) === 'required'
- ) as ts.PropertyAssignment | undefined
+ const defaultProp = prop.initializer.properties.find(p => ts.isPropertyAssignment(p) && p.name.getText(ast) === 'default') as ts.PropertyAssignment | undefined
+ const requiredProp = prop.initializer.properties.find(p => ts.isPropertyAssignment(p) && p.name.getText(ast) === 'required') as ts.PropertyAssignment | undefined
result[name] = {}
@@ -1072,7 +1007,7 @@ function resolveDefaultOptionExpression(
) {
if (ts.isArrowFunction(_default)) {
if (ts.isBlock(_default.body)) {
- return _default // TODO
+ return _default
} else if (ts.isParenthesizedExpression(_default.body)) {
return _default.body.expression
} else {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 803e54d7..df2266e7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -243,8 +243,8 @@ importers:
specifier: ^2.4.23
version: 2.4.23
'@vue/language-core':
- specifier: 3.0.8
- version: 3.0.8(typescript@5.6.3)
+ specifier: 2.2.12
+ version: 2.2.12(typescript@5.6.3)
path-browserify:
specifier: ^1.0.1
version: 1.0.1
@@ -255,11 +255,11 @@ importers:
specifier: '*'
version: 5.6.3
vue-component-meta:
- specifier: ^3.0.8
- version: 3.0.8(typescript@5.6.3)
+ specifier: ^2.2.12
+ version: 2.2.12(typescript@5.6.3)
vue-component-type-helpers:
- specifier: ^3.0.8
- version: 3.0.8
+ specifier: ^2.2.12
+ version: 2.2.12
devDependencies:
'@types/path-browserify':
specifier: ^1.0.3
@@ -6849,11 +6849,22 @@ packages:
vue-bundle-renderer@2.1.2:
resolution: {integrity: sha512-M4WRBO/O/7G9phGaGH9AOwOnYtY9ZpPoDVpBpRzR2jO5rFL9mgIlQIgums2ljCTC2HL1jDXFQc//CzWcAQHgAw==}
+ vue-component-meta@2.2.12:
+ resolution: {integrity: sha512-dQU6/obNSNbennJ1xd+rhDid4g3vQro+9qUBBIg8HMZH2Zs1jTpkFNxuQ3z77bOlU+ew08Qck9sbYkdSePr0Pw==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
vue-component-meta@3.0.8:
resolution: {integrity: sha512-DEdPomVB6p/zYT4XUgav+NiA2LtkoDQ7HCY0hQaHc8YvoDwA2q0hHsQdX3uDQuFNcZTiwX+lIUuGU4iaVybDcA==}
peerDependencies:
typescript: '*'
+ vue-component-type-helpers@2.2.12:
+ resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==}
+
vue-component-type-helpers@3.0.8:
resolution: {integrity: sha512-WyR30Eq15Y/+odrUUMax6FmPbZwAp/HnC7qgR1r3lVFAcqwQ4wUoV79Mbh4SxDy3NiqDa+G4TOKD5xXSgBHo5A==}
@@ -9868,7 +9879,7 @@ snapshots:
dependencies:
rfdc: 1.4.1
- '@vue/language-core@2.2.12(typescript@5.9.2)':
+ '@vue/language-core@2.2.12(typescript@5.6.3)':
dependencies:
'@volar/language-core': 2.4.15
'@vue/compiler-dom': 3.5.21
@@ -9879,20 +9890,20 @@ snapshots:
muggle-string: 0.4.1
path-browserify: 1.0.1
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.6.3
- '@vue/language-core@3.0.8(typescript@5.6.3)':
+ '@vue/language-core@2.2.12(typescript@5.9.2)':
dependencies:
- '@volar/language-core': 2.4.23
+ '@volar/language-core': 2.4.15
'@vue/compiler-dom': 3.5.21
'@vue/compiler-vue2': 2.7.16
'@vue/shared': 3.5.21
- alien-signals: 2.0.5
+ alien-signals: 1.0.13
+ minimatch: 9.0.5
muggle-string: 0.4.1
path-browserify: 1.0.1
- picomatch: 4.0.3
optionalDependencies:
- typescript: 5.6.3
+ typescript: 5.9.2
'@vue/language-core@3.0.8(typescript@5.9.2)':
dependencies:
@@ -14794,13 +14805,14 @@ snapshots:
dependencies:
ufo: 1.6.1
- vue-component-meta@3.0.8(typescript@5.6.3):
+ vue-component-meta@2.2.12(typescript@5.6.3):
dependencies:
- '@volar/typescript': 2.4.23
- '@vue/language-core': 3.0.8(typescript@5.6.3)
+ '@volar/typescript': 2.4.15
+ '@vue/language-core': 2.2.12(typescript@5.6.3)
path-browserify: 1.0.1
+ vue-component-type-helpers: 2.2.12
+ optionalDependencies:
typescript: 5.6.3
- vue-component-type-helpers: 3.0.8
vue-component-meta@3.0.8(typescript@5.9.2):
dependencies:
@@ -14810,6 +14822,8 @@ snapshots:
typescript: 5.9.2
vue-component-type-helpers: 3.0.8
+ vue-component-type-helpers@2.2.12: {}
+
vue-component-type-helpers@3.0.8: {}
vue-demi@0.14.10(vue@3.5.21(typescript@5.9.2)):