@generaltranslation/gt-next-lint 14.0.25 → 14.0.27

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.
@@ -1 +1 @@
1
- {"version":3,"file":"no-dynamic-jsx.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-jsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkBnC,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,UAyN/B,CAAC"}
1
+ {"version":3,"file":"no-dynamic-jsx.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-jsx.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAcnC,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,UAuO/B,CAAC"}
@@ -10,12 +10,9 @@
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.noDynamicJsx = void 0;
13
- const GT_MODULES = ['gt-next', 'gt-next/client', 'gt-next/server'];
13
+ const utils_1 = require("./utils");
14
14
  const TRANSLATION_COMPONENTS = ['T'];
15
15
  const VARIABLE_COMPONENTS = ['Var', 'DateTime', 'Num', 'Currency'];
16
- function isGTModule(source) {
17
- return GT_MODULES.includes(source);
18
- }
19
16
  function isTranslationComponent(name) {
20
17
  return TRANSLATION_COMPONENTS.includes(name);
21
18
  }
@@ -50,17 +47,26 @@ exports.noDynamicJsx = {
50
47
  },
51
48
  };
52
49
  function getElementName(node) {
53
- const name = node?.openingElement?.name;
54
- if (!name)
50
+ if (!(0, utils_1.isAstNode)(node) || !(0, utils_1.isAstNode)(node.openingElement))
51
+ return null;
52
+ const name = node.openingElement.name;
53
+ if (!(0, utils_1.isAstNode)(name))
55
54
  return null;
56
55
  if (name.type === 'JSXIdentifier') {
57
- return name.name;
56
+ return (0, utils_1.getNodeName)(name);
58
57
  }
59
58
  if (name.type === 'JSXMemberExpression') {
60
59
  const obj = name.object;
61
60
  const prop = name.property;
62
- if (obj?.type === 'JSXIdentifier' && prop?.type === 'JSXIdentifier') {
63
- return `${obj.name}.${prop.name}`;
61
+ if ((0, utils_1.isAstNode)(obj) &&
62
+ (0, utils_1.isAstNode)(prop) &&
63
+ obj.type === 'JSXIdentifier' &&
64
+ prop.type === 'JSXIdentifier') {
65
+ const objectName = (0, utils_1.getNodeName)(obj);
66
+ const propertyName = (0, utils_1.getNodeName)(prop);
67
+ return objectName && propertyName
68
+ ? `${objectName}.${propertyName}`
69
+ : null;
64
70
  }
65
71
  }
66
72
  return null;
@@ -84,8 +90,10 @@ exports.noDynamicJsx = {
84
90
  return false;
85
91
  }
86
92
  function isInsideJSXAttribute(node) {
93
+ if (!(0, utils_1.isAstNode)(node))
94
+ return false;
87
95
  // Walk up the AST to check if this expression is inside a JSX attribute
88
- let currentNode = node.parent;
96
+ let currentNode = (0, utils_1.isAstNode)(node.parent) ? node.parent : null;
89
97
  while (currentNode) {
90
98
  if (currentNode.type === 'JSXAttribute') {
91
99
  return true;
@@ -94,38 +102,40 @@ exports.noDynamicJsx = {
94
102
  if (currentNode.type === 'JSXElement') {
95
103
  return false;
96
104
  }
97
- currentNode = currentNode.parent;
105
+ currentNode = (0, utils_1.isAstNode)(currentNode.parent) ? currentNode.parent : null;
98
106
  }
99
107
  return false;
100
108
  }
101
- // Check if the node is a string literal or template literal
102
- function isStringLiteral(expression) {
103
- // For JSXExpressionContainer, check the expression inside
104
- return ((expression.type === 'Literal' &&
105
- typeof expression.value === 'string') ||
106
- (expression.type === 'TemplateLiteral' &&
107
- expression.expressions.length === 0) // No interpolation
108
- );
109
- }
110
109
  // Check if the node is a comment
111
110
  function isComment(expression) {
111
+ if (!(0, utils_1.isAstNode)(expression))
112
+ return false;
112
113
  return expression.type === 'Block' || expression.type === 'Line';
113
114
  }
114
115
  // Check if empty
115
116
  function isEmpty(expression) {
117
+ if (!(0, utils_1.isAstNode)(expression))
118
+ return false;
116
119
  return expression.type === 'JSXEmptyExpression';
117
120
  }
118
121
  return {
119
122
  // Track imports from GT-Next modules
120
123
  ImportDeclaration(node) {
124
+ if (!(0, utils_1.isAstNode)(node) || !(0, utils_1.isAstNode)(node.source))
125
+ return;
121
126
  if (node.source?.type === 'Literal' &&
122
127
  typeof node.source.value === 'string') {
123
128
  const source = node.source.value;
124
- if (isGTModule(source)) {
125
- for (const specifier of node.specifiers || []) {
129
+ if ((0, utils_1.isGTModule)(source)) {
130
+ const specifiers = Array.isArray(node.specifiers)
131
+ ? node.specifiers
132
+ : [];
133
+ for (const specifier of specifiers) {
134
+ if (!(0, utils_1.isAstNode)(specifier))
135
+ continue;
126
136
  if (specifier.type === 'ImportSpecifier') {
127
- const importedName = specifier.imported?.name || '';
128
- const localName = specifier.local?.name || '';
137
+ const importedName = (0, utils_1.getNodeName)(specifier.imported) || '';
138
+ const localName = (0, utils_1.getNodeName)(specifier.local) || '';
129
139
  if (isTranslationComponent(importedName)) {
130
140
  state.imports.translationComponents.add(localName);
131
141
  }
@@ -134,7 +144,7 @@ exports.noDynamicJsx = {
134
144
  }
135
145
  }
136
146
  else if (specifier.type === 'ImportNamespaceSpecifier') {
137
- const localName = specifier.local?.name || '';
147
+ const localName = (0, utils_1.getNodeName)(specifier.local) || '';
138
148
  state.imports.namespaceImports.add(localName);
139
149
  }
140
150
  }
@@ -143,10 +153,15 @@ exports.noDynamicJsx = {
143
153
  },
144
154
  // Track variable assignments from GT components
145
155
  VariableDeclarator(node) {
146
- if (node.id?.type === 'Identifier' &&
147
- node.init?.type === 'Identifier') {
148
- const varName = node.id.name;
149
- const assignedFrom = node.init.name;
156
+ if ((0, utils_1.isAstNode)(node) &&
157
+ (0, utils_1.isAstNode)(node.id) &&
158
+ (0, utils_1.isAstNode)(node.init) &&
159
+ node.id.type === 'Identifier' &&
160
+ node.init.type === 'Identifier') {
161
+ const varName = (0, utils_1.getNodeName)(node.id);
162
+ const assignedFrom = (0, utils_1.getNodeName)(node.init);
163
+ if (!varName || !assignedFrom)
164
+ return;
150
165
  if (state.imports.translationComponents.has(assignedFrom)) {
151
166
  state.imports.assignedTranslationComponents.add(varName);
152
167
  }
@@ -157,6 +172,8 @@ exports.noDynamicJsx = {
157
172
  },
158
173
  // Detect unwrapped dynamic content
159
174
  JSXExpressionContainer(node) {
175
+ if (!(0, utils_1.isAstNode)(node))
176
+ return;
160
177
  // Skip expressions inside JSX attributes (e.g., <Image width={16} />)
161
178
  if (isInsideJSXAttribute(node)) {
162
179
  return;
@@ -164,7 +181,7 @@ exports.noDynamicJsx = {
164
181
  // Skip expressions with just a string literal (e.g., {'Hello'})
165
182
  // Skip expressions with just a comment
166
183
  // Skip expressions with just an empty statement
167
- if ((node.expression && isStringLiteral(node.expression)) ||
184
+ if ((node.expression && (0, utils_1.isStringLiteral)(node.expression)) ||
168
185
  isComment(node.expression) ||
169
186
  isEmpty(node.expression)) {
170
187
  return;
@@ -173,7 +190,7 @@ exports.noDynamicJsx = {
173
190
  let inTranslationComponent = false;
174
191
  let inVariableComponent = false;
175
192
  // Walk up the AST to find parent JSX elements
176
- let currentNode = node.parent;
193
+ let currentNode = (0, utils_1.isAstNode)(node.parent) ? node.parent : null;
177
194
  while (currentNode) {
178
195
  if (currentNode.type === 'JSXElement') {
179
196
  const elementName = getElementName(currentNode);
@@ -193,12 +210,14 @@ exports.noDynamicJsx = {
193
210
  }
194
211
  }
195
212
  }
196
- currentNode = currentNode.parent;
213
+ currentNode = (0, utils_1.isAstNode)(currentNode.parent)
214
+ ? currentNode.parent
215
+ : null;
197
216
  }
198
217
  // Report if we're inside a translation component but not inside a variable component
199
218
  if (inTranslationComponent && !inVariableComponent) {
200
219
  context.report({
201
- node,
220
+ node: node,
202
221
  messageId: 'dynamicJsx',
203
222
  });
204
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-dynamic-jsx.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-jsx.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAIH,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AACnE,MAAM,sBAAsB,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAEnE,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAEY,QAAA,YAAY,GAAoB;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,oEAAoE;YACtE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,sFAAsF;SAC5F;QACD,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,UAAU,EACR,sHAAsH;SACzH;KACF;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG;YACZ,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE;gBACP,qBAAqB,EAAE,IAAI,GAAG,EAAU;gBACxC,kBAAkB,EAAE,IAAI,GAAG,EAAU;gBACrC,gBAAgB,EAAE,IAAI,GAAG,EAAU;gBACnC,6BAA6B,EAAE,IAAI,GAAG,EAAU;gBAChD,0BAA0B,EAAE,IAAI,GAAG,EAAU;aAC9C;SACF,CAAC;QAEF,SAAS,cAAc,CAAC,IAAS;YAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEvB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC3B,IAAI,GAAG,EAAE,IAAI,KAAK,eAAe,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;oBACpE,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,+BAA+B,CAAC,WAAmB;YAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;gBACrC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC7C,sBAAsB,CAAC,SAAS,CAAC,CAClC,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,4BAA4B,CAAC,WAAmB;YACvD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;gBACrC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC7C,mBAAmB,CAAC,SAAS,CAAC,CAC/B,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,oBAAoB,CAAC,IAAS;YACrC,wEAAwE;YACxE,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,OAAO,WAAW,EAAE,CAAC;gBACnB,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,sEAAsE;gBACtE,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4DAA4D;QAC5D,SAAS,eAAe,CAAC,UAAe;YACtC,0DAA0D;YAC1D,OAAO,CACL,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;gBAC5B,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC;gBACvC,CAAC,UAAU,CAAC,IAAI,KAAK,iBAAiB;oBACpC,UAAU,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,mBAAmB;aAC3D,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,SAAS,SAAS,CAAC,UAAe;YAChC,OAAO,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;QACnE,CAAC;QAED,iBAAiB;QACjB,SAAS,OAAO,CAAC,UAAe;YAC9B,OAAO,UAAU,CAAC,IAAI,KAAK,oBAAoB,CAAC;QAClD,CAAC;QAED,OAAO;YACL,qCAAqC;YACrC,iBAAiB,CAAC,IAAS;gBACzB,IACE,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS;oBAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,EACrC,CAAC;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAEjC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;4BAC9C,IAAI,SAAS,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gCACzC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;gCACpD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;gCAE9C,IAAI,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;oCACzC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gCACrD,CAAC;qCAAM,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;oCAC7C,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gCAClD,CAAC;4BACH,CAAC;iCAAM,IAAI,SAAS,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;gCACzD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;gCAC9C,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BAChD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,kBAAkB,CAAC,IAAS;gBAC1B,IACE,IAAI,CAAC,EAAE,EAAE,IAAI,KAAK,YAAY;oBAC9B,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,YAAY,EAChC,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC1D,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC3D,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC9D,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,sBAAsB,CAAC,IAAS;gBAC9B,sEAAsE;gBACtE,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,gEAAgE;gBAChE,uCAAuC;gBACvC,gDAAgD;gBAChD,IACE,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EACxB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,iGAAiG;gBACjG,IAAI,sBAAsB,GAAG,KAAK,CAAC;gBACnC,IAAI,mBAAmB,GAAG,KAAK,CAAC;gBAEhC,8CAA8C;gBAC9C,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC9B,OAAO,WAAW,EAAE,CAAC;oBACnB,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACtC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;wBAChD,IAAI,WAAW,EAAE,CAAC;4BAChB,wCAAwC;4BACxC,IACE,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;gCACjD,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC;gCACzD,4BAA4B,CAAC,WAAW,CAAC,EACzC,CAAC;gCACD,mBAAmB,GAAG,IAAI,CAAC;gCAC3B,MAAM,CAAC,kEAAkE;4BAC3E,CAAC;4BACD,2CAA2C;iCACtC,IACH,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC;gCACpD,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC;gCAC5D,+BAA+B,CAAC,WAAW,CAAC,EAC5C,CAAC;gCACD,sBAAsB,GAAG,IAAI,CAAC;4BAChC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;gBACnC,CAAC;gBAED,qFAAqF;gBACrF,IAAI,sBAAsB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACnD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,YAAY;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"no-dynamic-jsx.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-jsx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-dynamic-string.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-string.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkBnC,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,UA8LlC,CAAC"}
1
+ {"version":3,"file":"no-dynamic-string.d.ts","sourceRoot":"","sources":["../../src/rules/no-dynamic-string.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAcnC,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,UA6NlC,CAAC"}
@@ -8,11 +8,8 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.noDynamicString = void 0;
11
- const GT_MODULES = ['gt-next', 'gt-next/client', 'gt-next/server'];
11
+ const utils_1 = require("./utils");
12
12
  const TRANSLATION_FUNCTIONS = ['useGT', 'getGT'];
13
- function isGTModule(source) {
14
- return GT_MODULES.includes(source);
15
- }
16
13
  function isTranslationFunction(name) {
17
14
  return TRANSLATION_FUNCTIONS.includes(name);
18
15
  }
@@ -37,7 +34,7 @@ exports.noDynamicString = {
37
34
  // Track variables assigned from translation function calls
38
35
  const translationVariables = new Set();
39
36
  function trackImport(localName, importedName, source) {
40
- if (isGTModule(source) && isTranslationFunction(importedName)) {
37
+ if ((0, utils_1.isGTModule)(source) && isTranslationFunction(importedName)) {
41
38
  trackedFunctions.set(localName, {
42
39
  name: importedName,
43
40
  isTranslationFunction: true,
@@ -45,23 +42,20 @@ exports.noDynamicString = {
45
42
  }
46
43
  }
47
44
  function trackNamespaceImport(localName, source) {
48
- if (isGTModule(source)) {
45
+ if ((0, utils_1.isGTModule)(source)) {
49
46
  trackedFunctions.set(localName, {
50
47
  name: localName,
51
48
  isTranslationFunction: false, // It's a namespace, not directly callable
52
49
  });
53
50
  }
54
51
  }
55
- function isStringLiteral(node) {
56
- return ((node.type === 'Literal' && typeof node.value === 'string') ||
57
- (node.type === 'TemplateLiteral' && node.expressions.length === 0) // Template literal with no interpolation
58
- );
59
- }
60
52
  function validateTranslationCall(node) {
53
+ if (!(0, utils_1.isAstNode)(node) || !Array.isArray(node.arguments))
54
+ return;
61
55
  const firstArg = node.arguments[0];
62
56
  if (!firstArg)
63
57
  return; // No arguments
64
- if (!isStringLiteral(firstArg)) {
58
+ if (!(0, utils_1.isStringLiteral)(firstArg)) {
65
59
  context.report({
66
60
  node: firstArg,
67
61
  messageId: 'dynamicString',
@@ -69,9 +63,13 @@ exports.noDynamicString = {
69
63
  }
70
64
  }
71
65
  function handleCallExpression(node) {
66
+ if (!(0, utils_1.isAstNode)(node) || !(0, utils_1.isAstNode)(node.callee))
67
+ return;
72
68
  if (node.callee.type === 'Identifier') {
73
69
  // Direct function calls: t(), useGT(), etc.
74
- const functionName = node.callee.name;
70
+ const functionName = (0, utils_1.getNodeName)(node.callee);
71
+ if (!functionName)
72
+ return;
75
73
  if (trackedFunctions.has(functionName)) {
76
74
  const tracked = trackedFunctions.get(functionName);
77
75
  if (tracked.isTranslationFunction) {
@@ -85,8 +83,10 @@ exports.noDynamicString = {
85
83
  }
86
84
  else if (node.callee.type === 'MemberExpression') {
87
85
  // Member expressions: GT.tx(), namespace.function()
88
- const objectName = node.callee.object.name;
89
- const propertyName = node.callee.property.name;
86
+ const objectName = (0, utils_1.getNodeName)(node.callee.object);
87
+ const propertyName = (0, utils_1.getNodeName)(node.callee.property);
88
+ if (!objectName || !propertyName)
89
+ return;
90
90
  if (trackedFunctions.has(objectName) &&
91
91
  isTranslationFunction(propertyName)) {
92
92
  validateTranslationCall(node);
@@ -95,82 +95,119 @@ exports.noDynamicString = {
95
95
  }
96
96
  function handleAssignment(node) {
97
97
  // Track variables assigned from translation function calls
98
- if (node.type === 'VariableDeclarator' &&
98
+ if ((0, utils_1.isAstNode)(node) &&
99
+ node.type === 'VariableDeclarator' &&
100
+ (0, utils_1.isAstNode)(node.id) &&
99
101
  node.id.type === 'Identifier' &&
100
- node.init) {
102
+ (0, utils_1.isAstNode)(node.init)) {
101
103
  if (node.init.type === 'CallExpression') {
102
104
  const callExpression = node.init;
103
- if (callExpression.callee.type === 'Identifier') {
104
- const functionName = callExpression.callee.name;
105
+ if ((0, utils_1.isAstNode)(callExpression.callee) &&
106
+ callExpression.callee.type === 'Identifier') {
107
+ const functionName = (0, utils_1.getNodeName)(callExpression.callee);
108
+ if (!functionName)
109
+ return;
105
110
  if (trackedFunctions.has(functionName)) {
106
111
  const tracked = trackedFunctions.get(functionName);
107
112
  if (tracked.isTranslationFunction) {
108
113
  // This variable now holds a translation function
109
- translationVariables.add(node.id.name);
114
+ const variableName = (0, utils_1.getNodeName)(node.id);
115
+ if (variableName)
116
+ translationVariables.add(variableName);
110
117
  }
111
118
  }
112
119
  }
113
- else if (callExpression.callee.type === 'MemberExpression') {
120
+ else if ((0, utils_1.isAstNode)(callExpression.callee) &&
121
+ callExpression.callee.type === 'MemberExpression') {
114
122
  // Handle namespace calls like: const t = GT.useGT();
115
- const objectName = callExpression.callee.object.name;
116
- const propertyName = callExpression.callee.property.name;
117
- if (trackedFunctions.has(objectName) &&
123
+ const objectName = (0, utils_1.getNodeName)(callExpression.callee.object);
124
+ const propertyName = (0, utils_1.getNodeName)(callExpression.callee.property);
125
+ if (objectName &&
126
+ propertyName &&
127
+ trackedFunctions.has(objectName) &&
118
128
  isTranslationFunction(propertyName)) {
119
129
  // This variable now holds a translation function
120
- translationVariables.add(node.id.name);
130
+ const variableName = (0, utils_1.getNodeName)(node.id);
131
+ if (variableName)
132
+ translationVariables.add(variableName);
121
133
  }
122
134
  }
123
135
  }
124
136
  else if (node.init.type === 'AwaitExpression' &&
137
+ (0, utils_1.isAstNode)(node.init.argument) &&
125
138
  node.init.argument.type === 'CallExpression') {
126
139
  // Handle await getGT() case
127
140
  const callExpression = node.init.argument;
128
- if (callExpression.callee.type === 'Identifier') {
129
- const functionName = callExpression.callee.name;
141
+ if ((0, utils_1.isAstNode)(callExpression.callee) &&
142
+ callExpression.callee.type === 'Identifier') {
143
+ const functionName = (0, utils_1.getNodeName)(callExpression.callee);
144
+ if (!functionName)
145
+ return;
130
146
  if (trackedFunctions.has(functionName)) {
131
147
  const tracked = trackedFunctions.get(functionName);
132
148
  if (tracked.isTranslationFunction) {
133
149
  // This variable now holds a translation function (from awaited promise)
134
- translationVariables.add(node.id.name);
150
+ const variableName = (0, utils_1.getNodeName)(node.id);
151
+ if (variableName)
152
+ translationVariables.add(variableName);
135
153
  }
136
154
  }
137
155
  }
138
- else if (callExpression.callee.type === 'MemberExpression') {
156
+ else if ((0, utils_1.isAstNode)(callExpression.callee) &&
157
+ callExpression.callee.type === 'MemberExpression') {
139
158
  // Handle namespace calls like: const t = await GT.getGT();
140
- const objectName = callExpression.callee.object.name;
141
- const propertyName = callExpression.callee.property.name;
142
- if (trackedFunctions.has(objectName) &&
159
+ const objectName = (0, utils_1.getNodeName)(callExpression.callee.object);
160
+ const propertyName = (0, utils_1.getNodeName)(callExpression.callee.property);
161
+ if (objectName &&
162
+ propertyName &&
163
+ trackedFunctions.has(objectName) &&
143
164
  isTranslationFunction(propertyName)) {
144
165
  // This variable now holds a translation function (from awaited promise)
145
- translationVariables.add(node.id.name);
166
+ const variableName = (0, utils_1.getNodeName)(node.id);
167
+ if (variableName)
168
+ translationVariables.add(variableName);
146
169
  }
147
170
  }
148
171
  }
149
172
  else if (node.init.type === 'Identifier') {
150
173
  // Handle reassignment: const t = getTranslation;
151
- const assignedFrom = node.init.name;
152
- if (translationVariables.has(assignedFrom)) {
153
- translationVariables.add(node.id.name);
174
+ const assignedFrom = (0, utils_1.getNodeName)(node.init);
175
+ if (assignedFrom && translationVariables.has(assignedFrom)) {
176
+ const variableName = (0, utils_1.getNodeName)(node.id);
177
+ if (variableName)
178
+ translationVariables.add(variableName);
154
179
  }
155
180
  }
156
181
  }
157
182
  }
158
183
  return {
159
184
  ImportDeclaration(node) {
185
+ if (!(0, utils_1.isAstNode)(node) || !(0, utils_1.isAstNode)(node.source))
186
+ return;
160
187
  const source = node.source.value;
161
- if (!isGTModule(source))
188
+ if (typeof source !== 'string')
189
+ return;
190
+ if (!(0, utils_1.isGTModule)(source))
162
191
  return;
163
- for (const specifier of node.specifiers) {
192
+ const specifiers = Array.isArray(node.specifiers)
193
+ ? node.specifiers
194
+ : [];
195
+ for (const specifier of specifiers) {
196
+ if (!(0, utils_1.isAstNode)(specifier))
197
+ continue;
164
198
  if (specifier.type === 'ImportSpecifier') {
165
199
  // import { useGT, tx as serverTx } from 'gt-next'
166
- const importedName = specifier.imported.name;
167
- const localName = specifier.local.name;
168
- trackImport(localName, importedName, source);
200
+ const importedName = (0, utils_1.getNodeName)(specifier.imported);
201
+ const localName = (0, utils_1.getNodeName)(specifier.local);
202
+ if (importedName && localName) {
203
+ trackImport(localName, importedName, source);
204
+ }
169
205
  }
170
206
  else if (specifier.type === 'ImportNamespaceSpecifier') {
171
207
  // import * as GT from 'gt-next'
172
- const localName = specifier.local.name;
173
- trackNamespaceImport(localName, source);
208
+ const localName = (0, utils_1.getNodeName)(specifier.local);
209
+ if (localName)
210
+ trackNamespaceImport(localName, source);
174
211
  }
175
212
  }
176
213
  },
@@ -1 +1 @@
1
- {"version":3,"file":"no-dynamic-string.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-dynamic-string.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type AstNode = {
2
+ type: string;
3
+ [key: string]: unknown;
4
+ };
5
+ export declare function isAstNode(value: unknown): value is AstNode;
6
+ export declare function getNodeName(value: unknown): string | null;
7
+ export declare function isGTModule(source: string): boolean;
8
+ export declare function isStringLiteral(node: unknown): boolean;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAQtD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAstNode = isAstNode;
4
+ exports.getNodeName = getNodeName;
5
+ exports.isGTModule = isGTModule;
6
+ exports.isStringLiteral = isStringLiteral;
7
+ const GT_MODULES = ['gt-next', 'gt-next/client', 'gt-next/server'];
8
+ function isAstNode(value) {
9
+ return typeof value === 'object' && value !== null && 'type' in value;
10
+ }
11
+ function getNodeName(value) {
12
+ return isAstNode(value) && typeof value.name === 'string' ? value.name : null;
13
+ }
14
+ function isGTModule(source) {
15
+ return GT_MODULES.includes(source);
16
+ }
17
+ function isStringLiteral(node) {
18
+ if (!isAstNode(node))
19
+ return false;
20
+ return ((node.type === 'Literal' && typeof node.value === 'string') ||
21
+ (node.type === 'TemplateLiteral' &&
22
+ Array.isArray(node.expressions) &&
23
+ node.expressions.length === 0));
24
+ }
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/rules/utils.ts"],"names":[],"mappings":";;AAOA,8BAEC;AAED,kCAEC;AAED,gCAEC;AAED,0CAQC;AA3BD,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAOnE,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,eAAe,CAAC,IAAa;IAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;QAC3D,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB;YAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CACjC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/gt-next-lint",
3
- "version": "14.0.25",
3
+ "version": "14.0.27",
4
4
  "description": "ESLint plugin for General Translation Next.js integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -37,16 +37,16 @@
37
37
  "eslint": "^8.0.0 || ^9.0.0",
38
38
  "@typescript-eslint/eslint-plugin": "^8.0.0",
39
39
  "@typescript-eslint/parser": "^8.0.0",
40
- "gt-next": "6.16.25"
40
+ "gt-next": "6.16.27"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/eslint": "^8.56.0",
44
- "@types/node": "^20.0.0",
44
+ "@types/node": "^22.13.5",
45
45
  "@typescript-eslint/eslint-plugin": "^8.0.0",
46
46
  "@typescript-eslint/parser": "^8.0.0",
47
47
  "eslint": "^9.0.0",
48
- "typescript": "^5.0.0",
49
- "vitest": "^2.0.0"
48
+ "typescript": "^5.9.2",
49
+ "vitest": "^3.2.4"
50
50
  },
51
51
  "scripts": {
52
52
  "patch": "pnpm version patch",