@intlayer/babel 9.0.0-canary.9 → 9.0.1

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 (149) hide show
  1. package/dist/cjs/babel-plugin-intlayer-extract.cjs +3 -2
  2. package/dist/cjs/babel-plugin-intlayer-extract.cjs.map +1 -1
  3. package/dist/cjs/babel-plugin-intlayer-field-rename.cjs +160 -99
  4. package/dist/cjs/babel-plugin-intlayer-field-rename.cjs.map +1 -1
  5. package/dist/cjs/babel-plugin-intlayer-minify.cjs +11 -28
  6. package/dist/cjs/babel-plugin-intlayer-minify.cjs.map +1 -1
  7. package/dist/cjs/babel-plugin-intlayer-optimize.cjs +143 -13
  8. package/dist/cjs/babel-plugin-intlayer-optimize.cjs.map +1 -1
  9. package/dist/cjs/babel-plugin-intlayer-purge.cjs +38 -96
  10. package/dist/cjs/babel-plugin-intlayer-purge.cjs.map +1 -1
  11. package/dist/cjs/babel-plugin-intlayer-usage-analyzer.cjs +150 -51
  12. package/dist/cjs/babel-plugin-intlayer-usage-analyzer.cjs.map +1 -1
  13. package/dist/cjs/babelParser.cjs +62 -0
  14. package/dist/cjs/babelParser.cjs.map +1 -0
  15. package/dist/cjs/extractContent/babelProcessor.cjs +86 -75
  16. package/dist/cjs/extractContent/babelProcessor.cjs.map +1 -1
  17. package/dist/cjs/extractContent/contentWriter.cjs +10 -14
  18. package/dist/cjs/extractContent/contentWriter.cjs.map +1 -1
  19. package/dist/cjs/extractContent/extractContent.cjs +3 -3
  20. package/dist/cjs/extractContent/extractContent.cjs.map +1 -1
  21. package/dist/cjs/extractContent/processTsxFile.cjs +4 -7
  22. package/dist/cjs/extractContent/processTsxFile.cjs.map +1 -1
  23. package/dist/cjs/extractContent/utils/constants.cjs +2 -2
  24. package/dist/cjs/extractContent/utils/constants.cjs.map +1 -1
  25. package/dist/cjs/extractContent/utils/detectPackageName.cjs +0 -1
  26. package/dist/cjs/extractContent/utils/detectPackageName.cjs.map +1 -1
  27. package/dist/cjs/extractContent/utils/extractDictionaryInfo.cjs +4 -4
  28. package/dist/cjs/extractContent/utils/extractDictionaryInfo.cjs.map +1 -1
  29. package/dist/cjs/extractContent/utils/extractDictionaryKey.cjs +2 -3
  30. package/dist/cjs/extractContent/utils/extractDictionaryKey.cjs.map +1 -1
  31. package/dist/cjs/extractContent/utils/generateKey.cjs.map +1 -1
  32. package/dist/cjs/extractContent/utils/getComponentName.cjs.map +1 -1
  33. package/dist/cjs/extractContent/utils/getExistingIntlayerInfo.cjs.map +1 -1
  34. package/dist/cjs/extractContent/utils/getOrGenerateKey.cjs.map +1 -1
  35. package/dist/cjs/extractContent/utils/resolveDictionaryKey.cjs +0 -1
  36. package/dist/cjs/extractContent/utils/resolveDictionaryKey.cjs.map +1 -1
  37. package/dist/cjs/extractContent/utils/shouldExtract.cjs.map +1 -1
  38. package/dist/cjs/extractScriptBlocks.cjs +0 -1
  39. package/dist/cjs/extractScriptBlocks.cjs.map +1 -1
  40. package/dist/cjs/getExtractPluginOptions.cjs +2 -2
  41. package/dist/cjs/getExtractPluginOptions.cjs.map +1 -1
  42. package/dist/cjs/getOptimizePluginOptions.cjs +2 -3
  43. package/dist/cjs/getOptimizePluginOptions.cjs.map +1 -1
  44. package/dist/cjs/getPurgePluginOptions.cjs +2 -3
  45. package/dist/cjs/getPurgePluginOptions.cjs.map +1 -1
  46. package/dist/cjs/index.cjs +3 -0
  47. package/dist/cjs/normalizedFilesList.cjs +30 -0
  48. package/dist/cjs/normalizedFilesList.cjs.map +1 -0
  49. package/dist/cjs/transformers.cjs +20 -2
  50. package/dist/cjs/transformers.cjs.map +1 -1
  51. package/dist/esm/babel-plugin-intlayer-extract.mjs +3 -2
  52. package/dist/esm/babel-plugin-intlayer-extract.mjs.map +1 -1
  53. package/dist/esm/babel-plugin-intlayer-field-rename.mjs +159 -100
  54. package/dist/esm/babel-plugin-intlayer-field-rename.mjs.map +1 -1
  55. package/dist/esm/babel-plugin-intlayer-minify.mjs +12 -29
  56. package/dist/esm/babel-plugin-intlayer-minify.mjs.map +1 -1
  57. package/dist/esm/babel-plugin-intlayer-optimize.mjs +140 -9
  58. package/dist/esm/babel-plugin-intlayer-optimize.mjs.map +1 -1
  59. package/dist/esm/babel-plugin-intlayer-purge.mjs +40 -97
  60. package/dist/esm/babel-plugin-intlayer-purge.mjs.map +1 -1
  61. package/dist/esm/babel-plugin-intlayer-usage-analyzer.mjs +150 -51
  62. package/dist/esm/babel-plugin-intlayer-usage-analyzer.mjs.map +1 -1
  63. package/dist/esm/babelParser.mjs +60 -0
  64. package/dist/esm/babelParser.mjs.map +1 -0
  65. package/dist/esm/extractContent/babelProcessor.mjs +86 -75
  66. package/dist/esm/extractContent/babelProcessor.mjs.map +1 -1
  67. package/dist/esm/extractContent/contentWriter.mjs +6 -10
  68. package/dist/esm/extractContent/contentWriter.mjs.map +1 -1
  69. package/dist/esm/extractContent/extractContent.mjs +1 -1
  70. package/dist/esm/extractContent/extractContent.mjs.map +1 -1
  71. package/dist/esm/extractContent/processTsxFile.mjs +3 -6
  72. package/dist/esm/extractContent/processTsxFile.mjs.map +1 -1
  73. package/dist/esm/extractContent/utils/constants.mjs +2 -2
  74. package/dist/esm/extractContent/utils/constants.mjs.map +1 -1
  75. package/dist/esm/extractContent/utils/detectPackageName.mjs.map +1 -1
  76. package/dist/esm/extractContent/utils/extractDictionaryInfo.mjs +1 -1
  77. package/dist/esm/extractContent/utils/extractDictionaryInfo.mjs.map +1 -1
  78. package/dist/esm/extractContent/utils/extractDictionaryKey.mjs +1 -1
  79. package/dist/esm/extractContent/utils/extractDictionaryKey.mjs.map +1 -1
  80. package/dist/esm/extractContent/utils/generateKey.mjs.map +1 -1
  81. package/dist/esm/extractContent/utils/getComponentName.mjs.map +1 -1
  82. package/dist/esm/extractContent/utils/getExistingIntlayerInfo.mjs.map +1 -1
  83. package/dist/esm/extractContent/utils/getOrGenerateKey.mjs.map +1 -1
  84. package/dist/esm/extractContent/utils/resolveDictionaryKey.mjs.map +1 -1
  85. package/dist/esm/extractContent/utils/shouldExtract.mjs.map +1 -1
  86. package/dist/esm/extractScriptBlocks.mjs.map +1 -1
  87. package/dist/esm/getExtractPluginOptions.mjs +1 -1
  88. package/dist/esm/getExtractPluginOptions.mjs.map +1 -1
  89. package/dist/esm/getOptimizePluginOptions.mjs +1 -1
  90. package/dist/esm/getOptimizePluginOptions.mjs.map +1 -1
  91. package/dist/esm/getPurgePluginOptions.mjs +1 -1
  92. package/dist/esm/getPurgePluginOptions.mjs.map +1 -1
  93. package/dist/esm/index.mjs +3 -3
  94. package/dist/esm/normalizedFilesList.mjs +29 -0
  95. package/dist/esm/normalizedFilesList.mjs.map +1 -0
  96. package/dist/esm/transformers.mjs +20 -2
  97. package/dist/esm/transformers.mjs.map +1 -1
  98. package/dist/types/babel-plugin-intlayer-extract.d.ts +0 -1
  99. package/dist/types/babel-plugin-intlayer-extract.d.ts.map +1 -1
  100. package/dist/types/babel-plugin-intlayer-field-rename.d.ts +28 -10
  101. package/dist/types/babel-plugin-intlayer-field-rename.d.ts.map +1 -1
  102. package/dist/types/babel-plugin-intlayer-minify.d.ts +0 -1
  103. package/dist/types/babel-plugin-intlayer-minify.d.ts.map +1 -1
  104. package/dist/types/babel-plugin-intlayer-optimize.d.ts +32 -9
  105. package/dist/types/babel-plugin-intlayer-optimize.d.ts.map +1 -1
  106. package/dist/types/babel-plugin-intlayer-purge.d.ts +0 -1
  107. package/dist/types/babel-plugin-intlayer-purge.d.ts.map +1 -1
  108. package/dist/types/babel-plugin-intlayer-usage-analyzer.d.ts +35 -127
  109. package/dist/types/babel-plugin-intlayer-usage-analyzer.d.ts.map +1 -1
  110. package/dist/types/babelParser.d.ts +12 -0
  111. package/dist/types/babelParser.d.ts.map +1 -0
  112. package/dist/types/extractContent/babelProcessor.d.ts +5 -2
  113. package/dist/types/extractContent/babelProcessor.d.ts.map +1 -1
  114. package/dist/types/extractContent/contentWriter.d.ts +0 -1
  115. package/dist/types/extractContent/contentWriter.d.ts.map +1 -1
  116. package/dist/types/extractContent/extractContent.d.ts +1 -1
  117. package/dist/types/extractContent/extractContent.d.ts.map +1 -1
  118. package/dist/types/extractContent/index.d.ts +1 -1
  119. package/dist/types/extractContent/processTsxFile.d.ts +1 -1
  120. package/dist/types/extractContent/processTsxFile.d.ts.map +1 -1
  121. package/dist/types/extractContent/utils/constants.d.ts +3 -3
  122. package/dist/types/extractContent/utils/constants.d.ts.map +1 -1
  123. package/dist/types/extractContent/utils/detectPackageName.d.ts +0 -1
  124. package/dist/types/extractContent/utils/detectPackageName.d.ts.map +1 -1
  125. package/dist/types/extractContent/utils/extractDictionaryInfo.d.ts +0 -1
  126. package/dist/types/extractContent/utils/extractDictionaryInfo.d.ts.map +1 -1
  127. package/dist/types/extractContent/utils/extractDictionaryKey.d.ts.map +1 -1
  128. package/dist/types/extractContent/utils/generateKey.d.ts.map +1 -1
  129. package/dist/types/extractContent/utils/getComponentName.d.ts +0 -1
  130. package/dist/types/extractContent/utils/getComponentName.d.ts.map +1 -1
  131. package/dist/types/extractContent/utils/getExistingIntlayerInfo.d.ts +8 -5
  132. package/dist/types/extractContent/utils/getExistingIntlayerInfo.d.ts.map +1 -1
  133. package/dist/types/extractContent/utils/getOrGenerateKey.d.ts.map +1 -1
  134. package/dist/types/extractContent/utils/resolveDictionaryKey.d.ts +0 -1
  135. package/dist/types/extractContent/utils/resolveDictionaryKey.d.ts.map +1 -1
  136. package/dist/types/extractContent/utils/shouldExtract.d.ts.map +1 -1
  137. package/dist/types/extractScriptBlocks.d.ts.map +1 -1
  138. package/dist/types/getExtractPluginOptions.d.ts +0 -1
  139. package/dist/types/getExtractPluginOptions.d.ts.map +1 -1
  140. package/dist/types/getOptimizePluginOptions.d.ts +0 -1
  141. package/dist/types/getOptimizePluginOptions.d.ts.map +1 -1
  142. package/dist/types/getPurgePluginOptions.d.ts +0 -1
  143. package/dist/types/getPurgePluginOptions.d.ts.map +1 -1
  144. package/dist/types/index.d.ts +6 -5
  145. package/dist/types/normalizedFilesList.d.ts +12 -0
  146. package/dist/types/normalizedFilesList.d.ts.map +1 -0
  147. package/dist/types/transformers.d.ts +7 -2
  148. package/dist/types/transformers.d.ts.map +1 -1
  149. package/package.json +31 -23
