@generaltranslation/compiler 1.3.22 → 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 (226) 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.js +154 -209
  82. package/dist/state/ScopeTracker.js.map +1 -1
  83. package/dist/state/StringCollector.js +165 -184
  84. package/dist/state/StringCollector.js.map +1 -1
  85. package/dist/state/types.js +1 -3
  86. package/dist/state/utils/initializeState.js +62 -67
  87. package/dist/state/utils/initializeState.js.map +1 -1
  88. package/dist/transform/getTrackedVariable.js +33 -38
  89. package/dist/transform/getTrackedVariable.js.map +1 -1
  90. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js +19 -27
  91. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js.map +1 -1
  92. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js +8 -6
  93. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js.map +1 -1
  94. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js +8 -6
  95. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js.map +1 -1
  96. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js +74 -155
  97. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js.map +1 -1
  98. package/dist/transform/injection/injectHashIntoTranslationOptions.js +21 -61
  99. package/dist/transform/injection/injectHashIntoTranslationOptions.js.map +1 -1
  100. package/dist/transform/injection/injectStandaloneTFunctionParameters.js +21 -27
  101. package/dist/transform/injection/injectStandaloneTFunctionParameters.js.map +1 -1
  102. package/dist/transform/injection/injectTComponentParameters.js +25 -65
  103. package/dist/transform/injection/injectTComponentParameters.js.map +1 -1
  104. package/dist/transform/jsx-children/constructJsxChildren.js +273 -392
  105. package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
  106. package/dist/transform/jsx-children/errors.js +16 -6
  107. package/dist/transform/jsx-children/errors.js.map +1 -1
  108. package/dist/transform/jsx-children/index.js +3 -6
  109. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js +26 -85
  110. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js.map +1 -1
  111. package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js +33 -66
  112. package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js.map +1 -1
  113. package/dist/transform/jsx-children/utils/id.js +18 -17
  114. package/dist/transform/jsx-children/utils/id.js.map +1 -1
  115. package/dist/transform/jsx-children/validation/validateChildrenElement.js +13 -47
  116. package/dist/transform/jsx-children/validation/validateChildrenElement.js.map +1 -1
  117. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js +25 -63
  118. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js.map +1 -1
  119. package/dist/transform/jsx-children/validation/validateIdentifier.js +38 -41
  120. package/dist/transform/jsx-children/validation/validateIdentifier.js.map +1 -1
  121. package/dist/transform/jsx-children/validation/validateJsxCall.js +15 -26
  122. package/dist/transform/jsx-children/validation/validateJsxCall.js.map +1 -1
  123. package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js +33 -61
  124. package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js.map +1 -1
  125. package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js +38 -66
  126. package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js.map +1 -1
  127. package/dist/transform/jsx-children/validation/validateTemplateLiteral.js +17 -13
  128. package/dist/transform/jsx-children/validation/validateTemplateLiteral.js.map +1 -1
  129. package/dist/transform/jsx-children/validation/validateUnaryExpression.js +26 -61
  130. package/dist/transform/jsx-children/validation/validateUnaryExpression.js.map +1 -1
  131. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js +16 -48
  132. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js.map +1 -1
  133. package/dist/transform/macro-expansion/injectMacroImport.js +14 -43
  134. package/dist/transform/macro-expansion/injectMacroImport.js.map +1 -1
  135. package/dist/transform/macro-expansion/transformTemplateLiteral.js +23 -22
  136. package/dist/transform/macro-expansion/transformTemplateLiteral.js.map +1 -1
  137. package/dist/transform/registration/callbacks/registerUseGTCallback.js +27 -34
  138. package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
  139. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js +9 -9
  140. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js.map +1 -1
  141. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js +9 -9
  142. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js.map +1 -1
  143. package/dist/transform/registration/registerStandaloneTranslation.js +27 -28
  144. package/dist/transform/registration/registerStandaloneTranslation.js.map +1 -1
  145. package/dist/transform/registration/registerTranslationComponent.js +15 -15
  146. package/dist/transform/registration/registerTranslationComponent.js.map +1 -1
  147. package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js +34 -85
  148. package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js.map +1 -1
  149. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +25 -55
  150. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -1
  151. package/dist/transform/tracking/trackAssignmentExpression.js +26 -63
  152. package/dist/transform/tracking/trackAssignmentExpression.js.map +1 -1
  153. package/dist/transform/tracking/trackCatchClause.js +17 -48
  154. package/dist/transform/tracking/trackCatchClause.js.map +1 -1
  155. package/dist/transform/tracking/trackClassDeclaration.js +13 -13
  156. package/dist/transform/tracking/trackClassDeclaration.js.map +1 -1
  157. package/dist/transform/tracking/trackForDeclaration.js +17 -53
  158. package/dist/transform/tracking/trackForDeclaration.js.map +1 -1
  159. package/dist/transform/tracking/trackFunctionName.js +10 -10
  160. package/dist/transform/tracking/trackFunctionName.js.map +1 -1
  161. package/dist/transform/tracking/trackFunctionParams.js +19 -54
  162. package/dist/transform/tracking/trackFunctionParams.js.map +1 -1
  163. package/dist/transform/tracking/trackImportDeclaration.js +36 -89
  164. package/dist/transform/tracking/trackImportDeclaration.js.map +1 -1
  165. package/dist/transform/tracking/trackOverridingVariable.js +9 -11
  166. package/dist/transform/tracking/trackOverridingVariable.js.map +1 -1
  167. package/dist/transform/tracking/trackVariableDeclarator.js +51 -102
  168. package/dist/transform/tracking/trackVariableDeclarator.js.map +1 -1
  169. package/dist/transform/validation/validateTranslationComponentArgs.js +156 -232
  170. package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
  171. package/dist/transform/validation/validateTranslationFunction.js +218 -329
  172. package/dist/transform/validation/validateTranslationFunction.js.map +1 -1
  173. package/dist/utils/calculateHash.js +55 -70
  174. package/dist/utils/calculateHash.js.map +1 -1
  175. package/dist/utils/constants/gt/constants.js +142 -132
  176. package/dist/utils/constants/gt/constants.js.map +1 -1
  177. package/dist/utils/constants/gt/helpers.js +147 -149
  178. package/dist/utils/constants/gt/helpers.js.map +1 -1
  179. package/dist/utils/constants/other/constants.js +45 -41
  180. package/dist/utils/constants/other/constants.js.map +1 -1
  181. package/dist/utils/constants/other/helpers.js +13 -11
  182. package/dist/utils/constants/other/helpers.js.map +1 -1
  183. package/dist/utils/constants/react/constants.js +47 -41
  184. package/dist/utils/constants/react/constants.js.map +1 -1
  185. package/dist/utils/constants/react/helpers.js +17 -16
  186. package/dist/utils/constants/react/helpers.js.map +1 -1
  187. package/dist/utils/constants/resolveIdentifier/isGTComponent.js +41 -76
  188. package/dist/utils/constants/resolveIdentifier/isGTComponent.js.map +1 -1
  189. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js +33 -83
  190. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js.map +1 -1
  191. package/dist/utils/errors.js +18 -20
  192. package/dist/utils/errors.js.map +1 -1
  193. package/dist/utils/multiplication/multiply.js +31 -35
  194. package/dist/utils/multiplication/multiply.js.map +1 -1
  195. package/dist/utils/multiplication/types.js +1 -3
  196. package/dist/utils/parsing/extractIdentifiersFromLVal.js +30 -96
  197. package/dist/utils/parsing/extractIdentifiersFromLVal.js.map +1 -1
  198. package/dist/utils/parsing/getCalleeNameFromExpression.js +31 -65
  199. package/dist/utils/parsing/getCalleeNameFromExpression.js.map +1 -1
  200. package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js +13 -10
  201. package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js.map +1 -1
  202. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js +19 -56
  203. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js.map +1 -1
  204. package/dist/utils/parsing/getStringLiteralFromExpression.js +18 -49
  205. package/dist/utils/parsing/getStringLiteralFromExpression.js.map +1 -1
  206. package/dist/utils/parsing/isDeriveInvocation.js +25 -61
  207. package/dist/utils/parsing/isDeriveInvocation.js.map +1 -1
  208. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js +23 -59
  209. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js.map +1 -1
  210. package/dist/utils/string-expressions/buildTransformationResult.js +57 -96
  211. package/dist/utils/string-expressions/buildTransformationResult.js.map +1 -1
  212. package/dist/utils/string-expressions/flattenExpressionToParts.js +131 -142
  213. package/dist/utils/string-expressions/flattenExpressionToParts.js.map +1 -1
  214. package/dist/utils/string-expressions/resolveStaticExpression.js +36 -34
  215. package/dist/utils/string-expressions/resolveStaticExpression.js.map +1 -1
  216. package/dist/utils/validation/validateChildrenFromObjectExpression.js +29 -24
  217. package/dist/utils/validation/validateChildrenFromObjectExpression.js.map +1 -1
  218. package/dist/utils/validation/validateExpressionIsNumericLiteral.js +13 -47
  219. package/dist/utils/validation/validateExpressionIsNumericLiteral.js.map +1 -1
  220. package/dist/utils/validation/validateExpressionIsStringLiteral.js +15 -48
  221. package/dist/utils/validation/validateExpressionIsStringLiteral.js.map +1 -1
  222. package/package.json +8 -5
  223. package/dist/processing/index.js.map +0 -1
  224. package/dist/state/types.js.map +0 -1
  225. package/dist/transform/jsx-children/index.js.map +0 -1
  226. package/dist/utils/multiplication/types.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
