@generaltranslation/compiler 1.3.21 → 1.3.23

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 (238) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +23 -0
  2. package/dist/config.js +32 -27
  3. package/dist/config.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +120 -187
  7. package/dist/index.js.map +1 -1
  8. package/dist/passes/basePass.js +40 -83
  9. package/dist/passes/basePass.js.map +1 -1
  10. package/dist/passes/collectionPass.js +18 -11
  11. package/dist/passes/collectionPass.js.map +1 -1
  12. package/dist/passes/handleErrors.js +21 -30
  13. package/dist/passes/handleErrors.js.map +1 -1
  14. package/dist/passes/injectionPass.js +15 -9
  15. package/dist/passes/injectionPass.js.map +1 -1
  16. package/dist/passes/jsxInsertionPass.js +33 -31
  17. package/dist/passes/jsxInsertionPass.js.map +1 -1
  18. package/dist/passes/macroExpansionPass.js +28 -26
  19. package/dist/passes/macroExpansionPass.js.map +1 -1
  20. package/dist/passes/runtimeTranslatePass.js +37 -35
  21. package/dist/passes/runtimeTranslatePass.js.map +1 -1
  22. package/dist/processing/collection/processCallExpression.js +144 -249
  23. package/dist/processing/collection/processCallExpression.js.map +1 -1
  24. package/dist/processing/collection/processTaggedTemplateExpression.js +38 -75
  25. package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -1
  26. package/dist/processing/collection/processVariableDeclarator.js +20 -18
  27. package/dist/processing/collection/processVariableDeclarator.js.map +1 -1
  28. package/dist/processing/index.js +29 -31
  29. package/dist/processing/injection/processCallExpression.js +69 -142
  30. package/dist/processing/injection/processCallExpression.js.map +1 -1
  31. package/dist/processing/injection/processVariableDeclarator.js +22 -20
  32. package/dist/processing/injection/processVariableDeclarator.js.map +1 -1
  33. package/dist/processing/jsx-insertion/processCallExpression.js +284 -393
  34. package/dist/processing/jsx-insertion/processCallExpression.js.map +1 -1
  35. package/dist/processing/jsx-insertion/processImportDeclaration.js +37 -83
  36. package/dist/processing/jsx-insertion/processImportDeclaration.js.map +1 -1
  37. package/dist/processing/jsx-insertion/processProgram.js +26 -66
  38. package/dist/processing/jsx-insertion/processProgram.js.map +1 -1
  39. package/dist/processing/macro-expansion/processImportDeclaration.js +21 -55
  40. package/dist/processing/macro-expansion/processImportDeclaration.js.map +1 -1
  41. package/dist/processing/macro-expansion/processProgram.js +20 -26
  42. package/dist/processing/macro-expansion/processProgram.js.map +1 -1
  43. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js +33 -69
  44. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js.map +1 -1
  45. package/dist/processing/processArrowFunctionExpression.js +18 -16
  46. package/dist/processing/processArrowFunctionExpression.js.map +1 -1
  47. package/dist/processing/processAssignmentExpression.js +12 -10
  48. package/dist/processing/processAssignmentExpression.js.map +1 -1
  49. package/dist/processing/processCatchClause.js +18 -16
  50. package/dist/processing/processCatchClause.js.map +1 -1
  51. package/dist/processing/processClassDeclaration.js +18 -16
  52. package/dist/processing/processClassDeclaration.js.map +1 -1
  53. package/dist/processing/processClassMethod.js +18 -17
  54. package/dist/processing/processClassMethod.js.map +1 -1
  55. package/dist/processing/processClassPrivateMethod.js +18 -17
  56. package/dist/processing/processClassPrivateMethod.js.map +1 -1
  57. package/dist/processing/processForInStatement.js +18 -16
  58. package/dist/processing/processForInStatement.js.map +1 -1
  59. package/dist/processing/processForOfStatement.js +18 -16
  60. package/dist/processing/processForOfStatement.js.map +1 -1
  61. package/dist/processing/processFunctionDeclaration.js +20 -18
  62. package/dist/processing/processFunctionDeclaration.js.map +1 -1
  63. package/dist/processing/processFunctionExpression.js +26 -24
  64. package/dist/processing/processFunctionExpression.js.map +1 -1
  65. package/dist/processing/processImportDeclaration.js +11 -9
  66. package/dist/processing/processImportDeclaration.js.map +1 -1
  67. package/dist/processing/processObjectMethod.js +19 -18
  68. package/dist/processing/processObjectMethod.js.map +1 -1
  69. package/dist/processing/processProgram.js +13 -13
  70. package/dist/processing/processProgram.js.map +1 -1
  71. package/dist/processing/processScopeChange.js +15 -13
  72. package/dist/processing/processScopeChange.js.map +1 -1
  73. package/dist/processing/runtime-translate/processImportDeclaration.js +30 -63
  74. package/dist/processing/runtime-translate/processImportDeclaration.js.map +1 -1
  75. package/dist/processing/runtime-translate/processProgram.js +34 -57
  76. package/dist/processing/runtime-translate/processProgram.js.map +1 -1
  77. package/dist/state/ErrorTracker.js +18 -17
  78. package/dist/state/ErrorTracker.js.map +1 -1
  79. package/dist/state/Logger.js +42 -52
  80. package/dist/state/Logger.js.map +1 -1
  81. package/dist/state/ScopeTracker.d.ts +11 -2
  82. package/dist/state/ScopeTracker.d.ts.map +1 -1
  83. package/dist/state/ScopeTracker.js +154 -209
  84. package/dist/state/ScopeTracker.js.map +1 -1
  85. package/dist/state/StringCollector.d.ts +9 -2
  86. package/dist/state/StringCollector.d.ts.map +1 -1
  87. package/dist/state/StringCollector.js +165 -184
  88. package/dist/state/StringCollector.js.map +1 -1
  89. package/dist/state/types.js +1 -3
  90. package/dist/state/utils/initializeState.js +62 -67
  91. package/dist/state/utils/initializeState.js.map +1 -1
  92. package/dist/transform/getTrackedVariable.js +33 -38
  93. package/dist/transform/getTrackedVariable.js.map +1 -1
  94. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js +19 -27
  95. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js.map +1 -1
  96. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js +8 -6
  97. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js.map +1 -1
  98. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js +8 -6
  99. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js.map +1 -1
  100. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js +74 -155
  101. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js.map +1 -1
  102. package/dist/transform/injection/injectHashIntoTranslationOptions.js +21 -61
  103. package/dist/transform/injection/injectHashIntoTranslationOptions.js.map +1 -1
  104. package/dist/transform/injection/injectStandaloneTFunctionParameters.js +21 -27
  105. package/dist/transform/injection/injectStandaloneTFunctionParameters.js.map +1 -1
  106. package/dist/transform/injection/injectTComponentParameters.js +25 -65
  107. package/dist/transform/injection/injectTComponentParameters.js.map +1 -1
  108. package/dist/transform/jsx-children/constructJsxChildren.d.ts +1 -1
  109. package/dist/transform/jsx-children/constructJsxChildren.d.ts.map +1 -1
  110. package/dist/transform/jsx-children/constructJsxChildren.js +273 -392
  111. package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
  112. package/dist/transform/jsx-children/errors.js +16 -6
  113. package/dist/transform/jsx-children/errors.js.map +1 -1
  114. package/dist/transform/jsx-children/index.js +3 -6
  115. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js +26 -85
  116. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js.map +1 -1
  117. package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js +33 -66
  118. package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js.map +1 -1
  119. package/dist/transform/jsx-children/utils/id.js +18 -17
  120. package/dist/transform/jsx-children/utils/id.js.map +1 -1
  121. package/dist/transform/jsx-children/validation/validateChildrenElement.js +13 -47
  122. package/dist/transform/jsx-children/validation/validateChildrenElement.js.map +1 -1
  123. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js +25 -63
  124. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js.map +1 -1
  125. package/dist/transform/jsx-children/validation/validateIdentifier.js +38 -41
  126. package/dist/transform/jsx-children/validation/validateIdentifier.js.map +1 -1
  127. package/dist/transform/jsx-children/validation/validateJsxCall.js +15 -26
  128. package/dist/transform/jsx-children/validation/validateJsxCall.js.map +1 -1
  129. package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js +33 -61
  130. package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js.map +1 -1
  131. package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js +38 -66
  132. package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js.map +1 -1
  133. package/dist/transform/jsx-children/validation/validateTemplateLiteral.js +17 -13
  134. package/dist/transform/jsx-children/validation/validateTemplateLiteral.js.map +1 -1
  135. package/dist/transform/jsx-children/validation/validateUnaryExpression.js +26 -61
  136. package/dist/transform/jsx-children/validation/validateUnaryExpression.js.map +1 -1
  137. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js +16 -48
  138. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js.map +1 -1
  139. package/dist/transform/macro-expansion/injectMacroImport.js +14 -43
  140. package/dist/transform/macro-expansion/injectMacroImport.js.map +1 -1
  141. package/dist/transform/macro-expansion/transformTemplateLiteral.js +23 -22
  142. package/dist/transform/macro-expansion/transformTemplateLiteral.js.map +1 -1
  143. package/dist/transform/registration/callbacks/registerUseGTCallback.js +27 -34
  144. package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
  145. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js +9 -9
  146. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js.map +1 -1
  147. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js +9 -9
  148. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js.map +1 -1
  149. package/dist/transform/registration/registerStandaloneTranslation.js +27 -28
  150. package/dist/transform/registration/registerStandaloneTranslation.js.map +1 -1
  151. package/dist/transform/registration/registerTranslationComponent.js +15 -15
  152. package/dist/transform/registration/registerTranslationComponent.js.map +1 -1
  153. package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js +34 -85
  154. package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js.map +1 -1
  155. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +25 -55
  156. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -1
  157. package/dist/transform/tracking/trackAssignmentExpression.js +26 -63
  158. package/dist/transform/tracking/trackAssignmentExpression.js.map +1 -1
  159. package/dist/transform/tracking/trackCatchClause.js +17 -48
  160. package/dist/transform/tracking/trackCatchClause.js.map +1 -1
  161. package/dist/transform/tracking/trackClassDeclaration.js +13 -13
  162. package/dist/transform/tracking/trackClassDeclaration.js.map +1 -1
  163. package/dist/transform/tracking/trackForDeclaration.js +17 -53
  164. package/dist/transform/tracking/trackForDeclaration.js.map +1 -1
  165. package/dist/transform/tracking/trackFunctionName.js +10 -10
  166. package/dist/transform/tracking/trackFunctionName.js.map +1 -1
  167. package/dist/transform/tracking/trackFunctionParams.js +19 -54
  168. package/dist/transform/tracking/trackFunctionParams.js.map +1 -1
  169. package/dist/transform/tracking/trackImportDeclaration.js +36 -89
  170. package/dist/transform/tracking/trackImportDeclaration.js.map +1 -1
  171. package/dist/transform/tracking/trackOverridingVariable.js +9 -11
  172. package/dist/transform/tracking/trackOverridingVariable.js.map +1 -1
  173. package/dist/transform/tracking/trackVariableDeclarator.js +51 -102
  174. package/dist/transform/tracking/trackVariableDeclarator.js.map +1 -1
  175. package/dist/transform/validation/validateTranslationComponentArgs.d.ts +1 -1
  176. package/dist/transform/validation/validateTranslationComponentArgs.d.ts.map +1 -1
  177. package/dist/transform/validation/validateTranslationComponentArgs.js +156 -232
  178. package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
  179. package/dist/transform/validation/validateTranslationFunction.js +218 -329
  180. package/dist/transform/validation/validateTranslationFunction.js.map +1 -1
  181. package/dist/utils/calculateHash.d.ts +1 -1
  182. package/dist/utils/calculateHash.d.ts.map +1 -1
  183. package/dist/utils/calculateHash.js +55 -70
  184. package/dist/utils/calculateHash.js.map +1 -1
  185. package/dist/utils/constants/gt/constants.js +142 -132
  186. package/dist/utils/constants/gt/constants.js.map +1 -1
  187. package/dist/utils/constants/gt/helpers.d.ts +1 -1
  188. package/dist/utils/constants/gt/helpers.d.ts.map +1 -1
  189. package/dist/utils/constants/gt/helpers.js +147 -149
  190. package/dist/utils/constants/gt/helpers.js.map +1 -1
  191. package/dist/utils/constants/other/constants.js +45 -41
  192. package/dist/utils/constants/other/constants.js.map +1 -1
  193. package/dist/utils/constants/other/helpers.js +13 -11
  194. package/dist/utils/constants/other/helpers.js.map +1 -1
  195. package/dist/utils/constants/react/constants.js +47 -41
  196. package/dist/utils/constants/react/constants.js.map +1 -1
  197. package/dist/utils/constants/react/helpers.js +17 -16
  198. package/dist/utils/constants/react/helpers.js.map +1 -1
  199. package/dist/utils/constants/resolveIdentifier/isGTComponent.js +41 -76
  200. package/dist/utils/constants/resolveIdentifier/isGTComponent.js.map +1 -1
  201. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js +33 -83
  202. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js.map +1 -1
  203. package/dist/utils/errors.js +18 -20
  204. package/dist/utils/errors.js.map +1 -1
  205. package/dist/utils/multiplication/multiply.js +31 -35
  206. package/dist/utils/multiplication/multiply.js.map +1 -1
  207. package/dist/utils/multiplication/types.js +1 -3
  208. package/dist/utils/parsing/extractIdentifiersFromLVal.js +30 -96
  209. package/dist/utils/parsing/extractIdentifiersFromLVal.js.map +1 -1
  210. package/dist/utils/parsing/getCalleeNameFromExpression.js +31 -65
  211. package/dist/utils/parsing/getCalleeNameFromExpression.js.map +1 -1
  212. package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js +13 -10
  213. package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js.map +1 -1
  214. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js +19 -56
  215. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js.map +1 -1
  216. package/dist/utils/parsing/getStringLiteralFromExpression.js +18 -49
  217. package/dist/utils/parsing/getStringLiteralFromExpression.js.map +1 -1
  218. package/dist/utils/parsing/isDeriveInvocation.js +25 -61
  219. package/dist/utils/parsing/isDeriveInvocation.js.map +1 -1
  220. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js +23 -59
  221. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js.map +1 -1
  222. package/dist/utils/string-expressions/buildTransformationResult.js +57 -96
  223. package/dist/utils/string-expressions/buildTransformationResult.js.map +1 -1
  224. package/dist/utils/string-expressions/flattenExpressionToParts.js +131 -142
  225. package/dist/utils/string-expressions/flattenExpressionToParts.js.map +1 -1
  226. package/dist/utils/string-expressions/resolveStaticExpression.js +36 -34
  227. package/dist/utils/string-expressions/resolveStaticExpression.js.map +1 -1
  228. package/dist/utils/validation/validateChildrenFromObjectExpression.js +29 -24
  229. package/dist/utils/validation/validateChildrenFromObjectExpression.js.map +1 -1
  230. package/dist/utils/validation/validateExpressionIsNumericLiteral.js +13 -47
  231. package/dist/utils/validation/validateExpressionIsNumericLiteral.js.map +1 -1
  232. package/dist/utils/validation/validateExpressionIsStringLiteral.js +15 -48
  233. package/dist/utils/validation/validateExpressionIsStringLiteral.js.map +1 -1
  234. package/package.json +8 -4
  235. package/dist/processing/index.js.map +0 -1
  236. package/dist/state/types.js.map +0 -1
  237. package/dist/transform/jsx-children/index.js.map +0 -1
  238. package/dist/utils/multiplication/types.js.map +0 -1
