@intlayer/use-intl 9.0.0-canary.10

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 (106) hide show
  1. package/README.md +330 -0
  2. package/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
  3. package/dist/cjs/client/IntlProvider.cjs +30 -0
  4. package/dist/cjs/client/IntlProvider.cjs.map +1 -0
  5. package/dist/cjs/client/helpers.cjs +49 -0
  6. package/dist/cjs/client/helpers.cjs.map +1 -0
  7. package/dist/cjs/client/index.cjs +27 -0
  8. package/dist/cjs/client/index.cjs.map +1 -0
  9. package/dist/cjs/client/useLocale.cjs +20 -0
  10. package/dist/cjs/client/useLocale.cjs.map +1 -0
  11. package/dist/cjs/client/useTranslations.cjs +39 -0
  12. package/dist/cjs/client/useTranslations.cjs.map +1 -0
  13. package/dist/cjs/core/createFormatter.cjs +23 -0
  14. package/dist/cjs/core/createFormatter.cjs.map +1 -0
  15. package/dist/cjs/core/createTranslator.cjs +30 -0
  16. package/dist/cjs/core/createTranslator.cjs.map +1 -0
  17. package/dist/cjs/core/errors.cjs +42 -0
  18. package/dist/cjs/core/errors.cjs.map +1 -0
  19. package/dist/cjs/core/hasLocale.cjs +23 -0
  20. package/dist/cjs/core/hasLocale.cjs.map +1 -0
  21. package/dist/cjs/core/index.cjs +13 -0
  22. package/dist/cjs/core/initializeConfig.cjs +25 -0
  23. package/dist/cjs/core/initializeConfig.cjs.map +1 -0
  24. package/dist/cjs/core/types.cjs +0 -0
  25. package/dist/cjs/index.cjs +30 -0
  26. package/dist/cjs/plugin/index.cjs +80 -0
  27. package/dist/cjs/plugin/index.cjs.map +1 -0
  28. package/dist/cjs/shared/intlFormatter.cjs +63 -0
  29. package/dist/cjs/shared/intlFormatter.cjs.map +1 -0
  30. package/dist/cjs/shared/namespaceTranslator.cjs +122 -0
  31. package/dist/cjs/shared/namespaceTranslator.cjs.map +1 -0
  32. package/dist/cjs/shared/translateFunctionTypes.cjs +0 -0
  33. package/dist/cjs/useDictionary.cjs +37 -0
  34. package/dist/cjs/useDictionary.cjs.map +1 -0
  35. package/dist/cjs/useDictionaryDynamic.cjs +31 -0
  36. package/dist/cjs/useDictionaryDynamic.cjs.map +1 -0
  37. package/dist/esm/client/IntlProvider.mjs +28 -0
  38. package/dist/esm/client/IntlProvider.mjs.map +1 -0
  39. package/dist/esm/client/helpers.mjs +44 -0
  40. package/dist/esm/client/helpers.mjs.map +1 -0
  41. package/dist/esm/client/index.mjs +17 -0
  42. package/dist/esm/client/index.mjs.map +1 -0
  43. package/dist/esm/client/useLocale.mjs +18 -0
  44. package/dist/esm/client/useLocale.mjs.map +1 -0
  45. package/dist/esm/client/useTranslations.mjs +37 -0
  46. package/dist/esm/client/useTranslations.mjs.map +1 -0
  47. package/dist/esm/core/createFormatter.mjs +22 -0
  48. package/dist/esm/core/createFormatter.mjs.map +1 -0
  49. package/dist/esm/core/createTranslator.mjs +28 -0
  50. package/dist/esm/core/createTranslator.mjs.map +1 -0
  51. package/dist/esm/core/errors.mjs +39 -0
  52. package/dist/esm/core/errors.mjs.map +1 -0
  53. package/dist/esm/core/hasLocale.mjs +21 -0
  54. package/dist/esm/core/hasLocale.mjs.map +1 -0
  55. package/dist/esm/core/index.mjs +7 -0
  56. package/dist/esm/core/initializeConfig.mjs +23 -0
  57. package/dist/esm/core/initializeConfig.mjs.map +1 -0
  58. package/dist/esm/core/types.mjs +0 -0
  59. package/dist/esm/index.mjs +14 -0
  60. package/dist/esm/plugin/index.mjs +76 -0
  61. package/dist/esm/plugin/index.mjs.map +1 -0
  62. package/dist/esm/shared/intlFormatter.mjs +61 -0
  63. package/dist/esm/shared/intlFormatter.mjs.map +1 -0
  64. package/dist/esm/shared/namespaceTranslator.mjs +129 -0
  65. package/dist/esm/shared/namespaceTranslator.mjs.map +1 -0
  66. package/dist/esm/shared/translateFunctionTypes.mjs +0 -0
  67. package/dist/esm/useDictionary.mjs +35 -0
  68. package/dist/esm/useDictionary.mjs.map +1 -0
  69. package/dist/esm/useDictionaryDynamic.mjs +29 -0
  70. package/dist/esm/useDictionaryDynamic.mjs.map +1 -0
  71. package/dist/types/client/IntlProvider.d.ts +29 -0
  72. package/dist/types/client/IntlProvider.d.ts.map +1 -0
  73. package/dist/types/client/helpers.d.ts +31 -0
  74. package/dist/types/client/helpers.d.ts.map +1 -0
  75. package/dist/types/client/index.d.ts +16 -0
  76. package/dist/types/client/index.d.ts.map +1 -0
  77. package/dist/types/client/useLocale.d.ts +12 -0
  78. package/dist/types/client/useLocale.d.ts.map +1 -0
  79. package/dist/types/client/useTranslations.d.ts +44 -0
  80. package/dist/types/client/useTranslations.d.ts.map +1 -0
  81. package/dist/types/core/createFormatter.d.ts +21 -0
  82. package/dist/types/core/createFormatter.d.ts.map +1 -0
  83. package/dist/types/core/createTranslator.d.ts +56 -0
  84. package/dist/types/core/createTranslator.d.ts.map +1 -0
  85. package/dist/types/core/errors.d.ts +31 -0
  86. package/dist/types/core/errors.d.ts.map +1 -0
  87. package/dist/types/core/hasLocale.d.ts +18 -0
  88. package/dist/types/core/hasLocale.d.ts.map +1 -0
  89. package/dist/types/core/index.d.ts +7 -0
  90. package/dist/types/core/initializeConfig.d.ts +14 -0
  91. package/dist/types/core/initializeConfig.d.ts.map +1 -0
  92. package/dist/types/core/types.d.ts +2 -0
  93. package/dist/types/index.d.ts +16 -0
  94. package/dist/types/plugin/index.d.ts +22 -0
  95. package/dist/types/plugin/index.d.ts.map +1 -0
  96. package/dist/types/shared/intlFormatter.d.ts +19 -0
  97. package/dist/types/shared/intlFormatter.d.ts.map +1 -0
  98. package/dist/types/shared/namespaceTranslator.d.ts +51 -0
  99. package/dist/types/shared/namespaceTranslator.d.ts.map +1 -0
  100. package/dist/types/shared/translateFunctionTypes.d.ts +34 -0
  101. package/dist/types/shared/translateFunctionTypes.d.ts.map +1 -0
  102. package/dist/types/useDictionary.d.ts +23 -0
  103. package/dist/types/useDictionary.d.ts.map +1 -0
  104. package/dist/types/useDictionaryDynamic.d.ts +18 -0
  105. package/dist/types/useDictionaryDynamic.d.ts.map +1 -0
  106. package/package.json +127 -0
