jsxpression 0.2.4 → 0.3.0

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 (61) hide show
  1. package/lib/analyze/analysis-error.d.ts.map +1 -1
  2. package/lib/analyze/analysis-error.js +3 -1
  3. package/lib/analyze/analysis-error.js.map +1 -1
  4. package/lib/analyze/analysis-report.d.ts +146 -5
  5. package/lib/analyze/analysis-report.d.ts.map +1 -1
  6. package/lib/analyze/analysis-report.js.map +1 -1
  7. package/lib/analyze/data/data-access.d.ts.map +1 -1
  8. package/lib/analyze/data/data-access.js +22 -15
  9. package/lib/analyze/data/data-access.js.map +1 -1
  10. package/lib/analyze/data/method-calls.js +1 -1
  11. package/lib/analyze/data/method-calls.js.map +1 -1
  12. package/lib/analyze/data/utils.d.ts.map +1 -1
  13. package/lib/analyze/data/utils.js +27 -22
  14. package/lib/analyze/data/utils.js.map +1 -1
  15. package/lib/analyze/jsx/element-attributes.js +2 -2
  16. package/lib/analyze/jsx/element-attributes.js.map +1 -1
  17. package/lib/analyze/jsx/element-children.js +1 -1
  18. package/lib/analyze/jsx/element-children.js.map +1 -1
  19. package/lib/analyze/jsx/element-tags.js +1 -1
  20. package/lib/analyze/jsx/element-tags.js.map +1 -1
  21. package/lib/analyze/security/call-expressions.js +1 -1
  22. package/lib/analyze/security/call-expressions.js.map +1 -1
  23. package/lib/analyze/security/identifiers.js +6 -8
  24. package/lib/analyze/security/identifiers.js.map +1 -1
  25. package/lib/analyze/utils.d.ts.map +1 -1
  26. package/lib/analyze/utils.js +3 -2
  27. package/lib/analyze/utils.js.map +1 -1
  28. package/lib/builtins.js +1 -1
  29. package/lib/builtins.js.map +1 -1
  30. package/lib/codegen/schema/data-types.js +3 -6
  31. package/lib/codegen/schema/data-types.js.map +1 -1
  32. package/lib/codegen/schema/function-types.js +1 -1
  33. package/lib/codegen/schema/function-types.js.map +1 -1
  34. package/lib/codegen/schema/utils.d.ts.map +1 -1
  35. package/lib/codegen/schema/utils.js +6 -5
  36. package/lib/codegen/schema/utils.js.map +1 -1
  37. package/lib/compile/compile.js +11 -7
  38. package/lib/compile/compile.js.map +1 -1
  39. package/lib/jsx.js +1 -1
  40. package/lib/jsx.js.map +1 -1
  41. package/lib/parse/parse.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/analyze/analysis-error.ts +3 -1
  44. package/src/analyze/analysis-report.ts +2 -2
  45. package/src/analyze/analyze.test.ts +9 -0
  46. package/src/analyze/data/data-access.ts +22 -15
  47. package/src/analyze/data/method-calls.ts +1 -1
  48. package/src/analyze/data/utils.ts +29 -32
  49. package/src/analyze/jsx/element-attributes.ts +2 -2
  50. package/src/analyze/jsx/element-children.ts +1 -1
  51. package/src/analyze/jsx/element-tags.ts +1 -1
  52. package/src/analyze/security/call-expressions.ts +1 -1
  53. package/src/analyze/security/identifiers.ts +6 -8
  54. package/src/analyze/utils.ts +8 -7
  55. package/src/builtins.ts +1 -1
  56. package/src/codegen/schema/data-types.ts +3 -6
  57. package/src/codegen/schema/function-types.ts +1 -1
  58. package/src/codegen/schema/utils.ts +6 -5
  59. package/src/compile/compile.ts +11 -7
  60. package/src/jsx.ts +7 -7
  61. package/src/parse/parse.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile/compile.ts"],"names":[],"mappings":"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"}
package/lib/jsx.js CHANGED
@@ -20,6 +20,6 @@ export function isJsxText(value) {
20
20
  return value?.type === "JSXText";
21
21
  }
22
22
  export function isJsxLeafNode(value) {
23
- return value?.type === "JSXText" || isJsxEmptyExpression(value);
23
+ return value.type === "JSXText" || isJsxEmptyExpression(value);
24
24
  }
25
25
  //# sourceMappingURL=jsx.js.map
