@generaltranslation/compiler 1.3.17 → 1.3.19

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 (120) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/processing/collection/processCallExpression.js +11 -10
  5. package/dist/processing/collection/processCallExpression.js.map +1 -1
  6. package/dist/processing/collection/processTaggedTemplateExpression.d.ts.map +1 -1
  7. package/dist/processing/collection/processTaggedTemplateExpression.js +5 -1
  8. package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -1
  9. package/dist/processing/macro-expansion/processTaggedTemplateExpression.d.ts.map +1 -1
  10. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js +5 -1
  11. package/dist/processing/macro-expansion/processTaggedTemplateExpression.js.map +1 -1
  12. package/dist/state/ScopeTracker.d.ts.map +1 -1
  13. package/dist/state/ScopeTracker.js.map +1 -1
  14. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js +2 -2
  15. package/dist/transform/injection/callbacks/injectUseGTCallbackParameters.js.map +1 -1
  16. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.d.ts +1 -1
  17. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.d.ts.map +1 -1
  18. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js +1 -1
  19. package/dist/transform/injection/callbacks/injectUseMessagesCallbackParameters.js.map +1 -1
  20. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.d.ts +1 -1
  21. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.d.ts.map +1 -1
  22. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js +1 -1
  23. package/dist/transform/injection/callbacks/injectUseTranslationsCallbackParameters.js.map +1 -1
  24. package/dist/transform/injection/injectStandaloneTFunctionParameters.js +2 -2
  25. package/dist/transform/injection/injectStandaloneTFunctionParameters.js.map +1 -1
  26. package/dist/transform/jsx-children/constructJsxChildren.d.ts +10 -5
  27. package/dist/transform/jsx-children/constructJsxChildren.d.ts.map +1 -1
  28. package/dist/transform/jsx-children/constructJsxChildren.js +42 -30
  29. package/dist/transform/jsx-children/constructJsxChildren.js.map +1 -1
  30. package/dist/transform/jsx-children/index.d.ts +1 -1
  31. package/dist/transform/jsx-children/index.d.ts.map +1 -1
  32. package/dist/transform/jsx-children/index.js +1 -1
  33. package/dist/transform/jsx-children/index.js.map +1 -1
  34. package/dist/transform/jsx-children/utils/getBranchComponentParameters.d.ts +3 -2
  35. package/dist/transform/jsx-children/utils/getBranchComponentParameters.d.ts.map +1 -1
  36. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js +12 -10
  37. package/dist/transform/jsx-children/utils/getBranchComponentParameters.js.map +1 -1
  38. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.d.ts +4 -3
  39. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.d.ts.map +1 -1
  40. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js +13 -3
  41. package/dist/transform/jsx-children/validation/validateChildrenFromArgs.js.map +1 -1
  42. package/dist/transform/macro-expansion/transformTemplateLiteral.d.ts +4 -2
  43. package/dist/transform/macro-expansion/transformTemplateLiteral.d.ts.map +1 -1
  44. package/dist/transform/macro-expansion/transformTemplateLiteral.js +8 -4
  45. package/dist/transform/macro-expansion/transformTemplateLiteral.js.map +1 -1
  46. package/dist/transform/registration/callbacks/registerUseMessagesCallback.d.ts +1 -1
  47. package/dist/transform/registration/callbacks/registerUseMessagesCallback.d.ts.map +1 -1
  48. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js +1 -1
  49. package/dist/transform/registration/callbacks/registerUseMessagesCallback.js.map +1 -1
  50. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.d.ts +1 -1
  51. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.d.ts.map +1 -1
  52. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js +2 -2
  53. package/dist/transform/registration/callbacks/registerUseTranslationsCallback.js.map +1 -1
  54. package/dist/transform/tracking/trackAssignmentExpression.js +1 -1
  55. package/dist/transform/tracking/trackAssignmentExpression.js.map +1 -1
  56. package/dist/transform/validation/validateTranslationComponentArgs.d.ts +3 -2
  57. package/dist/transform/validation/validateTranslationComponentArgs.d.ts.map +1 -1
  58. package/dist/transform/validation/validateTranslationComponentArgs.js +17 -8
  59. package/dist/transform/validation/validateTranslationComponentArgs.js.map +1 -1
  60. package/dist/transform/validation/{validateTranslationFunctionCallback.d.ts → validateTranslationFunction.d.ts} +3 -3
  61. package/dist/transform/validation/validateTranslationFunction.d.ts.map +1 -0
  62. package/dist/transform/validation/{validateTranslationFunctionCallback.js → validateTranslationFunction.js} +34 -14
  63. package/dist/transform/validation/validateTranslationFunction.js.map +1 -0
  64. package/dist/utils/constants/gt/constants.d.ts +0 -8
  65. package/dist/utils/constants/gt/constants.d.ts.map +1 -1
  66. package/dist/utils/constants/gt/constants.js +1 -10
  67. package/dist/utils/constants/gt/constants.js.map +1 -1
  68. package/dist/utils/constants/gt/helpers.d.ts +0 -6
  69. package/dist/utils/constants/gt/helpers.d.ts.map +1 -1
  70. package/dist/utils/constants/gt/helpers.js +1 -10
  71. package/dist/utils/constants/gt/helpers.js.map +1 -1
  72. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js +1 -1
  73. package/dist/utils/constants/resolveIdentifier/isReactJsxFunction.js.map +1 -1
  74. package/dist/utils/multiplication/multiply.d.ts +26 -0
  75. package/dist/utils/multiplication/multiply.d.ts.map +1 -0
  76. package/dist/utils/multiplication/multiply.js +43 -0
  77. package/dist/utils/multiplication/multiply.js.map +1 -0
  78. package/dist/utils/multiplication/types.d.ts +26 -0
  79. package/dist/utils/multiplication/types.d.ts.map +1 -0
  80. package/dist/utils/multiplication/types.js +3 -0
  81. package/dist/utils/multiplication/types.js.map +1 -0
  82. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.d.ts +5 -0
  83. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.d.ts.map +1 -1
  84. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js +22 -12
  85. package/dist/utils/parsing/getObjectPropertyFromObjectExpression.js.map +1 -1
  86. package/dist/utils/string-expressions/flattenExpressionToParts.d.ts +10 -3
  87. package/dist/utils/string-expressions/flattenExpressionToParts.d.ts.map +1 -1
  88. package/dist/utils/string-expressions/flattenExpressionToParts.js +42 -8
  89. package/dist/utils/string-expressions/flattenExpressionToParts.js.map +1 -1
  90. package/dist/utils/string-expressions/resolveStaticExpression.d.ts +10 -5
  91. package/dist/utils/string-expressions/resolveStaticExpression.d.ts.map +1 -1
  92. package/dist/utils/string-expressions/resolveStaticExpression.js +23 -13
  93. package/dist/utils/string-expressions/resolveStaticExpression.js.map +1 -1
  94. package/dist/utils/validation/validateChildrenFromObjectExpression.d.ts +4 -3
  95. package/dist/utils/validation/validateChildrenFromObjectExpression.d.ts.map +1 -1
  96. package/dist/utils/validation/validateChildrenFromObjectExpression.js +8 -41
  97. package/dist/utils/validation/validateChildrenFromObjectExpression.js.map +1 -1
  98. package/package.json +2 -5
  99. package/dist/transform/tracking/trackLabeledStatement.d.ts +0 -8
  100. package/dist/transform/tracking/trackLabeledStatement.d.ts.map +0 -1
  101. package/dist/transform/tracking/trackLabeledStatement.js +0 -13
  102. package/dist/transform/tracking/trackLabeledStatement.js.map +0 -1
  103. package/dist/transform/validation/validateTranslationFunctionCallback.d.ts.map +0 -1
  104. package/dist/transform/validation/validateTranslationFunctionCallback.js.map +0 -1
  105. package/dist/utils/parsing/getAttr.d.ts +0 -6
  106. package/dist/utils/parsing/getAttr.d.ts.map +0 -1
  107. package/dist/utils/parsing/getAttr.js +0 -71
  108. package/dist/utils/parsing/getAttr.js.map +0 -1
  109. package/dist/utils/parsing/getStringLiteralFromObjectExpression.d.ts +0 -6
  110. package/dist/utils/parsing/getStringLiteralFromObjectExpression.d.ts.map +0 -1
  111. package/dist/utils/parsing/getStringLiteralFromObjectExpression.js +0 -64
  112. package/dist/utils/parsing/getStringLiteralFromObjectExpression.js.map +0 -1
  113. package/dist/utils/parsing/getTag.d.ts +0 -8
  114. package/dist/utils/parsing/getTag.d.ts.map +0 -1
  115. package/dist/utils/parsing/getTag.js +0 -81
  116. package/dist/utils/parsing/getTag.js.map +0 -1
  117. package/dist/utils/string-expressions/mergeAdjacentStaticParts.d.ts +0 -6
  118. package/dist/utils/string-expressions/mergeAdjacentStaticParts.d.ts.map +0 -1
  119. package/dist/utils/string-expressions/mergeAdjacentStaticParts.js +0 -22
  120. package/dist/utils/string-expressions/mergeAdjacentStaticParts.js.map +0 -1
