i18next-cli 1.72.0 → 1.72.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/cli.js CHANGED
@@ -37,7 +37,7 @@ const program = new commander.Command();
37
37
  program
38
38
  .name('i18next-cli')
39
39
  .description('A unified, high-performance i18next CLI.')
40
- .version('1.72.0'); // This string is replaced with the actual version at build time by rollup
40
+ .version('1.72.2'); // This string is replaced with the actual version at build time by rollup
41
41
  // new: global config override option
42
42
  program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
43
43
  program
@@ -448,6 +448,9 @@ class ASTVisitors {
448
448
  arrayCallbackCleanup = this.tryBindObjectArrayCallback(node);
449
449
  }
450
450
  }
451
+ else if (node.type === 'ForOfStatement') {
452
+ arrayCallbackCleanup = this.tryBindForOfLoop(node);
453
+ }
451
454
  // --- RECURSION ---
452
455
  // Recurse into the children of the current node
453
456
  for (const key in node) {
@@ -835,6 +838,63 @@ class ASTVisitors {
835
838
  return undefined;
836
839
  }
837
840
  }
841
+ /**
842
+ * If `node` is `for (const unit of KNOWN_ARRAY)` — or the destructured
843
+ * `for (const { unit } of KNOWN_ARRAY_OF_OBJECTS)` — binds the loop variable
844
+ * for the duration of the loop body, the same way `.map()`/`.forEach()`
845
+ * callback parameters are bound.
846
+ *
847
+ * Returns a cleanup function, or undefined when nothing was bound.
848
+ */
849
+ tryBindForOfLoop(node) {
850
+ try {
851
+ if (node.right?.type !== 'Identifier')
852
+ return undefined;
853
+ const source = node.right.value;
854
+ const left = node.left;
855
+ const pat = left?.type === 'VariableDeclaration' ? left.declarations?.[0]?.id : left;
856
+ // `for (const unit of ['day', 'hour'] as const)`
857
+ if (pat?.type === 'Identifier') {
858
+ const values = this.expressionResolver.getVariableValues(source);
859
+ if (values?.length) {
860
+ this.expressionResolver.setTemporaryVariable(pat.value, values);
861
+ return () => this.expressionResolver.deleteTemporaryVariable(pat.value);
862
+ }
863
+ // `for (const item of items)` so `item.unit` resolves
864
+ const members = this.expressionResolver.getArrayElementMembers(source);
865
+ if (members) {
866
+ this.expressionResolver.setTemporaryObjectVariable(pat.value, members);
867
+ return () => this.expressionResolver.deleteTemporaryObjectVariable(pat.value);
868
+ }
869
+ return undefined;
870
+ }
871
+ // `for (const { unit } of [{ unit: 'day' }, …] as const)`
872
+ if (pat?.type === 'ObjectPattern') {
873
+ const members = this.expressionResolver.getArrayElementMembers(source);
874
+ if (!members)
875
+ return undefined;
876
+ const bound = [];
877
+ for (const prop of (pat.properties ?? [])) {
878
+ const memberName = prop?.key?.value;
879
+ let localNode = prop?.type === 'KeyValuePatternProperty' ? prop.value : prop?.key;
880
+ if (localNode?.type === 'AssignmentPattern')
881
+ localNode = localNode.left;
882
+ const localName = localNode?.type === 'Identifier' ? localNode.value : undefined;
883
+ if (!memberName || !localName || !members[memberName])
884
+ continue;
885
+ this.expressionResolver.setTemporaryVariable(localName, members[memberName]);
886
+ bound.push(localName);
887
+ }
888
+ if (bound.length === 0)
889
+ return undefined;
890
+ return () => bound.forEach(name => this.expressionResolver.deleteTemporaryVariable(name));
891
+ }
892
+ return undefined;
893
+ }
894
+ catch {
895
+ return undefined;
896
+ }
897
+ }
838
898
  /**
839
899
  * If `node` is `items.map(cb)` (or forEach/flatMap/…) where `items` is typed
840
900
  * as an array of an object shape (`items: IProps[]`), binds the callback
@@ -100,6 +100,27 @@ class ExpressionResolver {
100
100
  }
101
101
  return;
102
102
  }
103
+ // ── ObjectPattern id: `const { unit } = rate` ───────────────────────────
104
+ // Bind each destructured local to the source object's property values.
105
+ if (node.id.type === 'ObjectPattern' && node.init?.type === 'Identifier') {
106
+ const map = this.getObjectMap(node.init.value);
107
+ const objMembers = this.temporaryObjectVariables.get(node.init.value);
108
+ if (!map && !objMembers)
109
+ return;
110
+ for (const prop of (node.id.properties ?? [])) {
111
+ const memberName = prop?.key?.value;
112
+ let localNode = prop?.type === 'KeyValuePatternProperty' ? prop.value : prop?.key;
113
+ if (localNode?.type === 'AssignmentPattern')
114
+ localNode = localNode.left;
115
+ const localName = localNode?.type === 'Identifier' ? localNode.value : undefined;
116
+ if (!memberName || !localName)
117
+ continue;
118
+ const vals = objMembers?.[memberName] ?? (map?.[memberName] !== undefined ? [map[memberName]] : undefined);
119
+ if (vals?.length)
120
+ this.variableTable.set(localName, vals);
121
+ }
122
+ return;
123
+ }
103
124
  // only handle simple identifier bindings like `const x = ...`
104
125
  if (node.id.type !== 'Identifier')
105
126
  return;
@@ -175,6 +196,36 @@ class ExpressionResolver {
175
196
  this.sharedVariableTable.set(name, vals);
176
197
  return;
177
198
  }
199
+ // Array of object literals — `const UNITS = [{ unit: 'day' }, …] as const`.
200
+ // Collect each property's possible values so `UNITS.map(({ unit }) => …)`
201
+ // and `for (const { unit } of UNITS)` can bind the destructured names.
202
+ const members = {};
203
+ for (const elem of unwrappedInit.elements) {
204
+ let objExpr = elem?.expression;
205
+ while (objExpr?.type === 'TsConstAssertion' ||
206
+ objExpr?.type === 'TsAsExpression' ||
207
+ objExpr?.type === 'TsSatisfiesExpression')
208
+ objExpr = objExpr.expression;
209
+ if (objExpr?.type !== 'ObjectExpression')
210
+ continue;
211
+ for (const p of (objExpr.properties ?? [])) {
212
+ if (p?.type !== 'KeyValueProperty')
213
+ continue;
214
+ const keyName = p.key?.type === 'Identifier' || p.key?.type === 'StringLiteral' ? p.key.value : undefined;
215
+ if (!keyName)
216
+ continue;
217
+ const resolved = this.resolvePossibleStringValuesFromExpression(p.value);
218
+ if (resolved.length !== 1)
219
+ continue;
220
+ const list = members[keyName] ??= [];
221
+ if (!list.includes(resolved[0]))
222
+ list.push(resolved[0]);
223
+ }
224
+ }
225
+ if (Object.keys(members).length > 0) {
226
+ this.arrayElementMembers.set(name, members);
227
+ return;
228
+ }
178
229
  }
179
230
  // For other initializers, try to resolve to one-or-more strings.
180
231
  // Also check the type annotation: when the type resolves to a broader set
@@ -97,7 +97,7 @@ async function runInstrumenter(config, options, logger$1 = new logger.ConsoleLog
97
97
  for (const candidate of candidates) {
98
98
  const { action } = await inquirer__default.default.prompt([
99
99
  {
100
- type: 'list',
100
+ type: 'select',
101
101
  name: 'action',
102
102
  message: `Translate: "${candidate.content}" (${candidate.line}:${candidate.column})?`,
103
103
  choices: [
package/dist/esm/cli.js CHANGED
@@ -31,7 +31,7 @@ const program = new Command();
31
31
  program
32
32
  .name('i18next-cli')
33
33
  .description('A unified, high-performance i18next CLI.')
34
- .version('1.72.0'); // This string is replaced with the actual version at build time by rollup
34
+ .version('1.72.2'); // This string is replaced with the actual version at build time by rollup
35
35
  // new: global config override option
36
36
  program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
37
37
  program
@@ -446,6 +446,9 @@ class ASTVisitors {
446
446
  arrayCallbackCleanup = this.tryBindObjectArrayCallback(node);
447
447
  }
448
448
  }
449
+ else if (node.type === 'ForOfStatement') {
450
+ arrayCallbackCleanup = this.tryBindForOfLoop(node);
451
+ }
449
452
  // --- RECURSION ---
450
453
  // Recurse into the children of the current node
451
454
  for (const key in node) {
@@ -833,6 +836,63 @@ class ASTVisitors {
833
836
  return undefined;
834
837
  }
835
838
  }
839
+ /**
840
+ * If `node` is `for (const unit of KNOWN_ARRAY)` — or the destructured
841
+ * `for (const { unit } of KNOWN_ARRAY_OF_OBJECTS)` — binds the loop variable
842
+ * for the duration of the loop body, the same way `.map()`/`.forEach()`
843
+ * callback parameters are bound.
844
+ *
845
+ * Returns a cleanup function, or undefined when nothing was bound.
846
+ */
847
+ tryBindForOfLoop(node) {
848
+ try {
849
+ if (node.right?.type !== 'Identifier')
850
+ return undefined;
851
+ const source = node.right.value;
852
+ const left = node.left;
853
+ const pat = left?.type === 'VariableDeclaration' ? left.declarations?.[0]?.id : left;
854
+ // `for (const unit of ['day', 'hour'] as const)`
855
+ if (pat?.type === 'Identifier') {
856
+ const values = this.expressionResolver.getVariableValues(source);
857
+ if (values?.length) {
858
+ this.expressionResolver.setTemporaryVariable(pat.value, values);
859
+ return () => this.expressionResolver.deleteTemporaryVariable(pat.value);
860
+ }
861
+ // `for (const item of items)` so `item.unit` resolves
862
+ const members = this.expressionResolver.getArrayElementMembers(source);
863
+ if (members) {
864
+ this.expressionResolver.setTemporaryObjectVariable(pat.value, members);
865
+ return () => this.expressionResolver.deleteTemporaryObjectVariable(pat.value);
866
+ }
867
+ return undefined;
868
+ }
869
+ // `for (const { unit } of [{ unit: 'day' }, …] as const)`
870
+ if (pat?.type === 'ObjectPattern') {
871
+ const members = this.expressionResolver.getArrayElementMembers(source);
872
+ if (!members)
873
+ return undefined;
874
+ const bound = [];
875
+ for (const prop of (pat.properties ?? [])) {
876
+ const memberName = prop?.key?.value;
877
+ let localNode = prop?.type === 'KeyValuePatternProperty' ? prop.value : prop?.key;
878
+ if (localNode?.type === 'AssignmentPattern')
879
+ localNode = localNode.left;
880
+ const localName = localNode?.type === 'Identifier' ? localNode.value : undefined;
881
+ if (!memberName || !localName || !members[memberName])
882
+ continue;
883
+ this.expressionResolver.setTemporaryVariable(localName, members[memberName]);
884
+ bound.push(localName);
885
+ }
886
+ if (bound.length === 0)
887
+ return undefined;
888
+ return () => bound.forEach(name => this.expressionResolver.deleteTemporaryVariable(name));
889
+ }
890
+ return undefined;
891
+ }
892
+ catch {
893
+ return undefined;
894
+ }
895
+ }
836
896
  /**
837
897
  * If `node` is `items.map(cb)` (or forEach/flatMap/…) where `items` is typed
838
898
  * as an array of an object shape (`items: IProps[]`), binds the callback
@@ -98,6 +98,27 @@ class ExpressionResolver {
98
98
  }
99
99
  return;
100
100
  }
101
+ // ── ObjectPattern id: `const { unit } = rate` ───────────────────────────
102
+ // Bind each destructured local to the source object's property values.
103
+ if (node.id.type === 'ObjectPattern' && node.init?.type === 'Identifier') {
104
+ const map = this.getObjectMap(node.init.value);
105
+ const objMembers = this.temporaryObjectVariables.get(node.init.value);
106
+ if (!map && !objMembers)
107
+ return;
108
+ for (const prop of (node.id.properties ?? [])) {
109
+ const memberName = prop?.key?.value;
110
+ let localNode = prop?.type === 'KeyValuePatternProperty' ? prop.value : prop?.key;
111
+ if (localNode?.type === 'AssignmentPattern')
112
+ localNode = localNode.left;
113
+ const localName = localNode?.type === 'Identifier' ? localNode.value : undefined;
114
+ if (!memberName || !localName)
115
+ continue;
116
+ const vals = objMembers?.[memberName] ?? (map?.[memberName] !== undefined ? [map[memberName]] : undefined);
117
+ if (vals?.length)
118
+ this.variableTable.set(localName, vals);
119
+ }
120
+ return;
121
+ }
101
122
  // only handle simple identifier bindings like `const x = ...`
102
123
  if (node.id.type !== 'Identifier')
103
124
  return;
@@ -173,6 +194,36 @@ class ExpressionResolver {
173
194
  this.sharedVariableTable.set(name, vals);
174
195
  return;
175
196
  }
197
+ // Array of object literals — `const UNITS = [{ unit: 'day' }, …] as const`.
198
+ // Collect each property's possible values so `UNITS.map(({ unit }) => …)`
199
+ // and `for (const { unit } of UNITS)` can bind the destructured names.
200
+ const members = {};
201
+ for (const elem of unwrappedInit.elements) {
202
+ let objExpr = elem?.expression;
203
+ while (objExpr?.type === 'TsConstAssertion' ||
204
+ objExpr?.type === 'TsAsExpression' ||
205
+ objExpr?.type === 'TsSatisfiesExpression')
206
+ objExpr = objExpr.expression;
207
+ if (objExpr?.type !== 'ObjectExpression')
208
+ continue;
209
+ for (const p of (objExpr.properties ?? [])) {
210
+ if (p?.type !== 'KeyValueProperty')
211
+ continue;
212
+ const keyName = p.key?.type === 'Identifier' || p.key?.type === 'StringLiteral' ? p.key.value : undefined;
213
+ if (!keyName)
214
+ continue;
215
+ const resolved = this.resolvePossibleStringValuesFromExpression(p.value);
216
+ if (resolved.length !== 1)
217
+ continue;
218
+ const list = members[keyName] ??= [];
219
+ if (!list.includes(resolved[0]))
220
+ list.push(resolved[0]);
221
+ }
222
+ }
223
+ if (Object.keys(members).length > 0) {
224
+ this.arrayElementMembers.set(name, members);
225
+ return;
226
+ }
176
227
  }
177
228
  // For other initializers, try to resolve to one-or-more strings.
178
229
  // Also check the type annotation: when the type resolves to a broader set
@@ -91,7 +91,7 @@ async function runInstrumenter(config, options, logger = new ConsoleLogger()) {
91
91
  for (const candidate of candidates) {
92
92
  const { action } = await inquirer.prompt([
93
93
  {
94
- type: 'list',
94
+ type: 'select',
95
95
  name: 'action',
96
96
  message: `Translate: "${candidate.content}" (${candidate.line}:${candidate.column})?`,
97
97
  choices: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18next-cli",
3
- "version": "1.72.0",
3
+ "version": "1.72.2",
4
4
  "description": "A unified, high-performance i18next CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -108,6 +108,15 @@ export declare class ASTVisitors {
108
108
  * `Object.values(MAP).map/forEach(v => ...)` → param bound to MAP's values
109
109
  */
