@intlayer/next-intl 9.0.0-canary.2 → 9.0.0-canary.21
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/cjs/client/NextIntlClientProvider.cjs +8 -4
- package/dist/cjs/client/NextIntlClientProvider.cjs.map +1 -1
- package/dist/cjs/client/index.cjs +55 -13
- package/dist/cjs/client/useLocale.cjs +0 -1
- package/dist/cjs/client/useLocale.cjs.map +1 -1
- package/dist/cjs/getDictionary.cjs +19 -30
- package/dist/cjs/getDictionary.cjs.map +1 -1
- package/dist/cjs/getDictionaryDynamic.cjs +8 -24
- package/dist/cjs/getDictionaryDynamic.cjs.map +1 -1
- package/dist/cjs/index.cjs +91 -15
- package/dist/cjs/middleware.cjs +0 -1
- package/dist/cjs/middleware.cjs.map +1 -1
- package/dist/cjs/navigation/Link.cjs.map +1 -1
- package/dist/cjs/navigation/createNavigation.cjs +0 -1
- package/dist/cjs/navigation/createNavigation.cjs.map +1 -1
- package/dist/cjs/navigation/hooks.cjs +0 -1
- package/dist/cjs/navigation/hooks.cjs.map +1 -1
- package/dist/cjs/navigation/localizeHref.cjs +0 -1
- package/dist/cjs/navigation/localizeHref.cjs.map +1 -1
- package/dist/cjs/plugin/index.cjs +9 -15
- package/dist/cjs/plugin/index.cjs.map +1 -1
- package/dist/cjs/routing.cjs +0 -1
- package/dist/cjs/routing.cjs.map +1 -1
- package/dist/cjs/server/getLocale.cjs +15 -2
- package/dist/cjs/server/getLocale.cjs.map +1 -1
- package/dist/cjs/server/getMessages.cjs +0 -1
- package/dist/cjs/server/getMessages.cjs.map +1 -1
- package/dist/cjs/server/getRequestConfig.cjs +27 -0
- package/dist/cjs/server/getRequestConfig.cjs.map +1 -0
- package/dist/cjs/server/getTranslations.cjs +8 -4
- package/dist/cjs/server/getTranslations.cjs.map +1 -1
- package/dist/cjs/server/helpers.cjs +4 -3
- package/dist/cjs/server/helpers.cjs.map +1 -1
- package/dist/cjs/server/index.cjs +5 -1
- package/dist/cjs/server/requestLocaleCache.cjs +35 -0
- package/dist/cjs/server/requestLocaleCache.cjs.map +1 -0
- package/dist/cjs/server/setLocale.cjs +0 -1
- package/dist/cjs/server/setLocale.cjs.map +1 -1
- package/dist/cjs/server/setRequestLocale.cjs +33 -0
- package/dist/cjs/server/setRequestLocale.cjs.map +1 -0
- package/dist/esm/client/NextIntlClientProvider.mjs +9 -4
- package/dist/esm/client/NextIntlClientProvider.mjs.map +1 -1
- package/dist/esm/client/index.mjs +1 -4
- package/dist/esm/client/useLocale.mjs.map +1 -1
- package/dist/esm/getDictionary.mjs +19 -29
- package/dist/esm/getDictionary.mjs.map +1 -1
- package/dist/esm/getDictionaryDynamic.mjs +8 -23
- package/dist/esm/getDictionaryDynamic.mjs.map +1 -1
- package/dist/esm/index.mjs +3 -6
- package/dist/esm/middleware.mjs.map +1 -1
- package/dist/esm/navigation/Link.mjs.map +1 -1
- package/dist/esm/navigation/createNavigation.mjs.map +1 -1
- package/dist/esm/navigation/hooks.mjs.map +1 -1
- package/dist/esm/navigation/localizeHref.mjs.map +1 -1
- package/dist/esm/plugin/index.mjs +8 -14
- package/dist/esm/plugin/index.mjs.map +1 -1
- package/dist/esm/routing.mjs.map +1 -1
- package/dist/esm/server/getLocale.mjs +15 -1
- package/dist/esm/server/getLocale.mjs.map +1 -1
- package/dist/esm/server/getMessages.mjs.map +1 -1
- package/dist/esm/server/getRequestConfig.mjs +25 -0
- package/dist/esm/server/getRequestConfig.mjs.map +1 -0
- package/dist/esm/server/getTranslations.mjs +8 -4
- package/dist/esm/server/getTranslations.mjs.map +1 -1
- package/dist/esm/server/helpers.mjs +4 -3
- package/dist/esm/server/helpers.mjs.map +1 -1
- package/dist/esm/server/index.mjs +3 -1
- package/dist/esm/server/requestLocaleCache.mjs +33 -0
- package/dist/esm/server/requestLocaleCache.mjs.map +1 -0
- package/dist/esm/server/setLocale.mjs.map +1 -1
- package/dist/esm/server/setRequestLocale.mjs +32 -0
- package/dist/esm/server/setRequestLocale.mjs.map +1 -0
- package/dist/types/client/NextIntlClientProvider.d.ts +0 -1
- package/dist/types/client/NextIntlClientProvider.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +1 -4
- package/dist/types/client/useLocale.d.ts +0 -1
- package/dist/types/client/useLocale.d.ts.map +1 -1
- package/dist/types/getDictionary.d.ts +25 -13
- package/dist/types/getDictionary.d.ts.map +1 -1
- package/dist/types/getDictionaryDynamic.d.ts +15 -7
- package/dist/types/getDictionaryDynamic.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -6
- package/dist/types/middleware.d.ts +0 -1
- package/dist/types/middleware.d.ts.map +1 -1
- package/dist/types/navigation/Link.d.ts +3 -6
- package/dist/types/navigation/Link.d.ts.map +1 -1
- package/dist/types/navigation/createNavigation.d.ts +0 -1
- package/dist/types/navigation/createNavigation.d.ts.map +1 -1
- package/dist/types/navigation/hooks.d.ts +4 -6
- package/dist/types/navigation/hooks.d.ts.map +1 -1
- package/dist/types/navigation/localizeHref.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts +0 -1
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/routing.d.ts +0 -1
- package/dist/types/routing.d.ts.map +1 -1
- package/dist/types/server/getLocale.d.ts +9 -1
- package/dist/types/server/getLocale.d.ts.map +1 -1
- package/dist/types/server/getMessages.d.ts +0 -1
- package/dist/types/server/getMessages.d.ts.map +1 -1
- package/dist/types/server/getRequestConfig.d.ts +18 -0
- package/dist/types/server/getRequestConfig.d.ts.map +1 -0
- package/dist/types/server/getTranslations.d.ts +13 -33
- package/dist/types/server/getTranslations.d.ts.map +1 -1
- package/dist/types/server/helpers.d.ts +2 -2
- package/dist/types/server/helpers.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +3 -1
- package/dist/types/server/requestLocaleCache.d.ts +16 -0
- package/dist/types/server/requestLocaleCache.d.ts.map +1 -0
- package/dist/types/server/setLocale.d.ts.map +1 -1
- package/dist/types/server/setRequestLocale.d.ts +28 -0
- package/dist/types/server/setRequestLocale.d.ts.map +1 -0
- package/package.json +14 -13
- package/dist/cjs/client/helpers.cjs +0 -66
- package/dist/cjs/client/helpers.cjs.map +0 -1
- package/dist/cjs/client/useTranslations.cjs +0 -39
- package/dist/cjs/client/useTranslations.cjs.map +0 -1
- package/dist/cjs/createFormatter.cjs +0 -59
- package/dist/cjs/createFormatter.cjs.map +0 -1
- package/dist/cjs/createTranslator.cjs +0 -111
- package/dist/cjs/createTranslator.cjs.map +0 -1
- package/dist/cjs/getTranslationsDictionary.cjs +0 -31
- package/dist/cjs/getTranslationsDictionary.cjs.map +0 -1
- package/dist/cjs/getTranslationsDictionaryDynamic.cjs +0 -27
- package/dist/cjs/getTranslationsDictionaryDynamic.cjs.map +0 -1
- package/dist/cjs/hasLocale.cjs +0 -25
- package/dist/cjs/hasLocale.cjs.map +0 -1
- package/dist/cjs/package.cjs +0 -122
- package/dist/cjs/package.cjs.map +0 -1
- package/dist/cjs/useDictionary.cjs +0 -45
- package/dist/cjs/useDictionary.cjs.map +0 -1
- package/dist/cjs/useDictionaryDynamic.cjs +0 -37
- package/dist/cjs/useDictionaryDynamic.cjs.map +0 -1
- package/dist/cjs/useTranslationsDictionary.cjs +0 -37
- package/dist/cjs/useTranslationsDictionary.cjs.map +0 -1
- package/dist/cjs/useTranslationsDictionaryDynamic.cjs +0 -29
- package/dist/cjs/useTranslationsDictionaryDynamic.cjs.map +0 -1
- package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -8
- package/dist/esm/client/helpers.mjs +0 -59
- package/dist/esm/client/helpers.mjs.map +0 -1
- package/dist/esm/client/useTranslations.mjs +0 -37
- package/dist/esm/client/useTranslations.mjs.map +0 -1
- package/dist/esm/createFormatter.mjs +0 -57
- package/dist/esm/createFormatter.mjs.map +0 -1
- package/dist/esm/createTranslator.mjs +0 -108
- package/dist/esm/createTranslator.mjs.map +0 -1
- package/dist/esm/getTranslationsDictionary.mjs +0 -29
- package/dist/esm/getTranslationsDictionary.mjs.map +0 -1
- package/dist/esm/getTranslationsDictionaryDynamic.mjs +0 -25
- package/dist/esm/getTranslationsDictionaryDynamic.mjs.map +0 -1
- package/dist/esm/hasLocale.mjs +0 -23
- package/dist/esm/hasLocale.mjs.map +0 -1
- package/dist/esm/package.mjs +0 -119
- package/dist/esm/package.mjs.map +0 -1
- package/dist/esm/useDictionary.mjs +0 -43
- package/dist/esm/useDictionary.mjs.map +0 -1
- package/dist/esm/useDictionaryDynamic.mjs +0 -35
- package/dist/esm/useDictionaryDynamic.mjs.map +0 -1
- package/dist/esm/useTranslationsDictionary.mjs +0 -35
- package/dist/esm/useTranslationsDictionary.mjs.map +0 -1
- package/dist/esm/useTranslationsDictionaryDynamic.mjs +0 -27
- package/dist/esm/useTranslationsDictionaryDynamic.mjs.map +0 -1
- package/dist/types/client/helpers.d.ts +0 -45
- package/dist/types/client/helpers.d.ts.map +0 -1
- package/dist/types/client/useTranslations.d.ts +0 -74
- package/dist/types/client/useTranslations.d.ts.map +0 -1
- package/dist/types/createFormatter.d.ts +0 -15
- package/dist/types/createFormatter.d.ts.map +0 -1
- package/dist/types/createTranslator.d.ts +0 -40
- package/dist/types/createTranslator.d.ts.map +0 -1
- package/dist/types/getTranslationsDictionary.d.ts +0 -15
- package/dist/types/getTranslationsDictionary.d.ts.map +0 -1
- package/dist/types/getTranslationsDictionaryDynamic.d.ts +0 -12
- package/dist/types/getTranslationsDictionaryDynamic.d.ts.map +0 -1
- package/dist/types/hasLocale.d.ts +0 -20
- package/dist/types/hasLocale.d.ts.map +0 -1
- package/dist/types/useDictionary.d.ts +0 -22
- package/dist/types/useDictionary.d.ts.map +0 -1
- package/dist/types/useDictionaryDynamic.d.ts +0 -15
- package/dist/types/useDictionaryDynamic.d.ts.map +0 -1
- package/dist/types/useTranslationsDictionary.d.ts +0 -19
- package/dist/types/useTranslationsDictionary.d.ts.map +0 -1
- package/dist/types/useTranslationsDictionaryDynamic.d.ts +0 -12
- package/dist/types/useTranslationsDictionaryDynamic.d.ts.map +0 -1
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let _intlayer_core_interpreter = require("@intlayer/core/interpreter");
|
|
4
|
-
let _intlayer_core_messageFormat = require("@intlayer/core/messageFormat");
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
|
|
8
|
-
//#region src/createTranslator.tsx
|
|
9
|
-
const navigatePath = (objectValue, path) => {
|
|
10
|
-
if (!path) return objectValue;
|
|
11
|
-
const parts = path.split(".");
|
|
12
|
-
let current = objectValue;
|
|
13
|
-
for (const part of parts) {
|
|
14
|
-
if (current === null || current === void 0 || typeof current !== "object") return;
|
|
15
|
-
current = current[part];
|
|
16
|
-
}
|
|
17
|
-
return current;
|
|
18
|
-
};
|
|
19
|
-
/** Splits rich values into scalar interpolation values and tag renderers. */
|
|
20
|
-
const splitRichValues = (values = {}) => {
|
|
21
|
-
const scalarValues = {};
|
|
22
|
-
const renderers = {};
|
|
23
|
-
for (const [valueKey, value] of Object.entries(values)) if (typeof value === "function") renderers[valueKey] = value;
|
|
24
|
-
else scalarValues[valueKey] = value;
|
|
25
|
-
return {
|
|
26
|
-
scalarValues,
|
|
27
|
-
renderers
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
const renderRichTokens = (tokens, renderers) => tokens.map((token, tokenIndex) => {
|
|
31
|
-
if (typeof token === "string") return token;
|
|
32
|
-
const children = renderRichTokens(token.children, renderers);
|
|
33
|
-
const renderer = renderers[token.tag];
|
|
34
|
-
if (typeof renderer === "function") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: renderer(children) }, tokenIndex);
|
|
35
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children }, tokenIndex);
|
|
36
|
-
});
|
|
37
|
-
const renderMarkupTokens = (tokens, renderers) => tokens.map((token) => {
|
|
38
|
-
if (typeof token === "string") return token;
|
|
39
|
-
const children = renderMarkupTokens(token.children, renderers);
|
|
40
|
-
const renderer = renderers[token.tag];
|
|
41
|
-
if (typeof renderer === "function") return renderer(children);
|
|
42
|
-
return children;
|
|
43
|
-
}).join("");
|
|
44
|
-
/**
|
|
45
|
-
* The untyped runtime translator shared by `useTranslations` (client) and
|
|
46
|
-
* `getTranslations` (server).
|
|
47
|
-
*
|
|
48
|
-
* Behaviour matches next-intl:
|
|
49
|
-
* - namespace `'about'` → keys resolved inside the `about` dictionary
|
|
50
|
-
* - namespace `'about.counter'` → dictionary `about`, key prefix `counter`
|
|
51
|
-
* - no namespace → the first segment of each key is the dictionary key
|
|
52
|
-
* - messages support ICU syntax (plural, select, `#`, formatted arguments)
|
|
53
|
-
* - `t.rich` / `t.markup` map `<tag>chunks</tag>` through the provided
|
|
54
|
-
* renderers; `t.raw` returns the raw value; `t.has` checks existence
|
|
55
|
-
*/
|
|
56
|
-
const createTranslator = (locale, namespace) => {
|
|
57
|
-
const [dictionaryKey, ...prefixSegments] = (namespace ?? "").split(".");
|
|
58
|
-
const keyPrefix = prefixSegments.join(".");
|
|
59
|
-
const lookup = (key) => {
|
|
60
|
-
let targetDictionaryKey = dictionaryKey;
|
|
61
|
-
let path = keyPrefix ? `${keyPrefix}.${key}` : key;
|
|
62
|
-
if (!targetDictionaryKey) {
|
|
63
|
-
const [firstSegment, ...restSegments] = key.split(".");
|
|
64
|
-
targetDictionaryKey = firstSegment;
|
|
65
|
-
path = restSegments.join(".");
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
return navigatePath((0, _intlayer_core_interpreter.getIntlayer)(targetDictionaryKey, locale), path);
|
|
69
|
-
} catch {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
const resolveToString = (key, values = {}) => {
|
|
74
|
-
const rawValue = lookup(key);
|
|
75
|
-
if (rawValue === null || rawValue === void 0) return void 0;
|
|
76
|
-
return (0, _intlayer_core_messageFormat.resolveMessage)(rawValue, values, locale, "icu");
|
|
77
|
-
};
|
|
78
|
-
const missingKeyFallback = (key) => namespace ? `${namespace}.${key}` : key;
|
|
79
|
-
const translate = (key, values) => resolveToString(key, values) ?? missingKeyFallback(key);
|
|
80
|
-
return Object.assign(translate, {
|
|
81
|
-
/** Returns `true` if the given key exists in the namespace. */
|
|
82
|
-
has: (key) => lookup(key) !== void 0,
|
|
83
|
-
/** Returns the raw unprocessed content for the given key. */
|
|
84
|
-
raw: (key) => lookup(key),
|
|
85
|
-
/**
|
|
86
|
-
* Resolves a message containing `<tag>chunks</tag>` markup, mapping each
|
|
87
|
-
* tag through the matching renderer in `values`.
|
|
88
|
-
*/
|
|
89
|
-
rich: (key, values) => {
|
|
90
|
-
const { scalarValues, renderers } = splitRichValues(values);
|
|
91
|
-
const message = resolveToString(key, scalarValues);
|
|
92
|
-
if (message === void 0) return missingKeyFallback(key);
|
|
93
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: renderRichTokens((0, _intlayer_core_messageFormat.parseTaggedMessage)(message), renderers) });
|
|
94
|
-
},
|
|
95
|
-
/**
|
|
96
|
-
* Resolves a message containing `<tag>chunks</tag>` markup into a string,
|
|
97
|
-
* mapping each tag through the matching string renderer in `values`.
|
|
98
|
-
*/
|
|
99
|
-
markup: (key, values) => {
|
|
100
|
-
const { scalarValues, renderers } = splitRichValues(values);
|
|
101
|
-
const message = resolveToString(key, scalarValues);
|
|
102
|
-
if (message === void 0) return missingKeyFallback(key);
|
|
103
|
-
return renderMarkupTokens((0, _intlayer_core_messageFormat.parseTaggedMessage)(message), renderers);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
//#endregion
|
|
109
|
-
exports.createTranslator = createTranslator;
|
|
110
|
-
exports.navigatePath = navigatePath;
|
|
111
|
-
//# sourceMappingURL=createTranslator.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTranslator.cjs","names":["Fragment"],"sources":["../../src/createTranslator.tsx"],"sourcesContent":["import { getIntlayer } from '@intlayer/core/interpreter';\nimport {\n type MessageValues,\n parseTaggedMessage,\n resolveMessage,\n type TaggedMessageToken,\n} from '@intlayer/core/messageFormat';\nimport type {\n DictionaryKeys,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { Fragment, type ReactNode } from 'react';\n\n/** Chunk renderer used by `t.rich()` — maps tag children to a React node. */\nexport type RichChunkRenderer = (chunks: ReactNode) => ReactNode;\n\n/** Chunk renderer used by `t.markup()` — maps tag children to a string. */\nexport type MarkupChunkRenderer = (chunks: string) => string;\n\nexport const navigatePath = (objectValue: unknown, path: string): unknown => {\n if (!path) return objectValue;\n const parts = path.split('.');\n let current: unknown = objectValue;\n for (const part of parts) {\n if (\n current === null ||\n current === undefined ||\n typeof current !== 'object'\n ) {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return current;\n};\n\n/** Splits rich values into scalar interpolation values and tag renderers. */\nconst splitRichValues = (\n values: Record<string, unknown> = {}\n): { scalarValues: MessageValues; renderers: Record<string, unknown> } => {\n const scalarValues: MessageValues = {};\n const renderers: Record<string, unknown> = {};\n\n for (const [valueKey, value] of Object.entries(values)) {\n if (typeof value === 'function') renderers[valueKey] = value;\n else scalarValues[valueKey] = value;\n }\n\n return { scalarValues, renderers };\n};\n\nconst renderRichTokens = (\n tokens: TaggedMessageToken[],\n renderers: Record<string, unknown>\n): ReactNode[] =>\n tokens.map((token, tokenIndex) => {\n if (typeof token === 'string') return token;\n\n const children = renderRichTokens(token.children, renderers);\n const renderer = renderers[token.tag];\n\n if (typeof renderer === 'function') {\n return (\n <Fragment key={tokenIndex}>\n {(renderer as RichChunkRenderer)(children)}\n </Fragment>\n );\n }\n\n // No renderer provided for the tag — render its children unwrapped\n return <Fragment key={tokenIndex}>{children}</Fragment>;\n });\n\nconst renderMarkupTokens = (\n tokens: TaggedMessageToken[],\n renderers: Record<string, unknown>\n): string =>\n tokens\n .map((token) => {\n if (typeof token === 'string') return token;\n\n const children = renderMarkupTokens(token.children, renderers);\n const renderer = renderers[token.tag];\n\n if (typeof renderer === 'function') {\n return (renderer as MarkupChunkRenderer)(children);\n }\n\n return children;\n })\n .join('');\n\n/**\n * The untyped runtime translator shared by `useTranslations` (client) and\n * `getTranslations` (server).\n *\n * Behaviour matches next-intl:\n * - namespace `'about'` → keys resolved inside the `about` dictionary\n * - namespace `'about.counter'` → dictionary `about`, key prefix `counter`\n * - no namespace → the first segment of each key is the dictionary key\n * - messages support ICU syntax (plural, select, `#`, formatted arguments)\n * - `t.rich` / `t.markup` map `<tag>chunks</tag>` through the provided\n * renderers; `t.raw` returns the raw value; `t.has` checks existence\n */\nexport const createTranslator = (locale: LocalesValues, namespace?: string) => {\n const [dictionaryKey, ...prefixSegments] = (namespace ?? '').split('.');\n const keyPrefix = prefixSegments.join('.');\n\n const lookup = (key: string): unknown => {\n let targetDictionaryKey = dictionaryKey;\n let path = keyPrefix ? `${keyPrefix}.${key}` : key;\n\n if (!targetDictionaryKey) {\n // Root scope — the first key segment designates the dictionary\n const [firstSegment, ...restSegments] = key.split('.');\n targetDictionaryKey = firstSegment;\n path = restSegments.join('.');\n }\n\n try {\n const dictionary = getIntlayer(\n targetDictionaryKey as DictionaryKeys,\n locale\n );\n return navigatePath(dictionary, path);\n } catch {\n return undefined;\n }\n };\n\n const resolveToString = (\n key: string,\n values: MessageValues = {}\n ): string | undefined => {\n const rawValue = lookup(key);\n if (rawValue === null || rawValue === undefined) return undefined;\n return resolveMessage(rawValue, values, locale, 'icu');\n };\n\n const missingKeyFallback = (key: string): string =>\n namespace ? `${namespace}.${key}` : key;\n\n const translate = (key: string, values?: MessageValues): string =>\n resolveToString(key, values) ?? missingKeyFallback(key);\n\n return Object.assign(translate, {\n /** Returns `true` if the given key exists in the namespace. */\n has: (key: string): boolean => lookup(key) !== undefined,\n\n /** Returns the raw unprocessed content for the given key. */\n raw: (key: string): unknown => lookup(key),\n\n /**\n * Resolves a message containing `<tag>chunks</tag>` markup, mapping each\n * tag through the matching renderer in `values`.\n */\n rich: (key: string, values?: Record<string, unknown>): ReactNode => {\n const { scalarValues, renderers } = splitRichValues(values);\n const message = resolveToString(key, scalarValues);\n if (message === undefined) return missingKeyFallback(key);\n return <>{renderRichTokens(parseTaggedMessage(message), renderers)}</>;\n },\n\n /**\n * Resolves a message containing `<tag>chunks</tag>` markup into a string,\n * mapping each tag through the matching string renderer in `values`.\n */\n markup: (key: string, values?: Record<string, unknown>): string => {\n const { scalarValues, renderers } = splitRichValues(values);\n const message = resolveToString(key, scalarValues);\n if (message === undefined) return missingKeyFallback(key);\n return renderMarkupTokens(parseTaggedMessage(message), renderers);\n },\n });\n};\n\nexport type CompatTranslator = ReturnType<typeof createTranslator>;\n"],"mappings":";;;;;;;;AAmBA,MAAa,gBAAgB,aAAsB,SAA0B;AAC3E,KAAI,CAAC,KAAM,QAAO;CAClB,MAAM,QAAQ,KAAK,MAAM,IAAI;CAC7B,IAAI,UAAmB;AACvB,MAAK,MAAM,QAAQ,OAAO;AACxB,MACE,YAAY,QACZ,YAAY,UACZ,OAAO,YAAY,SAEnB;AAEF,YAAW,QAAoC;;AAEjD,QAAO;;;AAIT,MAAM,mBACJ,SAAkC,EAAE,KACoC;CACxE,MAAM,eAA8B,EAAE;CACtC,MAAM,YAAqC,EAAE;AAE7C,MAAK,MAAM,CAAC,UAAU,UAAU,OAAO,QAAQ,OAAO,CACpD,KAAI,OAAO,UAAU,WAAY,WAAU,YAAY;KAClD,cAAa,YAAY;AAGhC,QAAO;EAAE;EAAc;EAAW;;AAGpC,MAAM,oBACJ,QACA,cAEA,OAAO,KAAK,OAAO,eAAe;AAChC,KAAI,OAAO,UAAU,SAAU,QAAO;CAEtC,MAAM,WAAW,iBAAiB,MAAM,UAAU,UAAU;CAC5D,MAAM,WAAW,UAAU,MAAM;AAEjC,KAAI,OAAO,aAAa,WACtB,QACE,2CAACA,gBAAD,YACI,SAA+B,SAAS,EACjC,EAFI,WAEJ;AAKf,QAAO,2CAACA,gBAAD,EAA4B,UAAoB,EAAjC,WAAiC;EACvD;AAEJ,MAAM,sBACJ,QACA,cAEA,OACG,KAAK,UAAU;AACd,KAAI,OAAO,UAAU,SAAU,QAAO;CAEtC,MAAM,WAAW,mBAAmB,MAAM,UAAU,UAAU;CAC9D,MAAM,WAAW,UAAU,MAAM;AAEjC,KAAI,OAAO,aAAa,WACtB,QAAQ,SAAiC,SAAS;AAGpD,QAAO;EACP,CACD,KAAK,GAAG;;;;;;;;;;;;;AAcb,MAAa,oBAAoB,QAAuB,cAAuB;CAC7E,MAAM,CAAC,eAAe,GAAG,mBAAmB,aAAa,IAAI,MAAM,IAAI;CACvE,MAAM,YAAY,eAAe,KAAK,IAAI;CAE1C,MAAM,UAAU,QAAyB;EACvC,IAAI,sBAAsB;EAC1B,IAAI,OAAO,YAAY,GAAG,UAAU,GAAG,QAAQ;AAE/C,MAAI,CAAC,qBAAqB;GAExB,MAAM,CAAC,cAAc,GAAG,gBAAgB,IAAI,MAAM,IAAI;AACtD,yBAAsB;AACtB,UAAO,aAAa,KAAK,IAAI;;AAG/B,MAAI;AAKF,UAAO,yDAHL,qBACA,OAE4B,EAAE,KAAK;UAC/B;AACN;;;CAIJ,MAAM,mBACJ,KACA,SAAwB,EAAE,KACH;EACvB,MAAM,WAAW,OAAO,IAAI;AAC5B,MAAI,aAAa,QAAQ,aAAa,OAAW,QAAO;AACxD,0DAAsB,UAAU,QAAQ,QAAQ,MAAM;;CAGxD,MAAM,sBAAsB,QAC1B,YAAY,GAAG,UAAU,GAAG,QAAQ;CAEtC,MAAM,aAAa,KAAa,WAC9B,gBAAgB,KAAK,OAAO,IAAI,mBAAmB,IAAI;AAEzD,QAAO,OAAO,OAAO,WAAW;;EAE9B,MAAM,QAAyB,OAAO,IAAI,KAAK;;EAG/C,MAAM,QAAyB,OAAO,IAAI;;;;;EAM1C,OAAO,KAAa,WAAgD;GAClE,MAAM,EAAE,cAAc,cAAc,gBAAgB,OAAO;GAC3D,MAAM,UAAU,gBAAgB,KAAK,aAAa;AAClD,OAAI,YAAY,OAAW,QAAO,mBAAmB,IAAI;AACzD,UAAO,mFAAG,sEAAoC,QAAQ,EAAE,UAAU,EAAI;;;;;;EAOxE,SAAS,KAAa,WAA6C;GACjE,MAAM,EAAE,cAAc,cAAc,gBAAgB,OAAO;GAC3D,MAAM,UAAU,gBAAgB,KAAK,aAAa;AAClD,OAAI,YAAY,OAAW,QAAO,mBAAmB,IAAI;AACzD,UAAO,wEAAsC,QAAQ,EAAE,UAAU;;EAEpE,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let next_intlayer_server = require("next-intlayer/server");
|
|
4
|
-
|
|
5
|
-
//#region src/getTranslationsDictionary.ts
|
|
6
|
-
/**
|
|
7
|
-
* Dictionary-accepting variant of `getTranslations`.
|
|
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
|
-
const getTranslationsDictionary = async (dictionary, namespacePrefix) => {
|
|
14
|
-
const content = (0, next_intlayer_server.getDictionary)(dictionary);
|
|
15
|
-
return (lookup, params) => {
|
|
16
|
-
const lookupKey = namespacePrefix ? `${namespacePrefix}.${String(lookup)}` : String(lookup);
|
|
17
|
-
const parts = lookupKey.split(".");
|
|
18
|
-
let current = content;
|
|
19
|
-
for (const part of parts) {
|
|
20
|
-
if (current == null) break;
|
|
21
|
-
current = current[part];
|
|
22
|
-
}
|
|
23
|
-
const str = String(current ?? lookupKey);
|
|
24
|
-
if (!params) return str;
|
|
25
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
//#endregion
|
|
30
|
-
exports.getTranslationsDictionary = getTranslationsDictionary;
|
|
31
|
-
//# sourceMappingURL=getTranslationsDictionary.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslationsDictionary.cjs","names":[],"sources":["../../src/getTranslationsDictionary.ts"],"sourcesContent":["import type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { getDictionary } from 'next-intlayer/server';\n\n/**\n * Dictionary-accepting variant of `getTranslations`.\n *\n * Used internally by the SWC optimization: instead of looking up the dictionary\n * at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time\n * and passes it directly here. This enables tree-shaking of unused locale content.\n */\nexport const getTranslationsDictionary = async <T extends Dictionary>(\n dictionary: T,\n namespacePrefix?: string\n) => {\n const content = getDictionary(dictionary);\n\n return <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const lookupKey = namespacePrefix\n ? `${namespacePrefix}.${String(lookup)}`\n : String(lookup);\n const parts = lookupKey.split('.');\n let current: any = content;\n for (const part of parts) {\n if (current == null) break;\n current = current[part];\n }\n const str = String(current ?? lookupKey);\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n };\n};\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,4BAA4B,OACvC,YACA,oBACG;CACH,MAAM,kDAAwB,WAAW;AAEzC,SACE,QACA,WACW;EACX,MAAM,YAAY,kBACd,GAAG,gBAAgB,GAAG,OAAO,OAAO,KACpC,OAAO,OAAO;EAClB,MAAM,QAAQ,UAAU,MAAM,IAAI;EAClC,IAAI,UAAe;AACnB,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,WAAW,KAAM;AACrB,aAAU,QAAQ;;EAEpB,MAAM,MAAM,OAAO,WAAW,UAAU;AACxC,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let next_intlayer_server = require("next-intlayer/server");
|
|
4
|
-
|
|
5
|
-
//#region src/getTranslationsDictionaryDynamic.ts
|
|
6
|
-
/**
|
|
7
|
-
* Dynamic dictionary-accepting variant of `getTranslations`.
|
|
8
|
-
*/
|
|
9
|
-
const getTranslationsDictionaryDynamic = async (dictionaryPromise, key, namespacePrefix) => {
|
|
10
|
-
const content = await (0, next_intlayer_server.getDictionaryDynamic)(dictionaryPromise, key);
|
|
11
|
-
return (lookup, params) => {
|
|
12
|
-
const lookupKey = namespacePrefix ? `${namespacePrefix}.${String(lookup)}` : String(lookup);
|
|
13
|
-
const parts = lookupKey.split(".");
|
|
14
|
-
let current = content;
|
|
15
|
-
for (const part of parts) {
|
|
16
|
-
if (current == null) break;
|
|
17
|
-
current = current[part];
|
|
18
|
-
}
|
|
19
|
-
const str = String(current ?? lookupKey);
|
|
20
|
-
if (!params) return str;
|
|
21
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
//#endregion
|
|
26
|
-
exports.getTranslationsDictionaryDynamic = getTranslationsDictionaryDynamic;
|
|
27
|
-
//# sourceMappingURL=getTranslationsDictionaryDynamic.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTranslationsDictionaryDynamic.cjs","names":[],"sources":["../../src/getTranslationsDictionaryDynamic.ts"],"sourcesContent":["import type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\nimport { getDictionaryDynamic } from 'next-intlayer/server';\n\n/**\n * Dynamic dictionary-accepting variant of `getTranslations`.\n */\nexport const getTranslationsDictionaryDynamic = async <\n const T extends Dictionary,\n const K extends string,\n>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n key: K,\n namespacePrefix?: string\n) => {\n const content = await getDictionaryDynamic<T, any>(\n dictionaryPromise,\n key as any\n );\n\n return <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const lookupKey = namespacePrefix\n ? `${namespacePrefix}.${String(lookup)}`\n : String(lookup);\n const parts = lookupKey.split('.');\n let current: any = content;\n for (const part of parts) {\n if (current == null) break;\n current = current[part];\n }\n const str = String(current ?? lookupKey);\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n };\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,mCAAmC,OAI9C,mBACA,KACA,oBACG;CACH,MAAM,UAAU,qDACd,mBACA,IACD;AAED,SACE,QACA,WACW;EACX,MAAM,YAAY,kBACd,GAAG,gBAAgB,GAAG,OAAO,OAAO,KACpC,OAAO,OAAO;EAClB,MAAM,QAAQ,UAAU,MAAM,IAAI;EAClC,IAAI,UAAe;AACnB,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,WAAW,KAAM;AACrB,aAAU,QAAQ;;EAEpB,MAAM,MAAM,OAAO,WAAW,UAAU;AACxC,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C"}
|
package/dist/cjs/hasLocale.cjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let _intlayer_config_built = require("@intlayer/config/built");
|
|
4
|
-
|
|
5
|
-
//#region src/hasLocale.ts
|
|
6
|
-
/**
|
|
7
|
-
* Drop-in for next-intl's `hasLocale`.
|
|
8
|
-
*
|
|
9
|
-
* Checks that a locale candidate is part of the given locales list (or, when
|
|
10
|
-
* the list is read from routing, the locales configured in intlayer).
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import { routing } from '@/i18n/routing';
|
|
15
|
-
*
|
|
16
|
-
* if (hasLocale(routing.locales, requested)) { … }
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
const hasLocale = ((locales, candidate) => {
|
|
20
|
-
return (locales ?? _intlayer_config_built.internationalization?.locales?.map(String) ?? []).includes(candidate);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
exports.hasLocale = hasLocale;
|
|
25
|
-
//# sourceMappingURL=hasLocale.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasLocale.cjs","names":["internationalization"],"sources":["../../src/hasLocale.ts"],"sourcesContent":["import { internationalization } from '@intlayer/config/built';\nimport type { hasLocale as _hasLocale } from 'next-intl';\n\n/**\n * Drop-in for next-intl's `hasLocale`.\n *\n * Checks that a locale candidate is part of the given locales list (or, when\n * the list is read from routing, the locales configured in intlayer).\n *\n * @example\n * ```ts\n * import { routing } from '@/i18n/routing';\n *\n * if (hasLocale(routing.locales, requested)) { … }\n * ```\n */\nexport const hasLocale: typeof _hasLocale = ((\n locales: readonly string[],\n candidate: string | undefined | null\n): boolean => {\n const availableLocales =\n locales ?? internationalization?.locales?.map(String) ?? [];\n return availableLocales.includes(candidate as string);\n}) as typeof _hasLocale;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAa,cACX,SACA,cACY;AAGZ,SADE,WAAWA,6CAAsB,SAAS,IAAI,OAAO,IAAI,EAAE,EACrC,SAAS,UAAoB"}
|
package/dist/cjs/package.cjs
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
2
|
-
|
|
3
|
-
//#region package.json
|
|
4
|
-
var require_package = /* @__PURE__ */ require_runtime.__commonJSMin(((exports, module) => {
|
|
5
|
-
module.exports = {
|
|
6
|
-
"name": "@intlayer/next-intl",
|
|
7
|
-
"version": "8.12.2",
|
|
8
|
-
"private": false,
|
|
9
|
-
"description": "next-intl API adapter for intlayer — useTranslations, useLocale, getTranslations, getLocale, NextIntlClientProvider backed by next-intlayer",
|
|
10
|
-
"keywords": [
|
|
11
|
-
"intlayer",
|
|
12
|
-
"next-intl",
|
|
13
|
-
"next.js",
|
|
14
|
-
"react",
|
|
15
|
-
"i18n",
|
|
16
|
-
"adapter",
|
|
17
|
-
"compatibility"
|
|
18
|
-
],
|
|
19
|
-
"homepage": "https://intlayer.org",
|
|
20
|
-
"bugs": { "url": "https://github.com/aymericzip/intlayer/issues" },
|
|
21
|
-
"repository": {
|
|
22
|
-
"type": "git",
|
|
23
|
-
"url": "git+https://github.com/aymericzip/intlayer.git"
|
|
24
|
-
},
|
|
25
|
-
"license": "Apache-2.0",
|
|
26
|
-
"author": {
|
|
27
|
-
"name": "Aymeric PINEAU",
|
|
28
|
-
"url": "https://github.com/aymericzip"
|
|
29
|
-
},
|
|
30
|
-
"contributors": [{
|
|
31
|
-
"name": "Aymeric Pineau",
|
|
32
|
-
"email": "ay.pineau@gmail.com",
|
|
33
|
-
"url": "https://github.com/aymericzip"
|
|
34
|
-
}],
|
|
35
|
-
"sideEffects": false,
|
|
36
|
-
"exports": {
|
|
37
|
-
".": {
|
|
38
|
-
"types": "./dist/types/index.d.ts",
|
|
39
|
-
"require": "./dist/cjs/index.cjs",
|
|
40
|
-
"import": "./dist/esm/index.mjs"
|
|
41
|
-
},
|
|
42
|
-
"./server": {
|
|
43
|
-
"types": "./dist/types/server/index.d.ts",
|
|
44
|
-
"require": "./dist/cjs/server/index.cjs",
|
|
45
|
-
"import": "./dist/esm/server/index.mjs"
|
|
46
|
-
},
|
|
47
|
-
"./routing": {
|
|
48
|
-
"types": "./dist/types/routing.d.ts",
|
|
49
|
-
"require": "./dist/cjs/routing.cjs",
|
|
50
|
-
"import": "./dist/esm/routing.mjs"
|
|
51
|
-
},
|
|
52
|
-
"./plugin": {
|
|
53
|
-
"types": "./dist/types/plugin/index.d.ts",
|
|
54
|
-
"require": "./dist/cjs/plugin/index.cjs",
|
|
55
|
-
"import": "./dist/esm/plugin/index.mjs"
|
|
56
|
-
},
|
|
57
|
-
"./package.json": "./package.json"
|
|
58
|
-
},
|
|
59
|
-
"main": "dist/cjs/index.cjs",
|
|
60
|
-
"module": "dist/esm/index.mjs",
|
|
61
|
-
"types": "dist/types/index.d.ts",
|
|
62
|
-
"typesVersions": { "*": {
|
|
63
|
-
"server": ["./dist/types/server/index.d.ts"],
|
|
64
|
-
"routing": ["./dist/types/routing.d.ts"],
|
|
65
|
-
"plugin": ["./dist/types/plugin/index.d.ts"]
|
|
66
|
-
} },
|
|
67
|
-
"files": ["./dist", "./package.json"],
|
|
68
|
-
"scripts": {
|
|
69
|
-
"build": "bun --bun tsdown --config tsdown.config.ts",
|
|
70
|
-
"build:ci": "bun --bun tsdown --config tsdown.config.ts",
|
|
71
|
-
"clean": "bun --bun rimraf ./dist .turbo",
|
|
72
|
-
"dev": "bun --bun tsdown --config tsdown.config.ts --watch",
|
|
73
|
-
"format": "bun --bun biome format . --check",
|
|
74
|
-
"format:fix": "bun --bun biome format --write .",
|
|
75
|
-
"lint": "bun --bun biome lint .",
|
|
76
|
-
"lint:fix": "bun --bun biome lint --write .",
|
|
77
|
-
"prepublish": "cp -f ../../../README.md ./README.md",
|
|
78
|
-
"publish": "bun publish || true",
|
|
79
|
-
"publish:canary": "bun publish --access public --tag canary || true",
|
|
80
|
-
"publish:latest": "bun publish --access public --tag latest || true",
|
|
81
|
-
"test": "bun --bun vitest run",
|
|
82
|
-
"test:watch": "bun --bun vitest",
|
|
83
|
-
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
84
|
-
},
|
|
85
|
-
"dependencies": {
|
|
86
|
-
"@intlayer/config": "workspace:*",
|
|
87
|
-
"@intlayer/core": "workspace:*",
|
|
88
|
-
"@intlayer/dictionaries-entry": "workspace:*",
|
|
89
|
-
"@intlayer/types": "workspace:*",
|
|
90
|
-
"next-intlayer": "workspace:*",
|
|
91
|
-
"react-intlayer": "workspace:*"
|
|
92
|
-
},
|
|
93
|
-
"devDependencies": {
|
|
94
|
-
"@types/node": "25.9.2",
|
|
95
|
-
"@types/react": "19.2.17",
|
|
96
|
-
"@utils/ts-config": "workspace:*",
|
|
97
|
-
"@utils/ts-config-types": "workspace:*",
|
|
98
|
-
"@utils/tsdown-config": "workspace:*",
|
|
99
|
-
"next-intl": "4.13.0",
|
|
100
|
-
"rimraf": "6.1.3",
|
|
101
|
-
"tsdown": "0.21.10",
|
|
102
|
-
"typescript": "6.0.3",
|
|
103
|
-
"vitest": "4.1.8"
|
|
104
|
-
},
|
|
105
|
-
"peerDependencies": {
|
|
106
|
-
"next": ">=14.0.0",
|
|
107
|
-
"next-intl": ">=3.0.0",
|
|
108
|
-
"react": ">=16.0.0",
|
|
109
|
-
"react-dom": ">=16.0.0"
|
|
110
|
-
},
|
|
111
|
-
"engines": { "node": ">=14.18" }
|
|
112
|
-
};
|
|
113
|
-
}));
|
|
114
|
-
|
|
115
|
-
//#endregion
|
|
116
|
-
Object.defineProperty(exports, 'default', {
|
|
117
|
-
enumerable: true,
|
|
118
|
-
get: function () {
|
|
119
|
-
return require_package();
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=package.cjs.map
|
package/dist/cjs/package.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package.cjs","names":[],"sources":["../../package.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
5
|
-
let react_intlayer = require("react-intlayer");
|
|
6
|
-
|
|
7
|
-
//#region src/useDictionary.ts
|
|
8
|
-
const navigatePath = (objectValue, path) => {
|
|
9
|
-
if (!path) return objectValue;
|
|
10
|
-
const parts = path.split(".");
|
|
11
|
-
let current = objectValue;
|
|
12
|
-
for (const part of parts) {
|
|
13
|
-
if (current === null || current === void 0 || typeof current !== "object") return;
|
|
14
|
-
current = current[part];
|
|
15
|
-
}
|
|
16
|
-
return current;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Dictionary-accepting variant of `useTranslations`.
|
|
20
|
-
*
|
|
21
|
-
* Used internally by the SWC optimization: instead of looking up the dictionary
|
|
22
|
-
* at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time
|
|
23
|
-
* and passes it directly here. This enables tree-shaking of unused locale content.
|
|
24
|
-
*
|
|
25
|
-
* @example (generated by SWC, not written manually)
|
|
26
|
-
* import _abc from '.intlayer/dictionaries/about.json' with { type: 'json' };
|
|
27
|
-
* const t = useDictionary(_abc);
|
|
28
|
-
*/
|
|
29
|
-
const useDictionary = (dictionary, namespacePrefix) => {
|
|
30
|
-
const content = (0, react_intlayer.useDictionary)(dictionary);
|
|
31
|
-
const resolveKey = (key) => namespacePrefix ? `${namespacePrefix}.${key}` : key;
|
|
32
|
-
return Object.assign((lookup, params) => {
|
|
33
|
-
const rawValue = navigatePath(content, resolveKey(String(lookup)));
|
|
34
|
-
const str = String(rawValue ?? resolveKey(String(lookup)));
|
|
35
|
-
if (!params) return str;
|
|
36
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
37
|
-
}, {
|
|
38
|
-
has: (lookup) => navigatePath(content, resolveKey(String(lookup))) != null,
|
|
39
|
-
raw: (lookup) => navigatePath(content, resolveKey(String(lookup)))
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
//#endregion
|
|
44
|
-
exports.useDictionary = useDictionary;
|
|
45
|
-
//# sourceMappingURL=useDictionary.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDictionary.cjs","names":[],"sources":["../../src/useDictionary.ts"],"sourcesContent":["'use client';\n\nimport type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { useDictionary as useDictionaryBase } from 'react-intlayer';\n\nconst navigatePath = (objectValue: unknown, path: string): unknown => {\n if (!path) return objectValue;\n const parts = path.split('.');\n let current: unknown = objectValue;\n for (const part of parts) {\n if (\n current === null ||\n current === undefined ||\n typeof current !== 'object'\n ) {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return current;\n};\n\n/**\n * Dictionary-accepting variant of `useTranslations`.\n *\n * Used internally by the SWC optimization: instead of looking up the dictionary\n * at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time\n * and passes it directly here. This enables tree-shaking of unused locale content.\n *\n * @example (generated by SWC, not written manually)\n * import _abc from '.intlayer/dictionaries/about.json' with { type: 'json' };\n * const t = useDictionary(_abc);\n */\nexport const useDictionary = <T extends Dictionary>(\n dictionary: T,\n namespacePrefix?: string\n) => {\n const content = useDictionaryBase(dictionary);\n\n const resolveKey = (key: string): string =>\n namespacePrefix ? `${namespacePrefix}.${key}` : key;\n\n return Object.assign(\n <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const rawValue = navigatePath(content, resolveKey(String(lookup)));\n const str = String(rawValue ?? resolveKey(String(lookup)));\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n },\n {\n has: <P extends ValidDotPathsFor<any>>(lookup: P): boolean =>\n navigatePath(content, resolveKey(String(lookup))) != null,\n raw: <P extends ValidDotPathsFor<any>>(lookup: P): unknown =>\n navigatePath(content, resolveKey(String(lookup))),\n }\n );\n};\n"],"mappings":";;;;;;;AAMA,MAAM,gBAAgB,aAAsB,SAA0B;AACpE,KAAI,CAAC,KAAM,QAAO;CAClB,MAAM,QAAQ,KAAK,MAAM,IAAI;CAC7B,IAAI,UAAmB;AACvB,MAAK,MAAM,QAAQ,OAAO;AACxB,MACE,YAAY,QACZ,YAAY,UACZ,OAAO,YAAY,SAEnB;AAEF,YAAW,QAAoC;;AAEjD,QAAO;;;;;;;;;;;;;AAcT,MAAa,iBACX,YACA,oBACG;CACH,MAAM,4CAA4B,WAAW;CAE7C,MAAM,cAAc,QAClB,kBAAkB,GAAG,gBAAgB,GAAG,QAAQ;AAElD,QAAO,OAAO,QAEV,QACA,WACW;EACX,MAAM,WAAW,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC;EAClE,MAAM,MAAM,OAAO,YAAY,WAAW,OAAO,OAAO,CAAC,CAAC;AAC1D,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C;IAEH;EACE,MAAuC,WACrC,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC,IAAI;EACvD,MAAuC,WACrC,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC;EACpD,CACF"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
5
|
-
let react_intlayer = require("react-intlayer");
|
|
6
|
-
|
|
7
|
-
//#region src/useDictionaryDynamic.ts
|
|
8
|
-
const navigatePath = (objectValue, path) => {
|
|
9
|
-
if (!path) return objectValue;
|
|
10
|
-
const parts = path.split(".");
|
|
11
|
-
let current = objectValue;
|
|
12
|
-
for (const part of parts) {
|
|
13
|
-
if (current === null || current === void 0 || typeof current !== "object") return;
|
|
14
|
-
current = current[part];
|
|
15
|
-
}
|
|
16
|
-
return current;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Dynamic dictionary-accepting variant of `useTranslations`.
|
|
20
|
-
*/
|
|
21
|
-
const useDictionaryDynamic = (dictionaryPromise, key, namespacePrefix) => {
|
|
22
|
-
const content = (0, react_intlayer.useDictionaryDynamic)(dictionaryPromise, key);
|
|
23
|
-
const resolveKey = (lookupKey) => namespacePrefix ? `${namespacePrefix}.${lookupKey}` : lookupKey;
|
|
24
|
-
return Object.assign((lookup, params) => {
|
|
25
|
-
const rawValue = navigatePath(content, resolveKey(String(lookup)));
|
|
26
|
-
const str = String(rawValue ?? resolveKey(String(lookup)));
|
|
27
|
-
if (!params) return str;
|
|
28
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
29
|
-
}, {
|
|
30
|
-
has: (lookup) => navigatePath(content, resolveKey(String(lookup))) != null,
|
|
31
|
-
raw: (lookup) => navigatePath(content, resolveKey(String(lookup)))
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
//#endregion
|
|
36
|
-
exports.useDictionaryDynamic = useDictionaryDynamic;
|
|
37
|
-
//# sourceMappingURL=useDictionaryDynamic.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDictionaryDynamic.cjs","names":[],"sources":["../../src/useDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\nimport { useDictionaryDynamic as useDictionaryDynamicBase } from 'react-intlayer';\n\nconst navigatePath = (objectValue: unknown, path: string): unknown => {\n if (!path) return objectValue;\n const parts = path.split('.');\n let current: unknown = objectValue;\n for (const part of parts) {\n if (\n current === null ||\n current === undefined ||\n typeof current !== 'object'\n ) {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n return current;\n};\n\n/**\n * Dynamic dictionary-accepting variant of `useTranslations`.\n */\nexport const useDictionaryDynamic = <\n const T extends Dictionary,\n const K extends string,\n>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n key: K,\n namespacePrefix?: string\n) => {\n const content = useDictionaryDynamicBase<T, any>(\n dictionaryPromise,\n key as any\n );\n\n const resolveKey = (lookupKey: string): string =>\n namespacePrefix ? `${namespacePrefix}.${lookupKey}` : lookupKey;\n\n return Object.assign(\n <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const rawValue = navigatePath(content, resolveKey(String(lookup)));\n const str = String(rawValue ?? resolveKey(String(lookup)));\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n },\n {\n has: <P extends ValidDotPathsFor<any>>(lookup: P): boolean =>\n navigatePath(content, resolveKey(String(lookup))) != null,\n raw: <P extends ValidDotPathsFor<any>>(lookup: P): unknown =>\n navigatePath(content, resolveKey(String(lookup))),\n }\n );\n};\n"],"mappings":";;;;;;;AAOA,MAAM,gBAAgB,aAAsB,SAA0B;AACpE,KAAI,CAAC,KAAM,QAAO;CAClB,MAAM,QAAQ,KAAK,MAAM,IAAI;CAC7B,IAAI,UAAmB;AACvB,MAAK,MAAM,QAAQ,OAAO;AACxB,MACE,YAAY,QACZ,YAAY,UACZ,OAAO,YAAY,SAEnB;AAEF,YAAW,QAAoC;;AAEjD,QAAO;;;;;AAMT,MAAa,wBAIX,mBACA,KACA,oBACG;CACH,MAAM,mDACJ,mBACA,IACD;CAED,MAAM,cAAc,cAClB,kBAAkB,GAAG,gBAAgB,GAAG,cAAc;AAExD,QAAO,OAAO,QAEV,QACA,WACW;EACX,MAAM,WAAW,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC;EAClE,MAAM,MAAM,OAAO,YAAY,WAAW,OAAO,OAAO,CAAC,CAAC;AAC1D,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C;IAEH;EACE,MAAuC,WACrC,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC,IAAI;EACvD,MAAuC,WACrC,aAAa,SAAS,WAAW,OAAO,OAAO,CAAC,CAAC;EACpD,CACF"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
5
|
-
let react_intlayer = require("react-intlayer");
|
|
6
|
-
|
|
7
|
-
//#region src/useTranslationsDictionary.ts
|
|
8
|
-
/**
|
|
9
|
-
* Dictionary-accepting variant of `useTranslations`.
|
|
10
|
-
*
|
|
11
|
-
* Used internally by the SWC optimization: instead of looking up the dictionary
|
|
12
|
-
* at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time
|
|
13
|
-
* and passes it directly here. This enables tree-shaking of unused locale content.
|
|
14
|
-
*
|
|
15
|
-
* @example (generated by SWC, not written manually)
|
|
16
|
-
* import _abc from '.intlayer/dictionaries/about.json' with { type: 'json' };
|
|
17
|
-
* const t = useTranslationsDictionary(_abc);
|
|
18
|
-
*/
|
|
19
|
-
const useTranslationsDictionary = (dictionary, namespacePrefix) => {
|
|
20
|
-
const content = (0, react_intlayer.useDictionary)(dictionary);
|
|
21
|
-
return (lookup, params) => {
|
|
22
|
-
const lookupKey = namespacePrefix ? `${namespacePrefix}.${String(lookup)}` : String(lookup);
|
|
23
|
-
const parts = lookupKey.split(".");
|
|
24
|
-
let current = content;
|
|
25
|
-
for (const part of parts) {
|
|
26
|
-
if (current == null) break;
|
|
27
|
-
current = current[part];
|
|
28
|
-
}
|
|
29
|
-
const str = String(current ?? lookupKey);
|
|
30
|
-
if (!params) return str;
|
|
31
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
//#endregion
|
|
36
|
-
exports.useTranslationsDictionary = useTranslationsDictionary;
|
|
37
|
-
//# sourceMappingURL=useTranslationsDictionary.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslationsDictionary.cjs","names":[],"sources":["../../src/useTranslationsDictionary.ts"],"sourcesContent":["'use client';\n\nimport type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { useDictionary } from 'react-intlayer';\n\n/**\n * Dictionary-accepting variant of `useTranslations`.\n *\n * Used internally by the SWC optimization: instead of looking up the dictionary\n * at runtime by key, the SWC plugin pre-imports the dictionary JSON at build time\n * and passes it directly here. This enables tree-shaking of unused locale content.\n *\n * @example (generated by SWC, not written manually)\n * import _abc from '.intlayer/dictionaries/about.json' with { type: 'json' };\n * const t = useTranslationsDictionary(_abc);\n */\nexport const useTranslationsDictionary = <T extends Dictionary>(\n dictionary: T,\n namespacePrefix?: string\n) => {\n const content = useDictionary(dictionary);\n\n return <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const lookupKey = namespacePrefix\n ? `${namespacePrefix}.${String(lookup)}`\n : String(lookup);\n const parts = lookupKey.split('.');\n let current: any = content;\n for (const part of parts) {\n if (current == null) break;\n current = current[part];\n }\n const str = String(current ?? lookupKey);\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,MAAa,6BACX,YACA,oBACG;CACH,MAAM,4CAAwB,WAAW;AAEzC,SACE,QACA,WACW;EACX,MAAM,YAAY,kBACd,GAAG,gBAAgB,GAAG,OAAO,OAAO,KACpC,OAAO,OAAO;EAClB,MAAM,QAAQ,UAAU,MAAM,IAAI;EAClC,IAAI,UAAe;AACnB,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,WAAW,KAAM;AACrB,aAAU,QAAQ;;EAEpB,MAAM,MAAM,OAAO,WAAW,UAAU;AACxC,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
5
|
-
let react_intlayer = require("react-intlayer");
|
|
6
|
-
|
|
7
|
-
//#region src/useTranslationsDictionaryDynamic.ts
|
|
8
|
-
/**
|
|
9
|
-
* Dynamic dictionary-accepting variant of `useTranslations`.
|
|
10
|
-
*/
|
|
11
|
-
const useTranslationsDictionaryDynamic = (dictionaryPromise, key, namespacePrefix) => {
|
|
12
|
-
const content = (0, react_intlayer.useDictionaryDynamic)(dictionaryPromise, key);
|
|
13
|
-
return (lookup, params) => {
|
|
14
|
-
const lookupKey = namespacePrefix ? `${namespacePrefix}.${String(lookup)}` : String(lookup);
|
|
15
|
-
const parts = lookupKey.split(".");
|
|
16
|
-
let current = content;
|
|
17
|
-
for (const part of parts) {
|
|
18
|
-
if (current == null) break;
|
|
19
|
-
current = current[part];
|
|
20
|
-
}
|
|
21
|
-
const str = String(current ?? lookupKey);
|
|
22
|
-
if (!params) return str;
|
|
23
|
-
return str.replace(/\{(\w+)\}/g, (_, k) => params[k] != null ? String(params[k]) : `{${k}}`);
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
//#endregion
|
|
28
|
-
exports.useTranslationsDictionaryDynamic = useTranslationsDictionaryDynamic;
|
|
29
|
-
//# sourceMappingURL=useTranslationsDictionaryDynamic.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslationsDictionaryDynamic.cjs","names":[],"sources":["../../src/useTranslationsDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport type { ValidDotPathsFor } from '@intlayer/core/transpiler';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type { StrictModeLocaleMap } from '@intlayer/types/module_augmentation';\nimport { useDictionaryDynamic } from 'react-intlayer';\n\n/**\n * Dynamic dictionary-accepting variant of `useTranslations`.\n */\nexport const useTranslationsDictionaryDynamic = <\n const T extends Dictionary,\n const K extends string,\n>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n key: K,\n namespacePrefix?: string\n) => {\n const content = useDictionaryDynamic<T, any>(dictionaryPromise, key as any);\n\n return <P extends ValidDotPathsFor<any>>(\n lookup: P,\n params?: Record<string, unknown>\n ): string => {\n const lookupKey = namespacePrefix\n ? `${namespacePrefix}.${String(lookup)}`\n : String(lookup);\n const parts = lookupKey.split('.');\n let current: any = content;\n for (const part of parts) {\n if (current == null) break;\n current = current[part];\n }\n const str = String(current ?? lookupKey);\n if (!params) return str;\n return str.replace(/\\{(\\w+)\\}/g, (_, k) =>\n params[k] != null ? String(params[k]) : `{${k}}`\n );\n };\n};\n"],"mappings":";;;;;;;;;;AAUA,MAAa,oCAIX,mBACA,KACA,oBACG;CACH,MAAM,mDAAuC,mBAAmB,IAAW;AAE3E,SACE,QACA,WACW;EACX,MAAM,YAAY,kBACd,GAAG,gBAAgB,GAAG,OAAO,OAAO,KACpC,OAAO,OAAO;EAClB,MAAM,QAAQ,UAAU,MAAM,IAAI;EAClC,IAAI,UAAe;AACnB,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,WAAW,KAAM;AACrB,aAAU,QAAQ;;EAEpB,MAAM,MAAM,OAAO,WAAW,UAAU;AACxC,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,IAAI,QAAQ,eAAe,GAAG,MACnC,OAAO,MAAM,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,EAAE,GAC/C"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
//#region \0rolldown/runtime.js
|
|
2
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
|
|
3
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
4
|
-
throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
//#endregion
|
|
8
|
-
export { __require };
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { createFormatter } from "../createFormatter.mjs";
|
|
4
|
-
import { log } from "@intlayer/config/built";
|
|
5
|
-
import { useLocale } from "next-intlayer";
|
|
6
|
-
import { Fragment, jsx } from "react/jsx-runtime";
|
|
7
|
-
import { CYAN } from "@intlayer/config/colors";
|
|
8
|
-
import { colorize, getAppLogger } from "@intlayer/config/logger";
|
|
9
|
-
|
|
10
|
-
//#region src/client/helpers.tsx
|
|
11
|
-
/**
|
|
12
|
-
* Drop-in for next-intl's `useNow`.
|
|
13
|
-
* Returns the current `Date`. The `updateInterval` option is ignored.
|
|
14
|
-
*/
|
|
15
|
-
const useNow = () => /* @__PURE__ */ new Date();
|
|
16
|
-
/**
|
|
17
|
-
* Drop-in for next-intl's `useTimeZone`.
|
|
18
|
-
* Returns the system time zone resolved from `Intl.DateTimeFormat`.
|
|
19
|
-
*/
|
|
20
|
-
const useTimeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
21
|
-
/**
|
|
22
|
-
* Drop-in for next-intl's `useMessages`.
|
|
23
|
-
*
|
|
24
|
-
* @deprecated useMessages has no use case with intlayer.
|
|
25
|
-
* Messages are loaded automatically under the hood.
|
|
26
|
-
* @returns An empty object.
|
|
27
|
-
*/
|
|
28
|
-
const useMessages = () => {
|
|
29
|
-
getAppLogger({ log })(`${colorize("useMessages", CYAN)} has no use case with intlayer. Messages are loaded automatically under the hood for bundle optimization reason`);
|
|
30
|
-
return {};
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Drop-in for next-intl's `useFormatter`.
|
|
34
|
-
* Returns locale-aware formatters backed by the native `Intl.*` APIs:
|
|
35
|
-
* `dateTime`, `number`, `dateTimeRange`, `relativeTime`, `list`, and
|
|
36
|
-
* `displayName`.
|
|
37
|
-
*/
|
|
38
|
-
const useFormatter = () => {
|
|
39
|
-
const { locale } = useLocale();
|
|
40
|
-
return createFormatter(locale ?? "en");
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Drop-in for next-intl's `IntlProvider`.
|
|
44
|
-
* Renders children as-is — Intlayer provides its own context via
|
|
45
|
-
* `IntlayerClientProvider`.
|
|
46
|
-
*
|
|
47
|
-
* @deprecated IntlProvider has no use case with intlayer.
|
|
48
|
-
* Use `IntlayerClientProvider` or `NextIntlClientProvider` instead.
|
|
49
|
-
*/
|
|
50
|
-
const IntlProvider = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });
|
|
51
|
-
/**
|
|
52
|
-
* @internal Not part of the public next-intl API surface; provided for
|
|
53
|
-
* internal compatibility shims only.
|
|
54
|
-
*/
|
|
55
|
-
const useExtracted = (..._args) => ({});
|
|
56
|
-
|
|
57
|
-
//#endregion
|
|
58
|
-
export { IntlProvider, useExtracted, useFormatter, useMessages, useNow, useTimeZone };
|
|
59
|
-
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","names":[],"sources":["../../../src/client/helpers.tsx"],"sourcesContent":["'use client';\n\nimport { log } from '@intlayer/config/built';\nimport { CYAN } from '@intlayer/config/colors';\nimport { colorize, getAppLogger } from '@intlayer/config/logger';\nimport type {\n IntlProvider as _IntlProvider,\n useFormatter as _useFormatter,\n useMessages as _useMessages,\n useNow as _useNow,\n useTimeZone as _useTimeZone,\n} from 'next-intl';\nimport { useLocale } from 'next-intlayer';\nimport type * as React from 'react';\nimport { createFormatter } from '../createFormatter';\n\n/**\n * Drop-in for next-intl's `useNow`.\n * Returns the current `Date`. The `updateInterval` option is ignored.\n */\nexport const useNow: typeof _useNow = () => new Date();\n\n/**\n * Drop-in for next-intl's `useTimeZone`.\n * Returns the system time zone resolved from `Intl.DateTimeFormat`.\n */\nexport const useTimeZone: typeof _useTimeZone = () =>\n Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n/**\n * Drop-in for next-intl's `useMessages`.\n *\n * @deprecated useMessages has no use case with intlayer.\n * Messages are loaded automatically under the hood.\n * @returns An empty object.\n */\nexport const useMessages: typeof _useMessages = () => {\n if (process.env.NODE_ENV === 'development') {\n const appLogger = getAppLogger({ log });\n appLogger(\n `${colorize('useMessages', CYAN)} has no use case with intlayer. Messages are loaded automatically under the hood for bundle optimization reason`\n );\n }\n\n return {} as ReturnType<typeof _useMessages>;\n};\n\n/**\n * Drop-in for next-intl's `useFormatter`.\n * Returns locale-aware formatters backed by the native `Intl.*` APIs:\n * `dateTime`, `number`, `dateTimeRange`, `relativeTime`, `list`, and\n * `displayName`.\n */\nexport const useFormatter: typeof _useFormatter = () => {\n const { locale } = useLocale();\n return createFormatter((locale as string) ?? 'en');\n};\n\ninterface ProviderProps {\n children?: React.ReactNode;\n [key: string]: unknown;\n}\n\n/**\n * Drop-in for next-intl's `IntlProvider`.\n * Renders children as-is — Intlayer provides its own context via\n * `IntlayerClientProvider`.\n *\n * @deprecated IntlProvider has no use case with intlayer.\n * Use `IntlayerClientProvider` or `NextIntlClientProvider` instead.\n */\nexport const IntlProvider: typeof _IntlProvider = ({\n children,\n}: ProviderProps) => <>{children}</>;\n\n/**\n * @internal Not part of the public next-intl API surface; provided for\n * internal compatibility shims only.\n */\nexport const useExtracted = (..._args: unknown[]) => ({});\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAa,+BAA+B,IAAI,MAAM;;;;;AAMtD,MAAa,oBACX,KAAK,gBAAgB,CAAC,iBAAiB,CAAC;;;;;;;;AAS1C,MAAa,oBAAyC;AAGlD,CADkB,aAAa,EAAE,KAAK,CAC7B,CACP,GAAG,SAAS,eAAe,KAAK,CAAC,iHAClC;AAGH,QAAO,EAAE;;;;;;;;AASX,MAAa,qBAA2C;CACtD,MAAM,EAAE,WAAW,WAAW;AAC9B,QAAO,gBAAiB,UAAqB,KAAK;;;;;;;;;;AAgBpD,MAAa,gBAAsC,EACjD,eACmB,gCAAG,UAAY;;;;;AAMpC,MAAa,gBAAgB,GAAG,WAAsB,EAAE"}
|