@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.
Files changed (99) hide show
  1. package/dist/config.d.ts +12 -7
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +61 -6
  7. package/dist/index.js.map +1 -1
  8. package/dist/passes/basePass.d.ts.map +1 -1
  9. package/dist/passes/basePass.js +9 -10
  10. package/dist/passes/basePass.js.map +1 -1
  11. package/dist/processing/collection/processCallExpression.js +8 -6
  12. package/dist/processing/collection/processCallExpression.js.map +1 -1
  13. package/dist/processing/collection/processTaggedTemplateExpression.d.ts +1 -1
  14. package/dist/processing/collection/processTaggedTemplateExpression.js +1 -1
  15. package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -1
  16. package/dist/processing/jsx-insertion/processCallExpression.js.map +1 -1
  17. package/dist/processing/jsx-insertion/processProgram.d.ts.map +1 -1
  18. package/dist/processing/jsx-insertion/processProgram.js +1 -1
  19. package/dist/processing/jsx-insertion/processProgram.js.map +1 -1
  20. package/dist/processing/macro-expansion/processProgram.js +1 -1
  21. package/dist/processing/macro-expansion/processProgram.js.map +1 -1
  22. package/dist/processing/macro-expansion/processTaggedTemplateExpression.d.ts +1 -1
  23. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js +1 -1
  24. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js.map +1 -1
  25. package/dist/processing/processFunctionDeclaration.js +1 -1
  26. package/dist/processing/processFunctionExpression.js +1 -1
  27. package/dist/processing/runtime-translate/processProgram.d.ts.map +1 -1
  28. package/dist/processing/runtime-translate/processProgram.js +2 -1
  29. package/dist/processing/runtime-translate/processProgram.js.map +1 -1
  30. package/dist/state/StringCollector.d.ts +3 -3
  31. package/dist/state/StringCollector.d.ts.map +1 -1
  32. package/dist/state/StringCollector.js.map +1 -1
  33. package/dist/state/utils/initializeState.d.ts.map +1 -1
  34. package/dist/state/utils/initializeState.js +8 -5
  35. package/dist/state/utils/initializeState.js.map +1 -1
  36. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.d.ts +1 -1
  37. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js +6 -5
  38. package/dist/transform/injection/injectCallbackDeclaratorFunctionParameters.js.map +1 -1
  39. package/dist/transform/injection/injectHashIntoTranslationOptions.d.ts.map +1 -1
  40. package/dist/transform/injection/injectHashIntoTranslationOptions.js +1 -0
  41. package/dist/transform/injection/injectHashIntoTranslationOptions.js.map +1 -1
  42. package/dist/transform/injection/injectTComponentParameters.d.ts.map +1 -1
  43. package/dist/transform/injection/injectTComponentParameters.js +2 -1
  44. package/dist/transform/injection/injectTComponentParameters.js.map +1 -1
  45. package/dist/transform/jsx-children/constructJsxChildren.d.ts +1 -0
  46. package/dist/transform/jsx-children/constructJsxChildren.d.ts.map +1 -1
  47. package/dist/transform/jsx-children/constructJsxChildren.js +17 -5
  48. package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
  49. package/dist/transform/jsx-insertion/injectJsxInsertionImport.d.ts +2 -2
  50. package/dist/transform/jsx-insertion/injectJsxInsertionImport.d.ts.map +1 -1
  51. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js +4 -3
  52. package/dist/transform/jsx-insertion/injectJsxInsertionImport.js.map +1 -1
  53. package/dist/transform/macro-expansion/injectMacroImport.d.ts +2 -2
  54. package/dist/transform/macro-expansion/injectMacroImport.d.ts.map +1 -1
  55. package/dist/transform/macro-expansion/injectMacroImport.js +4 -3
  56. package/dist/transform/macro-expansion/injectMacroImport.js.map +1 -1
  57. package/dist/transform/registration/callbacks/registerUseGTCallback.d.ts.map +1 -1
  58. package/dist/transform/registration/callbacks/registerUseGTCallback.js +0 -1
  59. package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
  60. package/dist/transform/registration/registerStandaloneTranslation.d.ts.map +1 -1
  61. package/dist/transform/registration/registerStandaloneTranslation.js +0 -1
  62. package/dist/transform/registration/registerStandaloneTranslation.js.map +1 -1
  63. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts +3 -2
  64. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts.map +1 -1
  65. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +4 -3
  66. package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -1
  67. package/dist/transform/validation/validateTranslationComponentArgs.d.ts +2 -0
  68. package/dist/transform/validation/validateTranslationComponentArgs.d.ts.map +1 -1
  69. package/dist/transform/validation/validateTranslationComponentArgs.js +4 -3
  70. package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
  71. package/dist/transform/validation/validateTranslationFunction.d.ts.map +1 -1
  72. package/dist/transform/validation/validateTranslationFunction.js +3 -3
  73. package/dist/transform/validation/validateTranslationFunction.js.map +1 -1
  74. package/dist/utils/calculateHash.d.ts +1 -2
  75. package/dist/utils/calculateHash.d.ts.map +1 -1
  76. package/dist/utils/calculateHash.js +1 -3
  77. package/dist/utils/calculateHash.js.map +1 -1
  78. package/dist/utils/constants/gt/constants.d.ts +1 -5
  79. package/dist/utils/constants/gt/constants.d.ts.map +1 -1
  80. package/dist/utils/constants/gt/constants.js +1 -5
  81. package/dist/utils/constants/gt/constants.js.map +1 -1
  82. package/dist/utils/constants/gt/helpers.d.ts +2 -1
  83. package/dist/utils/constants/gt/helpers.d.ts.map +1 -1
  84. package/dist/utils/constants/gt/helpers.js +15 -5
  85. package/dist/utils/constants/gt/helpers.js.map +1 -1
  86. package/dist/utils/constants/resolveIdentifier/isGTComponent.d.ts +1 -1
  87. package/dist/utils/constants/resolveIdentifier/isGTComponent.d.ts.map +1 -1
  88. package/dist/utils/constants/resolveIdentifier/isGTComponent.js +2 -3
  89. package/dist/utils/constants/resolveIdentifier/isGTComponent.js.map +1 -1
  90. package/dist/utils/parsing/isStringTranslationTaggedTemplate.d.ts +1 -1
  91. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js +3 -3
  92. package/dist/utils/parsing/isStringTranslationTaggedTemplate.js.map +1 -1
  93. package/package.json +3 -3
  94. package/dist/processing/index.d.ts +0 -15
  95. package/dist/processing/index.d.ts.map +0 -1
  96. package/dist/processing/index.js +0 -29
  97. package/dist/transform/jsx-children/index.d.ts +0 -2
  98. package/dist/transform/jsx-children/index.d.ts.map +0 -1
  99. 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], '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;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,OAAO,CACtE;AAIF,UAAS,UAAU,GAAG,WAAW,KAC/BD,aAAE,eACAA,aAAE,WAAW,QAAQ,EACrBA,aAAE,cAAc,eAAe,KAAK,CACrC,CACF"}
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;IAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,CA6DvD"}
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/browser'`
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>): void;
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;AAM3C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAaxE"}
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/browser'`
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("gt-react/browser"));
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 {\n GT_COMPONENT_TYPES,\n GT_IMPORT_SOURCES,\n} from '../../utils/constants/gt/constants';\n\n/**\n * Inject `import { GtInternalTranslateJsx, GtInternalVar } from 'gt-react/browser'`\n * as the first statement in the program.\n */\nexport function injectJsxInsertionImport(path: NodePath<t.Program>): 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(GT_IMPORT_SOURCES.GT_REACT_BROWSER)\n );\n\n path.unshiftContainer('body', importDecl);\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,yBAAyB,MAAiC;CACxE,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,cAAA,mBAAiD,CACpD;AAED,MAAK,iBAAiB,QAAQ,WAAW"}
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/browser'` as the first statement in the program.
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>): void;
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;AAM3C;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CASjE"}
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/browser'` as the first statement in the program.
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("gt-react/browser"));
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 {\n GT_IMPORT_SOURCES,\n GT_OTHER_FUNCTIONS,\n} from '../../utils/constants/gt/constants';\n\n/**\n * Inject `import { t } from 'gt-react/browser'` as the first statement in the program.\n */\nexport function injectMacroImport(path: NodePath<t.Program>): 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(GT_IMPORT_SOURCES.GT_REACT_BROWSER)\n );\n\n path.unshiftContainer('body', importDecl);\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,kBAAkB,MAAiC;CACjE,MAAM,QAAA;CAEN,MAAM,aAAaA,aAAE,kBACnB,CAACA,aAAE,gBAAgBA,aAAE,WAAW,MAAM,EAAEA,aAAE,WAAW,MAAM,CAAC,CAAC,EAC7DA,aAAE,cAAA,mBAAiD,CACpD;AAED,MAAK,iBAAiB,QAAQ,WAAW"}
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,CA6BP"}
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 if already set, including empty string for derive context)\n hash ??= hashSource({\n source: content,\n id,\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;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
+ {"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,CA8BP"}
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 ...(id && { id }),\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,MAAM,EAAE,IAAI;EAChB,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"}
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/browser'`
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;AAM3C;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EACzB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACrE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAsBtC"}
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/browser'`
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("gt-react/browser"));
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 {\n GT_IMPORT_SOURCES,\n GT_OTHER_FUNCTIONS,\n} from '../../utils/constants/gt/constants';\n\n/**\n * Inject runtime translate import with only the specifiers needed.\n * `import { GtInternalRuntimeTranslateString, GtInternalRuntimeTranslateJsx } from 'gt-react/browser'`\n */\nexport function injectRuntimeTranslateImport(\n path: NodePath<t.Program>,\n { needsString, needsJsx }: { needsString: boolean; needsJsx: boolean }\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(GT_IMPORT_SOURCES.GT_REACT_BROWSER)\n );\n\n const [inserted] = path.unshiftContainer('body', importDecl);\n return inserted as NodePath<t.ImportDeclaration>;\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,6BACd,MACA,EAAE,aAAa,YACuB;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,cAAA,mBAAiD,CACpD;CAED,MAAM,CAAC,YAAY,KAAK,iBAAiB,QAAQ,WAAW;AAC5D,QAAO"}
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;CAC5B,CAwCA;AAqED;;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;CACzB,CAkCA"}
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
  /**