@intlayer/config 7.1.0-canary.2 → 7.1.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/cjs/alias.cjs.map +1 -1
  2. package/dist/cjs/configFile/getConfiguration.cjs +3 -3
  3. package/dist/cjs/configFile/getConfiguration.cjs.map +1 -1
  4. package/dist/cjs/index.cjs +6 -6
  5. package/dist/cjs/loadExternalFile/loadExternalFile.cjs +1 -1
  6. package/dist/cjs/package.cjs +1 -1
  7. package/dist/cjs/package.cjs.map +1 -1
  8. package/dist/cjs/utils/cache.cjs +16 -15
  9. package/dist/cjs/utils/cache.cjs.map +1 -1
  10. package/dist/cjs/utils/cacheDisk.cjs +162 -0
  11. package/dist/cjs/utils/cacheDisk.cjs.map +1 -0
  12. package/dist/cjs/utils/cacheMemory.cjs +269 -0
  13. package/dist/cjs/utils/cacheMemory.cjs.map +1 -0
  14. package/dist/cjs/utils/checkVersionsConsistency.cjs +68 -0
  15. package/dist/cjs/utils/checkVersionsConsistency.cjs.map +1 -0
  16. package/dist/cjs/utils/getPackageJsonPath.cjs +3 -3
  17. package/dist/cjs/utils/getPackageJsonPath.cjs.map +1 -1
  18. package/dist/esm/alias.mjs.map +1 -1
  19. package/dist/esm/configFile/getConfiguration.mjs +3 -3
  20. package/dist/esm/configFile/getConfiguration.mjs.map +1 -1
  21. package/dist/esm/index.mjs +4 -2
  22. package/dist/esm/loadExternalFile/loadExternalFile.mjs +1 -1
  23. package/dist/esm/package.mjs +1 -1
  24. package/dist/esm/package.mjs.map +1 -1
  25. package/dist/esm/utils/cache.mjs +14 -14
  26. package/dist/esm/utils/cache.mjs.map +1 -1
  27. package/dist/esm/utils/cacheDisk.mjs +160 -0
  28. package/dist/esm/utils/cacheDisk.mjs.map +1 -0
  29. package/dist/esm/utils/cacheMemory.mjs +262 -0
  30. package/dist/esm/utils/cacheMemory.mjs.map +1 -0
  31. package/dist/esm/utils/checkVersionsConsistency.mjs +66 -0
  32. package/dist/esm/utils/checkVersionsConsistency.mjs.map +1 -0
  33. package/dist/esm/utils/getPackageJsonPath.mjs +3 -3
  34. package/dist/esm/utils/getPackageJsonPath.mjs.map +1 -1
  35. package/dist/types/alias.d.ts +6 -6
  36. package/dist/types/alias.d.ts.map +1 -1
  37. package/dist/types/index.d.ts +4 -2
  38. package/dist/types/utils/cache.d.ts +3 -4
  39. package/dist/types/utils/cache.d.ts.map +1 -1
  40. package/dist/types/utils/cacheDisk.d.ts +35 -0
  41. package/dist/types/utils/cacheDisk.d.ts.map +1 -0
  42. package/dist/types/utils/cacheMemory.d.ts +20 -0
  43. package/dist/types/utils/cacheMemory.d.ts.map +1 -0
  44. package/dist/types/utils/checkVersionsConsistency.d.ts +7 -0
  45. package/dist/types/utils/checkVersionsConsistency.d.ts.map +1 -0
  46. package/package.json +4 -4
