@the-i18n-kit/cli 4.9.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +31 -298
  2. package/dist/{_shared-Dv1EW2gy.js → _shared-DFyy3sh8.js} +24 -12
  3. package/dist/_shared-DFyy3sh8.js.map +1 -0
  4. package/dist/{add-BvXrJkqZ.js → add-C-qs8iBa.js} +5 -5
  5. package/dist/{add-BvXrJkqZ.js.map → add-C-qs8iBa.js.map} +1 -1
  6. package/dist/bin.js +6 -1
  7. package/dist/bin.js.map +1 -1
  8. package/dist/{check-9dcNfHtC.js → check-BI1orjXb.js} +11 -19
  9. package/dist/check-BI1orjXb.js.map +1 -0
  10. package/dist/cli-DsFuVJNP.js +74 -0
  11. package/dist/cli-DsFuVJNP.js.map +1 -0
  12. package/dist/config/framework/stubs/{next-intl-routing-DEwC7Bbk.d.ts → next-intl-routing-Cwaa3f4R.d.ts} +1 -1
  13. package/dist/config/framework/stubs/{next-intl-routing-DEwC7Bbk.d.ts.map → next-intl-routing-Cwaa3f4R.d.ts.map} +1 -1
  14. package/dist/config/framework/stubs/{unplugin-vue-i18n-D9yaDzRk.d.ts → unplugin-vue-i18n-1ud7-Ly8.d.ts} +1 -1
  15. package/dist/config/framework/stubs/{unplugin-vue-i18n-D9yaDzRk.d.ts.map → unplugin-vue-i18n-1ud7-Ly8.d.ts.map} +1 -1
  16. package/dist/define-config-4ubtfvUy.js.map +1 -1
  17. package/dist/{define-config-Dhg13592.d.ts → define-config-BaZ1dZph.d.ts} +11 -4
  18. package/dist/define-config-BaZ1dZph.d.ts.map +1 -0
  19. package/dist/{define-config-lQrIpPSK.d.ts → define-config-CLgKN-7N.d.ts} +1 -1
  20. package/dist/define-config.d.ts +1 -1
  21. package/dist/{detect-Dr2skxeL.js → detect-7cVfsNJP.js} +5 -5
  22. package/dist/{detect-Dr2skxeL.js.map → detect-7cVfsNJP.js.map} +1 -1
  23. package/dist/{empty-p0wct8Hk.js → empty-DB8Hl_8u.js} +5 -5
  24. package/dist/{empty-p0wct8Hk.js.map → empty-DB8Hl_8u.js.map} +1 -1
  25. package/dist/find-duplicates-CmEqBfby.js +42 -0
  26. package/dist/find-duplicates-CmEqBfby.js.map +1 -0
  27. package/dist/{get-BskDC2wT.js → get-BE21Iy6N.js} +5 -5
  28. package/dist/{get-BskDC2wT.js.map → get-BE21Iy6N.js.map} +1 -1
  29. package/dist/{index-BtSA6-iT.d.ts → index-DCG3dOdC.d.ts} +351 -3
  30. package/dist/index-DCG3dOdC.d.ts.map +1 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +5 -4
  33. package/dist/{init-D7r6iX3q.js → init-BtzmhsOM.js} +5 -5
  34. package/dist/{init-D7r6iX3q.js.map → init-BtzmhsOM.js.map} +1 -1
  35. package/dist/{list-dirs-BHk38JXZ.js → list-dirs-DUQbwvlE.js} +5 -5
  36. package/dist/{list-dirs-BHk38JXZ.js.map → list-dirs-DUQbwvlE.js.map} +1 -1
  37. package/dist/{missing-0gSZKTgt.js → missing-CcYrgd54.js} +5 -5
  38. package/dist/{missing-0gSZKTgt.js.map → missing-CcYrgd54.js.map} +1 -1
  39. package/dist/move-B2px6Ck-.js +50 -0
  40. package/dist/move-B2px6Ck-.js.map +1 -0
  41. package/dist/{operations-BCJd7in3.js → operations-CTo44gPu.js} +1332 -241
  42. package/dist/operations-CTo44gPu.js.map +1 -0
  43. package/dist/php-reader-3Fgw80zK.js +64 -0
  44. package/dist/php-reader-3Fgw80zK.js.map +1 -0
  45. package/dist/php-reader-CpnaPSpZ.js +2 -0
  46. package/dist/{providers-BAwPjeCy.js → providers-CHE2ffi6.js} +53 -27
  47. package/dist/providers-CHE2ffi6.js.map +1 -0
  48. package/dist/{remove-DR_mRiMA.js → remove-DTbqM4bR.js} +5 -5
  49. package/dist/{remove-DR_mRiMA.js.map → remove-DTbqM4bR.js.map} +1 -1
  50. package/dist/{remove-orphans-CcA3XQHJ.js → remove-orphans-Dfzu7hRz.js} +5 -5
  51. package/dist/{remove-orphans-CcA3XQHJ.js.map → remove-orphans-Dfzu7hRz.js.map} +1 -1
  52. package/dist/{rename-CWLfThC1.js → rename-C_rFKkU4.js} +5 -5
  53. package/dist/{rename-CWLfThC1.js.map → rename-C_rFKkU4.js.map} +1 -1
  54. package/dist/rename-notice-BV8HNX3O.js +25 -0
  55. package/dist/rename-notice-BV8HNX3O.js.map +1 -0
  56. package/dist/rename-notice-Cx1vuTRz.js +2 -0
  57. package/dist/{scaffold-BahXKbo9.js → scaffold-CUimlNqR.js} +5 -5
  58. package/dist/{scaffold-BahXKbo9.js.map → scaffold-CUimlNqR.js.map} +1 -1
  59. package/dist/{scan-CTxs3kl7.js → scan-BkOIYhjZ.js} +5 -5
  60. package/dist/{scan-CTxs3kl7.js.map → scan-BkOIYhjZ.js.map} +1 -1
  61. package/dist/{search-BonEgmSt.js → search-0io1BcsY.js} +5 -5
  62. package/dist/{search-BonEgmSt.js.map → search-0io1BcsY.js.map} +1 -1
  63. package/dist/{status-C_5Khw14.js → status-Bp-SzjTN.js} +5 -5
  64. package/dist/{status-C_5Khw14.js.map → status-Bp-SzjTN.js.map} +1 -1
  65. package/dist/{translate-CnXvBi5O.js → translate-cCb2Z57w.js} +6 -6
  66. package/dist/{translate-CnXvBi5O.js.map → translate-cCb2Z57w.js.map} +1 -1
  67. package/dist/{translate-key-DwO9XZMc.js → translate-key-DHLWEmrA.js} +5 -5
  68. package/dist/{translate-key-DwO9XZMc.js.map → translate-key-DHLWEmrA.js.map} +1 -1
  69. package/dist/{update-HR8MvPlI.js → update-DV4ijRVB.js} +5 -5
  70. package/dist/{update-HR8MvPlI.js.map → update-DV4ijRVB.js.map} +1 -1
  71. package/dist/{write-CAD9xQDy.js → write-Czzm_Nb0.js} +5 -5
  72. package/dist/{write-CAD9xQDy.js.map → write-Czzm_Nb0.js.map} +1 -1
  73. package/package.json +15 -5
  74. package/dist/_shared-Dv1EW2gy.js.map +0 -1
  75. package/dist/check-9dcNfHtC.js.map +0 -1
  76. package/dist/cli-CiX4llY1.js +0 -82
  77. package/dist/cli-CiX4llY1.js.map +0 -1
  78. package/dist/define-config-Dhg13592.d.ts.map +0 -1
  79. package/dist/find-duplicates-DuI8niF7.js +0 -31
  80. package/dist/find-duplicates-DuI8niF7.js.map +0 -1
  81. package/dist/index-BtSA6-iT.d.ts.map +0 -1
  82. package/dist/operations-BCJd7in3.js.map +0 -1
  83. package/dist/php-reader-DcgOAhTw.js +0 -2
  84. package/dist/php-reader-DuZ0Hyl_.js +0 -32
  85. package/dist/php-reader-DuZ0Hyl_.js.map +0 -1
  86. package/dist/providers-BAwPjeCy.js.map +0 -1
  87. /package/dist/{bin-Cs-dvpEC.d.ts → bin-DrKRgnr9.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { a as LocaleDir, i as LocaleDefinition, n as defineI18nKitConfig, o as ProjectConfig, r as I18nConfig, t as I18nKitConfig } from "./define-config-Dhg13592.js";
1
+ import { a as LocaleDir, i as LocaleDefinition, n as defineI18nKitConfig, o as ProjectConfig, r as I18nConfig, s as LocaleFileFormat, t as I18nKitConfig } from "./define-config-BaZ1dZph.js";
2
2
 
3
3
  //#region src/core/types.d.ts
4
4
 
@@ -287,6 +287,39 @@ interface RenameTranslationKeyResult {
287
287
  warning?: string;
288
288
  };
289
289
  }
