@generaltranslation/compiler 1.3.27 → 1.3.30
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/config.d.ts +12 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -6
- package/dist/index.js.map +1 -1
- package/dist/passes/basePass.d.ts.map +1 -1
- package/dist/passes/basePass.js +9 -10
- package/dist/passes/basePass.js.map +1 -1
- package/dist/processing/collection/processCallExpression.js +8 -6
- package/dist/processing/collection/processCallExpression.js.map +1 -1
- package/dist/processing/collection/processTaggedTemplateExpression.d.ts +1 -1
- package/dist/processing/collection/processTaggedTemplateExpression.js +1 -1
- package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -1
- package/dist/processing/jsx-insertion/processCallExpression.js.map +1 -1
- package/dist/processing/jsx-insertion/processProgram.d.ts.map +1 -1
- package/dist/processing/jsx-insertion/processProgram.js +1 -1
- package/dist/processing/jsx-insertion/processProgram.js.map +1 -1
- package/dist/processing/macro-expansion/processProgram.js +1 -1
- package/dist/processing/macro-expansion/processProgram.js.map +1 -1
- package/dist/processing/macro-expansion/processTaggedTemplateExpression.d.ts +1 -1
- package/dist/processing/macro-expansion/processTaggedTemplateExpression.js +1 -1
- package/dist/processing/macro-expansion/processTaggedTemplateExpression.js.map +1 -1
- package/dist/processing/processFunctionDeclaration.js +1 -1
- package/dist/processing/processFunctionExpression.js +1 -1
- package/dist/processing/runtime-translate/processProgram.d.ts.map +1 -1
- package/dist/processing/runtime-translate/processProgram.js +2 -1
- package/dist/processing/runtime-translate/processProgram.js.map +1 -1
- package/dist/state/StringCollector.d.ts +3 -3
- package/dist/state/StringCollector.d.ts.map +1 -1
- package/dist/state/StringCollector.js.map +1 -1
- package/dist/state/utils/initializeState.d.ts.map +1 -1
- package/dist/state/utils/initializeState.js +8 -5
- package/dist/state/utils/initializeState.js.map +1 -1
- package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.d.ts +1 -1
- package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js +6 -5
- package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js.map +1 -1
- package/dist/transform/injection/injectHashIntoTranslationOptions.d.ts.map +1 -1
- package/dist/transform/injection/injectHashIntoTranslationOptions.js +1 -0
- package/dist/transform/injection/injectHashIntoTranslationOptions.js.map +1 -1
- package/dist/transform/injection/injectTComponentParameters.d.ts.map +1 -1
- package/dist/transform/injection/injectTComponentParameters.js +2 -1
- package/dist/transform/injection/injectTComponentParameters.js.map +1 -1
- package/dist/transform/jsx-children/constructJsxChildren.d.ts +1 -0
- package/dist/transform/jsx-children/constructJsxChildren.d.ts.map +1 -1
- package/dist/transform/jsx-children/constructJsxChildren.js +17 -5
- package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.d.ts +2 -2
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.d.ts.map +1 -1
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.js +4 -3
- package/dist/transform/jsx-insertion/injectJsxInsertionImport.js.map +1 -1
- package/dist/transform/macro-expansion/injectMacroImport.d.ts +2 -2
- package/dist/transform/macro-expansion/injectMacroImport.d.ts.map +1 -1
- package/dist/transform/macro-expansion/injectMacroImport.js +4 -3
- package/dist/transform/macro-expansion/injectMacroImport.js.map +1 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.d.ts.map +1 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.js +0 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
- package/dist/transform/registration/registerStandaloneTranslation.d.ts.map +1 -1
- package/dist/transform/registration/registerStandaloneTranslation.js +0 -1
- package/dist/transform/registration/registerStandaloneTranslation.js.map +1 -1
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts +3 -2
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts.map +1 -1
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +4 -3
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -1
- package/dist/transform/validation/validateTranslationComponentArgs.d.ts +2 -0
- package/dist/transform/validation/validateTranslationComponentArgs.d.ts.map +1 -1
- package/dist/transform/validation/validateTranslationComponentArgs.js +4 -3
- package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
- package/dist/transform/validation/validateTranslationFunction.d.ts.map +1 -1
- package/dist/transform/validation/validateTranslationFunction.js +3 -3
- package/dist/transform/validation/validateTranslationFunction.js.map +1 -1
- package/dist/utils/calculateHash.d.ts +1 -2
- package/dist/utils/calculateHash.d.ts.map +1 -1
- package/dist/utils/calculateHash.js +1 -3
- package/dist/utils/calculateHash.js.map +1 -1
- package/dist/utils/constants/gt/constants.d.ts +1 -5
- package/dist/utils/constants/gt/constants.d.ts.map +1 -1
- package/dist/utils/constants/gt/constants.js +1 -5
- package/dist/utils/constants/gt/constants.js.map +1 -1
- package/dist/utils/constants/gt/helpers.d.ts +2 -1
- package/dist/utils/constants/gt/helpers.d.ts.map +1 -1
- package/dist/utils/constants/gt/helpers.js +15 -5
- package/dist/utils/constants/gt/helpers.js.map +1 -1
- package/dist/utils/constants/resolveIdentifier/isGTComponent.d.ts +1 -1
- package/dist/utils/constants/resolveIdentifier/isGTComponent.d.ts.map +1 -1
- package/dist/utils/constants/resolveIdentifier/isGTComponent.js +2 -3
- package/dist/utils/constants/resolveIdentifier/isGTComponent.js.map +1 -1
- package/dist/utils/parsing/isStringTranslationTaggedTemplate.d.ts +1 -1
- package/dist/utils/parsing/isStringTranslationTaggedTemplate.js +3 -3
- package/dist/utils/parsing/isStringTranslationTaggedTemplate.js.map +1 -1
- package/package.json +3 -3
- package/dist/processing/index.d.ts +0 -15
- package/dist/processing/index.d.ts.map +0 -1
- package/dist/processing/index.js +0 -29
- package/dist/transform/jsx-children/index.d.ts +0 -2
- package/dist/transform/jsx-children/index.d.ts.map +0 -1
- package/dist/transform/jsx-children/index.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectTComponentParameters.js","names":["createErrorLocation","t","getObjectPropertyFromObjectExpression"],"sources":["../../../src/transform/injection/injectTComponentParameters.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { getObjectPropertyFromObjectExpression } from '../../utils/parsing/getObjectPropertyFromObjectExpression';\nimport { TransformState } from '../../state/types';\nimport { createErrorLocation } from '../../utils/errors';\n\n/**\n * Inject parameters into a T component\n */\nexport function injectTComponentParameters(\n callExpr: t.CallExpression,\n state: TransformState\n) {\n // Increment counter (in place of registering the component)\n const identifier = state.stringCollector.incrementCounter();\n\n // Look up translationJsx\n const translationJsx = state.stringCollector.getTranslationJsx(identifier);\n if (!translationJsx) {\n return;\n }\n\n // Get second arg\n if (callExpr.arguments.length < 2 || !callExpr.arguments[1]) {\n state.logger.logError(\n 'T component jsx invocation is missing its second argument. Parameter injection failed.' +\n createErrorLocation(callExpr)\n );\n return;\n }\n if (!t.isObjectExpression(callExpr.arguments[1])) {\n state.logger.logError(\n \"T component jsx invocation's second argument is not an object expression. Parameter injection failed.\" +\n createErrorLocation(callExpr)\n );\n return;\n }\n\n // If already has hash set then skip\n if (getObjectPropertyFromObjectExpression(callExpr.arguments[1], '
|
|
1
|
+
{"version":3,"file":"injectTComponentParameters.js","names":["createErrorLocation","t","getObjectPropertyFromObjectExpression"],"sources":["../../../src/transform/injection/injectTComponentParameters.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { getObjectPropertyFromObjectExpression } from '../../utils/parsing/getObjectPropertyFromObjectExpression';\nimport { TransformState } from '../../state/types';\nimport { createErrorLocation } from '../../utils/errors';\n\n/**\n * Inject parameters into a T component\n */\nexport function injectTComponentParameters(\n callExpr: t.CallExpression,\n state: TransformState\n) {\n // Increment counter (in place of registering the component)\n const identifier = state.stringCollector.incrementCounter();\n\n // Look up translationJsx\n const translationJsx = state.stringCollector.getTranslationJsx(identifier);\n if (!translationJsx) {\n return;\n }\n\n // Skip when collection produced no hash (derive context or <Derive>\n // children) — the runtime computes the hash per resolved variant, and an\n // injected empty hash would break the lookup\n if (!translationJsx.hash) {\n return;\n }\n\n // Get second arg\n if (callExpr.arguments.length < 2 || !callExpr.arguments[1]) {\n state.logger.logError(\n 'T component jsx invocation is missing its second argument. Parameter injection failed.' +\n createErrorLocation(callExpr)\n );\n return;\n }\n if (!t.isObjectExpression(callExpr.arguments[1])) {\n state.logger.logError(\n \"T component jsx invocation's second argument is not an object expression. Parameter injection failed.\" +\n createErrorLocation(callExpr)\n );\n return;\n }\n\n // If already has hash set then skip\n if (getObjectPropertyFromObjectExpression(callExpr.arguments[1], '_hash')) {\n return;\n }\n\n // Inject the parameters into the call expression\n callExpr.arguments[1].properties.push(\n t.objectProperty(\n t.identifier('_hash'),\n t.stringLiteral(translationJsx.hash)\n )\n );\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,2BACd,UACA,OACA;CAEA,MAAM,aAAa,MAAM,gBAAgB,kBAAkB;CAG3D,MAAM,iBAAiB,MAAM,gBAAgB,kBAAkB,WAAW;AAC1E,KAAI,CAAC,eACH;AAMF,KAAI,CAAC,eAAe,KAClB;AAIF,KAAI,SAAS,UAAU,SAAS,KAAK,CAAC,SAAS,UAAU,IAAI;AAC3D,QAAM,OAAO,SACX,2FACEA,qBAAAA,oBAAoB,SAAS,CAChC;AACD;;AAEF,KAAI,CAACC,aAAE,mBAAmB,SAAS,UAAU,GAAG,EAAE;AAChD,QAAM,OAAO,SACX,0GACED,qBAAAA,oBAAoB,SAAS,CAChC;AACD;;AAIF,KAAIE,4DAAAA,sCAAsC,SAAS,UAAU,IAAI,QAAQ,CACvE;AAIF,UAAS,UAAU,GAAG,WAAW,KAC/BD,aAAE,eACAA,aAAE,WAAW,QAAQ,EACrBA,aAAE,cAAc,eAAe,KAAK,CACrC,CACF"}
|
|
@@ -19,5 +19,6 @@ import { JsxValidationError } from './errors';
|
|
|
19
19
|
export declare function constructJsxChildren(childrenPath: NodePath<t.Expression> | undefined, state: TransformState, id?: IdObject): {
|
|
20
20
|
errors: JsxValidationError[];
|
|
21
21
|
value?: JsxChildren;
|
|
22
|
+
containsDerive?: boolean;
|
|
22
23
|
};
|
|
23
24
|
//# sourceMappingURL=constructJsxChildren.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructJsxChildren.d.ts","sourceRoot":"","sources":["../../../src/transform/jsx-children/constructJsxChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EAIZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqBtC,OAAO,EACL,kBAAkB,EAGnB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,EAChD,KAAK,EAAE,cAAc,EACrB,EAAE,GAAE,QAAyB,GAC5B;
|
|
1
|
+
{"version":3,"file":"constructJsxChildren.d.ts","sourceRoot":"","sources":["../../../src/transform/jsx-children/constructJsxChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,WAAW,EAIZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqBtC,OAAO,EACL,kBAAkB,EAGnB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,EAChD,KAAK,EAAE,cAAc,EACrB,EAAE,GAAE,QAAyB,GAC5B;IACD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAgEA"}
|
|
@@ -42,6 +42,7 @@ function constructJsxChildren(childrenPath, state, id = new require_transform_js
|
|
|
42
42
|
};
|
|
43
43
|
const children = childrenPath.node;
|
|
44
44
|
let value;
|
|
45
|
+
let containsDerive = false;
|
|
45
46
|
if (_babel_types.isArrayExpression(children)) {
|
|
46
47
|
value = [];
|
|
47
48
|
const elementPaths = childrenPath.get("elements");
|
|
@@ -56,6 +57,7 @@ function constructJsxChildren(childrenPath, state, id = new require_transform_js
|
|
|
56
57
|
const validation = constructJsxChild(childPath, state, id);
|
|
57
58
|
errors.push(...validation.errors);
|
|
58
59
|
if (errors.length > 0) return { errors };
|
|
60
|
+
containsDerive ||= !!validation.containsDerive;
|
|
59
61
|
if (validation.value === void 0) continue;
|
|
60
62
|
value.push(validation.value);
|
|
61
63
|
}
|
|
@@ -63,11 +65,13 @@ function constructJsxChildren(childrenPath, state, id = new require_transform_js
|
|
|
63
65
|
const validation = constructJsxChild(childrenPath, state, id);
|
|
64
66
|
errors.push(...validation.errors);
|
|
65
67
|
if (errors.length > 0) return { errors };
|
|
68
|
+
containsDerive = !!validation.containsDerive;
|
|
66
69
|
value = validation.value;
|
|
67
70
|
}
|
|
68
71
|
return {
|
|
69
72
|
errors,
|
|
70
|
-
value
|
|
73
|
+
value,
|
|
74
|
+
containsDerive
|
|
71
75
|
};
|
|
72
76
|
}
|
|
73
77
|
/**
|
|
@@ -78,10 +82,12 @@ function constructJsxChild(childPath, state, id) {
|
|
|
78
82
|
const errors = [];
|
|
79
83
|
const child = childPath.node;
|
|
80
84
|
let value;
|
|
85
|
+
let containsDerive = false;
|
|
81
86
|
if (_babel_types.isCallExpression(child)) {
|
|
82
87
|
const validation = constructJsxElement(childPath, state, id);
|
|
83
88
|
errors.push(...validation.errors);
|
|
84
89
|
if (errors.length > 0) return { errors };
|
|
90
|
+
containsDerive = !!validation.containsDerive;
|
|
85
91
|
value = validation.value;
|
|
86
92
|
} else if (_babel_types.isStringLiteral(child)) value = child.value;
|
|
87
93
|
else if (_babel_types.isTemplateLiteral(child)) {
|
|
@@ -108,7 +114,8 @@ function constructJsxChild(childPath, state, id) {
|
|
|
108
114
|
}
|
|
109
115
|
return {
|
|
110
116
|
errors,
|
|
111
|
-
value
|
|
117
|
+
value,
|
|
118
|
+
containsDerive
|
|
112
119
|
};
|
|
113
120
|
}
|
|
114
121
|
/**
|
|
@@ -155,7 +162,8 @@ function constructJsxElement(callExprPath, state, id) {
|
|
|
155
162
|
value: {
|
|
156
163
|
t: canonicalName,
|
|
157
164
|
i: idNumber
|
|
158
|
-
}
|
|
165
|
+
},
|
|
166
|
+
containsDerive: true
|
|
159
167
|
};
|
|
160
168
|
componentName = canonicalName;
|
|
161
169
|
} else if (canonicalName && type === "react") {
|
|
@@ -185,7 +193,8 @@ function constructJsxElement(callExprPath, state, id) {
|
|
|
185
193
|
i: idNumber,
|
|
186
194
|
...tag !== void 0 && { d: tag },
|
|
187
195
|
...children !== void 0 && { c: children }
|
|
188
|
-
}
|
|
196
|
+
},
|
|
197
|
+
containsDerive: !!(jsxChildrenValidation.containsDerive || tagValidation.containsDerive)
|
|
189
198
|
};
|
|
190
199
|
}
|
|
191
200
|
/**
|
|
@@ -211,6 +220,7 @@ function constructJsxChildrenForJsxElement(childrenPath, state, id) {
|
|
|
211
220
|
function constructGTProp(callExprPath, id, state, canonicalName, type) {
|
|
212
221
|
const errors = [];
|
|
213
222
|
const value = {};
|
|
223
|
+
let containsDerive = false;
|
|
214
224
|
const args = callExprPath.node.arguments;
|
|
215
225
|
if (args.length < 2) {
|
|
216
226
|
errors.push(require_transform_jsx_children_errors.structuralError("Failed to construct GTProp! Missing parameters" + require_utils_errors.createErrorLocation(args[0])));
|
|
@@ -237,6 +247,7 @@ function constructGTProp(callExprPath, id, state, canonicalName, type) {
|
|
|
237
247
|
const validation = constructJsxChildren(parameterPath, state, id.copy());
|
|
238
248
|
errors.push(...validation.errors);
|
|
239
249
|
if (validation.errors.length > 0) return { errors };
|
|
250
|
+
containsDerive ||= !!validation.containsDerive;
|
|
240
251
|
if (validation.value === void 0) continue;
|
|
241
252
|
branches[name] = validation.value;
|
|
242
253
|
}
|
|
@@ -255,7 +266,8 @@ function constructGTProp(callExprPath, id, state, canonicalName, type) {
|
|
|
255
266
|
});
|
|
256
267
|
return {
|
|
257
268
|
errors,
|
|
258
|
-
value: Object.keys(value).length > 0 ? value : void 0
|
|
269
|
+
value: Object.keys(value).length > 0 ? value : void 0,
|
|
270
|
+
containsDerive
|
|
259
271
|
};
|
|
260
272
|
}
|
|
261
273
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructJsxChildren.js","names":["IdObject","t","validateChildrenElement","dynamicContentError","generateDynamicContentErrorMessage","createErrorLocation","validateTemplateLiteral","validateUnaryExpression","structuralError","validateIdentifier","validateJsxCall","getCalleeNameFromJsxExpressionParam","getTrackedVariable","isVariableComponent","isGTComponent","isDeriveComponent","isReactComponent","validateChildrenFromArgs","isBranchComponent","getBranchComponentParameters","HTML_CONTENT_PROPS","validateStringLiteralPropertyFromArg","validateNameFieldForVarComponent","getVariableName","minifyCanonicalName"],"sources":["../../../src/transform/jsx-children/constructJsxChildren.ts"],"sourcesContent":["import {\n GTProp,\n HTML_CONTENT_PROPS,\n JsxChild,\n JsxChildren,\n JsxElement,\n Variable,\n VariableType as GTVariableType,\n} from '@generaltranslation/format/types';\nimport { TransformState } from '../../state/types';\nimport * as t from '@babel/types';\nimport type { NodePath } from '@babel/traverse';\nimport { validateIdentifier } from './validation/validateIdentifier';\nimport { validateTemplateLiteral } from './validation/validateTemplateLiteral';\nimport { validateChildrenElement } from './validation/validateChildrenElement';\nimport { getCalleeNameFromJsxExpressionParam } from './utils/getCalleeNameFromJsxExpressionParam';\nimport { getTrackedVariable } from '../getTrackedVariable';\nimport { isReactComponent } from '../../utils/constants/react/helpers';\nimport { REACT_COMPONENTS } from '../../utils/constants/react/constants';\nimport { validateChildrenFromArgs } from './validation/validateChildrenFromArgs';\nimport { IdObject } from './utils/id';\nimport { VariableType } from '../../state/ScopeTracker';\nimport {\n defaultVariableNames,\n getVariableName,\n isBranchComponent,\n isDeriveComponent,\n isGTComponent,\n isVariableComponent,\n minifyCanonicalName,\n} from '../../utils/constants/gt/helpers';\nimport { validateStringLiteralPropertyFromArg } from './validation/validateStringLiteralPropertyFromArg';\nimport { GT_COMPONENT_TYPES } from '../../utils/constants/gt/constants';\nimport { getBranchComponentParameters } from './utils/getBranchComponentParameters';\nimport { validateNameFieldForVarComponent } from './validation/validateNameFieldForVarComponent';\nimport { validateUnaryExpression } from './validation/validateUnaryExpression';\nimport {\n createErrorLocation,\n generateDynamicContentErrorMessage,\n} from '../../utils/errors';\nimport { validateJsxCall } from './validation/validateJsxCall';\nimport {\n JsxValidationError,\n dynamicContentError,\n structuralError,\n} from './errors';\n\n/**\n * Given the children of a <T> component, constructs a JsxChildren object.\n * Takes an Expression path.\n *\n * ONLY does JsxChildren construction + validation, no further processing on any children.\n *\n * On invalid children, quit immediately.\n *\n * The node checks intentionally happen before navigating with .get(). This\n * keeps runtime validation behavior stable while preserving NodePath scope for\n * future derivation work.\n */\nexport function constructJsxChildren(\n childrenPath: NodePath<t.Expression> | undefined,\n state: TransformState,\n id: IdObject = new IdObject()\n): { errors: JsxValidationError[]; value?: JsxChildren } {\n const errors: JsxValidationError[] = [];\n\n // Skip if no children\n if (!childrenPath) {\n return { errors, value: childrenPath };\n }\n\n const children = childrenPath.node;\n let value: JsxChildren | undefined;\n if (t.isArrayExpression(children)) {\n // Handle ArrayExpression\n value = [];\n const elementPaths = childrenPath.get('elements');\n\n for (let i = 0; i < children.elements.length; i++) {\n const child = children.elements[i];\n // Validate child\n if (!validateChildrenElement(child)) {\n errors.push(\n dynamicContentError(\n generateDynamicContentErrorMessage() +\n (child && createErrorLocation(child))\n )\n );\n return { errors };\n }\n\n // Special children edge cases: nullLiteral, booleanLiteral\n if (t.isBooleanLiteral(child) || t.isNullLiteral(child)) {\n continue;\n }\n\n // Construct JsxChild\n const childPath = elementPaths[i] as NodePath<\n Exclude<t.Expression, t.ArrayExpression>\n >;\n const validation = constructJsxChild(childPath, state, id);\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n // Skip if no value\n if (validation.value === undefined) continue;\n (value as JsxChild[]).push(validation.value);\n }\n } else {\n // Handle single child\n const validation = constructJsxChild(\n childrenPath as NodePath<Exclude<t.Expression, t.ArrayExpression>>,\n state,\n id\n );\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n }\n\n return { errors, value };\n}\n\n/**\n * Given an Expression path, constructs a JsxChild.\n * @returns { errors: string[]; value?: JsxChild }\n */\nfunction constructJsxChild(\n childPath: NodePath<Exclude<t.Expression, t.ArrayExpression>>,\n state: TransformState,\n id: IdObject\n): { errors: JsxValidationError[]; value?: JsxChild } {\n const errors: JsxValidationError[] = [];\n const child = childPath.node;\n let value: JsxChild | undefined;\n\n if (t.isCallExpression(child)) {\n // Construct JsxElement\n const validation = constructJsxElement(\n childPath as NodePath<t.CallExpression>,\n state,\n id\n );\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else if (t.isStringLiteral(child)) {\n value = child.value;\n } else if (t.isTemplateLiteral(child)) {\n const validation = validateTemplateLiteral(child);\n errors.push(...validation.errors.map((msg) => dynamicContentError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else if (t.isNumericLiteral(child)) {\n value = child.value.toString();\n } else if (t.isBooleanLiteral(child)) {\n value = child.value as unknown as JsxChild;\n } else if (t.isNullLiteral(child)) {\n value = null as unknown as JsxChild;\n } else if (t.isUnaryExpression(child)) {\n const validation = validateUnaryExpression(child);\n errors.push(...validation.errors.map((msg) => structuralError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else if (t.isIdentifier(child)) {\n // <T>{name}</T> or <T>{undefined}</T>\n const validation = validateIdentifier(child, state);\n errors.push(...validation.errors.map((msg) => dynamicContentError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else {\n // Other cases fail\n errors.push(\n dynamicContentError(\n generateDynamicContentErrorMessage() + createErrorLocation(child)\n )\n );\n return { errors };\n }\n\n return { errors, value };\n}\n\n/**\n * Given a CallExpression path, constructs a JsxChild.\n * Handles: Jsx(T, ...children)\n */\nfunction constructJsxElement(\n callExprPath: NodePath<t.CallExpression>,\n state: TransformState,\n id: IdObject\n): { errors: JsxValidationError[]; value?: JsxElement | Variable } {\n const errors: JsxValidationError[] = [];\n const callExpr = callExprPath.node;\n\n // Validate that this is a jsx call\n const jsxValidation = validateJsxCall(callExpr, state);\n errors.push(...jsxValidation.map((msg) => dynamicContentError(msg)));\n if (jsxValidation.length > 0) {\n return { errors };\n }\n\n // Increment id\n id.increment();\n\n // Get first argument\n if (callExpr.arguments.length === 0) {\n return { errors };\n }\n const firstArg = callExpr.arguments[0];\n if (!t.isExpression(firstArg)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! First argument must be an expression` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n\n // Resolve canonical name\n const { namespaceName, functionName } =\n getCalleeNameFromJsxExpressionParam(firstArg);\n if (!functionName) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! First argument must be a valid function` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n\n // Get the canonical function name\n const { canonicalName, type } = getTrackedVariable(\n state.scopeTracker,\n namespaceName,\n functionName\n );\n\n // Handle variable components\n if (\n canonicalName &&\n type === 'generaltranslation' &&\n isVariableComponent(canonicalName)\n ) {\n const variableValidation = constructVariable(\n canonicalName,\n callExpr.arguments,\n id\n );\n errors.push(\n ...variableValidation.errors.map((msg) => structuralError(msg))\n );\n if (variableValidation.errors.length > 0) {\n return { errors };\n }\n return { errors, value: variableValidation.value! };\n }\n\n // Set the component name\n let componentName: string;\n const idNumber: number = id.get();\n if (canonicalName && type === 'generaltranslation') {\n // Handle GT components: <Var>, <Num>, <Currency>, etc.\n\n // Check that this is a gt component\n if (!isGTComponent(canonicalName)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! ${canonicalName} is not a valid GT component` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n // Derive/Static - opaque element, skip children validation\n // The compiler doesn't resolve Derive functions; the CLI handles that.\n if (isDeriveComponent(canonicalName)) {\n return {\n errors,\n value: { t: canonicalName, i: idNumber },\n };\n }\n // Get the name of the component\n componentName = canonicalName;\n } else if (canonicalName && type === 'react') {\n // Handle fragment + special react components\n if (!isReactComponent(canonicalName)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! ${canonicalName} is not a valid React component` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n // Get the name of the component\n componentName =\n canonicalName === REACT_COMPONENTS.Fragment\n ? `C${id.get()}`\n : functionName;\n } else {\n // Handle all other components: div, etc.\n componentName = functionName;\n }\n\n // Get children from args\n const childrenValidation = validateChildrenFromArgs(callExprPath);\n if (childrenValidation.errors.length > 0) {\n errors.push(\n ...childrenValidation.errors.map((msg) => structuralError(msg))\n );\n return { errors };\n }\n\n // Construct JsxChildren\n // For branching components (Branch/Plural), use id.copy() so children and\n // branch props start counting from the same base independently.\n const jsxChildrenValidation = constructJsxChildrenForJsxElement(\n childrenValidation.value,\n state,\n isBranchComponent(canonicalName ?? '') ? id.copy() : id\n );\n errors.push(...jsxChildrenValidation.errors);\n if (jsxChildrenValidation.errors.length > 0) {\n return { errors };\n }\n const children: JsxChildren | undefined = jsxChildrenValidation.value;\n\n // Construct GT Tag\n const tagValidation = constructGTProp(\n callExprPath,\n id,\n state,\n canonicalName,\n type\n );\n errors.push(...tagValidation.errors);\n if (tagValidation.errors.length > 0) {\n return { errors };\n }\n const tag: GTProp | undefined = tagValidation.value;\n\n // Return result\n const value: JsxElement = {\n t: componentName,\n i: idNumber,\n ...(tag !== undefined && { d: tag }),\n ...(children !== undefined && { c: children }),\n };\n return { errors, value };\n}\n\n/**\n * Construct JsxChildren for a JsxElement\n * This is slightly different from constructJsxChildren in how it handles nullLiteral and booleanLiteral\n */\nfunction constructJsxChildrenForJsxElement(\n childrenPath: NodePath<t.Expression> | undefined,\n state: TransformState,\n id: IdObject\n): { errors: JsxValidationError[]; value?: JsxChildren } {\n const errors: JsxValidationError[] = [];\n const children = childrenPath?.node;\n\n // Special children edge cases: nullLiteral, booleanLiteral\n if (t.isNullLiteral(children)) {\n return { errors, value: undefined as unknown as JsxChildren };\n }\n if (t.isBooleanLiteral(children)) {\n return {\n errors,\n value: (children.value || undefined) as unknown as JsxChildren,\n };\n }\n\n // Construct JsxChildren\n return constructJsxChildren(childrenPath, state, id);\n}\n\n/**\n * Given a canonical name, constructs a GTProp\n */\nfunction constructGTProp(\n callExprPath: NodePath<t.CallExpression>,\n id: IdObject,\n state: TransformState,\n canonicalName?: string,\n type?: VariableType\n): { errors: JsxValidationError[]; value?: GTProp } {\n const errors: JsxValidationError[] = [];\n const value: GTProp = {};\n const args = callExprPath.node.arguments;\n\n // Validate Parameters\n if (args.length < 2) {\n errors.push(\n structuralError(\n 'Failed to construct GTProp! Missing parameters' +\n createErrorLocation(args[0])\n )\n );\n return { errors };\n }\n const parameters = args[1];\n if (!t.isObjectExpression(parameters)) {\n errors.push(\n structuralError(\n 'Failed to construct GTProp! Parameter field must be an object expression' +\n createErrorLocation(args[1])\n )\n );\n return { errors };\n }\n\n // For Branch and Plural, get the properties\n const parametersPath = callExprPath.get(\n 'arguments'\n )[1] as NodePath<t.ObjectExpression>;\n\n if (\n canonicalName &&\n type === 'generaltranslation' &&\n isBranchComponent(canonicalName)\n ) {\n // Get the branching parameters\n const branchingParameters = getBranchComponentParameters(\n parametersPath as NodePath<t.ObjectExpression>,\n canonicalName\n );\n // Add branch component branches\n const branches = {} as Record<string, JsxChildren>;\n\n for (const [name, parameterPath] of branchingParameters) {\n const parameter = parameterPath.node;\n // Special exceptions for branches:\n if (t.isNullLiteral(parameter)) {\n branches[name] = null as unknown as JsxChildren;\n continue;\n } else if (t.isBooleanLiteral(parameter)) {\n branches[name] = parameter.value as unknown as JsxChildren;\n continue;\n }\n\n // Otherwise, construct the JsxChildren\n const validation = constructJsxChildren(parameterPath, state, id.copy());\n errors.push(...validation.errors);\n if (validation.errors.length > 0) {\n return { errors };\n }\n if (validation.value === undefined) continue;\n branches[name] = validation.value;\n }\n\n if (Object.keys(branches).length > 0) {\n value['b'] = branches;\n value['t'] = canonicalName === GT_COMPONENT_TYPES.Branch ? 'b' : 'p';\n }\n } else {\n // Get the html content props\n Object.entries(HTML_CONTENT_PROPS).forEach(([prop, name]) => {\n const validation = validateStringLiteralPropertyFromArg(parameters, name);\n if (validation.errors.length > 0) {\n errors.push(...validation.errors.map((msg) => structuralError(msg)));\n return { errors };\n }\n if (validation.value === undefined) return;\n value[prop as keyof typeof HTML_CONTENT_PROPS] = validation.value;\n });\n }\n\n // Return result\n return { errors, value: Object.keys(value).length > 0 ? value : undefined };\n}\n\n/**\n * Construct Variable\n */\nfunction constructVariable(\n canonicalName: GT_COMPONENT_TYPES,\n args: (t.ArgumentPlaceholder | t.SpreadElement | t.Expression)[],\n id: IdObject\n): { errors: string[]; value?: Variable } {\n const errors: string[] = [];\n // Validate Parameters\n if (args.length < 2) {\n errors.push(\n 'Failed to construct GTProp! Missing parameters' +\n createErrorLocation(args[0])\n );\n return { errors };\n }\n const parameters = args[1];\n if (!t.isObjectExpression(parameters)) {\n errors.push(\n 'Failed to construct GTProp! Parameter field must be an object expression' +\n createErrorLocation(args[1])\n );\n return { errors };\n }\n\n // Validate Parameters\n const nameValidation = validateNameFieldForVarComponent(parameters);\n errors.push(...nameValidation.errors);\n if (nameValidation.errors.length > 0) {\n return { errors };\n }\n const name = nameValidation.value;\n\n // Check for name field\n const value: Variable = {\n i: id.get(),\n k: getVariableName(\n canonicalName as keyof typeof defaultVariableNames,\n id.get(),\n name\n ),\n v: minifyCanonicalName(canonicalName) as GTVariableType,\n };\n\n return { errors, value };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constructJsxChildren.js","names":["IdObject","t","validateChildrenElement","dynamicContentError","generateDynamicContentErrorMessage","createErrorLocation","validateTemplateLiteral","validateUnaryExpression","structuralError","validateIdentifier","validateJsxCall","getCalleeNameFromJsxExpressionParam","getTrackedVariable","isVariableComponent","isGTComponent","isDeriveComponent","isReactComponent","validateChildrenFromArgs","isBranchComponent","getBranchComponentParameters","HTML_CONTENT_PROPS","validateStringLiteralPropertyFromArg","validateNameFieldForVarComponent","getVariableName","minifyCanonicalName"],"sources":["../../../src/transform/jsx-children/constructJsxChildren.ts"],"sourcesContent":["import {\n GTProp,\n HTML_CONTENT_PROPS,\n JsxChild,\n JsxChildren,\n JsxElement,\n Variable,\n VariableType as GTVariableType,\n} from '@generaltranslation/format/types';\nimport { TransformState } from '../../state/types';\nimport * as t from '@babel/types';\nimport type { NodePath } from '@babel/traverse';\nimport { validateIdentifier } from './validation/validateIdentifier';\nimport { validateTemplateLiteral } from './validation/validateTemplateLiteral';\nimport { validateChildrenElement } from './validation/validateChildrenElement';\nimport { getCalleeNameFromJsxExpressionParam } from './utils/getCalleeNameFromJsxExpressionParam';\nimport { getTrackedVariable } from '../getTrackedVariable';\nimport { isReactComponent } from '../../utils/constants/react/helpers';\nimport { REACT_COMPONENTS } from '../../utils/constants/react/constants';\nimport { validateChildrenFromArgs } from './validation/validateChildrenFromArgs';\nimport { IdObject } from './utils/id';\nimport { VariableType } from '../../state/ScopeTracker';\nimport {\n defaultVariableNames,\n getVariableName,\n isBranchComponent,\n isDeriveComponent,\n isGTComponent,\n isVariableComponent,\n minifyCanonicalName,\n} from '../../utils/constants/gt/helpers';\nimport { validateStringLiteralPropertyFromArg } from './validation/validateStringLiteralPropertyFromArg';\nimport { GT_COMPONENT_TYPES } from '../../utils/constants/gt/constants';\nimport { getBranchComponentParameters } from './utils/getBranchComponentParameters';\nimport { validateNameFieldForVarComponent } from './validation/validateNameFieldForVarComponent';\nimport { validateUnaryExpression } from './validation/validateUnaryExpression';\nimport {\n createErrorLocation,\n generateDynamicContentErrorMessage,\n} from '../../utils/errors';\nimport { validateJsxCall } from './validation/validateJsxCall';\nimport {\n JsxValidationError,\n dynamicContentError,\n structuralError,\n} from './errors';\n\n/**\n * Given the children of a <T> component, constructs a JsxChildren object.\n * Takes an Expression path.\n *\n * ONLY does JsxChildren construction + validation, no further processing on any children.\n *\n * On invalid children, quit immediately.\n *\n * The node checks intentionally happen before navigating with .get(). This\n * keeps runtime validation behavior stable while preserving NodePath scope for\n * future derivation work.\n */\nexport function constructJsxChildren(\n childrenPath: NodePath<t.Expression> | undefined,\n state: TransformState,\n id: IdObject = new IdObject()\n): {\n errors: JsxValidationError[];\n value?: JsxChildren;\n containsDerive?: boolean;\n} {\n const errors: JsxValidationError[] = [];\n\n // Skip if no children\n if (!childrenPath) {\n return { errors, value: childrenPath };\n }\n\n const children = childrenPath.node;\n let value: JsxChildren | undefined;\n let containsDerive = false;\n if (t.isArrayExpression(children)) {\n // Handle ArrayExpression\n value = [];\n const elementPaths = childrenPath.get('elements');\n\n for (let i = 0; i < children.elements.length; i++) {\n const child = children.elements[i];\n // Validate child\n if (!validateChildrenElement(child)) {\n errors.push(\n dynamicContentError(\n generateDynamicContentErrorMessage() +\n (child && createErrorLocation(child))\n )\n );\n return { errors };\n }\n\n // Special children edge cases: nullLiteral, booleanLiteral\n if (t.isBooleanLiteral(child) || t.isNullLiteral(child)) {\n continue;\n }\n\n // Construct JsxChild\n const childPath = elementPaths[i] as NodePath<\n Exclude<t.Expression, t.ArrayExpression>\n >;\n const validation = constructJsxChild(childPath, state, id);\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n containsDerive ||= !!validation.containsDerive;\n // Skip if no value\n if (validation.value === undefined) continue;\n (value as JsxChild[]).push(validation.value);\n }\n } else {\n // Handle single child\n const validation = constructJsxChild(\n childrenPath as NodePath<Exclude<t.Expression, t.ArrayExpression>>,\n state,\n id\n );\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n containsDerive = !!validation.containsDerive;\n value = validation.value;\n }\n\n return { errors, value, containsDerive };\n}\n\n/**\n * Given an Expression path, constructs a JsxChild.\n * @returns { errors: string[]; value?: JsxChild }\n */\nfunction constructJsxChild(\n childPath: NodePath<Exclude<t.Expression, t.ArrayExpression>>,\n state: TransformState,\n id: IdObject\n): {\n errors: JsxValidationError[];\n value?: JsxChild;\n containsDerive?: boolean;\n} {\n const errors: JsxValidationError[] = [];\n const child = childPath.node;\n let value: JsxChild | undefined;\n let containsDerive = false;\n\n if (t.isCallExpression(child)) {\n // Construct JsxElement\n const validation = constructJsxElement(\n childPath as NodePath<t.CallExpression>,\n state,\n id\n );\n errors.push(...validation.errors);\n if (errors.length > 0) {\n return { errors };\n }\n containsDerive = !!validation.containsDerive;\n value = validation.value;\n } else if (t.isStringLiteral(child)) {\n value = child.value;\n } else if (t.isTemplateLiteral(child)) {\n const validation = validateTemplateLiteral(child);\n errors.push(...validation.errors.map((msg) => dynamicContentError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else if (t.isNumericLiteral(child)) {\n value = child.value.toString();\n } else if (t.isBooleanLiteral(child)) {\n value = child.value as unknown as JsxChild;\n } else if (t.isNullLiteral(child)) {\n value = null as unknown as JsxChild;\n } else if (t.isUnaryExpression(child)) {\n const validation = validateUnaryExpression(child);\n errors.push(...validation.errors.map((msg) => structuralError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else if (t.isIdentifier(child)) {\n // <T>{name}</T> or <T>{undefined}</T>\n const validation = validateIdentifier(child, state);\n errors.push(...validation.errors.map((msg) => dynamicContentError(msg)));\n if (errors.length > 0) {\n return { errors };\n }\n value = validation.value;\n } else {\n // Other cases fail\n errors.push(\n dynamicContentError(\n generateDynamicContentErrorMessage() + createErrorLocation(child)\n )\n );\n return { errors };\n }\n\n return { errors, value, containsDerive };\n}\n\n/**\n * Given a CallExpression path, constructs a JsxChild.\n * Handles: Jsx(T, ...children)\n */\nfunction constructJsxElement(\n callExprPath: NodePath<t.CallExpression>,\n state: TransformState,\n id: IdObject\n): {\n errors: JsxValidationError[];\n value?: JsxElement | Variable;\n containsDerive?: boolean;\n} {\n const errors: JsxValidationError[] = [];\n const callExpr = callExprPath.node;\n\n // Validate that this is a jsx call\n const jsxValidation = validateJsxCall(callExpr, state);\n errors.push(...jsxValidation.map((msg) => dynamicContentError(msg)));\n if (jsxValidation.length > 0) {\n return { errors };\n }\n\n // Increment id\n id.increment();\n\n // Get first argument\n if (callExpr.arguments.length === 0) {\n return { errors };\n }\n const firstArg = callExpr.arguments[0];\n if (!t.isExpression(firstArg)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! First argument must be an expression` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n\n // Resolve canonical name\n const { namespaceName, functionName } =\n getCalleeNameFromJsxExpressionParam(firstArg);\n if (!functionName) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! First argument must be a valid function` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n\n // Get the canonical function name\n const { canonicalName, type } = getTrackedVariable(\n state.scopeTracker,\n namespaceName,\n functionName\n );\n\n // Handle variable components\n if (\n canonicalName &&\n type === 'generaltranslation' &&\n isVariableComponent(canonicalName)\n ) {\n const variableValidation = constructVariable(\n canonicalName,\n callExpr.arguments,\n id\n );\n errors.push(\n ...variableValidation.errors.map((msg) => structuralError(msg))\n );\n if (variableValidation.errors.length > 0) {\n return { errors };\n }\n return { errors, value: variableValidation.value! };\n }\n\n // Set the component name\n let componentName: string;\n const idNumber: number = id.get();\n if (canonicalName && type === 'generaltranslation') {\n // Handle GT components: <Var>, <Num>, <Currency>, etc.\n\n // Check that this is a gt component\n if (!isGTComponent(canonicalName)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! ${canonicalName} is not a valid GT component` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n // Derive - opaque element, skip children validation\n // The compiler doesn't resolve Derive functions; the CLI handles that.\n // Surface containsDerive so the collection pass skips hash injection:\n // a Derive-containing <T> has one hash per resolved variant, which only\n // the runtime can compute.\n if (isDeriveComponent(canonicalName)) {\n return {\n errors,\n value: { t: canonicalName, i: idNumber },\n containsDerive: true,\n };\n }\n // Get the name of the component\n componentName = canonicalName;\n } else if (canonicalName && type === 'react') {\n // Handle fragment + special react components\n if (!isReactComponent(canonicalName)) {\n errors.push(\n structuralError(\n `Failed to construct JsxElement! ${canonicalName} is not a valid React component` +\n createErrorLocation(callExpr.arguments[0])\n )\n );\n return { errors };\n }\n // Get the name of the component\n componentName =\n canonicalName === REACT_COMPONENTS.Fragment\n ? `C${id.get()}`\n : functionName;\n } else {\n // Handle all other components: div, etc.\n componentName = functionName;\n }\n\n // Get children from args\n const childrenValidation = validateChildrenFromArgs(callExprPath);\n if (childrenValidation.errors.length > 0) {\n errors.push(\n ...childrenValidation.errors.map((msg) => structuralError(msg))\n );\n return { errors };\n }\n\n // Construct JsxChildren\n // For branching components (Branch/Plural), use id.copy() so children and\n // branch props start counting from the same base independently.\n const jsxChildrenValidation = constructJsxChildrenForJsxElement(\n childrenValidation.value,\n state,\n isBranchComponent(canonicalName ?? '') ? id.copy() : id\n );\n errors.push(...jsxChildrenValidation.errors);\n if (jsxChildrenValidation.errors.length > 0) {\n return { errors };\n }\n const children: JsxChildren | undefined = jsxChildrenValidation.value;\n\n // Construct GT Tag\n const tagValidation = constructGTProp(\n callExprPath,\n id,\n state,\n canonicalName,\n type\n );\n errors.push(...tagValidation.errors);\n if (tagValidation.errors.length > 0) {\n return { errors };\n }\n const tag: GTProp | undefined = tagValidation.value;\n\n // Return result\n const value: JsxElement = {\n t: componentName,\n i: idNumber,\n ...(tag !== undefined && { d: tag }),\n ...(children !== undefined && { c: children }),\n };\n return {\n errors,\n value,\n containsDerive: !!(\n jsxChildrenValidation.containsDerive || tagValidation.containsDerive\n ),\n };\n}\n\n/**\n * Construct JsxChildren for a JsxElement\n * This is slightly different from constructJsxChildren in how it handles nullLiteral and booleanLiteral\n */\nfunction constructJsxChildrenForJsxElement(\n childrenPath: NodePath<t.Expression> | undefined,\n state: TransformState,\n id: IdObject\n): {\n errors: JsxValidationError[];\n value?: JsxChildren;\n containsDerive?: boolean;\n} {\n const errors: JsxValidationError[] = [];\n const children = childrenPath?.node;\n\n // Special children edge cases: nullLiteral, booleanLiteral\n if (t.isNullLiteral(children)) {\n return { errors, value: undefined as unknown as JsxChildren };\n }\n if (t.isBooleanLiteral(children)) {\n return {\n errors,\n value: (children.value || undefined) as unknown as JsxChildren,\n };\n }\n\n // Construct JsxChildren\n return constructJsxChildren(childrenPath, state, id);\n}\n\n/**\n * Given a canonical name, constructs a GTProp\n */\nfunction constructGTProp(\n callExprPath: NodePath<t.CallExpression>,\n id: IdObject,\n state: TransformState,\n canonicalName?: string,\n type?: VariableType\n): {\n errors: JsxValidationError[];\n value?: GTProp;\n containsDerive?: boolean;\n} {\n const errors: JsxValidationError[] = [];\n const value: GTProp = {};\n let containsDerive = false;\n const args = callExprPath.node.arguments;\n\n // Validate Parameters\n if (args.length < 2) {\n errors.push(\n structuralError(\n 'Failed to construct GTProp! Missing parameters' +\n createErrorLocation(args[0])\n )\n );\n return { errors };\n }\n const parameters = args[1];\n if (!t.isObjectExpression(parameters)) {\n errors.push(\n structuralError(\n 'Failed to construct GTProp! Parameter field must be an object expression' +\n createErrorLocation(args[1])\n )\n );\n return { errors };\n }\n\n // For Branch and Plural, get the properties\n const parametersPath = callExprPath.get(\n 'arguments'\n )[1] as NodePath<t.ObjectExpression>;\n\n if (\n canonicalName &&\n type === 'generaltranslation' &&\n isBranchComponent(canonicalName)\n ) {\n // Get the branching parameters\n const branchingParameters = getBranchComponentParameters(\n parametersPath as NodePath<t.ObjectExpression>,\n canonicalName\n );\n // Add branch component branches\n const branches = {} as Record<string, JsxChildren>;\n\n for (const [name, parameterPath] of branchingParameters) {\n const parameter = parameterPath.node;\n // Special exceptions for branches:\n if (t.isNullLiteral(parameter)) {\n branches[name] = null as unknown as JsxChildren;\n continue;\n } else if (t.isBooleanLiteral(parameter)) {\n branches[name] = parameter.value as unknown as JsxChildren;\n continue;\n }\n\n // Otherwise, construct the JsxChildren\n const validation = constructJsxChildren(parameterPath, state, id.copy());\n errors.push(...validation.errors);\n if (validation.errors.length > 0) {\n return { errors };\n }\n containsDerive ||= !!validation.containsDerive;\n if (validation.value === undefined) continue;\n branches[name] = validation.value;\n }\n\n if (Object.keys(branches).length > 0) {\n value['b'] = branches;\n value['t'] = canonicalName === GT_COMPONENT_TYPES.Branch ? 'b' : 'p';\n }\n } else {\n // Get the html content props\n Object.entries(HTML_CONTENT_PROPS).forEach(([prop, name]) => {\n const validation = validateStringLiteralPropertyFromArg(parameters, name);\n if (validation.errors.length > 0) {\n errors.push(...validation.errors.map((msg) => structuralError(msg)));\n return { errors };\n }\n if (validation.value === undefined) return;\n value[prop as keyof typeof HTML_CONTENT_PROPS] = validation.value;\n });\n }\n\n // Return result\n return {\n errors,\n value: Object.keys(value).length > 0 ? value : undefined,\n containsDerive,\n };\n}\n\n/**\n * Construct Variable\n */\nfunction constructVariable(\n canonicalName: GT_COMPONENT_TYPES,\n args: (t.ArgumentPlaceholder | t.SpreadElement | t.Expression)[],\n id: IdObject\n): { errors: string[]; value?: Variable } {\n const errors: string[] = [];\n // Validate Parameters\n if (args.length < 2) {\n errors.push(\n 'Failed to construct GTProp! Missing parameters' +\n createErrorLocation(args[0])\n );\n return { errors };\n }\n const parameters = args[1];\n if (!t.isObjectExpression(parameters)) {\n errors.push(\n 'Failed to construct GTProp! Parameter field must be an object expression' +\n createErrorLocation(args[1])\n );\n return { errors };\n }\n\n // Validate Parameters\n const nameValidation = validateNameFieldForVarComponent(parameters);\n errors.push(...nameValidation.errors);\n if (nameValidation.errors.length > 0) {\n return { errors };\n }\n const name = nameValidation.value;\n\n // Check for name field\n const value: Variable = {\n i: id.get(),\n k: getVariableName(\n canonicalName as keyof typeof defaultVariableNames,\n id.get(),\n name\n ),\n v: minifyCanonicalName(canonicalName) as GTVariableType,\n };\n\n return { errors, value };\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
2
|
import { NodePath } from '@babel/traverse';
|
|
3
3
|
/**
|
|
4
|
-
* Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react
|
|
4
|
+
* Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react'`
|
|
5
5
|
* as the first statement in the program.
|
|
6
6
|
*/
|
|
7
|
-
export declare function injectJsxInsertionImport(path: NodePath<t.Program
|
|
7
|
+
export declare function injectJsxInsertionImport(path: NodePath<t.Program>, legacyGtReactImportSource: boolean): void;
|
|
8
8
|
//# sourceMappingURL=injectJsxInsertionImport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectJsxInsertionImport.d.ts","sourceRoot":"","sources":["../../../src/transform/jsx-insertion/injectJsxInsertionImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"injectJsxInsertionImport.d.ts","sourceRoot":"","sources":["../../../src/transform/jsx-insertion/injectJsxInsertionImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EACzB,yBAAyB,EAAE,OAAO,GACjC,IAAI,CAaN"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
require("../../utils/constants/gt/constants.js");
|
|
4
|
+
const require_utils_constants_gt_helpers = require("../../utils/constants/gt/helpers.js");
|
|
4
5
|
let _babel_types = require("@babel/types");
|
|
5
6
|
_babel_types = require_runtime.__toESM(_babel_types);
|
|
6
7
|
//#region src/transform/jsx-insertion/injectJsxInsertionImport.ts
|
|
7
8
|
/**
|
|
8
|
-
* Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react
|
|
9
|
+
* Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react'`
|
|
9
10
|
* as the first statement in the program.
|
|
10
11
|
*/
|
|
11
|
-
function injectJsxInsertionImport(path) {
|
|
12
|
+
function injectJsxInsertionImport(path, legacyGtReactImportSource) {
|
|
12
13
|
const tName = "GtInternalTranslateJsx";
|
|
13
14
|
const varName = "GtInternalVar";
|
|
14
|
-
const importDecl = _babel_types.importDeclaration([_babel_types.importSpecifier(_babel_types.identifier(tName), _babel_types.identifier(tName)), _babel_types.importSpecifier(_babel_types.identifier(varName), _babel_types.identifier(varName))], _babel_types.stringLiteral(
|
|
15
|
+
const importDecl = _babel_types.importDeclaration([_babel_types.importSpecifier(_babel_types.identifier(tName), _babel_types.identifier(tName)), _babel_types.importSpecifier(_babel_types.identifier(varName), _babel_types.identifier(varName))], _babel_types.stringLiteral(require_utils_constants_gt_helpers.getGtReactImportSource(legacyGtReactImportSource)));
|
|
15
16
|
path.unshiftContainer("body", importDecl);
|
|
16
17
|
}
|
|
17
18
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectJsxInsertionImport.js","names":["t"],"sources":["../../../src/transform/jsx-insertion/injectJsxInsertionImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport {
|
|
1
|
+
{"version":3,"file":"injectJsxInsertionImport.js","names":["t","getGtReactImportSource"],"sources":["../../../src/transform/jsx-insertion/injectJsxInsertionImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport { GT_COMPONENT_TYPES } from '../../utils/constants/gt/constants';\nimport { getGtReactImportSource } from '../../utils/constants/gt/helpers';\n\n/**\n * Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react'`\n * as the first statement in the program.\n */\nexport function injectJsxInsertionImport(\n path: NodePath<t.Program>,\n legacyGtReactImportSource: boolean\n): void {\n const tName = GT_COMPONENT_TYPES.GtInternalTranslateJsx;\n const varName = GT_COMPONENT_TYPES.GtInternalVar;\n\n const importDecl = t.importDeclaration(\n [\n t.importSpecifier(t.identifier(tName), t.identifier(tName)),\n t.importSpecifier(t.identifier(varName), t.identifier(varName)),\n ],\n t.stringLiteral(getGtReactImportSource(legacyGtReactImportSource))\n );\n\n path.unshiftContainer('body', importDecl);\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,yBACd,MACA,2BACM;CACN,MAAM,QAAA;CACN,MAAM,UAAA;CAEN,MAAM,aAAaA,aAAE,kBACnB,CACEA,aAAE,gBAAgBA,aAAE,WAAW,MAAM,EAAEA,aAAE,WAAW,MAAM,CAAC,EAC3DA,aAAE,gBAAgBA,aAAE,WAAW,QAAQ,EAAEA,aAAE,WAAW,QAAQ,CAAC,CAChE,EACDA,aAAE,cAAcC,mCAAAA,uBAAuB,0BAA0B,CAAC,CACnE;AAED,MAAK,iBAAiB,QAAQ,WAAW"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
2
|
import { NodePath } from '@babel/traverse';
|
|
3
3
|
/**
|
|
4
|
-
* Inject `import { t } from 'gt-react
|
|
4
|
+
* Inject `import { t } from 'gt-react'` as the first statement in the program.
|
|
5
5
|
*/
|
|
6
|
-
export declare function injectMacroImport(path: NodePath<t.Program
|
|
6
|
+
export declare function injectMacroImport(path: NodePath<t.Program>, legacyGtReactImportSource: boolean): void;
|
|
7
7
|
//# sourceMappingURL=injectMacroImport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectMacroImport.d.ts","sourceRoot":"","sources":["../../../src/transform/macro-expansion/injectMacroImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"injectMacroImport.d.ts","sourceRoot":"","sources":["../../../src/transform/macro-expansion/injectMacroImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EACzB,yBAAyB,EAAE,OAAO,GACjC,IAAI,CASN"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
require("../../utils/constants/gt/constants.js");
|
|
4
|
+
const require_utils_constants_gt_helpers = require("../../utils/constants/gt/helpers.js");
|
|
4
5
|
let _babel_types = require("@babel/types");
|
|
5
6
|
_babel_types = require_runtime.__toESM(_babel_types);
|
|
6
7
|
//#region src/transform/macro-expansion/injectMacroImport.ts
|
|
7
8
|
/**
|
|
8
|
-
* Inject `import { t } from 'gt-react
|
|
9
|
+
* Inject `import { t } from 'gt-react'` as the first statement in the program.
|
|
9
10
|
*/
|
|
10
|
-
function injectMacroImport(path) {
|
|
11
|
+
function injectMacroImport(path, legacyGtReactImportSource) {
|
|
11
12
|
const tName = "t";
|
|
12
|
-
const importDecl = _babel_types.importDeclaration([_babel_types.importSpecifier(_babel_types.identifier(tName), _babel_types.identifier(tName))], _babel_types.stringLiteral(
|
|
13
|
+
const importDecl = _babel_types.importDeclaration([_babel_types.importSpecifier(_babel_types.identifier(tName), _babel_types.identifier(tName))], _babel_types.stringLiteral(require_utils_constants_gt_helpers.getGtReactImportSource(legacyGtReactImportSource)));
|
|
13
14
|
path.unshiftContainer("body", importDecl);
|
|
14
15
|
}
|
|
15
16
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectMacroImport.js","names":["t"],"sources":["../../../src/transform/macro-expansion/injectMacroImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport {
|
|
1
|
+
{"version":3,"file":"injectMacroImport.js","names":["t","getGtReactImportSource"],"sources":["../../../src/transform/macro-expansion/injectMacroImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport { GT_OTHER_FUNCTIONS } from '../../utils/constants/gt/constants';\nimport { getGtReactImportSource } from '../../utils/constants/gt/helpers';\n\n/**\n * Inject `import { t } from 'gt-react'` as the first statement in the program.\n */\nexport function injectMacroImport(\n path: NodePath<t.Program>,\n legacyGtReactImportSource: boolean\n): void {\n const tName = GT_OTHER_FUNCTIONS.t;\n\n const importDecl = t.importDeclaration(\n [t.importSpecifier(t.identifier(tName), t.identifier(tName))],\n t.stringLiteral(getGtReactImportSource(legacyGtReactImportSource))\n );\n\n path.unshiftContainer('body', importDecl);\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,kBACd,MACA,2BACM;CACN,MAAM,QAAA;CAEN,MAAM,aAAaA,aAAE,kBACnB,CAACA,aAAE,gBAAgBA,aAAE,WAAW,MAAM,EAAEA,aAAE,WAAW,MAAM,CAAC,CAAC,EAC7DA,aAAE,cAAcC,mCAAAA,uBAAuB,0BAA0B,CAAC,CACnE;AAED,MAAK,iBAAiB,QAAQ,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerUseGTCallback.d.ts","sourceRoot":"","sources":["../../../../src/transform/registration/callbacks/registerUseGTCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,EACF,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,MAAM,GACP,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"registerUseGTCallback.d.ts","sourceRoot":"","sources":["../../../../src/transform/registration/callbacks/registerUseGTCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,EACF,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,MAAM,GACP,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CA4BP"}
|
|
@@ -8,7 +8,6 @@ const require_utils_calculateHash = require("../../../utils/calculateHash.js");
|
|
|
8
8
|
function registerUseGTCallback({ identifier, state, content, context, id, maxChars, requiresReview, hash, format }) {
|
|
9
9
|
hash ??= require_utils_calculateHash.default({
|
|
10
10
|
source: content,
|
|
11
|
-
id,
|
|
12
11
|
context,
|
|
13
12
|
maxChars,
|
|
14
13
|
requiresReview,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerUseGTCallback.js","names":["hashSource"],"sources":["../../../../src/transform/registration/callbacks/registerUseGTCallback.ts"],"sourcesContent":["import { TransformState } from '../../../state/types';\nimport hashSource from '../../../utils/calculateHash';\nimport type { DataFormat } from '@generaltranslation/format/types';\n\n/**\n * Track gt() function invocations\n * - Adds the translation content to the string collector\n */\nexport function registerUseGTCallback({\n identifier,\n state,\n content,\n context,\n id,\n maxChars,\n requiresReview,\n hash,\n format,\n}: {\n identifier: number;\n state: TransformState;\n content: string;\n context?: string;\n id?: string;\n maxChars?: number;\n requiresReview?: boolean;\n hash?: string;\n format?: string;\n}): void {\n // Calculate hash for the call expression (skip
|
|
1
|
+
{"version":3,"file":"registerUseGTCallback.js","names":["hashSource"],"sources":["../../../../src/transform/registration/callbacks/registerUseGTCallback.ts"],"sourcesContent":["import { TransformState } from '../../../state/types';\nimport hashSource from '../../../utils/calculateHash';\nimport type { DataFormat } from '@generaltranslation/format/types';\n\n/**\n * Track gt() function invocations\n * - Adds the translation content to the string collector\n */\nexport function registerUseGTCallback({\n identifier,\n state,\n content,\n context,\n id,\n maxChars,\n requiresReview,\n hash,\n format,\n}: {\n identifier: number;\n state: TransformState;\n content: string;\n context?: string;\n id?: string;\n maxChars?: number;\n requiresReview?: boolean;\n hash?: string;\n format?: string;\n}): void {\n // Calculate hash for the call expression (skip when the call site already carries one)\n hash ??= hashSource({\n source: content,\n context,\n maxChars,\n requiresReview,\n dataFormat: (format || 'ICU') as DataFormat,\n });\n\n // Add the translation content to the string collector (under identifier mapping to useGT call)\n state.stringCollector.pushTranslationContent(identifier, {\n message: content,\n hash,\n id,\n context,\n maxChars,\n requiresReview,\n format,\n });\n\n // Increment counter so we can revisit this same invocation on second pass\n const counterId = state.stringCollector.incrementCounter();\n\n // Register the hash under this counter\n state.stringCollector.setTranslationHash(counterId, {\n hash,\n });\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,sBAAsB,EACpC,YACA,OACA,SACA,SACA,IACA,UACA,gBACA,MACA,UAWO;AAEP,UAASA,4BAAAA,QAAW;EAClB,QAAQ;EACR;EACA;EACA;EACA,YAAa,UAAU;EACxB,CAAC;AAGF,OAAM,gBAAgB,uBAAuB,YAAY;EACvD,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAGF,MAAM,YAAY,MAAM,gBAAgB,kBAAkB;AAG1D,OAAM,gBAAgB,mBAAmB,WAAW,EAClD,MACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerStandaloneTranslation.d.ts","sourceRoot":"","sources":["../../../src/transform/registration/registerStandaloneTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,EACF,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,MAAM,EACN,UAAU,GACX,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"registerStandaloneTranslation.d.ts","sourceRoot":"","sources":["../../../src/transform/registration/registerStandaloneTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,KAAK,EACL,OAAO,EACP,OAAO,EACP,EAAE,EACF,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,MAAM,EACN,UAAU,GACX,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,CA6BP"}
|
|
@@ -7,7 +7,6 @@ const require_utils_calculateHash = require("../../utils/calculateHash.js");
|
|
|
7
7
|
function registerStandaloneTranslation({ state, content, context, id, maxChars, requiresReview, hash, format, injectHash }) {
|
|
8
8
|
hash ??= require_utils_calculateHash.default({
|
|
9
9
|
source: content,
|
|
10
|
-
...id && { id },
|
|
11
10
|
...context && { context },
|
|
12
11
|
...maxChars != null && { maxChars },
|
|
13
12
|
...requiresReview === true && { requiresReview: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerStandaloneTranslation.js","names":["hashSource"],"sources":["../../../src/transform/registration/registerStandaloneTranslation.ts"],"sourcesContent":["import { TransformState } from '../../state/types';\nimport hashSource from '../../utils/calculateHash';\nimport type { DataFormat } from '@generaltranslation/format/types';\n\n/**\n * Track standalone string translation invocations such as t() and msg().\n */\nexport function registerStandaloneTranslation({\n state,\n content,\n context,\n id,\n maxChars,\n requiresReview,\n hash,\n format,\n injectHash,\n}: {\n state: TransformState;\n content: string;\n context?: string;\n id?: string;\n maxChars?: number;\n requiresReview?: boolean;\n hash?: string;\n format?: string;\n injectHash?: boolean;\n}): void {\n hash ??= hashSource({\n source: content,\n ...(
|
|
1
|
+
{"version":3,"file":"registerStandaloneTranslation.js","names":["hashSource"],"sources":["../../../src/transform/registration/registerStandaloneTranslation.ts"],"sourcesContent":["import { TransformState } from '../../state/types';\nimport hashSource from '../../utils/calculateHash';\nimport type { DataFormat } from '@generaltranslation/format/types';\n\n/**\n * Track standalone string translation invocations such as t() and msg().\n */\nexport function registerStandaloneTranslation({\n state,\n content,\n context,\n id,\n maxChars,\n requiresReview,\n hash,\n format,\n injectHash,\n}: {\n state: TransformState;\n content: string;\n context?: string;\n id?: string;\n maxChars?: number;\n requiresReview?: boolean;\n hash?: string;\n format?: string;\n injectHash?: boolean;\n}): void {\n hash ??= hashSource({\n source: content,\n ...(context && { context }),\n ...(maxChars != null && { maxChars }),\n ...(requiresReview === true && { requiresReview: true }),\n dataFormat: (format || 'ICU') as DataFormat,\n });\n\n state.stringCollector.pushRuntimeOnlyContent({\n message: content,\n hash,\n id,\n context,\n maxChars,\n requiresReview,\n format,\n });\n\n // Runtime-only entries, including msg() and t`...`, stop here. Only\n // standalone t() sets injectHash so the injection pass sees a matching slot.\n if (!injectHash) {\n return;\n }\n\n const counterId = state.stringCollector.incrementCounter();\n state.stringCollector.setTranslationHash(counterId, {\n hash,\n });\n}\n"],"mappings":";;;;;;AAOA,SAAgB,8BAA8B,EAC5C,OACA,SACA,SACA,IACA,UACA,gBACA,MACA,QACA,cAWO;AACP,UAASA,4BAAAA,QAAW;EAClB,QAAQ;EACR,GAAI,WAAW,EAAE,SAAS;EAC1B,GAAI,YAAY,QAAQ,EAAE,UAAU;EACpC,GAAI,mBAAmB,QAAQ,EAAE,gBAAgB,MAAM;EACvD,YAAa,UAAU;EACxB,CAAC;AAEF,OAAM,gBAAgB,uBAAuB;EAC3C,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAIF,KAAI,CAAC,WACH;CAGF,MAAM,YAAY,MAAM,gBAAgB,kBAAkB;AAC1D,OAAM,gBAAgB,mBAAmB,WAAW,EAClD,MACD,CAAC"}
|
|
@@ -2,10 +2,11 @@ import * as t from '@babel/types';
|
|
|
2
2
|
import { NodePath } from '@babel/traverse';
|
|
3
3
|
/**
|
|
4
4
|
* Inject runtime translate import with only the specifiers needed.
|
|
5
|
-
* `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react
|
|
5
|
+
* `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react'`
|
|
6
6
|
*/
|
|
7
|
-
export declare function injectRuntimeTranslateImport(path: NodePath<t.Program>, { needsString, needsJsx }: {
|
|
7
|
+
export declare function injectRuntimeTranslateImport(path: NodePath<t.Program>, { needsString, needsJsx, legacyGtReactImportSource, }: {
|
|
8
8
|
needsString: boolean;
|
|
9
9
|
needsJsx: boolean;
|
|
10
|
+
legacyGtReactImportSource: boolean;
|
|
10
11
|
}): NodePath<t.ImportDeclaration> | null;
|
|
11
12
|
//# sourceMappingURL=injectRuntimeTranslateImport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectRuntimeTranslateImport.d.ts","sourceRoot":"","sources":["../../../src/transform/runtime-translate/injectRuntimeTranslateImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"injectRuntimeTranslateImport.d.ts","sourceRoot":"","sources":["../../../src/transform/runtime-translate/injectRuntimeTranslateImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EACzB,EACE,WAAW,EACX,QAAQ,EACR,yBAAyB,GAC1B,EAAE;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,yBAAyB,EAAE,OAAO,CAAC;CACpC,GACA,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAsBtC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
3
3
|
require("../../utils/constants/gt/constants.js");
|
|
4
|
+
const require_utils_constants_gt_helpers = require("../../utils/constants/gt/helpers.js");
|
|
4
5
|
let _babel_types = require("@babel/types");
|
|
5
6
|
_babel_types = require_runtime.__toESM(_babel_types);
|
|
6
7
|
//#region src/transform/runtime-translate/injectRuntimeTranslateImport.ts
|
|
7
8
|
/**
|
|
8
9
|
* Inject runtime translate import with only the specifiers needed.
|
|
9
|
-
* `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react
|
|
10
|
+
* `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react'`
|
|
10
11
|
*/
|
|
11
|
-
function injectRuntimeTranslateImport(path, { needsString, needsJsx }) {
|
|
12
|
+
function injectRuntimeTranslateImport(path, { needsString, needsJsx, legacyGtReactImportSource }) {
|
|
12
13
|
const specifiers = [];
|
|
13
14
|
if (needsString) {
|
|
14
15
|
const name = "GtInternalRuntimeTranslateString";
|
|
@@ -19,7 +20,7 @@ function injectRuntimeTranslateImport(path, { needsString, needsJsx }) {
|
|
|
19
20
|
specifiers.push(_babel_types.importSpecifier(_babel_types.identifier(name), _babel_types.identifier(name)));
|
|
20
21
|
}
|
|
21
22
|
if (specifiers.length === 0) return null;
|
|
22
|
-
const importDecl = _babel_types.importDeclaration(specifiers, _babel_types.stringLiteral(
|
|
23
|
+
const importDecl = _babel_types.importDeclaration(specifiers, _babel_types.stringLiteral(require_utils_constants_gt_helpers.getGtReactImportSource(legacyGtReactImportSource)));
|
|
23
24
|
const [inserted] = path.unshiftContainer("body", importDecl);
|
|
24
25
|
return inserted;
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectRuntimeTranslateImport.js","names":["t"],"sources":["../../../src/transform/runtime-translate/injectRuntimeTranslateImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport {
|
|
1
|
+
{"version":3,"file":"injectRuntimeTranslateImport.js","names":["t","getGtReactImportSource"],"sources":["../../../src/transform/runtime-translate/injectRuntimeTranslateImport.ts"],"sourcesContent":["import * as t from '@babel/types';\nimport { NodePath } from '@babel/traverse';\nimport { GT_OTHER_FUNCTIONS } from '../../utils/constants/gt/constants';\nimport { getGtReactImportSource } from '../../utils/constants/gt/helpers';\n\n/**\n * Inject runtime translate import with only the specifiers needed.\n * `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react'`\n */\nexport function injectRuntimeTranslateImport(\n path: NodePath<t.Program>,\n {\n needsString,\n needsJsx,\n legacyGtReactImportSource,\n }: {\n needsString: boolean;\n needsJsx: boolean;\n legacyGtReactImportSource: boolean;\n }\n): NodePath<t.ImportDeclaration> | null {\n const specifiers: t.ImportSpecifier[] = [];\n\n if (needsString) {\n const name = GT_OTHER_FUNCTIONS.GtInternalRuntimeTranslateString;\n specifiers.push(t.importSpecifier(t.identifier(name), t.identifier(name)));\n }\n\n if (needsJsx) {\n const name = GT_OTHER_FUNCTIONS.GtInternalRuntimeTranslateJsx;\n specifiers.push(t.importSpecifier(t.identifier(name), t.identifier(name)));\n }\n\n if (specifiers.length === 0) return null;\n\n const importDecl = t.importDeclaration(\n specifiers,\n t.stringLiteral(getGtReactImportSource(legacyGtReactImportSource))\n );\n\n const [inserted] = path.unshiftContainer('body', importDecl);\n return inserted as NodePath<t.ImportDeclaration>;\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,6BACd,MACA,EACE,aACA,UACA,6BAMoC;CACtC,MAAM,aAAkC,EAAE;AAE1C,KAAI,aAAa;EACf,MAAM,OAAA;AACN,aAAW,KAAKA,aAAE,gBAAgBA,aAAE,WAAW,KAAK,EAAEA,aAAE,WAAW,KAAK,CAAC,CAAC;;AAG5E,KAAI,UAAU;EACZ,MAAM,OAAA;AACN,aAAW,KAAKA,aAAE,gBAAgBA,aAAE,WAAW,KAAK,EAAEA,aAAE,WAAW,KAAK,CAAC,CAAC;;AAG5E,KAAI,WAAW,WAAW,EAAG,QAAO;CAEpC,MAAM,aAAaA,aAAE,kBACnB,YACAA,aAAE,cAAcC,mCAAAA,uBAAuB,0BAA0B,CAAC,CACnE;CAED,MAAM,CAAC,YAAY,KAAK,iBAAiB,QAAQ,WAAW;AAC5D,QAAO"}
|
|
@@ -14,6 +14,7 @@ export declare function validateTranslationComponentArgs(callExprPath: NodePath<
|
|
|
14
14
|
requiresReview?: boolean;
|
|
15
15
|
children?: JsxChildren;
|
|
16
16
|
hasDeriveContext?: boolean;
|
|
17
|
+
hasDeriveChildren?: boolean;
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
20
|
* Validate that the children property is a string literal
|
|
@@ -22,5 +23,6 @@ export declare function validateChildrenProperty(argsPath: NodePath<t.ObjectExpr
|
|
|
22
23
|
errors: string[];
|
|
23
24
|
value?: JsxChildren;
|
|
24
25
|
hasAutoderive?: boolean;
|
|
26
|
+
containsDerive?: boolean;
|
|
25
27
|
};
|
|
26
28
|
//# sourceMappingURL=validateTranslationComponentArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTranslationComponentArgs.d.ts","sourceRoot":"","sources":["../../../src/transform/validation/validateTranslationComponentArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc,GACpB;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validateTranslationComponentArgs.d.ts","sourceRoot":"","sources":["../../../src/transform/validation/validateTranslationComponentArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc,GACpB;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAwCA;AAuED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,cAAc,GACpB;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAuCA"}
|
|
@@ -6,7 +6,6 @@ const require_utils_parsing_getObjectPropertyFromObjectExpression = require("../
|
|
|
6
6
|
const require_utils_validation_validateExpressionIsStringLiteral = require("../../utils/validation/validateExpressionIsStringLiteral.js");
|
|
7
7
|
const require_utils_validation_validateChildrenFromObjectExpression = require("../../utils/validation/validateChildrenFromObjectExpression.js");
|
|
8
8
|
const require_transform_jsx_children_constructJsxChildren = require("../jsx-children/constructJsxChildren.js");
|
|
9
|
-
require("../jsx-children/index.js");
|
|
10
9
|
const require_utils_validation_validateExpressionIsNumericLiteral = require("../../utils/validation/validateExpressionIsNumericLiteral.js");
|
|
11
10
|
const require_utils_validation_validateExpressionIsBooleanLiteral = require("../../utils/validation/validateExpressionIsBooleanLiteral.js");
|
|
12
11
|
let _babel_types = require("@babel/types");
|
|
@@ -56,7 +55,8 @@ function validateTComponentArgs(argsPath, state) {
|
|
|
56
55
|
maxChars,
|
|
57
56
|
requiresReview,
|
|
58
57
|
children: childrenValidation.value,
|
|
59
|
-
hasDeriveContext: contextValidation.hasDeriveExpression || childrenValidation.hasAutoderive
|
|
58
|
+
hasDeriveContext: contextValidation.hasDeriveExpression || childrenValidation.hasAutoderive,
|
|
59
|
+
hasDeriveChildren: childrenValidation.containsDerive
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
@@ -85,7 +85,8 @@ function validateChildrenProperty(argsPath, state) {
|
|
|
85
85
|
return {
|
|
86
86
|
errors,
|
|
87
87
|
value: validation.value,
|
|
88
|
-
hasAutoderive
|
|
88
|
+
hasAutoderive,
|
|
89
|
+
containsDerive: validation.containsDerive
|
|
89
90
|
};
|
|
90
91
|
}
|
|
91
92
|
/**
|