110
110
  private tryGetArrayIterationCallbackInfo;
111
+ /**
112
+ * If `node` is `for (const unit of KNOWN_ARRAY)` — or the destructured
113
+ * `for (const { unit } of KNOWN_ARRAY_OF_OBJECTS)` — binds the loop variable
114
+ * for the duration of the loop body, the same way `.map()`/`.forEach()`
115
+ * callback parameters are bound.
116
+ *
117
+ * Returns a cleanup function, or undefined when nothing was bound.
118
+ */
119
+ private tryBindForOfLoop;
111
120
  /**
112
121
  * If `node` is `items.map(cb)` (or forEach/flatMap/…) where `items` is typed
113
122
  * as an array of an object shape (`items: IProps[]`), binds the callback
@@ -1 +1 @@
1
- {"version":3,"file":"ast-visitors.d.ts","sourceRoot":"","sources":["../../../src/extractor/core/ast-visitors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAoBtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,KAAK,CAAiB;IAE9B,IAAW,UAAU,gBAEpB;IAED,SAAgB,YAAY,EAAE,YAAY,CAAA;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAa;IAEhC;;;;;;OAMG;gBAED,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,eAAe,EACvB,kBAAkB,CAAC,EAAE,kBAAkB;IAoCzC;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqDzB;;;;;OAKG;IACI,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAUjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,IAAI;IAsaZ;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiH1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,mFAAmF;IACnF,OAAO,CAAC,oBAAoB;IAoB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IAgDlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;;;;;;OAQG;IACI,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI5D;;OAEG;IACI,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxD;;;;;;OAMG;IACI,cAAc,IAAK,MAAM;IAIhC;;OAEG;IACI,cAAc,IAAK,MAAM;CAGjC"}
1
+ {"version":3,"file":"ast-visitors.d.ts","sourceRoot":"","sources":["../../../src/extractor/core/ast-visitors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAoBtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,KAAK,CAAiB;IAE9B,IAAW,UAAU,gBAEpB;IAED,SAAgB,YAAY,EAAE,YAAY,CAAA;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAa;IAEhC;;;;;;OAMG;gBAED,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,eAAe,EACvB,kBAAkB,CAAC,EAAE,kBAAkB;IAoCzC;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqDzB;;;;;OAKG;IACI,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAUjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,IAAI;IAwaZ;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiH1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,mFAAmF;IACnF,OAAO,CAAC,oBAAoB;IAoB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IAgDlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;;;;;;OAQG;IACI,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI5D;;OAEG;IACI,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxD;;;;;;OAMG;IACI,cAAc,IAAK,MAAM;IAIhC;;OAEG;IACI,cAAc,IAAK,MAAM;CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"expression-resolver.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/expression-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-resolver.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/expression-resolver.ts"],"names":[],"mappings":"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"}