@@ -1,187 +1,168 @@
1
- "use strict";
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/state/StringCollector.ts
2
3
  /**
3
- * String Collector - Manages translation content across two-pass transformation
4
- *
5
- * Pass 1: Collects translation strings, JSX content, and hash data
6
- * Pass 2: Injects collected data back into useGT()/getGT() calls
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.StringCollector = void 0;
10
- /**
11
- * String collector for two-pass transformation system
12
- */
13
- class StringCollector {
14
- constructor() {
15
- /** Vector of translation calls indexed by counter ID */
16
- this.contentAggregators = new Map();
17
- this.jsxAggregators = new Map();
18
- this.hashAggregators = new Map();
19
- /** Global counter incremented for each useGT/getGT call encountered */
20
- this.globalCallCounter = 0;
21
- /** Runtime-only entries for standalone strings consumed by runtime translate */
22
- this.runtimeOnlyEntries = [];
23
- }
24
- /**
25
- * Increment counter and return the current counter ID for a useGT/getGT call
26
- * These IDs are deterministic
27
- */
28
- incrementCounter() {
29
- this.globalCallCounter += 1;
30
- return this.globalCallCounter;
31
- }
32
- /**
33
- * Get current global counter value
34
- */
35
- getCounter() {
36
- return this.globalCallCounter;
37
- }
38
- /**
39
- * Pass 1: Add translation content from a gt() call to a specific useGT/getGT aggregator
40
- * Multiple content items can be added to the same call
41
- */
42
- pushTranslationContent(counterId, content) {
43
- if (counterId === -1) {
44
- throw new Error('Cannot have a counterId of -1. This likely means you are trying to register content from a namespace method invocation.');
45
- }
46
- // Get the agreggator
47
- let aggregator = this.contentAggregators.get(counterId);
48
- if (!aggregator) {
49
- aggregator = [content];
50
- this.contentAggregators.set(counterId, aggregator);
51
- }
52
- else {
53
- aggregator.push(content);
54
- }
55
- }
56
- /**
57
- * Pass 1: Set JSX translation content for a specific useGT/getGT
58
- * Only one JSX item can be set per call (overwrites if called multiple times)
59
- */
60
- setTranslationJsx(counterId, jsx) {
61
- this.jsxAggregators.set(counterId, jsx);
62
- }
63
- /**
64
- * Pass 1: Set hash-only content for a specific useGT/getGT
65
- * Only one hash can be set per call (overwrites if called multiple times)
66
- */
67
- setTranslationHash(counterId, hash) {
68
- this.hashAggregators.set(counterId, hash);
69
- }
70
- /**
71
- * Pass 2: Get translation call data for injection into a specific useGT/getGT call
72
- */
73
- getTranslationData(counterId) {
74
- if (this.contentAggregators.has(counterId)) {
75
- return {
76
- type: 'content',
77
- value: this.contentAggregators.get(counterId),
78
- };
79
- }
80
- else if (this.jsxAggregators.has(counterId)) {
81
- return { type: 'jsx', value: this.jsxAggregators.get(counterId) };
82
- }
83
- else if (this.hashAggregators.has(counterId)) {
84
- return { type: 'hash', value: this.hashAggregators.get(counterId) };
85
- }
86
- }
87
- /**
88
- * Get the translation content for a specific useGT/getGT call
89
- */
90
- getTranslationContent(counterId) {
91
- return this.contentAggregators.get(counterId);
92
- }
93
- /**
94
- * Get the translation JSX for a specific <T> component
95
- */
96
- getTranslationJsx(counterId) {
97
- return this.jsxAggregators.get(counterId);
98
- }
99
- /**
100
- * Get the translation hash for a specific other call
101
- */
102
- getTranslationHash(counterId) {
103
- return this.hashAggregators.get(counterId);
104
- }
105
- /**
106
- * Reset all state (useful for testing)
107
- */
108
- clear() {
109
- this.contentAggregators.clear();
110
- this.jsxAggregators.clear();
111
- this.hashAggregators.clear();
112
- this.runtimeOnlyEntries = [];
113
- this.globalCallCounter = 0;
114
- }
115
- /**
116
- * Reset the counter to zero
117
- */
118
- resetCounter() {
119
- this.globalCallCounter = 0;
120
- }
121
- /**
122
- * Has content
123
- */
124
- hasContent() {
125
- return (this.contentAggregators.size +
126
- this.jsxAggregators.size +
127
- this.hashAggregators.size +
128
- this.runtimeOnlyEntries.length >
129
- 0);
130
- }
131
- /**
132
- * Get all translation content entries (flattened across all aggregators)
133
- */
134
- getAllTranslationContent() {
135
- return Array.from(this.contentAggregators.values()).flat();
136
- }
137
- /**
138
- * Get all translation JSX entries
139
- */
140
- getAllTranslationJsx() {
141
- return Array.from(this.jsxAggregators.values());
142
- }
143
- /**
144
- * Add a runtime-only translation entry for the runtime translate pass.
145
- */
146
- pushRuntimeOnlyContent(content) {
147
- this.runtimeOnlyEntries.push(content);
148
- }
149
- /**
150
- * Get all runtime-only translation entries
151
- */
152
- getRuntimeOnlyContent() {
153
- return this.runtimeOnlyEntries;
154
- }
155
- /**
156
- * Helper convert to string
157
- */
158
- serialize() {
159
- const output = {
160
- contentAggregators: Object.fromEntries(this.contentAggregators),
161
- jsxAggregators: Object.fromEntries(this.jsxAggregators),
162
- hashAggregators: Object.fromEntries(this.hashAggregators),
163
- globalCallCounter: this.globalCallCounter,
164
- };
165
- return output;
166
- }
167
- /**
168
- * Helper to repopulate
169
- */
170
- unserialize(input) {
171
- this.contentAggregators = Object.entries(input.contentAggregators).reduce((acc, [key, value]) => {
172
- acc.set(Number(key), value);
173
- return acc;
174
- }, new Map());
175
- this.jsxAggregators = Object.entries(input.jsxAggregators).reduce((acc, [key, value]) => {
176
- acc.set(Number(key), value);
177
- return acc;
178
- }, new Map());
179
- this.hashAggregators = Object.entries(input.hashAggregators).reduce((acc, [key, value]) => {
180
- acc.set(Number(key), value);
181
- return acc;
182
- }, new Map());
183
- this.globalCallCounter = input.globalCallCounter;
184
- }
185
- }
4
+ * String collector for two-pass transformation system
5
+ */
6
+ var StringCollector = class {
7
+ constructor() {
8
+ this.contentAggregators = /* @__PURE__ */ new Map();
9
+ this.jsxAggregators = /* @__PURE__ */ new Map();
10
+ this.hashAggregators = /* @__PURE__ */ new Map();
11
+ this.globalCallCounter = 0;
12
+ this.runtimeOnlyEntries = [];
13
+ }
14
+ /**
15
+ * Increment counter and return the current counter ID for a useGT/getGT call
16
+ * These IDs are deterministic
17
+ */
18
+ incrementCounter() {
19
+ this.globalCallCounter += 1;
20
+ return this.globalCallCounter;
21
+ }
22
+ /**
23
+ * Get current global counter value
24
+ */
25
+ getCounter() {
26
+ return this.globalCallCounter;
27
+ }
28
+ /**
29
+ * Pass 1: Add translation content from a gt() call to a specific useGT/getGT aggregator
30
+ * Multiple content items can be added to the same call
31
+ */
32
+ pushTranslationContent(counterId, content) {
33
+ if (counterId === -1) throw new Error("Cannot have a counterId of -1. This likely means you are trying to register content from a namespace method invocation.");
34
+ let aggregator = this.contentAggregators.get(counterId);
35
+ if (!aggregator) {
36
+ aggregator = [content];
37
+ this.contentAggregators.set(counterId, aggregator);
38
+ } else aggregator.push(content);
39
+ }
40
+ /**
41
+ * Pass 1: Set JSX translation content for a specific useGT/getGT
42
+ * Only one JSX item can be set per call (overwrites if called multiple times)
43
+ */
44
+ setTranslationJsx(counterId, jsx) {
45
+ this.jsxAggregators.set(counterId, jsx);
46
+ }
47
+ /**
48
+ * Pass 1: Set hash-only content for a specific useGT/getGT
49
+ * Only one hash can be set per call (overwrites if called multiple times)
50
+ */
51
+ setTranslationHash(counterId, hash) {
52
+ this.hashAggregators.set(counterId, hash);
53
+ }
54
+ /**
55
+ * Pass 2: Get translation call data for injection into a specific useGT/getGT call
56
+ */
57
+ getTranslationData(counterId) {
58
+ if (this.contentAggregators.has(counterId)) return {
59
+ type: "content",
60
+ value: this.contentAggregators.get(counterId)
61
+ };
62
+ else if (this.jsxAggregators.has(counterId)) return {
63
+ type: "jsx",
64
+ value: this.jsxAggregators.get(counterId)
65
+ };
66
+ else if (this.hashAggregators.has(counterId)) return {
67
+ type: "hash",
68
+ value: this.hashAggregators.get(counterId)
69
+ };
70
+ }
71
+ /**
72
+ * Get the translation content for a specific useGT/getGT call
73
+ */
74
+ getTranslationContent(counterId) {
75
+ return this.contentAggregators.get(counterId);
76
+ }
77
+ /**
78
+ * Get the translation JSX for a specific <T> component
79
+ */
80
+ getTranslationJsx(counterId) {
81
+ return this.jsxAggregators.get(counterId);
82
+ }
83
+ /**
84
+ * Get the translation hash for a specific other call
85
+ */
86
+ getTranslationHash(counterId) {
87
+ return this.hashAggregators.get(counterId);
88
+ }
89
+ /**
90
+ * Reset all state (useful for testing)
91
+ */
92
+ clear() {
93
+ this.contentAggregators.clear();
94
+ this.jsxAggregators.clear();
95
+ this.hashAggregators.clear();
96
+ this.runtimeOnlyEntries = [];
97
+ this.globalCallCounter = 0;
98
+ }
99
+ /**
100
+ * Reset the counter to zero
101
+ */
102
+ resetCounter() {
103
+ this.globalCallCounter = 0;
104
+ }
105
+ /**
106
+ * Has content
107
+ */
108
+ hasContent() {
109
+ return this.contentAggregators.size + this.jsxAggregators.size + this.hashAggregators.size + this.runtimeOnlyEntries.length > 0;
110
+ }
111
+ /**
112
+ * Get all translation content entries (flattened across all aggregators)
113
+ */
114
+ getAllTranslationContent() {
115
+ return Array.from(this.contentAggregators.values()).flat();
116
+ }
117
+ /**
118
+ * Get all translation JSX entries
119
+ */
120
+ getAllTranslationJsx() {
121
+ return Array.from(this.jsxAggregators.values());
122
+ }
123
+ /**
124
+ * Add a runtime-only translation entry for the runtime translate pass.
125
+ */
126
+ pushRuntimeOnlyContent(content) {
127
+ this.runtimeOnlyEntries.push(content);
128
+ }
129
+ /**
130
+ * Get all runtime-only translation entries
131
+ */
132
+ getRuntimeOnlyContent() {
133
+ return this.runtimeOnlyEntries;
134
+ }
135
+ /**
136
+ * Helper convert to string
137
+ */
138
+ serialize() {
139
+ return {
140
+ contentAggregators: Object.fromEntries(this.contentAggregators),
141
+ jsxAggregators: Object.fromEntries(this.jsxAggregators),
142
+ hashAggregators: Object.fromEntries(this.hashAggregators),
143
+ globalCallCounter: this.globalCallCounter
144
+ };
145
+ }
146
+ /**
147
+ * Helper to repopulate
148
+ */
149
+ unserialize(input) {
150
+ this.contentAggregators = Object.entries(input.contentAggregators).reduce((acc, [key, value]) => {
151
+ acc.set(Number(key), value);
152
+ return acc;
153
+ }, /* @__PURE__ */ new Map());
154
+ this.jsxAggregators = Object.entries(input.jsxAggregators).reduce((acc, [key, value]) => {
155
+ acc.set(Number(key), value);
156
+ return acc;
157
+ }, /* @__PURE__ */ new Map());
158
+ this.hashAggregators = Object.entries(input.hashAggregators).reduce((acc, [key, value]) => {
159
+ acc.set(Number(key), value);
160
+ return acc;
161
+ }, /* @__PURE__ */ new Map());
162
+ this.globalCallCounter = input.globalCallCounter;
163
+ }
164
+ };
165
+ //#endregion
186
166
  exports.StringCollector = StringCollector;