package/dist/config.js CHANGED
@@ -1,34 +1,39 @@
1
- "use strict";
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/config.ts
2
3
  /**
3
- * Configuration types for the GT Babel plugin
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resolveAutoderive = resolveAutoderive;
7
- exports.resolveDevHotReload = resolveDevHotReload;
8
- /**
9
- * Resolves the autoderive config value into separate jsx and strings flags.
10
- * - `true` enables both (backward compatible)
11
- * - `false` disables both (backward compatible)
12
- * - `{ jsx?: boolean; strings?: boolean }` enables selectively (missing keys default to false)
13
- */
4
+ * Resolves the autoderive config value into separate jsx and strings flags.
5
+ * - `true` enables both (backward compatible)
6
+ * - `false` disables both (backward compatible)
7
+ * - `{ jsx?: boolean; strings?: boolean }` enables selectively (missing keys default to false)
8
+ */
14
9
  function resolveAutoderive(value) {
15
- var _a, _b;
16
- if (value === undefined || typeof value === 'boolean') {
17
- return { jsx: !!value, strings: !!value };
18
- }
19
- return { jsx: (_a = value.jsx) !== null && _a !== void 0 ? _a : false, strings: (_b = value.strings) !== null && _b !== void 0 ? _b : false };
10
+ if (value === void 0 || typeof value === "boolean") return {
11
+ jsx: !!value,
12
+ strings: !!value
13
+ };
14
+ return {
15
+ jsx: value.jsx ?? false,
16
+ strings: value.strings ?? false
17
+ };
20
18
  }
21
19
  /**
22
- * Resolves the devHotReload config value into separate strings and jsx flags.
23
- * - `true` enables strings only (JSX is handled at runtime via Suspense, no compiler injection needed)
24
- * - `false` disables both
25
- * - `{ strings?: boolean; jsx?: boolean }` enables selectively (missing keys default to false)
26
- */
20
+ * Resolves the devHotReload config value into separate strings and jsx flags.
21
+ * - `true` enables strings only (JSX is handled at runtime via Suspense, no compiler injection needed)
22
+ * - `false` disables both
23
+ * - `{ strings?: boolean; jsx?: boolean }` enables selectively (missing keys default to false)
24
+ */
27
25
  function resolveDevHotReload(value) {
28
- var _a, _b;
29
- if (value === undefined || typeof value === 'boolean') {
30
- return { strings: !!value, jsx: false };
31
- }
32
- return { strings: (_a = value.strings) !== null && _a !== void 0 ? _a : false, jsx: (_b = value.jsx) !== null && _b !== void 0 ? _b : false };
26
+ if (value === void 0 || typeof value === "boolean") return {
27
+ strings: !!value,
28
+ jsx: false
29
+ };
30
+ return {
31
+ strings: value.strings ?? false,
32
+ jsx: value.jsx ?? false
33
+ };
33
34
  }