@@ -1,6 +1,5 @@
1
1
  import { PluginObject } from "@babel/core";
2
2
  import * as BabelTypes from "@babel/types";
3
-
4
3
  //#region src/babel-plugin-intlayer-minify.d.ts
5
4
  /**
6
5
  * Pre-resolved options accepted by {@link intlayerMinifyBabelPlugin}.
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-intlayer-minify.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-minify.ts"],"mappings":";;;;;;AAgBA;;;;;KAAY,mBAAA;EAkBV;;;;EAbA,OAAA;EA8ID;;;;;EAvIC,MAAA;EA+DE;;;;EAzDF,QAAA;;;;EAKA,aAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkDW,yBAAA,GAA6B,KAAA;EACxC,KAAA,SAAc,UAAA;AAAA,MACZ,YAAA"}
1
+ {"version":3,"file":"babel-plugin-intlayer-minify.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-minify.ts"],"mappings":";;;;;;;;;;KAgBY;;;;;EAKV;;;;;;EAOA;;;;;EAMA;;;;EAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkDW,4BAAyB;EACpC,cAAc;MACZ"}
@@ -1,8 +1,8 @@
1
1
  import { PluginObject, PluginPass } from "@babel/core";
2
2
  import * as BabelTypes from "@babel/types";
3
-
3
+ import { CallerDescriptor } from "@intlayer/config/callers";
4
4
  //#region src/babel-plugin-intlayer-optimize.d.ts
5
- declare const CALLER_LIST: readonly ["useIntlayer", "getIntlayer"];
5
+ declare const CALLER_LIST: readonly ['useIntlayer', 'getIntlayer'];
6
6
  /**
7
7
  * Options for the optimization Babel plugin
8
8
  */
@@ -63,15 +63,38 @@ type OptimizePluginOptions = {
63
63
  * Whether the current transform is for an SSR bundle.
64
64
  */
65
65
  isServer?: boolean;
66
+ /**
67
+ * Compat-adapter caller descriptors injected by the compat packages'
68
+ * bundler plugins (e.g. `@intlayer/react-i18next/plugin`).
69
+ *
70
+ * Callers carrying `staticReplacement` / `dynamicReplacement` are rewritten
71
+ * the same way as native `useIntlayer` calls: the namespace string argument
72
+ * is replaced by a pre-imported dictionary object and the import specifier
73
+ * is re-pointed to the dictionary-accepting variant, e.g.
74
+ * `useTranslation('about')` → `useDictionary(_dictHash)`.
75
+ *
76
+ * No compat-specific name is hard-coded in this plugin — the whole rewrite
77
+ * is driven by these descriptors.
78
+ */
79
+ compatCallers?: CallerDescriptor[];
66
80
  };
67
81
  type State = PluginPass & {
68
- opts: OptimizePluginOptions; /** map key → generated ident (per-file) for static imports */
69
- _newStaticImports?: Map<string, BabelTypes.Identifier>; /** map key → generated ident (per-file) for dynamic imports */
70
- _newDynamicImports?: Map<string, BabelTypes.Identifier>; /** whether the current file imported *any* intlayer package */
71
- _hasValidImport?: boolean; /** map from local identifier name to the imported intlayer func name ('useIntlayer' | 'getIntlayer') */
72
- _callerMap?: Map<string, (typeof CALLER_LIST)[number]>; /** map from local identifier name to the intlayer package it was imported from */
73
- _callerPackageMap?: Map<string, string>; /** whether the current file *is* the dictionaries entry file */
74
- _isDictEntry?: boolean; /** whether the current file is included in the filesList */
82
+ opts: OptimizePluginOptions;
83
+ /** map key → generated ident (per-file) for static imports */
84
+ _newStaticImports?: Map<string, BabelTypes.Identifier>;
85
+ /** map key → generated ident (per-file) for dynamic imports */
86
+ _newDynamicImports?: Map<string, BabelTypes.Identifier>;
87
+ /** whether the current file imported *any* intlayer package */
88
+ _hasValidImport?: boolean;
89
+ /** map from local identifier name to the imported intlayer func name ('useIntlayer' | 'getIntlayer') */
90
+ _callerMap?: Map<string, (typeof CALLER_LIST)[number]>;
91
+ /** map from local identifier name to the intlayer package it was imported from */
92
+ _callerPackageMap?: Map<string, string>;
93
+ /** map from local identifier name to the compat caller descriptor it was imported as */
94
+ _compatCallerMap?: Map<string, CallerDescriptor>;
95
+ /** whether the current file *is* the dictionaries entry file */
96
+ _isDictEntry?: boolean;
97
+ /** whether the current file is included in the filesList */
75
98
  _isIncluded?: boolean;
76
99
  };