167
+
187
168
  //# sourceMappingURL=StringCollector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringCollector.js","sourceRoot":"","sources":["../../src/state/StringCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringCollector.js","names":[],"sources":["../../src/state/StringCollector.ts"],"sourcesContent":["/**\n * String Collector - Manages translation content across two-pass transformation\n *\n * Pass 1: Collects translation strings, JSX content, and hash data\n * Pass 2: Injects collected data back into useGT()/getGT() calls\n */\n\n/**\n * Content extracted from a t() function call\n */\nexport interface TranslationContent {\n /** The string message: t(\"Hello world\") → \"Hello world\" */\n message: string;\n /** Pre-calculated hash for this content */\n hash: string;\n /** Optional ID from options: t(\"text\", {id: \"greeting\"}) → \"greeting\" */\n id?: string;\n /** Optional context from options: t(\"text\", {context: \"nav\"}) → \"nav\" */\n context?: string;\n /** Optional maxChars from options: t(\"text\", {maxChars: 10}) → 10 */\n maxChars?: number;\n /** Optional format from options: t(\"text\", {$format: \"STRING\"}) → \"STRING\" */\n format?: string;\n}\n\n/**\n * Content extracted from JSX translation components like <T>\n */\nexport interface TranslationJsx {\n /** Pre-calculated hash for this JSX content */\n hash: string;\n /** JSX children structure (serializable) */\n children?: unknown;\n /** Optional ID from props */\n id?: string;\n /** Optional context from props */\n context?: string;\n}\n\n/**\n * Just a hash value for simple hash injection\n */\nexport interface TranslationHash {\n /** The hash value to inject */\n hash: string;\n}\n\ntype SerializedStringCollector = {\n contentAggregators: Record<string, TranslationContent[]>;\n jsxAggregators: Record<string, TranslationJsx>;\n hashAggregators: Record<string, TranslationHash>;\n globalCallCounter: number;\n};\n\n/**\n * String collector for two-pass transformation system\n */\nexport class StringCollector {\n /** Vector of translation calls indexed by counter ID */\n private contentAggregators: Map<number, TranslationContent[]> = new Map();\n private jsxAggregators: Map<number, TranslationJsx> = new Map();\n private hashAggregators: Map<number, TranslationHash> = new Map();\n /** Global counter incremented for each useGT/getGT call encountered */\n private globalCallCounter: number = 0;\n /** Runtime-only entries for standalone strings consumed by runtime translate */\n private runtimeOnlyEntries: TranslationContent[] = [];\n\n /**\n * Increment counter and return the current counter ID for a useGT/getGT call\n * These IDs are deterministic\n */\n incrementCounter(): number {\n this.globalCallCounter += 1;\n return this.globalCallCounter;\n }\n\n /**\n * Get current global counter value\n */\n getCounter(): number {\n return this.globalCallCounter;\n }\n\n /**\n * Pass 1: Add translation content from a gt() call to a specific useGT/getGT aggregator\n * Multiple content items can be added to the same call\n */\n pushTranslationContent(counterId: number, content: TranslationContent): void {\n if (counterId === -1) {\n throw new Error(\n 'Cannot have a counterId of -1. This likely means you are trying to register content from a namespace method invocation.'\n );\n }\n // Get the agreggator\n let aggregator = this.contentAggregators.get(counterId);\n if (!aggregator) {\n aggregator = [content];\n this.contentAggregators.set(counterId, aggregator);\n } else {\n aggregator.push(content);\n }\n }\n\n /**\n * Pass 1: Set JSX translation content for a specific useGT/getGT\n * Only one JSX item can be set per call (overwrites if called multiple times)\n */\n setTranslationJsx(counterId: number, jsx: TranslationJsx): void {\n this.jsxAggregators.set(counterId, jsx);\n }\n\n /**\n * Pass 1: Set hash-only content for a specific useGT/getGT\n * Only one hash can be set per call (overwrites if called multiple times)\n */\n setTranslationHash(counterId: number, hash: TranslationHash): void {\n this.hashAggregators.set(counterId, hash);\n }\n\n /**\n * Pass 2: Get translation call data for injection into a specific useGT/getGT call\n */\n getTranslationData(counterId: number):\n | {\n type: 'content' | 'jsx' | 'hash';\n value: TranslationContent[] | TranslationJsx | TranslationHash;\n }\n | undefined {\n if (this.contentAggregators.has(counterId)) {\n return {\n type: 'content',\n value: this.contentAggregators.get(counterId)!,\n };\n } else if (this.jsxAggregators.has(counterId)) {\n return { type: 'jsx', value: this.jsxAggregators.get(counterId)! };\n } else if (this.hashAggregators.has(counterId)) {\n return { type: 'hash', value: this.hashAggregators.get(counterId)! };\n }\n }\n\n /**\n * Get the translation content for a specific useGT/getGT call\n */\n getTranslationContent(counterId: number): TranslationContent[] | undefined {\n return this.contentAggregators.get(counterId);\n }\n\n /**\n * Get the translation JSX for a specific <T> component\n */\n getTranslationJsx(counterId: number): TranslationJsx | undefined {\n return this.jsxAggregators.get(counterId);\n }\n\n /**\n * Get the translation hash for a specific other call\n */\n getTranslationHash(counterId: number): TranslationHash | undefined {\n return this.hashAggregators.get(counterId);\n }\n\n /**\n * Reset all state (useful for testing)\n */\n clear(): void {\n this.contentAggregators.clear();\n this.jsxAggregators.clear();\n this.hashAggregators.clear();\n this.runtimeOnlyEntries = [];\n this.globalCallCounter = 0;\n }\n\n /**\n * Reset the counter to zero\n */\n resetCounter(): void {\n this.globalCallCounter = 0;\n }\n\n /**\n * Has content\n */\n hasContent(): boolean {\n return (\n this.contentAggregators.size +\n this.jsxAggregators.size +\n this.hashAggregators.size +\n this.runtimeOnlyEntries.length >\n 0\n );\n }\n\n /**\n * Get all translation content entries (flattened across all aggregators)\n */\n getAllTranslationContent(): TranslationContent[] {\n return Array.from(this.contentAggregators.values()).flat();\n }\n\n /**\n * Get all translation JSX entries\n */\n getAllTranslationJsx(): TranslationJsx[] {\n return Array.from(this.jsxAggregators.values());\n }\n\n /**\n * Add a runtime-only translation entry for the runtime translate pass.\n */\n pushRuntimeOnlyContent(content: TranslationContent): void {\n this.runtimeOnlyEntries.push(content);\n }\n\n /**\n * Get all runtime-only translation entries\n */\n getRuntimeOnlyContent(): TranslationContent[] {\n return this.runtimeOnlyEntries;\n }\n\n /**\n * Helper convert to string\n */\n serialize(): SerializedStringCollector {\n const output = {\n contentAggregators: Object.fromEntries(this.contentAggregators),\n jsxAggregators: Object.fromEntries(this.jsxAggregators),\n hashAggregators: Object.fromEntries(this.hashAggregators),\n globalCallCounter: this.globalCallCounter,\n };\n return output;\n }\n\n /**\n * Helper to repopulate\n */\n unserialize(input: SerializedStringCollector): void {\n this.contentAggregators = Object.entries(\n input.contentAggregators as Record<number, TranslationContent[]>\n ).reduce((acc, [key, value]) => {\n acc.set(Number(key), value);\n return acc;\n }, new Map<number, TranslationContent[]>());\n this.jsxAggregators = Object.entries(\n input.jsxAggregators as Record<number, TranslationJsx>\n ).reduce((acc, [key, value]) => {\n acc.set(Number(key), value);\n return acc;\n }, new Map<number, TranslationJsx>());\n this.hashAggregators = Object.entries(\n input.hashAggregators as Record<number, TranslationHash>\n ).reduce((acc, [key, value]) => {\n acc.set(Number(key), value);\n return acc;\n }, new Map<number, TranslationHash>());\n this.globalCallCounter = input.globalCallCounter;\n }\n}\n"],"mappings":"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"}
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
@@ -1,73 +1,68 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.initializeState = initializeState;
15
- const config_1 = require("../../config");
16
- const StringCollector_1 = require("../StringCollector");
17
- const ScopeTracker_1 = require("../ScopeTracker");
18
- const Logger_1 = require("../Logger");
19
- const ErrorTracker_1 = require("../ErrorTracker");
20
- const constants_1 = require("../../utils/constants/gt/constants");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_config = require("../../config.js");
3
+ require("../../utils/constants/gt/constants.js");
4
+ const require_state_ScopeTracker = require("../ScopeTracker.js");
5
+ const require_state_StringCollector = require("../StringCollector.js");
6
+ const require_state_Logger = require("../Logger.js");
7
+ const require_state_ErrorTracker = require("../ErrorTracker.js");
8
+ //#region src/state/utils/initializeState.ts
21
9
  const DEFAULT_SETTINGS = {
22
- logLevel: 'warn',
23
- compileTimeHash: false,
24
- disableBuildChecks: false,
25
- enableMacroTransform: true,
26
- stringTranslationMacro: constants_1.GT_OTHER_FUNCTIONS.t,
27
- enableTaggedTemplate: true,
28
- enableTemplateLiteralArg: true,
29
- enableConcatenationArg: true,
30
- enableMacroImportInjection: true,
31
- enableAutoJsxInjection: false,
32
- autoderive: { jsx: false, strings: false },
33
- _debugHashManifest: false,
34
- devHotReload: { strings: false, jsx: false },
10
+ logLevel: "warn",
11
+ compileTimeHash: false,
12
+ disableBuildChecks: false,
13
+ enableMacroTransform: true,
14
+ stringTranslationMacro: "t",
15
+ enableTaggedTemplate: true,
16
+ enableTemplateLiteralArg: true,
17
+ enableConcatenationArg: true,
18
+ enableMacroImportInjection: true,
19
+ enableAutoJsxInjection: false,
20
+ autoderive: {
21
+ jsx: false,
22
+ strings: false
23
+ },
24
+ _debugHashManifest: false,
25
+ devHotReload: {
26
+ strings: false,
27
+ jsx: false
28
+ }
35
29
  };
