@i18n-micro/utils 1.0.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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -0
  3. package/dist/accept-language.cjs +1 -0
  4. package/dist/accept-language.d.cts +3 -0
  5. package/dist/accept-language.d.ts +3 -0
  6. package/dist/accept-language.mjs +22 -0
  7. package/dist/active-locales.cjs +1 -0
  8. package/dist/active-locales.d.cts +4 -0
  9. package/dist/active-locales.d.ts +4 -0
  10. package/dist/active-locales.mjs +14 -0
  11. package/dist/build.cjs +1 -0
  12. package/dist/build.d.cts +14 -0
  13. package/dist/build.d.ts +14 -0
  14. package/dist/build.mjs +86 -0
  15. package/dist/cache-control.cjs +1 -0
  16. package/dist/cache-control.d.cts +33 -0
  17. package/dist/cache-control.d.ts +33 -0
  18. package/dist/cache-control.mjs +56 -0
  19. package/dist/cookie.cjs +1 -0
  20. package/dist/cookie.d.cts +24 -0
  21. package/dist/cookie.d.ts +24 -0
  22. package/dist/cookie.mjs +25 -0
  23. package/dist/deep-merge.cjs +1 -0
  24. package/dist/deep-merge.d.cts +17 -0
  25. package/dist/deep-merge.d.ts +17 -0
  26. package/dist/deep-merge.mjs +23 -0
  27. package/dist/merge-source.cjs +1 -0
  28. package/dist/merge-source.d.cts +22 -0
  29. package/dist/merge-source.d.ts +22 -0
  30. package/dist/merge-source.mjs +51 -0
  31. package/dist/parse-path.cjs +1 -0
  32. package/dist/parse-path.d.cts +35 -0
  33. package/dist/parse-path.d.ts +35 -0
  34. package/dist/parse-path.mjs +41 -0
  35. package/dist/payload-config.cjs +1 -0
  36. package/dist/payload-config.d.cts +35 -0
  37. package/dist/payload-config.d.ts +35 -0
  38. package/dist/payload-config.mjs +59 -0
  39. package/dist/payload-fetch.cjs +1 -0
  40. package/dist/payload-fetch.d.cts +11 -0
  41. package/dist/payload-fetch.d.ts +11 -0
  42. package/dist/payload-fetch.mjs +28 -0
  43. package/dist/payload-stats.cjs +1 -0
  44. package/dist/payload-stats.d.cts +2 -0
  45. package/dist/payload-stats.d.ts +2 -0
  46. package/dist/payload-stats.mjs +19 -0
  47. package/dist/payload-url.cjs +1 -0
  48. package/dist/payload-url.d.cts +24 -0
  49. package/dist/payload-url.d.ts +24 -0
  50. package/dist/payload-url.mjs +24 -0
  51. package/dist/resolve-locale.cjs +1 -0
  52. package/dist/resolve-locale.d.cts +21 -0
  53. package/dist/resolve-locale.d.ts +21 -0
  54. package/dist/resolve-locale.mjs +15 -0
  55. package/dist/route-pattern.cjs +1 -0
  56. package/dist/route-pattern.d.cts +11 -0
  57. package/dist/route-pattern.d.ts +11 -0
  58. package/dist/route-pattern.mjs +20 -0
  59. package/dist/route.cjs +1 -0
  60. package/dist/route.d.cts +9 -0
  61. package/dist/route.d.ts +9 -0
  62. package/dist/route.mjs +38 -0
  63. package/dist/runtime-config.cjs +1 -0
  64. package/dist/runtime-config.d.cts +8 -0
  65. package/dist/runtime-config.d.ts +8 -0
  66. package/dist/runtime-config.mjs +69 -0
  67. package/dist/source-loader.cjs +1 -0
  68. package/dist/source-loader.d.cts +6 -0
  69. package/dist/source-loader.d.ts +6 -0
  70. package/dist/source-loader.mjs +16 -0
  71. package/package.json +246 -0