@@ -34,22 +34,32 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getObjectPropertyFromObjectExpression = getObjectPropertyFromObjectExpression;
37
+ exports.getObjectPropertyPathFromObjectExpression = getObjectPropertyPathFromObjectExpression;
37
38
  const t = __importStar(require("@babel/types"));
39
+ function objectPropertyMatchesName(property, name) {
40
+ if (t.isSpreadElement(property)) {
41
+ return false;
42
+ }
43
+ if (t.isIdentifier(property.key) && property.key.name === name) {
44
+ return true;
45
+ }
46
+ if (t.isStringLiteral(property.key) && property.key.value === name) {
47
+ return true;
48
+ }
49
+ return false;
50
+ }
38
51
  /**
39
52
  * Given an expression, return the object property
40
53
  */
41
54
  function getObjectPropertyFromObjectExpression(objExpr, name) {
42
- return objExpr.properties.find((property) => {
43
- if (t.isSpreadElement(property)) {
44
- return false;
45
- }
46
- if (t.isIdentifier(property.key) && property.key.name === name) {
47
- return true;
48
- }
49
- if (t.isStringLiteral(property.key) && property.key.value === name) {
50
- return true;
51
- }
52
- return false;
53
- });
55
+ return objExpr.properties.find((property) => objectPropertyMatchesName(property, name));
56
+ }
57
+ /**
58
+ * Given an expression path, return the object property path
59
+ */
60
+ function getObjectPropertyPathFromObjectExpression(objExprPath, name) {
61
+ return objExprPath
62
+ .get('properties')
63
+ .find((propertyPath) => objectPropertyMatchesName(propertyPath.node, name));
54
64
  }