77
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-intlayer-optimize.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-optimize.ts"],"mappings":";;;;cAwBM,WAAA;;AAtB0C;;KAqEpC,qBAAA;EA/C+C;;AA+C3D;EAIE,QAAA;;;;EAIA,eAAA;EAIA;;;EAAA,qBAAA;EAgBA;;;EAZA,6BAAA;EA4BA;;;EAxBA,uBAAA;EAuCA;;;EAnCA,sBAAA;EAsCQ;;;EAlCR,4BAAA;EAqCgC;;;EAjChC,oBAAA;EAuCiC;;;EAnCjC,0BAAA;EAqCuB;;;EAjCvB,sBAAA;EAyBA;;;EArBA,UAAA;EAuBA;;;EAnBA,iBAAA,GAAoB,MAAA;EAqBpB;;;EAdA,SAAA;EAkBA;;;EAdA,QAAA;AAAA;AAAA,KAGG,KAAA,GAAQ,UAAA;EACX,IAAA,EAAM,qBAAA,EA6mBP;EA3mBC,iBAAA,GAAoB,GAAA,SAAY,UAAA,CAAW,UAAA,GAgN7B;EA9Md,kBAAA,GAAqB,GAAA,SAAY,UAAA,CAAW,UAAA,GA+M1C;EA7MF,eAAA,YA6Mc;EA3Md,UAAA,GAAa,GAAA,iBAAoB,WAAA,YA0MnB;EAxMd,iBAAA,GAAoB,GAAA,kBAyMlB;EAvMF,YAAA,YAuMoB;EArMpB,WAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmMW,2BAAA,GAA+B,KAAA;EAC1C,KAAA,SAAc,UAAA;AAAA,MACZ,YAAA,CAAa,KAAA"}
1
+ {"version":3,"file":"babel-plugin-intlayer-optimize.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-optimize.ts"],"mappings":";;;;cA6BM;;;;KAqDM;;;;EAIV;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAIA,oBAAoB;;;;EAOpB;;;;EAIA;;;;;;;;;;;;;;EAcA,gBAAgB;;KAGb,QAAQ;EACX,MAAM;;EAEN,oBAAoB,YAAY,WAAW;;EAE3C,qBAAqB,YAAY,WAAW;;EAE5C;;EAEA,aAAa,oBAAoB;;EAEjC,oBAAoB;;EAEpB,mBAAmB,YAAY;;EAE/B;;EAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8RW,8BAA2B;EACtC,cAAc;MACZ,aAAa"}
@@ -1,7 +1,6 @@
1
1
  import { CompatCallerConfig, PruneContext } from "./babel-plugin-intlayer-usage-analyzer.js";
2
2
  import { PluginObject } from "@babel/core";
3
3
  import * as BabelTypes from "@babel/types";
4
-
5
4
  //#region src/babel-plugin-intlayer-purge.d.ts
6
5
  /**
7
6
  * Pre-resolved options accepted by {@link intlayerPurgeBabelPlugin}.
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-intlayer-purge.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-purge.ts"],"mappings":";;;;;;;AA6BA;;;;;KAAY,kBAAA;EAmBV;;;;;EAbA,OAAA;EAoDA;;;;EA9CA,KAAA;EA8DkC;AAyBpC;;;;EAhFE,MAAA;EA0sBW;;;;;EAnsBX,QAAA;EAmsBuC;;;;EA7rBvC,aAAA;;;;;EAMA,eAAA;;;;;EAMA,sBAAA;;;;;;EAOA,kBAAA;;;;;;EAOA,4BAAA,EAA8B,MAAA;;;;;;;;;;;;EAgB9B,aAAA,GAAgB,kBAAA;AAAA;;;;;;;;;cAyBL,qBAAA,GAAyB,OAAA,aAAkB,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0nB3C,wBAAA,GAA4B,MAAA;EACvC,KAAA,SAAc,UAAA;AAAA,MACZ,YAAA"}
1
+ {"version":3,"file":"babel-plugin-intlayer-purge.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-purge.ts"],"mappings":";;;;;;;;;;;KAgCY;;;;;;EAMV;;;;;EAMA;;;;;;EAOA;;;;;;EAOA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;;EAOA;;;;;;EAOA,8BAA8B;;;;;;;;;;;;EAgB9B,gBAAgB;;;;;;;;;;cAqBL,wBAAqB,oBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwjB3C,2BAAwB;EACnC,cAAc;MACZ"}
@@ -1,6 +1,6 @@
1
- import { PluginObj } from "@babel/core";
1
+ import { PluginObject } from "@babel/core";
2
2
  import * as BabelTypes from "@babel/types";
3
-
3
+ import { CallerDescriptor, CallerDescriptor as CallerDescriptor$1, CallerResultShape, CallerValueSource } from "@intlayer/config/callers";
4
4
  //#region src/babel-plugin-intlayer-usage-analyzer.d.ts
5
5
  /**
6
6
  * Dictionary field usage result for a single dictionary key.
@@ -23,6 +23,22 @@ type NestedRenameEntry = {
23
23
  };
24
24
  /** A level of the field-rename tree, mapping original field names to entries. */
25
25
  type NestedRenameMap = Map<string, NestedRenameEntry>;
26
+ /**
27
+ * One opaque consumption of a dictionary content value: the value at
28
+ * `fieldPath` escapes static analysis (passed as-is to a child component or a
29
+ * function argument), so its children must keep their original key names in
30
+ * the compiled JSON.
31
+ */
32
+ type OpaqueFieldOccurrence = {
33
+ /**
34
+ * Original (pre-rename) user-defined field names from the content root to
35
+ * the escaping value, e.g. `['sections', 'hero']` for
36
+ * `<Card data={content.sections.hero} />`.
37
+ */
38
+ fieldPath: string[];
39
+ /** Source locations (`filePath:line`) where the value escapes. */
40
+ locations: string[];
41
+ };
26
42
  /**
27
43
  * Shared mutable state created once by the vite plugin and passed by reference
28
44
  * to the usage-analyzer (writer) and the prune/minify plugins (readers).
@@ -61,14 +77,17 @@ type PruneContext = {
61
77
  */
62
78
  dictionaryKeyToFieldRenameMap: Map<string, NestedRenameMap>;
63
79
  /**
64
- * Maps each dictionary key to a per-field list of source locations where
65
- * the field value is consumed "opaquely" (passed as-is to a child component
66
- * or function argument). When a field is opaque AND has nested user-defined
67
- * structure, its children must not be renamed.
80
+ * Maps each dictionary key to the content field paths whose values are
81
+ * consumed "opaquely" (passed as-is to a child component or function
82
+ * argument). When an opaque value has nested user-defined structure, its
83
+ * children must not be renamed.
68
84
  *
69
- * Structure: dictionaryKey → fieldName → ["filePath:line", …]
85
+ * The inner map is keyed by the dot-joined field path for de-duplication
86
+ * only; the authoritative path is {@link OpaqueFieldOccurrence.fieldPath}.
87
+ *
88
+ * Structure: dictionaryKey → joinedFieldPath → { fieldPath, locations }
70
89
  */
71
- dictionaryKeysWithOpaqueTopLevelFields: Map<string, Map<string, string[]>>;
90
+ dictionaryKeysWithOpaqueFields: Map<string, Map<string, OpaqueFieldOccurrence>>;
72
91
  /**
73
92
  * Dictionary keys for which field-key renaming must be skipped even if a
74
93
  * finite field-usage set was determined.
@@ -99,124 +118,15 @@ type PruneContext = {
99
118
  };
100
119
  declare const createPruneContext: () => PruneContext;
101
120
  /** Canonical intlayer caller names that trigger usage analysis. */
