@saidksi/localizer-core 0.1.2 → 0.2.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.
- package/dist/ai/index.d.ts +7 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +16 -10
- package/dist/ai/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/namespace.d.ts +22 -0
- package/dist/namespace.d.ts.map +1 -0
- package/dist/namespace.js +38 -0
- package/dist/namespace.js.map +1 -0
- package/dist/rewriter/index.d.ts +14 -3
- package/dist/rewriter/index.d.ts.map +1 -1
- package/dist/rewriter/index.js +24 -8
- package/dist/rewriter/index.js.map +1 -1
- package/dist/rewriter/ts-morph.d.ts +9 -3
- package/dist/rewriter/ts-morph.d.ts.map +1 -1
- package/dist/rewriter/ts-morph.js +35 -16
- package/dist/rewriter/ts-morph.js.map +1 -1
- package/package.json +1 -1
package/dist/ai/index.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ export interface TranslateResult {
|
|
|
15
15
|
uniqueStrings: number;
|
|
16
16
|
/** Number of AI calls actually made (may be less if some were already cached externally) */
|
|
17
17
|
aiCalls: number;
|
|
18
|
+
/**
|
|
19
|
+
* Maps absolute source file path → namespace (= JSON filename without .json).
|
|
20
|
+
* Pass this to `rewriteFiles()` so the hook namespace matches the JSON file.
|
|
21
|
+
*
|
|
22
|
+
* Example: { "/src/Header.tsx" → "header", "/admin/Header.tsx" → "header_1" }
|
|
23
|
+
*/
|
|
24
|
+
namespaceMap: Map<string, string>;
|
|
18
25
|
}
|
|
19
26
|
/**
|
|
20
27
|
* Translate a list of scan results using the configured AI provider.
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAc,eAAe,EAAa,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAc,eAAe,EAAa,MAAM,aAAa,CAAC;AAqRtF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAsE1B;AAID,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACxE,OAAO,CAAC,uBAAuB,CAAC,CAmKlC;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAuBlB;AAGD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/ai/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { deduplicateResults, buildAIRequests, applyResolvedKeys } from "./dedup.
|
|
|
4
4
|
import { callAnthropic, estimateCost } from "./anthropic.js";
|
|
5
5
|
import { callOpenAI } from "./openai.js";
|
|
6
6
|
import { flattenKeys } from "../validator/index.js";
|
|
7
|
+
import { resolveNamespaces } from "../namespace.js";
|
|
7
8
|
// ─── Key conflict resolution (flat key vs nested namespace) ──────────────────
|
|
8
9
|
/**
|
|
9
10
|
* Detect and fix key namespace conflicts.
|
|
@@ -93,10 +94,6 @@ function normalizeConsistentKeys(requests, responses) {
|
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
96
|
// ─── Messages JSON helpers ────────────────────────────────────────────────────
|
|
96
|
-
/** "src/pages/Login.tsx" → "login" */
|
|
97
|
-
function getPageName(filePath) {
|
|
98
|
-
return basename(filePath, extname(filePath)).toLowerCase();
|
|
99
|
-
}
|
|
100
97
|
function isPlainObject(v) {
|
|
101
98
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
102
99
|
}
|
|
@@ -168,9 +165,13 @@ async function mergeIntoMessagesFile(filePath, entries, overwrite) {
|
|
|
168
165
|
// ─── Write translations to disk ──────────────────────────────────────────────
|
|
169
166
|
/**
|
|
170
167
|
* Given resolved scan results, write all translations to the messages directory.
|
|
171
|
-
* Groups by source file → writes to messages/{lang}/{
|
|
168
|
+
* Groups by source file → writes to messages/{lang}/{namespace}.json.
|
|
169
|
+
*
|
|
170
|
+
* Uses `resolveNamespaces` to handle filename collisions: if two source files
|
|
171
|
+
* share the same basename (e.g. src/Header.tsx and admin/Header.tsx), the second
|
|
172
|
+
* gets a numeric suffix (header_1.json).
|
|
172
173
|
*
|
|
173
|
-
* Returns the list of file paths written.
|
|
174
|
+
* Returns the list of file paths written and the namespace map for the caller.
|
|
174
175
|
*/
|
|
175
176
|
async function writeTranslations(results, responses, config, options) {
|
|
176
177
|
// Group resolved results by source file
|
|
@@ -186,9 +187,12 @@ async function writeTranslations(results, responses, config, options) {
|
|
|
186
187
|
byFile.set(result.file, [result]);
|
|
187
188
|
}
|
|
188
189
|
}
|
|
190
|
+
// Resolve namespaces with collision detection across all source files in this batch
|
|
191
|
+
const namespaceMap = resolveNamespaces(Array.from(byFile.keys()));
|
|
189
192
|
const writtenPaths = [];
|
|
190
193
|
for (const [sourceFile, fileResults] of byFile) {
|
|
191
|
-
const
|
|
194
|
+
const namespace = namespaceMap.get(sourceFile) ??
|
|
195
|
+
basename(sourceFile, extname(sourceFile)).toLowerCase();
|
|
192
196
|
const allLanguages = [config.defaultLanguage, ...config.languages];
|
|
193
197
|
// Collect unique keys for this file (deduplicated by key)
|
|
194
198
|
const seen = new Set();
|
|
@@ -203,7 +207,7 @@ async function writeTranslations(results, responses, config, options) {
|
|
|
203
207
|
entries.push({ key, response });
|
|
204
208
|
}
|
|
205
209
|
for (const lang of allLanguages) {
|
|
206
|
-
const messagesPath = join(resolve(config.messagesDir), lang, `${
|
|
210
|
+
const messagesPath = join(resolve(config.messagesDir), lang, `${namespace}.json`);
|
|
207
211
|
// Build (key, translation) pairs for this language
|
|
208
212
|
const langEntries = entries.map(({ key, response }) => ({
|
|
209
213
|
key,
|
|
@@ -218,7 +222,7 @@ async function writeTranslations(results, responses, config, options) {
|
|
|
218
222
|
writtenPaths.push(messagesPath);
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
|
-
return writtenPaths;
|
|
225
|
+
return { paths: writtenPaths, namespaceMap };
|
|
222
226
|
}
|
|
223
227
|
/**
|
|
224
228
|
* Translate a list of scan results using the configured AI provider.
|
|
@@ -241,6 +245,7 @@ export async function translateStrings(scanResults, config, apiKey, options = {}
|
|
|
241
245
|
messagesWritten: [],
|
|
242
246
|
uniqueStrings: 0,
|
|
243
247
|
aiCalls: 0,
|
|
248
|
+
namespaceMap: new Map(),
|
|
244
249
|
};
|
|
245
250
|
}
|
|
246
251
|
// 1. Deduplicate
|
|
@@ -275,13 +280,14 @@ export async function translateStrings(scanResults, config, apiKey, options = {}
|
|
|
275
280
|
}
|
|
276
281
|
const updatedResults = applyResolvedKeys(scanResults, valueToKey);
|
|
277
282
|
// 5. Write translations to disk
|
|
278
|
-
const messagesWritten = await writeTranslations(updatedResults, aiResponses, config, { dryRun, overwrite });
|
|
283
|
+
const { paths: messagesWritten, namespaceMap } = await writeTranslations(updatedResults, aiResponses, config, { dryRun, overwrite });
|
|
279
284
|
return {
|
|
280
285
|
results: updatedResults,
|
|
281
286
|
aiCostUsd: totalCostUsd,
|
|
282
287
|
messagesWritten: dryRun ? [] : messagesWritten,
|
|
283
288
|
uniqueStrings,
|
|
284
289
|
aiCalls: aiResponses.size,
|
|
290
|
+
namespaceMap,
|
|
285
291
|
};
|
|
286
292
|
}
|
|
287
293
|
/**
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
|
+
export { resolveNamespaces, getNamespaceForFile } from "./namespace.js";
|
|
2
3
|
export { scanFile, scanFiles, scanDirectory, buildScanReport } from "./scanner/index.js";
|
|
3
4
|
export { shouldFilter, NON_TRANSLATABLE_ATTRS, TRANSLATION_FNS } from "./scanner/filters.js";
|
|
4
5
|
export * from "./rewriter/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7F,cAAc,qBAAqB,CAAC;AAGpC,cAAc,eAAe,CAAC;AAG9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAG9B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG7F,cAAc,qBAAqB,CAAC;AAGpC,cAAc,eAAe,CAAC;AAG9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAG9B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Types — import these in all modules
|
|
2
2
|
export * from "./types.js";
|
|
3
|
+
// Namespace resolution
|
|
4
|
+
export { resolveNamespaces, getNamespaceForFile } from "./namespace.js";
|
|
3
5
|
// Scanner
|
|
4
6
|
export { scanFile, scanFiles, scanDirectory, buildScanReport } from "./scanner/index.js";
|
|
5
7
|
export { shouldFilter, NON_TRANSLATABLE_ATTRS, TRANSLATION_FNS } from "./scanner/filters.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,YAAY,CAAC;AAE3B,UAAU;AACV,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE7F,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,eAAe,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,uBAAuB,GAExB,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,YAAY,CAAC;AAE3B,uBAAuB;AACvB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,UAAU;AACV,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE7F,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,eAAe,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,uBAAuB,GAExB,MAAM,sBAAsB,CAAC;AAE9B,iBAAiB;AACjB,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a list of absolute source file paths, return a Map<filePath, namespace>
|
|
3
|
+
* where each namespace is the lowercased filename without extension.
|
|
4
|
+
*
|
|
5
|
+
* When two files share the same base name (e.g., src/Header.tsx and src/admin/Header.tsx),
|
|
6
|
+
* the first occurrence keeps the plain name ("header") and subsequent ones get a numeric
|
|
7
|
+
* suffix: "header_1", "header_2", etc.
|
|
8
|
+
*
|
|
9
|
+
* The order of the input array determines which file wins the plain name.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* resolveNamespaces(["/src/Header.tsx", "/admin/Header.tsx"])
|
|
13
|
+
* // → Map { "/src/Header.tsx" → "header", "/admin/Header.tsx" → "header_1" }
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveNamespaces(filePaths: string[]): Map<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Convenience wrapper: get the namespace for a single file given all files
|
|
18
|
+
* in the same batch (for collision detection).
|
|
19
|
+
* Falls back to the lowercased basename if `filePath` is not in `allFilePaths`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getNamespaceForFile(filePath: string, allFilePaths: string[]): string;
|
|
22
|
+
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAe1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,CAGR"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { basename, extname } from "path";
|
|
2
|
+
/**
|
|
3
|
+
* Given a list of absolute source file paths, return a Map<filePath, namespace>
|
|
4
|
+
* where each namespace is the lowercased filename without extension.
|
|
5
|
+
*
|
|
6
|
+
* When two files share the same base name (e.g., src/Header.tsx and src/admin/Header.tsx),
|
|
7
|
+
* the first occurrence keeps the plain name ("header") and subsequent ones get a numeric
|
|
8
|
+
* suffix: "header_1", "header_2", etc.
|
|
9
|
+
*
|
|
10
|
+
* The order of the input array determines which file wins the plain name.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* resolveNamespaces(["/src/Header.tsx", "/admin/Header.tsx"])
|
|
14
|
+
* // → Map { "/src/Header.tsx" → "header", "/admin/Header.tsx" → "header_1" }
|
|
15
|
+
*/
|
|
16
|
+
export function resolveNamespaces(filePaths) {
|
|
17
|
+
const result = new Map();
|
|
18
|
+
// nextSuffix tracks the next numeric suffix to assign for each base name
|
|
19
|
+
const nextSuffix = new Map();
|
|
20
|
+
for (const filePath of filePaths) {
|
|
21
|
+
const base = basename(filePath, extname(filePath)).toLowerCase();
|
|
22
|
+
const suffix = nextSuffix.get(base) ?? 0;
|
|
23
|
+
// First occurrence → plain name; subsequent → base_1, base_2, ...
|
|
24
|
+
result.set(filePath, suffix === 0 ? base : `${base}_${suffix}`);
|
|
25
|
+
nextSuffix.set(base, suffix + 1);
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Convenience wrapper: get the namespace for a single file given all files
|
|
31
|
+
* in the same batch (for collision detection).
|
|
32
|
+
* Falls back to the lowercased basename if `filePath` is not in `allFilePaths`.
|
|
33
|
+
*/
|
|
34
|
+
export function getNamespaceForFile(filePath, allFilePaths) {
|
|
35
|
+
const map = resolveNamespaces(allFilePaths);
|
|
36
|
+
return map.get(filePath) ?? basename(filePath, extname(filePath)).toLowerCase();
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAmB;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,yEAAyE;IACzE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzC,kEAAkE;QAClE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,YAAsB;IAEtB,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClF,CAAC"}
|
package/dist/rewriter/index.d.ts
CHANGED
|
@@ -6,12 +6,17 @@ import type { ScanResult, RewriteResult, LocalizerConfig } from "../types.js";
|
|
|
6
6
|
export declare function generateDiff(original: string, modified: string, filePath: string): string;
|
|
7
7
|
/**
|
|
8
8
|
* Rewrite a source file: replace hardcoded strings with t() calls,
|
|
9
|
-
* add the i18n import and hook if missing.
|
|
9
|
+
* add the i18n import and hook if missing, and set the correct namespace.
|
|
10
10
|
*
|
|
11
11
|
* Does NOT write to disk — returns the modified source and diff.
|
|
12
12
|
* The CLI layer handles confirmation and calls `applyRewrite` to persist.
|
|
13
|
+
*
|
|
14
|
+
* @param namespace The i18n namespace to use in the hook call (e.g. "header").
|
|
15
|
+
* When omitted the lowercased filename is used.
|
|
16
|
+
* Pass the value from `resolveNamespaces()` when processing
|
|
17
|
+
* a batch of files to get correct collision-safe names.
|
|
13
18
|
*/
|
|
14
|
-
export declare function rewriteFile(filePath: string, results: ScanResult[], config: LocalizerConfig): Promise<RewriteResult>;
|
|
19
|
+
export declare function rewriteFile(filePath: string, results: ScanResult[], config: LocalizerConfig, namespace?: string): Promise<RewriteResult>;
|
|
15
20
|
/**
|
|
16
21
|
* Write the modified source from a RewriteResult to disk.
|
|
17
22
|
* Call this after the user confirms the diff.
|
|
@@ -21,8 +26,14 @@ export declare function applyRewrite(result: RewriteResult): Promise<RewriteResu
|
|
|
21
26
|
/**
|
|
22
27
|
* Rewrite multiple files. Each file is processed independently.
|
|
23
28
|
* Results are returned in the same order as the input file list.
|
|
29
|
+
*
|
|
30
|
+
* @param namespaceMap Optional map of absolute filePath → namespace.
|
|
31
|
+
* When provided, collision-safe names are used.
|
|
32
|
+
* When omitted, each file derives its namespace from its filename.
|
|
33
|
+
* Pass the `namespaceMap` from `translateStrings()` to keep
|
|
34
|
+
* the translate and rewrite steps in sync.
|
|
24
35
|
*/
|
|
25
|
-
export declare function rewriteFiles(fileResultsMap: Map<string, ScanResult[]>, config: LocalizerConfig): Promise<RewriteResult[]>;
|
|
36
|
+
export declare function rewriteFiles(fileResultsMap: Map<string, ScanResult[]>, config: LocalizerConfig, namespaceMap?: Map<string, string>): Promise<RewriteResult[]>;
|
|
26
37
|
/**
|
|
27
38
|
* Group a flat ScanResult[] by source file.
|
|
28
39
|
* Useful before calling rewriteFiles.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rewriter/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rewriter/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAM9E;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CA6CR;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA8CxB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAGhF;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EACzC,MAAM,EAAE,eAAe,EACvB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC,CAa1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,UAAU,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAW3B"}
|
package/dist/rewriter/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFile, writeFile } from "fs/promises";
|
|
2
2
|
import { resolve, basename, extname } from "path";
|
|
3
|
+
import { resolveNamespaces } from "../namespace.js";
|
|
3
4
|
import { applyStringReplacements, getAdapter } from "./transforms.js";
|
|
4
5
|
import { ensureTranslationBoilerplate } from "./ts-morph.js";
|
|
5
6
|
// ─── Diff generation ─────────────────────────────────────────────────────────
|
|
@@ -53,12 +54,17 @@ export function generateDiff(original, modified, filePath) {
|
|
|
53
54
|
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
54
55
|
/**
|
|
55
56
|
* Rewrite a source file: replace hardcoded strings with t() calls,
|
|
56
|
-
* add the i18n import and hook if missing.
|
|
57
|
+
* add the i18n import and hook if missing, and set the correct namespace.
|
|
57
58
|
*
|
|
58
59
|
* Does NOT write to disk — returns the modified source and diff.
|
|
59
60
|
* The CLI layer handles confirmation and calls `applyRewrite` to persist.
|
|
61
|
+
*
|
|
62
|
+
* @param namespace The i18n namespace to use in the hook call (e.g. "header").
|
|
63
|
+
* When omitted the lowercased filename is used.
|
|
64
|
+
* Pass the value from `resolveNamespaces()` when processing
|
|
65
|
+
* a batch of files to get correct collision-safe names.
|
|
60
66
|
*/
|
|
61
|
-
export async function rewriteFile(filePath, results, config) {
|
|
67
|
+
export async function rewriteFile(filePath, results, config, namespace) {
|
|
62
68
|
const absolute = resolve(filePath);
|
|
63
69
|
const originalSource = await readFile(absolute, "utf-8");
|
|
64
70
|
const resolved = results.filter((r) => r.resolvedKey !== null);
|
|
@@ -74,10 +80,10 @@ export async function rewriteFile(filePath, results, config) {
|
|
|
74
80
|
const adapter = getAdapter(config.i18nLibrary);
|
|
75
81
|
// Step 1: Replace hardcoded strings with t() calls (positional, text-based)
|
|
76
82
|
const { modified: afterReplacements, count } = applyStringReplacements(originalSource, resolved, adapter);
|
|
77
|
-
// Step 2: Ensure import + hook are present
|
|
78
|
-
//
|
|
79
|
-
const
|
|
80
|
-
const finalSource = ensureTranslationBoilerplate(afterReplacements, filePath, adapter,
|
|
83
|
+
// Step 2: Ensure import + hook are present with the correct namespace.
|
|
84
|
+
// Use the provided namespace, or fall back to the lowercased filename.
|
|
85
|
+
const resolvedNamespace = namespace ?? basename(filePath, extname(filePath)).toLowerCase();
|
|
86
|
+
const finalSource = ensureTranslationBoilerplate(afterReplacements, filePath, adapter, resolvedNamespace);
|
|
81
87
|
const diff = generateDiff(originalSource, finalSource, filePath);
|
|
82
88
|
return {
|
|
83
89
|
file: absolute,
|
|
@@ -99,11 +105,21 @@ export async function applyRewrite(result) {
|
|
|
99
105
|
/**
|
|
100
106
|
* Rewrite multiple files. Each file is processed independently.
|
|
101
107
|
* Results are returned in the same order as the input file list.
|
|
108
|
+
*
|
|
109
|
+
* @param namespaceMap Optional map of absolute filePath → namespace.
|
|
110
|
+
* When provided, collision-safe names are used.
|
|
111
|
+
* When omitted, each file derives its namespace from its filename.
|
|
112
|
+
* Pass the `namespaceMap` from `translateStrings()` to keep
|
|
113
|
+
* the translate and rewrite steps in sync.
|
|
102
114
|
*/
|
|
103
|
-
export async function rewriteFiles(fileResultsMap, config) {
|
|
115
|
+
export async function rewriteFiles(fileResultsMap, config, namespaceMap) {
|
|
116
|
+
// If no map was provided, build one from the files in this batch so that
|
|
117
|
+
// any filename collisions within the batch are resolved consistently.
|
|
118
|
+
const effectiveNsMap = namespaceMap ?? resolveNamespaces(Array.from(fileResultsMap.keys()));
|
|
104
119
|
const rewrites = [];
|
|
105
120
|
for (const [filePath, results] of fileResultsMap) {
|
|
106
|
-
const
|
|
121
|
+
const namespace = effectiveNsMap.get(filePath);
|
|
122
|
+
const rewrite = await rewriteFile(filePath, results, config, namespace);
|
|
107
123
|
rewrites.push(rewrite);
|
|
108
124
|
}
|
|
109
125
|
return rewrites;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rewriter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rewriter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,15 @@ import type { LibraryAdapter } from "./transforms.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function ensureImport(source: string, filePath: string, adapter: LibraryAdapter): string;
|
|
8
8
|
/**
|
|
9
|
-
* Ensure the translation hook declaration exists in the first component function
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* Ensure the translation hook declaration exists in the first component function,
|
|
10
|
+
* with the correct namespace argument.
|
|
11
|
+
*
|
|
12
|
+
* Behaviour:
|
|
13
|
+
* 1. Hook absent → inject `useTranslation('namespace')`
|
|
14
|
+
* 2. Hook present, no arguments → update to `useTranslation('namespace')`
|
|
15
|
+
* 3. Hook present, has arguments → leave as-is (respect user's choice)
|
|
16
|
+
*
|
|
17
|
+
* react-intl's `useIntl()` never receives a namespace argument (case 3 always applies).
|
|
12
18
|
*/
|
|
13
19
|
export declare function ensureHook(source: string, filePath: string, adapter: LibraryAdapter, namespace?: string): string;
|
|
14
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-morph.d.ts","sourceRoot":"","sources":["../../src/rewriter/ts-morph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,MAAM,CAoCR;AA8CD
|
|
1
|
+
{"version":3,"file":"ts-morph.d.ts","sourceRoot":"","sources":["../../src/rewriter/ts-morph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,MAAM,CAoCR;AA8CD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAyBR;AAsCD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAIR"}
|
|
@@ -74,14 +74,39 @@ function findComponentFunction(sf) {
|
|
|
74
74
|
return sf.getFunctions()[0] ?? null;
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
|
-
* Ensure the translation hook declaration exists in the first component function
|
|
78
|
-
*
|
|
79
|
-
*
|
|
77
|
+
* Ensure the translation hook declaration exists in the first component function,
|
|
78
|
+
* with the correct namespace argument.
|
|
79
|
+
*
|
|
80
|
+
* Behaviour:
|
|
81
|
+
* 1. Hook absent → inject `useTranslation('namespace')`
|
|
82
|
+
* 2. Hook present, no arguments → update to `useTranslation('namespace')`
|
|
83
|
+
* 3. Hook present, has arguments → leave as-is (respect user's choice)
|
|
84
|
+
*
|
|
85
|
+
* react-intl's `useIntl()` never receives a namespace argument (case 3 always applies).
|
|
80
86
|
*/
|
|
81
87
|
export function ensureHook(source, filePath, adapter, namespace) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
const supportsNamespace = adapter.importSpecifier !== "useIntl";
|
|
89
|
+
const effectiveNs = namespace && supportsNamespace ? namespace : undefined;
|
|
90
|
+
// ── Case 1: hook not present at all → inject ─────────────────────────────
|
|
91
|
+
if (!source.includes(adapter.hookDetectionString)) {
|
|
92
|
+
return injectHook(source, filePath, adapter, effectiveNs);
|
|
93
|
+
}
|
|
94
|
+
// ── Case 2: hook present with no arguments → add namespace ───────────────
|
|
95
|
+
// Matches: useTranslation() useTranslation( ) useTranslations() etc.
|
|
96
|
+
if (effectiveNs) {
|
|
97
|
+
const noArgsRegex = new RegExp(`\\b${adapter.importSpecifier}\\s*\\(\\s*\\)`);
|
|
98
|
+
if (noArgsRegex.test(source)) {
|
|
99
|
+
return source.replace(noArgsRegex, `${adapter.importSpecifier}('${effectiveNs}')`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// ── Case 3: hook present with arguments → leave as-is ────────────────────
|
|
103
|
+
return source;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Inject the hook statement at the top of the first component function body.
|
|
107
|
+
* Extracted from ensureHook so both the "absent" and future callers can use it.
|
|
108
|
+
*/
|
|
109
|
+
function injectHook(source, filePath, adapter, namespace) {
|
|
85
110
|
const project = new Project({ useInMemoryFileSystem: true });
|
|
86
111
|
const sf = project.createSourceFile(filePath, source, { overwrite: true });
|
|
87
112
|
const fn = findComponentFunction(sf);
|
|
@@ -92,19 +117,13 @@ export function ensureHook(source, filePath, adapter, namespace) {
|
|
|
92
117
|
: fn.getBody();
|
|
93
118
|
if (!body)
|
|
94
119
|
return source;
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
|
|
120
|
+
// Arrow functions with expression bodies (no braces) are uncommon in real
|
|
121
|
+
// components — skip rather than attempt a block conversion.
|
|
122
|
+
if (!Node.isBlock(body))
|
|
98
123
|
return source;
|
|
99
|
-
|
|
100
|
-
// Build the hook statement, using namespace if provided and if the hook accepts it
|
|
101
|
-
// Only useTranslation, useTranslations, and useI18n accept namespace argument.
|
|
102
|
-
// react-intl's useIntl() does not accept a namespace argument.
|
|
103
|
-
const supportsNamespace = adapter.importSpecifier !== "useIntl";
|
|
104
|
-
const hookStatement = namespace && supportsNamespace
|
|
124
|
+
const hookStatement = namespace
|
|
105
125
|
? adapter.hookStatement.replace("()", `('${namespace}')`)
|
|
106
126
|
: adapter.hookStatement;
|
|
107
|
-
// Insert hook at the very beginning of the function body (index 0)
|
|
108
127
|
body.insertStatements(0, [hookStatement]);
|
|
109
128
|
return sf.getFullText();
|
|
110
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-morph.js","sourceRoot":"","sources":["../../src/rewriter/ts-morph.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ts-morph.js","sourceRoot":"","sources":["../../src/rewriter/ts-morph.ts"],"names":[],"mappings":"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"}
|