36
30
  /**
37
- * Initialize processing state for a file
38
- */
31
+ * Initialize processing state for a file
32
+ */
39
33
  function initializeState(options, filename) {
40
- var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
41
- // Pull enableAutoJsxInjection from gtConfig if provided
42
- const gtConfig = options.gtConfig;
43
- const enableAutoJsxInjection = (_g = (_f = (_e = (_d = gtConfig === null || gtConfig === void 0 ? void 0 : gtConfig.files) === null || _d === void 0 ? void 0 : _d.gt) === null || _e === void 0 ? void 0 : _e.parsingFlags) === null || _f === void 0 ? void 0 : _f.enableAutoJsxInjection) !== null && _g !== void 0 ? _g : false;
44
- const rawDevHotReload = (_l = (_k = (_j = (_h = gtConfig === null || gtConfig === void 0 ? void 0 : gtConfig.files) === null || _h === void 0 ? void 0 : _h.gt) === null || _j === void 0 ? void 0 : _j.parsingFlags) === null || _k === void 0 ? void 0 : _k.devHotReload) !== null && _l !== void 0 ? _l : false;
45
- const rawAutoderive = (_u = (_q = (_p = (_o = (_m = gtConfig === null || gtConfig === void 0 ? void 0 : gtConfig.files) === null || _m === void 0 ? void 0 : _m.gt) === null || _o === void 0 ? void 0 : _o.parsingFlags) === null || _p === void 0 ? void 0 : _p.autoderive) !== null && _q !== void 0 ? _q : (_t = (_s = (_r = gtConfig === null || gtConfig === void 0 ? void 0 : gtConfig.files) === null || _r === void 0 ? void 0 : _r.gt) === null || _s === void 0 ? void 0 : _s.parsingFlags) === null || _t === void 0 ? void 0 : _t.autoDerive) !== null && _u !== void 0 ? _u : false;
46
- // Backwards compat: normalize deprecated autoDerive autoderive from options
47
- const rawOptionsAutoderive = (_w = (_v = options.autoderive) !== null && _v !== void 0 ? _v : options.autoDerive) !== null && _w !== void 0 ? _w : undefined;
48
- const autoderive = (0, config_1.resolveAutoderive)(rawOptionsAutoderive !== null && rawOptionsAutoderive !== void 0 ? rawOptionsAutoderive : rawAutoderive);
49
- // Resolve devHotReload (options override gtConfig)
50
- const rawOptionsDevHotReload = (_x = options.devHotReload) !== null && _x !== void 0 ? _x : undefined;
51
- const devHotReload = (0, config_1.resolveDevHotReload)(rawOptionsDevHotReload !== null && rawOptionsDevHotReload !== void 0 ? rawOptionsDevHotReload : rawDevHotReload);
52
- // Spread options but exclude already-resolved fields
53
- // eslint-disable-next-line no-unused-vars
54
- const { autoderive: _a, autoDerive: _b, devHotReload: _c } = options, restOptions = __rest(options, ["autoderive", "autoDerive", "devHotReload"]);
55
- const settings = Object.assign(Object.assign(Object.assign(Object.assign({}, DEFAULT_SETTINGS), { enableAutoJsxInjection, // can be overridden by options.enableAutoJsxInjection
56
- autoderive,
57
- devHotReload }), restOptions), { filename });
58
- return {
59
- settings,
60
- stringCollector: new StringCollector_1.StringCollector(),
61
- scopeTracker: new ScopeTracker_1.ScopeTracker(),
62
- logger: new Logger_1.Logger(settings.logLevel),
63
- errorTracker: new ErrorTracker_1.ErrorTracker(),
64
- statistics: {
65
- jsxElementCount: 0,
66
- dynamicContentViolations: 0,
67
- macroExpansionsCount: 0,
68
- jsxInsertionsCount: 0,
69
- runtimeTranslateCount: 0,
70
- },
71
- };
34
+ var _gtConfig$files, _gtConfig$files2, _gtConfig$files3, _gtConfig$files4;
35
+ const gtConfig = options.gtConfig;
36
+ const enableAutoJsxInjection = (gtConfig === null || gtConfig === void 0 || (_gtConfig$files = gtConfig.files) === null || _gtConfig$files === void 0 || (_gtConfig$files = _gtConfig$files.gt) === null || _gtConfig$files === void 0 || (_gtConfig$files = _gtConfig$files.parsingFlags) === null || _gtConfig$files === void 0 ? void 0 : _gtConfig$files.enableAutoJsxInjection) ?? false;
37
+ const rawDevHotReload = (gtConfig === null || gtConfig === void 0 || (_gtConfig$files2 = gtConfig.files) === null || _gtConfig$files2 === void 0 || (_gtConfig$files2 = _gtConfig$files2.gt) === null || _gtConfig$files2 === void 0 || (_gtConfig$files2 = _gtConfig$files2.parsingFlags) === null || _gtConfig$files2 === void 0 ? void 0 : _gtConfig$files2.devHotReload) ?? false;
38
+ const rawAutoderive = (gtConfig === null || gtConfig === void 0 || (_gtConfig$files3 = gtConfig.files) === null || _gtConfig$files3 === void 0 || (_gtConfig$files3 = _gtConfig$files3.gt) === null || _gtConfig$files3 === void 0 || (_gtConfig$files3 = _gtConfig$files3.parsingFlags) === null || _gtConfig$files3 === void 0 ? void 0 : _gtConfig$files3.autoderive) ?? (gtConfig === null || gtConfig === void 0 || (_gtConfig$files4 = gtConfig.files) === null || _gtConfig$files4 === void 0 || (_gtConfig$files4 = _gtConfig$files4.gt) === null || _gtConfig$files4 === void 0 || (_gtConfig$files4 = _gtConfig$files4.parsingFlags) === null || _gtConfig$files4 === void 0 ? void 0 : _gtConfig$files4.autoDerive) ?? false;
39
+ const autoderive = require_config.resolveAutoderive(options.autoderive ?? options.autoDerive ?? void 0 ?? rawAutoderive);
40
+ const devHotReload = require_config.resolveDevHotReload(options.devHotReload ?? void 0 ?? rawDevHotReload);
41
+ const { autoderive: _a, autoDerive: _b, devHotReload: _c, ...restOptions } = options;
42
+ const settings = {
43
+ ...DEFAULT_SETTINGS,
44
+ enableAutoJsxInjection,
45
+ autoderive,
46
+ devHotReload,
47
+ ...restOptions,
48
+ filename
49
+ };
50
+ return {
51
+ settings,
52
+ stringCollector: new require_state_StringCollector.StringCollector(),
53
+ scopeTracker: new require_state_ScopeTracker.ScopeTracker(),
54
+ logger: new require_state_Logger.Logger(settings.logLevel),
55
+ errorTracker: new require_state_ErrorTracker.ErrorTracker(),
56
+ statistics: {
57
+ jsxElementCount: 0,
58
+ dynamicContentViolations: 0,
59
+ macroExpansionsCount: 0,
60
+ jsxInsertionsCount: 0,
61
+ runtimeTranslateCount: 0
62
+ }
63
+ };
72
64
  }
