@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.
- package/dist/_virtual/_rolldown/runtime.js +23 -0
- package/dist/config.js +32 -27
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -187
- package/dist/index.js.map +1 -1
- package/dist/passes/basePass.js +40 -83
- package/dist/passes/basePass.js.map +1 -1
- package/dist/passes/collectionPass.js +18 -11
- package/dist/passes/collectionPass.js.map +1 -1
- package/dist/passes/handleErrors.js +21 -30
- package/dist/passes/handleErrors.js.map +1 -1
- package/dist/passes/injectionPass.js +15 -9
- package/dist/passes/injectionPass.js.map +1 -1
- package/dist/passes/jsxInsertionPass.js +33 -31
- package/dist/passes/jsxInsertionPass.js.map +1 -1
- package/dist/passes/macroExpansionPass.js +28 -26
- package/dist/passes/macroExpansionPass.js.map +1 -1
- package/dist/passes/runtimeTranslatePass.js +37 -35
- package/dist/passes/runtimeTranslatePass.js.map +1 -1
- package/dist/processing/collection/processCallExpression.js +144 -249
- package/dist/processing/collection/processCallExpression.js.map +1 -1
- package/dist/processing/collection/processTaggedTemplateExpression.js +38 -75
- package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -1
- package/dist/processing/collection/processVariableDeclarator.js +20 -18
- package/dist/processing/collection/processVariableDeclarator.js.map +1 -1
- package/dist/processing/index.js +29 -31
- package/dist/processing/injection/processCallExpression.js +69 -142
- package/dist/processing/injection/processCallExpression.js.map +1 -1
- package/dist/processing/injection/processVariableDeclarator.js +22 -20
- package/dist/processing/injection/processVariableDeclarator.js.map +1 -1
- package/dist/processing/jsx-insertion/processCallExpression.js +284 -393
- package/dist/processing/jsx-insertion/processCallExpression.js.map +1 -1
- package/dist/processing/jsx-insertion/processImportDeclaration.js +37 -83
- package/dist/processing/jsx-insertion/processImportDeclaration.js.map +1 -1
- package/dist/processing/jsx-insertion/processProgram.js +26 -66
- package/dist/processing/jsx-insertion/processProgram.js.map +1 -1
- package/dist/processing/macro-expansion/processImportDeclaration.js +21 -55
- package/dist/processing/macro-expansion/processImportDeclaration.js.map +1 -1
- package/dist/processing/macro-expansion/processProgram.js +20 -26
- package/dist/processing/macro-expansion/processProgram.js.map +1 -1
- package/dist/processing/macro-expansion/processTaggedTemplateExpression.js +33 -69
- package/dist/processing/macro-expansion/processTaggedTemplateExpression.js.map +1 -1
- package/dist/processing/processArrowFunctionExpression.js +18 -16
- package/dist/processing/processArrowFunctionExpression.js.map +1 -1
- package/dist/processing/processAssignmentExpression.js +12 -10
- package/dist/processing/processAssignmentExpression.js.map +1 -1
- package/dist/processing/processCatchClause.js +18 -16
- package/dist/processing/processCatchClause.js.map +1 -1
- package/dist/processing/processClassDeclaration.js +18 -16
- package/dist/processing/processClassDeclaration.js.map +1 -1
- package/dist/processing/processClassMethod.js +18 -17
- package/dist/processing/processClassMethod.js.map +1 -1
- package/dist/processing/processClassPrivateMethod.js +18 -17
- package/dist/processing/processClassPrivateMethod.js.map +1 -1
- package/dist/processing/processForInStatement.js +18 -16
- package/dist/processing/processForInStatement.js.map +1 -1
- package/dist/processing/processForOfStatement.js +18 -16
- package/dist/processing/processForOfStatement.js.map +1 -1
- package/dist/processing/processFunctionDeclaration.js +20 -18
- package/dist/processing/processFunctionDeclaration.js.map +1 -1
- package/dist/processing/processFunctionExpression.js +26 -24
- package/dist/processing/processFunctionExpression.js.map +1 -1
- package/dist/processing/processImportDeclaration.js +11 -9
- package/dist/processing/processImportDeclaration.js.map +1 -1
- package/dist/processing/processObjectMethod.js +19 -18
- package/dist/processing/processObjectMethod.js.map +1 -1
- package/dist/processing/processProgram.js +13 -13
- package/dist/processing/processProgram.js.map +1 -1
- package/dist/processing/processScopeChange.js +15 -13
- package/dist/processing/processScopeChange.js.map +1 -1
- package/dist/processing/runtime-translate/processImportDeclaration.js +30 -63
- package/dist/processing/runtime-translate/processImportDeclaration.js.map +1 -1
- package/dist/processing/runtime-translate/processProgram.js +34 -57
- package/dist/processing/runtime-translate/processProgram.js.map +1 -1
- package/dist/state/ErrorTracker.js +18 -17
- package/dist/state/ErrorTracker.js.map +1 -1
- package/dist/state/Logger.js +42 -52
- package/dist/state/Logger.js.map +1 -1
- package/dist/state/ScopeTracker.js +154 -209
- package/dist/state/ScopeTracker.js.map +1 -1
- package/dist/state/StringCollector.js +165 -184
- package/dist/state/StringCollector.js.map +1 -1
- package/dist/state/types.js +1 -3
- package/dist/state/utils/initializeState.js +62 -67
- package/dist/state/utils/initializeState.js.map +1 -1
- package/dist/transform/getTrackedVariable.js +33 -38
- package/dist/transform/getTrackedVariable.js.map +1 -1
- package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js +19 -27
- package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js.map +1 -1
- package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js +8 -6
- package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js.map +1 -1
- package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js +8 -6
- package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js.map +1 -1
- package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js +74 -155
- package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js.map +1 -1
- package/dist/transform/injection/injectHashIntoTranslationOptions.js +21 -61
- package/dist/transform/injection/injectHashIntoTranslationOptions.js.map +1 -1
- package/dist/transform/injection/injectStandaloneTFunctionParameters.js +21 -27
- package/dist/transform/injection/injectStandaloneTFunctionParameters.js.map +1 -1
- package/dist/transform/injection/injectTComponentParameters.js +25 -65
- package/dist/transform/injection/injectTComponentParameters.js.map +1 -1
- package/dist/transform/jsx-children/constructJsxChildren.js +273 -392
- package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
- package/dist/transform/jsx-children/errors.js +16 -6
- package/dist/transform/jsx-children/errors.js.map +1 -1
- package/dist/transform/jsx-children/index.js +3 -6
- package/dist/transform/jsx-children/utils/getBranchComponentParameters.js +26 -85
- package/dist/transform/jsx-children/utils/getBranchComponentParameters.js.map +1 -1
- package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js +33 -66
- package/dist/transform/jsx-children/utils/getCalleeNameFromJsxExpressionParam.js.map +1 -1
- package/dist/transform/jsx-children/utils/id.js +18 -17
- package/dist/transform/jsx-children/utils/id.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateChildrenElement.js +13 -47
- package/dist/transform/jsx-children/validation/validateChildrenElement.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js +25 -63
- package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateIdentifier.js +38 -41
- package/dist/transform/jsx-children/validation/validateIdentifier.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateJsxCall.js +15 -26
- package/dist/transform/jsx-children/validation/validateJsxCall.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js +33 -61
- package/dist/transform/jsx-children/validation/validateNameFieldForVarComponent.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js +38 -66
- package/dist/transform/jsx-children/validation/validateStringLiteralPropertyFromArg.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateTemplateLiteral.js +17 -13
- package/dist/transform/jsx-children/validation/validateTemplateLiteral.js.map +1 -1
- package/dist/transform/jsx-children/validation/validateUnaryExpression.js +26 -61
- package/dist/transform/jsx-children/validation/validateUnaryExpression.js.map +1 -1
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.js +16 -48
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.js.map +1 -1
- package/dist/transform/macro-expansion/injectMacroImport.js +14 -43
- package/dist/transform/macro-expansion/injectMacroImport.js.map +1 -1
- package/dist/transform/macro-expansion/transformTemplateLiteral.js +23 -22
- package/dist/transform/macro-expansion/transformTemplateLiteral.js.map +1 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.js +27 -34
- package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
- package/dist/transform/registration/callbacks/registerUseMessagesCallback.js +9 -9
- package/dist/transform/registration/callbacks/registerUseMessagesCallback.js.map +1 -1
- package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js +9 -9
- package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js.map +1 -1
- package/dist/transform/registration/registerStandaloneTranslation.js +27 -28
- package/dist/transform/registration/registerStandaloneTranslation.js.map +1 -1
- package/dist/transform/registration/registerTranslationComponent.js +15 -15
- package/dist/transform/registration/registerTranslationComponent.js.map +1 -1
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js +34 -85
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js.map +1 -1
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +25 -55
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -1
- package/dist/transform/tracking/trackAssignmentExpression.js +26 -63
- package/dist/transform/tracking/trackAssignmentExpression.js.map +1 -1
- package/dist/transform/tracking/trackCatchClause.js +17 -48
- package/dist/transform/tracking/trackCatchClause.js.map +1 -1
- package/dist/transform/tracking/trackClassDeclaration.js +13 -13
- package/dist/transform/tracking/trackClassDeclaration.js.map +1 -1
- package/dist/transform/tracking/trackForDeclaration.js +17 -53
- package/dist/transform/tracking/trackForDeclaration.js.map +1 -1
- package/dist/transform/tracking/trackFunctionName.js +10 -10
- package/dist/transform/tracking/trackFunctionName.js.map +1 -1
- package/dist/transform/tracking/trackFunctionParams.js +19 -54
- package/dist/transform/tracking/trackFunctionParams.js.map +1 -1
- package/dist/transform/tracking/trackImportDeclaration.js +36 -89
- package/dist/transform/tracking/trackImportDeclaration.js.map +1 -1
- package/dist/transform/tracking/trackOverridingVariable.js +9 -11
- package/dist/transform/tracking/trackOverridingVariable.js.map +1 -1
- package/dist/transform/tracking/trackVariableDeclarator.js +51 -102
- package/dist/transform/tracking/trackVariableDeclarator.js.map +1 -1
- package/dist/transform/validation/validateTranslationComponentArgs.js +156 -232
- package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
- package/dist/transform/validation/validateTranslationFunction.js +218 -329
- package/dist/transform/validation/validateTranslationFunction.js.map +1 -1
- package/dist/utils/calculateHash.js +55 -70
- package/dist/utils/calculateHash.js.map +1 -1
- package/dist/utils/constants/gt/constants.js +142 -132
- package/dist/utils/constants/gt/constants.js.map +1 -1
- package/dist/utils/constants/gt/helpers.js +147 -149
- package/dist/utils/constants/gt/helpers.js.map +1 -1
- package/dist/utils/constants/other/constants.js +45 -41
- package/dist/utils/constants/other/constants.js.map +1 -1
- package/dist/utils/constants/other/helpers.js +13 -11
- package/dist/utils/constants/other/helpers.js.map +1 -1
- package/dist/utils/constants/react/constants.js +47 -41
- package/dist/utils/constants/react/constants.js.map +1 -1
- package/dist/utils/constants/react/helpers.js +17 -16
- package/dist/utils/constants/react/helpers.js.map +1 -1
- package/dist/utils/constants/resolveIdentifier/isGTComponent.js +41 -76
- package/dist/utils/constants/resolveIdentifier/isGTComponent.js.map +1 -1
- package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js +33 -83
- package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js.map +1 -1
- package/dist/utils/errors.js +18 -20
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/multiplication/multiply.js +31 -35
- package/dist/utils/multiplication/multiply.js.map +1 -1
- package/dist/utils/multiplication/types.js +1 -3
- package/dist/utils/parsing/extractIdentifiersFromLVal.js +30 -96
- package/dist/utils/parsing/extractIdentifiersFromLVal.js.map +1 -1
- package/dist/utils/parsing/getCalleeNameFromExpression.js +31 -65
- package/dist/utils/parsing/getCalleeNameFromExpression.js.map +1 -1
- package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js +13 -10
- package/dist/utils/parsing/getCalleeNameFromExpressionWrapper.js.map +1 -1
- package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js +19 -56
- package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js.map +1 -1
- package/dist/utils/parsing/getStringLiteralFromExpression.js +18 -49
- package/dist/utils/parsing/getStringLiteralFromExpression.js.map +1 -1
- package/dist/utils/parsing/isDeriveInvocation.js +25 -61
- package/dist/utils/parsing/isDeriveInvocation.js.map +1 -1
- package/dist/utils/parsing/isStringTranslationTaggedTemplate.js +23 -59
- package/dist/utils/parsing/isStringTranslationTaggedTemplate.js.map +1 -1
- package/dist/utils/string-expressions/buildTransformationResult.js +57 -96
- package/dist/utils/string-expressions/buildTransformationResult.js.map +1 -1
- package/dist/utils/string-expressions/flattenExpressionToParts.js +131 -142
- package/dist/utils/string-expressions/flattenExpressionToParts.js.map +1 -1
- package/dist/utils/string-expressions/resolveStaticExpression.js +36 -34
- package/dist/utils/string-expressions/resolveStaticExpression.js.map +1 -1
- package/dist/utils/validation/validateChildrenFromObjectExpression.js +29 -24
- package/dist/utils/validation/validateChildrenFromObjectExpression.js.map +1 -1
- package/dist/utils/validation/validateExpressionIsNumericLiteral.js +13 -47
- package/dist/utils/validation/validateExpressionIsNumericLiteral.js.map +1 -1
- package/dist/utils/validation/validateExpressionIsStringLiteral.js +15 -48
- package/dist/utils/validation/validateExpressionIsStringLiteral.js.map +1 -1
- package/package.json +8 -5
- package/dist/processing/index.js.map +0 -1
- package/dist/state/types.js.map +0 -1
- package/dist/transform/jsx-children/index.js.map +0 -1
- 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
|
-
"
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/config.ts
|
|
2
3
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","
|
|
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) =>
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
28
|
+
return logLevel !== "silent" && logLevel !== "error";
|
|
61
29
|
}
|
|
62
30
|
function loadGTConfigFromCwd() {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const gtUnplugin = (0,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
|
|
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.
|
|
193
|
-
exports.
|
|
194
|
-
exports.
|
|
195
|
-
exports.
|
|
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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"}
|
package/dist/passes/basePass.js
CHANGED
|
@@ -1,86 +1,43 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|