102
- declare const INTLAYER_CALLER_NAMES: readonly ["useIntlayer", "getIntlayer"];
121
+ declare const INTLAYER_CALLER_NAMES: readonly ['useIntlayer', 'getIntlayer'];
103
122
  type IntlayerCallerName = (typeof INTLAYER_CALLER_NAMES)[number];
104
- /**
105
- * Describes how a compat-adapter "namespace caller" exposes the dictionary key
106
- * (namespace) and the translation function `t`.
107
- *
108
- * Compat adapters (`@intlayer/react-i18next`, `@intlayer/next-intl`, …) expose
109
- * the original i18n library API while delegating to intlayer under the hood.
110
- * Their call sites look like:
111
- *
112
- * const { t } = useTranslation('about'); t('counter.label')
113
- * const t = useTranslations('about'); t('counter.label')
114
- * const t = await getTranslations('about');
115
- * const t = i18n.getFixedT(null, 'about', 'counter');
116
- * const { t } = useI18n({ namespace: 'about' });
117
- *
118
- * The dictionary key is the *namespace* argument and the consumed top-level
119
- * field is the **first segment** of every dot-path passed to `t()` (or the
120
- * first segment of `keyPrefix` when one is supplied).
121
- */
122
- type CompatNamespaceSource = /** Namespace is a positional argument (string literal or `{ namespace }`). */{
123
- from: 'argument';
124
- index: number;
125
- } /** Namespace is a property of an options object argument. */ | {
126
- from: 'option';
127
- argumentIndex: number;
128
- property: string;
129
- }
130
- /**
131
- * Namespace is a compile-time constant — the same dictionary key is used for
132
- * every call site. Used by single-catalog libraries such as lingui, where all
133
- * translations live in a `messages` dictionary regardless of call location.
134
- */
135
- | {
136
- from: 'fixed';
137
- value: string;
138
- }
139
- /**
140
- * Namespace is the first dot-segment of the `id` in the first call argument.
141
- *
142
- * Used for libraries like react-intl where the full dotted id encodes both the
143
- * dictionary key and the field path in a single string:
144
- * `formatMessage({ id: 'home.title' })` → dictionaryKey = `'home'`, field = `'title'`
145
- *
146
- * Works with both string form (`func('home.title')`) and descriptor form
147
- * (`func({ id: 'home.title', ... })`). The paired `translationFunction` should
148
- * be `'self'` so the field (second segment) is also extracted from the same call.
149
- */
150
- | {
151
- from: 'path-first-segment';
152
- };
153
123
  /**
154
124
  * Configuration entry for a single compat namespace caller.
125
+ *
126
+ * @deprecated Alias kept for backward compatibility — use the shared
127
+ * {@link CallerDescriptor} from `@intlayer/config/callers` instead.
155
128
  */
156
- type CompatCallerConfig = {
157
- /** The imported (or method) function name, e.g. `'useTranslation'`. */callerName: string;
158
- /**
159
- * Module specifiers from which `callerName` must be imported to be treated as
160
- * a compat caller. Includes both the original library names and their
161
- * `@intlayer/*` adapter equivalents, because the bundler aliases the former
162
- * to the latter but user source code may import either.
163
- *
164
- * Ignored when `matchAsMethod` is `true`.
165
- */
166
- importSources: string[];
167
- /**
168
- * When `true`, the caller is matched by method name on any object
169
- * (`x.getFixedT(...)`) without an import check. Used for `i18next` instance
170
- * methods that are never imported as named specifiers.
171
- */
172
- matchAsMethod?: boolean; /** How the dictionary key (namespace) is read from the call arguments. */
173
- namespace: CompatNamespaceSource;
174
- /**
175
- * Optional location of a `keyPrefix` that prefixes every `t()` path. When a
176
- * static prefix is present, the only consumed top-level field is the first
177
- * segment of the prefix.
178
- */
179
- keyPrefix?: CompatNamespaceSource;
180
- /**
181
- * How the translation function is obtained from the call result.
182
- *
183
- * - `'return-value'` — `const t = useTranslations('ns'); t('key')`
184
- * - `'destructured-t'` — `const { t } = useTranslation('ns'); t('key')`
185
- * - `'self'` — the caller IS the translation call;
186
- * the first argument is the message key.
187
- * Used for lingui's `i18n._('key')` / `i18n.t('key')`.
188
- * - `'all'` — mark the entire dictionary as used without tracking
189
- * individual fields. Use when static key analysis is
190
- * impossible (e.g. lingui hashed IDs, Angular templates).
191
- */
192
- translationFunction: 'return-value' | 'destructured-t' | 'self' | 'all';
193
- /**
194
- * When `true`, the message key is a *flat* dictionary field that itself
195
- * contains dots (e.g. lingui's `i18n._('results-table.bundleSize')`, where the
196
- * catalog stores the entry under the literal `'results-table.bundleSize'` key
197
- * rather than nesting it as `{ 'results-table': { bundleSize } }`).
198
- *
199
- * The whole key is then recorded as the consumed top-level field. When unset
200
- * (the default), only the first dot-segment is recorded, matching libraries
201
- * whose dotted keys map onto nested dictionary objects (next-intl, vue-i18n).
202
- *
203
- * Only meaningful with `translationFunction: 'self'` and a
204
- * `'fixed'` / `'argument'` / `'option'` namespace.
205
- */
206
- flatKey?: boolean;
207
- /**
208
- * When set, the caller is *also* matched as a JSX element whose local name is
209
- * `callerName` (gated by `importSources`). The named attribute is read as the
210
- * message id and analysed with the same `namespace` + `translationFunction`
211
- * (`'self'` / `'all'`) semantics as the call-expression form.
212
- *
213
- * Required for libraries with a JSX message component, e.g. react-intl's
214
- * `<FormattedMessage id="home.title" />`. Without it, JSX usages are invisible
215
- * to the analyser and field-level pruning of the same dictionary becomes
216
- * unsafe (it could prune a field only referenced from JSX).
217
- */
218
- jsxIdAttribute?: string;
219
- };
129
+ type CompatCallerConfig = CallerDescriptor$1;
220
130
  /**
221
131
  * Default registry of compat namespace callers.
222
132
  *
@@ -244,11 +154,9 @@ declare const DEFAULT_COMPAT_CALLERS: CompatCallerConfig[];
244
154
  */
245
155
  declare const makeUsageAnalyzerBabelPlugin: (pruneContext: PruneContext, options?: {
246
156
  compatCallers?: CompatCallerConfig[];
247
- }) => ({
248
- types: babelTypes
249
- }: {
157
+ }) => ({ types: babelTypes }: {
250
158
  types: typeof BabelTypes;
251
- }) => PluginObj;
159
+ }) => PluginObject;
252
160
  //#endregion