290
+ /** What a move does to one locale's copy of the key. */
291
+ interface MoveTranslationKeyPlanEntry {
292
+ locale: string;
293
+ value: unknown;
294
+ /**
295
+ * `move` writes the target and drops the source. `deduplicate` finds the
296
+ * target already holding the same value, so only the source is dropped.
297
+ */
298
+ action: 'move' | 'deduplicate';
299
+ }
300
+ interface MoveTranslationKeyResult {
301
+ /** Present when dryRun=true */
302
+ dryRun?: boolean;
303
+ wouldMove?: MoveTranslationKeyPlanEntry[];
304
+ /** Present when dryRun=false */
305
+ movedLocales?: string[];
306
+ /** Locales where the target already held this value, so only the source was dropped. */
307
+ deduplicatedLocales?: string[];
308
+ filesWritten?: number;
309
+ fromLayer?: string;
310
+ toLayer?: string;
311
+ key?: string;
312
+ newKey?: string;
313
+ /** Locales whose source layer does not define the key at all. */
314
+ notFoundInLocales?: string[];
315
+ /** Locales where the target holds a different value. Nothing is written when this is non-empty. */
316
+ conflictsInLocales?: string[];
317
+ summary?: {
318
+ localesAffected: number;
319
+ message: string;
320
+ warning?: string;
321
+ };
322
+ }
290
323
  /** How a translate run was (or would be) executed. */
291
324
  type TranslateMode = 'provider' | 'agent' | 'dry-run';
292
325
  /** Why a key could not be translated. */
