@intlayer/vue-i18n 8.12.5-canary.0

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.
Files changed (54) hide show
  1. package/README.md +330 -0
  2. package/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
  3. package/dist/cjs/createI18n.cjs +215 -0
  4. package/dist/cjs/createI18n.cjs.map +1 -0
  5. package/dist/cjs/formats.cjs +31 -0
  6. package/dist/cjs/formats.cjs.map +1 -0
  7. package/dist/cjs/index.cjs +11 -0
  8. package/dist/cjs/plugin/index.cjs +55 -0
  9. package/dist/cjs/plugin/index.cjs.map +1 -0
  10. package/dist/cjs/resolveVueMessage.cjs +67 -0
  11. package/dist/cjs/resolveVueMessage.cjs.map +1 -0
  12. package/dist/cjs/useDictionary.cjs +47 -0
  13. package/dist/cjs/useDictionary.cjs.map +1 -0
  14. package/dist/cjs/useDictionaryDynamic.cjs +43 -0
  15. package/dist/cjs/useDictionaryDynamic.cjs.map +1 -0
  16. package/dist/cjs/useI18nDictionary.cjs +47 -0
  17. package/dist/cjs/useI18nDictionary.cjs.map +1 -0
  18. package/dist/cjs/useI18nDictionaryDynamic.cjs +43 -0
  19. package/dist/cjs/useI18nDictionaryDynamic.cjs.map +1 -0
  20. package/dist/esm/createI18n.mjs +209 -0
  21. package/dist/esm/createI18n.mjs.map +1 -0
  22. package/dist/esm/formats.mjs +28 -0
  23. package/dist/esm/formats.mjs.map +1 -0
  24. package/dist/esm/index.mjs +5 -0
  25. package/dist/esm/plugin/index.mjs +51 -0
  26. package/dist/esm/plugin/index.mjs.map +1 -0
  27. package/dist/esm/resolveVueMessage.mjs +62 -0
  28. package/dist/esm/resolveVueMessage.mjs.map +1 -0
  29. package/dist/esm/useDictionary.mjs +45 -0
  30. package/dist/esm/useDictionary.mjs.map +1 -0
  31. package/dist/esm/useDictionaryDynamic.mjs +41 -0
  32. package/dist/esm/useDictionaryDynamic.mjs.map +1 -0
  33. package/dist/esm/useI18nDictionary.mjs +45 -0
  34. package/dist/esm/useI18nDictionary.mjs.map +1 -0
  35. package/dist/esm/useI18nDictionaryDynamic.mjs +41 -0
  36. package/dist/esm/useI18nDictionaryDynamic.mjs.map +1 -0
  37. package/dist/types/createI18n.d.ts +41 -0
  38. package/dist/types/createI18n.d.ts.map +1 -0
  39. package/dist/types/formats.d.ts +17 -0
  40. package/dist/types/formats.d.ts.map +1 -0
  41. package/dist/types/index.d.ts +5 -0
  42. package/dist/types/plugin/index.d.ts +12 -0
  43. package/dist/types/plugin/index.d.ts.map +1 -0
  44. package/dist/types/resolveVueMessage.d.ts +37 -0
  45. package/dist/types/resolveVueMessage.d.ts.map +1 -0
  46. package/dist/types/useDictionary.d.ts +22 -0
  47. package/dist/types/useDictionary.d.ts.map +1 -0
  48. package/dist/types/useDictionaryDynamic.d.ts +19 -0
  49. package/dist/types/useDictionaryDynamic.d.ts.map +1 -0
  50. package/dist/types/useI18nDictionary.d.ts +22 -0
  51. package/dist/types/useI18nDictionary.d.ts.map +1 -0
  52. package/dist/types/useI18nDictionaryDynamic.d.ts +19 -0
  53. package/dist/types/useI18nDictionaryDynamic.d.ts.map +1 -0
  54. package/package.json +114 -0
