i18next-cli 1.56.10 → 1.56.12
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/README.md +57 -0
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/extractor/parsers/call-expression-handler.js +84 -7
- package/dist/cjs/extractor/parsers/scope-manager.js +57 -42
- package/dist/esm/cli.js +1 -1
- package/dist/esm/extractor/parsers/call-expression-handler.js +84 -7
- package/dist/esm/extractor/parsers/scope-manager.js +57 -42
- package/package.json +2 -2
- package/types/extractor/parsers/call-expression-handler.d.ts +25 -0
- package/types/extractor/parsers/call-expression-handler.d.ts.map +1 -1
- package/types/extractor/parsers/scope-manager.d.ts +14 -0
- package/types/extractor/parsers/scope-manager.d.ts.map +1 -1
- package/types/types.d.ts +24 -2
- package/types/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -1386,6 +1386,63 @@ const fixedT = getFixedT('en', 'namespace');
|
|
|
1386
1386
|
fixedT('key');
|
|
1387
1387
|
```
|
|
1388
1388
|
|
|
1389
|
+
### Selector API
|
|
1390
|
+
|
|
1391
|
+
The extractor handles the type-safe Selector API and mirrors the runtime
|
|
1392
|
+
namespace-routing rule from i18next v25.8.19. With a single-namespace hook,
|
|
1393
|
+
selector paths are extracted into the bound namespace as-is:
|
|
1394
|
+
|
|
1395
|
+
```ts
|
|
1396
|
+
const { t } = useTranslation('common');
|
|
1397
|
+
|
|
1398
|
+
t($ => $.button.save); // → common.json: button.save
|
|
1399
|
+
t($ => $.button.save, { ns: 'auth' }); // → auth.json: button.save
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
When the hook is called with a multi-namespace array, a leading path segment
|
|
1403
|
+
that matches a **secondary** namespace is treated as a namespace prefix and
|
|
1404
|
+
the rest of the path is routed to that namespace's file. The primary
|
|
1405
|
+
namespace (the array's first entry) is **never** rewritten — its keys are
|
|
1406
|
+
exposed flat on the selector proxy:
|
|
1407
|
+
|
|
1408
|
+
```ts
|
|
1409
|
+
const { t } = useTranslation(['auth', 'validation']);
|
|
1410
|
+
|
|
1411
|
+
t($ => $.login['Welcome Back!']); // → auth.json: login.Welcome Back!
|
|
1412
|
+
t($ => $.validation.email['Required']); // → validation.json: email.Required
|
|
1413
|
+
t($ => $.email['Required'], { ns: 'validation'}); // → validation.json: email.Required
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
This matches the behavior of `i18next/src/selector.js` exactly: paths whose
|
|
1417
|
+
first segment is the primary namespace, or doesn't appear in the hook's
|
|
1418
|
+
namespace list at all, are joined with the configured `keySeparator` and
|
|
1419
|
+
routed to the primary. Secondary-prefixed paths are joined as
|
|
1420
|
+
`<ns><nsSeparator><rest>` so the standard `ns:key` routing places them in
|
|
1421
|
+
the correct file.
|
|
1422
|
+
|
|
1423
|
+
#### Strict mode
|
|
1424
|
+
|
|
1425
|
+
Set `types.enableSelector: 'strict'` (requires `i18next` ≥ 26.1.0 with
|
|
1426
|
+
the matching runtime option) to drop the flattened-primary form entirely.
|
|
1427
|
+
Every selector path must lead with an explicit namespace segment, and the
|
|
1428
|
+
extractor rewrites leading segments uniformly — primary, secondary,
|
|
1429
|
+
single- or multi-ns hooks all behave the same:
|
|
1430
|
+
|
|
1431
|
+
```ts
|
|
1432
|
+
// useTranslation('common');
|
|
1433
|
+
t($ => $.common.button.save); // → common.json: button.save
|
|
1434
|
+
|
|
1435
|
+
// useTranslation(['auth', 'validation']);
|
|
1436
|
+
t($ => $.auth.login['Welcome Back!']); // → auth.json: login.Welcome Back!
|
|
1437
|
+
t($ => $.validation.email['Required']); // → validation.json: email.Required
|
|
1438
|
+
```
|
|
1439
|
+
|
|
1440
|
+
Strict mode is opt-in and incompatible with the [#2405](https://github.com/i18next/i18next/issues/2405)
|
|
1441
|
+
pattern (a key inside a namespace whose name matches a sibling namespace).
|
|
1442
|
+
If you have keys like `Resources['config'].common.name` while `common` is
|
|
1443
|
+
also a sibling namespace, leave strict mode off — the rewrite would route
|
|
1444
|
+
that key into the wrong file.
|
|
1445
|
+
|
|
1389
1446
|
## Programmatic Usage
|
|
1390
1447
|
|
|
1391
1448
|
In addition to the CLI commands, `i18next-cli` can be used programmatically in your build scripts, Gulp tasks, or any Node.js application:
|
package/dist/cjs/cli.js
CHANGED
|
@@ -32,7 +32,7 @@ const program = new commander.Command();
|
|
|
32
32
|
program
|
|
33
33
|
.name('i18next-cli')
|
|
34
34
|
.description('A unified, high-performance i18next CLI.')
|
|
35
|
-
.version('1.56.
|
|
35
|
+
.version('1.56.12'); // This string is replaced with the actual version at build time by rollup
|
|
36
36
|
// new: global config override option
|
|
37
37
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
38
38
|
program
|
|
@@ -107,7 +107,7 @@ class CallExpressionHandler {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
const { keysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0);
|
|
110
|
+
const { keysToProcess, originalKeysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0, scopeInfo);
|
|
111
111
|
if (keysToProcess.length === 0)
|
|
112
112
|
return;
|
|
113
113
|
let isOrdinalByKey = false;
|
|
@@ -172,7 +172,11 @@ class CallExpressionHandler {
|
|
|
172
172
|
const explicitPluralForVariants = Boolean(explicitPluralDefaultsInOptions || (typeof finalDefaultValue === 'string' && !containsCountPlaceholder(finalDefaultValue)));
|
|
173
173
|
// Loop through each key found (could be one or more) and process it
|
|
174
174
|
for (let i = 0; i < keysToProcess.length; i++) {
|
|
175
|
-
|
|
175
|
+
// For the dv heuristic we want the user-typed shape, not the post-rewrite
|
|
176
|
+
// form: a synthetic `validation:email` (rewritten from a `$.validation.email`
|
|
177
|
+
// selector) shouldn't leak into the default value. originalKeysToProcess
|
|
178
|
+
// is the pre-rewrite path; for non-selector calls it's the same as keysToProcess.
|
|
179
|
+
const originalKey = originalKeysToProcess[i];
|
|
176
180
|
let key = keysToProcess[i];
|
|
177
181
|
let ns;
|
|
178
182
|
// Determine namespace (explicit ns > ns:key > scope ns > default)
|
|
@@ -555,32 +559,105 @@ class CallExpressionHandler {
|
|
|
555
559
|
* @param argIndex - The index of the argument to process
|
|
556
560
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
557
561
|
*/
|
|
558
|
-
handleCallExpressionArgument(node, argIndex) {
|
|
562
|
+
handleCallExpressionArgument(node, argIndex, scopeInfo) {
|
|
559
563
|
const firstArg = node.arguments[argIndex].expression;
|
|
560
564
|
const keysToProcess = [];
|
|
565
|
+
// Mirror of keysToProcess BEFORE selector-ns rewriting. For non-selector
|
|
566
|
+
// calls and selector calls that don't trigger a rewrite, both arrays hold
|
|
567
|
+
// identical strings. Used by the default-value heuristic so a synthetic
|
|
568
|
+
// `ns:key` from selector rewriting doesn't surface as the dv.
|
|
569
|
+
const originalKeysToProcess = [];
|
|
561
570
|
let isSelectorAPI = false;
|
|
562
571
|
if (firstArg.type === 'ArrowFunctionExpression') {
|
|
563
572
|
const keys = this.extractKeysFromSelector(firstArg);
|
|
564
573
|
if (keys.length > 0) {
|
|
565
|
-
|
|
574
|
+
for (const k of keys) {
|
|
575
|
+
originalKeysToProcess.push(k);
|
|
576
|
+
keysToProcess.push(this.applySelectorNsRewrite(k, scopeInfo));
|
|
577
|
+
}
|
|
566
578
|
isSelectorAPI = true;
|
|
567
579
|
}
|
|
568
580
|
}
|
|
569
581
|
else if (firstArg.type === 'ArrayExpression') {
|
|
570
582
|
for (const element of firstArg.elements) {
|
|
571
583
|
if (element?.expression) {
|
|
572
|
-
|
|
584
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(element.expression);
|
|
585
|
+
keysToProcess.push(...resolved);
|
|
586
|
+
originalKeysToProcess.push(...resolved);
|
|
573
587
|
}
|
|
574
588
|
}
|
|
575
589
|
}
|
|
576
590
|
else {
|
|
577
|
-
|
|
591
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(firstArg);
|
|
592
|
+
keysToProcess.push(...resolved);
|
|
593
|
+
originalKeysToProcess.push(...resolved);
|
|
594
|
+
}
|
|
595
|
+
// Filter empties on both arrays in lockstep to keep them index-aligned.
|
|
596
|
+
const filteredKeys = [];
|
|
597
|
+
const filteredOriginals = [];
|
|
598
|
+
for (let i = 0; i < keysToProcess.length; i++) {
|
|
599
|
+
if (keysToProcess[i]) {
|
|
600
|
+
filteredKeys.push(keysToProcess[i]);
|
|
601
|
+
filteredOriginals.push(originalKeysToProcess[i]);
|
|
602
|
+
}
|
|
578
603
|
}
|
|
579
604
|
return {
|
|
580
|
-
keysToProcess:
|
|
605
|
+
keysToProcess: filteredKeys,
|
|
606
|
+
originalKeysToProcess: filteredOriginals,
|
|
581
607
|
isSelectorAPI,
|
|
582
608
|
};
|
|
583
609
|
}
|
|
610
|
+
/**
|
|
611
|
+
* Mirror i18next's runtime selector rule (v25.8.19 default, or
|
|
612
|
+
* `enableSelector: 'strict'` when `types.enableSelector === 'strict'`).
|
|
613
|
+
*
|
|
614
|
+
* **Default mode** — rewrite only when the hook was called with a multi-element
|
|
615
|
+
* namespace array and the path's first segment matches a *secondary* namespace.
|
|
616
|
+
* The primary is intentionally not rewritten (preserves #2405): its keys are
|
|
617
|
+
* exposed flat on `$`, so `$.primary.foo` means a literal sub-key.
|
|
618
|
+
*
|
|
619
|
+
* **Strict mode** — every namespace (primary included) is exposed only under
|
|
620
|
+
* its own key on `$`. So a leading segment matching *any* namespace in the
|
|
621
|
+
* scope's list — primary or secondary, single-ns or multi-ns — is rewritten.
|
|
622
|
+
* Mirrors `i18next/src/selector.js` strict branch.
|
|
623
|
+
*
|
|
624
|
+
* In strict mode we also accept a single-ns scope, falling back to
|
|
625
|
+
* `[scopeInfo.defaultNs]` when the scope didn't capture an explicit array
|
|
626
|
+
* (e.g. `useTranslation('only')`).
|
|
627
|
+
*
|
|
628
|
+
* Falls through to the input string when:
|
|
629
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
630
|
+
* - scope has no namespaces info,
|
|
631
|
+
* - first segment isn't in the scope's namespaces list, or
|
|
632
|
+
* - separators are configured off.
|
|
633
|
+
*/
|
|
634
|
+
applySelectorNsRewrite(key, scopeInfo) {
|
|
635
|
+
const strict = this.config.types?.enableSelector === 'strict';
|
|
636
|
+
// Resolve the effective namespace list for the rule:
|
|
637
|
+
// - default mode: only the explicitly-captured `namespaces` array, length ≥ 2
|
|
638
|
+
// - strict mode: same array if present; otherwise synthesize from `defaultNs`
|
|
639
|
+
const nsCaptured = scopeInfo?.namespaces;
|
|
640
|
+
const nsList = strict
|
|
641
|
+
? (nsCaptured ?? (scopeInfo?.defaultNs ? [scopeInfo.defaultNs] : undefined))
|
|
642
|
+
: nsCaptured;
|
|
643
|
+
if (!nsList || nsList.length < (strict ? 1 : 2))
|
|
644
|
+
return key;
|
|
645
|
+
const keySeparator = this.config.extract.keySeparator;
|
|
646
|
+
const joiner = typeof keySeparator === 'string' ? keySeparator : '.';
|
|
647
|
+
const nsSeparator = this.config.extract.nsSeparator ?? ':';
|
|
648
|
+
if (keySeparator === false || !nsSeparator)
|
|
649
|
+
return key;
|
|
650
|
+
const firstSepAt = key.indexOf(joiner);
|
|
651
|
+
if (firstSepAt < 0)
|
|
652
|
+
return key;
|
|
653
|
+
const head = key.slice(0, firstSepAt);
|
|
654
|
+
// Default mode excludes the primary; strict mode includes it.
|
|
655
|
+
if (!strict && head === nsList[0])
|
|
656
|
+
return key;
|
|
657
|
+
if (!nsList.includes(head))
|
|
658
|
+
return key;
|
|
659
|
+
return `${head}${nsSeparator}${key.slice(firstSepAt + joiner.length)}`;
|
|
660
|
+
}
|
|
584
661
|
/**
|
|
585
662
|
* Extracts translation key(s) from selector API arrow function.
|
|
586
663
|
*
|
|
@@ -380,25 +380,9 @@ class ScopeManager {
|
|
|
380
380
|
else {
|
|
381
381
|
// Position-driven extraction: respect hookConfig positions (nsArg/keyPrefixArg).
|
|
382
382
|
if (nsArgIndex !== -1) {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
else if (nsNode?.type === 'Identifier') {
|
|
388
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
389
|
-
}
|
|
390
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
391
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
392
|
-
}
|
|
393
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
394
|
-
const first = nsNode.elements[0]?.expression;
|
|
395
|
-
if (first?.type === 'StringLiteral') {
|
|
396
|
-
defaultNs = first.value;
|
|
397
|
-
}
|
|
398
|
-
else if (first?.type === 'Identifier') {
|
|
399
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
383
|
+
// Comment scope only cares about the primary ns — selector multi-ns
|
|
384
|
+
// rewriting is handled by the runtime extractor scope, not comments.
|
|
385
|
+
defaultNs = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression).defaultNs;
|
|
402
386
|
}
|
|
403
387
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
404
388
|
}
|
|
@@ -448,6 +432,7 @@ class ScopeManager {
|
|
|
448
432
|
const nsArgIndex = hookConfig.nsArg ?? 0;
|
|
449
433
|
const kpArgIndex = hookConfig.keyPrefixArg ?? 1;
|
|
450
434
|
let defaultNs;
|
|
435
|
+
let namespaces;
|
|
451
436
|
let keyPrefix;
|
|
452
437
|
// Early detect useTranslation(lng, ns) for built-in hook name only
|
|
453
438
|
const first = callExpr.arguments?.[0]?.expression;
|
|
@@ -465,25 +450,9 @@ class ScopeManager {
|
|
|
465
450
|
}
|
|
466
451
|
else {
|
|
467
452
|
if (nsArgIndex !== -1) {
|
|
468
|
-
const
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
}
|
|
472
|
-
else if (nsNode?.type === 'Identifier') {
|
|
473
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
474
|
-
}
|
|
475
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
476
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
477
|
-
}
|
|
478
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
479
|
-
const first = nsNode.elements[0]?.expression;
|
|
480
|
-
if (first?.type === 'StringLiteral') {
|
|
481
|
-
defaultNs = first.value;
|
|
482
|
-
}
|
|
483
|
-
else if (first?.type === 'Identifier') {
|
|
484
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
453
|
+
const resolved = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression);
|
|
454
|
+
defaultNs = resolved.defaultNs;
|
|
455
|
+
namespaces = resolved.namespaces;
|
|
487
456
|
}
|
|
488
457
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
489
458
|
}
|
|
@@ -505,24 +474,25 @@ class ScopeManager {
|
|
|
505
474
|
keyPrefix = tpl.quasis?.[0]?.cooked ?? undefined;
|
|
506
475
|
}
|
|
507
476
|
}
|
|
477
|
+
const info = { defaultNs, namespaces, keyPrefix };
|
|
508
478
|
// Attach scope info to all destructured properties (custom functions, t, getFixedT, etc.)
|
|
509
479
|
if (node.id.type === 'ObjectPattern') {
|
|
510
480
|
for (const prop of node.id.properties) {
|
|
511
481
|
if (prop.type === 'AssignmentPatternProperty' && prop.key.type === 'Identifier') {
|
|
512
|
-
this.setVarInScope(prop.key.value,
|
|
482
|
+
this.setVarInScope(prop.key.value, info);
|
|
513
483
|
}
|
|
514
484
|
if (prop.type === 'KeyValuePatternProperty' && prop.value.type === 'Identifier') {
|
|
515
|
-
this.setVarInScope(prop.value.value,
|
|
485
|
+
this.setVarInScope(prop.value.value, info);
|
|
516
486
|
}
|
|
517
487
|
}
|
|
518
488
|
}
|
|
519
489
|
else if (node.id.type === 'Identifier') {
|
|
520
|
-
this.setVarInScope(node.id.value,
|
|
490
|
+
this.setVarInScope(node.id.value, info);
|
|
521
491
|
}
|
|
522
492
|
else if (node.id.type === 'ArrayPattern') {
|
|
523
493
|
const firstElement = node.id.elements[0];
|
|
524
494
|
if (firstElement?.type === 'Identifier') {
|
|
525
|
-
this.setVarInScope(firstElement.value,
|
|
495
|
+
this.setVarInScope(firstElement.value, info);
|
|
526
496
|
}
|
|
527
497
|
}
|
|
528
498
|
}
|
|
@@ -558,6 +528,51 @@ class ScopeManager {
|
|
|
558
528
|
* without interpolation. Returns undefined when the expression cannot be
|
|
559
529
|
* resolved statically.
|
|
560
530
|
*/
|
|
531
|
+
/**
|
|
532
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
533
|
+
*
|
|
534
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
535
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
536
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
537
|
+
*
|
|
538
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
539
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
540
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
541
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
542
|
+
* either single form behaves identically downstream.
|
|
543
|
+
*/
|
|
544
|
+
resolveNsArg(nsNode) {
|
|
545
|
+
if (!nsNode)
|
|
546
|
+
return {};
|
|
547
|
+
if (nsNode.type === 'StringLiteral')
|
|
548
|
+
return { defaultNs: nsNode.value };
|
|
549
|
+
if (nsNode.type === 'Identifier')
|
|
550
|
+
return { defaultNs: this.resolveSimpleStringIdentifier(nsNode.value) };
|
|
551
|
+
if (nsNode.type === 'MemberExpression')
|
|
552
|
+
return { defaultNs: this.resolveSimpleMemberExpression(nsNode) };
|
|
553
|
+
if (nsNode.type === 'ArrayExpression') {
|
|
554
|
+
const namespaces = [];
|
|
555
|
+
for (const el of nsNode.elements) {
|
|
556
|
+
const expr = el?.expression;
|
|
557
|
+
if (!expr)
|
|
558
|
+
continue;
|
|
559
|
+
if (expr.type === 'StringLiteral')
|
|
560
|
+
namespaces.push(expr.value);
|
|
561
|
+
else if (expr.type === 'Identifier') {
|
|
562
|
+
const resolved = this.resolveSimpleStringIdentifier(expr.value);
|
|
563
|
+
if (resolved !== undefined)
|
|
564
|
+
namespaces.push(resolved);
|
|
565
|
+
}
|
|
566
|
+
else if (expr.type === 'MemberExpression') {
|
|
567
|
+
const resolved = this.resolveSimpleMemberExpression(expr);
|
|
568
|
+
if (resolved !== undefined)
|
|
569
|
+
namespaces.push(resolved);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
return { defaultNs: namespaces[0], namespaces: namespaces.length > 0 ? namespaces : undefined };
|
|
573
|
+
}
|
|
574
|
+
return {};
|
|
575
|
+
}
|
|
561
576
|
resolveStringArg(node) {
|
|
562
577
|
if (!node)
|
|
563
578
|
return undefined;
|
package/dist/esm/cli.js
CHANGED
|
@@ -30,7 +30,7 @@ const program = new Command();
|
|
|
30
30
|
program
|
|
31
31
|
.name('i18next-cli')
|
|
32
32
|
.description('A unified, high-performance i18next CLI.')
|
|
33
|
-
.version('1.56.
|
|
33
|
+
.version('1.56.12'); // This string is replaced with the actual version at build time by rollup
|
|
34
34
|
// new: global config override option
|
|
35
35
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
36
36
|
program
|
|
@@ -105,7 +105,7 @@ class CallExpressionHandler {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
const { keysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0);
|
|
108
|
+
const { keysToProcess, originalKeysToProcess, isSelectorAPI } = this.handleCallExpressionArgument(node, 0, scopeInfo);
|
|
109
109
|
if (keysToProcess.length === 0)
|
|
110
110
|
return;
|
|
111
111
|
let isOrdinalByKey = false;
|
|
@@ -170,7 +170,11 @@ class CallExpressionHandler {
|
|
|
170
170
|
const explicitPluralForVariants = Boolean(explicitPluralDefaultsInOptions || (typeof finalDefaultValue === 'string' && !containsCountPlaceholder(finalDefaultValue)));
|
|
171
171
|
// Loop through each key found (could be one or more) and process it
|
|
172
172
|
for (let i = 0; i < keysToProcess.length; i++) {
|
|
173
|
-
|
|
173
|
+
// For the dv heuristic we want the user-typed shape, not the post-rewrite
|
|
174
|
+
// form: a synthetic `validation:email` (rewritten from a `$.validation.email`
|
|
175
|
+
// selector) shouldn't leak into the default value. originalKeysToProcess
|
|
176
|
+
// is the pre-rewrite path; for non-selector calls it's the same as keysToProcess.
|
|
177
|
+
const originalKey = originalKeysToProcess[i];
|
|
174
178
|
let key = keysToProcess[i];
|
|
175
179
|
let ns;
|
|
176
180
|
// Determine namespace (explicit ns > ns:key > scope ns > default)
|
|
@@ -553,32 +557,105 @@ class CallExpressionHandler {
|
|
|
553
557
|
* @param argIndex - The index of the argument to process
|
|
554
558
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
555
559
|
*/
|
|
556
|
-
handleCallExpressionArgument(node, argIndex) {
|
|
560
|
+
handleCallExpressionArgument(node, argIndex, scopeInfo) {
|
|
557
561
|
const firstArg = node.arguments[argIndex].expression;
|
|
558
562
|
const keysToProcess = [];
|
|
563
|
+
// Mirror of keysToProcess BEFORE selector-ns rewriting. For non-selector
|
|
564
|
+
// calls and selector calls that don't trigger a rewrite, both arrays hold
|
|
565
|
+
// identical strings. Used by the default-value heuristic so a synthetic
|
|
566
|
+
// `ns:key` from selector rewriting doesn't surface as the dv.
|
|
567
|
+
const originalKeysToProcess = [];
|
|
559
568
|
let isSelectorAPI = false;
|
|
560
569
|
if (firstArg.type === 'ArrowFunctionExpression') {
|
|
561
570
|
const keys = this.extractKeysFromSelector(firstArg);
|
|
562
571
|
if (keys.length > 0) {
|
|
563
|
-
|
|
572
|
+
for (const k of keys) {
|
|
573
|
+
originalKeysToProcess.push(k);
|
|
574
|
+
keysToProcess.push(this.applySelectorNsRewrite(k, scopeInfo));
|
|
575
|
+
}
|
|
564
576
|
isSelectorAPI = true;
|
|
565
577
|
}
|
|
566
578
|
}
|
|
567
579
|
else if (firstArg.type === 'ArrayExpression') {
|
|
568
580
|
for (const element of firstArg.elements) {
|
|
569
581
|
if (element?.expression) {
|
|
570
|
-
|
|
582
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(element.expression);
|
|
583
|
+
keysToProcess.push(...resolved);
|
|
584
|
+
originalKeysToProcess.push(...resolved);
|
|
571
585
|
}
|
|
572
586
|
}
|
|
573
587
|
}
|
|
574
588
|
else {
|
|
575
|
-
|
|
589
|
+
const resolved = this.expressionResolver.resolvePossibleKeyStringValues(firstArg);
|
|
590
|
+
keysToProcess.push(...resolved);
|
|
591
|
+
originalKeysToProcess.push(...resolved);
|
|
592
|
+
}
|
|
593
|
+
// Filter empties on both arrays in lockstep to keep them index-aligned.
|
|
594
|
+
const filteredKeys = [];
|
|
595
|
+
const filteredOriginals = [];
|
|
596
|
+
for (let i = 0; i < keysToProcess.length; i++) {
|
|
597
|
+
if (keysToProcess[i]) {
|
|
598
|
+
filteredKeys.push(keysToProcess[i]);
|
|
599
|
+
filteredOriginals.push(originalKeysToProcess[i]);
|
|
600
|
+
}
|
|
576
601
|
}
|
|
577
602
|
return {
|
|
578
|
-
keysToProcess:
|
|
603
|
+
keysToProcess: filteredKeys,
|
|
604
|
+
originalKeysToProcess: filteredOriginals,
|
|
579
605
|
isSelectorAPI,
|
|
580
606
|
};
|
|
581
607
|
}
|
|
608
|
+
/**
|
|
609
|
+
* Mirror i18next's runtime selector rule (v25.8.19 default, or
|
|
610
|
+
* `enableSelector: 'strict'` when `types.enableSelector === 'strict'`).
|
|
611
|
+
*
|
|
612
|
+
* **Default mode** — rewrite only when the hook was called with a multi-element
|
|
613
|
+
* namespace array and the path's first segment matches a *secondary* namespace.
|
|
614
|
+
* The primary is intentionally not rewritten (preserves #2405): its keys are
|
|
615
|
+
* exposed flat on `$`, so `$.primary.foo` means a literal sub-key.
|
|
616
|
+
*
|
|
617
|
+
* **Strict mode** — every namespace (primary included) is exposed only under
|
|
618
|
+
* its own key on `$`. So a leading segment matching *any* namespace in the
|
|
619
|
+
* scope's list — primary or secondary, single-ns or multi-ns — is rewritten.
|
|
620
|
+
* Mirrors `i18next/src/selector.js` strict branch.
|
|
621
|
+
*
|
|
622
|
+
* In strict mode we also accept a single-ns scope, falling back to
|
|
623
|
+
* `[scopeInfo.defaultNs]` when the scope didn't capture an explicit array
|
|
624
|
+
* (e.g. `useTranslation('only')`).
|
|
625
|
+
*
|
|
626
|
+
* Falls through to the input string when:
|
|
627
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
628
|
+
* - scope has no namespaces info,
|
|
629
|
+
* - first segment isn't in the scope's namespaces list, or
|
|
630
|
+
* - separators are configured off.
|
|
631
|
+
*/
|
|
632
|
+
applySelectorNsRewrite(key, scopeInfo) {
|
|
633
|
+
const strict = this.config.types?.enableSelector === 'strict';
|
|
634
|
+
// Resolve the effective namespace list for the rule:
|
|
635
|
+
// - default mode: only the explicitly-captured `namespaces` array, length ≥ 2
|
|
636
|
+
// - strict mode: same array if present; otherwise synthesize from `defaultNs`
|
|
637
|
+
const nsCaptured = scopeInfo?.namespaces;
|
|
638
|
+
const nsList = strict
|
|
639
|
+
? (nsCaptured ?? (scopeInfo?.defaultNs ? [scopeInfo.defaultNs] : undefined))
|
|
640
|
+
: nsCaptured;
|
|
641
|
+
if (!nsList || nsList.length < (strict ? 1 : 2))
|
|
642
|
+
return key;
|
|
643
|
+
const keySeparator = this.config.extract.keySeparator;
|
|
644
|
+
const joiner = typeof keySeparator === 'string' ? keySeparator : '.';
|
|
645
|
+
const nsSeparator = this.config.extract.nsSeparator ?? ':';
|
|
646
|
+
if (keySeparator === false || !nsSeparator)
|
|
647
|
+
return key;
|
|
648
|
+
const firstSepAt = key.indexOf(joiner);
|
|
649
|
+
if (firstSepAt < 0)
|
|
650
|
+
return key;
|
|
651
|
+
const head = key.slice(0, firstSepAt);
|
|
652
|
+
// Default mode excludes the primary; strict mode includes it.
|
|
653
|
+
if (!strict && head === nsList[0])
|
|
654
|
+
return key;
|
|
655
|
+
if (!nsList.includes(head))
|
|
656
|
+
return key;
|
|
657
|
+
return `${head}${nsSeparator}${key.slice(firstSepAt + joiner.length)}`;
|
|
658
|
+
}
|
|
582
659
|
/**
|
|
583
660
|
* Extracts translation key(s) from selector API arrow function.
|
|
584
661
|
*
|
|
@@ -378,25 +378,9 @@ class ScopeManager {
|
|
|
378
378
|
else {
|
|
379
379
|
// Position-driven extraction: respect hookConfig positions (nsArg/keyPrefixArg).
|
|
380
380
|
if (nsArgIndex !== -1) {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}
|
|
385
|
-
else if (nsNode?.type === 'Identifier') {
|
|
386
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
387
|
-
}
|
|
388
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
389
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
390
|
-
}
|
|
391
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
392
|
-
const first = nsNode.elements[0]?.expression;
|
|
393
|
-
if (first?.type === 'StringLiteral') {
|
|
394
|
-
defaultNs = first.value;
|
|
395
|
-
}
|
|
396
|
-
else if (first?.type === 'Identifier') {
|
|
397
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
381
|
+
// Comment scope only cares about the primary ns — selector multi-ns
|
|
382
|
+
// rewriting is handled by the runtime extractor scope, not comments.
|
|
383
|
+
defaultNs = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression).defaultNs;
|
|
400
384
|
}
|
|
401
385
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
402
386
|
}
|
|
@@ -446,6 +430,7 @@ class ScopeManager {
|
|
|
446
430
|
const nsArgIndex = hookConfig.nsArg ?? 0;
|
|
447
431
|
const kpArgIndex = hookConfig.keyPrefixArg ?? 1;
|
|
448
432
|
let defaultNs;
|
|
433
|
+
let namespaces;
|
|
449
434
|
let keyPrefix;
|
|
450
435
|
// Early detect useTranslation(lng, ns) for built-in hook name only
|
|
451
436
|
const first = callExpr.arguments?.[0]?.expression;
|
|
@@ -463,25 +448,9 @@ class ScopeManager {
|
|
|
463
448
|
}
|
|
464
449
|
else {
|
|
465
450
|
if (nsArgIndex !== -1) {
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
else if (nsNode?.type === 'Identifier') {
|
|
471
|
-
defaultNs = this.resolveSimpleStringIdentifier(nsNode.value);
|
|
472
|
-
}
|
|
473
|
-
else if (nsNode?.type === 'MemberExpression') {
|
|
474
|
-
defaultNs = this.resolveSimpleMemberExpression(nsNode);
|
|
475
|
-
}
|
|
476
|
-
else if (nsNode?.type === 'ArrayExpression') {
|
|
477
|
-
const first = nsNode.elements[0]?.expression;
|
|
478
|
-
if (first?.type === 'StringLiteral') {
|
|
479
|
-
defaultNs = first.value;
|
|
480
|
-
}
|
|
481
|
-
else if (first?.type === 'Identifier') {
|
|
482
|
-
defaultNs = this.resolveSimpleStringIdentifier(first.value);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
451
|
+
const resolved = this.resolveNsArg(callExpr.arguments?.[nsArgIndex]?.expression);
|
|
452
|
+
defaultNs = resolved.defaultNs;
|
|
453
|
+
namespaces = resolved.namespaces;
|
|
485
454
|
}
|
|
486
455
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
487
456
|
}
|
|
@@ -503,24 +472,25 @@ class ScopeManager {
|
|
|
503
472
|
keyPrefix = tpl.quasis?.[0]?.cooked ?? undefined;
|
|
504
473
|
}
|
|
505
474
|
}
|
|
475
|
+
const info = { defaultNs, namespaces, keyPrefix };
|
|
506
476
|
// Attach scope info to all destructured properties (custom functions, t, getFixedT, etc.)
|
|
507
477
|
if (node.id.type === 'ObjectPattern') {
|
|
508
478
|
for (const prop of node.id.properties) {
|
|
509
479
|
if (prop.type === 'AssignmentPatternProperty' && prop.key.type === 'Identifier') {
|
|
510
|
-
this.setVarInScope(prop.key.value,
|
|
480
|
+
this.setVarInScope(prop.key.value, info);
|
|
511
481
|
}
|
|
512
482
|
if (prop.type === 'KeyValuePatternProperty' && prop.value.type === 'Identifier') {
|
|
513
|
-
this.setVarInScope(prop.value.value,
|
|
483
|
+
this.setVarInScope(prop.value.value, info);
|
|
514
484
|
}
|
|
515
485
|
}
|
|
516
486
|
}
|
|
517
487
|
else if (node.id.type === 'Identifier') {
|
|
518
|
-
this.setVarInScope(node.id.value,
|
|
488
|
+
this.setVarInScope(node.id.value, info);
|
|
519
489
|
}
|
|
520
490
|
else if (node.id.type === 'ArrayPattern') {
|
|
521
491
|
const firstElement = node.id.elements[0];
|
|
522
492
|
if (firstElement?.type === 'Identifier') {
|
|
523
|
-
this.setVarInScope(firstElement.value,
|
|
493
|
+
this.setVarInScope(firstElement.value, info);
|
|
524
494
|
}
|
|
525
495
|
}
|
|
526
496
|
}
|
|
@@ -556,6 +526,51 @@ class ScopeManager {
|
|
|
556
526
|
* without interpolation. Returns undefined when the expression cannot be
|
|
557
527
|
* resolved statically.
|
|
558
528
|
*/
|
|
529
|
+
/**
|
|
530
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
531
|
+
*
|
|
532
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
533
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
534
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
535
|
+
*
|
|
536
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
537
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
538
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
539
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
540
|
+
* either single form behaves identically downstream.
|
|
541
|
+
*/
|
|
542
|
+
resolveNsArg(nsNode) {
|
|
543
|
+
if (!nsNode)
|
|
544
|
+
return {};
|
|
545
|
+
if (nsNode.type === 'StringLiteral')
|
|
546
|
+
return { defaultNs: nsNode.value };
|
|
547
|
+
if (nsNode.type === 'Identifier')
|
|
548
|
+
return { defaultNs: this.resolveSimpleStringIdentifier(nsNode.value) };
|
|
549
|
+
if (nsNode.type === 'MemberExpression')
|
|
550
|
+
return { defaultNs: this.resolveSimpleMemberExpression(nsNode) };
|
|
551
|
+
if (nsNode.type === 'ArrayExpression') {
|
|
552
|
+
const namespaces = [];
|
|
553
|
+
for (const el of nsNode.elements) {
|
|
554
|
+
const expr = el?.expression;
|
|
555
|
+
if (!expr)
|
|
556
|
+
continue;
|
|
557
|
+
if (expr.type === 'StringLiteral')
|
|
558
|
+
namespaces.push(expr.value);
|
|
559
|
+
else if (expr.type === 'Identifier') {
|
|
560
|
+
const resolved = this.resolveSimpleStringIdentifier(expr.value);
|
|
561
|
+
if (resolved !== undefined)
|
|
562
|
+
namespaces.push(resolved);
|
|
563
|
+
}
|
|
564
|
+
else if (expr.type === 'MemberExpression') {
|
|
565
|
+
const resolved = this.resolveSimpleMemberExpression(expr);
|
|
566
|
+
if (resolved !== undefined)
|
|
567
|
+
namespaces.push(resolved);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
return { defaultNs: namespaces[0], namespaces: namespaces.length > 0 ? namespaces : undefined };
|
|
571
|
+
}
|
|
572
|
+
return {};
|
|
573
|
+
}
|
|
559
574
|
resolveStringArg(node) {
|
|
560
575
|
if (!node)
|
|
561
576
|
return undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "i18next-cli",
|
|
3
|
-
"version": "1.56.
|
|
3
|
+
"version": "1.56.12",
|
|
4
4
|
"description": "A unified, high-performance i18next CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"minimatch": "^10.2.5",
|
|
86
86
|
"ora": "^9.3.0",
|
|
87
87
|
"react": "^19.2.5",
|
|
88
|
-
"react-i18next": "^17.0.
|
|
88
|
+
"react-i18next": "^17.0.7",
|
|
89
89
|
"yaml": "^2.8.3"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -49,6 +49,31 @@ export declare class CallExpressionHandler {
|
|
|
49
49
|
* @returns An object containing the keys to process and a flag indicating if the selector API is used
|
|
50
50
|
*/
|
|
51
51
|
private handleCallExpressionArgument;
|
|
52
|
+
/**
|
|
53
|
+
* Mirror i18next's runtime selector rule (v25.8.19 default, or
|
|
54
|
+
* `enableSelector: 'strict'` when `types.enableSelector === 'strict'`).
|
|
55
|
+
*
|
|
56
|
+
* **Default mode** — rewrite only when the hook was called with a multi-element
|
|
57
|
+
* namespace array and the path's first segment matches a *secondary* namespace.
|
|
58
|
+
* The primary is intentionally not rewritten (preserves #2405): its keys are
|
|
59
|
+
* exposed flat on `$`, so `$.primary.foo` means a literal sub-key.
|
|
60
|
+
*
|
|
61
|
+
* **Strict mode** — every namespace (primary included) is exposed only under
|
|
62
|
+
* its own key on `$`. So a leading segment matching *any* namespace in the
|
|
63
|
+
* scope's list — primary or secondary, single-ns or multi-ns — is rewritten.
|
|
64
|
+
* Mirrors `i18next/src/selector.js` strict branch.
|
|
65
|
+
*
|
|
66
|
+
* In strict mode we also accept a single-ns scope, falling back to
|
|
67
|
+
* `[scopeInfo.defaultNs]` when the scope didn't capture an explicit array
|
|
68
|
+
* (e.g. `useTranslation('only')`).
|
|
69
|
+
*
|
|
70
|
+
* Falls through to the input string when:
|
|
71
|
+
* - the call had no selector (string keys go through this path unchanged),
|
|
72
|
+
* - scope has no namespaces info,
|
|
73
|
+
* - first segment isn't in the scope's namespaces list, or
|
|
74
|
+
* - separators are configured off.
|
|
75
|
+
*/
|
|
76
|
+
private applySelectorNsRewrite;
|
|
52
77
|
/**
|
|
53
78
|
* Extracts translation key(s) from selector API arrow function.
|
|
54
79
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-expression-handler.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/call-expression-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,WAAW,CAAA;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAa7D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAoB;IACvC,UAAU,cAAoB;IACrC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAAsC;gBAG7D,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,MAAM,MAAM,EAC5B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAA2B;IAW3E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"call-expression-handler.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/call-expression-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,WAAW,CAAA;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAa7D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAoB;IACvC,UAAU,cAAoB;IACrC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,iBAAiB,CAAsC;gBAG7D,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,MAAM,MAAM,EAC5B,cAAc,EAAE,MAAM,MAAM,EAC5B,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAA2B;IAW3E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI;IAgaxG;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,wBAAwB;IAyEhC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAsDpC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;;;;;OAQG;IACH,OAAO,CAAC,iCAAiC;IAwFzC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,gBAAgB;IAyMxB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
|
|
@@ -147,6 +147,20 @@ export declare class ScopeManager {
|
|
|
147
147
|
* without interpolation. Returns undefined when the expression cannot be
|
|
148
148
|
* resolved statically.
|
|
149
149
|
*/
|
|
150
|
+
/**
|
|
151
|
+
* Resolve the `ns` argument of useTranslation to `{ defaultNs, namespaces }`.
|
|
152
|
+
*
|
|
153
|
+
* - String literal / identifier / member-expr → single `defaultNs`, no array.
|
|
154
|
+
* - Array expression → first element becomes `defaultNs`, every statically
|
|
155
|
+
* resolvable element ends up in `namespaces` (preserving order).
|
|
156
|
+
*
|
|
157
|
+
* `namespaces` is only set when the input was an array form, so consumers can
|
|
158
|
+
* distinguish `useTranslation('a')` (single, `namespaces` undefined) from
|
|
159
|
+
* `useTranslation(['a'])` (single-element array, `namespaces = ['a']`).
|
|
160
|
+
* The runtime selector rule from v25.8.19 only applies when length > 1, so
|
|
161
|
+
* either single form behaves identically downstream.
|
|
162
|
+
*/
|
|
163
|
+
private resolveNsArg;
|
|
150
164
|
private resolveStringArg;
|
|
151
165
|
/**
|
|
152
166
|
* Handles cases where a getFixedT-like function is a variable (from a custom hook)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,kBAAkB,EAMnB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG/F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAMlF,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,qBAAqB,CAAiD;IAI9E,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,qBAAqB,CAAiD;gBAEjE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAgB9C;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAQrB;;;;OAIG;IACH,eAAe,IAAK,IAAI;IAIxB;;;OAGG;IACH,cAAc,IAAK,IAAI;IAIvB;;;;;;;OAOG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAMvD;;;;;OAKG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASvD;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAsGzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,kBAAkB,EAMnB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAG/F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAMlF,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,eAAe,CAAiC;IAGxD,OAAO,CAAC,qBAAqB,CAAiD;IAI9E,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,qBAAqB,CAAiD;gBAEjE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAgB9C;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAQrB;;;;OAIG;IACH,eAAe,IAAK,IAAI;IAIxB;;;OAGG;IACH,cAAc,IAAK,IAAI;IAIvB;;;;;;;OAOG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAMvD;;;;;OAKG;IACH,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IASvD;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAsGzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA8FvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,8BAA8B;IA0EtC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;;;;;OAMG;IACH;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,gBAAgB;IAexB;;;;;;;;;OASG;IACH,OAAO,CAAC,qCAAqC;IAqB7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAgBnC;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAwBlF;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CA+DrC"}
|
package/types/types.d.ts
CHANGED
|
@@ -239,8 +239,19 @@ export interface I18nextToolkitConfig {
|
|
|
239
239
|
basePath?: string;
|
|
240
240
|
/** Output path for the main TypeScript definition file */
|
|
241
241
|
output: string;
|
|
242
|
-
/**
|
|
243
|
-
|
|
242
|
+
/**
|
|
243
|
+
* Enable type-safe selector API.
|
|
244
|
+
*
|
|
245
|
+
* - `false` (default): disabled.
|
|
246
|
+
* - `true`: standard selector typing — primary namespace keys exposed flat on `$`.
|
|
247
|
+
* - `'optimize'`: skip deep type-level processing for very large/deep resources.
|
|
248
|
+
* - `'strict'`: every namespace (primary included) is exposed only under its
|
|
249
|
+
* own key on `$`. The extractor mirrors this at extraction time: a leading
|
|
250
|
+
* path segment matching a scope's namespace is always rewritten to
|
|
251
|
+
* `ns:rest`, including the primary and single-ns hooks. Pairs with i18next
|
|
252
|
+
* ≥ 26.1.0's runtime `enableSelector: 'strict'` option.
|
|
253
|
+
*/
|
|
254
|
+
enableSelector?: boolean | 'optimize' | 'strict';
|
|
244
255
|
/** Path for the separate resources interface file */
|
|
245
256
|
resourcesFile?: string;
|
|
246
257
|
/**
|
|
@@ -678,6 +689,17 @@ export interface PluginContext {
|
|
|
678
689
|
export interface ScopeInfo {
|
|
679
690
|
/** Default namespace for translation calls in this scope */
|
|
680
691
|
defaultNs?: string;
|
|
692
|
+
/**
|
|
693
|
+
* Full namespace list when the hook was called with an array
|
|
694
|
+
* (e.g. `useTranslation(['nsA', 'nsB'])`).
|
|
695
|
+
*
|
|
696
|
+
* Mirrors the runtime selector rule from i18next v25.8.19: when a selector
|
|
697
|
+
* path's first segment matches a secondary namespace in this list, the
|
|
698
|
+
* extractor rewrites the key to `ns:rest` so it routes to the right file.
|
|
699
|
+
* `defaultNs` is the primary (`namespaces[0]`); subsequent entries are
|
|
700
|
+
* "secondary" and eligible for the rewrite.
|
|
701
|
+
*/
|
|
702
|
+
namespaces?: string[];
|
|
681
703
|
/** Key prefix to prepend to all translation keys in this scope */
|
|
682
704
|
keyPrefix?: string;
|
|
683
705
|
}
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|