@generaltranslation/compiler 1.3.25-odysseus.5 → 1.3.25-odysseus.6

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.
@@ -2,7 +2,7 @@ import { TransformState } from '../../state/types';
2
2
  import * as t from '@babel/types';
3
3
  /**
4
4
  * inject parameters into invocation of translation function
5
- * - useGT(messages=[{$_hash, message, $id, $context, $maxChars}])
5
+ * - useGT(messages=[{$_hash, message, $id, $context, $maxChars, $format}])
6
6
  */
7
7
  export declare function injectCallbackDeclaratorFunctionParameters(varDeclarator: t.VariableDeclarator, state: TransformState): void;
8
8
  //# sourceMappingURL=injectCallbackDeclaratorFunctionParameters.d.ts.map
@@ -12,7 +12,7 @@ _babel_types = require_runtime.__toESM(_babel_types);
12
12
  //#region src/transform/injection/injectCallbackDeclaratorFunctionParameters.ts
13
13
  /**
14
14
  * inject parameters into invocation of translation function
15
- * - useGT(messages=[{$_hash, message, $id, $context, $maxChars}])
15
+ * - useGT(messages=[{$_hash, message, $id, $context, $maxChars, $format}])
16
16
  */
17
17
  function injectCallbackDeclaratorFunctionParameters(varDeclarator, state) {
18
18
  var _state$scopeTracker$g;
@@ -65,7 +65,8 @@ function injectUseGTParameters(expression, state, id) {
65
65
  _babel_types.objectProperty(_babel_types.identifier("message"), _babel_types.stringLiteral(content.message)),
66
66
  ...content.id ? [_babel_types.objectProperty(_babel_types.identifier("$id"), _babel_types.stringLiteral(content.id))] : [],
67
67
  ...content.context ? [_babel_types.objectProperty(_babel_types.identifier("$context"), _babel_types.stringLiteral(content.context))] : [],
68
- ...content.maxChars != null ? [_babel_types.objectProperty(_babel_types.identifier("$maxChars"), _babel_types.numericLiteral(content.maxChars))] : []
68
+ ...content.maxChars != null ? [_babel_types.objectProperty(_babel_types.identifier("$maxChars"), _babel_types.numericLiteral(content.maxChars))] : [],
69
+ ...content.format ? [_babel_types.objectProperty(_babel_types.identifier("$format"), _babel_types.stringLiteral(content.format))] : []
69
70
  ])))];
70
71
  }