35
+ //#endregion
36
+ exports.resolveAutoderive = resolveAutoderive;
37
+ exports.resolveDevHotReload = resolveDevHotReload;
38
+
34
39
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgFH,8CAOC;AAQD,kDAOC;AA5BD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAiE;;IAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAA,KAAK,CAAC,GAAG,mCAAI,KAAK,EAAE,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,EAAE,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,KAAiE;;IAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,EAAE,GAAG,EAAE,MAAA,KAAK,CAAC,GAAG,mCAAI,KAAK,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"config.js","names":[],"sources":["../src/config.ts"],"sourcesContent":["/**\n * Configuration types for the GT Babel plugin\n */\n\nexport type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'debug';\n\n/**\n * The only relevant parts of the GT config that we are concerned with\n */\ntype GTConfig = {\n files?: {\n gt?: {\n parsingFlags?: {\n enableAutoJsxInjection?: boolean;\n autoderive?: boolean | { jsx?: boolean; strings?: boolean };\n /** @deprecated Use `autoderive` instead */\n autoDerive?: boolean;\n /** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */\n devHotReload?: boolean | { strings?: boolean; jsx?: boolean };\n };\n };\n };\n};\n\n/**\n * Plugin configuration options (from babel config)\n */\nexport interface PluginConfig {\n /** Log level for the plugin */\n logLevel?: LogLevel;\n /** GT Configuration object — pass the parsed gt.config.json to sync settings */\n gtConfig?: GTConfig;\n /** Enable compile-time hash generation */\n compileTimeHash?: boolean;\n /** Disable dynamic content validation checks */\n disableBuildChecks?: boolean;\n /** Enable macro transform (t`...`, t(`...`), t(\"a\" + b)) */\n enableMacroTransform?: boolean;\n /** Name of the string translation macro function */\n stringTranslationMacro?: string;\n /** Enable Auto Jsx Injection (e.g. <div>Hello</div> -> <div><T>Hello</T></div>) */\n enableAutoJsxInjection?: boolean;\n /** Automatically treat interpolated/concatenated values as derive() calls */\n autoderive?: boolean | { jsx?: boolean; strings?: boolean };\n /** @deprecated Use `autoderive` instead */\n autoDerive?: boolean;\n /** Debug: write a hash → jsxChildren manifest file on build */\n _debugHashManifest?: boolean;\n /** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */\n devHotReload?: boolean | { strings?: boolean; jsx?: boolean };\n}\n\n/**\n * Internal plugin settings (processed config)\n */\nexport interface PluginSettings {\n logLevel: LogLevel;\n compileTimeHash: boolean;\n disableBuildChecks: boolean;\n filename?: string;\n enableMacroTransform: boolean;\n stringTranslationMacro: string;\n enableTaggedTemplate: boolean;\n enableTemplateLiteralArg: boolean;\n enableConcatenationArg: boolean;\n enableMacroImportInjection: boolean;\n /** Enable Auto Jsx Injection (e.g. <div>Hello</div> -> <div><T>Hello</T></div>) */\n enableAutoJsxInjection: boolean;\n /** Automatically treat interpolated/concatenated values as derive() calls */\n autoderive: { jsx: boolean; strings: boolean };\n /** Debug: write a hash → jsxChildren manifest file on build */\n _debugHashManifest: boolean;\n /** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */\n devHotReload: { strings: boolean; jsx: boolean };\n}\n\n/**\n * Resolves the autoderive config value into separate jsx and strings flags.\n * - `true` enables both (backward compatible)\n * - `false` disables both (backward compatible)\n * - `{ jsx?: boolean; strings?: boolean }` enables selectively (missing keys default to false)\n */\nexport function resolveAutoderive(\n value: boolean | { jsx?: boolean; strings?: boolean } | undefined\n): { jsx: boolean; strings: boolean } {\n if (value === undefined || typeof value === 'boolean') {\n return { jsx: !!value, strings: !!value };\n }\n return { jsx: value.jsx ?? false, strings: value.strings ?? false };\n}\n\n/**\n * Resolves the devHotReload config value into separate strings and jsx flags.\n * - `true` enables strings only (JSX is handled at runtime via Suspense, no compiler injection needed)\n * - `false` disables both\n * - `{ strings?: boolean; jsx?: boolean }` enables selectively (missing keys default to false)\n */\nexport function resolveDevHotReload(\n value: boolean | { strings?: boolean; jsx?: boolean } | undefined\n): { strings: boolean; jsx: boolean } {\n if (value === undefined || typeof value === 'boolean') {\n return { strings: !!value, jsx: false };\n }\n return { strings: value.strings ?? false, jsx: value.jsx ?? false };\n}\n"],"mappings":";;;;;;;;AAkFA,SAAgB,kBACd,OACoC;AACpC,KAAI,UAAU,KAAA,KAAa,OAAO,UAAU,UAC1C,QAAO;EAAE,KAAK,CAAC,CAAC;EAAO,SAAS,CAAC,CAAC;EAAO;AAE3C,QAAO;EAAE,KAAK,MAAM,OAAO;EAAO,SAAS,MAAM,WAAW;EAAO;;;;;;;;AASrE,SAAgB,oBACd,OACoC;AACpC,KAAI,UAAU,KAAA,KAAa,OAAO,UAAU,UAC1C,QAAO;EAAE,SAAS,CAAC,CAAC;EAAO,KAAK;EAAO;AAEzC,QAAO;EAAE,SAAS,MAAM,WAAW;EAAO,KAAK,MAAM,OAAO;EAAO"}
package/dist/index.d.ts CHANGED
@@ -57,6 +57,6 @@ declare const gtUnplugin: import("unplugin").UnpluginInstance<GTUnpluginOptions
57
57
  export default gtUnplugin;
58
58
  export declare const webpack: (options?: GTUnpluginOptions | undefined) => WebpackPluginInstance;
59
59
  export declare const vite: (options?: GTUnpluginOptions | undefined) => import("vite").Plugin<any> | import("vite").Plugin<any>[];
60
- export declare const rollup: (options?: GTUnpluginOptions | undefined) => import("rollup").Plugin<any> | import("rollup").Plugin<any>[];
60
+ export declare const rollup: (options?: GTUnpluginOptions | undefined) => any;
61
61
  export declare const esbuild: (options?: GTUnpluginOptions | undefined) => EsbuildPlugin;