@@ -0,0 +1,69 @@
1
+ function c(l) {
2
+ if (typeof l != "string") return;
3
+ const a = l.trim();
4
+ return a.length > 0 ? a : void 0;
5
+ }
6
+ function L(l) {
7
+ if (Array.isArray(l)) {
8
+ const a = l.map((e) => c(e)).filter((e) => !!e);
9
+ return a.length > 0 ? a : void 0;
10
+ }
11
+ if (typeof l == "string") {
12
+ const a = l.split(",").map((e) => e.trim()).filter((e) => e.length > 0);
13
+ return a.length > 0 ? a : void 0;
14
+ }
15
+ }
16
+ function b() {
17
+ return {
18
+ defaultLocale: c(process.env.NUXT_I18N_DEFAULT_LOCALE) ?? c(process.env.NUXT_PUBLIC_I18N_RUNTIME_DEFAULT_LOCALE),
19
+ fallbackLocale: c(process.env.NUXT_I18N_FALLBACK_LOCALE) ?? c(process.env.NUXT_PUBLIC_I18N_RUNTIME_FALLBACK_LOCALE),
20
+ disabledLocales: L(process.env.NUXT_I18N_DISABLED_LOCALES) ?? L(process.env.NUXT_PUBLIC_I18N_RUNTIME_DISABLED_LOCALES),
21
+ strategy: c(process.env.NUXT_I18N_STRATEGY) ?? c(process.env.NUXT_PUBLIC_I18N_RUNTIME_STRATEGY)
22
+ };
23
+ }
24
+ function m(l) {
25
+ const a = l?.i18nRuntime;
26
+ if (!a || typeof a != "object") return {};
27
+ const e = a;
28
+ return {
29
+ defaultLocale: c(e.defaultLocale),
30
+ fallbackLocale: c(e.fallbackLocale),
31
+ disabledLocales: L(e.disabledLocales),
32
+ strategy: c(e.strategy)
33
+ };
34
+ }
35
+ function g(l) {
36
+ const a = b(), e = m(l);
37
+ return {
38
+ defaultLocale: e.defaultLocale ?? a.defaultLocale,
39
+ fallbackLocale: e.fallbackLocale ?? a.fallbackLocale,
40
+ disabledLocales: e.disabledLocales ?? a.disabledLocales,
41
+ strategy: e.strategy ?? a.strategy
42
+ };
43
+ }
44
+ function p(l, a, e = (t) => console.warn(t)) {
45
+ const t = g(a), i = (l.locales ?? []).map((o) => ({ ...o }));
46
+ if (t.strategy && t.strategy !== l.strategy && e(
47
+ `[nuxt-i18n-micro] runtime i18n strategy override is ignored: "${t.strategy}" (build strategy: "${l.strategy}"). Build a separate artifact for each strategy.`
48
+ ), t.disabledLocales && t.disabledLocales.length > 0) {
49
+ const o = new Set(t.disabledLocales);
50
+ for (const u of i)
51
+ u.disabled = o.has(u.code);
52
+ }
53
+ const n = i.filter((o) => !o.disabled);
54
+ if (n.length === 0)
55
+ return t.disabledLocales && t.disabledLocales.length > 0 && e("[nuxt-i18n-micro] runtime disabledLocales override would disable all locales; override ignored."), { ...l, locales: (l.locales ?? []).map((o) => ({ ...o })) };
56
+ const _ = new Set(i.map((o) => o.code));
57
+ let s = t.defaultLocale ?? l.defaultLocale, r = t.fallbackLocale ?? l.fallbackLocale;
58
+ r && !_.has(r) && (e(`[nuxt-i18n-micro] runtime fallbackLocale "${r}" is not defined in locales; override ignored.`), r = l.fallbackLocale);
59
+ const f = new Set(n.map((o) => o.code)), d = n[0]?.code ?? l.defaultLocale ?? "en";
60
+ return (!s || !f.has(s)) && (t.defaultLocale ? e(`[nuxt-i18n-micro] runtime defaultLocale "${t.defaultLocale}" is not enabled; falling back to "${d}".`) : s && !f.has(s) && e(`[nuxt-i18n-micro] defaultLocale "${s}" is disabled by runtime overrides; falling back to "${d}".`), s = d), {
61
+ ...l,
62
+ locales: i,
63
+ defaultLocale: s,
64
+ fallbackLocale: r
65
+ };
66
+ }
67
+ export {
68
+ p as resolveI18nConfigWithRuntimeOverrides
69
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./merge-source.cjs");function u(r){return r?typeof r=="object"&&r!==null&&!Array.isArray(r)?r:{}:{}}async function a(r,o){return e.mergeSourceTranslations({...o,readLocaleFile:async t=>{const n=await r.getItem(e.toSourceStorageKey(t));return u(n)}})}exports.loadSourceTranslationsFromStorage=a;
@@ -0,0 +1,6 @@
1
+ import { Translations } from '@i18n-micro/types';
2
+ import { MergeSourceTranslationsInput } from './merge-source';
3
+ export interface TranslationStorageReader {
4
+ getItem(key: string): Promise<unknown>;
5
+ }
6
+ export declare function loadSourceTranslationsFromStorage(storage: TranslationStorageReader, input: Omit<MergeSourceTranslationsInput, 'readLocaleFile'>): Promise<Translations>;
@@ -0,0 +1,6 @@
1
+ import { Translations } from '@i18n-micro/types';
2
+ import { MergeSourceTranslationsInput } from './merge-source';
3
+ export interface TranslationStorageReader {
4
+ getItem(key: string): Promise<unknown>;
5
+ }
6
+ export declare function loadSourceTranslationsFromStorage(storage: TranslationStorageReader, input: Omit<MergeSourceTranslationsInput, 'readLocaleFile'>): Promise<Translations>;
@@ -0,0 +1,16 @@
1
+ import { mergeSourceTranslations as t, toSourceStorageKey as i } from "./merge-source.mjs";
2
+ function u(r) {
3
+ return r ? typeof r == "object" && r !== null && !Array.isArray(r) ? r : {} : {};
4
+ }
5
+ async function c(r, e) {
6
+ return t({
7
+ ...e,
8
+ readLocaleFile: async (o) => {
9
+ const n = await r.getItem(i(o));
10
+ return u(n);
11
+ }
12
+ });
13
+ }
14
+ export {
15
+ c as loadSourceTranslationsFromStorage
16
+ };
package/package.json ADDED
@@ -0,0 +1,246 @@
1
+ {
2
+ "name": "@i18n-micro/utils",
3
+ "version": "1.0.0",
4
+ "description": "Framework-agnostic utilities for Nuxt I18n Micro (granular subpath imports).",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/s00d/nuxt-i18n-micro.git",
8
+ "directory": "packages/utils"
9
+ },
10
+ "license": "MIT",
11
+ "type": "module",
12
+ "sideEffects": false,
13
+ "author": {
14
+ "name": "s00d",
15
+ "email": "Virus191288@gmail.com",
16
+ "url": "https://s00d.github.io/"
17
+ },
18
+ "homepage": "https://github.com/s00d/nuxt-i18n-micro/tree/main/packages/utils#readme",
19
+ "bugs": {
20
+ "url": "https://github.com/s00d/nuxt-i18n-micro/issues"
21
+ },
22
+ "engines": {
23
+ "node": ">=18"
24
+ },
25
+ "exports": {
26
+ "./deep-merge": {
27
+ "import": {
28
+ "types": "./dist/deep-merge.d.ts",
29
+ "default": "./dist/deep-merge.mjs"
30
+ },
31
+ "require": {
32
+ "types": "./dist/deep-merge.d.cts",
33
+ "default": "./dist/deep-merge.cjs"
34
+ },
35
+ "default": "./dist/deep-merge.mjs"
36
+ },
37
+ "./merge-source": {
38
+ "import": {
39
+ "types": "./dist/merge-source.d.ts",
40
+ "default": "./dist/merge-source.mjs"
41
+ },
42
+ "require": {
43
+ "types": "./dist/merge-source.d.cts",
44
+ "default": "./dist/merge-source.cjs"
45
+ },
46
+ "default": "./dist/merge-source.mjs"
47
+ },
48
+ "./source-loader": {
49
+ "import": {
50
+ "types": "./dist/source-loader.d.ts",
51
+ "default": "./dist/source-loader.mjs"
52
+ },
53
+ "require": {
54
+ "types": "./dist/source-loader.d.cts",
55
+ "default": "./dist/source-loader.cjs"
56
+ },
57
+ "default": "./dist/source-loader.mjs"
58
+ },
59
+ "./payload-config": {
60
+ "import": {
61
+ "types": "./dist/payload-config.d.ts",
62
+ "default": "./dist/payload-config.mjs"
63
+ },
64
+ "require": {
65
+ "types": "./dist/payload-config.d.cts",
66
+ "default": "./dist/payload-config.cjs"
67
+ },
68
+ "default": "./dist/payload-config.mjs"
69
+ },
70
+ "./payload-url": {
71
+ "import": {
72
+ "types": "./dist/payload-url.d.ts",
73
+ "default": "./dist/payload-url.mjs"
74
+ },
75
+ "require": {
76
+ "types": "./dist/payload-url.d.cts",
77
+ "default": "./dist/payload-url.cjs"
78
+ },
79
+ "default": "./dist/payload-url.mjs"
80
+ },
81
+ "./payload-fetch": {
82
+ "import": {
83
+ "types": "./dist/payload-fetch.d.ts",
84
+ "default": "./dist/payload-fetch.mjs"
85
+ },
86
+ "require": {
87
+ "types": "./dist/payload-fetch.d.cts",
88
+ "default": "./dist/payload-fetch.cjs"
89
+ },
90
+ "default": "./dist/payload-fetch.mjs"
91
+ },
92
+ "./payload-stats": {
93
+ "import": {
94
+ "types": "./dist/payload-stats.d.ts",
95
+ "default": "./dist/payload-stats.mjs"
96
+ },
97
+ "require": {
98
+ "types": "./dist/payload-stats.d.cts",
99
+ "default": "./dist/payload-stats.cjs"
100
+ },
101
+ "default": "./dist/payload-stats.mjs"
102
+ },
103
+ "./accept-language": {
104
+ "import": {
105
+ "types": "./dist/accept-language.d.ts",
106
+ "default": "./dist/accept-language.mjs"
107
+ },
108
+ "require": {
109
+ "types": "./dist/accept-language.d.cts",
110
+ "default": "./dist/accept-language.cjs"
111
+ },
112
+ "default": "./dist/accept-language.mjs"
113
+ },
114
+ "./resolve-locale": {
115
+ "import": {
116
+ "types": "./dist/resolve-locale.d.ts",
117
+ "default": "./dist/resolve-locale.mjs"
118
+ },
119
+ "require": {
120
+ "types": "./dist/resolve-locale.d.cts",
121
+ "default": "./dist/resolve-locale.cjs"
122
+ },
123
+ "default": "./dist/resolve-locale.mjs"
124
+ },
125
+ "./active-locales": {
126
+ "import": {
127
+ "types": "./dist/active-locales.d.ts",
128
+ "default": "./dist/active-locales.mjs"
129
+ },
130
+ "require": {
131
+ "types": "./dist/active-locales.d.cts",
132
+ "default": "./dist/active-locales.cjs"
133
+ },
134
+ "default": "./dist/active-locales.mjs"
135
+ },
136
+ "./cookie": {
137
+ "import": {
138
+ "types": "./dist/cookie.d.ts",
139
+ "default": "./dist/cookie.mjs"
140
+ },
141
+ "require": {
142
+ "types": "./dist/cookie.d.cts",
143
+ "default": "./dist/cookie.cjs"
144
+ },
145
+ "default": "./dist/cookie.mjs"
146
+ },
147
+ "./cache-control": {
148
+ "import": {
149
+ "types": "./dist/cache-control.d.ts",
150
+ "default": "./dist/cache-control.mjs"
151
+ },
152
+ "require": {
153
+ "types": "./dist/cache-control.d.cts",
154
+ "default": "./dist/cache-control.cjs"
155
+ },
156
+ "default": "./dist/cache-control.mjs"
157
+ },
158
+ "./parse-path": {
159
+ "import": {
160
+ "types": "./dist/parse-path.d.ts",
161
+ "default": "./dist/parse-path.mjs"
162
+ },
163
+ "require": {
164
+ "types": "./dist/parse-path.d.cts",
165
+ "default": "./dist/parse-path.cjs"
166
+ },
167
+ "default": "./dist/parse-path.mjs"
168
+ },
169
+ "./route-pattern": {
170
+ "import": {
171
+ "types": "./dist/route-pattern.d.ts",
172
+ "default": "./dist/route-pattern.mjs"
173
+ },
174
+ "require": {
175
+ "types": "./dist/route-pattern.d.cts",
176
+ "default": "./dist/route-pattern.cjs"
177
+ },
178
+ "default": "./dist/route-pattern.mjs"
179
+ },
180
+ "./route": {
181
+ "import": {
182
+ "types": "./dist/route.d.ts",
183
+ "default": "./dist/route.mjs"
184
+ },
185
+ "require": {
186
+ "types": "./dist/route.d.cts",
187
+ "default": "./dist/route.cjs"
188
+ },
189
+ "default": "./dist/route.mjs"
190
+ },
191
+ "./runtime-config": {
192
+ "import": {
193
+ "types": "./dist/runtime-config.d.ts",
194
+ "default": "./dist/runtime-config.mjs"
195
+ },
196
+ "require": {
197
+ "types": "./dist/runtime-config.d.cts",
198
+ "default": "./dist/runtime-config.cjs"
199
+ },
200
+ "default": "./dist/runtime-config.mjs"
201
+ },
202
+ "./build": {
203
+ "import": {
204
+ "types": "./dist/build.d.ts",
205
+ "default": "./dist/build.mjs"
206
+ },
207
+ "require": {
208
+ "types": "./dist/build.d.cts",
209
+ "default": "./dist/build.cjs"
210
+ },
211
+ "default": "./dist/build.mjs"
212
+ },
213
+ "./package.json": "./package.json",
214
+ "./dist/*": "./dist/*"
215
+ },
216
+ "publishConfig": {
217
+ "access": "public"
218
+ },
219
+ "keywords": [
220
+ "i18n",
221
+ "translations",
222
+ "utils",
223
+ "locale"
224
+ ],
225
+ "files": [
226
+ "dist",
227
+ "README.md"
228
+ ],
229
+ "dependencies": {
230
+ "globby": "^14.1.0",
231
+ "@i18n-micro/types": "1.2.3"
232
+ },
233
+ "devDependencies": {
234
+ "publint": "^0.3.17",
235
+ "vite": "^7.3.1",
236
+ "vite-plugin-dts": "^4.5.4",
237
+ "vitest": "^3.2.4",
238
+ "@i18n-micro/test-utils": "1.2.1"
239
+ },
240
+ "scripts": {
241
+ "build": "vite build",
242
+ "check:package": "publint",
243
+ "test": "jest",
244
+ "test:dist": "vitest run --config vitest.dist.config.ts"
245
+ }
246
+ }