@@ -0,0 +1,41 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { DictionaryKeys } from "@intlayer/types/module_augmentation";
3
+ import { InjectionKey, WritableComputedRef } from "vue";
4
+ import { I18n, createI18n as createI18n$1 } from "vue-i18n";
5
+
6
+ //#region src/createI18n.d.ts
7
+ declare const VERSION = "9.13.1";
8
+ declare const I18nInjectionKey: InjectionKey<I18n>;
9
+ declare const createI18n: typeof createI18n$1;
10
+ /**
11
+ * Composable providing a typed `t()` function scoped to a dictionary namespace.
12
+ * Pass `{ namespace: 'myDict' }` to restrict keys to valid dot-notation paths
13
+ * within that intlayer dictionary (autocompleted and validated at compile time).
14
+ *
15
+ * Supports vue-i18n's full message syntax: named (`{name}`) and list (`{0}`)
16
+ * interpolation, pipe choice messages (`'car | cars'` with a count argument),
17
+ * plus `te`/`tm`/`rt` and `Intl`-backed `d()`/`n()` formatters.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const { t } = useI18n({ namespace: 'about' });
22
+ * t('counter.label'); // ✓ typed; compile error if key doesn't exist
23
+ * t('apples', 5); // pipe plural choice
24
+ * ```
25
+ */
26
+ declare const useI18n: <N extends DictionaryKeys = DictionaryKeys>(options?: Record<string, unknown> & {
27
+ namespace?: N;
28
+ }) => {
29
+ locale: WritableComputedRef<string>;
30
+ availableLocales: string[];
31
+ t: <P extends ValidDotPathsFor<N>>(key: P, ...args: unknown[]) => string;
32
+ tc: <P extends ValidDotPathsFor<N>>(key: P, ...args: unknown[]) => string;
33
+ te: <P extends ValidDotPathsFor<N>>(key: P) => boolean;
34
+ tm: <P extends ValidDotPathsFor<N>>(key: P) => unknown;
35
+ rt: (message: unknown, ...args: unknown[]) => string;
36
+ d: (value: Date | number | string, formatOrOptions?: string | Intl.DateTimeFormatOptions) => string;
37
+ n: (value: number, formatOrOptions?: string | Intl.NumberFormatOptions) => string;
38
+ };
39
+ //#endregion
40
+ export { I18nInjectionKey, VERSION, createI18n, useI18n };
41
+ //# sourceMappingURL=createI18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createI18n.d.ts","names":[],"sources":["../../src/createI18n.ts"],"mappings":";;;;;;cA6Ba,OAAA;AAAA,cACA,gBAAA,EAAkB,YAAA,CAAa,IAAA;AAAA,cA0G/B,UAAA,SA0JA,YAAA;;;;;AApQb;;;;;AA0GA;;;;;AA4KA;;cAAa,OAAA,aAAqB,cAAA,GAAiB,cAAA,EACjD,OAAA,GAAU,MAAA;EAA4B,SAAA,GAAY,CAAA;AAAA;EAElD,MAAA,EAAQ,mBAAA;EACR,gBAAA;EACA,CAAA,aAAc,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA,KAAM,IAAA;EAC9C,EAAA,aAAe,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA,KAAM,IAAA;EAC/C,EAAA,aAAe,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA;EACzC,EAAA,aAAe,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA;EACzC,EAAA,GAAK,OAAA,cAAqB,IAAA;EAC1B,CAAA,GACE,KAAA,EAAO,IAAA,oBACP,eAAA,YAA2B,IAAA,CAAK,qBAAA;EAElC,CAAA,GACE,KAAA,UACA,eAAA,YAA2B,IAAA,CAAK,mBAAA;AAAA"}
@@ -0,0 +1,17 @@
1
+ //#region src/formats.d.ts
2
+ /**
3
+ * Locale-aware `d()` / `n()` formatting backed by the native `Intl.*` APIs,
4
+ * honoring the `datetimeFormats` / `numberFormats` maps from `createI18n`
5
+ * options (vue-i18n named formats).
6
+ */
7
+ /** vue-i18n `datetimeFormats` option shape: locale → format name → options. */
8
+ type DateTimeFormatsConfig = Record<string, Record<string, Intl.DateTimeFormatOptions>>;
9
+ /** vue-i18n `numberFormats` option shape: locale → format name → options. */
10
+ type NumberFormatsConfig = Record<string, Record<string, Intl.NumberFormatOptions>>;
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;
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;
15
+ //#endregion
16
+ export { DateTimeFormatsConfig, NumberFormatsConfig, formatDateValue, formatNumberValue };
17
+ //# sourceMappingURL=formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.d.ts","names":[],"sources":["../../src/formats.ts"],"mappings":";;AAOA;;;;;KAAY,qBAAA,GAAwB,MAAA,SAElC,MAAA,SAAe,IAAA,CAAK,qBAAA;;KAIV,mBAAA,GAAsB,MAAA,SAEhC,MAAA,SAAe,IAAA,CAAK,mBAAA;;cAmBT,eAAA,GACX,KAAA,EAAO,IAAA,oBACP,eAAA,WAA0B,IAAA,CAAK,qBAAA,cAC/B,MAAA,UACA,eAAA,GAAkB,qBAAA;;cAaP,iBAAA,GACX,KAAA,UACA,eAAA,WAA0B,IAAA,CAAK,mBAAA,cAC/B,MAAA,UACA,aAAA,GAAgB,mBAAA"}
@@ -0,0 +1,5 @@
1
+ import { I18nInjectionKey, VERSION, createI18n, useI18n } from "./createI18n.js";
2
+ import { useDictionary } from "./useDictionary.js";
3
+ import { useDictionaryDynamic } from "./useDictionaryDynamic.js";
4
+ import { Composer, I18n, I18nOptions, UseI18nOptions } from "vue-i18n";
5
+ export { type Composer, type I18n, I18nInjectionKey, type I18nOptions, type UseI18nOptions, VERSION, createI18n, useDictionary, useDictionaryDynamic, useI18n };
@@ -0,0 +1,12 @@
1
+ import { PluginOption } from "vite";
2
+ import { intlayer } from "vite-intlayer";
3
+
4
+ //#region src/plugin/index.d.ts
5
+ /**
6
+ * A Vite plugin for vue-i18n compat that wraps vite-intlayer
7
+ * and configures resolve aliases for vue-i18n.
8
+ */
9
+ declare const vueI18nVitePlugin: (options?: Parameters<typeof intlayer>[0]) => PluginOption[];
10
+ //#endregion
11
+ export { vueI18nVitePlugin as default, vueI18nVitePlugin };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/plugin/index.ts"],"mappings":";;;;;;AA4BA;;cAAa,iBAAA,GACX,OAAA,GAAU,UAAA,QAAkB,QAAA,SAC3B,YAAA"}
@@ -0,0 +1,37 @@
1
+ import { LocalesValues } from "@intlayer/types/module_augmentation";
2
+ import { MessageValues } from "@intlayer/core/messageFormat";
3
+
4
+ //#region src/resolveVueMessage.d.ts
5
+ /**
6
+ * Splits a vue-i18n choice message (`'no car | one car | {count} cars'`)
7
+ * into its parts, honoring escaped pipes (`\|`).
8
+ */
9
+ declare const splitChoices: (message: string) => string[];
10
+ /**
11
+ * vue-i18n's default choice rule:
12
+ * - 2 choices: `1 | other` — 0 picks `other`, 1 picks the first part
13
+ * - 3+ choices: `0 | 1 | other`
14
+ */
15
+ declare const getChoiceIndex: (choice: number, choicesLength: number) => number;
16
+ /** Arguments parsed from vue-i18n's polymorphic `t()` signatures. */
17
+ type ParsedTranslateArguments = {
18
+ /** Named (`{name}`) or list (`{0}`) interpolation values. */values: MessageValues; /** Plural choice count, when a number argument was provided. */
19
+ count?: number; /** Default message, when a string argument was provided. */
20
+ defaultMessage?: string;
21
+ };
22
+ /**
23
+ * Parses vue-i18n's polymorphic `t()` arguments:
24
+ * `t(key)`, `t(key, count)`, `t(key, defaultMsg)`, `t(key, list)`,
25
+ * `t(key, named)`, `t(key, named, count)`, `t(key, list, count)`, …
26
+ */
27
+ declare const parseTranslateArguments: (args: unknown[]) => ParsedTranslateArguments;
28
+ /**
29
+ * Resolves a raw dictionary value the vue-i18n way: pipe-separated choice
30
+ * messages (positional rule, not CLDR), named `{name}` and list `{0}`
31
+ * interpolation, and intlayer nodes (`insert`, `plural`, `enu`) produced by
32
+ * dictionaries built with `format: 'vue-i18n'`.
33
+ */
34
+ declare const resolveVueMessage: (value: unknown, values: MessageValues, count: number | undefined, locale: LocalesValues) => string;
35
+ //#endregion
36
+ export { ParsedTranslateArguments, getChoiceIndex, parseTranslateArguments, resolveVueMessage, splitChoices };
37
+ //# sourceMappingURL=resolveVueMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveVueMessage.d.ts","names":[],"sources":["../../src/resolveVueMessage.ts"],"mappings":";;;;;;AAWA;;cAAa,YAAA,GAAgB,OAAA;;;AAQ7B;;;cAAa,cAAA,GACX,MAAA,UACA,aAAA;;KAYU,wBAAA;EAAwB,6DAElC,MAAA,EAAQ,aAAA,EAAa;EAErB,KAAA,WAFQ;EAIR,cAAA;AAAA;;;AAQF;;;cAAa,uBAAA,GACX,IAAA,gBACC,wBAAA;;AA6BH;;;;;cAAa,iBAAA,GACX,KAAA,WACA,MAAA,EAAQ,aAAA,EACR,KAAA,sBACA,MAAA,EAAQ,aAAA"}
@@ -0,0 +1,22 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { WritableComputedRef } from "vue";
3
+ import { Dictionary } from "@intlayer/types/dictionary";
4
+
5
+ //#region src/useDictionary.d.ts
6
+ /**
7
+ * Dictionary-accepting variant of `useI18n`.
8
+ *
9
+ * Used internally by the SWC optimization: instead of looking up the dictionary
10
+ * at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time
11
+ * and passes it directly here. This enables tree-shaking of unused locale content.
12
+ */
13
+ declare const useDictionary: <T extends Dictionary>(dictionary: T, namespacePrefix?: string) => {
14
+ locale: WritableComputedRef<string>;
15
+ availableLocales: string[];
16
+ t: <P extends ValidDotPathsFor<any>>(key: P, ...args: unknown[]) => string;
17
+ n: (val: unknown) => string;
18
+ d: (val: unknown) => string;
19
+ };
20
+ //#endregion
21
+ export { useDictionary };
22
+ //# sourceMappingURL=useDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../src/useDictionary.ts"],"mappings":";;;;;;;AAaA;;;;;cAAa,aAAA,aAA2B,UAAA,EACtC,UAAA,EAAY,CAAA,EACZ,eAAA;EAEA,MAAA,EAAQ,mBAAA;EACR,gBAAA;EACA,CAAA,aAAc,gBAAA,OAAuB,GAAA,EAAK,CAAA,KAAM,IAAA;EAChD,CAAA,GAAI,GAAA;EACJ,CAAA,GAAI,GAAA;AAAA"}
@@ -0,0 +1,19 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { StrictModeLocaleMap } from "@intlayer/types/module_augmentation";
3
+ import { WritableComputedRef } from "vue";
4
+ import { Dictionary } from "@intlayer/types/dictionary";
5
+
6
+ //#region src/useDictionaryDynamic.d.ts
7
+ /**
8
+ * Dynamic dictionary-accepting variant of `useI18n`.
9
+ */
10
+ declare const useDictionaryDynamic: <const T extends Dictionary, const K extends string>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, key: K, namespacePrefix?: string) => Promise<{
11
+ locale: WritableComputedRef<string>;
12
+ availableLocales: string[];
13
+ t: <P extends ValidDotPathsFor<any>>(key: P, ...args: unknown[]) => string;
14
+ n: (val: unknown) => string;
15
+ d: (val: unknown) => string;
16
+ }>;
17
+ //#endregion
18
+ export { useDictionaryDynamic };
19
+ //# sourceMappingURL=useDictionaryDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../src/useDictionaryDynamic.ts"],"mappings":";;;;;;;;AAeA;cAAa,oBAAA,mBACK,UAAA,0BAGhB,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,GAAA,EAAK,CAAA,EACL,eAAA,cACC,OAAA;EACD,MAAA,EAAQ,mBAAA;EACR,gBAAA;EACA,CAAA,aAAc,gBAAA,OAAuB,GAAA,EAAK,CAAA,KAAM,IAAA;EAChD,CAAA,GAAI,GAAA;EACJ,CAAA,GAAI,GAAA;AAAA"}
@@ -0,0 +1,22 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { WritableComputedRef } from "vue";
3
+ import { Dictionary } from "@intlayer/types/dictionary";
4
+
5
+ //#region src/useI18nDictionary.d.ts
6
+ /**
7
+ * Dictionary-accepting variant of `useI18n`.
8
+ *
9
+ * Used internally by the SWC optimization: instead of looking up the dictionary
10
+ * at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time
11
+ * and passes it directly here. This enables tree-shaking of unused locale content.
12
+ */
13
+ declare const useI18nDictionary: <T extends Dictionary>(dictionary: T, namespacePrefix?: string) => {
14
+ locale: WritableComputedRef<string>;
15
+ availableLocales: string[];
16
+ t: <P extends ValidDotPathsFor<any>>(key: P, ...args: unknown[]) => string;
17
+ n: (val: unknown) => string;
18
+ d: (val: unknown) => string;
19
+ };
20
+ //#endregion
21
+ export { useI18nDictionary };
22
+ //# sourceMappingURL=useI18nDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useI18nDictionary.d.ts","names":[],"sources":["../../src/useI18nDictionary.ts"],"mappings":";;;;;;;AAaA;;;;;cAAa,iBAAA,aAA+B,UAAA,EAC1C,UAAA,EAAY,CAAA,EACZ,eAAA;EAEA,MAAA,EAAQ,mBAAA;EACR,gBAAA;EACA,CAAA,aAAc,gBAAA,OAAuB,GAAA,EAAK,CAAA,KAAM,IAAA;EAChD,CAAA,GAAI,GAAA;EACJ,CAAA,GAAI,GAAA;AAAA"}
@@ -0,0 +1,19 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { StrictModeLocaleMap } from "@intlayer/types/module_augmentation";
3
+ import { WritableComputedRef } from "vue";
4
+ import { Dictionary } from "@intlayer/types/dictionary";
5
+
6
+ //#region src/useI18nDictionaryDynamic.d.ts
7
+ /**
8
+ * Dynamic dictionary-accepting variant of `useI18n`.
9
+ */
10
+ declare const useI18nDictionaryDynamic: <const T extends Dictionary, const K extends string>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, key: K, namespacePrefix?: string) => {
11
+ locale: WritableComputedRef<string>;
12
+ availableLocales: string[];
13
+ t: <P extends ValidDotPathsFor<any>>(key: P, ...args: unknown[]) => string;
14
+ n: (val: unknown) => string;
15
+ d: (val: unknown) => string;
16
+ };
17
+ //#endregion
18
+ export { useI18nDictionaryDynamic };
19
+ //# sourceMappingURL=useI18nDictionaryDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useI18nDictionaryDynamic.d.ts","names":[],"sources":["../../src/useI18nDictionaryDynamic.ts"],"mappings":";;;;;;;;AAUA;cAAa,wBAAA,mBACK,UAAA,0BAGhB,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,GAAA,EAAK,CAAA,EACL,eAAA;EAEA,MAAA,EAAQ,mBAAA;EACR,gBAAA;EACA,CAAA,aAAc,gBAAA,OAAuB,GAAA,EAAK,CAAA,KAAM,IAAA;EAChD,CAAA,GAAI,GAAA;EACJ,CAAA,GAAI,GAAA;AAAA"}
package/package.json ADDED
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "@intlayer/vue-i18n",
3
+ "version": "8.12.5-canary.0",
4
+ "private": false,
5
+ "description": "vue-i18n API adapter for intlayer — useI18n, createI18n, and installIntlayer backed by vue-intlayer",
6
+ "keywords": [
7
+ "intlayer",
8
+ "vue-i18n",
9
+ "vue",
10
+ "i18n",
11
+ "adapter",
12
+ "compatibility"
13
+ ],
14
+ "homepage": "https://intlayer.org",
15
+ "bugs": {
16
+ "url": "https://github.com/aymericzip/intlayer/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/aymericzip/intlayer.git"
21
+ },
22
+ "license": "Apache-2.0",
23
+ "author": {
24
+ "name": "Aymeric PINEAU",
25
+ "url": "https://github.com/aymericzip"
26
+ },
27
+ "contributors": [
28
+ {
29
+ "name": "Aymeric Pineau",
30
+ "email": "ay.pineau@gmail.com",
31
+ "url": "https://github.com/aymericzip"
32
+ }
33
+ ],
34
+ "sideEffects": false,
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/types/index.d.ts",
38
+ "require": "./dist/cjs/index.cjs",
39
+ "import": "./dist/esm/index.mjs"
40
+ },
41
+ "./plugin": {
42
+ "types": "./dist/types/plugin/index.d.ts",
43
+ "require": "./dist/cjs/plugin/index.cjs",
44
+ "import": "./dist/esm/plugin/index.mjs"
45
+ },
46
+ "./package.json": "./package.json"
47
+ },
48
+ "main": "dist/cjs/index.cjs",
49
+ "module": "dist/esm/index.mjs",
50
+ "types": "dist/types/index.d.ts",
51
+ "typesVersions": {
52
+ "*": {
53
+ "plugin": [
54
+ "./dist/types/plugin/index.d.ts"
55
+ ]
56
+ }
57
+ },
58
+ "files": [
59
+ "./dist",
60
+ "./package.json"
61
+ ],
62
+ "scripts": {
63
+ "build": "bun --bun tsdown --config tsdown.config.ts",
64
+ "build:ci": "bun --bun tsdown --config tsdown.config.ts",
65
+ "clean": "bun --bun rimraf ./dist .turbo",
66
+ "dev": "bun --bun tsdown --config tsdown.config.ts --watch",
67
+ "format": "bun --bun biome format . --check",
68
+ "format:fix": "bun --bun biome format --write .",
69
+ "lint": "bun --bun biome lint .",
70
+ "lint:fix": "bun --bun biome lint --write .",
71
+ "prepublish": "cp -f ../../README.md ./README.md",
72
+ "publish": "bun publish || true",
73
+ "publish:canary": "bun publish --access public --tag canary || true",
74
+ "publish:latest": "bun publish --access public --tag latest || true",
75
+ "test": "bun --bun vitest run",
76
+ "test:watch": "bun --bun vitest",
77
+ "typecheck": "tsc --noEmit --project tsconfig.types.json"
78
+ },
79
+ "dependencies": {
80
+ "@intlayer/chokidar": "9.0.0-canary.1",
81
+ "@intlayer/config": "9.0.0-canary.1",
82
+ "@intlayer/core": "9.0.0-canary.1",
83
+ "@intlayer/dictionaries-entry": "9.0.0-canary.1",
84
+ "@intlayer/types": "9.0.0-canary.1",
85
+ "vite-intlayer": "9.0.0-canary.1",
86
+ "vue-intlayer": "9.0.0-canary.1"
87
+ },
88
+ "devDependencies": {
89
+ "@types/node": "25.9.3",
90
+ "@utils/ts-config": "1.0.4",
91
+ "@utils/ts-config-types": "1.0.4",
92
+ "@utils/tsdown-config": "1.0.4",
93
+ "rimraf": "6.1.3",
94
+ "tsdown": "0.21.10",
95
+ "typescript": "6.0.3",
96
+ "vite": "8.0.16",
97
+ "vitest": "4.1.9",
98
+ "vue": "3.5.35",
99
+ "vue-i18n": "11.4.5"
100
+ },
101
+ "peerDependencies": {
102
+ "vite": ">=4.0.0",
103
+ "vue": ">=3.0.0",
104
+ "vue-i18n": ">=9.0.0"
105
+ },
106
+ "peerDependenciesMeta": {
107
+ "vite": {
108
+ "optional": true
109
+ }
110
+ },
111
+ "engines": {
112
+ "node": ">=14.18"
113
+ }
114
+ }