253
- export { CompatCallerConfig, CompatNamespaceSource, DEFAULT_COMPAT_CALLERS, DictionaryFieldUsage, INTLAYER_CALLER_NAMES, IntlayerCallerName, NestedRenameEntry, NestedRenameMap, PruneContext, createPruneContext, makeUsageAnalyzerBabelPlugin };
161
+ export { type CallerDescriptor, type CallerResultShape, type CallerValueSource, CompatCallerConfig, DEFAULT_COMPAT_CALLERS, DictionaryFieldUsage, INTLAYER_CALLER_NAMES, IntlayerCallerName, NestedRenameEntry, NestedRenameMap, OpaqueFieldOccurrence, PruneContext, createPruneContext, makeUsageAnalyzerBabelPlugin };
254
162
  //# sourceMappingURL=babel-plugin-intlayer-usage-analyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"babel-plugin-intlayer-usage-analyzer.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-usage-analyzer.ts"],"mappings":";;;;;;AAYA;;;;;KAAY,oBAAA,GAAuB,GAAA;;;;;;;;KASvB,iBAAA;EACV,SAAA;EACA,QAAA,EAAU,eAAA;AAAA;;KAIA,eAAA,GAAkB,GAAA,SAAY,iBAAA;AAS1C;;;;;;;AAAA,KAAY,YAAA;EAiCqB;;;;;EA3B/B,4BAAA,EAA8B,GAAA,SAAY,oBAAA;EA+Db;;;;EAzD7B,yBAAA,EAA2B,GAAA;EAAA;;;;;EAO3B,wBAAA;EAc2C;;;;;EAP3C,mCAAA,EAAqC,GAAA;EA2CrC;;;;;EApCA,6BAAA,EAA+B,GAAA,SAAY,eAAA;EA0ChC;;;;;AAiBb;;;EAjDE,sCAAA,EAAwC,GAAA,SAAY,GAAA;EAiDsB;AAC5E;;;;;AAsBA;;;;;;EA1DE,+BAAA,EAAiC,GAAA;EA8Db;;;;;;;AAuBtB;;;EAzEE,wBAAA,EAA0B,GAAA;IAEtB,YAAA;IAAsB,aAAA;EAAA;AAAA;AAAA,cAIf,kBAAA,QAAyB,YAAA;;cAiBzB,qBAAA;AAAA,KACD,kBAAA,WAA6B,qBAAA;;;;;AA8HzC;;;;;AA22BA;;;;;;;;;KAn9BY,qBAAA;EAEN,IAAA;EAAkB,KAAA;AAAA;EAElB,IAAA;EAAgB,aAAA;EAAuB,QAAA;AAAA;;;;;;;EAMvC,IAAA;EAAe,KAAA;AAAA;;;;;;;;;;;;;EAYf,IAAA;AAAA;;;;KAKM,kBAAA;yEAEV,UAAA;;;;;;;;;EASA,aAAA;;;;;;EAMA,aAAA;EAEA,SAAA,EAAW,qBAAA;;;;;;EAMX,SAAA,GAAY,qBAAA;;;;;;;;;;;;;EAaZ,mBAAA;;;;;;;;;;;;;;EAcA,OAAA;;;;;;;;;;;;EAYA,cAAA;AAAA;;;;;;;;;;;cAaW,sBAAA,EAAwB,kBAAA;;;;;;;;;;;;;;;cA22BxB,4BAAA,GAET,YAAA,EAAc,YAAA,EACd,OAAA;EAAY,aAAA,GAAgB,kBAAA;AAAA;EAE7B,KAAA,EAAA;AAAA;EAAyB,KAAA,SAAc,UAAA;AAAA,MAAe,SAAA"}
1
+ {"version":3,"file":"babel-plugin-intlayer-usage-analyzer.d.ts","names":[],"sources":["../../src/babel-plugin-intlayer-usage-analyzer.ts"],"mappings":";;;;;;;;;;;KAgBY,uBAAuB;;;;;;;;KASvB;EACV;EACA,UAAU;;;KAIA,kBAAkB,YAAY;;;;;;;KAQ9B;;;;;;EAMV;;EAGA;;;;;;;;;KAUU;;;;;;EAMV,8BAA8B,YAAY;;;;;EAM1C,2BAA2B;;;;;;EAO3B;;;;;;EAOA,qCAAqC;;;;;;EAOrC,+BAA+B,YAAY;;;;;;;;;;;;EAa3C,gCAAgC,YAE9B,YAAY;;;;;;;;;;;;;EAed,iCAAiC;;;;;;;;;;;EAYjC,0BAA0B;IAEtB;IAAsB;;;cAIf,0BAAyB;;cAiBzB;KACD,6BAA6B;;;;;;;KAmB7B,qBAAqB;;;;;;;;;;;cAYpB,wBAAwB;;;;;;;;;;;;;;;cAmiCxB,+BAA4B,cAEvB,cAAY;EACd,gBAAgB;SAAsB,OAAA;EAE1B,cAAc;MAAe"}
@@ -0,0 +1,12 @@
1
+ //#region src/babelParser.d.ts
2
+ /** A parser object accepted by `recast.parse`'s `parser` option. */
3
+ type RecastParser = {
4
+ parse: (source: string) => unknown;
5
+ };
6
+ /** Drop-in replacement for `recast/parsers/typescript` (TS without JSX). */
7
+ declare const typescriptParser: RecastParser;
8
+ /** Drop-in replacement for `recast/parsers/babel-ts` (TS *and* JSX). */
9
+ declare const babelTsParser: RecastParser;
10
+ //#endregion
11
+ export { RecastParser, babelTsParser, typescriptParser };
12
+ //# sourceMappingURL=babelParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babelParser.d.ts","names":[],"sources":["../../src/babelParser.ts"],"mappings":";;KAuDY;EACV,QAAQ;;;cAIG,kBAAkB;;cAMlB,eAAe"}
@@ -1,7 +1,8 @@
1
+ import { ExistingIntlayerInfo } from "./utils/getExistingIntlayerInfo.js";
2
+ import "./utils/index.js";
1
3
  import * as t from "@babel/types";
2
4
  import { IntlayerConfig } from "@intlayer/types/config";
3
5
  import { NodePath } from "@babel/traverse";
4
-
5
6
  //#region src/extractContent/babelProcessor.d.ts
6
7
  type BabelReplacement = {
7
8
  path: NodePath;
@@ -26,7 +27,9 @@ declare const extractBabelContentForComponents: (ast: t.File, fileCode: string,
26
27
  componentsNeedingHooks: Set<NodePath>;
27
28
  componentKeyMap: Map<t.Node, string>;
28
29
  componentPaths: NodePath[];
29
- hookMap: Map<t.Node, "useIntlayer" | "getIntlayer">;
30
+ hookMap: Map<t.Node, 'useIntlayer' | 'getIntlayer'>;
31
+ /** Cached `getExistingIntlayerInfo` result per component node, so callers do not re-traverse. */
32
+ existingInfoByNode: Map<t.Node, ExistingIntlayerInfo | undefined>;
30
33
  isSolid: boolean;
31
34
  };
32
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"babelProcessor.d.ts","names":[],"sources":["../../../src/extractContent/babelProcessor.ts"],"mappings":";;;;;KAYY,gBAAA;EACV,IAAA,EAAM,QAAA;EACN,GAAA;EACA,IAAA;EAOA,YAAA;EACA,iBAAA,GAAoB,CAAA,CAAE,IAAA;EACtB,SAAA;AAAA;;;;;cAiFW,uBAAA,GACX,IAAA,EAAM,QAAA,CAAS,CAAA,CAAE,UAAA,GAAa,CAAA,CAAE,WAAA,GAChC,QAAA,UACA,YAAA,EAAc,GAAA,UACd,sBAAA,GAAyB,IAAA,EAAM,QAAA,aAC/B,gBAAA,EAAkB,MAAA,SAAe,MAAA,mBACjC,YAAA,EAAc,gBAAA,IACd,YAAA,EAAc,GAAA,CAAI,CAAA,CAAE,IAAA;;;;;cAwIT,gCAAA,GACX,GAAA,EAAK,CAAA,CAAE,IAAA,EACP,QAAA,UACA,YAAA,EAAc,GAAA,UACd,UAAA,UACA,aAAA,EAAe,cAAA,EACf,QAAA,UACA,oBAAA,GAAsB,MAAA;EAEtB,gBAAA,EAAkB,MAAA,SAAe,MAAA;EACjC,YAAA,EAAc,gBAAA;EACd,sBAAA,EAAwB,GAAA,CAAI,QAAA;EAC5B,eAAA,EAAiB,GAAA,CAAI,CAAA,CAAE,IAAA;EACvB,cAAA,EAAgB,QAAA;EAChB,OAAA,EAAS,GAAA,CAAI,CAAA,CAAE,IAAA;EACf,OAAA;AAAA;;;;cAicW,gBAAA,GACX,GAAA,EAAK,CAAA,CAAE,IAAA,EACP,QAAA,UACA,YAAA,EAAc,GAAA,UACd,aAAA,EAAe,cAAA,EACf,QAAA,UACA,oBAAA,GAAsB,MAAA;EAEtB,gBAAA,EAAkB,MAAA;EAClB,YAAA,EAAc,gBAAA;AAAA"}
1
+ {"version":3,"file":"babelProcessor.d.ts","names":[],"sources":["../../../src/extractContent/babelProcessor.ts"],"mappings":";;;;;;KAaY;EACV,MAAM;EACN;EACA;EAOA;EACA,oBAAoB,EAAE;EACtB;;;;;;cA4IW,0BAAuB,MAC5B,SAAS,EAAE,aAAa,EAAE,cAAY,kBAC5B,cACF,aAAW,yBACA,MAAM,qBAAmB,kBAChC,eAAe,yBAAuB,cAC1C,oBAAkB,cAClB,IAAI,EAAE;;;;;cAwIT,mCAAgC,KACtC,EAAE,MAAI,kBACK,cACF,aAAW,oBACP,eACH,gBAAc,kBACb,uBACM;EAEtB,kBAAkB,eAAe;EACjC,cAAc;EACd,wBAAwB,IAAI;EAC5B,iBAAiB,IAAI,EAAE;EACvB,gBAAgB;EAChB,SAAS,IAAI,EAAE;;EAEf,oBAAoB,IAAI,EAAE,MAAM;EAChC;;;;;cA6ZW,mBAAgB,KACtB,EAAE,MAAI,kBACK,cACF,aAAW,eACV,gBAAc,kBACb,uBACM;EAEtB,kBAAkB;EAClB,cAAc"}
@@ -1,6 +1,5 @@
1
1
  import { IntlayerConfig } from "@intlayer/types/config";