62
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;CAEtD;AAED,eAAO,MAAM,yBAAyB,iMAC0J,CAAC;AAEjM,eAAO,MAAM,4BAA4B,GACvC,YAAY,MAAM,EAClB,OAAO,OAAO,WAI6C,CAAC;AAsC9D;;;;;GAKG;AACH,QAAA,MAAM,UAAU,6EA4If,CAAC;AAGF,eAAe,UAAU,CAAC;AAC1B,eAAO,MAAM,OAAO,oEAAqB,CAAC;AAC1C,eAAO,MAAM,IAAI,wGAAkB,CAAC;AACpC,eAAO,MAAM,MAAM,4GAAoB,CAAC;AACxC,eAAO,MAAM,OAAO,4DAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;CAEtD;AAED,eAAO,MAAM,yBAAyB,iMAC0J,CAAC;AAEjM,eAAO,MAAM,4BAA4B,GACvC,YAAY,MAAM,EAClB,OAAO,OAAO,WAI6C,CAAC;AAsC9D;;;;;GAKG;AACH,QAAA,MAAM,UAAU,6EA4If,CAAC;AAGF,eAAe,UAAU,CAAC;AAC1B,eAAO,MAAM,OAAO,oEAAqB,CAAC;AAC1C,eAAO,MAAM,IAAI,wGAAkB,CAAC;AACpC,eAAO,MAAM,MAAM,kDAAoB,CAAC;AACxC,eAAO,MAAM,OAAO,4DAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,196 +1,129 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
17
4
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.esbuild = exports.rollup = exports.vite = exports.webpack = exports.createInvalidGTConfigWarning = exports.MISSING_GT_CONFIG_WARNING = void 0;
40
- const unplugin_1 = require("unplugin");
41
- const node_fs_1 = __importDefault(require("node:fs"));
42
- const node_path_1 = __importDefault(require("node:path"));
43
- const parser = __importStar(require("@babel/parser"));
44
- const generator_1 = __importDefault(require("@babel/generator"));
45
- const traverse_1 = __importDefault(require("@babel/traverse"));
46
- // Import passes
47
- const collectionPass_1 = require("./passes/collectionPass");
48
- const injectionPass_1 = require("./passes/injectionPass");
49
- const macroExpansionPass_1 = require("./passes/macroExpansionPass");
50
- const handleErrors_1 = require("./passes/handleErrors");
51
- const initializeState_1 = require("./state/utils/initializeState");
52
- const jsxInsertionPass_1 = require("./passes/jsxInsertionPass");
53
- const runtimeTranslatePass_1 = require("./passes/runtimeTranslatePass");
54
- exports.MISSING_GT_CONFIG_WARNING = '[@generaltranslation/compiler] No gtConfig found. Auto JSX injection and parsingFlags features require a gt.config.json. See https://generaltranslation.com/en/docs/react/concepts/compiler.';
55
- const createInvalidGTConfigWarning = (configPath, error) => `[@generaltranslation/compiler] Failed to load gt.config.json at ${configPath}. ` +
56
- `Auto JSX injection and parsingFlags features require a valid gt.config.json. ` +
57
- `${error instanceof Error ? error.message : String(error)}`;
58
- exports.createInvalidGTConfigWarning = createInvalidGTConfigWarning;
5
+ const require_runtime = require("./_virtual/_rolldown/runtime.js");
6
+ const require_passes_collectionPass = require("./passes/collectionPass.js");
7
+ const require_passes_injectionPass = require("./passes/injectionPass.js");
8
+ const require_passes_macroExpansionPass = require("./passes/macroExpansionPass.js");
9
+ const require_passes_handleErrors = require("./passes/handleErrors.js");
10
+ const require_state_utils_initializeState = require("./state/utils/initializeState.js");
11
+ const require_passes_jsxInsertionPass = require("./passes/jsxInsertionPass.js");
12
+ const require_passes_runtimeTranslatePass = require("./passes/runtimeTranslatePass.js");
13
+ let unplugin = require("unplugin");
14
+ let node_fs = require("node:fs");
15
+ node_fs = require_runtime.__toESM(node_fs);
16
+ let node_path = require("node:path");
17
+ node_path = require_runtime.__toESM(node_path);
18
+ let _babel_parser = require("@babel/parser");
19
+ _babel_parser = require_runtime.__toESM(_babel_parser);
20
+ let _babel_generator = require("@babel/generator");
21
+ _babel_generator = require_runtime.__toESM(_babel_generator);
22
+ let _babel_traverse = require("@babel/traverse");
23
+ _babel_traverse = require_runtime.__toESM(_babel_traverse);
24
+ //#region src/index.ts
25
+ const MISSING_GT_CONFIG_WARNING = "[@generaltranslation/compiler] No gtConfig found. Auto JSX injection and parsingFlags features require a gt.config.json. See https://generaltranslation.com/en/docs/react/concepts/compiler.";
26
+ const createInvalidGTConfigWarning = (configPath, error) => `[@generaltranslation/compiler] Failed to load gt.config.json at ${configPath}. Auto JSX injection and parsingFlags features require a valid gt.config.json. ${error instanceof Error ? error.message : String(error)}`;
59
27
  function shouldWarn(logLevel) {
60
- return logLevel !== 'silent' && logLevel !== 'error';
28
+ return logLevel !== "silent" && logLevel !== "error";
61
29
  }
62
30
  function loadGTConfigFromCwd() {
63
- const configPath = node_path_1.default.join(process.cwd(), 'gt.config.json');
64
- if (!node_fs_1.default.existsSync(configPath)) {
65
- return { status: 'missing' };
66
- }
67
- try {
68
- return {
69
- gtConfig: JSON.parse(node_fs_1.default.readFileSync(configPath, 'utf-8')),
70
- status: 'loaded',
71
- };
72
- }
73
- catch (error) {
74
- return { configPath, error, status: 'invalid' };
75
- }
31
+ const configPath = node_path.default.join(process.cwd(), "gt.config.json");
32
+ if (!node_fs.default.existsSync(configPath)) return { status: "missing" };
33
+ try {
34
+ return {
35
+ gtConfig: JSON.parse(node_fs.default.readFileSync(configPath, "utf-8")),
36
+ status: "loaded"
37
+ };
38
+ } catch (error) {
39
+ return {
40
+ configPath,
41
+ error,
42
+ status: "invalid"
43
+ };
44
+ }
76
45
  }