@@ -0,0 +1,269 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ let node_crypto = require("node:crypto");
3
+
4
+ //#region src/utils/cacheMemory.ts
5
+ /** ------------------------- Utilities ------------------------- **/
6
+ /** Prefer a fast non-crypto hash if available, then fast crypto, then sha256. */
7
+ const pickHashAlgorithm = () => {
8
+ try {
9
+ (0, node_crypto.createHash)("xxhash64").update("test").digest();
10
+ return "xxhash64";
11
+ } catch {}
12
+ try {
13
+ (0, node_crypto.createHash)("sha1").update("test").digest();
14
+ return "sha1";
15
+ } catch {}
16
+ return "sha256";
17
+ };
18
+ const HASH_ALGORITHM = pickHashAlgorithm();
19
+ /** Base64url without padding for compact, file-system-safe ids. */
20
+ const toBase64Url = (buffer) => buffer.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
21
+ /** Token helpers to minimize collisions while streaming to the hasher. */
22
+ const token = {
23
+ start: (hasher, tag) => hasher.update(`<${tag}>`),
24
+ sep: (hasher) => hasher.update("|"),
25
+ end: (hasher, tag) => hasher.update(`</${tag}>`),
26
+ str: (hasher, stringValue) => {
27
+ hasher.update(`${stringValue.length}#`);
28
+ hasher.update(stringValue);
29
+ },
30
+ num: (hasher, numberValue) => hasher.update(Number.isNaN(numberValue) ? "NaN" : numberValue === Infinity ? "Inf" : numberValue === -Infinity ? "-Inf" : String(numberValue)),
31
+ big: (hasher, bigintValue) => hasher.update(bigintValue.toString(10)),
32
+ bool: (hasher, booleanValue) => hasher.update(booleanValue ? "1" : "0")
33
+ };
34
+ /**
35
+ * Streams a canonical representation of `value` into `hasher` without
36
+ * constructing large intermediate strings. Objects/Maps/Sets are normalized.
37
+ */
38
+ const stableHashValue = (hasher, value, seen) => {
39
+ const valueType = typeof value;
40
+ if (value === null) {
41
+ token.start(hasher, "null");
42
+ token.end(hasher, "null");
43
+ return;
44
+ }
45
+ if (valueType === "undefined") {
46
+ token.start(hasher, "undef");
47
+ token.end(hasher, "undef");
48
+ return;
49
+ }
50
+ if (valueType === "number") {
51
+ token.start(hasher, "num");
52
+ token.num(hasher, value);
53
+ token.end(hasher, "num");
54
+ return;
55
+ }
56
+ if (valueType === "bigint") {
57
+ token.start(hasher, "big");
58
+ token.big(hasher, value);
59
+ token.end(hasher, "big");
60
+ return;
61
+ }
62
+ if (valueType === "boolean") {
63
+ token.start(hasher, "bool");
64
+ token.bool(hasher, value);
65
+ token.end(hasher, "bool");
66
+ return;
67
+ }
68
+ if (valueType === "string") {
69
+ token.start(hasher, "str");
70
+ token.str(hasher, value);
71
+ token.end(hasher, "str");
72
+ return;
73
+ }
74
+ if (valueType === "symbol") {
75
+ token.start(hasher, "sym");
76
+ token.str(hasher, String(value));
77
+ token.end(hasher, "sym");
78
+ return;
79
+ }
80
+ if (valueType === "function") {
81
+ const functionValue = value;
82
+ token.start(hasher, "fn");
83
+ token.str(hasher, functionValue.name ?? "");
84
+ token.sep(hasher);
85
+ token.num(hasher, functionValue.length);
86
+ token.end(hasher, "fn");
87
+ return;
88
+ }
89
+ if (Array.isArray(value)) {
90
+ if (seen.has(value)) {
91
+ token.start(hasher, "arr");
92
+ token.str(hasher, "Circular");
93
+ token.end(hasher, "arr");
94
+ return;
95
+ }
96
+ seen.add(value);
97
+ token.start(hasher, "arr");
98
+ for (let i = 0; i < value.length; i++) {
99
+ token.sep(hasher);
100
+ stableHashValue(hasher, value[i], seen);
101
+ }
102
+ token.end(hasher, "arr");
103
+ seen.delete(value);
104
+ return;
105
+ }
106
+ if (value instanceof Date) {
107
+ token.start(hasher, "date");
108
+ token.str(hasher, value.toISOString());
109
+ token.end(hasher, "date");
110
+ return;
111
+ }
112
+ if (value instanceof RegExp) {
113
+ const regex = value;
114
+ token.start(hasher, "re");
115
+ token.str(hasher, regex.source);
116
+ token.sep(hasher);
117
+ token.str(hasher, regex.flags);
118
+ token.end(hasher, "re");
119
+ return;
120
+ }
121
+ if (value instanceof Set) {
122
+ const setValue = value;
123
+ if (seen.has(setValue)) {
124
+ token.start(hasher, "set");
125
+ token.str(hasher, "Circular");
126
+ token.end(hasher, "set");
127
+ return;
128
+ }
129
+ seen.add(setValue);
130
+ const items = [];
131
+ for (const v of setValue) items.push(stableStringify(v));
132
+ items.sort();
133
+ token.start(hasher, "set");
134
+ for (const item of items) {
135
+ token.sep(hasher);
136
+ token.str(hasher, item);
137
+ }
138
+ token.end(hasher, "set");
139
+ seen.delete(setValue);
140
+ return;
141
+ }
142
+ if (value instanceof Map) {
143
+ const mapObject = value;
144
+ if (seen.has(mapObject)) {
145
+ token.start(hasher, "map");
146
+ token.str(hasher, "Circular");
147
+ token.end(hasher, "map");
148
+ return;
149
+ }
150
+ seen.add(mapObject);
151
+ const entries = [];
152
+ for (const [k, v] of mapObject.entries()) entries.push([stableStringify(k), v]);
153
+ entries.sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0);
154
+ token.start(hasher, "map");
155
+ for (const [keyFingerprint, entryValue] of entries) {
156
+ token.sep(hasher);
157
+ token.str(hasher, keyFingerprint);
158
+ token.sep(hasher);
159
+ stableHashValue(hasher, entryValue, seen);
160
+ }
161
+ token.end(hasher, "map");
162
+ seen.delete(mapObject);
163
+ return;
164
+ }
165
+ if (ArrayBuffer.isView(value)) {
166
+ const view = value;
167
+ token.start(hasher, "typed");
168
+ token.str(hasher, Object.getPrototypeOf(view).constructor.name);
169
+ token.sep(hasher);
170
+ hasher.update(Buffer.from(view.buffer, view.byteOffset, view.byteLength));
171
+ token.end(hasher, "typed");
172
+ return;
173
+ }
174
+ if (value instanceof ArrayBuffer) {
175
+ const buffer = Buffer.from(value);
176
+ token.start(hasher, "ab");
177
+ hasher.update(buffer);
178
+ token.end(hasher, "ab");
179
+ return;
180
+ }
181
+ if (typeof URL !== "undefined" && value instanceof URL) {
182
+ token.start(hasher, "url");
183
+ token.str(hasher, value.toString());
184
+ token.end(hasher, "url");
185
+ return;
186
+ }
187
+ if (value instanceof Error) {
188
+ const errorValue = value;
189
+ token.start(hasher, "err");
190
+ token.str(hasher, errorValue.name || "");
191
+ token.sep(hasher);
192
+ token.str(hasher, errorValue.message || "");
193
+ token.sep(hasher);
194
+ token.str(hasher, errorValue.stack || "");
195
+ token.end(hasher, "err");
196
+ return;
197
+ }
198
+ if (valueType === "object") {
199
+ const objectValue = value;
200
+ if (seen.has(objectValue)) {
201
+ token.start(hasher, "obj");
202
+ token.str(hasher, "Circular");
203
+ token.end(hasher, "obj");
204
+ return;
205
+ }
206
+ seen.add(objectValue);
207
+ const keys = Object.keys(objectValue).sort();
208
+ token.start(hasher, "obj");
209
+ for (const key of keys) {
210
+ token.sep(hasher);
211
+ token.str(hasher, key);
212
+ token.sep(hasher);
213
+ stableHashValue(hasher, objectValue[key], seen);
214
+ }
215
+ token.end(hasher, "obj");
216
+ seen.delete(objectValue);
217
+ return;
218
+ }
219
+ token.start(hasher, "other");
220
+ token.str(hasher, String(value));
221
+ token.end(hasher, "other");
222
+ };
223
+ /** Public stringify kept for convenience / debugging (now faster & broader). */
224
+ const stableStringify = (value, _stack = /* @__PURE__ */ new WeakSet()) => {
225
+ const hasher = (0, node_crypto.createHash)(HASH_ALGORITHM);
226
+ stableHashValue(hasher, value, _stack);
227
+ return toBase64Url(hasher.digest());
228
+ };
229
+ /** Compute a compact, stable id for arbitrary key tuples. */
230
+ const computeKeyId = (keyParts) => {
231
+ const h = (0, node_crypto.createHash)(HASH_ALGORITHM);
232
+ token.start(h, "keys");
233
+ for (let i = 0; i < keyParts.length; i++) {
234
+ token.sep(h);
235
+ stableHashValue(h, keyParts[i], /* @__PURE__ */ new WeakSet());
236
+ }
237
+ token.end(h, "keys");
238
+ return toBase64Url(h.digest());
239
+ };
240
+ const cacheMap = /* @__PURE__ */ new Map();
241
+ const getCache = (...key) => {
242
+ return cacheMap.get(computeKeyId(key));
243
+ };
244
+ const setCache = (...args) => {
245
+ const value = args[args.length - 1];
246
+ const key = args.slice(0, -1);
247
+ cacheMap.set(computeKeyId(key), value);
248
+ };
249
+ const clearCache = (idOrKey) => {
250
+ cacheMap.delete(idOrKey);
251
+ };
252
+ const clearAllCache = () => {
253
+ cacheMap.clear();
254
+ };
255
+ const cacheMemory = {
256
+ get: getCache,
257
+ set: setCache,
258
+ clear: clearCache
259
+ };
260
+
261
+ //#endregion
262
+ exports.cacheMemory = cacheMemory;
263
+ exports.clearAllCache = clearAllCache;
264
+ exports.clearCache = clearCache;
265
+ exports.computeKeyId = computeKeyId;
266
+ exports.getCache = getCache;
267
+ exports.setCache = setCache;
268
+ exports.stableStringify = stableStringify;
269
+ //# sourceMappingURL=cacheMemory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheMemory.cjs","names":["items: string[]","entries: Array<[string, unknown]>"],"sources":["../../../src/utils/cacheMemory.ts"],"sourcesContent":["import { createHash, type Hash } from 'node:crypto';\n\n/** ------------------------- Utilities ------------------------- **/\n\n/** Prefer a fast non-crypto hash if available, then fast crypto, then sha256. */\nconst pickHashAlgorithm = (): string => {\n try {\n // Node 20+ supports xxhash64 (very fast). We feature-detect at module load.\n createHash('xxhash64').update('test').digest();\n return 'xxhash64';\n } catch {}\n try {\n // sha1 is faster than sha256 and sufficient for cache keys.\n createHash('sha1').update('test').digest();\n return 'sha1';\n } catch {}\n\n return 'sha256';\n};\nconst HASH_ALGORITHM = pickHashAlgorithm();\n\n/** Base64url without padding for compact, file-system-safe ids. */\nconst toBase64Url = (buffer: Buffer): string =>\n buffer\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/g, '');\n\n/** Token helpers to minimize collisions while streaming to the hasher. */\nconst token = {\n start: (hasher: Hash, tag: string) => hasher.update(`<${tag}>`),\n sep: (hasher: Hash) => hasher.update('|'),\n end: (hasher: Hash, tag: string) => hasher.update(`</${tag}>`),\n str: (hasher: Hash, stringValue: string) => {\n // length prefix to avoid ambiguity: len#value\n hasher.update(`${stringValue.length}#`);\n hasher.update(stringValue);\n },\n num: (hasher: Hash, numberValue: number) =>\n hasher.update(\n Number.isNaN(numberValue)\n ? 'NaN'\n : numberValue === Infinity\n ? 'Inf'\n : numberValue === -Infinity\n ? '-Inf'\n : String(numberValue)\n ),\n big: (hasher: Hash, bigintValue: bigint) =>\n hasher.update(bigintValue.toString(10)),\n bool: (hasher: Hash, booleanValue: boolean) =>\n hasher.update(booleanValue ? '1' : '0'),\n};\n\n/** ------------------- Canonical, streaming hasher ------------------- **/\n\ntype Seen = WeakSet<object>;\n\n/**\n * Streams a canonical representation of `value` into `hasher` without\n * constructing large intermediate strings. Objects/Maps/Sets are normalized.\n */\nconst stableHashValue = (hasher: Hash, value: unknown, seen: Seen): void => {\n const valueType = typeof value;\n\n if (value === null) {\n token.start(hasher, 'null');\n token.end(hasher, 'null');\n return;\n }\n\n if (valueType === 'undefined') {\n token.start(hasher, 'undef');\n token.end(hasher, 'undef');\n return;\n }\n\n if (valueType === 'number') {\n token.start(hasher, 'num');\n token.num(hasher, value as number);\n token.end(hasher, 'num');\n return;\n }\n\n if (valueType === 'bigint') {\n token.start(hasher, 'big');\n token.big(hasher, value as bigint);\n token.end(hasher, 'big');\n return;\n }\n\n if (valueType === 'boolean') {\n token.start(hasher, 'bool');\n token.bool(hasher, value as boolean);\n token.end(hasher, 'bool');\n return;\n }\n\n if (valueType === 'string') {\n token.start(hasher, 'str');\n token.str(hasher, value as string);\n token.end(hasher, 'str');\n return;\n }\n\n if (valueType === 'symbol') {\n token.start(hasher, 'sym');\n token.str(hasher, String(value));\n token.end(hasher, 'sym');\n return;\n }\n\n if (valueType === 'function') {\n // Stable-ish fingerprint: name and arity (avoid source text).\n const functionValue = value as Function;\n token.start(hasher, 'fn');\n token.str(hasher, functionValue.name ?? '');\n token.sep(hasher);\n token.num(hasher, functionValue.length);\n token.end(hasher, 'fn');\n return;\n }\n\n // Arrays and typed arrays\n if (Array.isArray(value)) {\n if (seen.has(value)) {\n token.start(hasher, 'arr');\n token.str(hasher, 'Circular');\n token.end(hasher, 'arr');\n return;\n }\n seen.add(value);\n token.start(hasher, 'arr');\n for (let i = 0; i < value.length; i++) {\n token.sep(hasher);\n stableHashValue(hasher, value[i], seen);\n }\n token.end(hasher, 'arr');\n seen.delete(value);\n return;\n }\n\n // Node/Builtins\n if (value instanceof Date) {\n token.start(hasher, 'date');\n token.str(hasher, (value as Date).toISOString());\n token.end(hasher, 'date');\n return;\n }\n\n if (value instanceof RegExp) {\n const regex = value as RegExp;\n token.start(hasher, 're');\n token.str(hasher, regex.source);\n token.sep(hasher);\n token.str(hasher, regex.flags);\n token.end(hasher, 're');\n return;\n }\n\n if (value instanceof Set) {\n const setValue = value as Set<unknown>;\n if (seen.has(setValue)) {\n token.start(hasher, 'set');\n token.str(hasher, 'Circular');\n token.end(hasher, 'set');\n return;\n }\n seen.add(setValue);\n // Normalize by item fingerprints (strings) to sort deterministically.\n const items: string[] = [];\n for (const v of setValue) items.push(stableStringify(v)); // small, bounded use of stringify\n items.sort();\n token.start(hasher, 'set');\n for (const item of items) {\n token.sep(hasher);\n token.str(hasher, item);\n }\n token.end(hasher, 'set');\n seen.delete(setValue);\n return;\n }\n\n if (value instanceof Map) {\n const mapObject = value as Map<unknown, unknown>;\n if (seen.has(mapObject)) {\n token.start(hasher, 'map');\n token.str(hasher, 'Circular');\n token.end(hasher, 'map');\n return;\n }\n seen.add(mapObject);\n // Normalize by sorted key fingerprints.\n const entries: Array<[string, unknown]> = [];\n for (const [k, v] of mapObject.entries())\n entries.push([stableStringify(k), v]);\n entries.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0));\n token.start(hasher, 'map');\n for (const [keyFingerprint, entryValue] of entries) {\n token.sep(hasher);\n token.str(hasher, keyFingerprint);\n token.sep(hasher);\n stableHashValue(hasher, entryValue, seen);\n }\n token.end(hasher, 'map');\n seen.delete(mapObject);\n return;\n }\n\n // ArrayBuffer & typed arrays\n if (ArrayBuffer.isView(value)) {\n const view = value as ArrayBufferView;\n token.start(hasher, 'typed');\n token.str(hasher, Object.getPrototypeOf(view).constructor.name);\n token.sep(hasher);\n hasher.update(Buffer.from(view.buffer, view.byteOffset, view.byteLength));\n token.end(hasher, 'typed');\n return;\n }\n if (value instanceof ArrayBuffer) {\n const buffer = Buffer.from(value as ArrayBuffer);\n token.start(hasher, 'ab');\n hasher.update(buffer);\n token.end(hasher, 'ab');\n return;\n }\n\n // URL\n if (typeof URL !== 'undefined' && value instanceof URL) {\n token.start(hasher, 'url');\n token.str(hasher, (value as URL).toString());\n token.end(hasher, 'url');\n return;\n }\n\n // Errors\n if (value instanceof Error) {\n const errorValue = value as Error;\n token.start(hasher, 'err');\n token.str(hasher, errorValue.name || '');\n token.sep(hasher);\n token.str(hasher, errorValue.message || '');\n token.sep(hasher);\n token.str(hasher, errorValue.stack || '');\n token.end(hasher, 'err');\n return;\n }\n\n // Generic objects\n if (valueType === 'object') {\n const objectValue = value as Record<string, unknown>;\n if (seen.has(objectValue)) {\n token.start(hasher, 'obj');\n token.str(hasher, 'Circular');\n token.end(hasher, 'obj');\n return;\n }\n seen.add(objectValue);\n\n const keys = Object.keys(objectValue).sort();\n token.start(hasher, 'obj');\n for (const key of keys) {\n token.sep(hasher);\n token.str(hasher, key);\n token.sep(hasher);\n stableHashValue(hasher, (objectValue as any)[key], seen);\n }\n token.end(hasher, 'obj');\n\n seen.delete(objectValue);\n return;\n }\n\n // Fallback\n token.start(hasher, 'other');\n token.str(hasher, String(value));\n token.end(hasher, 'other');\n};\n\n/** Public stringify kept for convenience / debugging (now faster & broader). */\nexport const stableStringify = (\n value: unknown,\n _stack = new WeakSet<object>()\n): string => {\n const hasher = createHash(HASH_ALGORITHM);\n stableHashValue(hasher, value, _stack);\n return toBase64Url(hasher.digest());\n};\n\n/** Compute a compact, stable id for arbitrary key tuples. */\nexport const computeKeyId = (keyParts: unknown[]): string => {\n const h = createHash(HASH_ALGORITHM);\n token.start(h, 'keys');\n for (let i = 0; i < keyParts.length; i++) {\n token.sep(h);\n stableHashValue(h, keyParts[i], new WeakSet());\n }\n token.end(h, 'keys');\n return toBase64Url(h.digest());\n};\n\n/** ------------------------- In-memory cache ------------------------- **/\n\nexport type CacheKey = unknown;\nconst cacheMap = new Map<string, any>();\n\nexport const getCache = <T>(...key: CacheKey[]): T | undefined => {\n return cacheMap.get(computeKeyId(key));\n};\n\ntype CacheSetArgs<T> = [...keys: CacheKey[], value: T];\n\nexport const setCache = <T>(...args: CacheSetArgs<T>): void => {\n const value = args[args.length - 1] as T;\n const key = args.slice(0, -1) as CacheKey[];\n cacheMap.set(computeKeyId(key), value);\n};\n\nexport const clearCache = (idOrKey: string): void => {\n // Accept either our computed id or a legacy string id the caller already computed.\n cacheMap.delete(idOrKey);\n};\n\nexport const clearAllCache = (): void => {\n cacheMap.clear();\n};\n\nexport const cacheMemory = {\n get: getCache,\n set: setCache,\n clear: clearCache,\n};\n"],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_logger = require('../logger.cjs');
3
+ const require_utils_ESMxCJSHelpers = require('./ESMxCJSHelpers.cjs');
4
+ let __intlayer_types_package_json = require("@intlayer/types/package.json");
5
+ __intlayer_types_package_json = require_rolldown_runtime.__toESM(__intlayer_types_package_json);
6
+
7
+ //#region src/utils/checkVersionsConsistency.ts
8
+ const packages = [
9
+ "@intlayer/types",
10
+ "@intlayer/config",
11
+ "@intlayer/dictionaries-entry",
12
+ "@intlayer/unmerged-dictionaries-entry",
13
+ "@intlayer/dynamic-dictionaries-entry",
14
+ "@intlayer/remote-dictionaries-entry",
15
+ "@intlayer/fetch-dictionaries-entry",
16
+ "@intlayer/api",
17
+ "@intlayer/chokidar",
18
+ "@intlayer/webpack",
19
+ "@intlayer/editor",
20
+ "@intlayer/cli",
21
+ "@intlayer/babel",
22
+ "@intlayer/swc",
23
+ "@intlayer/editor-react",
24
+ "intlayer",
25
+ "@intlayer/docs",
26
+ "@intlayer/mcp",
27
+ "intlayer-cli",
28
+ "express-intlayer",
29
+ "apps/backend",
30
+ "react-intlayer",
31
+ "next-intlayer",
32
+ "react-scripts-intlayer",
33
+ "vue-intlayer",
34
+ "solid-intlayer",
35
+ "svelte-intlayer",
36
+ "preact-intlayer",
37
+ "angular-intlayer",
38
+ "vite-intlayer",
39
+ "nuxt-intlayer",
40
+ "astro-intlayer",
41
+ "react-native-intlayer",
42
+ "lynx-intlayer",
43
+ "@intlayer/design-system",
44
+ "intlayer-editor",
45
+ "plugins/sync-json-plugin"
46
+ ];
47
+ const checkVersionsConsistency = (configuration) => {
48
+ const projectRequire = require_utils_ESMxCJSHelpers.getProjectRequire();
49
+ const logger = require_logger.getAppLogger(configuration);
50
+ const inconsistentPackages = [];
51
+ try {
52
+ for (const pkg of packages) {
53
+ const pkgJson = projectRequire(pkg).packageJson;
54
+ if (pkgJson.version !== __intlayer_types_package_json.default.version) inconsistentPackages.push({
55
+ name: pkg,
56
+ version: pkgJson.version
57
+ });
58
+ }
59
+ } catch (_error) {}
60
+ if (inconsistentPackages.length > 0) {
61
+ logger("Versions are not consistent. Some packages are not using the same version as the main Intlayer package. It may cause issues. See how to fix it here: https://intlayer.org/frequent-questions/package-version-error", { level: "warn" });
62
+ for (const { name, version } of inconsistentPackages) logger(`- ${name} - version: ${version} - expected: ${__intlayer_types_package_json.default.version}`, { level: "warn" });
63
+ }
64
+ };
65
+
66
+ //#endregion
67
+ exports.checkVersionsConsistency = checkVersionsConsistency;
68
+ //# sourceMappingURL=checkVersionsConsistency.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkVersionsConsistency.cjs","names":["getProjectRequire","getAppLogger","inconsistentPackages: { name: string; version: string }[]","packageJson"],"sources":["../../../src/utils/checkVersionsConsistency.ts"],"sourcesContent":["import type { IntlayerConfig } from '@intlayer/types';\nimport packageJson from '@intlayer/types/package.json' with { type: 'json' };\nimport { getAppLogger } from '../logger';\nimport { getProjectRequire } from './ESMxCJSHelpers';\n\nconst packages = [\n '@intlayer/types',\n '@intlayer/config',\n '@intlayer/dictionaries-entry',\n '@intlayer/unmerged-dictionaries-entry',\n '@intlayer/dynamic-dictionaries-entry',\n '@intlayer/remote-dictionaries-entry',\n '@intlayer/fetch-dictionaries-entry',\n '@intlayer/api',\n '@intlayer/chokidar',\n '@intlayer/webpack',\n '@intlayer/editor',\n '@intlayer/cli',\n '@intlayer/babel',\n '@intlayer/swc',\n '@intlayer/editor-react',\n 'intlayer',\n '@intlayer/docs',\n '@intlayer/mcp',\n 'intlayer-cli',\n 'express-intlayer',\n 'apps/backend',\n 'react-intlayer',\n 'next-intlayer',\n 'react-scripts-intlayer',\n 'vue-intlayer',\n 'solid-intlayer',\n 'svelte-intlayer',\n 'preact-intlayer',\n 'angular-intlayer',\n 'vite-intlayer',\n 'nuxt-intlayer',\n 'astro-intlayer',\n 'react-native-intlayer',\n 'lynx-intlayer',\n '@intlayer/design-system',\n 'intlayer-editor',\n 'plugins/sync-json-plugin',\n];\n\nexport const checkVersionsConsistency = (configuration: IntlayerConfig) => {\n const projectRequire = getProjectRequire();\n const logger = getAppLogger(configuration);\n const inconsistentPackages: { name: string; version: string }[] = [];\n\n try {\n for (const pkg of packages) {\n const pkgJson = projectRequire(pkg).packageJson;\n if (pkgJson.version !== packageJson.version) {\n inconsistentPackages.push({ name: pkg, version: pkgJson.version });\n }\n }\n } catch (_error) {\n // Cant find, it's ok\n }\n\n if (inconsistentPackages.length > 0) {\n logger(\n 'Versions are not consistent. Some packages are not using the same version as the main Intlayer package. It may cause issues. See how to fix it here: https://intlayer.org/frequent-questions/package-version-error',\n { level: 'warn' }\n );\n for (const { name, version } of inconsistentPackages) {\n logger(\n `- ${name} - version: ${version} - expected: ${packageJson.version}`,\n { level: 'warn' }\n );\n }\n }\n};\n"],"mappings":";;;;;;;AAKA,MAAM,WAAW;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,4BAA4B,kBAAkC;CACzE,MAAM,iBAAiBA,gDAAmB;CAC1C,MAAM,SAASC,4BAAa,cAAc;CAC1C,MAAMC,uBAA4D,EAAE;AAEpE,KAAI;AACF,OAAK,MAAM,OAAO,UAAU;GAC1B,MAAM,UAAU,eAAe,IAAI,CAAC;AACpC,OAAI,QAAQ,YAAYC,sCAAY,QAClC,sBAAqB,KAAK;IAAE,MAAM;IAAK,SAAS,QAAQ;IAAS,CAAC;;UAG/D,QAAQ;AAIjB,KAAI,qBAAqB,SAAS,GAAG;AACnC,SACE,sNACA,EAAE,OAAO,QAAQ,CAClB;AACD,OAAK,MAAM,EAAE,MAAM,aAAa,qBAC9B,QACE,KAAK,KAAK,cAAc,QAAQ,eAAeA,sCAAY,WAC3D,EAAE,OAAO,QAAQ,CAClB"}
@@ -1,5 +1,5 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_utils_cache = require('./cache.cjs');
2
+ const require_utils_cacheMemory = require('./cacheMemory.cjs');
3
3
  let node_path = require("node:path");
