@intlayer/vue-i18n 9.4.3 → 9.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/createI18n.d.ts +4 -5
- package/dist/types/createI18n.d.ts.map +1 -1
- package/dist/types/formats.d.ts +4 -5
- package/dist/types/formats.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts +2 -2
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/resolveVueMessage.d.ts +5 -6
- package/dist/types/resolveVueMessage.d.ts.map +1 -1
- package/dist/types/typedComposer.d.ts +6 -7
- package/dist/types/typedComposer.d.ts.map +1 -1
- package/dist/types/useDictionary.d.ts +1 -2
- package/dist/types/useDictionary.d.ts.map +1 -1
- package/dist/types/useDictionaryDynamic.d.ts +1 -2
- package/dist/types/useDictionaryDynamic.d.ts.map +1 -1
- package/package.json +12 -12
|
@@ -3,9 +3,9 @@ import { DictionaryKeys } from "@intlayer/types/module_augmentation";
|
|
|
3
3
|
import { InjectionKey } from "vue";
|
|
4
4
|
import { I18n, createI18n as createI18n$1 } from "vue-i18n";
|
|
5
5
|
//#region src/createI18n.d.ts
|
|
6
|
-
declare const VERSION = "9.13.1";
|
|
7
|
-
declare const I18nInjectionKey: InjectionKey<I18n>;
|
|
8
|
-
declare const createI18n: typeof createI18n$1;
|
|
6
|
+
export declare const VERSION = "9.13.1";
|
|
7
|
+
export declare const I18nInjectionKey: InjectionKey<I18n>;
|
|
8
|
+
export declare const createI18n: typeof createI18n$1;
|
|
9
9
|
/**
|
|
10
10
|
* Overload set for {@link useI18n}: with a `namespace` option the composer is
|
|
11
11
|
* fully typed against that dictionary (keys and return values); without one
|
|
@@ -37,7 +37,6 @@ type UseI18n = {
|
|
|
37
37
|
* t('apples', 5); // pipe plural choice
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
declare const useI18n: UseI18n;
|
|
40
|
+
export declare const useI18n: UseI18n;
|
|
41
41
|
//#endregion
|
|
42
|
-
export { I18nInjectionKey, VERSION, createI18n, useI18n };
|
|
43
42
|
//# sourceMappingURL=createI18n.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createI18n.d.ts","names":[],"sources":["../../src/createI18n.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"createI18n.d.ts","names":[],"sources":["../../src/createI18n.ts"],"mappings":";;;;;qBA8Ba;qBACA,kBAAkB,aAAa;qBAmI/B,mBAAmB;;;;;;;KAwK3B;GACF,UAAU,gBACT,SAAS;IAA4B,WAAW;MAC/C,cAAc;GAEf,UAAU;IAA4B;MACrC;;;;;;;;;;;;;;;;;;;qBAoBQ,SAqEP"}
|
package/dist/types/formats.d.ts
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
* options (vue-i18n named formats).
|
|
6
6
|
*/
|
|
7
7
|
/** vue-i18n `datetimeFormats` option shape: locale → format name → options. */
|
|
8
|
-
type DateTimeFormatsConfig = Record<string, Record<string, Intl.DateTimeFormatOptions>>;
|
|
8
|
+
export type DateTimeFormatsConfig = Record<string, Record<string, Intl.DateTimeFormatOptions>>;
|
|
9
9
|
/** vue-i18n `numberFormats` option shape: locale → format name → options. */
|
|
10
|
-
type NumberFormatsConfig = Record<string, Record<string, Intl.NumberFormatOptions>>;
|
|
10
|
+
export type NumberFormatsConfig = Record<string, Record<string, Intl.NumberFormatOptions>>;
|
|
11
11
|
/** Formats a date value like vue-i18n's `d()`. */
|
|
12
|
-
declare const formatDateValue: (value: Date | number | string, formatOrOptions: string | Intl.DateTimeFormatOptions | undefined, locale: string, datetimeFormats?: DateTimeFormatsConfig) => string;
|
|
12
|
+
export declare const formatDateValue: (value: Date | number | string, formatOrOptions: string | Intl.DateTimeFormatOptions | undefined, locale: string, datetimeFormats?: DateTimeFormatsConfig) => string;
|
|
13
13
|
/** Formats a number value like vue-i18n's `n()`. */
|
|
14
|
-
declare const formatNumberValue: (value: number, formatOrOptions: string | Intl.NumberFormatOptions | undefined, locale: string, numberFormats?: NumberFormatsConfig) => string;
|
|
14
|
+
export declare const formatNumberValue: (value: number, formatOrOptions: string | Intl.NumberFormatOptions | undefined, locale: string, numberFormats?: NumberFormatsConfig) => string;
|
|
15
15
|
//#endregion
|
|
16
|
-
export { DateTimeFormatsConfig, NumberFormatsConfig, formatDateValue, formatNumberValue };
|
|
17
16
|
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.d.ts","names":[],"sources":["../../src/formats.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"formats.d.ts","names":[],"sources":["../../src/formats.ts"],"mappings":";;;;;;;YAOY,wBAAwB,eAElC,eAAe,KAAK;;YAIV,sBAAsB,eAEhC,eAAe,KAAK;;qBAmBT,kBAAe,OACnB,wBAAsB,0BACH,KAAK,mCAAiC,gBAClD,kBACI;;qBAaP,oBAAiB,eACf,0BACa,KAAK,iCAA+B,gBAChD,gBACE"}
|
|
@@ -5,7 +5,7 @@ import { intlayer } from "vite-intlayer";
|
|
|
5
5
|
* A Vite plugin for vue-i18n compat that wraps vite-intlayer
|
|
6
6
|
* and configures resolve aliases for vue-i18n.
|
|
7
7
|
*/
|
|
8
|
-
declare const vueI18nVitePlugin: (options?: Parameters<typeof intlayer>[0]) => PluginOption[];
|
|
8
|
+
export declare const vueI18nVitePlugin: (options?: Parameters<typeof intlayer>[0]) => PluginOption[];
|
|
9
9
|
//#endregion
|
|
10
|
-
export { vueI18nVitePlugin as default
|
|
10
|
+
export { vueI18nVitePlugin as default };
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/plugin/index.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/plugin/index.ts"],"mappings":";;;;;;;qBAaa,oBAAiB,UAClB,kBAAkB,iBAC3B"}
|
|
@@ -5,15 +5,15 @@ import { MessageValues } from "@intlayer/core/messageFormat";
|
|
|
5
5
|
* Splits a vue-i18n choice message (`'no car | one car | {count} cars'`)
|
|
6
6
|
* into its parts, honoring escaped pipes (`\|`).
|
|
7
7
|
*/
|
|
8
|
-
declare const splitChoices: (message: string) => string[];
|
|
8
|
+
export declare const splitChoices: (message: string) => string[];
|
|
9
9
|
/**
|
|
10
10
|
* vue-i18n's default choice rule:
|
|
11
11
|
* - 2 choices: `1 | other` — 0 picks `other`, 1 picks the first part
|
|
12
12
|
* - 3+ choices: `0 | 1 | other`
|
|
13
13
|
*/
|
|
14
|
-
declare const getChoiceIndex: (choice: number, choicesLength: number) => number;
|
|
14
|
+
export declare const getChoiceIndex: (choice: number, choicesLength: number) => number;
|
|
15
15
|
/** Arguments parsed from vue-i18n's polymorphic `t()` signatures. */
|
|
16
|
-
type ParsedTranslateArguments = {
|
|
16
|
+
export type ParsedTranslateArguments = {
|
|
17
17
|
/** Named (`{name}`) or list (`{0}`) interpolation values. */
|
|
18
18
|
values: MessageValues;
|
|
19
19
|
/** Plural choice count, when a number argument was provided. */
|
|
@@ -26,14 +26,13 @@ type ParsedTranslateArguments = {
|
|
|
26
26
|
* `t(key)`, `t(key, count)`, `t(key, defaultMsg)`, `t(key, list)`,
|
|
27
27
|
* `t(key, named)`, `t(key, named, count)`, `t(key, list, count)`, …
|
|
28
28
|
*/
|
|
29
|
-
declare const parseTranslateArguments: (args: unknown[]) => ParsedTranslateArguments;
|
|
29
|
+
export declare const parseTranslateArguments: (args: unknown[]) => ParsedTranslateArguments;
|
|
30
30
|
/**
|
|
31
31
|
* Resolves a raw dictionary value the vue-i18n way: pipe-separated choice
|
|
32
32
|
* messages (positional rule, not CLDR), named `{name}` and list `{0}`
|
|
33
33
|
* interpolation, and intlayer nodes (`insert`, `plural`, `enu`) produced by
|
|
34
34
|
* dictionaries built with `format: 'vue-i18n'`.
|
|
35
35
|
*/
|
|
36
|
-
declare const resolveVueMessage: (value: unknown, values: MessageValues, count: number | undefined, locale: LocalesValues) => string;
|
|
36
|
+
export declare const resolveVueMessage: (value: unknown, values: MessageValues, count: number | undefined, locale: LocalesValues) => string;
|
|
37
37
|
//#endregion
|
|
38
|
-
export { ParsedTranslateArguments, getChoiceIndex, parseTranslateArguments, resolveVueMessage, splitChoices };
|
|
39
38
|
//# sourceMappingURL=resolveVueMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveVueMessage.d.ts","names":[],"sources":["../../src/resolveVueMessage.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"resolveVueMessage.d.ts","names":[],"sources":["../../src/resolveVueMessage.ts"],"mappings":";;;;;;;qBAWa,eAAY;;;;;;qBAQZ,iBAAc,gBACX;;YAaJ;;EAEV,QAAQ;;EAER;;EAEA;;;;;;;qBAQW,0BAAuB,oBAEjC;;;;;;;qBA6BU,oBAAiB,gBACd,QACN,eAAa,2BACI,QACjB"}
|
|
@@ -7,18 +7,18 @@ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
|
|
|
7
7
|
* The interpreter-resolved content type at dot-path `P` of dictionary `N` —
|
|
8
8
|
* the same type strength as the base `useIntlayer` hook.
|
|
9
9
|
*/
|
|
10
|
-
type ContentAtPath<N extends DictionaryKeys, P> = GetNestingResult<N, P>;
|
|
10
|
+
export type ContentAtPath<N extends DictionaryKeys, P> = GetNestingResult<N, P>;
|
|
11
11
|
/**
|
|
12
12
|
* The value returned by `t()` for key `P` of dictionary `N`: string literals
|
|
13
13
|
* declared in the dictionary keep their literal type (matching the strength of
|
|
14
14
|
* `useIntlayer`), every other node resolves to `string` at runtime.
|
|
15
15
|
*/
|
|
16
|
-
type TranslatedValue<N extends DictionaryKeys, P> = ContentAtPath<N, P> extends string ? ContentAtPath<N, P> : string;
|
|
16
|
+
export type TranslatedValue<N extends DictionaryKeys, P> = ContentAtPath<N, P> extends string ? ContentAtPath<N, P> : string;
|
|
17
17
|
/**
|
|
18
18
|
* The dot-paths of dictionary `N` relative to the namespace prefix `Prefix`
|
|
19
19
|
* (`useI18n({ namespace: 'about.counter' })` → paths under `about.counter`).
|
|
20
20
|
*/
|
|
21
|
-
type ScopedDotPaths<N extends DictionaryKeys, Prefix extends string> = ValidDotPathsFor<N> extends (infer AllPaths) ? AllPaths extends `${Prefix}.${infer RelativePath}` ? RelativePath : never : never;
|
|
21
|
+
export type ScopedDotPaths<N extends DictionaryKeys, Prefix extends string> = ValidDotPathsFor<N> extends (infer AllPaths) ? AllPaths extends `${Prefix}.${infer RelativePath}` ? RelativePath : never : never;
|
|
22
22
|
/** Non-translation members shared by every composer shape. */
|
|
23
23
|
type ComposerBase = {
|
|
24
24
|
locale: WritableComputedRef<string>;
|
|
@@ -32,7 +32,7 @@ type ComposerBase = {
|
|
|
32
32
|
* `te`/`tm` keys are the dictionary's dot-paths and return types are resolved
|
|
33
33
|
* from the content at that path.
|
|
34
34
|
*/
|
|
35
|
-
type TypedComposer<N extends DictionaryKeys> = ComposerBase & {
|
|
35
|
+
export type TypedComposer<N extends DictionaryKeys> = ComposerBase & {
|
|
36
36
|
t: <P extends ValidDotPathsFor<N>>(key: P, ...args: unknown[]) => TranslatedValue<N, P>;
|
|
37
37
|
tc: <P extends ValidDotPathsFor<N>>(key: P, ...args: unknown[]) => TranslatedValue<N, P>;
|
|
38
38
|
te: <P extends ValidDotPathsFor<N>>(key: P) => boolean;
|
|
@@ -43,7 +43,7 @@ type TypedComposer<N extends DictionaryKeys> = ComposerBase & {
|
|
|
43
43
|
* relative dot-paths under `Prefix`, and return types are resolved against
|
|
44
44
|
* the absolute path in the dictionary.
|
|
45
45
|
*/
|
|
46
|
-
type ScopedComposer<N extends DictionaryKeys, Prefix extends string> = ComposerBase & {
|
|
46
|
+
export type ScopedComposer<N extends DictionaryKeys, Prefix extends string> = ComposerBase & {
|
|
47
47
|
t: <P extends ScopedDotPaths<N, Prefix>>(key: P, ...args: unknown[]) => TranslatedValue<N, `${Prefix}.${P}`>;
|
|
48
48
|
tc: <P extends ScopedDotPaths<N, Prefix>>(key: P, ...args: unknown[]) => TranslatedValue<N, `${Prefix}.${P}`>;
|
|
49
49
|
te: <P extends ScopedDotPaths<N, Prefix>>(key: P) => boolean;
|
|
@@ -53,12 +53,11 @@ type ScopedComposer<N extends DictionaryKeys, Prefix extends string> = ComposerB
|
|
|
53
53
|
* Loosely-typed composer returned for the root scope (no namespace): the
|
|
54
54
|
* first segment of each key designates the dictionary (`t('about.title')`).
|
|
55
55
|
*/
|
|
56
|
-
type LooseComposer = ComposerBase & {
|
|
56
|
+
export type LooseComposer = ComposerBase & {
|
|
57
57
|
t: (key: string, ...args: unknown[]) => string;
|
|
58
58
|
tc: (key: string, ...args: unknown[]) => string;
|
|
59
59
|
te: (key: string) => boolean;
|
|
60
60
|
tm: (key: string) => unknown;
|
|
61
61
|
};
|
|
62
62
|
//#endregion
|
|
63
|
-
export { ContentAtPath, LooseComposer, ScopedComposer, ScopedDotPaths, TranslatedValue, TypedComposer };
|
|
64
63
|
//# sourceMappingURL=typedComposer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedComposer.d.ts","names":[],"sources":["../../src/typedComposer.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"typedComposer.d.ts","names":[],"sources":["../../src/typedComposer.ts"],"mappings":";;;;;;;;;YASY,cAAc,UAAU,gBAAgB,KAAK,iBAAiB,GAAG;;;;;;YAOjE,gBAAgB,UAAU,gBAAgB,KACpD,cAAc,GAAG,oBAAoB,cAAc,GAAG;;;;;YAM5C,eAAe,UAAU,gBAAgB,yBACnD,iBAAiB,kBAAiB,YAC9B,oBAAoB,gBAAgB,iBAClC;;KAKH;EACH,QAAQ;EACR;EACA,KAAK,qBAAqB;EAC1B,IACE,OAAO,wBACP,2BAA2B,KAAK;EAElC,IACE,eACA,2BAA2B,KAAK;;;;;;;YASxB,cAAc,UAAU,kBAAkB;EACpD,IAAI,UAAU,iBAAiB,IAC7B,KAAK,MACF,oBACA,gBAAgB,GAAG;EACxB,KAAK,UAAU,iBAAiB,IAC9B,KAAK,MACF,oBACA,gBAAgB,GAAG;EACxB,KAAK,UAAU,iBAAiB,IAAI,KAAK;EACzC,KAAK,UAAU,iBAAiB,IAAI,KAAK,MAAM,cAAc,GAAG;;;;;;;YAQtD,eACV,UAAU,gBACV,yBACE;EACF,IAAI,UAAU,eAAe,GAAG,SAC9B,KAAK,MACF,oBACA,gBAAgB,MAAM,UAAU;EACrC,KAAK,UAAU,eAAe,GAAG,SAC/B,KAAK,MACF,oBACA,gBAAgB,MAAM,UAAU;EACrC,KAAK,UAAU,eAAe,GAAG,SAAS,KAAK;EAC/C,KAAK,UAAU,eAAe,GAAG,SAC/B,KAAK,MACF,cAAc,MAAM,UAAU;;;;;;YAOzB,gBAAgB;EAC1B,IAAI,gBAAgB;EACpB,KAAK,gBAAgB;EACrB,KAAK;EACL,KAAK"}
|
|
@@ -23,7 +23,6 @@ type UseDictionary = {
|
|
|
23
23
|
* at runtime by key, the Babel plugin pre-imports the dictionary JSON at build time
|
|
24
24
|
* and passes it directly here. This enables tree-shaking of unused locale content.
|
|
25
25
|
*/
|
|
26
|
-
declare const useDictionary: UseDictionary;
|
|
26
|
+
export declare const useDictionary: UseDictionary;
|
|
27
27
|
//#endregion
|
|
28
|
-
export { useDictionary };
|
|
29
28
|
//# sourceMappingURL=useDictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../src/useDictionary.ts"],"mappings":";;;;;;;;;;KA0BK;GACF,UAAU,YACT,YAAY,GACZ,UAAU;IAA4B;MACrC,cAAc,WAAW;GAC3B,UAAU,YAAY,uBACrB,YAAY,GACZ,SAAS;IAA4B,WAAW;MAC/C,eAAe,WAAW,gBAAgB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../src/useDictionary.ts"],"mappings":";;;;;;;;;;KA0BK;GACF,UAAU,YACT,YAAY,GACZ,UAAU;IAA4B;MACrC,cAAc,WAAW;GAC3B,UAAU,YAAY,uBACrB,YAAY,GACZ,SAAS;IAA4B,WAAW;MAC/C,eAAe,WAAW,gBAAgB;;;;;;;;;qBAUlC,eAkGP"}
|
|
@@ -23,7 +23,6 @@ type UseDictionaryDynamic = {
|
|
|
23
23
|
* at runtime by key, the Babel plugin dynamically imports the dictionary JSON
|
|
24
24
|
* (or .mjs module) based on the locale.
|
|
25
25
|
*/
|
|
26
|
-
declare const useDictionaryDynamic: UseDictionaryDynamic;
|
|
26
|
+
export declare const useDictionaryDynamic: UseDictionaryDynamic;
|
|
27
27
|
//#endregion
|
|
28
|
-
export { useDictionaryDynamic };
|
|
29
28
|
//# sourceMappingURL=useDictionaryDynamic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../src/useDictionaryDynamic.ts"],"mappings":";;;;;;;;;;KA8BK;GACF,UAAU,YAAY,UAAU,gBAC/B,mBAAmB,0BAA0B,QAAQ,KACrD,KAAK,GACL,UAAU;IAA4B;MACrC,cAAc;GAChB,UAAU,YAAY,UAAU,gBAAgB,uBAC/C,mBAAmB,0BAA0B,QAAQ,KACrD,KAAK,GACL,SAAS;IAA4B,WAAW;MAC/C,eAAe,GAAG;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../src/useDictionaryDynamic.ts"],"mappings":";;;;;;;;;;KA8BK;GACF,UAAU,YAAY,UAAU,gBAC/B,mBAAmB,0BAA0B,QAAQ,KACrD,KAAK,GACL,UAAU;IAA4B;MACrC,cAAc;GAChB,UAAU,YAAY,UAAU,gBAAgB,uBAC/C,mBAAmB,0BAA0B,QAAQ,KACrD,KAAK,GACL,SAAS;IAA4B,WAAW;MAC/C,eAAe,GAAG;;;;;;;;;qBAUV,sBAyGP"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/vue-i18n",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "vue-i18n API adapter for intlayer — useI18n, createI18n, and installIntlayer backed by vue-intlayer",
|
|
6
6
|
"keywords": [
|
|
@@ -75,13 +75,13 @@
|
|
|
75
75
|
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@intlayer/config": "9.4.
|
|
79
|
-
"@intlayer/core": "9.4.
|
|
80
|
-
"@intlayer/dictionaries-entry": "9.4.
|
|
81
|
-
"@intlayer/engine": "9.4.
|
|
82
|
-
"@intlayer/types": "9.4.
|
|
83
|
-
"vite-intlayer": "9.4.
|
|
84
|
-
"vue-intlayer": "9.4.
|
|
78
|
+
"@intlayer/config": "9.4.4",
|
|
79
|
+
"@intlayer/core": "9.4.4",
|
|
80
|
+
"@intlayer/dictionaries-entry": "9.4.4",
|
|
81
|
+
"@intlayer/engine": "9.4.4",
|
|
82
|
+
"@intlayer/types": "9.4.4",
|
|
83
|
+
"vite-intlayer": "9.4.4",
|
|
84
|
+
"vue-intlayer": "9.4.4"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@types/node": "26.4.1",
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
"@utils/ts-config-types": "1.0.4",
|
|
90
90
|
"@utils/tsdown-config": "1.0.4",
|
|
91
91
|
"rimraf": "6.1.3",
|
|
92
|
-
"tsdown": "0.
|
|
92
|
+
"tsdown": "0.23.0",
|
|
93
93
|
"typescript": "7.0.2",
|
|
94
94
|
"vite": "8.2.2",
|
|
95
|
-
"vitest": "
|
|
96
|
-
"vue": "3.5.
|
|
97
|
-
"vue-i18n": "11.4.
|
|
95
|
+
"vitest": "5.0.0",
|
|
96
|
+
"vue": "3.5.42",
|
|
97
|
+
"vue-i18n": "11.4.10"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
|
100
100
|
"vite": ">=4.0.0",
|