65
+ //#endregion
66
+ exports.initializeState = initializeState;
67
+
73
68
  //# sourceMappingURL=initializeState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initializeState.js","sourceRoot":"","sources":["../../../src/state/utils/initializeState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initializeState.js","names":["resolveAutoderive","resolveDevHotReload","StringCollector","ScopeTracker","Logger","ErrorTracker"],"sources":["../../../src/state/utils/initializeState.ts"],"sourcesContent":["import { GTUnpluginOptions } from '../..';\nimport { TransformState } from '../types';\nimport {\n PluginSettings,\n resolveAutoderive,\n resolveDevHotReload,\n} from '../../config';\nimport { StringCollector } from '../StringCollector';\nimport { ScopeTracker } from '../ScopeTracker';\nimport { Logger } from '../Logger';\nimport { ErrorTracker } from '../ErrorTracker';\nimport { GT_OTHER_FUNCTIONS } from '../../utils/constants/gt/constants';\n\nconst DEFAULT_SETTINGS: PluginSettings = {\n logLevel: 'warn',\n compileTimeHash: false,\n disableBuildChecks: false,\n enableMacroTransform: true,\n stringTranslationMacro: GT_OTHER_FUNCTIONS.t,\n enableTaggedTemplate: true,\n enableTemplateLiteralArg: true,\n enableConcatenationArg: true,\n enableMacroImportInjection: true,\n enableAutoJsxInjection: false,\n autoderive: { jsx: false, strings: false },\n _debugHashManifest: false,\n devHotReload: { strings: false, jsx: false },\n};\n\n/**\n * Initialize processing state for a file\n */\nexport function initializeState(\n options: GTUnpluginOptions,\n filename: string\n): TransformState {\n // Pull enableAutoJsxInjection from gtConfig if provided\n const gtConfig = options.gtConfig;\n const enableAutoJsxInjection =\n gtConfig?.files?.gt?.parsingFlags?.enableAutoJsxInjection ?? false;\n const rawDevHotReload =\n gtConfig?.files?.gt?.parsingFlags?.devHotReload ?? false;\n const rawAutoderive =\n gtConfig?.files?.gt?.parsingFlags?.autoderive ??\n gtConfig?.files?.gt?.parsingFlags?.autoDerive ??\n false;\n\n // Backwards compat: normalize deprecated autoDerive → autoderive from options\n const rawOptionsAutoderive =\n options.autoderive ?? options.autoDerive ?? undefined;\n\n const autoderive = resolveAutoderive(rawOptionsAutoderive ?? rawAutoderive);\n\n // Resolve devHotReload (options override gtConfig)\n const rawOptionsDevHotReload = options.devHotReload ?? undefined;\n const devHotReload = resolveDevHotReload(\n rawOptionsDevHotReload ?? rawDevHotReload\n );\n\n // Spread options but exclude already-resolved fields\n // eslint-disable-next-line no-unused-vars\n const {\n autoderive: _a,\n autoDerive: _b,\n devHotReload: _c,\n ...restOptions\n } = options;\n\n const settings: PluginSettings = {\n ...DEFAULT_SETTINGS,\n enableAutoJsxInjection, // can be overridden by options.enableAutoJsxInjection\n autoderive,\n devHotReload,\n ...restOptions,\n filename,\n };\n\n return {\n settings,\n stringCollector: new StringCollector(),\n scopeTracker: new ScopeTracker(),\n logger: new Logger(settings.logLevel),\n errorTracker: new ErrorTracker(),\n statistics: {\n jsxElementCount: 0,\n dynamicContentViolations: 0,\n macroExpansionsCount: 0,\n jsxInsertionsCount: 0,\n runtimeTranslateCount: 0,\n },\n };\n}\n"],"mappings":";;;;;;;;AAaA,MAAM,mBAAmC;CACvC,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,sBAAsB;CACtB,wBAAA;CACA,sBAAsB;CACtB,0BAA0B;CAC1B,wBAAwB;CACxB,4BAA4B;CAC5B,wBAAwB;CACxB,YAAY;EAAE,KAAK;EAAO,SAAS;EAAO;CAC1C,oBAAoB;CACpB,cAAc;EAAE,SAAS;EAAO,KAAK;EAAO;CAC7C;;;;AAKD,SAAgB,gBACd,SACA,UACgB;;CAEhB,MAAM,WAAW,QAAQ;CACzB,MAAM,0BAAA,aAAA,QAAA,aAAA,KAAA,MAAA,kBACJ,SAAU,WAAA,QAAA,oBAAA,KAAA,MAAA,kBAAA,gBAAO,QAAA,QAAA,oBAAA,KAAA,MAAA,kBAAA,gBAAI,kBAAA,QAAA,oBAAA,KAAA,IAAA,KAAA,IAAA,gBAAc,2BAA0B;CAC/D,MAAM,mBAAA,aAAA,QAAA,aAAA,KAAA,MAAA,mBACJ,SAAU,WAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAO,QAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAI,kBAAA,QAAA,qBAAA,KAAA,IAAA,KAAA,IAAA,iBAAc,iBAAgB;CACrD,MAAM,iBAAA,aAAA,QAAA,aAAA,KAAA,MAAA,mBACJ,SAAU,WAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAO,QAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAI,kBAAA,QAAA,qBAAA,KAAA,IAAA,KAAA,IAAA,iBAAc,gBAAA,aAAA,QAAA,aAAA,KAAA,MAAA,mBACnC,SAAU,WAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAO,QAAA,QAAA,qBAAA,KAAA,MAAA,mBAAA,iBAAI,kBAAA,QAAA,qBAAA,KAAA,IAAA,KAAA,IAAA,iBAAc,eACnC;CAMF,MAAM,aAAaA,eAAAA,kBAFjB,QAAQ,cAAc,QAAQ,cAAc,KAAA,KAEe,cAAc;CAI3E,MAAM,eAAeC,eAAAA,oBADU,QAAQ,gBAAgB,KAAA,KAE3B,gBAC3B;CAID,MAAM,EACJ,YAAY,IACZ,YAAY,IACZ,cAAc,IACd,GAAG,gBACD;CAEJ,MAAM,WAA2B;EAC/B,GAAG;EACH;EACA;EACA;EACA,GAAG;EACH;EACD;AAED,QAAO;EACL;EACA,iBAAiB,IAAIC,8BAAAA,iBAAiB;EACtC,cAAc,IAAIC,2BAAAA,cAAc;EAChC,QAAQ,IAAIC,qBAAAA,OAAO,SAAS,SAAS;EACrC,cAAc,IAAIC,2BAAAA,cAAc;EAChC,YAAY;GACV,iBAAiB;GACjB,0BAA0B;GAC1B,sBAAsB;GACtB,oBAAoB;GACpB,uBAAuB;GACxB;EACF"}