4
4
  let node_fs = require("node:fs");
5
5
 
@@ -7,13 +7,13 @@ let node_fs = require("node:fs");
7
7
  const isESModule = typeof require("url").pathToFileURL(__filename).href === "string";
8
8
  const MAX_LEVELS = 15;
9
9
  const getPackageJsonPath = (startDir = process.cwd()) => {
10
- const checkedCache = require_utils_cache.cache.get("packageJsonPath", startDir);
10
+ const checkedCache = require_utils_cacheMemory.cacheMemory.get("packageJsonPath", startDir);
11
11
  if (checkedCache) return checkedCache;
12
12
  let currentDir = startDir;
13
13
  for (let level = 0; level < MAX_LEVELS; level++) {
14
14
  const packageJsonPath = (0, node_path.join)(currentDir, "package.json");
15
15
  if ((0, node_fs.existsSync)(packageJsonPath)) {
16
- require_utils_cache.cache.set("packageJsonPath", startDir, {
16
+ require_utils_cacheMemory.cacheMemory.set("packageJsonPath", startDir, {
17
17
  packageJsonPath,
18
18
  baseDir: currentDir
19
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageJsonPath.cjs","names":["cache"],"sources":["../../../src/utils/getPackageJsonPath.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { cache } from './cache';\n\nexport const isESModule = typeof import.meta.url === 'string';\n\nconst MAX_LEVELS = 15;\n\ntype PackageJsonPathCache = {\n packageJsonPath: string;\n baseDir: string;\n};\n\nexport const getPackageJsonPath = (\n startDir: string = process.cwd()\n): PackageJsonPathCache => {\n const checkedCache = cache.get<PackageJsonPathCache>(\n 'packageJsonPath',\n startDir\n );\n\n if (checkedCache) return checkedCache;\n\n let currentDir = startDir;\n\n for (let level = 0; level < MAX_LEVELS; level++) {\n const packageJsonPath = join(currentDir, 'package.json');\n\n if (existsSync(packageJsonPath)) {\n cache.set('packageJsonPath', startDir, {\n packageJsonPath,\n baseDir: currentDir,\n });\n\n return { packageJsonPath, baseDir: currentDir };\n }\n\n const parentDir = dirname(currentDir);\n\n // If we've reached the root directory, stop\n if (parentDir === currentDir) {\n break;\n }\n\n currentDir = parentDir;\n }\n\n throw new Error(\n `Could not find package.json in current directory or any of the ${MAX_LEVELS} parent directories. Searched from: ${startDir}`\n );\n};\n"],"mappings":";;;;;;AAIA,MAAa,aAAa,yDAA2B;AAErD,MAAM,aAAa;AAOnB,MAAa,sBACX,WAAmB,QAAQ,KAAK,KACP;CACzB,MAAM,eAAeA,0BAAM,IACzB,mBACA,SACD;AAED,KAAI,aAAc,QAAO;CAEzB,IAAI,aAAa;AAEjB,MAAK,IAAI,QAAQ,GAAG,QAAQ,YAAY,SAAS;EAC/C,MAAM,sCAAuB,YAAY,eAAe;AAExD,8BAAe,gBAAgB,EAAE;AAC/B,6BAAM,IAAI,mBAAmB,UAAU;IACrC;IACA,SAAS;IACV,CAAC;AAEF,UAAO;IAAE;IAAiB,SAAS;IAAY;;EAGjD,MAAM,mCAAoB,WAAW;AAGrC,MAAI,cAAc,WAChB;AAGF,eAAa;;AAGf,OAAM,IAAI,MACR,kEAAkE,WAAW,sCAAsC,WACpH"}
1
+ {"version":3,"file":"getPackageJsonPath.cjs","names":["cacheMemory"],"sources":["../../../src/utils/getPackageJsonPath.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { cacheMemory } from './cacheMemory';\n\nexport const isESModule = typeof import.meta.url === 'string';\n\nconst MAX_LEVELS = 15;\n\ntype PackageJsonPathCache = {\n packageJsonPath: string;\n baseDir: string;\n};\n\nexport const getPackageJsonPath = (\n startDir: string = process.cwd()\n): PackageJsonPathCache => {\n const checkedCache = cacheMemory.get<PackageJsonPathCache>(\n 'packageJsonPath',\n startDir\n );\n\n if (checkedCache) return checkedCache;\n\n let currentDir = startDir;\n\n for (let level = 0; level < MAX_LEVELS; level++) {\n const packageJsonPath = join(currentDir, 'package.json');\n\n if (existsSync(packageJsonPath)) {\n cacheMemory.set('packageJsonPath', startDir, {\n packageJsonPath,\n baseDir: currentDir,\n });\n\n return { packageJsonPath, baseDir: currentDir };\n }\n\n const parentDir = dirname(currentDir);\n\n // If we've reached the root directory, stop\n if (parentDir === currentDir) {\n break;\n }\n\n currentDir = parentDir;\n }\n\n throw new Error(\n `Could not find package.json in current directory or any of the ${MAX_LEVELS} parent directories. Searched from: ${startDir}`\n );\n};\n"],"mappings":";;;;;;AAIA,MAAa,aAAa,yDAA2B;AAErD,MAAM,aAAa;AAOnB,MAAa,sBACX,WAAmB,QAAQ,KAAK,KACP;CACzB,MAAM,eAAeA,sCAAY,IAC/B,mBACA,SACD;AAED,KAAI,aAAc,QAAO;CAEzB,IAAI,aAAa;AAEjB,MAAK,IAAI,QAAQ,GAAG,QAAQ,YAAY,SAAS;EAC/C,MAAM,sCAAuB,YAAY,eAAe;AAExD,8BAAe,gBAAgB,EAAE;AAC/B,yCAAY,IAAI,mBAAmB,UAAU;IAC3C;IACA,SAAS;IACV,CAAC;AAEF,UAAO;IAAE;IAAiB,SAAS;IAAY;;EAGjD,MAAM,mCAAoB,WAAW;AAGrC,MAAI,cAAc,WAChB;AAGF,eAAa;;AAGf,OAAM,IAAI,MACR,kEAAkE,WAAW,sCAAsC,WACpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"alias.mjs","names":[],"sources":["../../src/alias.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { getExtension } from './utils/getExtension';\nimport { normalizePath } from './utils/normalizePath';\n\nexport type GetAliasOptions = {\n configuration: IntlayerConfig;\n format?: 'esm' | 'cjs';\n formatter?: (value: string) => string;\n};\n\nexport const getAlias = ({\n configuration,\n format = 'esm',\n formatter = (value: string) => value,\n}: GetAliasOptions) => {\n const extension = getExtension(configuration, format);\n\n const { mainDir, configDir, baseDir } = configuration.content;\n\n /**\n * Dictionaries\n */\n const dictionariesPath = join(mainDir, `dictionaries.${extension}`);\n const relativeDictionariesPath = relative(baseDir, dictionariesPath);\n const fixedDictionariesPath = formatter(\n normalizePath(relativeDictionariesPath)\n );\n\n /**\n * Unmerged dictionaries\n */\n const unmergedDictionariesPath = join(\n mainDir,\n `unmerged_dictionaries.${extension}`\n );\n const relativeUnmergedDictionariesPath = relative(\n baseDir,\n unmergedDictionariesPath\n );\n const fixedUnmergedDictionariesPath = formatter(\n normalizePath(relativeUnmergedDictionariesPath)\n );\n\n /**\n * Remote dictionaries\n */\n const remoteDictionariesPath = join(\n mainDir,\n `remote_dictionaries.${extension}`\n );\n const relativeRemoteDictionariesPath = relative(\n baseDir,\n remoteDictionariesPath\n );\n const fixedRemoteDictionariesPath = formatter(\n normalizePath(relativeRemoteDictionariesPath)\n );\n\n /**\n * Dynamic dictionaries\n */\n const dynamicDictionariesPath = join(\n mainDir,\n `dynamic_dictionaries.${extension}`\n );\n const relativeDynamicDictionariesPath = relative(\n baseDir,\n dynamicDictionariesPath\n );\n const fixedDynamicDictionariesPath = formatter(\n normalizePath(relativeDynamicDictionariesPath)\n );\n\n /**\n * Fetch dictionaries\n */\n const fetchDictionariesPath = join(\n mainDir,\n `fetch_dictionaries.${extension}`\n );\n const relativeFetchDictionariesPath = relative(\n baseDir,\n fetchDictionariesPath\n );\n const fixedFetchDictionariesPath = formatter(\n normalizePath(relativeFetchDictionariesPath)\n );\n\n /**\n * Configuration\n */\n const configurationPath = join(configDir, `configuration.json`);\n const relativeConfigurationPath = relative(baseDir, configurationPath);\n const fixedConfigurationPath = formatter(\n normalizePath(relativeConfigurationPath)\n );\n\n return {\n '@intlayer/dictionaries-entry': fixedDictionariesPath,\n '@intlayer/unmerged-dictionaries-entry': fixedUnmergedDictionariesPath,\n '@intlayer/remote-dictionaries-entry': fixedRemoteDictionariesPath,\n '@intlayer/dynamic-dictionaries-entry': fixedDynamicDictionariesPath,\n '@intlayer/fetch-dictionaries-entry': fixedFetchDictionariesPath,\n '@intlayer/config/built': fixedConfigurationPath,\n };\n};\n"],"mappings":";;;;;AAWA,MAAa,YAAY,EACvB,eACA,SAAS,OACT,aAAa,UAAkB,YACV;CACrB,MAAM,YAAY,aAAa,eAAe,OAAO;CAErD,MAAM,EAAE,SAAS,WAAW,YAAY,cAAc;CAOtD,MAAM,wBAAwB,UAC5B,cAF+B,SAAS,SADjB,KAAK,SAAS,gBAAgB,YAAY,CACC,CAE3B,CACxC;CAaD,MAAM,gCAAgC,UACpC,cALuC,SACvC,SAL+B,KAC/B,SACA,yBAAyB,YAC1B,CAIA,CAEgD,CAChD;CAaD,MAAM,8BAA8B,UAClC,cALqC,SACrC,SAL6B,KAC7B,SACA,uBAAuB,YACxB,CAIA,CAE8C,CAC9C;CAaD,MAAM,+BAA+B,UACnC,cALsC,SACtC,SAL8B,KAC9B,SACA,wBAAwB,YACzB,CAIA,CAE+C,CAC/C;CAaD,MAAM,6BAA6B,UACjC,cALoC,SACpC,SAL4B,KAC5B,SACA,sBAAsB,YACvB,CAIA,CAE6C,CAC7C;CAOD,MAAM,yBAAyB,UAC7B,cAFgC,SAAS,SADjB,KAAK,WAAW,qBAAqB,CACO,CAE5B,CACzC;AAED,QAAO;EACL,gCAAgC;EAChC,yCAAyC;EACzC,uCAAuC;EACvC,wCAAwC;EACxC,sCAAsC;EACtC,0BAA0B;EAC3B"}
1
+ {"version":3,"file":"alias.mjs","names":[],"sources":["../../src/alias.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types';\nimport { getExtension } from './utils/getExtension';\nimport { normalizePath } from './utils/normalizePath';\n\nexport type GetAliasOptions = {\n configuration: IntlayerConfig;\n format?: 'esm' | 'cjs';\n formatter?: (value: string) => string;\n};\n\nexport const getAlias = ({\n configuration,\n format = 'esm',\n formatter = (value: string) => value,\n}: GetAliasOptions) => {\n const extension = getExtension(configuration, format);\n\n const { mainDir, configDir, baseDir } = configuration.content;\n\n /**\n * Dictionaries\n */\n const dictionariesPath = join(mainDir, `dictionaries.${extension}`);\n const relativeDictionariesPath = relative(baseDir, dictionariesPath);\n const fixedDictionariesPath = formatter(\n normalizePath(relativeDictionariesPath)\n );\n\n /**\n * Unmerged dictionaries\n */\n const unmergedDictionariesPath = join(\n mainDir,\n `unmerged_dictionaries.${extension}`\n );\n const relativeUnmergedDictionariesPath = relative(\n baseDir,\n unmergedDictionariesPath\n );\n const fixedUnmergedDictionariesPath = formatter(\n normalizePath(relativeUnmergedDictionariesPath)\n );\n\n /**\n * Remote dictionaries\n */\n const remoteDictionariesPath = join(\n mainDir,\n `remote_dictionaries.${extension}`\n );\n const relativeRemoteDictionariesPath = relative(\n baseDir,\n remoteDictionariesPath\n );\n const fixedRemoteDictionariesPath = formatter(\n normalizePath(relativeRemoteDictionariesPath)\n );\n\n /**\n * Dynamic dictionaries\n */\n const dynamicDictionariesPath = join(\n mainDir,\n `dynamic_dictionaries.${extension}`\n );\n const relativeDynamicDictionariesPath = relative(\n baseDir,\n dynamicDictionariesPath\n );\n const fixedDynamicDictionariesPath = formatter(\n normalizePath(relativeDynamicDictionariesPath)\n );\n\n /**\n * Fetch dictionaries\n */\n const fetchDictionariesPath = join(\n mainDir,\n `fetch_dictionaries.${extension}`\n );\n const relativeFetchDictionariesPath = relative(\n baseDir,\n fetchDictionariesPath\n );\n const fixedFetchDictionariesPath = formatter(\n normalizePath(relativeFetchDictionariesPath)\n );\n\n /**\n * Configuration\n */\n const configurationPath = join(configDir, `configuration.json`);\n const relativeConfigurationPath = relative(baseDir, configurationPath);\n const fixedConfigurationPath = formatter(\n normalizePath(relativeConfigurationPath)\n );\n\n return {\n '@intlayer/dictionaries-entry': fixedDictionariesPath,\n '@intlayer/unmerged-dictionaries-entry': fixedUnmergedDictionariesPath,\n '@intlayer/remote-dictionaries-entry': fixedRemoteDictionariesPath,\n '@intlayer/dynamic-dictionaries-entry': fixedDynamicDictionariesPath,\n '@intlayer/fetch-dictionaries-entry': fixedFetchDictionariesPath,\n '@intlayer/config/built': fixedConfigurationPath,\n } as const;\n};\n"],"mappings":";;;;;AAWA,MAAa,YAAY,EACvB,eACA,SAAS,OACT,aAAa,UAAkB,YACV;CACrB,MAAM,YAAY,aAAa,eAAe,OAAO;CAErD,MAAM,EAAE,SAAS,WAAW,YAAY,cAAc;CAOtD,MAAM,wBAAwB,UAC5B,cAF+B,SAAS,SADjB,KAAK,SAAS,gBAAgB,YAAY,CACC,CAE3B,CACxC;CAaD,MAAM,gCAAgC,UACpC,cALuC,SACvC,SAL+B,KAC/B,SACA,yBAAyB,YAC1B,CAIA,CAEgD,CAChD;CAaD,MAAM,8BAA8B,UAClC,cALqC,SACrC,SAL6B,KAC7B,SACA,uBAAuB,YACxB,CAIA,CAE8C,CAC9C;CAaD,MAAM,+BAA+B,UACnC,cALsC,SACtC,SAL8B,KAC9B,SACA,wBAAwB,YACzB,CAIA,CAE+C,CAC/C;CAaD,MAAM,6BAA6B,UACjC,cALoC,SACpC,SAL4B,KAC5B,SACA,sBAAsB,YACvB,CAIA,CAE6C,CAC7C;CAOD,MAAM,yBAAyB,UAC7B,cAFgC,SAAS,SADjB,KAAK,WAAW,qBAAqB,CACO,CAE5B,CACzC;AAED,QAAO;EACL,gCAAgC;EAChC,yCAAyC;EACzC,uCAAuC;EACvC,wCAAwC;EACxC,sCAAsC;EACtC,0BAA0B;EAC3B"}
@@ -1,5 +1,5 @@
1
1
  import { logger } from "../logger.mjs";
2
- import { cache } from "../utils/cache.mjs";
2
+ import { cacheMemory } from "../utils/cacheMemory.mjs";
3
3
  import { getPackageJsonPath } from "../utils/getPackageJsonPath.mjs";
4
4
  import { buildConfigurationFields } from "./buildConfigurationFields.mjs";
5
5
  import { searchConfigurationFile } from "./searchConfigurationFile.mjs";
@@ -21,7 +21,7 @@ const getConfigurationAndFilePath = (options) => {
21
21
  configurationFilePath: void 0
22
22
  };
23
23
  }
24
- const cachedConfiguration = cache.get(options);
24
+ const cachedConfiguration = cacheMemory.get(options);
25
25
  if (cachedConfiguration) return cachedConfiguration;
26
26
  const { configurationFilePath, numCustomConfiguration } = searchConfigurationFile(baseDir);
27
27
  if (options?.override?.log?.mode === "verbose") logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);
@@ -40,7 +40,7 @@ const getConfigurationAndFilePath = (options) => {
40
40
  cache: options?.cache
41
41
  } } : {};
42
42
  const configuration = merge(merge(storedConfiguration ?? {}, projectRequireConfig), options?.override ?? {});
43
- cache.set(options, {
43
+ cacheMemory.set(options, {
44
44
  configuration,
45
45
  configurationFilePath
46
46
  });
@@ -1 +1 @@
1
- {"version":3,"file":"getConfiguration.mjs","names":["baseDir: string | undefined","storedConfiguration: IntlayerConfig | undefined","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cache } from '../utils/cache';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cache.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig | undefined;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration ?? {},\n projectRequireConfig\n ) as CustomIntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cache.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAW,oBAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAe,yBACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJ,MAAM,IAAuC,QAAQ;AAEvD,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7B,wBAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsB,yBAbpB,sBAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;CAKH,MAAMC,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,gBAAgB,MALW,MAC/B,uBAAuB,EAAE,EACzB,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,OAAM,IAAI,SAAS;EACjB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,QAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,qBAAqB,SAAS,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,QAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,QACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
1
+ {"version":3,"file":"getConfiguration.mjs","names":["baseDir: string | undefined","storedConfiguration: IntlayerConfig | undefined","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cacheMemory } from '../utils/cacheMemory';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cacheMemory.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig | undefined;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration ?? {},\n projectRequireConfig\n ) as CustomIntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cacheMemory.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAW,oBAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAe,yBACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJ,YAAY,IAAuC,QAAQ;AAE7D,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7B,wBAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsB,yBAbpB,sBAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;CAKH,MAAMC,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,gBAAgB,MALW,MAC/B,uBAAuB,EAAE,EACzB,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,aAAY,IAAI,SAAS;EACvB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,QAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,qBAAqB,SAAS,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,QAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,QACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
@@ -2,7 +2,7 @@ import { getExtension } from "./utils/getExtension.mjs";
2
2
  import { normalizePath } from "./utils/normalizePath.mjs";
3
3
  import { getAlias } from "./alias.mjs";
4
4
  import { ANSIColors, clock, colon, colorize, colorizeKey, colorizeLocales, colorizeNumber, colorizePath, getAppLogger, logger, removeColor, spinnerFrames, v, x } from "./logger.mjs";
5
- import { cache, clearCache, getCache, localCache, setCache } from "./utils/cache.mjs";
5
+ import { cacheMemory } from "./utils/cacheMemory.mjs";
6
6
  import { getPackageJsonPath } from "./utils/getPackageJsonPath.mjs";
7
7
  import { buildConfigurationFields } from "./configFile/buildConfigurationFields.mjs";
8
8
  import { configESMxCJSRequire, getProjectRequire, isESModule } from "./utils/ESMxCJSHelpers.mjs";
@@ -14,11 +14,13 @@ import { defaultValues_exports } from "./defaultValues/index.mjs";
14
14
  import { bundleFile, bundleFileSync } from "./loadExternalFile/bundleFile.mjs";
15
15
  import { extractErrorMessage } from "./utils/extractErrorMessage.mjs";
16
16
  import { retryManager } from "./retryManager.mjs";
17
+ import { cacheDisk } from "./utils/cacheDisk.mjs";
17
18
  import { camelCaseToSentence } from "./utils/camelCaseToSentence.mjs";
19
+ import { checkVersionsConsistency } from "./utils/checkVersionsConsistency.mjs";
18
20
  import { clearModuleCache } from "./utils/clearModuleCache.mjs";
19
21
  import { kebabCaseToCamelCase } from "./utils/kebabCaseToCamelCase.mjs";
20
22
  import { logStack } from "./utils/logStack.mjs";
21
23
  import { loadExternalFile, loadExternalFileSync } from "./loadExternalFile/loadExternalFile.mjs";
22
24
  import { getConfiguration, getConfigurationAndFilePath } from "./configFile/getConfiguration.mjs";
23
25
 
24
- export { ANSIColors, defaultValues_exports as DefaultValues, buildConfigurationFields, bundleFile, bundleFileSync, bundleJSFile, cache, camelCaseToSentence, clearCache, clearModuleCache, clock, colon, colorize, colorizeKey, colorizeLocales, colorizeNumber, colorizePath, configESMxCJSRequire, extractErrorMessage, getAlias, getAppLogger, getCache, getConfiguration, getConfigurationAndFilePath, getEnvFilePath, getExtension, getPackageJsonPath, getProjectRequire, isESModule, kebabCaseToCamelCase, loadEnvFile, loadExternalFile, loadExternalFileSync, localCache, logStack, logger, normalizePath, parseFileContent, removeColor, retryManager, searchConfigurationFile, setCache, spinnerFrames, v, x };
26
+ export { ANSIColors, defaultValues_exports as DefaultValues, buildConfigurationFields, bundleFile, bundleFileSync, bundleJSFile, cacheDisk, cacheMemory, camelCaseToSentence, checkVersionsConsistency, clearModuleCache, clock, colon, colorize, colorizeKey, colorizeLocales, colorizeNumber, colorizePath, configESMxCJSRequire, extractErrorMessage, getAlias, getAppLogger, getConfiguration, getConfigurationAndFilePath, getEnvFilePath, getExtension, getPackageJsonPath, getProjectRequire, isESModule, kebabCaseToCamelCase, loadEnvFile, loadExternalFile, loadExternalFileSync, logStack, logger, normalizePath, parseFileContent, removeColor, retryManager, searchConfigurationFile, spinnerFrames, v, x };
@@ -3,8 +3,8 @@ import { getProjectRequire } from "../utils/ESMxCJSHelpers.mjs";
3
3
  import { parseFileContent } from "./parseFileContent.mjs";
4
4
  import { transpileTSToMJS, transpileTSToMJSSync } from "./transpileTSToMJS.mjs";
5
5
  import { extname } from "node:path";
6
- import { readFile } from "node:fs/promises";
7
6
  import { readFileSync } from "node:fs";
7
+ import { readFile } from "node:fs/promises";
8
8
 
9
9
  //#region src/loadExternalFile/loadExternalFile.ts
10
10
  /**
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "7.1.0-canary.2";
2
+ var version = "7.1.0";
3
3
 
4
4
  //#endregion
5
5
  export { version };
@@ -1 +1 @@
1
- {"version":3,"file":"package.mjs","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@intlayer/config\",\n \"version\": \"7.1.0-canary.2\",\n \"private\": false,\n \"description\": \"Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.\",\n \"keywords\": [\n \"intlayer\",\n \"layer\",\n \"abstraction\",\n \"data\",\n \"internationalization\",\n \"i18n\",\n \"typescript\",\n \"javascript\",\n \"json\",\n \"file\"\n ],\n \"homepage\": \"https://intlayer.org\",\n \"bugs\": {\n \"url\": \"https://github.com/aymericzip/intlayer/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/aymericzip/intlayer.git\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": {\n \"name\": \"Aymeric PINEAU\",\n \"url\": \"https://github.com/aymericzip\"\n },\n \"contributors\": [\n {\n \"name\": \"Aymeric Pineau\",\n \"email\": \"ay.pineau@gmail.com\",\n \"url\": \"https://github.com/aymericzip\"\n }\n ],\n \"sideEffects\": false,\n \"exports\": {\n \".\": {\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/cjs/index.cjs\",\n \"import\": \"./dist/esm/index.mjs\"\n },\n \"./client\": {\n \"types\": \"./dist/types/client.d.ts\",\n \"require\": \"./dist/cjs/client.cjs\",\n \"import\": \"./dist/esm/client.mjs\"\n },\n \"./built\": {\n \"types\": \"./dist/types/built.d.ts\",\n \"require\": \"./dist/cjs/built.cjs\",\n \"import\": \"./dist/esm/built.mjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"main\": \"dist/cjs/index.cjs\",\n \"module\": \"dist/esm/index.mjs\",\n \"types\": \"dist/types/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \".\": [\n \"./dist/types/index.d.ts\"\n ],\n \"client\": [\n \"./dist/types/client.d.ts\"\n ],\n \"built\": [\n \"./dist/types/built.d.ts\"\n ],\n \"package.json\": [\n \"./package.json\"\n ]\n }\n },\n \"files\": [\n \"./dist\",\n \"./package.json\"\n ],\n \"scripts\": {\n \"build\": \"tsdown --config tsdown.config.ts\",\n \"build:ci\": \"tsdown --config tsdown.config.ts\",\n \"clean\": \"rimraf ./dist .turbo\",\n \"dev\": \"tsdown --config tsdown.config.ts --watch\",\n \"format\": \"biome format . --check\",\n \"format:fix\": \"biome format --write .\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"prepublish\": \"cp -f ../../../README.md ./README.md\",\n \"publish\": \"bun publish || true\",\n \"publish:canary\": \"bun publish --tag canary || true\",\n \"publish:latest\": \"bun publish --tag latest || true\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"typecheck\": \"tsc --noEmit --project tsconfig.types.json\"\n },\n \"dependencies\": {\n \"@intlayer/types\": \"workspace:*\",\n \"deepmerge\": \"4.3.1\",\n \"dotenv\": \"16.6.1\",\n \"esbuild\": \"0.25.2\"\n },\n \"devDependencies\": {\n \"@types/node\": \"24.10.1\",\n \"@utils/ts-config\": \"workspace:*\",\n \"@utils/ts-config-types\": \"workspace:*\",\n \"@utils/tsdown-config\": \"workspace:*\",\n \"rimraf\": \"6.1.0\",\n \"tsdown\": \"0.16.4\",\n \"typescript\": \"5.9.3\",\n \"vitest\": \"4.0.8\"\n },\n \"peerDependencies\": {\n \"intlayer\": \"workspace:*\",\n \"react\": \">=16.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"intlayer\": {\n \"optional\": true\n },\n \"react\": {\n \"optional\": true\n }\n },\n \"engines\": {\n \"node\": \">=14.18\"\n },\n \"bug\": {\n \"url\": \"https://github.com/aymericzip/intlayer/issues\"\n }\n}\n"],"mappings":";cAEa"}
1
+ {"version":3,"file":"package.mjs","names":[],"sources":["../../package.json"],"sourcesContent":["{\n \"name\": \"@intlayer/config\",\n \"version\": \"7.1.0\",\n \"private\": false,\n \"description\": \"Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.\",\n \"keywords\": [\n \"intlayer\",\n \"layer\",\n \"abstraction\",\n \"data\",\n \"internationalization\",\n \"i18n\",\n \"typescript\",\n \"javascript\",\n \"json\",\n \"file\"\n ],\n \"homepage\": \"https://intlayer.org\",\n \"bugs\": {\n \"url\": \"https://github.com/aymericzip/intlayer/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/aymericzip/intlayer.git\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": {\n \"name\": \"Aymeric PINEAU\",\n \"url\": \"https://github.com/aymericzip\"\n },\n \"contributors\": [\n {\n \"name\": \"Aymeric Pineau\",\n \"email\": \"ay.pineau@gmail.com\",\n \"url\": \"https://github.com/aymericzip\"\n }\n ],\n \"sideEffects\": false,\n \"exports\": {\n \".\": {\n \"types\": \"./dist/types/index.d.ts\",\n \"require\": \"./dist/cjs/index.cjs\",\n \"import\": \"./dist/esm/index.mjs\"\n },\n \"./client\": {\n \"types\": \"./dist/types/client.d.ts\",\n \"require\": \"./dist/cjs/client.cjs\",\n \"import\": \"./dist/esm/client.mjs\"\n },\n \"./built\": {\n \"types\": \"./dist/types/built.d.ts\",\n \"require\": \"./dist/cjs/built.cjs\",\n \"import\": \"./dist/esm/built.mjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"main\": \"dist/cjs/index.cjs\",\n \"module\": \"dist/esm/index.mjs\",\n \"types\": \"dist/types/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \".\": [\n \"./dist/types/index.d.ts\"\n ],\n \"client\": [\n \"./dist/types/client.d.ts\"\n ],\n \"built\": [\n \"./dist/types/built.d.ts\"\n ],\n \"package.json\": [\n \"./package.json\"\n ]\n }\n },\n \"files\": [\n \"./dist\",\n \"./package.json\"\n ],\n \"scripts\": {\n \"build\": \"tsdown --config tsdown.config.ts\",\n \"build:ci\": \"tsdown --config tsdown.config.ts\",\n \"clean\": \"rimraf ./dist .turbo\",\n \"dev\": \"tsdown --config tsdown.config.ts --watch\",\n \"format\": \"biome format . --check\",\n \"format:fix\": \"biome format --write .\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"prepublish\": \"cp -f ../../../README.md ./README.md\",\n \"publish\": \"bun publish || true\",\n \"publish:canary\": \"bun publish --tag canary || true\",\n \"publish:latest\": \"bun publish --tag latest || true\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"typecheck\": \"tsc --noEmit --project tsconfig.types.json\"\n },\n \"dependencies\": {\n \"@intlayer/types\": \"workspace:*\",\n \"deepmerge\": \"4.3.1\",\n \"dotenv\": \"16.6.1\",\n \"esbuild\": \"0.25.2\"\n },\n \"devDependencies\": {\n \"@types/node\": \"24.10.1\",\n \"@utils/ts-config\": \"workspace:*\",\n \"@utils/ts-config-types\": \"workspace:*\",\n \"@utils/tsdown-config\": \"workspace:*\",\n \"rimraf\": \"6.1.0\",\n \"tsdown\": \"0.16.4\",\n \"typescript\": \"5.9.3\",\n \"vitest\": \"4.0.8\"\n },\n \"peerDependencies\": {\n \"intlayer\": \"workspace:*\",\n \"react\": \">=16.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"intlayer\": {\n \"optional\": true\n },\n \"react\": {\n \"optional\": true\n }\n },\n \"engines\": {\n \"node\": \">=14.18\"\n },\n \"bug\": {\n \"url\": \"https://github.com/aymericzip/intlayer/issues\"\n }\n}\n"],"mappings":";cAEa"}