diff --git a/.gitignore b/.gitignore
index 7c462b5..4fe59f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,4 @@ examples/**/dist
.yarn/*
!.yarn/releases
!.yarn/plugins
+*.tgz
diff --git a/package.json b/package.json
index 33cbe5d..ca976ae 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"@types/webpack-merge": "^5.0.0",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
- "@vitejs/plugin-vue": "^1.2.5",
+ "@vitejs/plugin-vue": "^5.0.5",
"@vue/compiler-sfc": "^3.2.23",
"babel-loader": "^8.2.2",
"chalk": "^4.1.1",
@@ -82,13 +82,13 @@
"typescript": "^4.9.3",
"vite": "^4.4.9",
"vitest": "^0.29.8",
- "vue": "^2.6.14",
+ "vue": "^3.2.25",
"vue-i18n": "next",
"vue-loader": "^16.3.0",
"vue-loader15": "npm:vue-loader@15.11.1",
"vue-loader17": "npm:vue-loader@17.4.2",
"vue-template-compiler": "^2.6.14",
- "vue3": "npm:vue@3.3.4",
+ "vue2": "npm:vue@^2.6.14",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
diff --git a/packages/rollup-plugin-vue-i18n/examples/rollup.config.js b/packages/rollup-plugin-vue-i18n/examples/rollup.config.js
index 609bdbe..962d120 100644
--- a/packages/rollup-plugin-vue-i18n/examples/rollup.config.js
+++ b/packages/rollup-plugin-vue-i18n/examples/rollup.config.js
@@ -25,7 +25,7 @@ export default [
entries: {
vue: path.resolve(
__dirname,
- '../../../node_modules/vue3/dist/vue.esm-bundler.js'
+ '../../../node_modules/vue/dist/vue.esm-bundler.js'
)
}
}),
diff --git a/packages/unplugin-vue-i18n/README.md b/packages/unplugin-vue-i18n/README.md
index 8885e1f..b7a5647 100644
--- a/packages/unplugin-vue-i18n/README.md
+++ b/packages/unplugin-vue-i18n/README.md
@@ -374,7 +374,7 @@ Whether to tree-shake message compiler when we will be bundling.
If do you will use this option, you need to enable `jitCompilation` option.
-> [NOTE]
+> [!NOTE]
> After v5 or later, this option can be set with or without `jitCompilation`.
> [!NOTE]
@@ -571,6 +571,18 @@ If do you will use this option, you need to enable `jitCompilation` option.
`useVueI18nImportName` option is deprecated in v5.
This option will be supported with vue-i18n until v9 latest version.
+### `optimizeTranslationDirective`
+
+- **Type**: `boolean` | `string` | `string[]`
+- **Default:** `false`
+
+ Whether to optimize `v-t` directive. If set to `true`, this plugin's transform will automatically translate to vue-i18n's translation function. If you need SSR, you must activate this option.
+
+ If you want to put it manually, you can specify the signature of the translation function as a string or a string array.
+
+ > [!WARNING]
+ About for manually signature, see the details [vue-i18n-extensions API docs](https://github.com/intlify/vue-i18n-extensions/blob/next/docs/%40intlify/vue-i18n-extensions-api.md#translationsignatures) and [usecase from vue-i18n-extensions PR](https://github.com/intlify/vue-i18n-extensions/pull/217/files#diff-3fb9543f91e011d4b0dc9beff44082fe1a99c9eab70c1afab23c3c34352b7c38R121-R200)
+
## π Changelog
Details changes for each release are documented in the [CHANGELOG.md](https://github.com/intlify/bundle-tools/blob/main/packages/unplugin-vue-i18n/CHANGELOG.md)
diff --git a/packages/unplugin-vue-i18n/e2e/vite.test.js b/packages/unplugin-vue-i18n/e2e/vite.test.js
index fb60cc2..a16fa96 100644
--- a/packages/unplugin-vue-i18n/e2e/vite.test.js
+++ b/packages/unplugin-vue-i18n/e2e/vite.test.js
@@ -8,12 +8,14 @@ describe('vite', () => {
await expect(page).toMatch('γγγ«γ‘γ―γδΈηοΌ')
await expect(page).toMatch('γγγγ欲γγοΌ')
await expect(page).toMatch('γγγ 0 ε')
+ await expect(page).toMatch('γγοΌ')
})
test('change locale', async () => {
await page.select('#app select', 'en')
await expect(page).toMatch('Language')
await expect(page).toMatch('hello, world!')
+ await expect(page).toMatch('Hi!')
})
test('change banana select', async () => {
diff --git a/packages/unplugin-vue-i18n/examples/vite/src/App.vue b/packages/unplugin-vue-i18n/examples/vite/src/App.vue
index 140944a..eb8cef0 100644
--- a/packages/unplugin-vue-i18n/examples/vite/src/App.vue
+++ b/packages/unplugin-vue-i18n/examples/vite/src/App.vue
@@ -7,6 +7,7 @@
{{ t('hello') }}
+
@@ -29,15 +30,17 @@ export default {
}
-
+
{
"en": {
"language": "Language",
- "hello": "hello, world!"
+ "hello": "hello, world!",
+ "hi": "Hi!"
},
"ja": {
"language": "θ¨θͺ",
- "hello": "γγγ«γ‘γ―γδΈηοΌ"
+ "hello": "γγγ«γ‘γ―γδΈηοΌ",
+ "hi": "γγοΌ"
}
}
diff --git a/packages/unplugin-vue-i18n/examples/vite/vite.config.ts b/packages/unplugin-vue-i18n/examples/vite/vite.config.ts
index 5a8d5fa..822f8d4 100644
--- a/packages/unplugin-vue-i18n/examples/vite/vite.config.ts
+++ b/packages/unplugin-vue-i18n/examples/vite/vite.config.ts
@@ -8,7 +8,7 @@ export default defineConfig({
alias: {
vue: path.resolve(
__dirname,
- '../../../../node_modules/vue3/dist/vue.esm-bundler.js'
+ '../../../../node_modules/vue/dist/vue.esm-bundler.js'
)
}
},
@@ -20,7 +20,8 @@ export default defineConfig({
plugins: [
vue(),
vueI18n({
- include: path.resolve(__dirname, './src/locales/**')
+ include: path.resolve(__dirname, './src/locales/**'),
+ optimizeTranslationDirective: true
})
]
})
diff --git a/packages/unplugin-vue-i18n/package.json b/packages/unplugin-vue-i18n/package.json
index 398d799..c33a2fc 100644
--- a/packages/unplugin-vue-i18n/package.json
+++ b/packages/unplugin-vue-i18n/package.json
@@ -11,8 +11,8 @@
},
"peerDependencies": {
"petite-vue-i18n": "*",
- "vue-i18n": "*",
- "vue-i18n-bridge": "*"
+ "vue": "^3.2.25",
+ "vue-i18n": "*"
},
"peerDependenciesMeta": {
"petite-vue-i18n": {
@@ -20,16 +20,16 @@
},
"vue-i18n": {
"optional": true
- },
- "vue-i18n-bridge": {
- "optional": true
}
},
"dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
"@intlify/bundle-utils": "^9.0.0-beta.0",
"@intlify/shared": "next",
+ "@intlify/vue-i18n-extensions": "^6.2.0",
"@rollup/pluginutils": "^5.1.0",
- "@vue/compiler-sfc": "^3.2.47",
+ "@typescript-eslint/scope-manager": "^7.13.0",
+ "@typescript-eslint/typescript-estree": "^7.13.0",
"debug": "^4.3.3",
"fast-glob": "^3.2.12",
"js-yaml": "^4.1.0",
@@ -37,7 +37,8 @@
"pathe": "^1.0.0",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2",
- "unplugin": "^1.1.0"
+ "unplugin": "^1.1.0",
+ "vue": "^3.4"
},
"devDependencies": {
"unbuild": "^2.0.0"
diff --git a/packages/unplugin-vue-i18n/src/core/directive.ts b/packages/unplugin-vue-i18n/src/core/directive.ts
new file mode 100644
index 0000000..20f819d
--- /dev/null
+++ b/packages/unplugin-vue-i18n/src/core/directive.ts
@@ -0,0 +1,446 @@
+import path from 'node:path'
+import createDebug from 'debug'
+import { isBoolean } from '@intlify/shared'
+import { transformVTDirective } from '@intlify/vue-i18n-extensions'
+import { analyze as analyzeScope } from '@typescript-eslint/scope-manager'
+import {
+ parse,
+ simpleTraverse,
+ AST_NODE_TYPES
+} from '@typescript-eslint/typescript-estree'
+// @ts-expect-error -- FIXME: missing types
+import eslintUitls from '@eslint-community/eslint-utils'
+import {
+ resolveNamespace,
+ getVitePlugin,
+ checkVuePlugin,
+ normalizePath
+} from '../utils'
+import { parseVueRequest, getVuePluginOptions, getDescriptor } from '../vue'
+
+import type { TranslationSignatureResolver } from '@intlify/vue-i18n-extensions'
+import type { Scope } from '@typescript-eslint/scope-manager'
+import {
+ ParserServicesWithTypeInformation,
+ TSESTree
+} from '@typescript-eslint/typescript-estree'
+import type { UnpluginOptions, RollupPlugin } from 'unplugin'
+import type {
+ VuePluginResolvedOptions,
+ TranslationDirectiveResolveIndetifier
+} from '../vue'
+import type { ResolvedOptions } from './options'
+
+type Node = Parameters<
+ ParserServicesWithTypeInformation['getSymbolAtLocation']
+>[0]
+
+const debug = createDebug(resolveNamespace('directive'))
+
+export function directivePlugin({
+ optimizeTranslationDirective,
+ translationIdentifiers
+}: ResolvedOptions): UnpluginOptions {
+ let vuePlugin: RollupPlugin | null = null
+ let vuePluginOptions: VuePluginResolvedOptions | null = null
+
+ return {
+ name: resolveNamespace('directive'),
+ enforce: 'pre',
+ vite: {
+ config(config) {
+ // @ts-expect-error -- TODO
+ vuePlugin = getVitePlugin(config, 'vite:vue')
+ if (!checkVuePlugin(vuePlugin!)) {
+ return
+ }
+
+ if (optimizeTranslationDirective) {
+ vuePlugin!.api.options = resolveVueOptions(
+ vuePlugin!,
+ optimizeTranslationDirective,
+ translationIdentifiers
+ )
+ debug(`vite:vue options['template']:`, vuePlugin!.api.options)
+ }
+ },
+
+ configResolved(config) {
+ vuePlugin = getVitePlugin(config, 'vite:vue')
+ if (!checkVuePlugin(vuePlugin)) {
+ return
+ }
+ }
+ },
+
+ async transform(code, id) {
+ const { filename } = parseVueRequest(id)
+
+ // lazy load vue plugin options
+ if (vuePluginOptions == null) {
+ vuePluginOptions = getVuePluginOptions(vuePlugin!)
+ }
+
+ if (id.endsWith('.vue')) {
+ analyzeIdentifiers(
+ getDescriptor(filename, code, vuePluginOptions!),
+ vuePluginOptions,
+ translationIdentifiers
+ )
+ }
+
+ return code
+ }
+ }
+}
+
+function resolveVueOptions(
+ vuePlugin: RollupPlugin,
+ optimizeTranslationDirective: ResolvedOptions['optimizeTranslationDirective'],
+ translationIdentifiers: ResolvedOptions['translationIdentifiers']
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+): any {
+ const vueOptions = vuePlugin.api.options
+ vueOptions.template ||= {}
+ vueOptions.template.compilerOptions ||= {}
+ vueOptions.template.compilerOptions.directiveTransforms ||= {}
+
+ /**
+ * NOTE:
+ * This is a custom translation signature resolver for Vue SFC.
+ * The resolver works by this plugin.
+ * That is analyzing the identifier of the `t` function exposed by `useI18n` in vue-i18n.
+ * The analyzed identifier is replaced by the directive transform of the Vue compiler.
+ */
+ const translationSignatureResolver: TranslationSignatureResolver = (
+ context,
+ baseResolver
+ ) => {
+ const { filename } = context
+ const vuePluginOptions = getVuePluginOptions(vuePlugin)
+ const normalizedFilename = normalizePath(
+ path.relative(vuePluginOptions.root, filename)
+ )
+ const resolveIdentifier = translationIdentifiers.get(normalizedFilename)
+ debug('resolved vue-i18n Identifier', resolveIdentifier)
+ if (resolveIdentifier == null) {
+ return undefined
+ }
+
+ if (resolveIdentifier.type === 'identifier') {
+ return baseResolver(context, resolveIdentifier.key)
+ } else {
+ // object
+ const resolvedSignature = baseResolver(context, resolveIdentifier.key)
+ return resolveIdentifier?.style === 'script-setup'
+ ? `${resolvedSignature}.t`
+ : resolvedSignature
+ }
+ }
+
+ vueOptions.template.compilerOptions.directiveTransforms.t =
+ transformVTDirective({
+ translationSignatures: isBoolean(optimizeTranslationDirective)
+ ? translationSignatureResolver
+ : optimizeTranslationDirective
+ })
+
+ return vueOptions
+}
+
+function analyzeIdentifiers(
+ descriptor: ReturnType,
+ { root }: VuePluginResolvedOptions,
+ translationIdentifiers: Map
+) {
+ const source = descriptor.scriptSetup?.content || descriptor.script?.content
+ debug('getDescriptor content', source)
+ if (!source) {
+ return
+ }
+
+ const ast = parse(source, { range: true })
+ simpleTraverse(ast, {
+ enter(node, parent) {
+ if (parent) {
+ node.parent = parent
+ }
+ }
+ })
+ const scopeManager = analyzeScope(ast, { sourceType: 'module' })
+ const scope = getScope(scopeManager, ast)
+
+ const importLocalName = getImportLocalName(scope, 'vue-i18n', 'useI18n')
+ if (importLocalName == null) {
+ return
+ }
+ debug('importLocalName', importLocalName)
+ const resolvedIdentifier = getVueI18nIdentifier(scope, importLocalName!)
+
+ if (resolvedIdentifier) {
+ const normalizedFilename = normalizePath(
+ path.relative(root, descriptor.filename)
+ )
+ debug('set vue-i18n resolved identifier: ', resolvedIdentifier)
+ translationIdentifiers.set(normalizedFilename, resolvedIdentifier)
+ }
+}
+
+function getScope(manager: ReturnType, node: Node): Scope {
+ const scope = manager.acquire(node, true)
+ if (scope) {
+ if (scope.type === 'function-expression-name') {
+ return scope.childScopes[0]
+ }
+ return scope
+ }
+ return manager.scopes[0]
+}
+
+function getImportLocalName(
+ scope: Scope,
+ source: string,
+ imported: string
+): string | null {
+ const importDecl = getImportDeclaration(scope, source)
+ if (importDecl) {
+ const specifierNode = importDecl.specifiers.find(
+ specifierNode =>
+ isImportedIdentifierInImportClause(specifierNode) &&
+ specifierNode.imported.name === imported
+ )
+ return specifierNode ? specifierNode.local.name : null
+ }
+ return null
+}
+
+function getImportDeclaration(scope: Scope, source: string) {
+ const tracker = new eslintUitls.ReferenceTracker(scope)
+ const traceMap = {
+ [source]: {
+ [eslintUitls.ReferenceTracker.ESM]: true,
+ [eslintUitls.ReferenceTracker.READ]: true
+ }
+ }
+ const refs = Array.from(tracker.iterateEsmReferences(traceMap)) satisfies {
+ path: string
+ node: Node
+ }[]
+ return refs.length ? (refs[0].node as TSESTree.ImportDeclaration) : null
+}
+
+function isImportedIdentifierInImportClause(
+ node: TSESTree.ImportClause
+): node is TSESTree.ImportClause & { imported: TSESTree.Identifier } {
+ return 'imported' in node
+}
+
+function getVueI18nIdentifier(scope: Scope, local: string) {
+ // Get the CallExpression and ReturnStatement needed for analysis from scope.
+ const { callExpression, returnStatement } =
+ getCallExpressionAndReturnStatement(scope, local)
+
+ // If CallExpression cannot get, `useI18n` will not be called and exit from this function
+ if (callExpression == null) {
+ return null
+ }
+
+ // Get the AST Nodes from `id` prop on VariableDeclarator
+ // e.g. `const { t } = useI18n()`
+ // VariableDeclarator Node: `{ t } = useI18n()`
+ // expeted AST Nodes: `{ t }`
+ const id = getVariableDeclarationIdFrom(callExpression)
+ if (id == null) {
+ return null
+ }
+
+ // parse variable id from AST Nodes
+ const variableIdPairs = parseVariableId(id)
+ debug('variableIdPairs:', variableIdPairs)
+
+ // parse variable id from RestStatement Node
+ const returnVariableIdPairs = parseReturnStatement(returnStatement)
+ debug('returnVariableIdPairs:', returnVariableIdPairs)
+
+ // resolve identifier
+ return resolveIdentifier(variableIdPairs, returnVariableIdPairs)
+}
+
+const EMPTY_NODE_RETURN = {
+ callExpression: null,
+ returnStatement: null
+} as const
+
+function getCallExpressionAndReturnStatement(
+ scope: Scope,
+ local: string
+):
+ | {
+ callExpression: TSESTree.CallExpression | null
+ returnStatement: TSESTree.ReturnStatement | null
+ }
+ | typeof EMPTY_NODE_RETURN {
+ // TODO: missing types (eslint-utils)
+ const variable = eslintUitls.findVariable(scope, local)
+ if (variable == null) {
+ return EMPTY_NODE_RETURN
+ }
+
+ // @ts-expect-error -- FIXME: missing types (eslint-utils)
+ const callExpressionRef = variable.references.find(ref => {
+ return ref.identifier.parent?.type === AST_NODE_TYPES.CallExpression
+ })
+ if (callExpressionRef == null) {
+ return EMPTY_NODE_RETURN
+ }
+
+ let returnStatement: TSESTree.ReturnStatement | null = null
+ if (
+ callExpressionRef.from.type === 'function' &&
+ callExpressionRef.from.block.type === AST_NODE_TYPES.FunctionExpression &&
+ callExpressionRef.from.block.parent.type === AST_NODE_TYPES.Property &&
+ callExpressionRef.from.block.parent.key.type ===
+ AST_NODE_TYPES.Identifier &&
+ callExpressionRef.from.block.parent.key.name === 'setup'
+ ) {
+ returnStatement = callExpressionRef.from.block.body.body.find(
+ (statement: Node) => {
+ return statement.type === AST_NODE_TYPES.ReturnStatement
+ }
+ ) as TSESTree.ReturnStatement | null
+ }
+
+ return {
+ callExpression: callExpressionRef.identifier
+ .parent as TSESTree.CallExpression,
+ returnStatement
+ }
+}
+
+function getVariableDeclarationIdFrom(node: TSESTree.CallExpression) {
+ if (node.parent?.type !== AST_NODE_TYPES.VariableDeclarator) {
+ return null
+ }
+ return node.parent.id as TSESTree.Identifier | TSESTree.ObjectPattern
+}
+
+type VariableIdPair = {
+ key: string | null
+ value: string | null
+}
+
+function parseVariableId(
+ node: TSESTree.Identifier | TSESTree.ObjectPattern
+): VariableIdPair[] {
+ if (node.type === AST_NODE_TYPES.Identifier) {
+ // Identifier
+ // e.g `const i18n = useI18n()`
+ // [{ key: 'i18n', value: null }]
+ return [{ key: node.name, value: null }]
+ } else {
+ // ObjectPattern
+ // e.g `const { t, d: datetime } = useI18n()`
+ // [{ key: 't', value: 't' }, { key: 'd', value: 'datetime' }]
+ const props = node.properties.filter(
+ // ignore RestElement
+ prop => prop.type === AST_NODE_TYPES.Property
+ ) as TSESTree.Property[]
+ const pairs = [] as { key: string | null; value: string | null }[]
+ for (const prop of props) {
+ if (
+ prop?.key.type === AST_NODE_TYPES.Identifier &&
+ prop?.value.type === AST_NODE_TYPES.Identifier
+ ) {
+ pairs.push({ key: prop.key.name, value: prop.value.name })
+ }
+ }
+ return pairs
+ }
+}
+
+function parseReturnStatement(
+ node: TSESTree.ReturnStatement | null
+): VariableIdPair[] {
+ const pairs = [] as VariableIdPair[]
+ if (node == null || node.argument == null) {
+ return pairs
+ }
+
+ if (node.argument.type === AST_NODE_TYPES.ObjectExpression) {
+ // ObjectExpression
+ for (const prop of node.argument.properties) {
+ if (prop.type === AST_NODE_TYPES.Property) {
+ if (
+ prop.key.type === AST_NODE_TYPES.Identifier &&
+ prop.value.type === AST_NODE_TYPES.Identifier
+ ) {
+ // Identifier
+ // e.g `return { t, d: datetime }`
+ // [{ key: 't', value: 't' }, { key: 'd', value: 'datetime' }]
+ pairs.push({ key: prop.key.name, value: prop.value.name })
+ } else if (
+ prop.key.type === AST_NODE_TYPES.Identifier &&
+ prop.value.type === AST_NODE_TYPES.MemberExpression &&
+ prop.value.object.type === AST_NODE_TYPES.Identifier &&
+ prop.value.property.type === AST_NODE_TYPES.Identifier
+ ) {
+ // MemberExpression
+ // e.g `return { t: i18n.t }`
+ // [{ key: 't', value: 'i18n.t' }]
+ pairs.push({
+ key: prop.key.name,
+ value: `${prop.value.object.name}.${prop.value.property.name}`
+ })
+ }
+ }
+ }
+ return pairs
+ } else if (node.argument.type === AST_NODE_TYPES.Identifier) {
+ // Identifier
+ // e.g `return i18n`
+ return pairs
+ } else {
+ // other AST Nodes
+ return pairs
+ }
+}
+
+function resolveIdentifier(
+ localVariables: VariableIdPair[],
+ returnVariable: VariableIdPair[]
+): TranslationDirectiveResolveIndetifier | null {
+ if (returnVariable.length === 0) {
+ // for `
+
+
+
+ {{ count }} {{ translation('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-global-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-global-option.vue
new file mode 100644
index 0000000..e31068c
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-global-option.vue
@@ -0,0 +1,14 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-local-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-local-option.vue
new file mode 100644
index 0000000..f91090d
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-local-option.vue
@@ -0,0 +1,19 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-option.vue
new file mode 100644
index 0000000..a3646a6
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-option.vue
@@ -0,0 +1,12 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-use.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-use.vue
new file mode 100644
index 0000000..19912bb
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-no-use.vue
@@ -0,0 +1,10 @@
+
+
+
+
+ {{ count }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-obj.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-obj.vue
new file mode 100644
index 0000000..e3c3a05
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/script-setup-obj.vue
@@ -0,0 +1,12 @@
+
+
+
+
+ {{ count }} {{ i18n.t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-alias.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-alias.vue
new file mode 100644
index 0000000..2ed5150
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-alias.vue
@@ -0,0 +1,17 @@
+
+
+
+
+ {{ count }} {{ translation('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-global-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-global-option.vue
new file mode 100644
index 0000000..266768b
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-global-option.vue
@@ -0,0 +1,19 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-local-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-local-option.vue
new file mode 100644
index 0000000..383c767
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-local-option.vue
@@ -0,0 +1,24 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-option.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-option.vue
new file mode 100644
index 0000000..73bb3a2
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-option.vue
@@ -0,0 +1,17 @@
+
+
+
+
+ {{ count }} {{ t('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-use.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-use.vue
new file mode 100644
index 0000000..5146277
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-no-use.vue
@@ -0,0 +1,15 @@
+
+
+
+
+ {{ count }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias-with-obj.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias-with-obj.vue
new file mode 100644
index 0000000..40d1a2d
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias-with-obj.vue
@@ -0,0 +1,17 @@
+
+
+
+
+ {{ count }} {{ translation('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias.vue b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias.vue
new file mode 100644
index 0000000..1926320
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/fixtures/directives/setup-return-alias.vue
@@ -0,0 +1,17 @@
+
+
+
+
+ {{ count }} {{ translation('hello') }}
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/global-mix.vue b/packages/unplugin-vue-i18n/test/fixtures/global-mix.vue
index 6fde3e0..4da5c7c 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/global-mix.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/global-mix.vue
@@ -1,3 +1,4 @@
+
{
"en": {
diff --git a/packages/unplugin-vue-i18n/test/fixtures/global-scope-import.vue b/packages/unplugin-vue-i18n/test/fixtures/global-scope-import.vue
index d3f4b28..1f9b22e 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/global-scope-import.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/global-scope-import.vue
@@ -1,2 +1,3 @@
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/import.vue b/packages/unplugin-vue-i18n/test/fixtures/import.vue
index d3f4b28..1f9b22e 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/import.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/import.vue
@@ -1,2 +1,3 @@
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/json5.vue b/packages/unplugin-vue-i18n/test/fixtures/json5.vue
index d0e98ad..20d44a2 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/json5.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/json5.vue
@@ -1,3 +1,4 @@
+
{
"en": {
diff --git a/packages/unplugin-vue-i18n/test/fixtures/locale-import.vue b/packages/unplugin-vue-i18n/test/fixtures/locale-import.vue
index a4869d7..f8ed91a 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/locale-import.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/locale-import.vue
@@ -1,2 +1,3 @@
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/locale-mix-json.vue b/packages/unplugin-vue-i18n/test/fixtures/locale-mix-json.vue
index c02e2da..2b71bfb 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/locale-mix-json.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/locale-mix-json.vue
@@ -1,3 +1,4 @@
+
{
"en": {
diff --git a/packages/unplugin-vue-i18n/test/fixtures/locale-mix-yaml.vue b/packages/unplugin-vue-i18n/test/fixtures/locale-mix-yaml.vue
index de765ee..9522a51 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/locale-mix-yaml.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/locale-mix-yaml.vue
@@ -1,3 +1,4 @@
+
en:
hello: hello world!
diff --git a/packages/unplugin-vue-i18n/test/fixtures/locale-mix.vue b/packages/unplugin-vue-i18n/test/fixtures/locale-mix.vue
index 076164b..bc28878 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/locale-mix.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/locale-mix.vue
@@ -1,3 +1,4 @@
+
{
"en": {
diff --git a/packages/unplugin-vue-i18n/test/fixtures/locale.vue b/packages/unplugin-vue-i18n/test/fixtures/locale.vue
index f59bc60..c1cf2dc 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/locale.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/locale.vue
@@ -1,3 +1,4 @@
+
{
"hello": "γγγ«γ‘γ―γδΈηοΌ"
diff --git a/packages/unplugin-vue-i18n/test/fixtures/multiple.vue b/packages/unplugin-vue-i18n/test/fixtures/multiple.vue
index 1f0e33e..1fa8c8f 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/multiple.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/multiple.vue
@@ -1,3 +1,4 @@
+
{
"en": {
@@ -12,4 +13,4 @@
"hello": "γγγ«γ‘γ―γδΈηοΌ"
}
}
-
\ No newline at end of file
+
diff --git a/packages/unplugin-vue-i18n/test/fixtures/special-char.vue b/packages/unplugin-vue-i18n/test/fixtures/special-char.vue
index 67d37a2..a6fd2a0 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/special-char.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/special-char.vue
@@ -1,3 +1,4 @@
+
{
"en": {
diff --git a/packages/unplugin-vue-i18n/test/fixtures/yaml.vue b/packages/unplugin-vue-i18n/test/fixtures/yaml.vue
index 7944f46..7c65109 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/yaml.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/yaml.vue
@@ -1,3 +1,4 @@
+
hello: "hello world!"
diff --git a/packages/unplugin-vue-i18n/test/fixtures/yml.vue b/packages/unplugin-vue-i18n/test/fixtures/yml.vue
index 7c2291c..ad07ac0 100644
--- a/packages/unplugin-vue-i18n/test/fixtures/yml.vue
+++ b/packages/unplugin-vue-i18n/test/fixtures/yml.vue
@@ -1,3 +1,4 @@
+
message: "@.caml:{'no apples'} | {0} apple | {n} apples"
diff --git a/packages/unplugin-vue-i18n/test/query.test.ts b/packages/unplugin-vue-i18n/test/query.test.ts
index ebe2bd5..689c5e7 100644
--- a/packages/unplugin-vue-i18n/test/query.test.ts
+++ b/packages/unplugin-vue-i18n/test/query.test.ts
@@ -1,4 +1,4 @@
-import { parseVueRequest } from '../src/query'
+import { parseVueRequest } from '../src/vue'
test('parse', () => {
const id =
diff --git a/packages/unplugin-vue-i18n/test/utils.ts b/packages/unplugin-vue-i18n/test/utils.ts
index 3f168f5..cbd23b6 100644
--- a/packages/unplugin-vue-i18n/test/utils.ts
+++ b/packages/unplugin-vue-i18n/test/utils.ts
@@ -42,9 +42,10 @@ export async function bundleVite(
? options.strictMessage
: true
options.escapeHtml = !!options.escapeHtml
+ options.optimizeTranslationDirective = !!options.optimizeTranslationDirective
const alias: Record = {
- vue: 'vue/dist/vue.runtime.esm-browser.js'
+ vue: 'vue/dist/vue.esm-bundler.js'
}
if (!fixture.startsWith('@')) {
alias['~target'] = resolve(__dirname, target, fixture)
@@ -165,6 +166,7 @@ export async function bundleAndRun(
? options.strictMessage
: true
options.escapeHtml = !!options.escapeHtml
+ options.optimizeTranslationDirective = !!options.optimizeTranslationDirective
const { code, map } = await bundler(fixture, options)
diff --git a/packages/unplugin-vue-i18n/test/vite/__snapshots__/sourcemap.test.ts.snap b/packages/unplugin-vue-i18n/test/vite/__snapshots__/sourcemap.test.ts.snap
index aad5d3e..29529b7 100644
--- a/packages/unplugin-vue-i18n/test/vite/__snapshots__/sourcemap.test.ts.snap
+++ b/packages/unplugin-vue-i18n/test/vite/__snapshots__/sourcemap.test.ts.snap
@@ -1,12 +1,12 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-exports[`custom blocks: json 1`] = `";;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAASA;AAChB,SAAO,UAAU;AACnB;"`;
+exports[`custom blocks: json 1`] = `";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAAS;AAChB,SAAO,UAAU;AACnB;"`;
-exports[`custom blocks: json5 1`] = `";;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAASA;AAChB,SAAO,UAAU;AACnB;"`;
+exports[`custom blocks: json5 1`] = `";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAAS;AAChB,SAAO,UAAU;AACnB;"`;
-exports[`custom blocks: yaml 1`] = `";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAASA;AAChB,SAAO,UAAU;AACnB;"`;
+exports[`custom blocks: yaml 1`] = `";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAAS;AAChB,SAAO,UAAU;AACnB;"`;
-exports[`custom blocks: yml 1`] = `";;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAASA;AAChB,SAAO,UAAU;AACnB;"`;
+exports[`custom blocks: yml 1`] = `";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAAS;AAChB,SAAO,UAAU;AACnB;"`;
exports[`resource files: json 1`] = `";;;;;;;;;;;;;;;;;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,SAASA;AAChB,SAAO,UAAU;AACnB;"`;
diff --git a/packages/unplugin-vue-i18n/test/vite/__snapshots__/translation-directive.test.ts.snap b/packages/unplugin-vue-i18n/test/vite/__snapshots__/translation-directive.test.ts.snap
new file mode 100644
index 0000000..4649ba0
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/vite/__snapshots__/translation-directive.test.ts.snap
@@ -0,0 +1,352 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`translation directive > script-setup-alias 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.translation || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.translation(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > script-setup-global-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > script-setup-local-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"count\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > script-setup-no-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > script-setup-no-use 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString(_ctx.$t(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString($setup.count),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > script-setup-obj 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.i18n.t || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.i18n.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-alias 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.translation || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.translation(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-global-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-local-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"count\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-no-option 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.t || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.t(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-no-use 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString(_ctx.$t(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString($setup.count),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-return-alias 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.translation || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.translation(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
+
+exports[`translation directive > setup-return-alias-with-obj 1`] = `
+"function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return openBlock(), createElementBlock(
+ Fragment,
+ null,
+ [
+ createBaseVNode(
+ \\"h1\\",
+ null,
+ toDisplayString$1(($setup.translation || _ctx.$t)(\\"hello\\", {}, {})),
+ 1
+ /* TEXT */
+ ),
+ createBaseVNode(
+ \\"p\\",
+ null,
+ toDisplayString$1($setup.count) + \\" \\" + toDisplayString$1($setup.translation(\\"hello\\")),
+ 1
+ /* TEXT */
+ )
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+}"
+`;
diff --git a/packages/unplugin-vue-i18n/test/vite/translation-directive.test.ts b/packages/unplugin-vue-i18n/test/vite/translation-directive.test.ts
new file mode 100644
index 0000000..5f2d9a1
--- /dev/null
+++ b/packages/unplugin-vue-i18n/test/vite/translation-directive.test.ts
@@ -0,0 +1,22 @@
+import fg from 'fast-glob'
+import path from 'node:path'
+import { bundleVite, bundleAndRun } from '../utils'
+
+describe('translation directive', async () => {
+ const fixtures = await fg(
+ path.resolve(__dirname, '../fixtures/directives/*.vue')
+ )
+ fixtures.forEach(fixture => {
+ const filename = path.basename(fixture)
+ const basename = filename.replace(/\.vue$/, '')
+ test(basename, async () => {
+ const options = {
+ target: './fixtures/directives/',
+ optimizeTranslationDirective: true
+ }
+ const mod = await bundleAndRun(filename, bundleVite, options)
+ const renderString = mod.module.render.toString() as string
+ expect(renderString).toMatchSnapshot()
+ })
+ })
+})
diff --git a/packages/unplugin-vue-i18n/test/webpack/__snapshots__/sourcemap.test.ts.snap b/packages/unplugin-vue-i18n/test/webpack/__snapshots__/sourcemap.test.ts.snap
index 32f2f6c..ce93f72 100644
--- a/packages/unplugin-vue-i18n/test/webpack/__snapshots__/sourcemap.test.ts.snap
+++ b/packages/unplugin-vue-i18n/test/webpack/__snapshots__/sourcemap.test.ts.snap
@@ -1,12 +1,12 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-exports[`custom blocks: json 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;AACA,CAAuE;AACvE,WAAW,yFAAM,iBAAiB,6FAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe;;AAEhD,iEAAe;;;;;;;;;;;;;;ACTf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC9Z;AACA;AACA,GAAG;AACH;;;;;;;UCXA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
+exports[`custom blocks: json 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkE;AAClE;AACA;AACA,CAAuE;AACvE,WAAW,yFAAM,iBAAiB,6FAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe,oBAAoB,4EAAM;AAC1E;AACA,IAAI,KAAU,EAAE,EAcf;;;AAGD,iEAAe;;;;;;;;;;;;;;AC3Bf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC9Z;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UGXA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
-exports[`custom blocks: json5 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;AACA,CAAkF;AAClF,WAAW,oGAAM,iBAAiB,wGAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe;;AAEhD,iEAAe;;;;;;;;;;;;;;ACTf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC9Z;AACA;AACA,GAAG;AACH;;;;;;;UCXA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
+exports[`custom blocks: json5 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkE;AAClE;AACA;AACA,CAAkF;AAClF,WAAW,oGAAM,iBAAiB,wGAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe,oBAAoB,4EAAM;AAC1E;AACA,IAAI,KAAU,EAAE,EAcf;;;AAGD,iEAAe;;;;;;;;;;;;;;AC3Bf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC9Z;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UGXA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
-exports[`custom blocks: yaml 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA,CAA0F;AAC1F,WAAW,4GAAM,iBAAiB,gHAAM;AACxC,CAAyF;AACzF,WAAW,2GAAM,iBAAiB,+GAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe;;AAEhD,iEAAe;;;;;;;;;;;;;;ACXf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC5Z;AACA,GAAG;AACH;;;;;;;;;;;;;;ACTA,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,sBAAsB,SAAS,kCAAkC,SAAS,+BAA+B,QAAQ,iCAAiC,WAAW,kCAAkC,SAAS,+BAA+B,QAAQ,kCAAkC;AACnZ;AACA,GAAG;AACH;;;;;;UCTA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
+exports[`custom blocks: yaml 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACViE;AACjE;AACA;AACA,CAA0F;AAC1F,WAAW,4GAAM,iBAAiB,gHAAM;AACxC,CAAyF;AACzF,WAAW,2GAAM,iBAAiB,+GAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe,oBAAoB,2EAAM;AAC1E;AACA,IAAI,KAAU,EAAE,EAcf;;;AAGD,iEAAe;;;;;;;;;;;;;;AC7Bf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,yBAAyB,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,mCAAmC;AAC5Z;AACA,GAAG;AACH;;;;;;;;;;;;;;ACTA,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,sBAAsB,SAAS,kCAAkC,SAAS,+BAA+B,QAAQ,iCAAiC,WAAW,kCAAkC,SAAS,+BAA+B,QAAQ,kCAAkC;AACnZ;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UGTA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
-exports[`custom blocks: yml 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;AACA,CAA8E;AAC9E,WAAW,gGAAM,iBAAiB,oGAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe;;AAEhD,iEAAe;;;;;;;;;;;;;;ACTf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,mBAAmB,uBAAuB,GAAG,GAAG,SAAS,GAAG,QAAQ,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,aAAa,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,gBAAgB,QAAQ,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,sBAAsB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,kBAAkB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,mBAAmB,EAAE;AACzpD;AACA,GAAG;AACH;;;;;;UCTA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
+exports[`custom blocks: yml 1`] = `";;;;;;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVgE;AAChE;AACA;AACA,CAA8E;AAC9E,WAAW,gGAAM,iBAAiB,oGAAM;;;AAGxC,CAAoI;AACpI,iCAAiC,kJAAe,oBAAoB,0EAAM;AAC1E;AACA,IAAI,KAAU,EAAE,EAcf;;;AAGD,iEAAe;;;;;;;;;;;;;;AC3Bf,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,mBAAmB,uBAAuB,GAAG,GAAG,SAAS,GAAG,QAAQ,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,aAAa,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,gBAAgB,QAAQ,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,sBAAsB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,kBAAkB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,mBAAmB,EAAE;AACzpD;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UGTA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
exports[`resource files: json 1`] = `";;;;;;;;;;;;;;AAAA;AACA,cAAc,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,mBAAmB,uBAAuB,GAAG,GAAG,SAAS,GAAG,QAAQ,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,aAAa,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,gBAAgB,QAAQ,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,sBAAsB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,kBAAkB,EAAE,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,WAAW,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,mBAAmB,EAAE,GAAG;AACxpD;AACA,cAAc,mCAAmC,SAAS,+BAA+B,QAAQ,iCAAiC,kBAAkB,KAAK,GAAG,SAAS,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,WAAW,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,kBAAkB,EAAE,mCAAmC,SAAS,+BAA+B,QAAQ,kCAAkC,cAAc,EAAE,oCAAoC,SAAS,iCAAiC,QAAQ,kCAAkC,aAAa;AACrrB,GAAG;AACH;AACA,KAAK,kCAAkC,SAAS,+BAA+B,QAAQ,+BAA+B,kBAAkB,SAAS,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,WAAW,kCAAkC,SAAS,+BAA+B,QAAQ,iCAAiC,oBAAoB;AACrZ;AACA;AACA,cAAc,kCAAkC,SAAS,+BAA+B,QAAQ,+BAA+B,kBAAkB,SAAS,kCAAkC,SAAS,+BAA+B,QAAQ,gCAAgC,WAAW,kCAAkC,SAAS,+BAA+B,QAAQ,iCAAiC;AAC1Y;AACA;AACA;AACA,iEAAe;;;;;;UCbf;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACN+B;AACG;;AAElC;AACA,kBAAkB,+CAAS;AAC3B,mBAAmB,oCAAO;AAC1B;;AAEA,iEAAe,+CAAS"`;
diff --git a/packages/vite-plugin-vue-i18n/examples/vite.config.ts b/packages/vite-plugin-vue-i18n/examples/vite.config.ts
index 67f84ed..d77515e 100644
--- a/packages/vite-plugin-vue-i18n/examples/vite.config.ts
+++ b/packages/vite-plugin-vue-i18n/examples/vite.config.ts
@@ -8,7 +8,7 @@ export default defineConfig({
alias: {
vue: path.resolve(
__dirname,
- '../../../node_modules/vue3/dist/vue.esm-bundler.js'
+ '../../../node_modules/vue/dist/vue.esm-bundler.js'
)
}
},
diff --git a/yarn.lock b/yarn.lock
index 266ed7d..06c69c1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -394,21 +394,21 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.20.15, @babel/parser@npm:^7.21.3":
- version: 7.23.0
- resolution: "@babel/parser@npm:7.23.0"
+"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.16":
+ version: 7.22.16
+ resolution: "@babel/parser@npm:7.22.16"
bin:
parser: ./bin/babel-parser.js
- checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354
+ checksum: 944c756b5bdeb07b9fec16ecef6b3c61aff9d4c4b924abadcf01afa1840a740b8e2357ae00482b5b37daad6d2bfd848c947f27ad65138d687b6fdc924bc59edd
languageName: node
linkType: hard
-"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.16":
- version: 7.22.16
- resolution: "@babel/parser@npm:7.22.16"
+"@babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.6":
+ version: 7.24.7
+ resolution: "@babel/parser@npm:7.24.7"
bin:
parser: ./bin/babel-parser.js
- checksum: 944c756b5bdeb07b9fec16ecef6b3c61aff9d4c4b924abadcf01afa1840a740b8e2357ae00482b5b37daad6d2bfd848c947f27ad65138d687b6fdc924bc59edd
+ checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6
languageName: node
linkType: hard
@@ -1235,7 +1235,7 @@ __metadata:
"@types/webpack-merge": ^5.0.0
"@typescript-eslint/eslint-plugin": ^6.21.0
"@typescript-eslint/parser": ^6.21.0
- "@vitejs/plugin-vue": ^1.2.5
+ "@vitejs/plugin-vue": ^5.0.5
"@vue/compiler-sfc": ^3.2.23
babel-loader: ^8.2.2
chalk: ^4.1.1
@@ -1270,13 +1270,13 @@ __metadata:
typescript: ^4.9.3
vite: ^4.4.9
vitest: ^0.29.8
- vue: ^2.6.14
+ vue: ^3.2.25
vue-i18n: next
vue-loader: ^16.3.0
vue-loader15: "npm:vue-loader@15.11.1"
vue-loader17: "npm:vue-loader@17.4.2"
vue-template-compiler: ^2.6.14
- vue3: "npm:vue@3.3.4"
+ vue2: "npm:vue@^2.6.14"
webpack: ^5.88.2
webpack-cli: ^5.1.4
webpack-dev-server: ^4.15.1
@@ -1319,6 +1319,16 @@ __metadata:
languageName: node
linkType: hard
+"@intlify/core-base@npm:9.13.1":
+ version: 9.13.1
+ resolution: "@intlify/core-base@npm:9.13.1"
+ dependencies:
+ "@intlify/message-compiler": 9.13.1
+ "@intlify/shared": 9.13.1
+ checksum: afca8308829efdadb14555da05c7cb12277a829606236833254f35aac2118912e1b3c20e2e0a86a9af3769975a8d6526dcd30b690843bfb7216817cb3a594c43
+ languageName: node
+ linkType: hard
+
"@intlify/message-compiler@npm:10.0.0-alpha.5, @intlify/message-compiler@npm:next":
version: 10.0.0-alpha.5
resolution: "@intlify/message-compiler@npm:10.0.0-alpha.5"
@@ -1329,6 +1339,16 @@ __metadata:
languageName: node
linkType: hard
+"@intlify/message-compiler@npm:9.13.1":
+ version: 9.13.1
+ resolution: "@intlify/message-compiler@npm:9.13.1"
+ dependencies:
+ "@intlify/shared": 9.13.1
+ source-map-js: ^1.0.2
+ checksum: 75fb8625e5907a799834ade3406774996d219cde9aed6369ccf51f37f87e2ce4a05b5c24c010e67a4fcabc8e9af92a2cb28d8fa8e803efc6826250b56b996cea
+ languageName: node
+ linkType: hard
+
"@intlify/shared@npm:10.0.0-alpha.5, @intlify/shared@npm:next":
version: 10.0.0-alpha.5
resolution: "@intlify/shared@npm:10.0.0-alpha.5"
@@ -1336,14 +1356,24 @@ __metadata:
languageName: node
linkType: hard
+"@intlify/shared@npm:9.13.1, @intlify/shared@npm:^9.0.0":
+ version: 9.13.1
+ resolution: "@intlify/shared@npm:9.13.1"
+ checksum: 27f0e351de1fe57955f27076000bb6103fca593049c315d58e01dece2ebd0e25779de28e5586877fd1596d7377f07784014755cdcb64a345e1efe050afadf911
+ languageName: node
+ linkType: hard
+
"@intlify/unplugin-vue-i18n@workspace:packages/unplugin-vue-i18n":
version: 0.0.0-use.local
resolution: "@intlify/unplugin-vue-i18n@workspace:packages/unplugin-vue-i18n"
dependencies:
+ "@eslint-community/eslint-utils": ^4.4.0
"@intlify/bundle-utils": ^9.0.0-beta.0
"@intlify/shared": next
+ "@intlify/vue-i18n-extensions": ^6.2.0
"@rollup/pluginutils": ^5.1.0
- "@vue/compiler-sfc": ^3.2.47
+ "@typescript-eslint/scope-manager": ^7.13.0
+ "@typescript-eslint/typescript-estree": ^7.13.0
debug: ^4.3.3
fast-glob: ^3.2.12
js-yaml: ^4.1.0
@@ -1353,20 +1383,45 @@ __metadata:
source-map-js: ^1.0.2
unbuild: ^2.0.0
unplugin: ^1.1.0
+ vue: ^3.4
peerDependencies:
petite-vue-i18n: "*"
+ vue: ^3.2.25
vue-i18n: "*"
- vue-i18n-bridge: "*"
peerDependenciesMeta:
petite-vue-i18n:
optional: true
vue-i18n:
optional: true
- vue-i18n-bridge:
- optional: true
languageName: unknown
linkType: soft
+"@intlify/vue-i18n-extensions@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "@intlify/vue-i18n-extensions@npm:6.2.0"
+ dependencies:
+ "@babel/parser": ^7.24.6
+ "@intlify/shared": ^9.0.0
+ "@vue/compiler-dom": ^3.2.45
+ vue-i18n: ^9.0.0
+ peerDependencies:
+ "@intlify/shared": ^9.0.0 || ^10.0.0
+ "@vue/compiler-dom": ^3.0.0
+ vue: ^3.0.0
+ vue-i18n: ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ "@intlify/shared":
+ optional: true
+ "@vue/compiler-dom":
+ optional: true
+ vue:
+ optional: true
+ vue-i18n:
+ optional: true
+ checksum: de9b99982f2ed382385e8844f6c8e8c9a510ae2ae8ab81d79db92bcf0597c56eca45e6eb96cb5ac310ed1217708486169679747fd260d8352ab830c32712d97e
+ languageName: node
+ linkType: hard
+
"@istanbuljs/load-nyc-config@npm:^1.0.0":
version: 1.1.0
resolution: "@istanbuljs/load-nyc-config@npm:1.1.0"
@@ -3085,6 +3140,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:^7.13.0":
+ version: 7.13.0
+ resolution: "@typescript-eslint/scope-manager@npm:7.13.0"
+ dependencies:
+ "@typescript-eslint/types": 7.13.0
+ "@typescript-eslint/visitor-keys": 7.13.0
+ checksum: fb9663f414985e0fecd0952a9c5ff2a2e2b975cc7eb07a3fa13243b30d8aa67f9b707d636aa050b673b50a6b63aa8b5ba78a64f712e801e23f9c86e1896c3f21
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/type-utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/type-utils@npm:6.21.0"
@@ -3109,6 +3174,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:7.13.0":
+ version: 7.13.0
+ resolution: "@typescript-eslint/types@npm:7.13.0"
+ checksum: 1b81398bf4d0cb2602220d3a64f3bb74cd7b1e3e75fc1aecd28b9a6d6d20314ed7dffe057db3526ef3bdaa951e401443bb82e034cdebee79b28ea3b4ca9ff50f
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
@@ -3128,6 +3200,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:^7.13.0":
+ version: 7.13.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.13.0"
+ dependencies:
+ "@typescript-eslint/types": 7.13.0
+ "@typescript-eslint/visitor-keys": 7.13.0
+ debug: ^4.3.4
+ globby: ^11.1.0
+ is-glob: ^4.0.3
+ minimatch: ^9.0.4
+ semver: ^7.6.0
+ ts-api-utils: ^1.3.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 5a410db27ddb514344414a579e9f81a0db0e7e9f579aa624ace223655b905705a37510992a94924d9ead3c4c84c9357cf5358599036f7c44f50b56b54a791d82
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/utils@npm:6.21.0"
@@ -3155,6 +3246,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:7.13.0":
+ version: 7.13.0
+ resolution: "@typescript-eslint/visitor-keys@npm:7.13.0"
+ dependencies:
+ "@typescript-eslint/types": 7.13.0
+ eslint-visitor-keys: ^3.4.3
+ checksum: 23d48e1c1b9e16e5a867615ffe7111f637224b79bd738f94282b610a0b6b7bf5e436e1422e82395243d0f58714353fc613a11ea671bb217ea99d710f93ab6a26
+ languageName: node
+ linkType: hard
+
"@ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
@@ -3162,12 +3263,13 @@ __metadata:
languageName: node
linkType: hard
-"@vitejs/plugin-vue@npm:^1.2.5":
- version: 1.10.2
- resolution: "@vitejs/plugin-vue@npm:1.10.2"
+"@vitejs/plugin-vue@npm:^5.0.5":
+ version: 5.0.5
+ resolution: "@vitejs/plugin-vue@npm:5.0.5"
peerDependencies:
- vite: ^2.5.10
- checksum: 7cffcf10f865ba30e380a64eff5aeb69e828905833ae85a1621523d76b7de38a66549deeefecd05788919e0e31aba155d734f67fd97542a6d77046f89ae86c8c
+ vite: ^5.0.0
+ vue: ^3.2.25
+ checksum: 96077539da0c6d0d19f68ca112466d804e374a9e18cdb97b5396793a7eecaff433c109bac82ff0d130d39c48963f658158f2f44696fd0a50df2eb5080fafbdcc
languageName: node
linkType: hard
@@ -3226,27 +3328,16 @@ __metadata:
languageName: node
linkType: hard
-"@vue/compiler-core@npm:3.2.47":
- version: 3.2.47
- resolution: "@vue/compiler-core@npm:3.2.47"
+"@vue/compiler-core@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/compiler-core@npm:3.4.27"
dependencies:
- "@babel/parser": ^7.16.4
- "@vue/shared": 3.2.47
- estree-walker: ^2.0.2
- source-map: ^0.6.1
- checksum: 9ccc2a0b897b59eea56ca4f92ed29c14cd1184f68532edf5fb0fe5cb2833bcf9e4836029effb6eb9a7c872e9e0350fafdcd96ff00c0b5b79e17ded0c068b5f84
- languageName: node
- linkType: hard
-
-"@vue/compiler-core@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/compiler-core@npm:3.3.4"
- dependencies:
- "@babel/parser": ^7.21.3
- "@vue/shared": 3.3.4
+ "@babel/parser": ^7.24.4
+ "@vue/shared": 3.4.27
+ entities: ^4.5.0
estree-walker: ^2.0.2
- source-map-js: ^1.0.2
- checksum: 5437942ea6575b316c9cd84f4f128a44939713da8b6958060e152c599e6d771d5db056c398d7574ee706ff8092e0d99ac4f14e7eef8712a8dd923d2323201b9e
+ source-map-js: ^1.2.0
+ checksum: 7e32dd5d6046be56226b8567ba425df48d67d652bb2ca30ca674955dd4ded546cb9bfefe6a3fca6b2e3294b3fcc2025311982293e9f703b18aded642833987f4
languageName: node
linkType: hard
@@ -3260,41 +3351,30 @@ __metadata:
languageName: node
linkType: hard
-"@vue/compiler-dom@npm:3.2.47":
- version: 3.2.47
- resolution: "@vue/compiler-dom@npm:3.2.47"
+"@vue/compiler-dom@npm:3.4.27, @vue/compiler-dom@npm:^3.2.45":
+ version: 3.4.27
+ resolution: "@vue/compiler-dom@npm:3.4.27"
dependencies:
- "@vue/compiler-core": 3.2.47
- "@vue/shared": 3.2.47
- checksum: 1eced735f865e6df0c2d7fa041f9f27996ff4c0d4baf5fad0f67e65e623215f4394c49bba337b78427c6e71f2cc2db12b19ec6b865b4c057c0a15ccedeb20752
+ "@vue/compiler-core": 3.4.27
+ "@vue/shared": 3.4.27
+ checksum: 12fe6bb552fdcc91ec21279a91b1693a98851b0319f5a8b3895a921d648cdcbca98000192aba91f4f63379d2601400cb5ad1b7dd897e8d815621836ff307820a
languageName: node
linkType: hard
-"@vue/compiler-dom@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/compiler-dom@npm:3.3.4"
+"@vue/compiler-sfc@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/compiler-sfc@npm:3.4.27"
dependencies:
- "@vue/compiler-core": 3.3.4
- "@vue/shared": 3.3.4
- checksum: 1c2ac0c89de8eef7be1c568d57504e6245adaaec40c2c4d9717bc231ca10bf682d918a3b358d24c786eeaf8e0d7eb8a65f57d9044775a304783fde1d069a1896
- languageName: node
- linkType: hard
-
-"@vue/compiler-sfc@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/compiler-sfc@npm:3.3.4"
- dependencies:
- "@babel/parser": ^7.20.15
- "@vue/compiler-core": 3.3.4
- "@vue/compiler-dom": 3.3.4
- "@vue/compiler-ssr": 3.3.4
- "@vue/reactivity-transform": 3.3.4
- "@vue/shared": 3.3.4
+ "@babel/parser": ^7.24.4
+ "@vue/compiler-core": 3.4.27
+ "@vue/compiler-dom": 3.4.27
+ "@vue/compiler-ssr": 3.4.27
+ "@vue/shared": 3.4.27
estree-walker: ^2.0.2
- magic-string: ^0.30.0
- postcss: ^8.1.10
- source-map-js: ^1.0.2
- checksum: 0a0adfdd3e812f528e25e4b3bbf14b2296b719a8aac609eca42035295527cc253b918a552dc15218e917efef26b7ca94054dc8784a1a18c06c3d4bb4d18ab8b9
+ magic-string: ^0.30.10
+ postcss: ^8.4.38
+ source-map-js: ^1.2.0
+ checksum: 9f8a05eb715a4752a51a2715c14e0f5b6175ce967b8851438f4ea3ba392b74edda227a067dc1e85625340f653f43bf69fbb80683a7a6c97c4d7eb4fcd4888013
languageName: node
linkType: hard
@@ -3316,24 +3396,6 @@ __metadata:
languageName: node
linkType: hard
-"@vue/compiler-sfc@npm:^3.2.47":
- version: 3.2.47
- resolution: "@vue/compiler-sfc@npm:3.2.47"
- dependencies:
- "@babel/parser": ^7.16.4
- "@vue/compiler-core": 3.2.47
- "@vue/compiler-dom": 3.2.47
- "@vue/compiler-ssr": 3.2.47
- "@vue/reactivity-transform": 3.2.47
- "@vue/shared": 3.2.47
- estree-walker: ^2.0.2
- magic-string: ^0.25.7
- postcss: ^8.1.10
- source-map: ^0.6.1
- checksum: 4588a513310b9319a00adfdbe789cfe60d5ec19c51e8f2098152b9e81f54be170e16c40463f6b5e4c7ab79796fc31e2de93587a9dd1af136023fa03712b62e68
- languageName: node
- linkType: hard
-
"@vue/compiler-ssr@npm:3.2.33":
version: 3.2.33
resolution: "@vue/compiler-ssr@npm:3.2.33"
@@ -3344,23 +3406,13 @@ __metadata:
languageName: node
linkType: hard
-"@vue/compiler-ssr@npm:3.2.47":
- version: 3.2.47
- resolution: "@vue/compiler-ssr@npm:3.2.47"
- dependencies:
- "@vue/compiler-dom": 3.2.47
- "@vue/shared": 3.2.47
- checksum: 91bc6e46744d5405713c08d8e576971aa6d13a0cde84ec592d3221bf6ee228e49ce12233af8c18dc39723455b420df2951f3616ceb99758eb432485475fa7bc2
- languageName: node
- linkType: hard
-
-"@vue/compiler-ssr@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/compiler-ssr@npm:3.3.4"
+"@vue/compiler-ssr@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/compiler-ssr@npm:3.4.27"
dependencies:
- "@vue/compiler-dom": 3.3.4
- "@vue/shared": 3.3.4
- checksum: 5d1875d55ea864080dd90e5d81a29f93308e312faf00163db5b391b38c2fe799fd3eb58955823dc632f2f8bdd271a4534cc0020646b7f82717be1a8d30dc16e7
+ "@vue/compiler-dom": 3.4.27
+ "@vue/shared": 3.4.27
+ checksum: a9a3a2fd2700dcbe7e3ec27c8c41157ca1bca7ca492b15742b12ff2e7276fa9f0940af369686d6d031c08e6a0bb6b9fbef714d5f10333d6cf22c1b739fb7ce64
languageName: node
linkType: hard
@@ -3404,71 +3456,45 @@ __metadata:
languageName: node
linkType: hard
-"@vue/reactivity-transform@npm:3.2.47":
- version: 3.2.47
- resolution: "@vue/reactivity-transform@npm:3.2.47"
- dependencies:
- "@babel/parser": ^7.16.4
- "@vue/compiler-core": 3.2.47
- "@vue/shared": 3.2.47
- estree-walker: ^2.0.2
- magic-string: ^0.25.7
- checksum: 6fe54374aa8c080c0c421e18134e84e723e2d3e53178cf084c1cd75bc8b1ffaaf07756801f3aa4e1e7ad1ba76356c28bbab4bc1b676159db8fc10f10f2cbd405
- languageName: node
- linkType: hard
-
-"@vue/reactivity-transform@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/reactivity-transform@npm:3.3.4"
- dependencies:
- "@babel/parser": ^7.20.15
- "@vue/compiler-core": 3.3.4
- "@vue/shared": 3.3.4
- estree-walker: ^2.0.2
- magic-string: ^0.30.0
- checksum: b425e78b2084ac7037887fbe012dcad5e5963ac9714ae15a04fda1c6766ec8c53ef231de1cfdc4d3cf46bd5d84bfec8ebdccf48da4ff5ee2f4b5084e54f0a1b1
- languageName: node
- linkType: hard
-
-"@vue/reactivity@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/reactivity@npm:3.3.4"
+"@vue/reactivity@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/reactivity@npm:3.4.27"
dependencies:
- "@vue/shared": 3.3.4
- checksum: 81c3d0c587d23656a57a7a31afb51357274f6512b51baffc67cda183b2361a7e65e646029c26a8bc28587f26b65bba808dcd93cdd3bacab48d2b99d11ad0ec97
+ "@vue/shared": 3.4.27
+ checksum: 15904c6c7b0d7c3f974cbcbe9ff4d89db50e7a6a299b255d682824e1deebefc887739c9403360afa99894cd84a272893095fc46edb54cdab47448383e505291d
languageName: node
linkType: hard
-"@vue/runtime-core@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/runtime-core@npm:3.3.4"
+"@vue/runtime-core@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/runtime-core@npm:3.4.27"
dependencies:
- "@vue/reactivity": 3.3.4
- "@vue/shared": 3.3.4
- checksum: d402da51269658cba5d857d65fbe322121160bcb1a6fcf03601d5183705e92505c6e90418f491a331ca3e27628f457a6ca7158b9add25f5b0cf5cf53664b8011
+ "@vue/reactivity": 3.4.27
+ "@vue/shared": 3.4.27
+ checksum: 68321ba71eb467d8ea8a5fb1ff1355d851a159557a64536f5a823f6568c544f63c1f505245a3054c44710417f6b9d0eb155863fe50f6d437dc95daa3b3d1f943
languageName: node
linkType: hard
-"@vue/runtime-dom@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/runtime-dom@npm:3.3.4"
+"@vue/runtime-dom@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/runtime-dom@npm:3.4.27"
dependencies:
- "@vue/runtime-core": 3.3.4
- "@vue/shared": 3.3.4
- csstype: ^3.1.1
- checksum: dac9ada7f6128bcccc031fe5c25d00db94ffb7c011fcb70bada22fa4d889ff842eeb139ab9304bcc52cb5ae9030911a52cb3510b691bb190bbe5fab680b4411a
+ "@vue/runtime-core": 3.4.27
+ "@vue/shared": 3.4.27
+ csstype: ^3.1.3
+ checksum: c80d28513b0e66d4be5ee579c05016aab13fb6c36d0b341d8d8d10f6b729bdf04784c217719777f1f03926919d60d9efed2c1569eb32c3bf21d9c745be262e54
languageName: node
linkType: hard
-"@vue/server-renderer@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/server-renderer@npm:3.3.4"
+"@vue/server-renderer@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/server-renderer@npm:3.4.27"
dependencies:
- "@vue/compiler-ssr": 3.3.4
- "@vue/shared": 3.3.4
+ "@vue/compiler-ssr": 3.4.27
+ "@vue/shared": 3.4.27
peerDependencies:
- vue: 3.3.4
- checksum: e8598ed1a44df70edaea0ad6786aea6443b9b3d9266249eec5690401859d72d45a1e29ba3eef20e37a95f020abd5e763088b79070ee848af436a4390a253a37a
+ vue: 3.4.27
+ checksum: d90d191fdf590ac1e3a89e6b03b74f2dcd3cc4a72f564c58953553518a30bd33baad4d675dabc2eb7a18cfedacdb826ef10bd4eeafce796ba24e535b60e90a00
languageName: node
linkType: hard
@@ -3479,17 +3505,10 @@ __metadata:
languageName: node
linkType: hard
-"@vue/shared@npm:3.2.47":
- version: 3.2.47
- resolution: "@vue/shared@npm:3.2.47"
- checksum: 0aa711dc9160fa0e476e6e94eea4e019398adf2211352d0e4a672cfb6b65b104bbd5d234807d1c091107bdc0f5d818d0f12378987eb7861d39be3aa9f6cd6e3e
- languageName: node
- linkType: hard
-
-"@vue/shared@npm:3.3.4":
- version: 3.3.4
- resolution: "@vue/shared@npm:3.3.4"
- checksum: 12fe53ff816bfa29ea53f89212067a86512c626b8d30149ff28b36705820f6150e1fb4e4e46897ad9eddb1d1cfc02d8941053939910eed69a905f7a5509baabe
+"@vue/shared@npm:3.4.27":
+ version: 3.4.27
+ resolution: "@vue/shared@npm:3.4.27"
+ checksum: 1fac455e7d6b627ab38d1f6b9276671449f3a7ce2eef20bcdd5f21ea6906fc7154f0ab7e2a3af7719e0cd6c4230d44cbb4543a446b4a7f081970e0efbc2cba78
languageName: node
linkType: hard
@@ -5463,10 +5482,10 @@ __metadata:
languageName: node
linkType: hard
-"csstype@npm:^3.1.1":
- version: 3.1.2
- resolution: "csstype@npm:3.1.2"
- checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5
+"csstype@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7
languageName: node
linkType: hard
@@ -5855,6 +5874,13 @@ __metadata:
languageName: node
linkType: hard
+"entities@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "entities@npm:4.5.0"
+ checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7
+ languageName: node
+ linkType: hard
+
"env-paths@npm:^2.2.0":
version: 2.2.1
resolution: "env-paths@npm:2.2.1"
@@ -9254,12 +9280,12 @@ __metadata:
languageName: node
linkType: hard
-"magic-string@npm:^0.30.0":
- version: 0.30.0
- resolution: "magic-string@npm:0.30.0"
+"magic-string@npm:^0.30.10":
+ version: 0.30.10
+ resolution: "magic-string@npm:0.30.10"
dependencies:
- "@jridgewell/sourcemap-codec": ^1.4.13
- checksum: 7bdf22e27334d8a393858a16f5f840af63a7c05848c000fd714da5aa5eefa09a1bc01d8469362f25cc5c4a14ec01b46557b7fff8751365522acddf21e57c488d
+ "@jridgewell/sourcemap-codec": ^1.4.15
+ checksum: 456fd47c39b296c47dff967e1965121ace35417eab7f45a99e681e725b8661b48e1573c366ee67a27715025b3740773c46b088f115421c7365ea4ea6fa10d399
languageName: node
linkType: hard
@@ -9567,6 +9593,15 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:^9.0.4":
+ version: 9.0.4
+ resolution: "minimatch@npm:9.0.4"
+ dependencies:
+ brace-expansion: ^2.0.1
+ checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5
+ languageName: node
+ linkType: hard
+
"minimist-options@npm:4.1.0":
version: 4.1.0
resolution: "minimist-options@npm:4.1.0"
@@ -9846,6 +9881,15 @@ __metadata:
languageName: node
linkType: hard
+"nanoid@npm:^3.3.7":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2
+ languageName: node
+ linkType: hard
+
"natural-compare@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare@npm:1.4.0"
@@ -10585,6 +10629,17 @@ __metadata:
languageName: node
linkType: hard
+"postcss@npm:^8.4.38":
+ version: 8.4.38
+ resolution: "postcss@npm:8.4.38"
+ dependencies:
+ nanoid: ^3.3.7
+ picocolors: ^1.0.0
+ source-map-js: ^1.2.0
+ checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451
+ languageName: node
+ linkType: hard
+
"prelude-ls@npm:^1.2.1":
version: 1.2.1
resolution: "prelude-ls@npm:1.2.1"
@@ -11808,6 +11863,13 @@ __metadata:
languageName: node
linkType: hard
+"source-map-js@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "source-map-js@npm:1.2.0"
+ checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97
+ languageName: node
+ linkType: hard
+
"source-map-support@npm:^0.5.21, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20":
version: 0.5.21
resolution: "source-map-support@npm:0.5.21"
@@ -12605,7 +12667,7 @@ __metadata:
languageName: node
linkType: hard
-"ts-api-utils@npm:^1.0.1":
+"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0":
version: 1.3.0
resolution: "ts-api-utils@npm:1.3.0"
peerDependencies:
@@ -13191,6 +13253,19 @@ __metadata:
languageName: node
linkType: hard
+"vue-i18n@npm:^9.0.0":
+ version: 9.13.1
+ resolution: "vue-i18n@npm:9.13.1"
+ dependencies:
+ "@intlify/core-base": 9.13.1
+ "@intlify/shared": 9.13.1
+ "@vue/devtools-api": ^6.5.0
+ peerDependencies:
+ vue: ^3.0.0
+ checksum: ec62304958cbff5beac8bbe68798b290c31a44dbc7d06ad2f08c978488fc4e7183f44d8b96e46669dd9920d354de0a157b1cd21db3b6c20337ca68a0c12db028
+ languageName: node
+ linkType: hard
+
"vue-i18n@npm:next":
version: 10.0.0-alpha.5
resolution: "vue-i18n@npm:10.0.0-alpha.5"
@@ -13285,26 +13360,31 @@ __metadata:
languageName: node
linkType: hard
-"vue3@npm:vue@3.3.4":
- version: 3.3.4
- resolution: "vue@npm:3.3.4"
- dependencies:
- "@vue/compiler-dom": 3.3.4
- "@vue/compiler-sfc": 3.3.4
- "@vue/runtime-dom": 3.3.4
- "@vue/server-renderer": 3.3.4
- "@vue/shared": 3.3.4
- checksum: 58b6c62a66a375ce5df460fcb7ba41b37c8637c635faf06ef472ae4197f412cf9ad83586cd8e3f66c486404fbe8550e694f90ff724a571d1ba78830791099c59
- languageName: node
- linkType: hard
-
-"vue@npm:^2.6.14":
+"vue2@npm:vue@^2.6.14":
version: 2.6.14
resolution: "vue@npm:2.6.14"
checksum: 23524a1bdca094d62cb3491a46317eed75184b5d61d28fa846ea5d2b241c1cc7084fc67ee259d47a50a6d0bbc33ecaceb7bb52bff81312fe7da07263f3419942
languageName: node
linkType: hard
+"vue@npm:^3.2.25, vue@npm:^3.4":
+ version: 3.4.27
+ resolution: "vue@npm:3.4.27"
+ dependencies:
+ "@vue/compiler-dom": 3.4.27
+ "@vue/compiler-sfc": 3.4.27
+ "@vue/runtime-dom": 3.4.27
+ "@vue/server-renderer": 3.4.27
+ "@vue/shared": 3.4.27
+ peerDependencies:
+ typescript: "*"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 36d7a965d26af1cce9c309cb15491fd28e09194dd0dec2e4f236bc27165aa41047659e52fcd18a7cd6588d7cf15981f2943fc9420852c28e525f5ecdca771214
+ languageName: node
+ linkType: hard
+
"w3c-hr-time@npm:^1.0.2":
version: 1.0.2
resolution: "w3c-hr-time@npm:1.0.2"