55
65
  //# sourceMappingURL=getObjectPropertyFromObjectExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getObjectPropertyFromObjectExpression.js","sourceRoot":"","sources":["../../../src/utils/parsing/getObjectPropertyFromObjectExpression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sFAgBC;AApBD,gDAAkC;AAClC;;GAEG;AACH,SAAgB,qCAAqC,CACnD,OAA2B,EAC3B,IAAY;IAEZ,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC1C,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"getObjectPropertyFromObjectExpression.js","sourceRoot":"","sources":["../../../src/utils/parsing/getObjectPropertyFromObjectExpression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,sFAOC;AAKD,8FASC;AA1CD,gDAAkC;AAElC,SAAS,yBAAyB,CAChC,QAA6C,EAC7C,IAAY;IAEZ,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,qCAAqC,CACnD,OAA2B,EAC3B,IAAY;IAEZ,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,yCAAyC,CACvD,WAAyC,EACzC,IAAY;IAEZ,OAAO,WAAW;SACf,GAAG,CAAC,YAAY,CAAC;SACjB,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CACrB,yBAAyB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CACU,CAAC;AACnE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as t from '@babel/types';
2
2
  import type { NodePath } from '@babel/traverse';
3
+ import { ResolutionNode } from '../multiplication/types';
3
4
  export type Part = {
4
5
  type: 'static';
5
6
  value: string;
@@ -10,9 +11,14 @@ export type Part = {
10
11
  type: 'dynamic';
11
12
  node: t.Expression;
12
13
  };
14
+ export declare const INVALID_TEMPLATE_ESCAPE_ERROR = "Template literal contains an invalid escape sequence";
15
+ export type FlattenExpressionError = {
16
+ kind: 'invalid-template-escape' | 'invalid-expression';
17
+ message: string;
18
+ };
13
19
  type FlattenExpressionResult = {
14
- parts: Part[];
15
- errors: string[];
20
+ parts: ResolutionNode<Part>[];
21
+ errors: FlattenExpressionError[];
16
22
  };
17
23
  /**
18
24
  * Recursively decomposes an expression tree into a flat list of typed parts.
@@ -21,7 +27,8 @@ type FlattenExpressionResult = {
21
27
  * provided, imported derive() calls are preserved as derive parts.
22
28
  *
23
29
  * Returns errors alongside parts so callers can report extraction failures
24
- * without throwing during expression flattening.
30
+ * without throwing during expression flattening. Adjacent static parts are
31
+ * coalesced before returning.
25
32
  */
26
33
  export declare function flattenExpressionToParts(exprPath: NodePath<t.Expression>): FlattenExpressionResult;
27
34
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"flattenExpressionToParts.d.ts","sourceRoot":"","sources":["../../../src/utils/string-expressions/flattenExpressionToParts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;CAAE,CAAC;AAE5C,KAAK,uBAAuB,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEnE;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAC/B,uBAAuB,CAsFzB"}
1
+ {"version":3,"file":"flattenExpressionToParts.d.ts","sourceRoot":"","sources":["../../../src/utils/string-expressions/flattenExpressionToParts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;CAAE,CAAC;AAE5C,eAAO,MAAM,6BAA6B,yDACc,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,yBAAyB,GAAG,oBAAoB,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAYF,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC,CAAC;AA6BF;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAC/B,uBAAuB,CA0FzB"}
@@ -33,9 +33,35 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.INVALID_TEMPLATE_ESCAPE_ERROR = void 0;
36
37
  exports.flattenExpressionToParts = flattenExpressionToParts;
37
38
  const t = __importStar(require("@babel/types"));
38
39
  const isDeriveInvocation_1 = require("../parsing/isDeriveInvocation");
40
+ exports.INVALID_TEMPLATE_ESCAPE_ERROR = 'Template literal contains an invalid escape sequence';
41
+ const INVALID_TEMPLATE_ESCAPE = {
42
+ kind: 'invalid-template-escape',
43
+ message: exports.INVALID_TEMPLATE_ESCAPE_ERROR,
44
+ };
45
+ const INVALID_EXPRESSION = {
46
+ kind: 'invalid-expression',
47
+ message: 'Expression is not a valid expression',
48
+ };
49
+ function isStaticPart(part) {
50
+ return part != null && 'type' in part && part.type === 'static';
51
+ }
52
+ function appendPart(parts, part) {
53
+ const lastPart = parts[parts.length - 1];
54
+ if (isStaticPart(lastPart) && isStaticPart(part)) {
55
+ lastPart.value += part.value;
56
+ return;
57
+ }
58
+ parts.push(part);
59
+ }
60
+ function appendParts(parts, nextParts) {
61
+ for (const part of nextParts) {
62
+ appendPart(parts, part);
63
+ }
64
+ }
39
65
  /**
40
66
  * Recursively decomposes an expression tree into a flat list of typed parts.
41
67
  * Handles string/numeric/boolean/null literals, void expressions,
@@ -43,7 +69,8 @@ const isDeriveInvocation_1 = require("../parsing/isDeriveInvocation");
43
69
  * provided, imported derive() calls are preserved as derive parts.
44
70
  *
45
71
  * Returns errors alongside parts so callers can report extraction failures
46
- * without throwing during expression flattening.
72
+ * without throwing during expression flattening. Adjacent static parts are
73
+ * coalesced before returning.
47
74
  */
48
75
  function flattenExpressionToParts(exprPath) {
49
76
  const expr = exprPath.node;
@@ -80,20 +107,20 @@ function flattenExpressionToParts(exprPath) {
80
107
  for (let i = 0; i < expr.quasis.length; i++) {
81
108
  const cooked = expr.quasis[i].value.cooked;
82
109
  if (cooked == null) {
83
- result.errors.push('Template literal contains an invalid escape sequence');
110
+ result.errors.push(INVALID_TEMPLATE_ESCAPE);
84
111
  return result;
85
112
  }
86
113
  else if (cooked) {
87
- result.parts.push({ type: 'static', value: cooked });
114
+ appendPart(result.parts, { type: 'static', value: cooked });
88
115
  }
89
116
  if (i < expr.expressions.length) {
90
117
  const exprPathIndex = exprPath.get('expressions')[i];
91
118
  if (!exprPathIndex.isExpression()) {
92
- result.errors.push('Expression is not a valid expression');
119
+ result.errors.push(INVALID_EXPRESSION);
93
120
  return result;
94
121
  }
95
122
  const expressionResult = flattenExpressionToParts(exprPathIndex);
96
- result.parts.push(...expressionResult.parts);
123
+ appendParts(result.parts, expressionResult.parts);
97
124
  result.errors.push(...expressionResult.errors);
98
125
  }
99
126
  }
@@ -103,12 +130,19 @@ function flattenExpressionToParts(exprPath) {
103
130
  if (t.isBinaryExpression(expr) && expr.operator === '+') {
104
131
  const leftPath = exprPath.get('left');
105
132
  if (!leftPath.isExpression()) {
106
- return { parts: [], errors: ['Expression is not a valid expression'] };
133
+ return { parts: [], errors: [INVALID_EXPRESSION] };
107
134
  }
108
135
  const { parts: leftParts, errors: leftErrors } = flattenExpressionToParts(leftPath);
109
- const { parts: rightParts, errors: rightErrors } = flattenExpressionToParts(exprPath.get('right'));
136
+ const rightPath = exprPath.get('right');
137
+ if (!rightPath.isExpression()) {
138
+ return { parts: [], errors: [INVALID_EXPRESSION] };
139
+ }
140
+ const { parts: rightParts, errors: rightErrors } = flattenExpressionToParts(rightPath);
141
+ const parts = [];
142
+ appendParts(parts, leftParts);
143
+ appendParts(parts, rightParts);
110
144
  return {
111
- parts: [...leftParts, ...rightParts],
145
+ parts,
112
146
  errors: [...leftErrors, ...rightErrors],
113
147
  };
114
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flattenExpressionToParts.js","sourceRoot":"","sources":["../../../src/utils/string-expressions/flattenExpressionToParts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flattenExpressionToParts.js","sourceRoot":"","sources":["../../../src/utils/string-expressions/flattenExpressionToParts.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,20 @@
1
1
  import * as t from '@babel/types';
2
2
  import type { NodePath } from '@babel/traverse';
3
+ import { type FlattenExpressionError } from './flattenExpressionToParts';
4
+ export type ResolveStaticExpressionError = FlattenExpressionError | {
5
+ kind: 'dynamic-expression';
6
+ message: string;
7
+ };
3
8
  /**
4
- * Attempt to resolve an expression to a static string at compile time.
9
+ * Attempt to resolve an expression to static string values at compile time.
5
10
  * Handles string literals, template literals, binary '+' concatenation,
6
11
  * nested combinations, and numeric/boolean/null literals coerced to string.
7
12
  *
8
- * Returns the resolved string, or undefined if the expression contains
9
- * any dynamic content (variables, function calls, etc.).
13
+ * Returns all resolved values, or undefined if the expression contains
14
+ * dynamic or derive content.
10
15
  */
11
16
  export declare function resolveStaticExpression(exprPath: NodePath<t.Expression>): {
12
- errors: string[];
13
- value?: string;
17
+ errors: ResolveStaticExpressionError[];
18
+ values?: string[];
14
19
  };
15
20
  //# sourceMappingURL=resolveStaticExpression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveStaticExpression.d.ts","sourceRoot":"","sources":["../../../src/utils/string-expressions/resolveStaticExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgBA"}
1
+ {"version":3,"file":"resolveStaticExpression.d.ts","sourceRoot":"","sources":["../../../src/utils/string-expressions/resolveStaticExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AAGpC,MAAM,MAAM,4BAA4B,GACpC,sBAAsB,GACtB;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAON;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;IACzE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAqBA"}
@@ -2,29 +2,39 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveStaticExpression = resolveStaticExpression;
4
4
  const flattenExpressionToParts_1 = require("./flattenExpressionToParts");
5
+ const multiply_1 = require("../multiplication/multiply");
6
+ const DYNAMIC_EXPRESSION_ERROR = {
7
+ kind: 'dynamic-expression',
8
+ message: 'Expression is not a static string',
9
+ };
5
10
  /**
6
- * Attempt to resolve an expression to a static string at compile time.
11
+ * Attempt to resolve an expression to static string values at compile time.
7
12
  * Handles string literals, template literals, binary '+' concatenation,
8
13
  * nested combinations, and numeric/boolean/null literals coerced to string.
9
14
  *
10
- * Returns the resolved string, or undefined if the expression contains
11
- * any dynamic content (variables, function calls, etc.).
15
+ * Returns all resolved values, or undefined if the expression contains
16
+ * dynamic or derive content.
12
17
  */
13
18
  function resolveStaticExpression(exprPath) {
14
19
  const { parts, errors } = (0, flattenExpressionToParts_1.flattenExpressionToParts)(exprPath);
15
20
  if (errors.length > 0)
16
21
  return { errors };
17
- let value = '';
18
- for (const part of parts) {
19
- // Signal derive by returning undefined
20
- if (part.type === 'derive') {
21
- return { errors: [], value: undefined };
22
+ const variants = (0, multiply_1.multiply)(parts);
23
+ const values = [];
24
+ for (const variant of variants) {
25
+ let value = '';
26
+ for (const part of variant) {
27
+ // Signal derive by returning undefined
28
+ if (part.type === 'derive') {
29
+ return { errors: [], values: undefined };
30
+ }
31
+ else if (part.type !== 'static') {
32
+ return { errors: [DYNAMIC_EXPRESSION_ERROR] };
33
+ }
34
+ value += part.value;
22
35
  }
23
- else if (part.type !== 'static') {
24
- return { errors: ['Expression is not a static string'] };
25
- }
26
- value += part.value;
36
+ values.push(value);
27
37
  }
28
- return { errors: [], value };
38
+ return { errors: [], values };
29
39
  }
30
40
  //# sourceMappingURL=resolveStaticExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveStaticExpression.js","sourceRoot":"","sources":["../../../src/utils/string-expressions/resolveStaticExpression.ts"],"names":[],"mappings":";;AAYA,0DAmBC;AA7BD,yEAAsE;AAEtE;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,QAAgC;IAItE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAEzC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uCAAuC;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,CAAC,mCAAmC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"resolveStaticExpression.js","sourceRoot":"","sources":["../../../src/utils/string-expressions/resolveStaticExpression.ts"],"names":[],"mappings":";;AA4BA,0DAwBC;AAlDD,yEAGoC;AACpC,yDAAsD;AAStD,MAAM,wBAAwB,GAAiC;IAC7D,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,mCAAmC;CAC7C,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,QAAgC;IAItE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,uCAAuC;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,EAAE,MAAM,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAChD,CAAC;YACD,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import * as t from '@babel/types';
2
+ import type { NodePath } from '@babel/traverse';
2
3
  /**
3
- * Given an object expression validates and extracts children property
4
+ * Given an object expression path validates and extracts children property
4
5
  * This is only for use as children of <T> components
5
6
  */
6
- export declare function validateChildrenPropertyFromObjectExpression(args: t.ObjectExpression): {
7
+ export declare function validateChildrenPropertyFromObjectExpression(argsPath: NodePath<t.ObjectExpression>): {
7
8
  errors: string[];
8
- value?: t.Expression;
9
+ value?: NodePath<t.Expression>;
9
10
  };
10
11
  //# sourceMappingURL=validateChildrenFromObjectExpression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateChildrenFromObjectExpression.d.ts","sourceRoot":"","sources":["../../../src/utils/validation/validateChildrenFromObjectExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC;;;GAGG;AACH,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,CAAC,CAAC,gBAAgB,GACvB;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;CACtB,CAyBA"}
1
+ {"version":3,"file":"validateChildrenFromObjectExpression.d.ts","sourceRoot":"","sources":["../../../src/utils/validation/validateChildrenFromObjectExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD;;;GAGG;AACH,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GACrC;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CAChC,CA2BA"}
@@ -1,61 +1,28 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.validateChildrenPropertyFromObjectExpression = validateChildrenPropertyFromObjectExpression;
37
- const t = __importStar(require("@babel/types"));
38
4
  const constants_1 = require("../constants/gt/constants");
39
5
  const getObjectPropertyFromObjectExpression_1 = require("../parsing/getObjectPropertyFromObjectExpression");
40
6
  /**
41
- * Given an object expression validates and extracts children property
7
+ * Given an object expression path validates and extracts children property
42
8
  * This is only for use as children of <T> components
43
9
  */
44
- function validateChildrenPropertyFromObjectExpression(args) {
10
+ function validateChildrenPropertyFromObjectExpression(argsPath) {
45
11
  const errors = [];
46
12
  // Get the children property
47
- const childrenObjectProperty = (0, getObjectPropertyFromObjectExpression_1.getObjectPropertyFromObjectExpression)(args, 'children');
48
- if (!childrenObjectProperty) {
13
+ const childrenObjectPropertyPath = (0, getObjectPropertyFromObjectExpression_1.getObjectPropertyPathFromObjectExpression)(argsPath, 'children');
14
+ if (!childrenObjectPropertyPath) {
49
15
  return { errors, value: undefined };
50
16
  }
51
- if (!t.isObjectProperty(childrenObjectProperty)) {
17
+ if (!childrenObjectPropertyPath.isObjectProperty()) {
52
18
  errors.push(`The children property of the <${constants_1.GT_COMPONENT_TYPES.T}> component must be an object property`);
53
19
  return { errors };
54
20
  }
55
- if (!t.isExpression(childrenObjectProperty.value)) {
21
+ const valuePath = childrenObjectPropertyPath.get('value');
22
+ if (!valuePath.isExpression()) {
56
23
  errors.push(`The children properties of the <${constants_1.GT_COMPONENT_TYPES.T}> component must be an expression`);
57
24
  return { errors };
58
25
  }
59
- return { errors, value: childrenObjectProperty.value };
26
+ return { errors, value: valuePath };
60
27
  }
61
28
  //# sourceMappingURL=validateChildrenFromObjectExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateChildrenFromObjectExpression.js","sourceRoot":"","sources":["../../../src/utils/validation/validateChildrenFromObjectExpression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oGA8BC;AAtCD,gDAAkC;AAClC,yDAA+D;AAC/D,4GAAyG;AAEzG;;;GAGG;AACH,SAAgB,4CAA4C,CAC1D,IAAwB;IAKxB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,4BAA4B;IAC5B,MAAM,sBAAsB,GAAG,IAAA,6EAAqC,EAClE,IAAI,EACJ,UAAU,CACX,CAAC;IACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CACT,iCAAiC,8BAAkB,CAAC,CAAC,wCAAwC,CAC9F,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CACT,mCAAmC,8BAAkB,CAAC,CAAC,mCAAmC,CAC3F,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"validateChildrenFromObjectExpression.js","sourceRoot":"","sources":["../../../src/utils/validation/validateChildrenFromObjectExpression.ts"],"names":[],"mappings":";;AASA,oGAgCC;AAvCD,yDAA+D;AAC/D,4GAA6G;AAE7G;;;GAGG;AACH,SAAgB,4CAA4C,CAC1D,QAAsC;IAKtC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,4BAA4B;IAC5B,MAAM,0BAA0B,GAAG,IAAA,iFAAyC,EAC1E,QAAQ,EACR,UAAU,CACX,CAAC;IACF,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CACT,iCAAiC,8BAAkB,CAAC,CAAC,wCAAwC,CAC9F,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,mCAAmC,8BAAkB,CAAC,CAAC,mCAAmC,CAC3F,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAmC,EAAE,CAAC;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/compiler",
3
- "version": "1.3.17",
3
+ "version": "1.3.19",
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",
@@ -24,14 +24,13 @@
24
24
  "@babel/traverse": "^7.23.0",
25
25
  "@babel/types": "^7.23.0",
26
26
  "unplugin": "^2.3.10",
27
- "generaltranslation": "8.2.10"
27
+ "generaltranslation": "8.2.11"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/babel__core": "^7.20.0",
31
31
  "@types/babel__generator": "^7.6.0",
32
32
  "@types/babel__traverse": "^7.20.0",
33
33
  "@types/node": "^20.0.0",
34
- "eslint": "^8.0.0",
35
34
  "prettier": "^3.0.0",
36
35
  "typescript": "^5.0.0",
37
36
  "vitest": "^1.0.0"
@@ -53,8 +52,6 @@
53
52
  "release:alpha": "pnpm run build:clean && pnpm publish --tag alpha",
54
53
  "release:beta": "pnpm run build:clean && pnpm publish --tag beta",
55
54
  "release:latest": "pnpm run build:clean && pnpm publish --tag latest",
56
- "lint": "eslint \"src/**/*.{js,ts,tsx}\"",
57
- "lint:fix": "eslint \"src/**/*.{js,ts,tsx}\" --fix",
58
55
  "test": "vitest run",
59
56
  "test:watch": "vitest"
60
57
  }
@@ -1,8 +0,0 @@
1
- import { ScopeTracker } from '../../state/ScopeTracker';
2
- import * as t from '@babel/types';
3
- /**
4
- * Track labeled statement:
5
- * - T: while (true) { break T; }
6
- */
7
- export declare function trackLabeledStatement(scopeTracker: ScopeTracker, labeledStatement: t.LabeledStatement): void;
8
- //# sourceMappingURL=trackLabeledStatement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trackLabeledStatement.d.ts","sourceRoot":"","sources":["../../../src/transform/tracking/trackLabeledStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,GACnC,IAAI,CAGN"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.trackLabeledStatement = trackLabeledStatement;
4
- const trackOverridingVariable_1 = require("./trackOverridingVariable");
5
- /**
6
- * Track labeled statement:
7
- * - T: while (true) { break T; }
8
- */
9
- function trackLabeledStatement(scopeTracker, labeledStatement) {
10
- const label = labeledStatement.label.name;
11
- (0, trackOverridingVariable_1.trackOverridingVariable)(label, scopeTracker);
12
- }
13
- //# sourceMappingURL=trackLabeledStatement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trackLabeledStatement.js","sourceRoot":"","sources":["../../../src/transform/tracking/trackLabeledStatement.ts"],"names":[],"mappings":";;AAQA,sDAMC;AAZD,uEAAoE;AAEpE;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,YAA0B,EAC1B,gBAAoC;IAEpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,IAAA,iDAAuB,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateTranslationFunctionCallback.d.ts","sourceRoot":"","sources":["../../../src/transform/validation/validateTranslationFunctionCallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAKlC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EACxC,KAAK,EAAE,cAAc,GACpB;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAiHA;AAED;;;GAGG;AAEH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,GAAG;IAC5E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAGA;AAED;;;GAGG;AAEH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC,cAAc,GAAG;IACxE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAGA;AAyHD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,CAAC,CAAC,UAAU,EAClB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,EAAE,GACf;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoFtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateTranslationFunctionCallback.js","sourceRoot":"","sources":["../../../src/transform/validation/validateTranslationFunctionCallback.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,sDA6HC;AAOD,0EAKC;AAOD,kEAKC;AA4HD,wCAwFC;AA1XD,gDAAkC;AAClC,kEAG4C;AAE5C,iGAA8F;AAC9F,oGAAiG;AACjG,8DAA2D;AAG3D;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,YAAwC,EACxC,KAAqB;IAWrB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,qDAAqD;IACrD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CACT,+DAA+D,CAChE,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,oIAAoI,CACrI,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,4FAA4F;IAC5F,MAAM,wBAAwB,GAAG,IAAA,iDAAuB,EACtD,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAA2B,CAC3D,CAAC;IACF,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC;IAE/C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChE,gFAAgF;QAChF,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CACT,oIAAoI,CACrI,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,iGAAiG;IACjG,gEAAgE;IAChE,kGAAkG;IAClG,0BAA0B;IAC1B,MAAM,oBAAoB,GACxB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC;IAE7D,2BAA2B;IAC3B,IAAI,OAA2B,CAAC;IAChC,IAAI,EAAsB,CAAC;IAC3B,IAAI,IAAwB,CAAC;IAC7B,IAAI,QAA4B,CAAC;IACjC,IAAI,MAA0B,CAAC;IAC/B,IAAI,gBAAqC,CAAC;IAC1C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM;YACN,OAAO;YACP,gBAAgB,EAAE,oBAAoB,IAAI,SAAS;SACpD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAClC,WAAW,CACZ,CAAC,CAAC,CAAiC,CAAC;QACrC,MAAM,eAAe,GAAG,oCAAoC,CAC1D,WAAW,EACX,kCAAsB,CAAC,QAAQ,EAC/B,kBAAkB,EAClB,KAAK,CACN,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,GAAG,eAAe,CAAC,KAA2B,CAAC;QACtD,gBAAgB;YACd,oBAAoB,IAAI,eAAe,CAAC,mBAAmB,CAAC;QAC9D,MAAM,UAAU,GAAG,oCAAoC,CACrD,WAAW,EACX,kCAAsB,CAAC,GAAG,EAC1B,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;QACtB,MAAM,gBAAgB,GAAG,oCAAoC,CAC3D,WAAW,EACX,kCAAsB,CAAC,SAAS,EAChC,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAClC,MAAM,YAAY,GAAG,oCAAoC,CACvD,WAAW,EACX,kCAAsB,CAAC,MAAM,EAC7B,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;QAC1B,MAAM,cAAc,GAAG,oCAAoC,CACzD,WAAW,EACX,kCAAsB,CAAC,OAAO,EAC9B,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,EAAE;QACF,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,0CAA0C;AAC1C,SAAgB,+BAA+B,CAAC,SAA2B;IAGzE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,0CAA0C;AAC1C,SAAgB,2BAA2B,CAAC,SAA2B;IAGrE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AA4BD,SAAS,oCAAoC,CAC3C,WAAyC,EACzC,IAAY,EACZ,IAA8C,EAC9C,KAAsB;IAMtB,MAAM,MAAM,GAIR,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnB,IAAI,SAAiD,CAAC;IACtD,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/D,SAAS,GAAG,YAAY,CAAC;YACzB,MAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACnE,SAAS,GAAG,YAAY,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;IAE7B,iBAAiB;IACjB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,qEAAqE,IAAI,0CAA0C,CACpH,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IAChB,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAA,iDAAuB,EACtC,SAAS,CAAC,GAAG,CAAC,OAAO,CAA2B,CACjD,CAAC;QACF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,uEAAuE;YACvE,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAClB,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,iCAAiC,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,CAAC,CAAC,kCAAkC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iCAAiC,CAAC,IAAkB;;IAI3D,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC,oCAAoC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,IAAkB,EAClB,KAAqB,EACrB,MAAgB;IAEhB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,mCAAmC;QACnC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAA,yDAA2B,EAAC,IAAI,CAAC,CAAC;QAC1E,kCAAkC;QAClC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAA,uCAAkB,EAChD,KAAK,CAAC,YAAY,EAClB,aAAa,EACb,YAAY,CACb,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,2DAA2D;QAC3D,IACE,IAAI,KAAK,oBAAoB;YAC7B,CAAC,aAAa,KAAK,8BAAkB,CAAC,aAAa;gBACjD,aAAa,KAAK,8BAAkB,CAAC,MAAM,CAAC,EAC9C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAClE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,mGAAmG;QACnG,+BAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CACpB,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;YAC1B,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAChE,EACD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,iFAAiF;IACjF,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAS,+BAA+B,CACtC,IAAsB,EACtB,MAAgB;IAIhB,4CAA4C;IAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAEjC,sCAAsC;IACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,4DAA4D;QAC5D,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,sCAAsC;QACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,kCAAkC,CAAC,IAAkB;IAI5D,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,wDAAwD;QACxD,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,sBAAsB;IACtB,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,MAAM,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,iBAAiB;IACjB,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,CAAC,oCAAoC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAC/C,CAAC"}
@@ -1,6 +0,0 @@
1
- import * as t from '@babel/types';
2
- /**
3
- * Get the value of an attribute, only if it's a string literal
4
- */
5
- export declare function getAttr(element: t.JSXElement, name: string): string | null;
6
- //# sourceMappingURL=getAttr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAttr.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/getAttr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoC1E"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getAttr = getAttr;
37
- const t = __importStar(require("@babel/types"));
38
- /**
39
- * Get the value of an attribute, only if it's a string literal
40
- */
41
- function getAttr(element, name) {
42
- var _a;
43
- // Find the attribute
44
- const attr = element.openingElement.attributes.find((attr) => t.isJSXAttribute(attr) &&
45
- t.isJSXIdentifier(attr.name) &&
46
- attr.name.name === name);
47
- // If the attribute doesn't exist or doesn't have a value, return null
48
- if (!attr || !attr.value) {
49
- return null;
50
- }
51
- // attr="string"
52
- if (t.isStringLiteral(attr.value)) {
53
- return attr.value.value;
54
- }
55
- // attr={string}
56
- if (t.isJSXExpressionContainer(attr.value)) {
57
- // attr={"string"}
58
- if (t.isStringLiteral(attr.value.expression)) {
59
- return attr.value.expression.value;
60
- }
61
- // attr={`string`}
62
- if (t.isTemplateLiteral(attr.value.expression)) {
63
- const templateLiteral = attr.value.expression;
64
- if (templateLiteral.expressions.length === 0) {
65
- return ((_a = templateLiteral.quasis[0]) === null || _a === void 0 ? void 0 : _a.value.cooked) || null;
66
- }
67
- }
68
- }
69
- return null;
70
- }
71
- //# sourceMappingURL=getAttr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAttr.js","sourceRoot":"","sources":["../../../src/utils/parsing/getAttr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAoCC;AAxCD,gDAAkC;AAClC;;GAEG;AACH,SAAgB,OAAO,CAAC,OAAqB,EAAE,IAAY;;IACzD,qBAAqB;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CACI,CAAC;IAEhC,sEAAsE;IACtE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,kBAAkB;QAClB,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC9C,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAA,MAAA,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,MAAM,KAAI,IAAI,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +0,0 @@
1
- import * as t from '@babel/types';
2
- /**
3
- * Given an expression, return the object property
4
- */
5
- export declare function getStringLiteralFromObjectExpression(objExpr: t.ObjectExpression, name: string): string | undefined;
6
- //# sourceMappingURL=getStringLiteralFromObjectExpression.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getStringLiteralFromObjectExpression.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/getStringLiteralFromObjectExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,CAAC,CAAC,gBAAgB,EAC3B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAsBpB"}