package/lib/jsx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAmGA,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAQ,KAAoB,EAAE,IAAI,KAAK,YAAY,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAQ,KAAqB,EAAE,IAAI,KAAK,aAAa,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAQ,KAAsB,EAAE,IAAI,KAAK,cAAc,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAQ,KAAgC,EAAE,IAAI,KAAK,wBAAwB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAQ,KAA4B,EAAE,IAAI,KAAK,oBAAoB,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAQ,KAAiB,EAAE,IAAI,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAQ,KAAiB,EAAE,IAAI,KAAK,SAAS,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAmGA,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAQ,KAAuC,EAAE,IAAI,KAAK,YAAY,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAQ,KAAwC,EAAE,IAAI,KAAK,aAAa,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAQ,KAAyC,EAAE,IAAI,KAAK,cAAc,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAQ,KAAmD,EAAE,IAAI,KAAK,wBAAwB,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAQ,KAA+C,EAAE,IAAI,KAAK,oBAAoB,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAQ,KAAoC,EAAE,IAAI,KAAK,SAAS,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parse/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzD,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7B,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI;YACf,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;YAEpE,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAEnD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,IAAK,KAAoB,CAAC,GAAG,KAAK,SAAS,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parse/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzD,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7B,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI;YACf,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;YAEpE,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAEnD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,IAAK,KAA6B,CAAC,GAAG,KAAK,SAAS,CAAC;AACpF,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jsxpression",
3
- "version": "0.2.4",
4
- "gitHead": "77f20d09adc543b090af1c98630edf15a1d5149d",
3
+ "version": "0.3.0",
4
+ "gitHead": "09174caac85ce546198a6aefad838b7dff393ea9",
5
5
  "description": "Validate and safely render JSX expressions",
6
6
  "license": "MIT",
7
7
  "author": "Divid AB <info@divid.se>",
@@ -3,7 +3,9 @@ import type { AnalysisReport } from "./analysis-report.js";
3
3
  // oxlint-disable-next-line functional/no-classes -- extends Error, which requires a class
4
4
  export class AnalysisError extends Error {
5
5
  static fromReport(report: AnalysisReport): AnalysisError {
6
- const message: string = report.errors.length === 1 ? report.errors[0].message : `Analysis failed (${report.errors.length} issues)`;
6
+ const errors = report.errors;
7
+ const firstError = errors[0];
8
+ const message = errors.length === 1 && firstError ? firstError.message : `Analysis failed (${errors.length} issues)`;
7
9
 
8
10
  return new AnalysisError(message, report);
9
11
  }
@@ -18,7 +18,7 @@ interface IssueDefinition {
18
18
  custom: boolean;
19
19
  }
20
20
 
21
- const ISSUES_DEFINITIONS: Record<string, IssueDefinition> = {
21
+ const ISSUES_DEFINITIONS = {
22
22
  VARIABLE_NOT_ALLOWED: {
23
23
  severity: 3,
24
24
  custom: true,
@@ -163,7 +163,7 @@ const ISSUES_DEFINITIONS: Record<string, IssueDefinition> = {
163
163
  severity: 3,
164
164
  custom: true,
165
165
  },
166
- } as const;
166
+ } as const satisfies Record<string, IssueDefinition>;
167
167
 
168
168
  export type IssueCode = keyof typeof ISSUES_DEFINITIONS;
169
169
 
@@ -99,6 +99,15 @@ describe("analyze - consolidated tests", () => {
99
99
  expect(result.hasErrors).toBe(true);
100
100
  expect(result.errors[0].message).toContain("Property 'user.profile.invalid' does not exist in schema");
101
101
  });
102
+
103
+ it("should report a missing intermediate property and continue analyzing other paths", () => {
104
+ const ast = parse("<Text>{user.missing.name}{user.profile.invalid}</Text>");
105
+ const result = analyze(ast, baseSchema);
106
+ expect(result.errors.map((error) => error.message)).toEqual([
107
+ "Property 'user.missing' does not exist in schema",
108
+ "Property 'user.profile.invalid' does not exist in schema",
109
+ ]);
110
+ });
102
111
  });
103
112
 