2
2
  import { Dictionary, DictionaryKey } from "@intlayer/types/dictionary";
3
-
4
3
  //#region src/extractContent/contentWriter.d.ts
5
4
  /**
6
5
  * Translation node structure used in dictionaries
@@ -1 +1 @@
1
- {"version":3,"file":"contentWriter.d.ts","names":[],"sources":["../../../src/extractContent/contentWriter.ts"],"mappings":";;;;;;AAY4E;KA2BvE,eAAA;EACH,QAAA;EACA,WAAA,EAAa,MAAA;AAAA;;;;KAMV,oBAAA,GAAuB,MAAA,SAAe,eAAA;AANtB;;;;;AAmBrB;AAnBqB,cAmBR,uCAAA,GACX,gBAAA,EAAkB,MAAA,kBAClB,kBAAA,EAAoB,UAAA,SACpB,aAAA,aACC,oBAAA;;;;;;;cAkDU,oCAAA,GACX,gBAAA,EAAkB,MAAA,kBAClB,kBAAA,EAAoB,UAAA,YACnB,MAAA;;;;cA8CU,kBAAA,GACX,gBAAA,EAAkB,MAAA,kBAClB,aAAA,EAAe,aAAA,EACf,QAAA,UACA,aAAA,EAAe,cAAA,KACd,OAAA"}
1
+ {"version":3,"file":"contentWriter.d.ts","names":[],"sources":["../../../src/extractContent/contentWriter.ts"],"mappings":";;;;;;KAmCK;EACH;EACA,aAAa;;;;;KAMV,uBAAuB,eAAe;;;;;;;cAa9B,0CAAuC,kBAChC,wBAAsB,oBACpB,mBAAiB,0BAEpC;;;;;;;cAkDU,uCAAoC,kBAC7B,wBAAsB,oBACpB,sBACnB;;;;cA8CU,qBAAkB,kBACX,wBAAsB,eACzB,eAAa,kBACZ,eACD,mBACd"}
@@ -1,7 +1,7 @@
1
1
  import { PackageName } from "./utils/constants.js";
2
+ import "./utils/index.js";
2
3
  import { IntlayerConfig } from "@intlayer/types/config";
3
4
  import { GetConfigurationOptions } from "@intlayer/config/node";
4
-
5
5
  //#region src/extractContent/extractContent.d.ts
6
6
  type ExtractIntlayerOptions = {
7
7
  configOptions?: GetConfigurationOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"extractContent.d.ts","names":[],"sources":["../../../src/extractContent/extractContent.ts"],"mappings":";;;;;KA0BY,sBAAA;EACV,aAAA,GAAgB,uBAAA;EAChB,QAAA;EACA,eAAA;EACA,oBAAA,GAAuB,MAAA;EACvB,aAAA,GAAgB,cAAA;EAChB,IAAA;EACA,SAAA,IAAa,MAAA;IACX,GAAA;IACA,OAAA,EAAS,MAAA;IACT,QAAA;EAAA,aACW,OAAA;AAAA;AAAA,KAsRV,aAAA;EACH,eAAA;EACA,mBAAA,EAAqB,MAAA,SAAe,MAAA;AAAA;AAAA,cAmCzB,cAAA,GACX,QAAA,UACA,WAAA,EAAa,WAAA,EACb,OAAA,GAAU,sBAAA,KACT,OAAA,CAAQ,aAAA;;;;;;;;;;;cA8EE,kBAAA,GACX,QAAA,UACA,WAAA,EAAa,WAAA,EACb,OAAA,GAAU,sBAAA,KACT,aAAA"}
1
+ {"version":3,"file":"extractContent.d.ts","names":[],"sources":["../../../src/extractContent/extractContent.ts"],"mappings":";;;;;KA0BY;EACV,gBAAgB;EAChB;EACA;EACA,uBAAuB;EACvB,gBAAgB;EAChB;EACA,aAAa;IACX;IACA,SAAS;IACT;eACW;;KAsRV;EACH;EACA,qBAAqB,eAAe;;cAmCzB,iBAAc,kBACT,aACH,aAAW,UACd,2BACT,QAAQ;;;;;;;;;;;cA8EE,qBAAkB,kBACb,aACH,aAAW,UACd,2BACT"}
@@ -1,9 +1,9 @@
1
1
  import { ATTRIBUTES_TO_EXTRACT, PackageName, SERVER_CAPABLE_PACKAGES, packageList } from "./utils/constants.js";
2
- import { mergeWithExistingMultilingualDictionary, mergeWithExistingPerLocaleDictionary, writeContentHelper } from "./contentWriter.js";
3
2
  import { detectPackageName } from "./utils/detectPackageName.js";
4
3
  import { ExtractDictionaryInfoOptions, ResolveContentFilePaths, extractDictionaryInfo, getOutput, resolveContentFilePaths } from "./utils/extractDictionaryInfo.js";
5
4
  import { extractDictionaryKey, extractDictionaryKeyFromPath } from "./utils/extractDictionaryKey.js";
6
5
  import { generateKey } from "./utils/generateKey.js";
7
6
  import { getComponentName } from "./utils/getComponentName.js";
7
+ import { mergeWithExistingMultilingualDictionary, mergeWithExistingPerLocaleDictionary, writeContentHelper } from "./contentWriter.js";
8
8
  import { ExtractIntlayerOptions, extractContent, extractContentSync } from "./extractContent.js";
9
9
  export { ATTRIBUTES_TO_EXTRACT, ExtractDictionaryInfoOptions, ExtractIntlayerOptions, PackageName, ResolveContentFilePaths, SERVER_CAPABLE_PACKAGES, detectPackageName, extractContent, extractContentSync, extractDictionaryInfo, extractDictionaryKey, extractDictionaryKeyFromPath, generateKey, getComponentName, getOutput, mergeWithExistingMultilingualDictionary, mergeWithExistingPerLocaleDictionary, packageList, resolveContentFilePaths, writeContentHelper };
@@ -1,6 +1,6 @@
1
1
  import { PackageName } from "./utils/constants.js";
2
+ import "./utils/index.js";
2
3
  import { IntlayerConfig } from "@intlayer/types/config";
3
-
4
4
  //#region src/extractContent/processTsxFile.d.ts
5
5
  type TextEdit = {
6
6
  start: number;
@@ -1 +1 @@
1
- {"version":3,"file":"processTsxFile.d.ts","names":[],"sources":["../../../src/extractContent/processTsxFile.ts"],"mappings":";;;;KAeY,QAAA;EACV,KAAA;EACA,GAAA;EACA,WAAA;AAAA;;;;cA4BW,cAAA,GACX,QAAA,UACA,YAAA,UACA,WAAA,EAAa,WAAA,EACb,aAAA,EAAe,cAAA,EACf,IAAA,YACA,oBAAA,GAAsB,MAAA,mBACtB,gBAAA;EAEA,gBAAA,EAAkB,MAAA,SAAe,MAAA;EACjC,YAAA;AAAA"}
1
+ {"version":3,"file":"processTsxFile.d.ts","names":[],"sources":["../../../src/extractContent/processTsxFile.ts"],"mappings":";;;;KAcY;EACV;EACA;EACA;;;;;cA4BW,iBAAc,kBACT,sBACI,aACP,aAAW,eACT,gBAAc,gBAChB,uBACS,yBAAuB;EAG7C,kBAAkB,eAAe;EACjC"}
@@ -2,16 +2,16 @@
2
2
  /**
3
3
  * Attributes that should be extracted as translatable strings from JSX/HTML elements.
4
4
  * This is the single source of truth shared across all Intlayer compiler packages
5
- * (@intlayer/babel, @intlayer/vue-compiler, @intlayer/svelte-compiler, @intlayer/chokidar).
5
+ * (@intlayer/babel, @intlayer/vue-compiler, @intlayer/svelte-compiler, @intlayer/engine).
6
6
  */