77
46
  /**
78
- * GT Universal Plugin - Main entry point
79
- *
80
- * Universal plugin for compile-time optimization of GT translation components
81
- * that works across webpack, Vite, Rollup, and other bundlers.
82
- */
83
- const gtUnplugin = (0, unplugin_1.createUnplugin)((options = {}) => {
84
- const gtConfigLoadResult = options.gtConfig
85
- ? { gtConfig: options.gtConfig, status: 'loaded' }
86
- : loadGTConfigFromCwd();
87
- const loadedGTConfig = gtConfigLoadResult.status === 'loaded'
88
- ? gtConfigLoadResult.gtConfig
89
- : undefined;
90
- const resolvedOptions = Object.assign(Object.assign({}, options), (loadedGTConfig ? { gtConfig: loadedGTConfig } : {}));
91
- if (shouldWarn(options.logLevel)) {
92
- if (gtConfigLoadResult.status === 'missing') {
93
- console.warn(exports.MISSING_GT_CONFIG_WARNING);
94
- }
95
- else if (gtConfigLoadResult.status === 'invalid') {
96
- console.warn((0, exports.createInvalidGTConfigWarning)(gtConfigLoadResult.configPath, gtConfigLoadResult.error));
97
- }
98
- }
99
- // Debug manifest: accumulates hash → jsxChildren across all files
100
- const debugManifest = resolvedOptions._debugHashManifest
101
- ? new Map()
102
- : undefined;
103
- return {
104
- name: '@generaltranslation/GT_PLUGIN',
105
- transformInclude(id) {
106
- // Only transform TSX and JSX files
107
- return (id.endsWith('.tsx') ||
108
- id.endsWith('.jsx') ||
109
- id.endsWith('.ts') ||
110
- id.endsWith('.js'));
111
- },
112
- transform(code, id) {
113
- // Initialize processing state
114
- const state = (0, initializeState_1.initializeState)(resolvedOptions, id);
115
- if (debugManifest)
116
- state.debugManifest = debugManifest;
117
- try {
118
- // Skip transformation if not needed
119
- if (state.settings.disableBuildChecks &&
120
- !state.settings.compileTimeHash) {
121
- return null;
122
- }
123
- // Parse the code into AST
124
- const ast = parser.parse(code, {
125
- sourceType: 'module',
126
- plugins: ['jsx', 'typescript', 'decorators-legacy'],
127
- allowImportExportEverywhere: true,
128
- allowReturnOutsideFunction: true,
129
- });
130
- // Pass 1: Jsx insertion
131
- if (state.settings.enableAutoJsxInjection) {
132
- (0, traverse_1.default)(ast, (0, jsxInsertionPass_1.jsxInsertionPass)(state));
133
- }
134
- // Pass 2: Macro expansion
135
- if (state.settings.enableMacroTransform) {
136
- (0, traverse_1.default)(ast, (0, macroExpansionPass_1.macroExpansionPass)(state));
137
- }
138
- // Pass 3: Collection
139
- (0, traverse_1.default)(ast, (0, collectionPass_1.collectionPass)(state));
140
- // Handle errors
141
- if ((0, handleErrors_1.handleErrors)(state)) {
142
- return null;
143
- }
144
- // Pass 4: Injection
145
- const hasCollectionContent = state.stringCollector.hasContent();
146
- if (hasCollectionContent) {
147
- (0, traverse_1.default)(ast, (0, injectionPass_1.injectionPass)(state));
148
- }
149
- // Pass 5: Runtime translate (dev hot reload)
150
- const devHotReloadActive = state.settings.devHotReload.strings ||
151
- state.settings.devHotReload.jsx;
152
- if (devHotReloadActive && hasCollectionContent) {
153
- (0, traverse_1.default)(ast, (0, runtimeTranslatePass_1.runtimeTranslatePass)(state));
154
- }
155
- // Generate code if any pass modified the AST
156
- if (!hasCollectionContent &&
157
- state.statistics.macroExpansionsCount === 0 &&
158
- state.statistics.jsxInsertionsCount === 0 &&
159
- state.statistics.runtimeTranslateCount === 0) {
160
- return null;
161
- }
162
- return (0, generator_1.default)(ast, {
163
- retainLines: true,
164
- compact: false,
165
- });
166
- }
167
- catch (error) {
168
- // If the error is an instance of InvalidLibraryUsageError, throw it
169
- if (error instanceof handleErrors_1.InvalidLibraryUsageError) {
170
- throw error;
171
- }
172
- // Otherwise, log the error
173
- state.logger.logError(`Error processing ${id}: ${error}`);
174
- return null;
175
- }
176
- },
177
- buildEnd() {
178
- if (debugManifest && debugManifest.size > 0) {
179
- const fs = require('fs');
180
- const path = require('path');
181
- const outPath = path.resolve(process.cwd(), '_gt_debug_hash_manifest.json');
182
- const manifest = Object.fromEntries(debugManifest);
183
- fs.writeFileSync(outPath, JSON.stringify(manifest, null, 2));
184
- // eslint-disable-next-line no-console
185
- console.log(`[gt-compiler] Debug hash manifest written to ${outPath} (${debugManifest.size} entries)`);
186
- }
187
- },
188
- };
47
+ * GT Universal Plugin - Main entry point
48
+ *
49
+ * Universal plugin for compile-time optimization of GT translation components
50
+ * that works across webpack, Vite, Rollup, and other bundlers.
51
+ */
52
+ const gtUnplugin = (0, unplugin.createUnplugin)((options = {}) => {
53
+ const gtConfigLoadResult = options.gtConfig ? {
54
+ gtConfig: options.gtConfig,
55
+ status: "loaded"
56
+ } : loadGTConfigFromCwd();
57
+ const loadedGTConfig = gtConfigLoadResult.status === "loaded" ? gtConfigLoadResult.gtConfig : void 0;
58
+ const resolvedOptions = {
59
+ ...options,
60
+ ...loadedGTConfig ? { gtConfig: loadedGTConfig } : {}
61
+ };
62
+ if (shouldWarn(options.logLevel)) {
63
+ if (gtConfigLoadResult.status === "missing") console.warn(MISSING_GT_CONFIG_WARNING);
64
+ else if (gtConfigLoadResult.status === "invalid") console.warn(createInvalidGTConfigWarning(gtConfigLoadResult.configPath, gtConfigLoadResult.error));
65
+ }
66
+ const debugManifest = resolvedOptions._debugHashManifest ? /* @__PURE__ */ new Map() : void 0;
67
+ return {
68
+ name: "@generaltranslation/GT_PLUGIN",
69
+ transformInclude(id) {
70
+ return id.endsWith(".tsx") || id.endsWith(".jsx") || id.endsWith(".ts") || id.endsWith(".js");
71
+ },
72
+ transform(code, id) {
73
+ const state = require_state_utils_initializeState.initializeState(resolvedOptions, id);
74
+ if (debugManifest) state.debugManifest = debugManifest;
75
+ try {
76
+ if (state.settings.disableBuildChecks && !state.settings.compileTimeHash) return null;
77
+ const ast = _babel_parser.parse(code, {
78
+ sourceType: "module",
79
+ plugins: [
80
+ "jsx",
81
+ "typescript",
82
+ "decorators-legacy"
83
+ ],
84
+ allowImportExportEverywhere: true,
85
+ allowReturnOutsideFunction: true
86
+ });
87
+ if (state.settings.enableAutoJsxInjection) (0, _babel_traverse.default)(ast, require_passes_jsxInsertionPass.jsxInsertionPass(state));
88
+ if (state.settings.enableMacroTransform) (0, _babel_traverse.default)(ast, require_passes_macroExpansionPass.macroExpansionPass(state));
89
+ (0, _babel_traverse.default)(ast, require_passes_collectionPass.collectionPass(state));
90
+ if (require_passes_handleErrors.handleErrors(state)) return null;
91
+ const hasCollectionContent = state.stringCollector.hasContent();
92
+ if (hasCollectionContent) (0, _babel_traverse.default)(ast, require_passes_injectionPass.injectionPass(state));
93
+ if ((state.settings.devHotReload.strings || state.settings.devHotReload.jsx) && hasCollectionContent) (0, _babel_traverse.default)(ast, require_passes_runtimeTranslatePass.runtimeTranslatePass(state));
94
+ if (!hasCollectionContent && state.statistics.macroExpansionsCount === 0 && state.statistics.jsxInsertionsCount === 0 && state.statistics.runtimeTranslateCount === 0) return null;
95
+ return (0, _babel_generator.default)(ast, {
96
+ retainLines: true,
97
+ compact: false
98
+ });
99
+ } catch (error) {
100
+ if (error instanceof require_passes_handleErrors.InvalidLibraryUsageError) throw error;
101
+ state.logger.logError(`Error processing ${id}: ${error}`);
102
+ return null;
103
+ }
104
+ },
105
+ buildEnd() {
106
+ if (debugManifest && debugManifest.size > 0) {
107
+ const fs = require("fs");
108
+ const outPath = require("path").resolve(process.cwd(), "_gt_debug_hash_manifest.json");
109
+ const manifest = Object.fromEntries(debugManifest);
110
+ fs.writeFileSync(outPath, JSON.stringify(manifest, null, 2));
111
+ console.log(`[gt-compiler] Debug hash manifest written to ${outPath} (${debugManifest.size} entries)`);
112
+ }
113
+ }
114
+ };
189
115
  });
190
- // Export the unplugin with different bundler integrations
116
+ const webpack = gtUnplugin.webpack;
117
+ const vite = gtUnplugin.vite;
118
+ const rollup = gtUnplugin.rollup;
119
+ const esbuild = gtUnplugin.esbuild;
120
+ //#endregion
121
+ exports.MISSING_GT_CONFIG_WARNING = MISSING_GT_CONFIG_WARNING;
122
+ exports.createInvalidGTConfigWarning = createInvalidGTConfigWarning;
191
123
  exports.default = gtUnplugin;
192
- exports.webpack = gtUnplugin.webpack;
193
- exports.vite = gtUnplugin.vite;
194
- exports.rollup = gtUnplugin.rollup;
195
- exports.esbuild = gtUnplugin.esbuild;
124
+ exports.esbuild = esbuild;
125
+ exports.rollup = rollup;
126
+ exports.vite = vite;
127
+ exports.webpack = webpack;
128
+
196
129
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA0C;AAC1C,sDAAyB;AACzB,0DAA6B;AAC7B,sDAAwC;AACxC,iEAAwC;AACxC,+DAAuC;AAKvC,gBAAgB;AAChB,4DAAyD;AACzD,0DAAuD;AACvD,oEAAiE;AACjE,wDAA+E;AAC/E,mEAAgE;AAChE,gEAA6D;AAC7D,wEAAqE;AAmDxD,QAAA,yBAAyB,GACpC,8LAA8L,CAAC;AAE1L,MAAM,4BAA4B,GAAG,CAC1C,UAAkB,EAClB,KAAc,EACd,EAAE,CACF,mEAAmE,UAAU,IAAI;IACjF,+EAA+E;IAC/E,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AANjD,QAAA,4BAA4B,gCAMqB;AAE9D,SAAS,UAAU,CAAC,QAAkC;IACpD,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC;AACvD,CAAC;AAgBD,SAAS,mBAAmB;IAC1B,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAExD;YACD,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,GAAG,IAAA,yBAAc,EAC/B,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;IACf,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ;QACzC,CAAC,CAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAY;QAC7D,CAAC,CAAC,mBAAmB,EAAE,CAAC;IAC1B,MAAM,cAAc,GAClB,kBAAkB,CAAC,MAAM,KAAK,QAAQ;QACpC,CAAC,CAAC,kBAAkB,CAAC,QAAQ;QAC7B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,eAAe,mCAChB,OAAO,GACP,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxD,CAAC;IAEF,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,iCAAyB,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CACV,IAAA,oCAA4B,EAC1B,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,KAAK,CACzB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,aAAa,GAAG,eAAe,CAAC,kBAAkB;QACtD,CAAC,CAAC,IAAI,GAAG,EAAmB;QAC5B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,IAAI,EAAE,+BAA+B;QACrC,gBAAgB,CAAC,EAAU;YACzB,mCAAmC;YACnC,OAAO,CACL,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAClB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CACnB,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,8BAA8B;YAC9B,MAAM,KAAK,GAAG,IAAA,iCAAe,EAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,aAAa;gBAAE,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;YACvD,IAAI,CAAC;gBACH,oCAAoC;gBACpC,IACE,KAAK,CAAC,QAAQ,CAAC,kBAAkB;oBACjC,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAC/B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,0BAA0B;gBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC7B,UAAU,EAAE,QAAQ;oBACpB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,mBAAmB,CAAC;oBACnD,2BAA2B,EAAE,IAAI;oBACjC,0BAA0B,EAAE,IAAI;iBACjC,CAAC,CAAC;gBAEH,wBAAwB;gBACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;oBAC1C,IAAA,kBAAQ,EAAC,GAAG,EAAE,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;oBACxC,IAAA,kBAAQ,EAAC,GAAG,EAAE,IAAA,uCAAkB,EAAC,KAAK,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBAED,qBAAqB;gBACrB,IAAA,kBAAQ,EAAC,GAAG,EAAE,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC,CAAC;gBAErC,gBAAgB;gBAChB,IAAI,IAAA,2BAAY,EAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,oBAAoB;gBACpB,MAAM,oBAAoB,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;gBAEhE,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAA,kBAAQ,EAAC,GAAG,EAAE,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO;oBACnC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;gBAClC,IAAI,kBAAkB,IAAI,oBAAoB,EAAE,CAAC;oBAC/C,IAAA,kBAAQ,EAAC,GAAG,EAAE,IAAA,2CAAoB,EAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBAED,6CAA6C;gBAC7C,IACE,CAAC,oBAAoB;oBACrB,KAAK,CAAC,UAAU,CAAC,oBAAoB,KAAK,CAAC;oBAC3C,KAAK,CAAC,UAAU,CAAC,kBAAkB,KAAK,CAAC;oBACzC,KAAK,CAAC,UAAU,CAAC,qBAAqB,KAAK,CAAC,EAC5C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,IAAA,mBAAQ,EAAC,GAAG,EAAE;oBACnB,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oEAAoE;gBACpE,IAAI,KAAK,YAAY,uCAAwB,EAAE,CAAC;oBAC9C,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,2BAA2B;gBAC3B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,QAAQ;YACN,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B,OAAO,CAAC,GAAG,EAAE,EACb,8BAA8B,CAC/B,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACnD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7D,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,gDAAgD,OAAO,KAAK,aAAa,CAAC,IAAI,WAAW,CAC1F,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,0DAA0D;AAC1D,kBAAe,UAAU,CAAC;AACb,QAAA,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AAC7B,QAAA,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACvB,QAAA,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAC3B,QAAA,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","names":["path","fs","initializeState","parser","jsxInsertionPass","macroExpansionPass","collectionPass","handleErrors","injectionPass","runtimeTranslatePass","InvalidLibraryUsageError"],"sources":["../src/index.ts"],"sourcesContent":["import { createUnplugin } from 'unplugin';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport * as parser from '@babel/parser';\nimport generate from '@babel/generator';\nimport traverse from '@babel/traverse';\n\n// Core modules\nimport { PluginConfig } from './config';\n\n// Import passes\nimport { collectionPass } from './passes/collectionPass';\nimport { injectionPass } from './passes/injectionPass';\nimport { macroExpansionPass } from './passes/macroExpansionPass';\nimport { handleErrors, InvalidLibraryUsageError } from './passes/handleErrors';\nimport { initializeState } from './state/utils/initializeState';\nimport { jsxInsertionPass } from './passes/jsxInsertionPass';\nimport { runtimeTranslatePass } from './passes/runtimeTranslatePass';\n\n/**\n * Architecture:\n *\n * Pass Pipeline:\n * - Pass 0: Macro expansion — transforms t`...` tagged templates and t(`...`) template/concatenation args\n * - Pass 1: Collection — collect + calculate all data, check for violations, register + track\n * - Pass 2: Injection — inject all data (hashes, messages, etc.)\n *\n * Babel functions:\n * - 1-to-1 relationship with processing functions\n * - Handle (1) enter/exit scope (2) invoking processing function\n * - ex) JSXElement()\n *\n * Processing functions:\n * - Are dependent on the pass, so they have three categories: (1) collection, (2) injection, (3) shared/general\n * - Invoke transformation functions and utility functions\n * - ex) processJSXElement()\n * - Has the following file structure:\n * + processing\n * | sharedProcessingFunction.ts\n * | + collection\n * | | collectionProcessingFunction.ts\n * | + injection\n * | | injectionProcessingFunction.ts\n *\n * Transformation functions:\n * - Are AGNOSTIC to pass number\n * - MUST be stateful in some way\n * - ex) trackImportDeclaration()\n *\n * Utility functions:\n * - Are AGNOSTIC to pass number\n * - Are stateless\n * - ex) extractIdentifiersFromLVal()\n *\n * State:\n * - Includes classes for tracking state\n *\n * Currently no support for:\n * - namespaces and and modules\n */\n\n/**\n * GT Universal Plugin Options\n */\nexport interface GTUnpluginOptions extends PluginConfig {\n // Inherits from PluginConfig\n}\n\nexport const MISSING_GT_CONFIG_WARNING =\n '[@generaltranslation/compiler] No gtConfig found. Auto JSX injection and parsingFlags features require a gt.config.json. See https://generaltranslation.com/en/docs/react/concepts/compiler.';\n\nexport const createInvalidGTConfigWarning = (\n configPath: string,\n error: unknown\n) =>\n `[@generaltranslation/compiler] Failed to load gt.config.json at ${configPath}. ` +\n `Auto JSX injection and parsingFlags features require a valid gt.config.json. ` +\n `${error instanceof Error ? error.message : String(error)}`;\n\nfunction shouldWarn(logLevel: PluginConfig['logLevel']): boolean {\n return logLevel !== 'silent' && logLevel !== 'error';\n}\n\ntype GTConfigLoadResult =\n | {\n gtConfig: NonNullable<PluginConfig['gtConfig']>;\n status: 'loaded';\n }\n | {\n status: 'missing';\n }\n | {\n configPath: string;\n error: unknown;\n status: 'invalid';\n };\n\nfunction loadGTConfigFromCwd(): GTConfigLoadResult {\n const configPath = path.join(process.cwd(), 'gt.config.json');\n if (!fs.existsSync(configPath)) {\n return { status: 'missing' };\n }\n\n try {\n return {\n gtConfig: JSON.parse(fs.readFileSync(configPath, 'utf-8')) as NonNullable<\n PluginConfig['gtConfig']\n >,\n status: 'loaded',\n };\n } catch (error) {\n return { configPath, error, status: 'invalid' };\n }\n}\n\n/**\n * GT Universal Plugin - Main entry point\n *\n * Universal plugin for compile-time optimization of GT translation components\n * that works across webpack, Vite, Rollup, and other bundlers.\n */\nconst gtUnplugin = createUnplugin<GTUnpluginOptions | undefined>(\n (options = {}) => {\n const gtConfigLoadResult = options.gtConfig\n ? ({ gtConfig: options.gtConfig, status: 'loaded' } as const)\n : loadGTConfigFromCwd();\n const loadedGTConfig =\n gtConfigLoadResult.status === 'loaded'\n ? gtConfigLoadResult.gtConfig\n : undefined;\n const resolvedOptions: GTUnpluginOptions = {\n ...options,\n ...(loadedGTConfig ? { gtConfig: loadedGTConfig } : {}),\n };\n\n if (shouldWarn(options.logLevel)) {\n if (gtConfigLoadResult.status === 'missing') {\n console.warn(MISSING_GT_CONFIG_WARNING);\n } else if (gtConfigLoadResult.status === 'invalid') {\n console.warn(\n createInvalidGTConfigWarning(\n gtConfigLoadResult.configPath,\n gtConfigLoadResult.error\n )\n );\n }\n }\n\n // Debug manifest: accumulates hash → jsxChildren across all files\n const debugManifest = resolvedOptions._debugHashManifest\n ? new Map<string, unknown>()\n : undefined;\n\n return {\n name: '@generaltranslation/GT_PLUGIN',\n transformInclude(id: string) {\n // Only transform TSX and JSX files\n return (\n id.endsWith('.tsx') ||\n id.endsWith('.jsx') ||\n id.endsWith('.ts') ||\n id.endsWith('.js')\n );\n },\n transform(code: string, id: string) {\n // Initialize processing state\n const state = initializeState(resolvedOptions, id);\n if (debugManifest) state.debugManifest = debugManifest;\n try {\n // Skip transformation if not needed\n if (\n state.settings.disableBuildChecks &&\n !state.settings.compileTimeHash\n ) {\n return null;\n }\n\n // Parse the code into AST\n const ast = parser.parse(code, {\n sourceType: 'module',\n plugins: ['jsx', 'typescript', 'decorators-legacy'],\n allowImportExportEverywhere: true,\n allowReturnOutsideFunction: true,\n });\n\n // Pass 1: Jsx insertion\n if (state.settings.enableAutoJsxInjection) {\n traverse(ast, jsxInsertionPass(state));\n }\n\n // Pass 2: Macro expansion\n if (state.settings.enableMacroTransform) {\n traverse(ast, macroExpansionPass(state));\n }\n\n // Pass 3: Collection\n traverse(ast, collectionPass(state));\n\n // Handle errors\n if (handleErrors(state)) {\n return null;\n }\n\n // Pass 4: Injection\n const hasCollectionContent = state.stringCollector.hasContent();\n\n if (hasCollectionContent) {\n traverse(ast, injectionPass(state));\n }\n\n // Pass 5: Runtime translate (dev hot reload)\n const devHotReloadActive =\n state.settings.devHotReload.strings ||\n state.settings.devHotReload.jsx;\n if (devHotReloadActive && hasCollectionContent) {\n traverse(ast, runtimeTranslatePass(state));\n }\n\n // Generate code if any pass modified the AST\n if (\n !hasCollectionContent &&\n state.statistics.macroExpansionsCount === 0 &&\n state.statistics.jsxInsertionsCount === 0 &&\n state.statistics.runtimeTranslateCount === 0\n ) {\n return null;\n }\n\n return generate(ast, {\n retainLines: true,\n compact: false,\n });\n } catch (error) {\n // If the error is an instance of InvalidLibraryUsageError, throw it\n if (error instanceof InvalidLibraryUsageError) {\n throw error;\n }\n\n // Otherwise, log the error\n state.logger.logError(`Error processing ${id}: ${error}`);\n return null;\n }\n },\n buildEnd() {\n if (debugManifest && debugManifest.size > 0) {\n const fs = require('fs');\n const path = require('path');\n const outPath = path.resolve(\n process.cwd(),\n '_gt_debug_hash_manifest.json'\n );\n const manifest = Object.fromEntries(debugManifest);\n fs.writeFileSync(outPath, JSON.stringify(manifest, null, 2));\n // eslint-disable-next-line no-console\n console.log(\n `[gt-compiler] Debug hash manifest written to ${outPath} (${debugManifest.size} entries)`\n );\n }\n },\n };\n }\n);\n\n// Export the unplugin with different bundler integrations\nexport default gtUnplugin;\nexport const webpack = gtUnplugin.webpack;\nexport const vite = gtUnplugin.vite;\nexport const rollup = gtUnplugin.rollup;\nexport const esbuild = gtUnplugin.esbuild;\n"],"mappings":"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"}
@@ -1,86 +1,43 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.basePass = basePass;
37
- const p = __importStar(require("../processing"));
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_processing_processArrowFunctionExpression = require("../processing/processArrowFunctionExpression.js");
3
+ const require_processing_processAssignmentExpression = require("../processing/processAssignmentExpression.js");
4
+ const require_processing_processCatchClause = require("../processing/processCatchClause.js");
5
+ const require_processing_processClassDeclaration = require("../processing/processClassDeclaration.js");
6
+ const require_processing_processClassMethod = require("../processing/processClassMethod.js");
7
+ const require_processing_processClassPrivateMethod = require("../processing/processClassPrivateMethod.js");
8
+ const require_processing_processForInStatement = require("../processing/processForInStatement.js");
9
+ const require_processing_processForOfStatement = require("../processing/processForOfStatement.js");
10
+ const require_processing_processFunctionDeclaration = require("../processing/processFunctionDeclaration.js");
11
+ const require_processing_processFunctionExpression = require("../processing/processFunctionExpression.js");
12
+ const require_processing_processImportDeclaration = require("../processing/processImportDeclaration.js");
13
+ const require_processing_processObjectMethod = require("../processing/processObjectMethod.js");
14
+ const require_processing_processProgram = require("../processing/processProgram.js");
15
+ const require_processing_processScopeChange = require("../processing/processScopeChange.js");
16
+ require("../processing/index.js");
17
+ //#region src/passes/basePass.ts
38
18
  function basePass(state) {
39
- return {
40
- // Initialize trackers for this program
41
- Program: p.processProgram(state),
42
- /* ----------------------------- */
43
- /* Scope management */
44
- /* ----------------------------- */
45
- // for(let T in obj) { ... }
46
- ForStatement: p.processScopeChange(state),
47
- // while(T) { ... }
48
- WhileStatement: p.processScopeChange(state),
49
- // switch(T) { ... }
50
- SwitchStatement: p.processScopeChange(state),
51
- // { ... }
52
- BlockStatement: p.processScopeChange(state),
53
- // static { ... }
54
- StaticBlock: p.processScopeChange(state),
55
- /* ----------------------------- */
56
- /* Shadowing tracking */
57
- /* ----------------------------- */
58
- // --- Function Processing --- //
59
- // function T() { ... }
60
- FunctionDeclaration: p.processFunctionDeclaration(state),
61
- // const a = function T() {...}
62
- FunctionExpression: p.processFunctionExpression(state),
63
- // () => {...}
64
- ArrowFunctionExpression: p.processArrowFunctionExpression(state),
65
- // { T() {} } in objects
66
- ObjectMethod: p.processObjectMethod(state),
67
- // Class GT { T() { ... } } in classes
68
- ClassMethod: p.processClassMethod(state),
69
- // Class GT { #T() {...} }
70
- ClassPrivateMethod: p.processClassPrivateMethod(state),
71
- // --- Other Processing --- //
72
- // import T from '...'
73
- ImportDeclaration: p.processImportDeclaration(state),
74
- // let t = useGT(); t = undefined;
75
- AssignmentExpression: p.processAssignmentExpression(state),
76
- // class T { ... }
77
- ClassDeclaration: p.processClassDeclaration(state),
78
- // for(let T in obj) { ... }
79
- ForInStatement: p.processForInStatement(state),
80
- // for(let T of items) { ... }
81
- ForOfStatement: p.processForOfStatement(state),
82
- // try { ... } catch(T) { ... }
83
- CatchClause: p.processCatchClause(state),
84
- };
19
+ return {
20
+ Program: require_processing_processProgram.processProgram(state),
21
+ ForStatement: require_processing_processScopeChange.processScopeChange(state),
22
+ WhileStatement: require_processing_processScopeChange.processScopeChange(state),
23
+ SwitchStatement: require_processing_processScopeChange.processScopeChange(state),
24
+ BlockStatement: require_processing_processScopeChange.processScopeChange(state),
25
+ StaticBlock: require_processing_processScopeChange.processScopeChange(state),
26
+ FunctionDeclaration: require_processing_processFunctionDeclaration.processFunctionDeclaration(state),
27
+ FunctionExpression: require_processing_processFunctionExpression.processFunctionExpression(state),
28
+ ArrowFunctionExpression: require_processing_processArrowFunctionExpression.processArrowFunctionExpression(state),
29
+ ObjectMethod: require_processing_processObjectMethod.processObjectMethod(state),
30
+ ClassMethod: require_processing_processClassMethod.processClassMethod(state),
31
+ ClassPrivateMethod: require_processing_processClassPrivateMethod.processClassPrivateMethod(state),
32
+ ImportDeclaration: require_processing_processImportDeclaration.processImportDeclaration(state),
33
+ AssignmentExpression: require_processing_processAssignmentExpression.processAssignmentExpression(state),
34
+ ClassDeclaration: require_processing_processClassDeclaration.processClassDeclaration(state),
35
+ ForInStatement: require_processing_processForInStatement.processForInStatement(state),
36
+ ForOfStatement: require_processing_processForOfStatement.processForOfStatement(state),
37
+ CatchClause: require_processing_processCatchClause.processCatchClause(state)
38
+ };
85
39
  }
40
+ //#endregion
41
+ exports.basePass = basePass;
42
+
86
43
  //# sourceMappingURL=basePass.js.map