ajsc 2.0.0 → 3.0.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 (36) hide show
  1. package/dist/JSONSchemaConverter.d.ts +4 -12
  2. package/dist/JSONSchemaConverter.js +135 -100
  3. package/dist/JSONSchemaConverter.js.map +1 -1
  4. package/dist/JSONSchemaConverter.test.js +195 -0
  5. package/dist/JSONSchemaConverter.test.js.map +1 -1
  6. package/dist/TypescriptBaseConverter.d.ts +29 -38
  7. package/dist/TypescriptBaseConverter.js +156 -85
  8. package/dist/TypescriptBaseConverter.js.map +1 -1
  9. package/dist/TypescriptConverter.d.ts +3 -6
  10. package/dist/TypescriptConverter.js +7 -107
  11. package/dist/TypescriptConverter.js.map +1 -1
  12. package/dist/TypescriptConverter.test.js +24 -0
  13. package/dist/TypescriptConverter.test.js.map +1 -1
  14. package/dist/TypescriptProcedureConverter.d.ts +6 -7
  15. package/dist/TypescriptProcedureConverter.js +19 -94
  16. package/dist/TypescriptProcedureConverter.js.map +1 -1
  17. package/dist/{TypescriptProceduresConverter.test.js → TypescriptProcedureConverter.test.js} +1 -2
  18. package/dist/TypescriptProcedureConverter.test.js.map +1 -0
  19. package/dist/types.d.ts +46 -6
  20. package/dist/utils/path-utils.test.js.map +1 -1
  21. package/package.json +6 -6
  22. package/dist/TypescriptProceduresConverter.test.js.map +0 -1
  23. package/src/JSONSchemaConverter.test.ts +0 -342
  24. package/src/JSONSchemaConverter.ts +0 -546
  25. package/src/Typebox.test.ts +0 -127
  26. package/src/TypescriptBaseConverter.ts +0 -190
  27. package/src/TypescriptConverter.test.ts +0 -399
  28. package/src/TypescriptConverter.ts +0 -189
  29. package/src/TypescriptProcedureConverter.ts +0 -180
  30. package/src/TypescriptProceduresConverter.test.ts +0 -1013
  31. package/src/index.ts +0 -4
  32. package/src/types.ts +0 -108
  33. package/src/utils/path-utils.test.ts +0 -102
  34. package/src/utils/path-utils.ts +0 -89
  35. package/src/utils/to-pascal-case.ts +0 -10
  36. /package/dist/{TypescriptProceduresConverter.test.d.ts → TypescriptProcedureConverter.test.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { JSONSchema7Definition } from "json-schema";
2
2
  import { ConverterOptions, IRNode, SignatureOccurrences } from "./types.js";
3
3
  /**
4
- * JSONSchemaConverter converts a JSON Schema (Draft07) into an
4
+ * JSONSchemaConverter converts a JSON Schema (Draft-07) into an
5
5
  * intermediate representation (IR) that can later be transformed
6
6
  * into target language code via a language plugin.
7
7
  *
@@ -13,16 +13,13 @@ export declare class JSONSchemaConverter {
13
13
  private ir;
14
14
  private rootSchema;
15
15
  private signatureOccurrences;
16
+ private resolving;
16
17
  get irNode(): IRNode;
17
18
  get signatureOccurrencesMap(): SignatureOccurrences;
18
19
  constructor(schema: JSONSchema7Definition, opts?: ConverterOptions | undefined);
19
20
  private calcObjSignatureOccurrences;
20
21
  /**
21
22
  * Recursively converts a JSON Schema definition into an IRNode.
22
- *
23
- * This method now handles $ref resolution (using the root schema),
24
- * combinators (oneOf, anyOf, allOf), as well as enums, const, objects,
25
- * arrays, and primitives.
26
23
  */
27
24
  private convertSchema;
28
25
  /**
@@ -39,7 +36,6 @@ export declare class JSONSchemaConverter {
39
36
  private convertToIR;
40
37
  private getNameFromPath;
41
38
  private getNextObjectSequence;
42
- private getParentNameFromPath;
43
39
  /**
44
40
  * Generates a unique signature for a schema.
45
41
  * Uses a stable JSON.stringify that sorts keys to ensure that
@@ -49,17 +45,13 @@ export declare class JSONSchemaConverter {
49
45
  private getTypeName;
50
46
  /**
51
47
  * Resolves a local $ref using the stored root schema.
52
- *
53
- * This method expects local references (starting with "#/") and uses a simple
54
- * JSON Pointer resolution algorithm.
55
48
  */
56
49
  private resolveRef;
57
50
  /**
58
51
  * Resolves a JSON Pointer (RFC 6901) within the given document.
59
- *
60
- * @param pointer A JSON Pointer string (e.g., "#/definitions/Foo" or "#/$defs/Bar")
61
- * @param document The root document object.
62
52
  */
63
53
  private resolvePointer;
64
54
  private simpleHash;
55
+ private applyMetadata;
56
+ private augmentWithApplicators;
65
57
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * JSONSchemaConverter converts a JSON Schema (Draft07) into an
2
+ * JSONSchemaConverter converts a JSON Schema (Draft-07) into an
3
3
  * intermediate representation (IR) that can later be transformed
4
4
  * into target language code via a language plugin.
5
5
  *
@@ -20,8 +20,10 @@ export class JSONSchemaConverter {
20
20
  // Keep track of the occurrences of each schema signature and the schema/property names
21
21
  // used to reference the signature.
22
22
  this.signatureOccurrences = new Map();
23
+ this.resolving = new Set();
24
+ // Step 1.2: shallow copy to avoid mutating caller's object
23
25
  if (typeof schema === "object") {
24
- schema.title = schema.title || "Root";
26
+ schema = { ...schema, title: schema.title || "Root" };
25
27
  }
26
28
  // Optionally validate the schema.
27
29
  if (this.opts?.validateSchema) {
@@ -33,9 +35,10 @@ export class JSONSchemaConverter {
33
35
  if (typeof resolvedSchema === "object") {
34
36
  this.rootSchema = resolvedSchema;
35
37
  }
38
+ // Reset cycle detection before conversion
39
+ this.resolving = new Set();
36
40
  // Convert the resolved schema to our intermediate representation.
37
41
  let ir = this.convertToIR(resolvedSchema);
38
- // add calculated signature occurrences by traversing the IR for all object types
39
42
  // Apply any custom IR transformation.
40
43
  if (this.opts?.transform) {
41
44
  ir = this.opts.transform(ir);
@@ -75,13 +78,9 @@ export class JSONSchemaConverter {
75
78
  }
76
79
  /**
77
80
  * Recursively converts a JSON Schema definition into an IRNode.
78
- *
79
- * This method now handles $ref resolution (using the root schema),
80
- * combinators (oneOf, anyOf, allOf), as well as enums, const, objects,
81
- * arrays, and primitives.
82
81
  */
83
82
  convertSchema(schema, ctx) {
84
- if (!schema) {
83
+ if (schema === undefined || schema === null) {
85
84
  // Return an unknown
86
85
  return {
87
86
  type: "null",
@@ -99,13 +98,29 @@ export class JSONSchemaConverter {
99
98
  };
100
99
  }
101
100
  else {
102
- throw new Error("Encountered JSON Schema 'false', which is not supported.");
101
+ // Step 1.6: A schema of 'false' rejects all values.
102
+ return {
103
+ type: "never",
104
+ path: ctx.path,
105
+ };
103
106
  }
104
107
  }
105
- // If the schema contains a $ref, resolve it.
108
+ // Step 1.4: If the schema contains a $ref, resolve it with cycle detection.
106
109
  if (schema.$ref) {
110
+ const ref = schema.$ref;
111
+ if (this.resolving.has(ref)) {
112
+ // Circular reference detected - return a placeholder
113
+ return {
114
+ type: "any",
115
+ path: ctx.path,
116
+ constraints: { circular: ref },
117
+ };
118
+ }
119
+ this.resolving.add(ref);
107
120
  const resolved = this.resolveRef(schema);
108
- return this.convertSchema(resolved, ctx);
121
+ const result = this.convertSchema(resolved, ctx);
122
+ this.resolving.delete(ref);
123
+ return result;
109
124
  }
110
125
  // Handle combinators.
111
126
  if (schema.oneOf) {
@@ -174,7 +189,7 @@ export class JSONSchemaConverter {
174
189
  if (schema.properties) {
175
190
  for (const key in schema.properties) {
176
191
  const propSchema = schema.properties[key];
177
- let child = this.convertSchema(propSchema, {
192
+ const child = this.convertSchema(propSchema, {
178
193
  path: ctx.path ? `${ctx.path}.${key}` : key,
179
194
  });
180
195
  // Mark the property as required if listed in the "required" array.
@@ -184,104 +199,97 @@ export class JSONSchemaConverter {
184
199
  node.properties[key] = child;
185
200
  }
186
201
  }
187
- if (schema.additionalProperties) {
188
- /**
189
- * Json-schema additionalProperties have unknown keys.
190
- * @example json-schema
191
- * {
192
- * "additionalProperties": {
193
- * "type": "object",
194
- * "properties": {
195
- * "profile": {
196
- * "type": "string"
197
- * }
198
- * },
199
- * "required": [
200
- * "profile"
201
- * ]
202
- * },
203
- * "type": "object",
204
- * "properties": {
205
- * "id": {
206
- * "type": "string"
207
- * }
208
- * },
209
- * "required": [
210
- * "id"
211
- * ]
212
- * }
213
- */
214
- node.additionalProperties = this.convertSchema(schema.additionalProperties, {
215
- // The "*" indicates an any/unknown key
216
- path: ctx.path ? `${ctx.path}.*` : "*",
217
- });
202
+ // Step 1.5: Fix additionalProperties: false silently ignored
203
+ if (schema.additionalProperties !== undefined) {
204
+ if (schema.additionalProperties === false) {
205
+ node.additionalProperties = false;
206
+ }
207
+ else if (schema.additionalProperties === true) {
208
+ node.additionalProperties = true;
209
+ }
210
+ else {
211
+ node.additionalProperties = this.convertSchema(schema.additionalProperties, {
212
+ path: ctx.path ? `${ctx.path}.*` : "*",
213
+ });
214
+ }
218
215
  }
216
+ // Step 1.8: Preserve pattern keys in patternProperties
219
217
  if (schema.patternProperties) {
220
- /**
221
- * Json-schema patternProperties are not directly supported in most languages.
222
- * We mark each property key as
223
- * @example json-schema
224
- * {
225
- * "type": "object",
226
- * "patternProperties": {
227
- * "^(.*)$": {
228
- * "type": "object",
229
- * "properties": {
230
- * "name": {
231
- * "type": "string"
232
- * },
233
- * "email": {
234
- * "type": "string"
235
- * }
236
- * },
237
- * "required": [
238
- * "name",
239
- * "email"
240
- * ]
241
- * }
242
- * }
243
- * }
244
- */
245
- const propertySchemas = Object.values(schema.patternProperties);
246
- if (propertySchemas.length > 1) {
247
- // if multiple patternProperties, treat as a union of the property types.
218
+ const patternEntries = Object.entries(schema.patternProperties);
219
+ // Preserve pattern-to-schema mapping in new field
220
+ node.patternProperties = {};
221
+ for (const [pattern, patternSchema] of patternEntries) {
222
+ node.patternProperties[pattern] = this.convertSchema(patternSchema, {
223
+ path: ctx.path ? `${ctx.path}.*` : "*",
224
+ });
225
+ }
226
+ // Also set additionalProperties for backward compatibility
227
+ if (patternEntries.length > 1) {
248
228
  node.additionalProperties = this.convertSchema({
249
- anyOf: propertySchemas,
229
+ anyOf: patternEntries.map(([_, schema]) => schema),
250
230
  }, {
251
- // The "*" indicates an any/unknown key
252
231
  path: ctx.path ? `${ctx.path}.*` : "*",
253
232
  });
254
233
  }
255
- else {
256
- // else just convert the single property schema
257
- node.additionalProperties = this.convertSchema(propertySchemas[0], {
258
- // The "*" indicates an any/unknown key
234
+ else if (patternEntries.length === 1) {
235
+ node.additionalProperties = this.convertSchema(patternEntries[0][1], {
259
236
  path: ctx.path ? `${ctx.path}.*` : "*",
260
237
  });
261
238
  }
262
239
  }
263
240
  node.signature = this.calcObjSignatureOccurrences(schema, node);
241
+ // Step 1.9d: object constraints
242
+ if (schema.minProperties !== undefined || schema.maxProperties !== undefined) {
243
+ node.constraints = node.constraints || {};
244
+ if (schema.minProperties !== undefined)
245
+ node.constraints.minProperties = schema.minProperties;
246
+ if (schema.maxProperties !== undefined)
247
+ node.constraints.maxProperties = schema.maxProperties;
248
+ }
249
+ this.applyMetadata(node, schema);
250
+ this.augmentWithApplicators(node, schema, ctx);
264
251
  return node;
265
252
  }
266
253
  case "array": {
267
254
  const name = this.getTypeName(schema, ctx);
255
+ // Step 1.7: Tuple validation: items is an array of positional schemas
256
+ if (schema.items && Array.isArray(schema.items)) {
257
+ const tupleItems = schema.items.map((item, i) => this.convertSchema(item, {
258
+ path: ctx.path ? `${ctx.path}.${i}` : `${i}`,
259
+ }));
260
+ const tupleNode = {
261
+ type: "tuple",
262
+ tupleItems,
263
+ path: ctx.path,
264
+ name,
265
+ };
266
+ this.applyMetadata(tupleNode, schema);
267
+ this.augmentWithApplicators(tupleNode, schema, ctx);
268
+ return tupleNode;
269
+ }
270
+ // Regular array
268
271
  const node = {
269
272
  type: "array",
270
273
  path: ctx.path,
271
274
  name,
272
275
  };
273
276
  if (schema.items) {
274
- if (Array.isArray(schema.items)) {
275
- // For tuple validation, treat as a union of the item types.
276
- const options = schema.items.map((item, i) => this.convertSchema(item, ctx));
277
- node.items = { type: "union", options, path: ctx.path };
278
- }
279
- else {
280
- node.items = this.convertSchema(schema.items, {
281
- path: ctx.path ? `${ctx.path}.0` : "0",
282
- });
283
- }
277
+ node.items = this.convertSchema(schema.items, {
278
+ path: ctx.path ? `${ctx.path}.0` : "0",
279
+ });
280
+ }
281
+ // Capture array constraints
282
+ if (schema.minItems !== undefined || schema.maxItems !== undefined || schema.uniqueItems !== undefined) {
283
+ node.constraints = node.constraints || {};
284
+ if (schema.minItems !== undefined)
285
+ node.constraints.minItems = schema.minItems;
286
+ if (schema.maxItems !== undefined)
287
+ node.constraints.maxItems = schema.maxItems;
288
+ if (schema.uniqueItems !== undefined)
289
+ node.constraints.uniqueItems = schema.uniqueItems;
284
290
  }
291
+ this.applyMetadata(node, schema);
292
+ this.augmentWithApplicators(node, schema, ctx);
285
293
  return node;
286
294
  }
287
295
  case "string":
@@ -301,6 +309,15 @@ export class JSONSchemaConverter {
301
309
  node.constraints.minimum = schema.minimum;
302
310
  if (schema.maximum !== undefined)
303
311
  node.constraints.maximum = schema.maximum;
312
+ // Step 1.9c: extended constraints
313
+ if (schema.exclusiveMinimum !== undefined)
314
+ node.constraints.exclusiveMinimum = schema.exclusiveMinimum;
315
+ if (schema.exclusiveMaximum !== undefined)
316
+ node.constraints.exclusiveMaximum = schema.exclusiveMaximum;
317
+ if (schema.format)
318
+ node.constraints.format = schema.format;
319
+ this.applyMetadata(node, schema);
320
+ this.augmentWithApplicators(node, schema, ctx);
304
321
  return node;
305
322
  }
306
323
  default:
@@ -309,7 +326,9 @@ export class JSONSchemaConverter {
309
326
  }
310
327
  }
311
328
  // Fallback: if no type is provided, assume an object.
312
- return { type: "object", properties: {}, path: ctx.path };
329
+ const fallbackNode = { type: "object", properties: {}, path: ctx.path };
330
+ this.augmentWithApplicators(fallbackNode, schema, ctx);
331
+ return fallbackNode;
313
332
  }
314
333
  /**
315
334
  * Converts a JSON Schema definition to an IRNode.
@@ -317,6 +336,7 @@ export class JSONSchemaConverter {
317
336
  convertToIRSchema(schema) {
318
337
  // reset the root schema
319
338
  this.rootSchema = null;
339
+ this.resolving = new Set();
320
340
  // Optionally validate the schema.
321
341
  if (this.opts?.validateSchema) {
322
342
  this.validateSchema(schema);
@@ -335,7 +355,7 @@ export class JSONSchemaConverter {
335
355
  }
336
356
  return ir;
337
357
  }
338
- validateSchema(schema) {
358
+ validateSchema(_schema) {
339
359
  // Implement or integrate with a JSON Schema validator if desired.
340
360
  // For now, we assume the schema is valid.
341
361
  }
@@ -359,11 +379,6 @@ export class JSONSchemaConverter {
359
379
  getNextObjectSequence() {
360
380
  return this.signatureOccurrences.size;
361
381
  }
362
- getParentNameFromPath(path) {
363
- const split = path.split(".").filter((x) => !x.match(/^\d+$/));
364
- // ignore numbers
365
- return split[split.length - 2] || undefined;
366
- }
367
382
  /**
368
383
  * Generates a unique signature for a schema.
369
384
  * Uses a stable JSON.stringify that sorts keys to ensure that
@@ -392,9 +407,6 @@ export class JSONSchemaConverter {
392
407
  }
393
408
  /**
394
409
  * Resolves a local $ref using the stored root schema.
395
- *
396
- * This method expects local references (starting with "#/") and uses a simple
397
- * JSON Pointer resolution algorithm.
398
410
  */
399
411
  resolveRef(schema) {
400
412
  if (!schema.$ref)
@@ -403,6 +415,10 @@ export class JSONSchemaConverter {
403
415
  throw new Error("Root schema not available for reference resolution.");
404
416
  }
405
417
  const ref = schema.$ref;
418
+ // Step 1.3: Handle $ref: "#" (root reference)
419
+ if (ref === "#") {
420
+ return this.rootSchema;
421
+ }
406
422
  if (!ref.startsWith("#/")) {
407
423
  throw new Error(`Only local references are supported. Encountered: ${ref}`);
408
424
  }
@@ -410,9 +426,6 @@ export class JSONSchemaConverter {
410
426
  }
411
427
  /**
412
428
  * Resolves a JSON Pointer (RFC 6901) within the given document.
413
- *
414
- * @param pointer A JSON Pointer string (e.g., "#/definitions/Foo" or "#/$defs/Bar")
415
- * @param document The root document object.
416
429
  */
417
430
  resolvePointer(pointer, document) {
418
431
  // Remove the leading '#' character.
@@ -442,5 +455,27 @@ export class JSONSchemaConverter {
442
455
  }
443
456
  return hash;
444
457
  }
458
+ // Step 1.9a: Apply description and default metadata
459
+ applyMetadata(node, schema) {
460
+ if (schema.description) {
461
+ node.description = schema.description;
462
+ }
463
+ if (schema.default !== undefined) {
464
+ node.defaultValue = schema.default;
465
+ }
466
+ }
467
+ // Step 1.10b: Augment with not/if-then-else when coexisting with type
468
+ augmentWithApplicators(node, schema, ctx) {
469
+ if (schema.not) {
470
+ node.not = this.convertSchema(schema.not, ctx);
471
+ }
472
+ if (schema.if) {
473
+ node.conditional = {
474
+ if: this.convertSchema(schema.if, ctx),
475
+ then: schema.then ? this.convertSchema(schema.then, ctx) : undefined,
476
+ else: schema.else ? this.convertSchema(schema.else, ctx) : undefined,
477
+ };
478
+ }
479
+ }
445
480
  }
446
481
  //# sourceMappingURL=JSONSchemaConverter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JSONSchemaConverter.js","sourceRoot":"","sources":["../src/JSONSchemaConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONSchemaConverter.js","sourceRoot":"","sources":["../src/JSONSchemaConverter.ts"],"names":[],"mappings":"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"}