7
- declare const ATTRIBUTES_TO_EXTRACT: readonly ["title", "placeholder", "alt", "aria-label", "label"];
7
+ declare const ATTRIBUTES_TO_EXTRACT: readonly ['title', 'placeholder', 'alt', 'aria-label', 'label'];
8
8
  /**
9
9
  * The list of supported Intlayer integration packages.
10
10
  * This is the single source of truth for package name validation.
11
11
  *
12
12
  * Order matter for resolution
13
13
  */
14
- declare const packageList: readonly ["next-intlayer", "react-intlayer", "vue-intlayer", "svelte-intlayer", "preact-intlayer", "solid-intlayer", "angular-intlayer", "lit-intlayer", "express-intlayer", "hono-intlayer", "fastify-intlayer", "adonis-intlayer", "intlayer"];
14
+ declare const packageList: readonly ['next-intlayer', 'react-intlayer', 'vue-intlayer', 'svelte-intlayer', 'preact-intlayer', 'solid-intlayer', 'angular-intlayer', 'lit-intlayer', 'express-intlayer', 'hono-intlayer', 'fastify-intlayer', 'adonis-intlayer', 'intlayer'];
15
15
  /** Packages that support a `/server` sub-path for React Server Components. */
16
16
  declare const SERVER_CAPABLE_PACKAGES: ReadonlySet<string>;
17
17
  type PackageName = (typeof packageList)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","names":[],"sources":["../../../../src/extractContent/utils/constants.ts"],"mappings":";;AAKA;;;;cAAa,qBAAA;AAcb;;;;;AAiBA;AAjBA,cAAa,WAAA;;cAiBA,uBAAA,EAAyB,WAAA;AAAA,KAI1B,WAAA,WAAsB,WAAA"}
1
+ {"version":3,"file":"constants.d.ts","names":[],"sources":["../../../../src/extractContent/utils/constants.ts"],"mappings":";;;;;;cAKa;;;;;;;cAcA;;cAiBA,yBAAyB;KAI1B,sBAAsB"}
@@ -1,5 +1,4 @@
1
1
  import { PackageName } from "./constants.js";
2
-
3
2
  //#region src/extractContent/utils/detectPackageName.d.ts
4
3
  /**
5
4
  * Detects which intlayer package is used in the project by reading package.json.
@@ -1 +1 @@
1
- {"version":3,"file":"detectPackageName.d.ts","names":[],"sources":["../../../../src/extractContent/utils/detectPackageName.ts"],"mappings":";;;;;AAOA;cAAa,iBAAA,GAAqB,SAAA,aAAoB,WAAA"}
1
+ {"version":3,"file":"detectPackageName.d.ts","names":[],"sources":["../../../../src/extractContent/utils/detectPackageName.ts"],"mappings":";;;;;cAOa,oBAAiB,sBAAwB"}
@@ -1,7 +1,6 @@
1
1
  import { Locale } from "@intlayer/types/allLocales";
2
2
  import { IntlayerConfig } from "@intlayer/types/config";
3
3
  import { FilePathPatternFunction } from "@intlayer/types/filePathPattern";
4
-
5
4
  //#region src/extractContent/utils/extractDictionaryInfo.d.ts
6
5
  declare const getOutput: (configuration: IntlayerConfig, locale?: Locale) => FilePathPatternFunction | false;
7
6
  type ResolveContentFilePaths = {
@@ -1 +1 @@
1
- {"version":3,"file":"extractDictionaryInfo.d.ts","names":[],"sources":["../../../../src/extractContent/utils/extractDictionaryInfo.ts"],"mappings":";;;;;cAmBa,SAAA,GACX,aAAA,EAAe,cAAA,EACf,MAAA,GAAS,MAAA,KACR,uBAAA;AAAA,KA0CS,uBAAA;EACV,YAAA;EACA,YAAA;EACA,WAAA;AAAA;;;;;cAOW,uBAAA,GACX,QAAA,UACA,YAAA,UACA,aAAA,EAAe,cAAA,EACf,MAAA,GAAS,MAAA,KACR,OAAA,CAAQ,uBAAA;AAAA,KA+GC,4BAAA;EACV,aAAA,GAAgB,cAAA;AAAA;;;;cAML,qBAAA,GACX,QAAA,UACA,QAAA,UACA,aAAA,EAAe,cAAA,KACd,OAAA;EAEC,aAAA;AAAA,IACE,uBAAA"}
1
+ {"version":3,"file":"extractDictionaryInfo.d.ts","names":[],"sources":["../../../../src/extractContent/utils/extractDictionaryInfo.ts"],"mappings":";;;;cAmBa,YAAS,eACL,gBAAc,SACpB,WACR;KA0CS;EACV;EACA;EACA;;;;;;cAOW,0BAAuB,kBAClB,sBACI,eACL,gBAAc,SACpB,WACR,QAAQ;KA+GC;EACV,gBAAgB;;;;;cAML,wBAAqB,kBAChB,kBACA,eACD,mBACd;EAEC;IACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractDictionaryKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/extractDictionaryKey.ts"],"mappings":";;AASA;;;;cAAa,4BAAA,GACX,QAAA,UACA,MAAA;AAAA,cAiBW,oBAAA,GACX,QAAA,UACA,QAAA,UACA,MAAA"}
1
+ {"version":3,"file":"extractDictionaryKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/extractDictionaryKey.ts"],"mappings":";;;;;;cASa,+BAA4B,kBACvB;cAkBL,uBAAoB,kBACf,kBACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/generateKey.ts"],"mappings":";cAAa,WAAA,GACX,IAAA,UACA,YAAA,EAAc,GAAA"}
1
+ {"version":3,"file":"generateKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/generateKey.ts"],"mappings":";cAAa,cAAW,cACV,cACE"}
@@ -1,5 +1,4 @@
1
1
  import { NodePath } from "@babel/traverse";
2
-
3
2
  //#region src/extractContent/utils/getComponentName.d.ts
4
3
  /**
5
4
  * Resolves the name of the component from various function declaration types.
@@ -1 +1 @@
1
- {"version":3,"file":"getComponentName.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getComponentName.ts"],"mappings":";;;;;AAMA;cAAa,gBAAA,GAAoB,IAAA,EAAM,QAAA"}
1
+ {"version":3,"file":"getComponentName.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getComponentName.ts"],"mappings":";;;;;cAMa,mBAAgB,MAAU"}
@@ -1,13 +1,16 @@
1
1
  import * as t from "@babel/types";
2
2
  import { NodePath } from "@babel/traverse";
3
-
4
3
  //#region src/extractContent/utils/getExistingIntlayerInfo.d.ts
5
4
  type ExistingIntlayerInfo = {
6
5
  key: string;
7
- hook: 'useIntlayer' | 'getIntlayer'; /** The variable name used to store the call result (e.g. `t` in `const t = useIntlayer(...)`) */
8
- variableName: string; /** True when the call result is destructured: `const { a, b } = getIntlayer(...)` */
9
- isDestructured: boolean; /** Keys already present in the destructuring pattern (empty when not destructured) */
10
- existingDestructuredKeys: string[]; /** The ObjectPattern AST node, present only when `isDestructured` is true */
6
+ hook: 'useIntlayer' | 'getIntlayer';
7
+ /** The variable name used to store the call result (e.g. `t` in `const t = useIntlayer(...)`) */
8
+ variableName: string;
9
+ /** True when the call result is destructured: `const { a, b } = getIntlayer(...)` */
10
+ isDestructured: boolean;
11
+ /** Keys already present in the destructuring pattern (empty when not destructured) */
12
+ existingDestructuredKeys: string[];
13
+ /** The ObjectPattern AST node, present only when `isDestructured` is true */
11
14
  objectPatternNode?: t.ObjectPattern;
12
15
  };