@@ -0,0 +1,19 @@
1
+ import { createFormatter } from "use-intl";
2
+
3
+ //#region src/shared/intlFormatter.d.ts
4
+ /** The formatter object shape exposed by use-intl. */
5
+ type Formatter = ReturnType<typeof createFormatter>;
6
+ /**
7
+ * Builds a use-intl compatible formatter backed by the native `Intl.*` APIs
8
+ * for the given locale.
9
+ *
10
+ * Shared by `useFormatter` (React hook) and `createFormatter` (non-React core).
11
+ *
12
+ * @param locale - The locale used by every `Intl.*` formatter instance.
13
+ * @returns A formatter exposing `dateTime`, `number`, `dateTimeRange`,
14
+ * `relativeTime`, `list`, and `displayName`.
15
+ */
16
+ declare const buildIntlFormatter: (locale: string) => Formatter;
17
+ //#endregion
18
+ export { Formatter, buildIntlFormatter };
19
+ //# sourceMappingURL=intlFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intlFormatter.d.ts","names":[],"sources":["../../../src/shared/intlFormatter.ts"],"mappings":";;;;KAGY,SAAA,GAAY,UAAA,QAAkB,eAAA;AAA1C;;;;;AA0BA;;;;;AA1BA,cA0Ba,kBAAA,GAAsB,MAAA,aAAiB,SAAA"}
@@ -0,0 +1,51 @@
1
+ import { LocalesValues } from "@intlayer/types/module_augmentation";
2
+ import { ReactNode } from "react";
3
+ import { MessageValues } from "@intlayer/core/messageFormat";
4
+
5
+ //#region src/shared/namespaceTranslator.d.ts
6
+ /** Chunk renderer used by `t.rich()` — maps tag children to a React node. */
7
+ type RichChunkRenderer = (chunks: ReactNode) => ReactNode;
8
+ /** Chunk renderer used by `t.markup()` — maps tag children to a string. */
9
+ type MarkupChunkRenderer = (chunks: string) => string;
10
+ /**
11
+ * Reads a dotted `path` (e.g. `counter.label`) out of a nested object value.
12
+ *
13
+ * @param objectValue - The object to read from.
14
+ * @param path - Dot-separated path. An empty path returns `objectValue`.
15
+ * @returns The value found at `path`, or `undefined` when any segment is absent.
16
+ */
17
+ declare const navigatePath: (objectValue: unknown, path: string) => unknown;
18
+ /**
19
+ * The untyped runtime translator shared by `useTranslations` (React hook) and
20
+ * `createTranslator` (non-React core).
21
+ *
22
+ * Behaviour matches use-intl / next-intl:
23
+ * - namespace `'about'` → keys resolved inside the `about` dictionary
24
+ * - namespace `'about.counter'` → dictionary `about`, key prefix `counter`
25
+ * - no namespace → the first segment of each key is the dictionary key
26
+ * - messages support ICU syntax (plural, select, `#`, formatted arguments)
27
+ * - `t.rich` / `t.markup` map `<tag>chunks</tag>` through the provided
28
+ * renderers; `t.raw` returns the raw value; `t.has` checks existence
29
+ *
30
+ * @param locale - The locale dictionaries are resolved for.
31
+ * @param namespace - Optional dictionary key, optionally with a nested scope.
32
+ * @returns A translate function augmented with `has`, `raw`, `rich`, `markup`.
33
+ */
34
+ declare const createNamespaceTranslator: (locale: LocalesValues, namespace?: string) => ((key: string, values?: MessageValues) => string) & {
35
+ /** Returns `true` if the given key exists in the namespace. */has: (key: string) => boolean; /** Returns the raw unprocessed content for the given key. */
36
+ raw: (key: string) => unknown;
37
+ /**
38
+ * Resolves a message containing `<tag>chunks</tag>` markup, mapping each
39
+ * tag through the matching renderer in `values`.
40
+ */
41
+ rich: (key: string, values?: Record<string, unknown>) => ReactNode;
42
+ /**
43
+ * Resolves a message containing `<tag>chunks</tag>` markup into a string,
44
+ * mapping each tag through the matching string renderer in `values`.
45
+ */
46
+ markup: (key: string, values?: Record<string, unknown>) => string;
47
+ };
48
+ type CompatTranslator = ReturnType<typeof createNamespaceTranslator>;
49
+ //#endregion
50
+ export { CompatTranslator, MarkupChunkRenderer, RichChunkRenderer, createNamespaceTranslator, navigatePath };
51
+ //# sourceMappingURL=namespaceTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaceTranslator.d.ts","names":[],"sources":["../../../src/shared/namespaceTranslator.tsx"],"mappings":";;;;;;KAeY,iBAAA,IAAqB,MAAA,EAAQ,SAAA,KAAc,SAAA;AAAvD;AAAA,KAGY,mBAAA,IAAuB,MAAA;;;;;;;;cAStB,YAAA,GAAgB,WAAA,WAAsB,IAAA;;;;;AAAnD;;;;;AAwGA;;;;;;;cAAa,yBAAA,GACX,MAAA,EAAQ,aAAA,EACR,SAAA,gBAAkB,GAAA,UAyDY,MAAA,GAAW,aAAA;EAyBF,8FAnF/B;;EACR;;;;sBAuEoB,MAAA,GAAW,MAAA,sBAA0B,SAAA;;;;;wBAWnC,MAAA,GAAW,MAAA;AAAA;AAAA,KASvB,gBAAA,GAAmB,UAAA,QAAkB,yBAAA"}
@@ -0,0 +1,34 @@
1
+ import { MarkupChunkRenderer, RichChunkRenderer } from "./namespaceTranslator.js";
2
+ import { DictionaryKeys } from "@intlayer/types/module_augmentation";
3
+ import { ReactNode } from "react";
4
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
5
+
6
+ //#region src/shared/translateFunctionTypes.d.ts
7
+ /**
8
+ * The translation function returned for a bare dictionary key namespace.
9
+ *
10
+ * `key` is validated against the dictionary's dot-paths. Beyond the call
11
+ * signature, the function exposes:
12
+ * - `has(key)` — returns `true` when the key exists in the namespace.
13
+ * - `raw(key)` — returns the unprocessed content value.
14
+ * - `rich(key, values)` — resolves `<tag>chunks</tag>` markup to React nodes.
15
+ * - `markup(key, values)` — resolves `<tag>chunks</tag>` markup to a string.
16
+ */
17
+ type TranslateFunction<N extends DictionaryKeys> = {
18
+ /** Translate a key to a string, with optional ICU interpolation params. */<P extends ValidDotPathsFor<N>>(key: P, params?: Record<string, unknown>): string; /** Returns `true` if the given key exists in the namespace. */
19
+ has<P extends ValidDotPathsFor<N>>(key: P): boolean; /** Returns the raw unprocessed content for the given key. */
20
+ raw<P extends ValidDotPathsFor<N>>(key: P): unknown; /** Resolves rich-text markup, mapping tags through React renderers. */
21
+ rich<P extends ValidDotPathsFor<N>>(key: P, values?: Record<string, RichChunkRenderer | ReactNode>): ReactNode; /** Resolves rich-text markup, mapping tags through string renderers. */
22
+ markup<P extends ValidDotPathsFor<N>>(key: P, values?: Record<string, MarkupChunkRenderer | string | number>): string;
23
+ };
24
+ /** Loosely-typed function returned for nested `'dict.scope'` namespaces. */
25
+ type LooseTranslateFunction = {
26
+ (key: string, params?: Record<string, unknown>): string;
27
+ has(key: string): boolean;
28
+ raw(key: string): unknown;
29
+ rich(key: string, values?: Record<string, RichChunkRenderer | ReactNode>): ReactNode;
30
+ markup(key: string, values?: Record<string, MarkupChunkRenderer | string | number>): string;
31
+ };
32
+ //#endregion
33
+ export { LooseTranslateFunction, TranslateFunction };
34
+ //# sourceMappingURL=translateFunctionTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateFunctionTypes.d.ts","names":[],"sources":["../../../src/shared/translateFunctionTypes.ts"],"mappings":";;;;;;;;AAkBA;;;;;;;;KAAY,iBAAA,WAA4B,cAAA;EAOxB,sFALH,gBAAA,CAAiB,CAAA,GAC1B,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,MAAA,4BAKoB;EAF/B,GAAA,WAAc,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA,YAEA;EAAxC,GAAA,WAAc,gBAAA,CAAiB,CAAA,GAAI,GAAA,EAAK,CAAA,YAEzB;EAAf,IAAA,WAAe,gBAAA,CAAiB,CAAA,GAC9B,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,MAAA,SAAe,iBAAA,GAAoB,SAAA,IAC3C,SAAA,EADuB;EAG1B,MAAA,WAAiB,gBAAA,CAAiB,CAAA,GAChC,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,MAAA,SAAe,mBAAA;AAAA;;KAKhB,sBAAA;EAAA,CACT,GAAA,UAAa,MAAA,GAAS,MAAA;EACvB,GAAA,CAAI,GAAA;EACJ,GAAA,CAAI,GAAA;EACJ,IAAA,CACE,GAAA,UACA,MAAA,GAAS,MAAA,SAAe,iBAAA,GAAoB,SAAA,IAC3C,SAAA;EACH,MAAA,CACE,GAAA,UACA,MAAA,GAAS,MAAA,SAAe,mBAAA;AAAA"}
@@ -0,0 +1,23 @@
1
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
2
+ import { Dictionary } from "@intlayer/types/dictionary";
3
+
4
+ //#region src/useDictionary.d.ts
5
+ /**
6
+ * Dictionary-accepting variant of `useTranslations`.
7
+ *
8
+ * Used internally by the build-time optimization: instead of looking up the
9
+ * dictionary at runtime by key, the babel/swc plugin pre-imports the dictionary
10
+ * JSON at build time and passes it directly here. This enables tree-shaking of
11
+ * unused locale content.
12
+ *
13
+ * @example (generated by the plugin, not written manually)
14
+ * import _abc from '.intlayer/dictionaries/about.json' with { type: 'json' };
15
+ * const t = useDictionary(_abc);
16
+ */
17
+ declare const useDictionary: <T extends Dictionary>(dictionary: T, namespacePrefix?: string) => (<P extends ValidDotPathsFor<string>>(lookup: P, params?: Record<string, unknown>) => string) & {
18
+ has: <P extends ValidDotPathsFor<string>>(lookup: P) => boolean;
19
+ raw: <P extends ValidDotPathsFor<string>>(lookup: P) => unknown;
20
+ };
21
+ //#endregion
22
+ export { useDictionary };
23
+ //# sourceMappingURL=useDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../src/useDictionary.ts"],"mappings":";;;;;;AAmBA;;;;;;;;;;cAAa,aAAA,aAA2B,UAAA,EACtC,UAAA,EAAY,CAAA,EACZ,eAAA,0BAQa,gBAAA,UAAwB,MAAA,EACzB,CAAA,EAAC,MAAA,GACA,MAAA;kBAUO,gBAAA,UAAwB,MAAA,EAAU,CAAA;kBAElC,gBAAA,UAAwB,MAAA,EAAU,CAAA;AAAA"}
@@ -0,0 +1,18 @@
1
+ import { StrictModeLocaleMap } from "@intlayer/types/module_augmentation";
2
+ import { ValidDotPathsFor } from "@intlayer/core/transpiler";
3
+ import { Dictionary } from "@intlayer/types/dictionary";
4
+
5
+ //#region src/useDictionaryDynamic.d.ts
6
+ /**
7
+ * Dynamic dictionary-accepting variant of `useTranslations`.
8
+ *
9
+ * Counterpart to {@link useDictionary} for dictionaries imported lazily per
10
+ * locale. Used internally by the build-time optimization.
11
+ */
12
+ declare const useDictionaryDynamic: <const T extends Dictionary, const K extends string>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, key: K, namespacePrefix?: string) => (<P extends ValidDotPathsFor<string>>(lookup: P, params?: Record<string, unknown>) => string) & {
13
+ has: <P extends ValidDotPathsFor<string>>(lookup: P) => boolean;
14
+ raw: <P extends ValidDotPathsFor<string>>(lookup: P) => unknown;
15
+ };
16
+ //#endregion
17
+ export { useDictionaryDynamic };
18
+ //# sourceMappingURL=useDictionaryDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../src/useDictionaryDynamic.ts"],"mappings":";;;;;;;AAcA;;;;cAAa,oBAAA,mBACK,UAAA,0BAGhB,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,GAAA,EAAK,CAAA,EACL,eAAA,0BAQa,gBAAA,UAAwB,MAAA,EACzB,CAAA,EAAC,MAAA,GACA,MAAA;kBAUO,gBAAA,UAAwB,MAAA,EAAU,CAAA;kBAElC,gBAAA,UAAwB,MAAA,EAAU,CAAA;AAAA"}
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@intlayer/use-intl",
3
+ "version": "9.0.0-canary.10",
4
+ "private": false,
5
+ "description": "use-intl API adapter for intlayer — useTranslations, useLocale, useFormatter, IntlProvider, createTranslator backed by react-intlayer",
6
+ "keywords": [
7
+ "intlayer",
8
+ "use-intl",
9
+ "react",
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
+ "import": "./dist/esm/index.mjs"
39
+ },
40
+ "./core": {
41
+ "types": "./dist/types/core/index.d.ts",
42
+ "import": "./dist/esm/core/index.mjs"
43
+ },
44
+ "./react": {
45
+ "types": "./dist/types/client/index.d.ts",
46
+ "import": "./dist/esm/client/index.mjs"
47
+ },
48
+ "./plugin": {
49
+ "types": "./dist/types/plugin/index.d.ts",
50
+ "import": "./dist/esm/plugin/index.mjs"
51
+ },
52
+ "./package.json": "./package.json"
53
+ },
54
+ "main": "dist/esm/index.mjs",
55
+ "module": "dist/esm/index.mjs",
56
+ "types": "dist/types/index.d.ts",
57
+ "typesVersions": {
58
+ "*": {
59
+ "core": [
60
+ "./dist/types/core/index.d.ts"
61
+ ],
62
+ "react": [
63
+ "./dist/types/client/index.d.ts"
64
+ ],
65
+ "plugin": [
66
+ "./dist/types/plugin/index.d.ts"
67
+ ]
68
+ }
69
+ },
70
+ "files": [
71
+ "./dist",
72
+ "./package.json"
73
+ ],
74
+ "scripts": {
75
+ "build": "bun --bun tsdown --config tsdown.config.ts",
76
+ "build:ci": "bun --bun tsdown --config tsdown.config.ts",
77
+ "clean": "bun --bun rimraf ./dist .turbo",
78
+ "dev": "bun --bun tsdown --config tsdown.config.ts --watch",
79
+ "format": "bun --bun biome format . --check",
80
+ "format:fix": "bun --bun biome format --write .",
81
+ "lint": "bun --bun biome lint .",
82
+ "lint:fix": "bun --bun biome lint --write .",
83
+ "prepublish": "cp -f ../../README.md ./README.md",
84
+ "publish": "bun publish || true",
85
+ "publish:canary": "bun publish --access public --tag canary || true",
86
+ "publish:latest": "bun publish --access public --tag latest || true",
87
+ "test": "bun --bun vitest run",
88
+ "test:watch": "bun --bun vitest",
89
+ "typecheck": "tsc --noEmit --project tsconfig.types.json"
90
+ },
91
+ "dependencies": {
92
+ "@intlayer/chokidar": "9.0.0-canary.10",
93
+ "@intlayer/config": "9.0.0-canary.10",
94
+ "@intlayer/core": "9.0.0-canary.10",
95
+ "@intlayer/dictionaries-entry": "9.0.0-canary.10",
96
+ "@intlayer/types": "9.0.0-canary.10",
97
+ "react-intlayer": "9.0.0-canary.10",
98
+ "vite-intlayer": "9.0.0-canary.10"
99
+ },
100
+ "devDependencies": {
101
+ "@types/node": "25.9.4",
102
+ "@types/react": "19.2.17",
103
+ "@utils/ts-config": "1.0.4",
104
+ "@utils/ts-config-types": "1.0.4",
105
+ "@utils/tsdown-config": "1.0.4",
106
+ "rimraf": "6.1.3",
107
+ "tsdown": "0.21.10",
108
+ "typescript": "6.0.3",
109
+ "use-intl": "4.13.0",
110
+ "vite": "8.1.0",
111
+ "vitest": "4.1.9"
112
+ },
113
+ "peerDependencies": {
114
+ "react": ">=16.0.0",
115
+ "react-dom": ">=16.0.0",
116
+ "use-intl": ">=3.0.0",
117
+ "vite": ">=4.0.0"
118
+ },
119
+ "peerDependenciesMeta": {
120
+ "vite": {
121
+ "optional": true
122
+ }
123
+ },
124
+ "engines": {
125
+ "node": ">=14.18"
126
+ }
127
+ }