@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.
@@ -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.
@@ -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;AA+QtF,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;CACjB;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,CAoE1B;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"}
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}/{pageName}.json.
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 pageName = getPageName(sourceFile);
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, `${pageName}.json`);
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,SAAkC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,GAAG,EAAE,GAAG,GAAG,QAAQ;gBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,mFAAmF;AAEnF;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAC9B,QAAqB,EACrB,SAAkC;IAElC,+BAA+B;IAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,IAAI,UAAU,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,uBAAuB;QAEjE,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,uBAAuB;YAExE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,wEAAwE;QACxE,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,UAAU,CAAC;YAEnD,0DAA0D;YAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;gBACzC,IAAI,SAAS,KAAK,YAAY;oBAAE,SAAS;gBAEzC,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;oBACnC,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB;oBAChF,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,cAAc,EAAE,CAAC;oBAEnD,sBAAsB;oBACtB,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,WAAW,EAAE,CAAC;wBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;4BACvB,GAAG,EAAE,MAAM;4BACX,YAAY,EAAE,WAAW,CAAC,YAAY;yBACvC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,sCAAsC;AACtC,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B,EAC/B,SAAkB;IAElB,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,MAAM,CAAC,GAAG,CAA4B,EACtC,KAAgC,EAChC,SAAS,CACV,CAAC;YACJ,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,8DAA8D;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAEhD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAC7B,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,QAAgB,EAChB,OAAoD,EACpD,SAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,SAAkC,EAClC,MAAuB,EACvB,OAAgD;IAEhD,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,SAAS;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnE,0DAA0D;QAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAiD,EAAE,CAAC;QACjE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAY,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,CACvB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAC3B,IAAI,EACJ,GAAG,QAAQ,OAAO,CACnB,CAAC;YAEF,mDAAmD;YACnD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtD,GAAG;gBACH,kDAAkD;gBAClD,WAAW,EACT,IAAI,KAAK,MAAM,CAAC,eAAe;oBAC7B,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC9F,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,qBAAqB,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5E,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAuBD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAyB,EACzB,MAAuB,EACvB,MAAc,EACd,UAA4B,EAAE;IAE9B,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEzE,wCAAwC;IACxC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAErE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;SACX,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAElC,oFAAoF;IACpF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAE/D,sBAAsB;IACtB,IAAI,WAAoC,CAAC;IACzC,IAAI,YAAoB,CAAC;IAEzB,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,iEAAiE;IACjE,yEAAyE;IACzE,+FAA+F;IAC/F,wDAAwD;IACxD,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE/C,mGAAmG;IACnG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,sFAAsF;IACtF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5C,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElE,gCAAgC;IAChC,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC7C,cAAc,EACd,WAAW,EACX,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;QAC9C,aAAa;QACb,OAAO,EAAE,WAAW,CAAC,IAAI;KAC1B,CAAC;AACJ,CAAC;AAqBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA2B,EAC3B,MAAuB,EACvB,MAAc,EACd,UAAuE,EAAE;IAEzE,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,MAAM,CAAC,iBAAiB,EACpC,KAAK,GAAG,MAAM,CAAC,SAAS,GACzB,GAAG,OAAO,CAAC;IAEZ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,+BAA+B;IAC/B,IAAI,kBAAkB,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;oBAC1D,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC,CAAC,iDAAiD,CAAC,CAAC;YAC/D,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;QAEF,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,oDAAoD;QACpD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CACvF,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1E,qCAAqC;IACrC,MAAM,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,GAChE,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACtE,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,4BAA4B;QAC5B,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvC,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;iBAC9C,CAAC,CAAC;gBACH,MAAM,GAAG,GACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACvD,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC7C,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBAC/C,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;oBAC7C,UAAU,EAAE,GAAG;oBACf,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;iBACzC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACvD,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC7C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,YAAY;wBACV,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC;4BAC1B,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;4BACnC,SAAS,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,uCAAuC,KAAK,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,UAAU,EAAE,mBAAmB,CAAC,IAAI;YACpC,SAAS,EAAE,YAAY;YACvB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;YAE7E,IAAI,QAAQ,GAA4B,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CACnB,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CACP,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YAE1B,IAAI,MAAM,GAAG,QAAQ,CAAC;YACtB,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,WAAW;oBAAE,SAAS;gBAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC7C,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3E,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,MAAM;QACrC,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,YAAY;QAC7B,OAAO,EAAE,YAAY,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAuC,EACvC,KAAa,EACb,MAAc;IAEd,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,KAAK;gBACL,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACnC,KAAK;gBACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC7C,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,SAAkC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;gBACnB,GAAG,EAAE,GAAG,GAAG,QAAQ;gBACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,mFAAmF;AAEnF;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAC9B,QAAqB,EACrB,SAAkC;IAElC,+BAA+B;IAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,IAAI,UAAU,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,uBAAuB;QAEjE,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,uBAAuB;YAExE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,wEAAwE;QACxE,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,UAAU,CAAC;YAEnD,0DAA0D;YAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;gBACzC,IAAI,SAAS,KAAK,YAAY;oBAAE,SAAS;gBAEzC,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,CAAC;oBACnC,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB;oBAChF,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,cAAc,EAAE,CAAC;oBAEnD,sBAAsB;oBACtB,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,WAAW,EAAE,CAAC;wBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;4BACvB,GAAG,EAAE,MAAM;4BACX,YAAY,EAAE,WAAW,CAAC,YAAY;yBACvC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B,EAC/B,SAAkB;IAElB,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,MAAM,CAAC,GAAG,CAA4B,EACtC,KAAgC,EAChC,SAAS,CACV,CAAC;YACJ,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,8DAA8D;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,KAAa;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IAEhD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAC7B,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,QAAgB,EAChB,OAAoD,EACpD,SAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,SAAkC,EAClC,MAAuB,EACvB,OAAgD;IAEhD,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,SAAS;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/C,MAAM,SAAS,GACb,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;YAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE1D,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnE,0DAA0D;QAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAiD,EAAE,CAAC;QACjE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAY,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,CACvB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAC3B,IAAI,EACJ,GAAG,SAAS,OAAO,CACpB,CAAC;YAEF,mDAAmD;YACnD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtD,GAAG;gBACH,kDAAkD;gBAClD,WAAW,EACT,IAAI,KAAK,MAAM,CAAC,eAAe;oBAC7B,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC9F,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,qBAAqB,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5E,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/C,CAAC;AA8BD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAyB,EACzB,MAAuB,EACvB,MAAc,EACd,UAA4B,EAAE;IAE9B,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEzE,wCAAwC;IACxC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAErE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,IAAI,GAAG,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAElC,oFAAoF;IACpF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAE/D,sBAAsB;IACtB,IAAI,WAAoC,CAAC;IACzC,IAAI,YAAoB,CAAC;IAEzB,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/B,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,iEAAiE;IACjE,yEAAyE;IACzE,+FAA+F;IAC/F,wDAAwD;IACxD,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE/C,mGAAmG;IACnG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,sFAAsF;IACtF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5C,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElE,gCAAgC;IAChC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,CACtE,cAAc,EACd,WAAW,EACX,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;QAC9C,aAAa;QACb,OAAO,EAAE,WAAW,CAAC,IAAI;QACzB,YAAY;KACb,CAAC;AACJ,CAAC;AAqBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA2B,EAC3B,MAAuB,EACvB,MAAc,EACd,UAAuE,EAAE;IAEzE,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,MAAM,CAAC,iBAAiB,EACpC,KAAK,GAAG,MAAM,CAAC,SAAS,GACzB,GAAG,OAAO,CAAC;IAEZ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,+BAA+B;IAC/B,IAAI,kBAAkB,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;oBAC1D,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAAC,MAAM,CAAC,CAAC,iDAAiD,CAAC,CAAC;YAC/D,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CACH,CAAC;QAEF,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,oDAAoD;QACpD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CACvF,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1E,qCAAqC;IACrC,MAAM,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,GAChE,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAE/B,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACtE,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,4BAA4B;QAC5B,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvC,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,UAAU,EAAE,GAAG;oBACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;iBAC9C,CAAC,CAAC;gBACH,MAAM,GAAG,GACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACvD,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC7C,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBAC/C,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;oBAC7C,UAAU,EAAE,GAAG;oBACf,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;iBACzC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;gBACvD,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC7C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,YAAY;wBACV,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC;4BAC1B,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;4BACnC,SAAS,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,uCAAuC,KAAK,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,UAAU,EAAE,mBAAmB,CAAC,IAAI;YACpC,SAAS,EAAE,YAAY;YACvB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;YAE7E,IAAI,QAAQ,GAA4B,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CACnB,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CACP,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YAE1B,IAAI,MAAM,GAAG,QAAQ,CAAC;YACtB,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,WAAW;oBAAE,SAAS;gBAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC7C,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3E,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,MAAM;QACrC,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,YAAY;QAC7B,OAAO,EAAE,YAAY,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAuC,EACvC,KAAa,EACb,MAAc;IAEd,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,KAAK;gBACL,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACnC,KAAK;gBACL,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC7C,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
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";
@@ -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"}
@@ -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":"AAEA,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;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CA4CxB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAGhF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EACzC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAO1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,UAAU,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAW3B"}
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"}
@@ -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 (ts-morph structural edits)
78
- // Derive namespace from filename: Login.tsx "login", home.tsx → "home"
79
- const namespace = basename(filePath, extname(filePath)).toLowerCase();
80
- const finalSource = ensureTranslationBoilerplate(afterReplacements, filePath, adapter, namespace);
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 rewrite = await rewriteFile(filePath, results, config);
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":"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"}
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
- * If the hook call is already present anywhere in the file, the source is returned unchanged.
11
- * Otherwise the hook statement is inserted at the top of the component function body.
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;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAkCR;AAID;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAIR"}
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
- * If the hook call is already present anywhere in the file, the source is returned unchanged.
79
- * Otherwise the hook statement is inserted at the top of the component function body.
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
- // Fast path: hook already present in source text
83
- if (source.includes(adapter.hookDetectionString))
84
- return source;
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
- // For arrow functions with expression bodies (no braces), convert to block first
96
- if (!Node.isBlock(body)) {
97
- // e.g. `const X = () => <div/>` — not common in real components, skip
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saidksi/localizer-core",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Core i18n automation library for localizer",
5
5
  "type": "module",
6
6
  "exports": {