13
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getExistingIntlayerInfo.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getExistingIntlayerInfo.ts"],"mappings":";;;;KAGY,oBAAA;EACV,GAAA;EACA,IAAA,iCAF8B;EAI9B,YAAA,UAMmC;EAJnC,cAAA,WAJA;EAMA,wBAAA,YAFA;EAIA,iBAAA,GAAoB,CAAA,CAAE,aAAA;AAAA;;;;cAMX,uBAAA,GACX,IAAA,EAAM,QAAA,KACL,oBAAA"}
1
+ {"version":3,"file":"getExistingIntlayerInfo.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getExistingIntlayerInfo.ts"],"mappings":";;;KAGY;EACV;EACA;;EAEA;;EAEA;;EAEA;;EAEA,oBAAoB,EAAE;;;;;cAMX,0BAAuB,MAC5B,aACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"getOrGenerateKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getOrGenerateKey.ts"],"mappings":";;AAKA;;cAAa,gBAAA,GACX,IAAA,UACA,YAAA,UACA,YAAA,EAAc,GAAA,UACd,gBAAA,EAAkB,MAAA,SAAe,MAAA"}
1
+ {"version":3,"file":"getOrGenerateKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/getOrGenerateKey.ts"],"mappings":";;;;cAKa,mBAAgB,cACf,sBACQ,cACN,aAAW,kBACP,eAAe"}
@@ -1,5 +1,4 @@
1
1
  import { IntlayerConfig } from "@intlayer/types/config";
2
-
3
2
  //#region src/extractContent/utils/resolveDictionaryKey.d.ts
4
3
  /**
5
4
  * Resolves a unique dictionary key, checking for existing dictionaries and files.
@@ -1 +1 @@
1
- {"version":3,"file":"resolveDictionaryKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/resolveDictionaryKey.ts"],"mappings":";;;;;AAYA;;;cAAa,oBAAA,GACX,UAAA,UACA,QAAA,UACA,aAAA,EAAe,cAAA,EACf,oBAAA,GAAuB,MAAA,mBACvB,QAAA,GAAU,GAAA"}
1
+ {"version":3,"file":"resolveDictionaryKey.d.ts","names":[],"sources":["../../../../src/extractContent/utils/resolveDictionaryKey.ts"],"mappings":";;;;;;;cAYa,uBAAoB,oBACb,kBACF,eACD,gBAAc,uBACN,yBAAuB,WACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shouldExtract.d.ts","names":[],"sources":["../../../../src/extractContent/utils/shouldExtract.ts"],"mappings":";;AAUA;;;;;;;;;cAAa,aAAA,GAAiB,IAAA"}
1
+ {"version":3,"file":"shouldExtract.d.ts","names":[],"sources":["../../../../src/extractContent/utils/shouldExtract.ts"],"mappings":";;;;;;;;;;;cAUa,gBAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractScriptBlocks.d.ts","names":[],"sources":["../../src/extractScriptBlocks.ts"],"mappings":";;AAWA;;;;;;;;KAAY,WAAA;EACV,OAAA;EACA,kBAAA;EACA,gBAAA;AAAA;;;;;;AAgIF;;;;;;;;;cAlCa,mBAAA,GACX,QAAA,UACA,IAAA,aACC,WAAA;;;;;;;;;;;cA+BU,kBAAA,GACX,YAAA,UACA,aAAA,EAAe,aAAA;EACb,KAAA,EAAO,WAAA;EACP,eAAA;AAAA"}
1
+ {"version":3,"file":"extractScriptBlocks.d.ts","names":[],"sources":["../../src/extractScriptBlocks.ts"],"mappings":";;;;;;;;;;KAWY;EACV;EACA;EACA;;;;;;;;;;;;;;;;cA8FW,sBAAmB,kBACd,iBAEf;;;;;;;;;;;cA+BU,qBAAkB,sBACT,eACL;EACb,OAAO;EACP"}
@@ -1,6 +1,5 @@
1
1
  import { ExtractPluginOptions } from "./babel-plugin-intlayer-extract.js";
2
2
  import { IntlayerConfig } from "@intlayer/types/config";
3
-
4
3
  //#region src/getExtractPluginOptions.d.ts
5
4
  /**
6
5
  * Mode of the compiler
@@ -1 +1 @@
1
- {"version":3,"file":"getExtractPluginOptions.d.ts","names":[],"sources":["../../src/getExtractPluginOptions.ts"],"mappings":";;;;;;AAcA;;;KAAY,YAAA;;AAOZ;;;;cAAa,uBAAA,GACX,aAAA,GAAe,cAAA,EACf,KAAA,GAAO,YAAA,0BACN,oBAAA"}
1
+ {"version":3,"file":"getExtractPluginOptions.d.ts","names":[],"sources":["../../src/getExtractPluginOptions.ts"],"mappings":";;;;;;;;KAcY;;;;;;cAOC,0BAAuB,gBACnB,gBAAc,QACtB,sCACN"}
@@ -1,7 +1,6 @@
1
1
  import { OptimizePluginOptions } from "./babel-plugin-intlayer-optimize.js";
2
2
  import { Dictionary } from "@intlayer/types/dictionary";
3
3
  import { GetConfigurationOptions } from "@intlayer/config/node";
4
-
5
4
  //#region src/getOptimizePluginOptions.d.ts
6
5
  type GetOptimizePluginOptionsParams = {
7
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getOptimizePluginOptions.d.ts","names":[],"sources":["../../src/getOptimizePluginOptions.ts"],"mappings":";;;;;KAUK,8BAAA;;AAFyE;;EAM5E,aAAA,GAAgB,uBAAA;EAAA;;;EAIhB,YAAA,GAAe,UAAA;EAUI;;;;;EAJnB,QAAA;EAAA;;;EAIA,SAAA,GAAY,OAAA,CAAQ,qBAAA;AAAA;;AAyBtB;;;;cAAa,wBAAA,GACX,MAAA,GAAS,8BAAA,KACR,qBAAA"}
1
+ {"version":3,"file":"getOptimizePluginOptions.d.ts","names":[],"sources":["../../src/getOptimizePluginOptions.ts"],"mappings":";;;;KAUK;;;;EAIH,gBAAgB;;;;EAIhB,eAAe;;;;;;EAMf;;;;EAIA,YAAY,QAAQ;;;;;;;cAyBT,2BAAwB,SAC1B,mCACR"}
@@ -2,7 +2,6 @@ import { MinifyPluginOptions } from "./babel-plugin-intlayer-minify.js";
2
2
  import { PurgePluginOptions } from "./babel-plugin-intlayer-purge.js";
3
3
  import { Dictionary } from "@intlayer/types/dictionary";
4
4
  import { GetConfigurationOptions } from "@intlayer/config/node";
5
-
6
5
  //#region src/getPurgePluginOptions.d.ts
7
6
  type GetPurgePluginOptionsParams = {
8
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getPurgePluginOptions.d.ts","names":[],"sources":["../../src/getPurgePluginOptions.ts"],"mappings":";;;;;;KAkCK,2BAAA;;AAzBmE;;;;EA+BtE,aAAA,GAAgB,uBAAA;EAYI;;;;;EALpB,YAAA,GAAe,UAAA;EAAf;;;EAKA,SAAA,GAAY,OAAA,CAAQ,kBAAA;AAAA;;;AA0BtB;;;;;;;;;AA0CE;;;;;;;;;;;;cA1CW,qBAAA,GACX,MAAA,GAAS,2BAAA,KACR,kBAAA;AAAA,KA4CE,4BAAA;EASoC;AAwBzC;;EA7BE,aAAA,GAAgB,uBAAA;EA+CjB;;;EA1CC,SAAA,GAAY,OAAA,CAAQ,mBAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;cAwBT,sBAAA,GACX,MAAA,GAAS,4BAAA,KACR,mBAAA"}
1
+ {"version":3,"file":"getPurgePluginOptions.d.ts","names":[],"sources":["../../src/getPurgePluginOptions.ts"],"mappings":";;;;;KAkCK;;;;;;EAMH,gBAAgB;;;;;;EAOhB,eAAe;;;;EAKf,YAAY,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;cA0BT,wBAAqB,SACvB,gCACR;KA4CE;;;;EAIH,gBAAgB;;;;EAKhB,YAAY,QAAQ;;;;;;;;;;;;;;;;;;;;;;;cAwBT,yBAAsB,SACxB,iCACR"}