104
113
  describe("array access", () => {
@@ -22,8 +22,7 @@ export function analyzeDataAccess(ast: Program, schema: Schema, validationContex
22
22
  callee.type === "MemberExpression" &&
23
23
  !callee.computed &&
24
24
  callee.property.type === "Identifier" &&
25
- args.length > 0 &&
26
- args[0].type === "ArrowFunctionExpression"
25
+ args[0]?.type === "ArrowFunctionExpression"
27
26
  ) {
28
27
  const method = callee.property.name;
29
28
 
@@ -38,12 +37,12 @@ export function analyzeDataAccess(ast: Program, schema: Schema, validationContex
38
37
  const parameterTypes = new Map<string, PropertySchema>();
39
38
 
40
39
  // First parameter is always the array element
41
- if (arrowFunction.params[0].type === "Identifier") {
40
+ if (arrowFunction.params[0]?.type === "Identifier") {
42
41
  parameterTypes.set(arrowFunction.params[0].name, arrayElementType);
43
42
  }
44
43
 
45
44
  // For methods like reduce, second parameter might be index (number)
46
- if (arrowFunction.params.length > 1 && arrowFunction.params[1].type === "Identifier") {
45
+ if (arrowFunction.params[1]?.type === "Identifier") {
47
46
  parameterTypes.set(arrowFunction.params[1].name, { type: "number" });
48
47
  }
49
48
 
@@ -75,7 +74,7 @@ export function analyzeDataAccess(ast: Program, schema: Schema, validationContex
75
74
  MemberExpression(node) {
76
75
  if (isSimpleDataAccess(node, dataKeys)) {
77
76
  const path = extractPath(node);
78
- if (dataKeys.has(path[0])) {
77
+ if (path[0] !== undefined && dataKeys.has(path[0])) {
79
78
  dataPaths.add(path.join("."));
80
79
  }
81
80
  }
@@ -124,7 +123,7 @@ export function analyzeDataAccess(ast: Program, schema: Schema, validationContex
124
123
  if (isSimpleDataAccess(node, dataKeys)) {
125
124
  const path = extractPath(node);
126
125
 
127
- if (dataKeys.has(path[0])) {
126
+ if (path[0] !== undefined && dataKeys.has(path[0])) {
128
127
  const pathString = path.join(".");
129
128
 
130
129
  if (validatablePaths.has(pathString)) {
@@ -168,7 +167,7 @@ function getArrayElementTypeFromCall(
168
167
 
169
168
  if (isSimpleDataAccess(callee, dataKeys)) {
170
169
  const path = extractPath(callee);
171
- if (dataKeys.has(path[0])) {
170
+ if (path[0] !== undefined && dataKeys.has(path[0])) {
172
171
  const schemaPath = path.slice(0, -1); // Remove method name
173
172
  const arraySchema = getSchemaAtPath(schemaPath, schema);
174
173
 
@@ -185,11 +184,14 @@ function getArrayElementTypeFromCall(
185
184
  // e.g., ["group", "items"] or ["dept", "employees"]
186
185
  const paramName = objectPath[0];
187
186
  const propertyName = objectPath[1];
187
+ if (paramName === undefined || propertyName === undefined) {
188
+ return null;
189
+ }
188
190
 
189
191
  // Find the arrow function context that defines this parameter
190
192
  const parameterType = resolveParameterType(paramName, node, arrowFunctionContexts);
191
193
 
192
- if (parameterType?.type === "object" && parameterType.shape) {
194
+ if (parameterType?.type === "object") {
193
195
  const propertySchema = parameterType.shape[propertyName];
194
196
  if (propertySchema?.type === "array") {
195
197
  return getArrayElementType(propertySchema);
@@ -227,16 +229,21 @@ function isNodeInsideArrowFunction(targetNode: AnyNode, arrowFunction: ArrowFunc
227
229
  }
228
230
 
229
231
  function getSchemaAtPath(path: Array<string>, schema: Schema): PropertySchema | null | undefined {
230
- if (!schema.data || path.length === 0) {
232
+ const root = path[0];
233
+ if (!schema.data || root === undefined) {
231
234
  // oxlint-disable-next-line typescript/no-explicit-any -- this branch returns the raw schema.data record (not a PropertySchema) when no path segments remain; preserved as-is for behavior parity
232
235
  return schema.data as any;
233
236
  }
234
237
 
235
- let current = schema.data[path[0]];
238
+ let current = schema.data[root];
236
239
 
237
240
  for (let i = 1; i < path.length && current; i++) {
238
- if (current.type === "object" && current.shape) {
239
- current = current.shape[path[i]];
241
+ const prop = path[i];
242
+ if (prop === undefined) {
243
+ return undefined;
244
+ }
245
+ if (current.type === "object") {
246
+ current = current.shape[prop];
240
247
  } else {
241
248
  return null;
242
249
  }
@@ -257,7 +264,7 @@ function validateParameterAccess(
257
264
 
258
265
  const propertyName = node.property.name;
259
266
 
260
- if (paramType.type === "object" && paramType.shape) {
267
+ if (paramType.type === "object") {
261
268
  if (!paramType.shape[propertyName]) {
262
269
  analysisReport.addIssue(
263
270
  "INVALID_PARAMETER_ACCESS",
@@ -270,7 +277,7 @@ function validateParameterAccess(
270
277
  } else {
271
278
  analysisReport.addIssue(
272
279
  "INVALID_PARAMETER_ACCESS",
273
- `Cannot access property '${propertyName}' on ${paramType.type ?? "undefined"} type parameter '${(node.object as Identifier).name}'`,
280
+ `Cannot access property '${propertyName}' on ${paramType.type} type parameter '${(node.object as Identifier).name}'`,
274
281
  getNodeRange(node),
275
282
  validationContext.getSnapshot()
276
283
  );
@@ -278,7 +285,7 @@ function validateParameterAccess(
278
285
  }
279
286
 
280
287
  export function getArrayElementType(schema: ArrayPropertySchema): PropertySchema | null {
281
- return schema.shape || null;
288
+ return schema.shape;
282
289
  }
283
290
 
284
291
  function buildParentMap(ast: Program): Map<AnyNode, AnyNode | null> {
@@ -20,7 +20,7 @@ export function analyzeMethodCalls(ast: Program, schema: Schema, validationConte
20
20
 
21
21
  if (isSimpleDataAccess(callee, dataKeys)) {
22
22
  const path = extractPath(callee);
23
- if (dataKeys.has(path[0])) {
23
+ if (path[0] !== undefined && dataKeys.has(path[0])) {
24
24
  const schemaPath = path.slice(0, -1);
25
25
  if (schemaPath.length > 0) {
26
26
  validateSchemaPath(schemaPath, schema, analysisReport, callee, validationContext);
@@ -15,7 +15,7 @@ export function isSimpleDataAccess(node: MemberExpression, dataKeys: ReadonlySet
15
15
 
16
16
  let current: MemberExpression["object"] = node.object;
17
17
 
18
- while (current) {
18
+ for (;;) {
19
19
  if (current.type === "Identifier") {
20
20
  return dataKeys.has(current.name);
21
21
  }
@@ -33,8 +33,6 @@ export function isSimpleDataAccess(node: MemberExpression, dataKeys: ReadonlySet
33
33
  return false;
34
34
  }
35
35
  }
36
-
37
- return false;
38
36
  }
39
37
 
40
38
  export function extractPath(node: MemberExpression): Array<string> {
@@ -46,7 +44,7 @@ export function extractPath(node: MemberExpression): Array<string> {
46
44
 
47
45
  let current: MemberExpression["object"] = node.object;
48
46
 
49
- while (current) {
47
+ for (;;) {
50
48
  if (current.type === "Identifier") {
51
49
  path.unshift(current.name);
52
50
  break;
@@ -75,16 +73,21 @@ export function getAvailablePropsAtPath(path: Array<string>, depth: number, sche
75
73
  return Object.keys(schemaData);
76
74
  }
77
75
 
78
- let current: PropertySchema | undefined = schemaData[path[0]];
76
+ const root = path[0];
77
+ if (root === undefined) {
78
+ return [];
79
+ }
80
+ let current: PropertySchema | undefined = schemaData[root];
79
81
 
80
82
  for (let i = 1; i <= depth; i++) {
81
- if (current?.type !== "object" || !current.shape) {
83
+ const prop = path[i];
84
+ if (prop === undefined || current?.type !== "object") {
82
85
  return [];
83
86
  }
84
- current = current.shape[path[i]];
87
+ current = current.shape[prop];
85
88
  }
86
89
 
87
- if (current?.type === "object" && current.shape) {
90
+ if (current?.type === "object") {
88
91
  return Object.keys(current.shape);
89
92
  }
90
93
 
@@ -99,7 +102,8 @@ export function validateSchemaPath(
99
102
  validationContext: ValidationContext
100
103
  ): void {
101
104
  const schemaData = schema.data;
102
- if (!schemaData || path.length === 0) {
105
+ const root = path[0];
106
+ if (!schemaData || root === undefined) {
103
107
  analysisReport.addIssue(
104
108
  "INVALID_DATA_ACCESS",
105
109
  "Invalid data access - no schema data available",
@@ -110,12 +114,12 @@ export function validateSchemaPath(
110
114
  return;
111
115
  }
112
116
 
113
- let current = schemaData[path[0]];
117
+ let current = schemaData[root];
114
118
 
115
119
  if (!current) {
116
120
  analysisReport.addIssue(
117
121
  "INVALID_DATA_ACCESS",
118
- `Property '${path[0]}' does not exist in schema`,
122
+ `Property '${root}' does not exist in schema`,
119
123
  getNodeRange(node),
120
124
  validationContext.getSnapshot(),
121
125
  Object.keys(schemaData)
@@ -127,6 +131,9 @@ export function validateSchemaPath(
127
131
 
128
132
  for (let i = 1; i < path.length; i++) {
129
133
  const prop = path[i];
134
+ if (prop === undefined) {
135
+ return;
136
+ }
130
137
  const isElementAccess = elementAccessFlags[i - 1];
131
138
 
132
139
  if (current.type === "array") {
@@ -146,21 +153,10 @@ export function validateSchemaPath(
146
153
  return;
147
154
  }
148
155
 
149
- const elementType = current.shape || null;
150
-
151
- if (!elementType) {
152
- analysisReport.addIssue(
153
- "INVALID_DATA_ACCESS",
154
- `Cannot access property '${prop}' on unknown array element type`,
155
- getNodeRange(node),
156
- validationContext.getSnapshot(),
157
- getAvailableArrayMembers()
158
- );
159
- return;
160
- }
156
+ const elementType: PropertySchema = current.shape;
161
157
 
162
- if (elementType.type === "object" && elementType.shape) {
163
- const next = elementType.shape[prop];
158
+ if (elementType.type === "object") {
159
+ const next: PropertySchema | undefined = elementType.shape[prop];
164
160
 
165
161
  if (!next) {
166
162
  const paths = path.slice(0, i + 1);
@@ -214,7 +210,7 @@ export function validateSchemaPath(
214
210
 
215
211
  analysisReport.addIssue(
216
212
  "INVALID_DATA_ACCESS",
217
- `Cannot access property '${prop}' on ${elementType.type || "undefined"} type array element`,
213
+ `Cannot access property '${prop}' on ${elementType.type} type array element`,
218
214
  getNodeRange(node),
219
215
  validationContext.getSnapshot()
220
216
  );
@@ -237,10 +233,10 @@ export function validateSchemaPath(
237
233
  return;
238
234
  }
239
235
 
240
- if (current.type !== "object" || !current.shape) {
236
+ if (current.type !== "object") {
241
237
  analysisReport.addIssue(
242
238
  "INVALID_DATA_ACCESS",
243
- `Cannot access property '${prop}' on ${current.type || "undefined"} type`,
239
+ `Cannot access property '${prop}' on ${current.type} type`,
244
240
  getNodeRange(node),
245
241
  validationContext.getSnapshot()
246
242
  );
@@ -260,6 +256,7 @@ export function validateSchemaPath(
260
256
  validationContext.getSnapshot(),
261
257
  availableProps
262
258
  );
259
+ return;
263
260
  }
264
261
  }
265
262
  }
@@ -268,8 +265,8 @@ function getElementAccessFlags(node: MemberExpression, pathLength: number): Arra
268
265
  const flags = Array(pathLength).fill(false);
269
266
  const segments: Array<{ property: Expression | PrivateIdentifier; computed: boolean }> = [];
270
267
 
271
- let current: Expression | Super | undefined = node;
272
- while (current?.type === "MemberExpression") {
268
+ let current: Expression | Super = node;
269
+ while (current.type === "MemberExpression") {
273
270
  segments.unshift({ property: current.property, computed: current.computed });
274
271
  current = current.object;
275
272
  }
@@ -278,14 +275,14 @@ function getElementAccessFlags(node: MemberExpression, pathLength: number): Arra
278
275
  let lastWasComputedNumeric = false;
279
276
 
280
277
  for (const segment of segments) {
281
- if (segment.property?.type === "Identifier") {
278
+ if (segment.property.type === "Identifier") {
282
279
  schemaIndex += 1;
283
280
  if (schemaIndex < pathLength) {
284
281
  flags[schemaIndex] = lastWasComputedNumeric;
285
282
  }
286
283
  }
287
284
 
288
- if (segment.computed && segment.property?.type === "Literal" && typeof segment.property.value === "number") {
285
+ if (segment.computed && segment.property.type === "Literal" && typeof segment.property.value === "number") {
289
286
  lastWasComputedNumeric = true;
290
287
  } else {
291
288
  lastWasComputedNumeric = false;
@@ -11,7 +11,7 @@ export function analyzeElementAttributes(ast: Program, schema: Schema, validatio
11
11
 
12
12
  const localFunctionNames = new Set<string>();
13
13
  for (const stmt of ast.body) {
14
- if (stmt.type === "FunctionDeclaration" && stmt.id) {
14
+ if (stmt.type === "FunctionDeclaration") {
15
15
  localFunctionNames.add(stmt.id.name);
16
16
  }
17
17
  }
@@ -136,7 +136,7 @@ function getAttributeLiteralValue(attribute: JSXAttribute): string | number | bo
136
136
  value?: unknown;
137
137
  };
138
138
 
139
- if (expression?.type === "Literal") {
139
+ if (expression.type === "Literal") {
140
140
  return expression.value as string | number | boolean | null | undefined;
141
141
  }
142
142
  }
@@ -11,7 +11,7 @@ export function analyzeElementChildren(ast: Program, schema: Schema, validationC
11
11
 
12
12
  const localFunctionNames = new Set<string>();
13
13
  for (const stmt of ast.body) {
14
- if (stmt.type === "FunctionDeclaration" && stmt.id) {
14
+ if (stmt.type === "FunctionDeclaration") {
15
15
  localFunctionNames.add(stmt.id.name);
16
16
  }
17
17
  }
@@ -10,7 +10,7 @@ export function analyzeElementTags(ast: Program, schema: Schema, validationConte
10
10
 
11
11
  const localFunctionNames = new Set<string>();
12
12
  for (const stmt of ast.body) {
13
- if (stmt.type === "FunctionDeclaration" && stmt.id) {
13
+ if (stmt.type === "FunctionDeclaration") {
14
14
  localFunctionNames.add(stmt.id.name);
15
15
  }
16
16
  }
@@ -11,7 +11,7 @@ export function analyzeCallExpressions(ast: Program, schema: Schema, validationC
11
11
 
12
12
  const localFunctionNames = new Set<string>();
13
13
  for (const stmt of ast.body) {
14
- if (stmt.type === "FunctionDeclaration" && stmt.id) {
14
+ if (stmt.type === "FunctionDeclaration") {
15
15
  localFunctionNames.add(stmt.id.name);
16
16
  }
17
17
  }
@@ -108,13 +108,11 @@ function getFunctionLocalConsts(ast: Program): Map<FunctionDeclaration, Set<stri
108
108
  FunctionDeclaration(node) {
109
109
  const names = new Set<string>();
110
110
  const body = (node as FunctionDeclaration).body;
111
- if (body?.type === "BlockStatement") {
112
- for (const stmt of body.body) {
113
- if (stmt.type === "VariableDeclaration" && stmt.kind === "const") {
114
- for (const decl of stmt.declarations) {
115
- if (decl.id.type === "Identifier") {
116
- names.add(decl.id.name);
117
- }
111
+ for (const stmt of body.body) {
112
+ if (stmt.type === "VariableDeclaration" && stmt.kind === "const") {
113
+ for (const decl of stmt.declarations) {
114
+ if (decl.id.type === "Identifier") {
115
+ names.add(decl.id.name);
118
116
  }
119
117
  }
120
118
  }
@@ -174,7 +172,7 @@ function getTopLevelConstNames(ast: Program): Array<string> {
174
172
  function getTopLevelFunctionNames(ast: Program): Array<string> {
175
173
  const names: Array<string> = [];
176
174
  for (const stmt of ast.body) {
177
- if (stmt.type === "FunctionDeclaration" && stmt.id) {
175
+ if (stmt.type === "FunctionDeclaration") {
178
176
  names.push(stmt.id.name);
179
177
  }
180
178
  }
@@ -48,12 +48,11 @@ export function getAttributeSimilarityMatchers(invalid: string, available: Array
48
48
  export function getBestSimilarityMatcherSuggestion(invalid: string, available: Array<string>): string | null {
49
49
  const similarityMatchers = getElementSimilarityMatchers(invalid, available);
50
50
 
51
- if (similarityMatchers.length === 0) {
51
+ const best = similarityMatchers[0];
52
+ if (best === undefined) {
52
53
  return null;
53
54
  }
54
55
 
55
- const best = similarityMatchers[0];
56
-
57
56
  if (best.confidence > 0.6) {
58
57
  return best.suggestion;
59
58
  }
@@ -102,23 +101,25 @@ function levenshteinDistance(x: string, y: string): number {
102
101
 
103
102
  const matrix: Array<Array<number>> = [];
104
103
 
104
+ // Every indexed row and cell below is initialized before it is read.
105
+
105
106
  for (let i = 0; i <= y.length; i++) {
106
107
  matrix[i] = [i];
107
108
  }
108
109
 
109
110
  for (let j = 0; j <= x.length; j++) {
110
- matrix[0][j] = j;
111
+ matrix[0]![j] = j;
111
112
  }
112
113
 
113
114
  for (let i = 1; i <= y.length; i++) {
114
115
  for (let j = 1; j <= x.length; j++) {
115
116
  if (y.charAt(i - 1) === x.charAt(j - 1)) {
116
- matrix[i][j] = matrix[i - 1][j - 1];
117
+ matrix[i]![j] = matrix[i - 1]![j - 1]!;
117
118
  } else {
118
- matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
119
+ matrix[i]![j] = Math.min(matrix[i - 1]![j - 1]! + 1, matrix[i]![j - 1]! + 1, matrix[i - 1]![j]! + 1);
119
120
  }
120
121
  }
121
122
  }
122
123
 
123
- return matrix[y.length][x.length];
124
+ return matrix[y.length]![x.length]!;
124
125
  }
package/src/builtins.ts CHANGED
@@ -1083,7 +1083,7 @@ export function getBuiltins(): Record<string, BuiltinSchema> {
1083
1083
 
1084
1084
  export function getBuiltinGlobals(): Array<string> {
1085
1085
  // oxlint-disable-next-line typescript/no-unnecessary-boolean-literal-compare
1086
- return Object.keys(BUILTINS).filter((name) => BUILTINS[name].global === true);
1086
+ return Object.keys(BUILTINS).filter((name) => BUILTINS[name]?.global === true);
1087
1087
  }
1088
1088
 
1089
1089
  export function isAllowedOnArray(prop: string): boolean {
@@ -36,26 +36,23 @@ function generateNestedPropertyJSDoc(propertyName: string, propertySchema: Prope
36
36
  comments.push(desc);
37
37
  }
38
38
 
39
- let hasNestedProperties = false;
40
- if (propertySchema.type === "object" && propertySchema.shape) {
39
+ if (propertySchema.type === "object") {
41
40
  comments.push("");
42
41
  Object.entries(propertySchema.shape).forEach(([key, value]) => {
43
42
  if (value.description) {
44
43
  comments.push(`@property ${key} ${value.description}`);
45
- hasNestedProperties = true;
46
44
  }
47
45
  });
48
- } else if (propertySchema.type === "array" && propertySchema.shape.type === "object" && propertySchema.shape.shape) {
46
+ } else if (propertySchema.type === "array" && propertySchema.shape.type === "object") {
49
47
  comments.push("");
50
48
  Object.entries(propertySchema.shape.shape).forEach(([key, value]) => {
51
49
  if (value.description) {
52
50
  comments.push(`@property ${key} ${value.description}`);
53
- hasNestedProperties = true;
54
51
  }
55
52
  });
56
53
  }
57
54
 
58
- if (comments.length === 1 && !hasNestedProperties) {
55
+ if (comments.length === 1) {
59
56
  return `${indent}/** ${comments[0]} */\n`;
60
57
  }
61
58
 
@@ -7,7 +7,7 @@ export function declareFunctionTypes(schema: Schema): string {
7
7
  if (schema.functions) {
8
8
  Object.entries(schema.functions).forEach(([funcName, funcSchema]) => {
9
9
  const args = funcSchema.args ? funcSchema.args.map((arg) => `${arg.name}: ${mapSchemaTypeToTypeScript(arg.property)}`).join(", ") : "";
10
- const ret = funcSchema.ret ? mapSchemaTypeToTypeScript(funcSchema.ret) : "void";
10
+ const ret = mapSchemaTypeToTypeScript(funcSchema.ret);
11
11
  output += `function ${funcName}(${args}): ${ret};\n`;
12
12
  });
13
13
  }