@@ -439,6 +472,14 @@ interface FindOrphanKeysResult {
439
472
  /** Absent when the full report went to `reportFile` instead. */
440
473
  orphanKeys?: Record<string, string[]>;
441
474
  uncertainKeys?: Record<string, string[]>;
475
+ /**
476
+ * Keys kept alive solely by the bare-candidate net — nothing a frontend
477
+ * could call a usage references them; a dotted string somewhere (a comment,
478
+ * a data structure) merely shares their name. Not orphans, but where dead
479
+ * references hide.
480
+ */
481
+ candidateOnlyKeys?: Record<string, string[]>;
482
+ candidateOnlyNote?: string;
442
483
  /** Keys used only from apps that do not consume the owning layer. */
443
484
  misplacedUsages?: MisplacedUsageRef[];
444
485
  misplacedUsageNote?: string;
@@ -446,11 +487,14 @@ interface FindOrphanKeysResult {
446
487
  totalKeys: number;
447
488
  orphanCount: number;
448
489
  uncertainCount?: number;
490
+ candidateOnlyCount?: number;
449
491
  misplacedCount?: number;
450
492
  dynamicMatchedCount?: number;
451
493
  ignoredCount?: number;
452
494
  usedCount?: number;
453
495
  filesScanned: number;
496
+ /** Files a syntax frontend declined; pattern matching read them instead. */
497
+ filesDeclined?: number;
454
498
  layersChecked?: string[];
455
499
  dirsScanned?: string[];
456
500
  scanScope?: Record<string, string[]>;
@@ -475,6 +519,8 @@ interface CodeUsageResult {
475
519
  uniqueKeysFound: number;
476
520
  totalReferences: number;
477
521
  filesScanned: number;
522
+ /** Files a syntax frontend declined; pattern matching read them instead. */
523
+ filesDeclined?: number;
478
524
  dirsScanned?: string[];
479
525
  message?: string;
480
526
  };
@@ -492,6 +538,8 @@ interface ScanCodeUsageResult {
492
538
  uniqueKeysFound: number;
493
539
  totalReferences: number;
494
540
  filesScanned: number;
541
+ /** Files a syntax frontend declined; pattern matching read them instead. */
542
+ filesDeclined?: number;
495
543
  dirsScanned: string[];
496
544
  };
497
545
  notFoundInCode?: string[];
@@ -772,6 +820,35 @@ declare function scaffoldLocaleFiles(opts: {
772
820
  dryRun?: boolean;
773
821
  projectDir?: string;
774
822
  }): Promise<ScaffoldLocaleResult>;
823
+ /**
824
+ * Move a key from one layer to another, carrying every locale that defines it.
825
+ *
826
+ * Promoting an app-layer key to the shared layer once a second app needs it is
827
+ * a first-class operation in a layered monorepo, and composing it out of
828
+ * get/write/remove is three calls across up to thirty locales with no way to
829
+ * fail cleanly: a truncation between the write and the remove leaves the key in
830
+ * both layers, which is the state `find_duplicate_keys` exists to flag (#341).
831
+ *
832
+ * So the whole move is planned before anything is written. A target that
833
+ * already holds a *different* value is a conflict, and one conflict in one
834
+ * locale writes nothing at all — a half-moved key across thirty files is worse
835
+ * than a refusal. A target already holding the *same* value is not a conflict
836
+ * but a duplicate the move resolves: the source copy is dropped and the locale
837
+ * is reported as deduplicated.
838
+ *
839
+ * Locales come from the resolved config rather than from caller-supplied refs,
840
+ * so there is no ref to leave unresolved (#301) — a locale the source layer
841
+ * does not define is reported in `notFoundInLocales` rather than skipped
842
+ * silently.
843
+ */
844
+ declare function moveTranslationKey(opts: {
845
+ fromLayer: string;
846
+ toLayer: string;
847
+ key: string;
848
+ newKey?: string;
849
+ dryRun?: boolean;
850
+ projectDir?: string;
851
+ }): Promise<MoveTranslationKeyResult>;
775
852
  //# sourceMappingURL=ops-write.d.ts.map
776
853
  //#endregion
777
854
  //#region src/core/ops-status.d.ts
@@ -790,7 +867,145 @@ declare function getTranslationStatus(opts: {
790
867
  outputFile?: string;
791
868
  }): Promise<TranslationStatusResult>;
792
869
  //# sourceMappingURL=ops-status.d.ts.map
870
+ //#endregion
871
+ //#region src/scanner/frontends/types.d.ts
872
+ /**
873
+ * What a frontend saw at one call site, before anything decides what it means.
874
+ *
875
+ * Frontends read their own language with whatever parser suits it and report
876
+ * call sites in these terms. The rules that turn them into usages, dynamic
877
+ * keys and candidates live in one place above this, so adding a language never
878
+ * means restating what counts as a translation (#332).
879
+ */
880
+ interface CallSite {
881
+ /** The callee as written — `t`, `$t`, `__`, `trans_choice`. */
882
+ callee: string;
883
+ /**
884
+ * Whether the frontend could prove this callee is the i18n function.
885
+ *
886
+ * `resolved` means it followed the identifier to an import from an i18n
887
+ * package or a destructure of `useI18n()`. `ambiguous` means it recognised
888
+ * the shape but cannot say what the name is bound to — all a regex can ever
889
+ * report, and the reason the dot heuristic exists at all.
890
+ */
891
+ binding: 'resolved' | 'ambiguous';
892
+ argument: CallArgument;
893
+ line: number;
894
+ }
895
+ type CallArgument = /** A literal: `t('common.save')`. */
896
+ {
897
+ kind: 'static';
898
+ value: string;
899
+ }
900
+ /** An interpolated template, already normalised to `${_}` slots. */ | {
901
+ kind: 'template';
902
+ expression: string;
903
+ }
904
+ /** A literal prefix joined to something else: `t('common.' + name)`. */ | {
905
+ kind: 'concat';
906
+ prefix: string;
907
+ }
908
+ /** Something the frontend could not read — a variable, a call, a ternary. */ | {
909
+ kind: 'unknown';
910
+ };
911
+ /** Everything one file yields. Unchanged from what the scanner already consumes. */
912
+ interface FileEvidence {
913
+ usages: KeyUsage[];
914
+ dynamicKeys: DynamicKeyUsage[];
915
+ bareStringCandidates: Set<string>;
916
+ }
917
+ interface LanguageFrontend {
918
+ /** For diagnostics and for the differential harness. */
919
+ readonly name: string;
920
+ /** Whether this frontend reads that file. */
921
+ handles(filePath: string): boolean;
922
+ /**
923
+ * Read a file into call sites, or return null to decline it — a syntax the
924
+ * parser cannot handle, a missing optional dependency. Declining is not an
925
+ * error: the caller falls back to the frontend that always works.
926
+ */
927
+ read(content: string, filePath: string): Promise<CallSite[] | null>;
928
+ }
929
+ //# sourceMappingURL=types.d.ts.map
930
+ //#endregion
931
+ //#region src/scanner/frontends/php/patterns.d.ts
932
+ declare const LARAVEL_PATTERNS: ScanPatternSet;
933
+ //#endregion
934
+ //#region src/scanner/patterns.d.ts
935
+ interface ScanPatternSet {
936
+ label: string;
937
+ filePatterns: string[];
938
+ ignoreDirs: string[];
939
+ /** Must capture: (1) callee, (2) quote char, (3) key */
940
+ staticKeyPatterns: RegExp[];
941
+ /** Must capture: (1) callee, (2) template content */
942
+ dynamicKeyPatterns: RegExp[];
943
+ /** Must capture: (1) callee, (2) quote char, (3) prefix */
944
+ concatKeyPatterns: RegExp[];
945
+ /**
946
+ * Language family for the context-free bare-candidate collectors (#288).
947
+ * 'js' (default) runs the template-literal and `+`-concat shapes; 'php'
948
+ * runs the double-quoted `{$var}` interpolation shape instead. Ungated,
949
+ * the PHP shape matches Vue template attributes (`v-if="$slots.header"`),
950
+ * producing `${_}.header`-class candidates that suppress every key ending
951
+ * in those segments. Language-neutral shapes (dotted literals,
952
+ * trailing-dot prefixes) always run.
953
+ */
954
+ bareShapes?: 'js' | 'php';
955
+ }
956
+ declare const VUE_NUXT_PATTERNS: ScanPatternSet;
957
+ /**
958
+ * Maps locale file format to the appropriate scan pattern set.
959
+ * 'php-array' → Laravel (PHP translation helpers in Blade/PHP files).
960
+ * 'json' / undefined → Vue/Nuxt ($t / t calls in Vue/TS/JS files).
961
+ */
962
+ declare function getPatternSet(format?: LocaleFileFormat): ScanPatternSet;
963
+ //# sourceMappingURL=patterns.d.ts.map
964
+ //#endregion
965
+ //#region src/scanner/code-scanner.d.ts
966
+ interface KeyUsage {
967
+ key: string;
968
+ file: string;
969
+ line: number;
970
+ callee: string;
971
+ }
972
+ interface DynamicKeyUsage {
973
+ expression: string;
974
+ file: string;
975
+ line: number;
976
+ callee: string;
977
+ }
978
+ interface ScanResult {
979
+ usages: KeyUsage[];
980
+ dynamicKeys: DynamicKeyUsage[];
981
+ filesScanned: number;
982
+ /**
983
+ * Files an active syntax frontend handled but declined — unparseable, or a
984
+ * parser that would not load — so pattern matching read them instead. A
985
+ * broken parser install shows up here rather than as silently weaker scans.
986
+ */
987
+ declinedFiles: string[];
988
+ uniqueKeys: Set<string>;
989
+ /**
990
+ * All quoted strings containing at least one dot, extracted from source files.
991
+ * These are NOT confirmed i18n keys — they must be intersected with actual
992
+ * locale keys to identify bare key references (e.g., `{ name: 'common.actions.save', i18n: true }`).
993
+ */
994
+ bareStringCandidates: Set<string>;
995
+ /**
996
+ * Template literal expressions containing at least one dot and `${...}` interpolation,
997
+ * extracted from source files regardless of i18n call context.
998
+ * Format: `` `prefix.${_}.suffix` `` — ready to feed into `buildDynamicKeyRegexes`.
999
+ */
1000
+ bareDynamicCandidates: Set<string>;
1001
+ }
1002
+ /**
1003
+ * One file's evidence through the pattern frontend — the sync contract the
1004
+ * scanner suites are written against. Same pipeline as every scan: the
1005
+ * frontend reports call sites, the rules decide what they mean.
1006
+ */
793
1007
 
1008
+ declare function scanSourceFiles(rootDir: string, excludeDirs?: string[], patterns?: ScanPatternSet, frontends?: LanguageFrontend[]): Promise<ScanResult>;
794
1009
  //#endregion
795
1010
  //#region src/core/ops-orphans.d.ts
796
1011
  /**
@@ -851,15 +1066,43 @@ interface DuplicateKeyCollision {
851
1066
  childValue: unknown;
852
1067
  divergent: boolean;
853
1068
  }
1069
+ /** One key carrying a duplicated value, with the layer it lives in. */
1070
+ interface ValueDuplicateMember {
1071
+ key: string;
1072
+ layer: string;
1073
+ /**
1074
+ * True when this layer is one another layer falls through to at runtime, so
1075
+ * a key here is already reachable from the layers above it.
1076
+ */
1077
+ shared: boolean;
1078
+ }
1079
+ /**
1080
+ * What to do about a group, and therefore how it sorts. `reuse` first: the
1081
+ * shared key already exists, so the fix costs nothing but deletions.
1082
+ */
1083
+ type ValueDuplicateAction = 'reuse' | 'promote' | 'consolidate';
1084
+ interface ValueDuplicateGroup {
1085
+ /** The value as written, from the first member. */
1086
+ value: string;
1087
+ /** What the members were grouped by — trimmed, case-folded, punctuation-stripped. */
1088
+ normalized: string;
1089
+ action: ValueDuplicateAction;
1090
+ members: ValueDuplicateMember[];
1091
+ }
854
1092
  interface FindDuplicateKeysSummary {
855
1093
  totalCollisions: number;
856
1094
  divergentCount: number;
857
1095
  pairsChecked: number;
858
1096
  locale: string;
1097
+ /** Present when value duplicates were requested. */
1098
+ valueGroups?: number;
1099
+ reusableGroups?: number;
859
1100
  message?: string;
860
1101
  }
861
1102
  interface FindDuplicateKeysResult {
862
1103
  collisions: DuplicateKeyCollision[];
1104
+ /** Present when value duplicates were requested. */
1105
+ valueDuplicates?: ValueDuplicateGroup[];
863
1106
  guidance: string;
864
1107
  summary: FindDuplicateKeysSummary;
865
1108
  }
@@ -872,6 +1115,14 @@ declare function findDuplicateKeys(opts?: {
872
1115
  locale?: string;
873
1116
  projectDir?: string;
874
1117
  outputFile?: string;
1118
+ /**
1119
+ * Also group keys by the value they carry. Off by default: it reads every
1120
+ * canonical layer rather than only the paired ones, and the existing result
1121
+ * shape stays exactly as it was for callers that do not ask.
1122
+ */
1123
+ byValue?: boolean;
1124
+ /** Shortest value worth grouping. Below it, repetition is usually legitimate. */
1125
+ minValueLength?: number;
875
1126
  }): Promise<FindDuplicateKeysResult | {
876
1127
  reportFile: string;
877
1128
  summary: FindDuplicateKeysSummary;
@@ -912,6 +1163,8 @@ interface CheckUndefinedKeysSummary {
912
1163
  /** Unresolvable keys excluded by orphanScan ignorePatterns. */
913
1164
  ignoredCount: number;
914
1165
  filesScanned: number;
1166
+ /** Files a syntax frontend declined; pattern matching read them instead. */
1167
+ filesDeclined: number;
915
1168
  locale: string;
916
1169
  /** Scan unit → layers searched for that unit's key usages. */
917
1170
  searchedLayersByApp: Record<string, string[]>;
@@ -1027,7 +1280,83 @@ interface LayerGraph {
1027
1280
  * (with their `aliasOf` markers) and `apps` (app → consumed-layers edges).
1028
1281
  */
1029
1282
  declare function buildLayerGraph(config: I18nConfig): LayerGraph;
1283
+ /**
1284
+ * The graph as plain data, for surfaces that can only carry JSON.
1285
+ *
1286
+ * {@link LayerGraph} is function-valued, so it cannot be serialised directly.
1287
+ * This answers the question an agent actually has — *which layer does this key
1288
+ * belong in* — which the flat layer list `discover` returned could not: a key
1289
+ * used by more than one app belongs in a layer those apps share, and `shared`
1290
+ * names those layers outright (#342).
1291
+ *
1292
+ * The degenerate cases documented on {@link LayerGraph} survive the flattening,
1293
+ * because they are what keeps a consumer from wrongly narrowing scope:
1294
+ * a config with no app info reports *every* canonical layer as shared, and a
1295
+ * layer no app consumes appears in `consumers` with an empty array rather than
1296
+ * being left out. Absent and "none" must not look alike here.
1297
+ */
1298
+ interface SerializedLayerGraph {
1299
+ /** Alias-free layer names, in `config.localeDirs` order. */
1300
+ canonical: string[];
1301
+ /** Canonical layers consumed by more than one app — where shared keys belong. */
1302
+ shared: string[];
1303
+ /** Alias layer name → the canonical layer whose locale dir it points at. */
1304
+ aliases: Record<string, string>;
1305
+ /** Canonical layer name → the apps consuming it. Every canonical layer is a key. */
1306
+ consumers: Record<string, string[]>;
1307
+ }
1308
+ /** Flatten {@link buildLayerGraph}'s view of `config` into plain JSON. */
1309
+ declare function serializeLayerGraph(config: I18nConfig): SerializedLayerGraph;
1030
1310
  //# sourceMappingURL=layer-graph.d.ts.map
1311
+ //#endregion
1312
+ //#region src/scanner/frontends/oxc.d.ts
1313
+ declare function createOxcFrontend(): LanguageFrontend;
1314
+ //# sourceMappingURL=oxc.d.ts.map
1315
+
1316
+ //#endregion
1317
+ //#region src/scanner/frontends/patterns.d.ts
1318
+ /**
1319
+ * The regex path as a language frontend (#332).
1320
+ *
1321
+ * Regexes frame text and report call sites; what a site means is decided once,
1322
+ * in the rules, the same as for every other frontend. Binding is always
1323
+ * `ambiguous`, because a regex can never prove what a name is bound to — which
1324
+ * is the entire reason the syntax frontends exist.
1325
+ *
1326
+ * This frontend never declines: it is the floor every scan can fall back to.
1327
+ */
1328
+ declare function createPatternsFrontend(pat: ScanPatternSet): LanguageFrontend;
1329
+ /**
1330
+ * Synchronous core, so the sync `extractKeys` contract the scanner suites are
1331
+ * written against keeps working unchanged.
1332
+ */
1333
+ //#endregion
1334
+ //#region src/scanner/frontends/php/index.d.ts
1335
+ declare function createPhpFrontend(): LanguageFrontend;
1336
+ /**
1337
+ * Call sites in a parsed program. Shared with the Blade frontend, which parses
1338
+ * lifted expressions through the same engine and interprets them identically —
1339
+ * a key's fate must not depend on which file type referenced it (#332).
1340
+ */
1341
+
1342
+ //#endregion
1343
+ //#region src/scanner/frontends/php/blade.d.ts
1344
+ /**
1345
+ * Blade, by lifting (#404, #332).
1346
+ *
1347
+ * No maintained Blade AST parser exists, and none is needed: every construct
1348
+ * that can carry a translation key wraps a PHP expression. The lexical pass
1349
+ * here finds those wrappers — echoes, `@lang`/`@choice`, `@php` blocks, raw
1350
+ * PHP tags — and hands the expression inside to the same parser and the same
1351
+ * site collection plain PHP uses. The regex frames text; it never decides
1352
+ * what a key is.
1353
+ *
1354
+ * A lifted chunk the parser cannot read declines the whole file to the
1355
+ * pattern fallback: partially-read templates would silently drop keys.
1356
+ */
1357
+ declare function createBladeFrontend(): LanguageFrontend;
1358
+ //# sourceMappingURL=blade.d.ts.map
1359
+
1031
1360
  //#endregion
1032
1361
  //#region src/io/locale-data.d.ts
1033
1362
  declare function readLocaleData(config: I18nConfig, layer: string, locale: LocaleDefinition): Promise<Record<string, unknown>>;
@@ -1053,6 +1382,25 @@ declare class ToolError extends Error {
1053
1382
  }
1054
1383
  //# sourceMappingURL=errors.d.ts.map
1055
1384
  //#endregion
1385
+ //#region src/utils/rename-notice.d.ts
1386
+ /**
1387
+ * The kit is renaming to the `@the-i18n-kit` scope (#315). During the window
1388
+ * both names publish from one source at matching versions, so nothing breaks —
1389
+ * but a user on the old name has no way of learning that unless the package
1390
+ * tells them.
1391
+ *
1392
+ * A package finds out it is the old one by reading its own `name` at runtime,
1393
+ * which is why this takes the name rather than deciding for itself: the same
1394
+ * code ships under both names, and only the manifest differs.
1395
+ */
1396
+ /**
1397
+ * The notice for a package running under a legacy name, or null when it is
1398
+ * already running under its new one — which is the case that must stay silent,
1399
+ * since a notice there would be telling people to do what they have done.
1400
+ */
1401
+ declare function renameNotice(packageName: string): string | null;
1402
+ //# sourceMappingURL=rename-notice.d.ts.map
1403
+ //#endregion
1056
1404
  //#region src/llm/providers.d.ts
1057
1405
  type LlmProvider = 'openai' | 'anthropic' | 'google';
1058
1406
  /** How a provider failure should be handled by the caller. */
@@ -1126,5 +1474,5 @@ declare function loadProjectConfig(projectDir: string): Promise<ProjectConfig |
1126
1474
  //# sourceMappingURL=project-config.d.ts.map
1127
1475
 
1128
1476
  //#endregion
1129
- export { AddTranslationsResult, BASE_URL_ENV, type CheckUndefinedKeysResult, type CheckUndefinedKeysSummary, CodeUsageRef, CodeUsageResult, type DuplicateKeyCollision, DynamicKeyRef, EmptyTranslationsResult, type FindDuplicateKeysResult, type FindDuplicateKeysSummary, FindOrphanKeysResult, GeneratedProjectConfig, type I18nConfig, type I18nKitConfig, InitProjectConfigResult, type KeyUsageLocation, type LayerGraph, LayerStatus, type LlmProvider, type LlmProviderConfig, type LocaleDefinition, type LocaleDir, LocaleDirInfo, type LocaleRefAmbiguity, LocaleRefInfo, LocaleStatus, MisplacedUsageRef, MissingTranslationsResult, MutationPreview, MutationResult, PlaceholderValidationIssue, PlaceholderValidationResult, ProgressFn, type ProjectConfig, RemoveOrphanKeysResult, RemoveTranslationsPreview, RemoveTranslationsResult, RenameTranslationKeyPreview, RenameTranslationKeyResult, ScaffoldLocaleFileInfo, ScaffoldLocaleResult, ScanCodeUsageResult, SearchMatch, SearchTranslationsResult, ToolError, TranslateAllLayersResult, TranslateAllLayersSummary, TranslateFailReason, TranslateFn, TranslateKeyLocaleIssue, TranslateKeyResult, TranslateLayerTotals, TranslateMissingCompactEntry, TranslateMissingLocaleResult, TranslateMissingOutcome, TranslateMissingResult, TranslateMode, TranslateProviderError, type TranslateProviderErrorKind, TranslateRequest, TranslateResponse, TranslateSkipReason, TranslationStatusResult, TranslationStatusSummary, type UncertainKeyFinding, type UndefinedKeyFinding, UnresolvedKeyWarningRef, UnresolvedLocaleRef, UpdateTranslationsResult, WriteTranslationsResult, addTranslations, buildLayerGraph, checkUndefinedKeys, classifyProviderError, clearConfigCache, createTranslateFn, defineI18nKitConfig, detectConfig, detectI18nConfig, findDuplicateKeys, findEmptyTranslations, findLocaleImpl, findOrphanKeys, getCachedConfig, getMissingTranslations, getTranslationStatus, getTranslations, listLocaleDirs, listNamespaces, loadProjectConfig, readLocaleData, removeOrphanKeys, removeTranslations, renameTranslationKey, resolveProtectedLocales, resolveProviderBaseUrl, scaffoldLocaleFiles, scanCodeUsage, searchTranslations, toErrorMessage, translateKey, translateMissing, updateTranslations, writeTranslations };
1130
- //# sourceMappingURL=index-BtSA6-iT.d.ts.map
1477
+ export { AddTranslationsResult, BASE_URL_ENV, type CallArgument, type CallSite, type CheckUndefinedKeysResult, type CheckUndefinedKeysSummary, CodeUsageRef, CodeUsageResult, type DuplicateKeyCollision, DynamicKeyRef, EmptyTranslationsResult, type FileEvidence, type FindDuplicateKeysResult, type FindDuplicateKeysSummary, FindOrphanKeysResult, GeneratedProjectConfig, type I18nConfig, type I18nKitConfig, InitProjectConfigResult, type KeyUsageLocation, LARAVEL_PATTERNS, type LanguageFrontend, type LayerGraph, LayerStatus, type LlmProvider, type LlmProviderConfig, type LocaleDefinition, type LocaleDir, LocaleDirInfo, type LocaleRefAmbiguity, LocaleRefInfo, LocaleStatus, MisplacedUsageRef, MissingTranslationsResult, MoveTranslationKeyPlanEntry, MoveTranslationKeyResult, MutationPreview, MutationResult, PlaceholderValidationIssue, PlaceholderValidationResult, ProgressFn, type ProjectConfig, RemoveOrphanKeysResult, RemoveTranslationsPreview, RemoveTranslationsResult, RenameTranslationKeyPreview, RenameTranslationKeyResult, ScaffoldLocaleFileInfo, ScaffoldLocaleResult, ScanCodeUsageResult, type ScanResult, SearchMatch, SearchTranslationsResult, type SerializedLayerGraph, ToolError, TranslateAllLayersResult, TranslateAllLayersSummary, TranslateFailReason, TranslateFn, TranslateKeyLocaleIssue, TranslateKeyResult, TranslateLayerTotals, TranslateMissingCompactEntry, TranslateMissingLocaleResult, TranslateMissingOutcome, TranslateMissingResult, TranslateMode, TranslateProviderError, type TranslateProviderErrorKind, TranslateRequest, TranslateResponse, TranslateSkipReason, TranslationStatusResult, TranslationStatusSummary, type UncertainKeyFinding, type UndefinedKeyFinding, UnresolvedKeyWarningRef, UnresolvedLocaleRef, UpdateTranslationsResult, VUE_NUXT_PATTERNS, WriteTranslationsResult, addTranslations, buildLayerGraph, checkUndefinedKeys, classifyProviderError, clearConfigCache, createBladeFrontend, createOxcFrontend, createPatternsFrontend, createPhpFrontend, createTranslateFn, defineI18nKitConfig, detectConfig, detectI18nConfig, findDuplicateKeys, findEmptyTranslations, findLocaleImpl, findOrphanKeys, getCachedConfig, getMissingTranslations, getPatternSet, getTranslationStatus, getTranslations, listLocaleDirs, listNamespaces, loadProjectConfig, moveTranslationKey, readLocaleData, removeOrphanKeys, removeTranslations, renameNotice, renameTranslationKey, resolveProtectedLocales, resolveProviderBaseUrl, scaffoldLocaleFiles, scanCodeUsage, scanSourceFiles, searchTranslations, serializeLayerGraph, toErrorMessage, translateKey, translateMissing, updateTranslations, writeTranslations };
1478
+ //# sourceMappingURL=index-DCG3dOdC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DCG3dOdC.d.ts","names":[],"sources":["../src/core/types.ts","../src/core/shared.ts","../src/core/ops-translate.ts","../src/core/ops-read.ts","../src/core/ops-write.ts","../src/core/ops-status.ts","../src/scanner/frontends/types.ts","../src/scanner/frontends/php/patterns.ts","../src/scanner/patterns.ts","../src/scanner/code-scanner.ts","../src/core/ops-orphans.ts","../src/core/ops-duplicates.ts","../src/core/ops-check.ts","../src/config/detector.ts","../src/config/layer-graph.ts","../src/scanner/frontends/oxc.ts","../src/scanner/frontends/patterns.ts","../src/scanner/frontends/php/index.ts","../src/scanner/frontends/php/blade.ts","../src/io/locale-data.ts","../src/utils/errors.ts","../src/utils/rename-notice.ts","../src/llm/providers.ts","../src/config/project-config.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './index-BtSA6-iT.d.ts';
1
+ export * from './index-DCG3dOdC.d.ts';
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { t as defineI18nKitConfig } from "./define-config-4ubtfvUy.js";
2
2
  import { i as toErrorMessage, r as ToolError } from "./errors-coI1dhw1.js";
3
- import { C as translateMissing, D as detectI18nConfig, E as clearConfigCache, O as getCachedConfig, S as translateKey, T as buildLayerGraph, _ as getTranslations, a as scanCodeUsage, b as searchTranslations, c as addTranslations, d as scaffoldLocaleFiles, f as updateTranslations, g as getMissingTranslations, h as findEmptyTranslations, i as removeOrphanKeys, k as findLocaleImpl, l as removeTranslations, m as detectConfig, n as findDuplicateKeys, o as getTranslationStatus, p as writeTranslations, r as findOrphanKeys, t as checkUndefinedKeys, u as renameTranslationKey, v as listLocaleDirs, w as readLocaleData, x as resolveProtectedLocales, y as listNamespaces } from "./operations-BCJd7in3.js";
4
- import { a as resolveProviderBaseUrl, i as createTranslateFn, n as TranslateProviderError, r as classifyProviderError, s as loadProjectConfig, t as BASE_URL_ENV } from "./providers-BAwPjeCy.js";
5
- import "./php-reader-DuZ0Hyl_.js";
6
- export { BASE_URL_ENV, ToolError, TranslateProviderError, addTranslations, buildLayerGraph, checkUndefinedKeys, classifyProviderError, clearConfigCache, createTranslateFn, defineI18nKitConfig, detectConfig, detectI18nConfig, findDuplicateKeys, findEmptyTranslations, findLocaleImpl, findOrphanKeys, getCachedConfig, getMissingTranslations, getTranslationStatus, getTranslations, listLocaleDirs, listNamespaces, loadProjectConfig, readLocaleData, removeOrphanKeys, removeTranslations, renameTranslationKey, resolveProtectedLocales, resolveProviderBaseUrl, scaffoldLocaleFiles, scanCodeUsage, searchTranslations, toErrorMessage, translateKey, translateMissing, updateTranslations, writeTranslations };
3
+ import { A as resolveProtectedLocales, C as detectConfig, D as listLocaleDirs, E as getTranslations, F as serializeLayerGraph, I as clearConfigCache, L as detectI18nConfig, M as translateMissing, N as readLocaleData, O as listNamespaces, P as buildLayerGraph, R as getCachedConfig, S as createOxcFrontend, T as getMissingTranslations, _ as getPatternSet, a as scanCodeUsage, b as LARAVEL_PATTERNS, c as addTranslations, d as renameTranslationKey, f as scaffoldLocaleFiles, g as VUE_NUXT_PATTERNS, h as scanSourceFiles, i as removeOrphanKeys, j as translateKey, k as searchTranslations, l as moveTranslationKey, m as writeTranslations, n as findDuplicateKeys, o as getTranslationStatus, p as updateTranslations, r as findOrphanKeys, t as checkUndefinedKeys, u as removeTranslations, v as createPatternsFrontend, w as findEmptyTranslations, x as createPhpFrontend, y as createBladeFrontend, z as findLocaleImpl } from "./operations-CTo44gPu.js";
4
+ import { a as resolveProviderBaseUrl, i as createTranslateFn, n as TranslateProviderError, r as classifyProviderError, s as loadProjectConfig, t as BASE_URL_ENV } from "./providers-CHE2ffi6.js";
5
+ import "./php-reader-3Fgw80zK.js";
6
+ import { t as renameNotice } from "./rename-notice-BV8HNX3O.js";
7
+ export { BASE_URL_ENV, LARAVEL_PATTERNS, ToolError, TranslateProviderError, VUE_NUXT_PATTERNS, addTranslations, buildLayerGraph, checkUndefinedKeys, classifyProviderError, clearConfigCache, createBladeFrontend, createOxcFrontend, createPatternsFrontend, createPhpFrontend, createTranslateFn, defineI18nKitConfig, detectConfig, detectI18nConfig, findDuplicateKeys, findEmptyTranslations, findLocaleImpl, findOrphanKeys, getCachedConfig, getMissingTranslations, getPatternSet, getTranslationStatus, getTranslations, listLocaleDirs, listNamespaces, loadProjectConfig, moveTranslationKey, readLocaleData, removeOrphanKeys, removeTranslations, renameNotice, renameTranslationKey, resolveProtectedLocales, resolveProviderBaseUrl, scaffoldLocaleFiles, scanCodeUsage, scanSourceFiles, searchTranslations, serializeLayerGraph, toErrorMessage, translateKey, translateMissing, updateTranslations, writeTranslations };
@@ -1,8 +1,8 @@
1
1
  import "./stdout-guard-sJHFWVem.js";
2
- import { s as initProjectConfig } from "./operations-BCJd7in3.js";
3
- import "./providers-BAwPjeCy.js";
4
- import "./php-reader-DuZ0Hyl_.js";
5
- import { t as createCommand } from "./_shared-Dv1EW2gy.js";
2
+ import { s as initProjectConfig } from "./operations-CTo44gPu.js";
3
+ import "./providers-CHE2ffi6.js";
4
+ import "./php-reader-3Fgw80zK.js";
5
+ import { t as createCommand } from "./_shared-DFyy3sh8.js";
6
6
  //#region src/commands/init.ts
7
7
  var init_default = createCommand({
8
8
  name: "init",
@@ -30,4 +30,4 @@ var init_default = createCommand({
30
30
  //#endregion
31
31
  export { init_default as default };
32
32
 
33
- //# sourceMappingURL=init-D7r6iX3q.js.map
33
+ //# sourceMappingURL=init-BtzmhsOM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-D7r6iX3q.js","names":[],"sources":["../src/commands/init.ts"],"sourcesContent":["import { createCommand } from './_shared.js'\nimport { initProjectConfig } from '../core/operations.js'\n\nexport default createCommand({\n name: 'init',\n description: 'Create a schema-valid .i18n-mcp.json from framework detection. Non-interactive; refuses to overwrite without --force',\n args: {\n force: { type: 'boolean', description: 'Overwrite an existing .i18n-mcp.json', default: false },\n dryRun: { type: 'boolean', description: 'Report the config that would be written without touching disk', default: false },\n },\n async run(args) {\n return initProjectConfig({\n projectDir: args.projectDir,\n force: args.force,\n dryRun: args.dryRun,\n })\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,eAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM;EACJ,OAAO;GAAE,MAAM;GAAW,aAAa;GAAwC,SAAS;GAAO;EAC/F,QAAQ;GAAE,MAAM;GAAW,aAAa;GAAiE,SAAS;GAAO;EAC1H;CACD,MAAM,IAAI,MAAM;AACd,SAAO,kBAAkB;GACvB,YAAY,KAAK;GACjB,OAAO,KAAK;GACZ,QAAQ,KAAK;GACd,CAAC;;CAEL,CAAC"}
1
+ {"version":3,"file":"init-BtzmhsOM.js","names":[],"sources":["../src/commands/init.ts"],"sourcesContent":["import { createCommand } from './_shared.js'\nimport { initProjectConfig } from '../core/operations.js'\n\nexport default createCommand({\n name: 'init',\n description: 'Create a schema-valid .i18n-mcp.json from framework detection. Non-interactive; refuses to overwrite without --force',\n args: {\n force: { type: 'boolean', description: 'Overwrite an existing .i18n-mcp.json', default: false },\n dryRun: { type: 'boolean', description: 'Report the config that would be written without touching disk', default: false },\n },\n async run(args) {\n return initProjectConfig({\n projectDir: args.projectDir,\n force: args.force,\n dryRun: args.dryRun,\n })\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,eAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM;EACJ,OAAO;GAAE,MAAM;GAAW,aAAa;GAAwC,SAAS;GAAO;EAC/F,QAAQ;GAAE,MAAM;GAAW,aAAa;GAAiE,SAAS;GAAO;EAC1H;CACD,MAAM,IAAI,MAAM;AACd,SAAO,kBAAkB;GACvB,YAAY,KAAK;GACjB,OAAO,KAAK;GACZ,QAAQ,KAAK;GACd,CAAC;;CAEL,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import "./stdout-guard-sJHFWVem.js";
2
- import { v as listLocaleDirs } from "./operations-BCJd7in3.js";
3
- import "./providers-BAwPjeCy.js";
4
- import "./php-reader-DuZ0Hyl_.js";
5
- import { t as createCommand } from "./_shared-Dv1EW2gy.js";
2
+ import { D as listLocaleDirs } from "./operations-CTo44gPu.js";
3
+ import "./providers-CHE2ffi6.js";
4
+ import "./php-reader-3Fgw80zK.js";
5
+ import { t as createCommand } from "./_shared-DFyy3sh8.js";
6
6
  //#region src/commands/list-dirs.ts
7
7
  var list_dirs_default = createCommand({
8
8
  name: "list-dirs",
@@ -14,4 +14,4 @@ var list_dirs_default = createCommand({
14
14
  //#endregion
15
15
  export { list_dirs_default as default };
16
16
 
17
- //# sourceMappingURL=list-dirs-BHk38JXZ.js.map
17
+ //# sourceMappingURL=list-dirs-DUQbwvlE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-dirs-BHk38JXZ.js","names":[],"sources":["../src/commands/list-dirs.ts"],"sourcesContent":["import { createCommand } from './_shared.js'\nimport { listLocaleDirs } from '../core/operations.js'\n\nexport default createCommand({\n name: 'list-dirs',\n description: 'List all i18n locale directories, grouped by layer',\n async run(args) {\n return listLocaleDirs(args.projectDir)\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,oBAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM,IAAI,MAAM;AACd,SAAO,eAAe,KAAK,WAAW;;CAEzC,CAAC"}
1
+ {"version":3,"file":"list-dirs-DUQbwvlE.js","names":[],"sources":["../src/commands/list-dirs.ts"],"sourcesContent":["import { createCommand } from './_shared.js'\nimport { listLocaleDirs } from '../core/operations.js'\n\nexport default createCommand({\n name: 'list-dirs',\n description: 'List all i18n locale directories, grouped by layer',\n async run(args) {\n return listLocaleDirs(args.projectDir)\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,oBAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM,IAAI,MAAM;AACd,SAAO,eAAe,KAAK,WAAW;;CAEzC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import "./stdout-guard-sJHFWVem.js";
2
- import { g as getMissingTranslations } from "./operations-BCJd7in3.js";
3
- import "./providers-BAwPjeCy.js";
4
- import "./php-reader-DuZ0Hyl_.js";
5
- import { o as splitList, t as createCommand } from "./_shared-Dv1EW2gy.js";
2
+ import { T as getMissingTranslations } from "./operations-CTo44gPu.js";
3
+ import "./providers-CHE2ffi6.js";
4
+ import "./php-reader-3Fgw80zK.js";
5
+ import { o as splitList, t as createCommand } from "./_shared-DFyy3sh8.js";
6
6
  //#region src/commands/missing.ts
7
7
  var missing_default = createCommand({
8
8
  name: "missing",
@@ -48,4 +48,4 @@ var missing_default = createCommand({
48
48
  //#endregion
49
49
  export { missing_default as default };
50
50
 
51
- //# sourceMappingURL=missing-0gSZKTgt.js.map
51
+ //# sourceMappingURL=missing-CcYrgd54.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"missing-0gSZKTgt.js","names":[],"sources":["../src/commands/missing.ts"],"sourcesContent":["import { createCommand, splitList } from './_shared.js'\nimport { getMissingTranslations } from '../core/operations.js'\n\nexport default createCommand({\n name: 'missing',\n description: 'Find translation keys missing in target locales',\n args: {\n layer: { type: 'string', description: 'Filter to a specific layer' },\n ref: { type: 'string', description: 'Reference locale (default: project default)' },\n targets: { type: 'string', description: 'Comma-separated target locales (default: all except ref)' },\n outputFile: { type: 'string', description: 'Write full output to this file path and return only a summary (useful for large outputs)' },\n failOnMissing: { type: 'boolean', description: 'Exit 2 when any key is missing (CI gate)', default: false },\n },\n gates: [{ flag: 'failOnMissing', counter: 'totalMissingKeys', threshold: 0 }],\n async run(args) {\n return getMissingTranslations({\n layer: args.layer,\n referenceLocale: args.ref,\n targetLocales: splitList(args.targets),\n projectDir: args.projectDir,\n outputFile: args.outputFile,\n })\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,kBAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM;EACJ,OAAO;GAAE,MAAM;GAAU,aAAa;GAA8B;EACpE,KAAK;GAAE,MAAM;GAAU,aAAa;GAA+C;EACnF,SAAS;GAAE,MAAM;GAAU,aAAa;GAA4D;EACpG,YAAY;GAAE,MAAM;GAAU,aAAa;GAA4F;EACvI,eAAe;GAAE,MAAM;GAAW,aAAa;GAA4C,SAAS;GAAO;EAC5G;CACD,OAAO,CAAC;EAAE,MAAM;EAAiB,SAAS;EAAoB,WAAW;EAAG,CAAC;CAC7E,MAAM,IAAI,MAAM;AACd,SAAO,uBAAuB;GAC5B,OAAO,KAAK;GACZ,iBAAiB,KAAK;GACtB,eAAe,UAAU,KAAK,QAAQ;GACtC,YAAY,KAAK;GACjB,YAAY,KAAK;GAClB,CAAC;;CAEL,CAAC"}
1
+ {"version":3,"file":"missing-CcYrgd54.js","names":[],"sources":["../src/commands/missing.ts"],"sourcesContent":["import { createCommand, splitList } from './_shared.js'\nimport { getMissingTranslations } from '../core/operations.js'\n\nexport default createCommand({\n name: 'missing',\n description: 'Find translation keys missing in target locales',\n args: {\n layer: { type: 'string', description: 'Filter to a specific layer' },\n ref: { type: 'string', description: 'Reference locale (default: project default)' },\n targets: { type: 'string', description: 'Comma-separated target locales (default: all except ref)' },\n outputFile: { type: 'string', description: 'Write full output to this file path and return only a summary (useful for large outputs)' },\n failOnMissing: { type: 'boolean', description: 'Exit 2 when any key is missing (CI gate)', default: false },\n },\n gates: [{ flag: 'failOnMissing', counter: 'totalMissingKeys', threshold: 0 }],\n async run(args) {\n return getMissingTranslations({\n layer: args.layer,\n referenceLocale: args.ref,\n targetLocales: splitList(args.targets),\n projectDir: args.projectDir,\n outputFile: args.outputFile,\n })\n },\n})\n"],"mappings":";;;;;;AAGA,IAAA,kBAAe,cAAc;CAC3B,MAAM;CACN,aAAa;CACb,MAAM;EACJ,OAAO;GAAE,MAAM;GAAU,aAAa;GAA8B;EACpE,KAAK;GAAE,MAAM;GAAU,aAAa;GAA+C;EACnF,SAAS;GAAE,MAAM;GAAU,aAAa;GAA4D;EACpG,YAAY;GAAE,MAAM;GAAU,aAAa;GAA4F;EACvI,eAAe;GAAE,MAAM;GAAW,aAAa;GAA4C,SAAS;GAAO;EAC5G;CACD,OAAO,CAAC;EAAE,MAAM;EAAiB,SAAS;EAAoB,WAAW;EAAG,CAAC;CAC7E,MAAM,IAAI,MAAM;AACd,SAAO,uBAAuB;GAC5B,OAAO,KAAK;GACZ,iBAAiB,KAAK;GACtB,eAAe,UAAU,KAAK,QAAQ;GACtC,YAAY,KAAK;GACjB,YAAY,KAAK;GAClB,CAAC;;CAEL,CAAC"}