71
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"injectCallbackDeclaratorFunctionParameters.js","names":["t","getCalleeNameFromExpressionWrapper","getTrackedVariable","extractIdentifiersFromLVal","isGTFunctionWithCallbacks","createErrorLocation"],"sources":["../../../src/transform/injection/injectCallbackDeclaratorFunctionParameters.ts"],"sourcesContent":["import { TransformState } from '../../state/types';\nimport * as t from '@babel/types';\nimport { getTrackedVariable } from '../getTrackedVariable';\nimport { getCalleeNameFromExpressionWrapper } from '../../utils/parsing/getCalleeNameFromExpressionWrapper';\nimport { isGTFunctionWithCallbacks } from '../../utils/constants/gt/helpers';\nimport { GT_FUNCTIONS_WITH_CALLBACKS } from '../../utils/constants/gt/constants';\nimport { extractIdentifiersFromLVal } from '../../utils/parsing/extractIdentifiersFromLVal';\nimport { trackOverridingVariable } from '../tracking/trackOverridingVariable';\nimport { createErrorLocation } from '../../utils/errors';\n\n/**\n * inject parameters into invocation of translation function\n * - useGT(messages=[{$_hash, message, $id, $context, $maxChars}])\n */\nexport function injectCallbackDeclaratorFunctionParameters(\n varDeclarator: t.VariableDeclarator,\n state: TransformState\n): void {\n // Ignore non-LVal assignments\n if (!t.isLVal(varDeclarator.id)) {\n return;\n }\n\n // Get function name from callee\n const { namespaceName, functionName } = getCalleeNameFromExpressionWrapper(\n varDeclarator.init\n );\n if (!functionName) {\n return;\n }\n\n // Get the canonical function name\n const { canonicalName, type } = getTrackedVariable(\n state.scopeTracker,\n namespaceName,\n functionName\n );\n if (!canonicalName) {\n return;\n }\n\n // Extract identifiers from the LVal\n const identifiers = extractIdentifiersFromLVal(varDeclarator.id);\n\n // Validate the type\n if (\n type !== 'generaltranslation' ||\n !isGTFunctionWithCallbacks(canonicalName)\n ) {\n // Track as an overriding variable\n for (const identifier of identifiers) {\n trackOverridingVariable(identifier, state.scopeTracker);\n }\n return;\n }\n\n // There can only be one callback defined for const gt = useGT()\n if (identifiers.length !== 1) {\n state.logger.logError(\n `Multiple identifiers found for GT function with callbacks: ${canonicalName}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n const identifier = identifiers[0];\n\n // Inject the parameters into the call expression\n const expression = getFunctionInvocation(varDeclarator);\n if (!expression) {\n state.logger.logError(\n `No valid function invocation found for ${functionName}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n if (expression.arguments.length > 0) {\n // Found existing arguments, skip injection\n return;\n }\n\n // Look up identifier\n const id = state.scopeTracker.getVariable(identifier)?.identifier;\n if (!id) {\n state.logger.logError(\n `No translation callback variable found for ${identifier}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n // Inject into the callees\n switch (canonicalName) {\n case GT_FUNCTIONS_WITH_CALLBACKS.useGT:\n case GT_FUNCTIONS_WITH_CALLBACKS.getGT:\n injectUseGTParameters(expression, state, id);\n break;\n default:\n return;\n }\n}\n\n/**\n * Inject the parameters into the useGT/getGT call\n * @param arguments - The arguments\n * @param state - The state\n * @param identifier - The identifier\n * @param translationContent - The translation content\n */\nfunction injectUseGTParameters(\n expression: t.CallExpression,\n state: TransformState,\n id: number\n) {\n // Get the corresponding callback injection data\n const translationContent = state.stringCollector.getTranslationContent(id);\n if (!translationContent) {\n return;\n }\n\n // Inject the parameters into the call expression\n expression.arguments = [\n t.arrayExpression(\n translationContent.map((content) =>\n t.objectExpression([\n t.objectProperty(\n t.identifier('$_hash'),\n t.stringLiteral(content.hash)\n ),\n t.objectProperty(\n t.identifier('message'),\n t.stringLiteral(content.message)\n ),\n ...(content.id\n ? [\n t.objectProperty(\n t.identifier('$id'),\n t.stringLiteral(content.id)\n ),\n ]\n : []),\n ...(content.context\n ? [\n t.objectProperty(\n t.identifier('$context'),\n t.stringLiteral(content.context)\n ),\n ]\n : []),\n ...(content.maxChars != null\n ? [\n t.objectProperty(\n t.identifier('$maxChars'),\n t.numericLiteral(content.maxChars)\n ),\n ]\n : []),\n ])\n )\n ),\n ];\n}\n\n/**\n * Get the function invocation from the variable declarator\n * @param varDeclarator - The variable declarator\n */\nfunction getFunctionInvocation(\n varDeclarator: t.VariableDeclarator\n): t.CallExpression | undefined {\n const expression = varDeclarator.init;\n if (!expression) {\n // failed\n return;\n }\n if (t.isCallExpression(expression)) {\n return expression;\n }\n if (\n t.isAwaitExpression(expression) &&\n t.isCallExpression(expression.argument)\n ) {\n return expression.argument;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,SAAgB,2CACd,eACA,OACM;;AAEN,KAAI,CAACA,aAAE,OAAO,cAAc,GAAG,CAC7B;CAIF,MAAM,EAAE,eAAe,iBAAiBC,yDAAAA,mCACtC,cAAc,KACf;AACD,KAAI,CAAC,aACH;CAIF,MAAM,EAAE,eAAe,SAASC,qCAAAA,mBAC9B,MAAM,cACN,eACA,aACD;AACD,KAAI,CAAC,cACH;CAIF,MAAM,cAAcC,iDAAAA,2BAA2B,cAAc,GAAG;AAGhE,KACE,SAAS,wBACT,CAACC,mCAAAA,0BAA0B,cAAc,EACzC;AAEA,OAAK,MAAM,cAAc,YACvB,oDAAA,wBAAwB,YAAY,MAAM,aAAa;AAEzD;;AAIF,KAAI,YAAY,WAAW,GAAG;AAC5B,QAAM,OAAO,SACX,8DAA8D,cAAc,iCAC1EC,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;CAEF,MAAM,aAAa,YAAY;CAG/B,MAAM,aAAa,sBAAsB,cAAc;AACvD,KAAI,CAAC,YAAY;AACf,QAAM,OAAO,SACX,0CAA0C,aAAa,iCACrDA,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;AAEF,KAAI,WAAW,UAAU,SAAS,EAEhC;CAIF,MAAM,MAAA,wBAAK,MAAM,aAAa,YAAY,WAAW,MAAA,QAAA,0BAAA,KAAA,IAAA,KAAA,IAAA,sBAAE;AACvD,KAAI,CAAC,IAAI;AACP,QAAM,OAAO,SACX,8CAA8C,WAAW,iCACvDA,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;AAGF,SAAQ,eAAR;EACE,KAAA;EACA,KAAA;AACE,yBAAsB,YAAY,OAAO,GAAG;AAC5C;EACF,QACE;;;;;;;;;;AAWN,SAAS,sBACP,YACA,OACA,IACA;CAEA,MAAM,qBAAqB,MAAM,gBAAgB,sBAAsB,GAAG;AAC1E,KAAI,CAAC,mBACH;AAIF,YAAW,YAAY,CACrBL,aAAE,gBACA,mBAAmB,KAAK,YACtBA,aAAE,iBAAiB;EACjBA,aAAE,eACAA,aAAE,WAAW,SAAS,EACtBA,aAAE,cAAc,QAAQ,KAAK,CAC9B;EACDA,aAAE,eACAA,aAAE,WAAW,UAAU,EACvBA,aAAE,cAAc,QAAQ,QAAQ,CACjC;EACD,GAAI,QAAQ,KACR,CACEA,aAAE,eACAA,aAAE,WAAW,MAAM,EACnBA,aAAE,cAAc,QAAQ,GAAG,CAC5B,CACF,GACD,EAAE;EACN,GAAI,QAAQ,UACR,CACEA,aAAE,eACAA,aAAE,WAAW,WAAW,EACxBA,aAAE,cAAc,QAAQ,QAAQ,CACjC,CACF,GACD,EAAE;EACN,GAAI,QAAQ,YAAY,OACpB,CACEA,aAAE,eACAA,aAAE,WAAW,YAAY,EACzBA,aAAE,eAAe,QAAQ,SAAS,CACnC,CACF,GACD,EAAE;EACP,CAAC,CACH,CACF,CACF;;;;;;AAOH,SAAS,sBACP,eAC8B;CAC9B,MAAM,aAAa,cAAc;AACjC,KAAI,CAAC,WAEH;AAEF,KAAIA,aAAE,iBAAiB,WAAW,CAChC,QAAO;AAET,KACEA,aAAE,kBAAkB,WAAW,IAC/BA,aAAE,iBAAiB,WAAW,SAAS,CAEvC,QAAO,WAAW"}
1
+ {"version":3,"file":"injectCallbackDeclaratorFunctionParameters.js","names":["t","getCalleeNameFromExpressionWrapper","getTrackedVariable","extractIdentifiersFromLVal","isGTFunctionWithCallbacks","createErrorLocation"],"sources":["../../../src/transform/injection/injectCallbackDeclaratorFunctionParameters.ts"],"sourcesContent":["import { TransformState } from '../../state/types';\nimport * as t from '@babel/types';\nimport { getTrackedVariable } from '../getTrackedVariable';\nimport { getCalleeNameFromExpressionWrapper } from '../../utils/parsing/getCalleeNameFromExpressionWrapper';\nimport { isGTFunctionWithCallbacks } from '../../utils/constants/gt/helpers';\nimport { GT_FUNCTIONS_WITH_CALLBACKS } from '../../utils/constants/gt/constants';\nimport { extractIdentifiersFromLVal } from '../../utils/parsing/extractIdentifiersFromLVal';\nimport { trackOverridingVariable } from '../tracking/trackOverridingVariable';\nimport { createErrorLocation } from '../../utils/errors';\n\n/**\n * inject parameters into invocation of translation function\n * - useGT(messages=[{$_hash, message, $id, $context, $maxChars, $format}])\n */\nexport function injectCallbackDeclaratorFunctionParameters(\n varDeclarator: t.VariableDeclarator,\n state: TransformState\n): void {\n // Ignore non-LVal assignments\n if (!t.isLVal(varDeclarator.id)) {\n return;\n }\n\n // Get function name from callee\n const { namespaceName, functionName } = getCalleeNameFromExpressionWrapper(\n varDeclarator.init\n );\n if (!functionName) {\n return;\n }\n\n // Get the canonical function name\n const { canonicalName, type } = getTrackedVariable(\n state.scopeTracker,\n namespaceName,\n functionName\n );\n if (!canonicalName) {\n return;\n }\n\n // Extract identifiers from the LVal\n const identifiers = extractIdentifiersFromLVal(varDeclarator.id);\n\n // Validate the type\n if (\n type !== 'generaltranslation' ||\n !isGTFunctionWithCallbacks(canonicalName)\n ) {\n // Track as an overriding variable\n for (const identifier of identifiers) {\n trackOverridingVariable(identifier, state.scopeTracker);\n }\n return;\n }\n\n // There can only be one callback defined for const gt = useGT()\n if (identifiers.length !== 1) {\n state.logger.logError(\n `Multiple identifiers found for GT function with callbacks: ${canonicalName}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n const identifier = identifiers[0];\n\n // Inject the parameters into the call expression\n const expression = getFunctionInvocation(varDeclarator);\n if (!expression) {\n state.logger.logError(\n `No valid function invocation found for ${functionName}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n if (expression.arguments.length > 0) {\n // Found existing arguments, skip injection\n return;\n }\n\n // Look up identifier\n const id = state.scopeTracker.getVariable(identifier)?.identifier;\n if (!id) {\n state.logger.logError(\n `No translation callback variable found for ${identifier}. Parameter injection failed.` +\n createErrorLocation(varDeclarator.id)\n );\n return;\n }\n // Inject into the callees\n switch (canonicalName) {\n case GT_FUNCTIONS_WITH_CALLBACKS.useGT:\n case GT_FUNCTIONS_WITH_CALLBACKS.getGT:\n injectUseGTParameters(expression, state, id);\n break;\n default:\n return;\n }\n}\n\n/**\n * Inject the parameters into the useGT/getGT call\n * @param arguments - The arguments\n * @param state - The state\n * @param identifier - The identifier\n * @param translationContent - The translation content\n */\nfunction injectUseGTParameters(\n expression: t.CallExpression,\n state: TransformState,\n id: number\n) {\n // Get the corresponding callback injection data\n const translationContent = state.stringCollector.getTranslationContent(id);\n if (!translationContent) {\n return;\n }\n\n // Inject the parameters into the call expression\n expression.arguments = [\n t.arrayExpression(\n translationContent.map((content) =>\n t.objectExpression([\n t.objectProperty(\n t.identifier('$_hash'),\n t.stringLiteral(content.hash)\n ),\n t.objectProperty(\n t.identifier('message'),\n t.stringLiteral(content.message)\n ),\n ...(content.id\n ? [\n t.objectProperty(\n t.identifier('$id'),\n t.stringLiteral(content.id)\n ),\n ]\n : []),\n ...(content.context\n ? [\n t.objectProperty(\n t.identifier('$context'),\n t.stringLiteral(content.context)\n ),\n ]\n : []),\n ...(content.maxChars != null\n ? [\n t.objectProperty(\n t.identifier('$maxChars'),\n t.numericLiteral(content.maxChars)\n ),\n ]\n : []),\n ...(content.format\n ? [\n t.objectProperty(\n t.identifier('$format'),\n t.stringLiteral(content.format)\n ),\n ]\n : []),\n ])\n )\n ),\n ];\n}\n\n/**\n * Get the function invocation from the variable declarator\n * @param varDeclarator - The variable declarator\n */\nfunction getFunctionInvocation(\n varDeclarator: t.VariableDeclarator\n): t.CallExpression | undefined {\n const expression = varDeclarator.init;\n if (!expression) {\n // failed\n return;\n }\n if (t.isCallExpression(expression)) {\n return expression;\n }\n if (\n t.isAwaitExpression(expression) &&\n t.isCallExpression(expression.argument)\n ) {\n return expression.argument;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,SAAgB,2CACd,eACA,OACM;;AAEN,KAAI,CAACA,aAAE,OAAO,cAAc,GAAG,CAC7B;CAIF,MAAM,EAAE,eAAe,iBAAiBC,yDAAAA,mCACtC,cAAc,KACf;AACD,KAAI,CAAC,aACH;CAIF,MAAM,EAAE,eAAe,SAASC,qCAAAA,mBAC9B,MAAM,cACN,eACA,aACD;AACD,KAAI,CAAC,cACH;CAIF,MAAM,cAAcC,iDAAAA,2BAA2B,cAAc,GAAG;AAGhE,KACE,SAAS,wBACT,CAACC,mCAAAA,0BAA0B,cAAc,EACzC;AAEA,OAAK,MAAM,cAAc,YACvB,oDAAA,wBAAwB,YAAY,MAAM,aAAa;AAEzD;;AAIF,KAAI,YAAY,WAAW,GAAG;AAC5B,QAAM,OAAO,SACX,8DAA8D,cAAc,iCAC1EC,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;CAEF,MAAM,aAAa,YAAY;CAG/B,MAAM,aAAa,sBAAsB,cAAc;AACvD,KAAI,CAAC,YAAY;AACf,QAAM,OAAO,SACX,0CAA0C,aAAa,iCACrDA,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;AAEF,KAAI,WAAW,UAAU,SAAS,EAEhC;CAIF,MAAM,MAAA,wBAAK,MAAM,aAAa,YAAY,WAAW,MAAA,QAAA,0BAAA,KAAA,IAAA,KAAA,IAAA,sBAAE;AACvD,KAAI,CAAC,IAAI;AACP,QAAM,OAAO,SACX,8CAA8C,WAAW,iCACvDA,qBAAAA,oBAAoB,cAAc,GAAG,CACxC;AACD;;AAGF,SAAQ,eAAR;EACE,KAAA;EACA,KAAA;AACE,yBAAsB,YAAY,OAAO,GAAG;AAC5C;EACF,QACE;;;;;;;;;;AAWN,SAAS,sBACP,YACA,OACA,IACA;CAEA,MAAM,qBAAqB,MAAM,gBAAgB,sBAAsB,GAAG;AAC1E,KAAI,CAAC,mBACH;AAIF,YAAW,YAAY,CACrBL,aAAE,gBACA,mBAAmB,KAAK,YACtBA,aAAE,iBAAiB;EACjBA,aAAE,eACAA,aAAE,WAAW,SAAS,EACtBA,aAAE,cAAc,QAAQ,KAAK,CAC9B;EACDA,aAAE,eACAA,aAAE,WAAW,UAAU,EACvBA,aAAE,cAAc,QAAQ,QAAQ,CACjC;EACD,GAAI,QAAQ,KACR,CACEA,aAAE,eACAA,aAAE,WAAW,MAAM,EACnBA,aAAE,cAAc,QAAQ,GAAG,CAC5B,CACF,GACD,EAAE;EACN,GAAI,QAAQ,UACR,CACEA,aAAE,eACAA,aAAE,WAAW,WAAW,EACxBA,aAAE,cAAc,QAAQ,QAAQ,CACjC,CACF,GACD,EAAE;EACN,GAAI,QAAQ,YAAY,OACpB,CACEA,aAAE,eACAA,aAAE,WAAW,YAAY,EACzBA,aAAE,eAAe,QAAQ,SAAS,CACnC,CACF,GACD,EAAE;EACN,GAAI,QAAQ,SACR,CACEA,aAAE,eACAA,aAAE,WAAW,UAAU,EACvBA,aAAE,cAAc,QAAQ,OAAO,CAChC,CACF,GACD,EAAE;EACP,CAAC,CACH,CACF,CACF;;;;;;AAOH,SAAS,sBACP,eAC8B;CAC9B,MAAM,aAAa,cAAc;AACjC,KAAI,CAAC,WAEH;AAEF,KAAIA,aAAE,iBAAiB,WAAW,CAChC,QAAO;AAET,KACEA,aAAE,kBAAkB,WAAW,IAC/BA,aAAE,iBAAiB,WAAW,SAAS,CAEvC,QAAO,WAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/compiler",
3
- "version": "1.3.25-odysseus.5",
3
+ "version": "1.3.25-odysseus.6",
4
4
  "description": "Universal plugin for compile-time optimization of GT translation components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",