ajsc 7.3.0 → 7.5.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to ajsc are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project follows [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [7.5.0] — 2026-06-30
6
+
7
+ ### Fixed
8
+
9
+ - **TypeScript: generated type names no longer collide with global utility types ajsc emits.** A generated declaration whose name (from a depluralized property, a `title`, or an enum property) matched a TypeScript global generic — most commonly `Record` (from a `records` property or `title: "Record"`) shadowing the `Record<string, any>` emitted for `additionalProperties: true`, or `Array` shadowing array element references — produced output that `tsc` rejected with `TS2315: Type 'Record' is not generic`. Such names are now reserved across **all** declaration-name producers (extracted/referenced types, the root type, `enumStyle: "enum"` enum names, and discriminated-union variant names) and disambiguated to the `<Name>Type` form (e.g. `Record` → `RecordType`, `Array` → `ArrayType`), leaving the global references intact. The reserved set covers `Record`, `Array`, `Map`, `Set`, `Promise`, `Partial`, `Readonly`, `Pick`, `Omit`, `Exclude`, and `Required`. An explicit `rootTypeName` is honored verbatim (the caller owns that choice). The reservation is unconditional, so a schema that produced a type literally named e.g. `Record` (even without any `Record<…>` in its output) now emits `RecordType` instead.
10
+
11
+ ### Added
12
+
13
+ - **`RefTypeNamingConfig.reservedTypeNames`** (extension API, exported from `ajsc/converter`): a list of type names a language references as ambient globals, so generated declarations are never named one of them. Defaults to empty; the built-in TypeScript profile populates it. Accompanied by two `BaseConverterContext` helpers for downstream language authors — `isReservedTypeName(name)` and `claimDeclarationName(base)` (disambiguate-and-register in one step). Existing language targets and the default config are unaffected.
14
+
15
+ ### Internal
16
+
17
+ - `getUniqueRefTypeName`, `findAvailableName`, `deriveEnumName`, and root-name selection all consult `reservedTypeNames` through the shared `isReservedTypeName` (memoized) so reserved names are treated as already-taken and disambiguated by the existing collision machinery. All non-path-derived declaration names now register through the single `claimDeclarationName` gate, so disambiguation and registration are atomic and cannot be bypassed. Kotlin and Swift leave the reserved set empty (Kotlin emits an explanatory KDoc note for `additionalProperties` rather than a `Map<String, …>`, so it has no analogous shadowing vector).
18
+
19
+ ## [7.4.0] — 2026-06-29
20
+
21
+ ### Changed
22
+
23
+ - **The TypeScript converter now emits JSDoc comments by default.** The `jsdoc` option defaults to `true`, so JSON Schema `description` (and property `title`) annotations are rendered as `/** … */` comments over generated root types, extracted/referenced types, enum declarations, and object properties. Previously this required opting in with `jsdoc: true`.
24
+ - To restore the previous output (no comments), pass `jsdoc: false`.
25
+ - Unchanged: JSDoc is only emitted when `inlineTypes` is `false` (the default); `inlineTypes: true` never emits comments regardless of the `jsdoc` setting.
26
+ - Kotlin and Swift output is unaffected.
27
+
5
28
  ## [7.3.0] — 2026-06-06
6
29
 
7
30
  ### Added
@@ -99,6 +99,15 @@ export interface RefTypeNamingConfig {
99
99
  * @example ["criteria", "alumni", "corpus"]
100
100
  */
101
101
  uncountableWords?: string[];
102
+ /**
103
+ * Type names the language references as ambient globals in emitted output
104
+ * (e.g. TS `Record<…>`, `Array<…>`). An extracted type must never be named
105
+ * one of these, or the local declaration would shadow the global the same
106
+ * output relies on, producing code that does not compile. Reserved names are
107
+ * treated as already-taken during naming, so the normal postfix escalation
108
+ * disambiguates them (e.g. `Record` → `RecordType`). Default: none.
109
+ */
110
+ reservedTypeNames?: string[];
102
111
  }
103
112
  export type GenerateTypeUtils = {
104
113
  getReferencedType(ir: IRNode): string | undefined;
@@ -134,6 +143,10 @@ export interface BaseConverterContext {
134
143
  generateObjectType(ir: IRNode, utils: GenerateTypeUtils): string;
135
144
  /** Returns a name not already in `usedDeclarationNames`, suffixing as needed. */
136
145
  findAvailableName(base: string): string;
146
+ /** Disambiguates `base` and registers it in `usedDeclarationNames` atomically. */
147
+ claimDeclarationName(base: string): string;
148
+ /** True if `name` is a reserved global type name (see `reservedTypeNames`). */
149
+ isReservedTypeName(name: string): boolean;
137
150
  /** Locates a const-string discriminator property across union options. */
138
151
  findDiscriminatorProperty(options: IRNode[], sharedPropNames: string[]): string | null;
139
152
  /** Computes shared and combined property names across union options. */
@@ -301,14 +314,36 @@ export declare abstract class BaseConverter implements Partial<ILanguageConverte
301
314
  */
302
315
  stripDiscriminatorField(opt: IRNode, discriminator: string): IRNode;
303
316
  /**
304
- * Returns `base` if it is not already taken in `usedDeclarationNames`,
305
- * otherwise appends an incrementing suffix (`base2`, `base3`, …) until a
306
- * free name is found. Subclasses use this for collision-free declaration
307
- * names where path-derived disambiguation is not appropriate (e.g. enum
308
- * names derived from a property name).
317
+ * Returns `base` if it is not already taken in `usedDeclarationNames` and is
318
+ * not a reserved global type name, otherwise appends an incrementing suffix
319
+ * (`base2`, `base3`, …) until a free name is found. Subclasses use this for
320
+ * collision-free declaration names where path-derived disambiguation is not
321
+ * appropriate (e.g. enum names derived from a property name, discriminated-
322
+ * union variant names, the root type name). Honoring `reservedTypeNames` here
323
+ * keeps every declaration-name producer that routes through this helper from
324
+ * shadowing a global the same output references (e.g. `Record<…>`, `Array<…>`).
309
325
  * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
310
326
  */
311
327
  findAvailableName(base: string): string;
328
+ /**
329
+ * Disambiguates `base` via `findAvailableName` AND records the result in
330
+ * `usedDeclarationNames`, returning it. This is the single gate for simple
331
+ * (non-path-derived) declaration names — root, enum, and discriminated-union
332
+ * variant names — so disambiguation and registration happen atomically and no
333
+ * caller can register a name that bypassed reserved-/used-name checks. (The
334
+ * path-derived analog, `getUniqueRefTypeName`, self-registers the same way.)
335
+ * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
336
+ */
337
+ claimDeclarationName(base: string): string;
338
+ /**
339
+ * True if `name` is a type the language references as an ambient global in
340
+ * emitted output (see `RefTypeNamingConfig.reservedTypeNames`). Declaration-
341
+ * name producers consult this so a generated declaration never shadows a
342
+ * global the same output relies on.
343
+ * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
344
+ */
345
+ isReservedTypeName(name: string): boolean;
346
+ private reservedTypeNamesSet?;
312
347
  /** Delegates to `discriminatedUnions.ts`. */
313
348
  protected applyDiscriminatedUnionEnhancements(ir: IRNode): void;
314
349
  /**
@@ -1,4 +1,4 @@
1
- import { computeExtractedTypeNames, getUniqueRefTypeName, } from "./naming.js";
1
+ import { computeExtractedTypeNames, getRefTypeNamingConfig, getUniqueRefTypeName, } from "./naming.js";
2
2
  import { getReferencedType } from "./registry.js";
3
3
  import { isDiscriminatedUnion, mergeCompatibleUnions, tryMergeObjectUnion, tryMergeProperty, } from "./mergeUnions.js";
4
4
  import { applyDiscriminatedUnionEnhancements, collectUnionPropertyNames, enhanceDiscriminatedUnions, findDiscriminatorProperty, getConstStringValue, stripDiscriminatorField, } from "./discriminatedUnions.js";
@@ -102,21 +102,60 @@ export class BaseConverter {
102
102
  return stripDiscriminatorField(this, opt, discriminator);
103
103
  }
104
104
  /**
105
- * Returns `base` if it is not already taken in `usedDeclarationNames`,
106
- * otherwise appends an incrementing suffix (`base2`, `base3`, …) until a
107
- * free name is found. Subclasses use this for collision-free declaration
108
- * names where path-derived disambiguation is not appropriate (e.g. enum
109
- * names derived from a property name).
105
+ * Returns `base` if it is not already taken in `usedDeclarationNames` and is
106
+ * not a reserved global type name, otherwise appends an incrementing suffix
107
+ * (`base2`, `base3`, …) until a free name is found. Subclasses use this for
108
+ * collision-free declaration names where path-derived disambiguation is not
109
+ * appropriate (e.g. enum names derived from a property name, discriminated-
110
+ * union variant names, the root type name). Honoring `reservedTypeNames` here
111
+ * keeps every declaration-name producer that routes through this helper from
112
+ * shadowing a global the same output references (e.g. `Record<…>`, `Array<…>`).
110
113
  * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
111
114
  */
112
115
  findAvailableName(base) {
113
- if (!this.usedDeclarationNames.has(base))
116
+ const taken = (name) => this.usedDeclarationNames.has(name) || this.isReservedTypeName(name);
117
+ if (!taken(base))
114
118
  return base;
119
+ // When `base` itself is a reserved global, prefer the `<Name>Type` form for
120
+ // parity with extracted-type disambiguation (e.g. `Record` → `RecordType`)
121
+ // before falling back to numeric suffixes. Ordinary collisions (a name
122
+ // already declared) keep the established numeric scheme.
123
+ if (this.isReservedTypeName(base) && !taken(base + "Type"))
124
+ return base + "Type";
115
125
  let i = 2;
116
- while (this.usedDeclarationNames.has(base + i))
126
+ while (taken(base + i))
117
127
  i++;
118
128
  return base + i;
119
129
  }
130
+ /**
131
+ * Disambiguates `base` via `findAvailableName` AND records the result in
132
+ * `usedDeclarationNames`, returning it. This is the single gate for simple
133
+ * (non-path-derived) declaration names — root, enum, and discriminated-union
134
+ * variant names — so disambiguation and registration happen atomically and no
135
+ * caller can register a name that bypassed reserved-/used-name checks. (The
136
+ * path-derived analog, `getUniqueRefTypeName`, self-registers the same way.)
137
+ * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
138
+ */
139
+ claimDeclarationName(base) {
140
+ const name = this.findAvailableName(base);
141
+ this.usedDeclarationNames.add(name);
142
+ return name;
143
+ }
144
+ /**
145
+ * True if `name` is a type the language references as an ambient global in
146
+ * emitted output (see `RefTypeNamingConfig.reservedTypeNames`). Declaration-
147
+ * name producers consult this so a generated declaration never shadows a
148
+ * global the same output relies on.
149
+ * @internal Public for `BaseConverterContext`; treat as protected for subclasses.
150
+ */
151
+ isReservedTypeName(name) {
152
+ // Memoized: `getRefTypeNamingConfig` rebuilds the merged config (and its
153
+ // postfix array) on every call, and this predicate runs inside naming loops.
154
+ if (!this.reservedTypeNamesSet) {
155
+ this.reservedTypeNamesSet = new Set(getRefTypeNamingConfig(this).reservedTypeNames);
156
+ }
157
+ return this.reservedTypeNamesSet.has(name);
158
+ }
120
159
  /** Delegates to `discriminatedUnions.ts`. */
121
160
  applyDiscriminatedUnionEnhancements(ir) {
122
161
  applyDiscriminatedUnionEnhancements(this, ir);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseConverter.js","sourceRoot":"","sources":["../../src/converter/BaseConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseConverter.js","sourceRoot":"","sources":["../../src/converter/BaseConverter.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export function defaultRefTypeNamingConfig() {
23
23
  stripLeadingAnySymbol: true,
24
24
  depluralize: true,
25
25
  arrayItemNaming: false,
26
+ reservedTypeNames: [],
26
27
  };
27
28
  }
28
29
  /**
@@ -101,7 +102,11 @@ export function getUniqueRefTypeName(c, signature, nodePath) {
101
102
  }
102
103
  continue;
103
104
  }
104
- const nameAlreadyUsed = c.usedDeclarationNames.has(proposedName);
105
+ // A reserved name (e.g. TS `Record`, `Array`) would shadow the global the
106
+ // same output relies on, so treat it as already-taken and let postfix
107
+ // escalation disambiguate (e.g. `Record` → `RecordType`).
108
+ const nameAlreadyUsed = c.usedDeclarationNames.has(proposedName) ||
109
+ c.isReservedTypeName(proposedName);
105
110
  if (nameAlreadyUsed) {
106
111
  pathsSegmentsToInclude++;
107
112
  if (pathsSegmentsToInclude >= path.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/converter/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/converter/naming.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,8 @@ export interface TypescriptConverterOpts extends BaseConverterOpts {
16
16
  */
17
17
  enumStyle?: "union" | "enum";
18
18
  /**
19
- * If true, emit JSDoc comments from JSON Schema `description` annotations.
19
+ * Whether to emit JSDoc comments from JSON Schema `description` (and
20
+ * `title`) annotations. Defaults to `true`. Set to `false` to suppress them.
20
21
  * Only applies when `inlineTypes` is false (the default).
21
22
  */
22
23
  jsdoc?: boolean;
@@ -3,6 +3,29 @@ import { JSONSchemaConverter } from "../ir/JSONSchemaConverter.js";
3
3
  import { toPascalCase } from "../utils/to-pascal-case.js";
4
4
  import { PathUtils } from "../utils/path-utils.js";
5
5
  import { walkIR, } from "../converter/BaseConverter.js";
6
+ /**
7
+ * Global/utility type names that emitted TypeScript references as ambient
8
+ * generics (or that consumers commonly rely on). An extracted type must never
9
+ * be named one of these, or the local `export type X = …` declaration would
10
+ * shadow the global the same output depends on — e.g. a depluralized `Record`
11
+ * shadowing the `Record<string, any>` ajsc emits for `additionalProperties`,
12
+ * which `tsc` rejects with TS2315. ajsc itself emits `Record<…>` and `Array<…>`;
13
+ * the remainder are reserved defensively against future emit paths and consumer
14
+ * usage. Reserved names are disambiguated via postfix (e.g. `Record` → `RecordType`).
15
+ */
16
+ const TS_RESERVED_TYPE_NAMES = [
17
+ "Record",
18
+ "Array",
19
+ "Map",
20
+ "Set",
21
+ "Promise",
22
+ "Partial",
23
+ "Readonly",
24
+ "Pick",
25
+ "Omit",
26
+ "Exclude",
27
+ "Required",
28
+ ];
6
29
  /**
7
30
  * A TypeScript language converter plugin.
8
31
  */
@@ -21,7 +44,7 @@ export class TypescriptConverter extends TypescriptBaseConverter {
21
44
  this.usedDeclarationNames = opts.nameRegistry;
22
45
  this.inlineTypes = opts?.inlineTypes ?? false;
23
46
  this.enumStyle = opts?.enumStyle ?? "union";
24
- this.emitJSDoc = !this.inlineTypes && (opts?.jsdoc ?? false);
47
+ this.emitJSDoc = !this.inlineTypes && (opts?.jsdoc ?? true);
25
48
  this.languageProfile = {
26
49
  language: "typescript",
27
50
  processOneOfAsDiscriminatedUnion: true,
@@ -31,9 +54,7 @@ export class TypescriptConverter extends TypescriptBaseConverter {
31
54
  resolveRefTypeName: (ir, _sig, defaultResolver) => {
32
55
  const variantName = this.variantNames.get(ir);
33
56
  if (variantName) {
34
- const name = this.findAvailableName(variantName);
35
- this.usedDeclarationNames.add(name);
36
- return name;
57
+ return this.claimDeclarationName(variantName);
37
58
  }
38
59
  return defaultResolver();
39
60
  },
@@ -45,22 +66,31 @@ export class TypescriptConverter extends TypescriptBaseConverter {
45
66
  const irNode = this.mergeCompatibleUnions(this.schemaConverter.irNode);
46
67
  this.enhanceDiscriminatedUnions(irNode);
47
68
  if (this.baseOpts?.rootTypeName) {
69
+ // Explicit caller-supplied name: a hard contract, used verbatim (the
70
+ // caller owns the risk of shadowing a global it also references).
48
71
  irNode.name = this.baseOpts.rootTypeName;
72
+ this.usedDeclarationNames.add(irNode.name);
49
73
  }
50
- if (!irNode.name) {
51
- // Enum/literal roots have no `name` from the IR (only objects/arrays do),
52
- // so fall back to `title` for those cases. Other typed roots already get
53
- // a `name` upstream and continue to use "Root" when none is set.
54
- if (irNode.type === "enum" || irNode.type === "literal") {
55
- irNode.name = irNode.title || "Root";
56
- }
57
- else {
58
- irNode.name = "Root";
74
+ else {
75
+ if (!irNode.name) {
76
+ // Enum/literal roots have no `name` from the IR (only objects/arrays do),
77
+ // so fall back to `title` for those cases. Other typed roots already get
78
+ // a `name` upstream and continue to use "Root" when none is set.
79
+ if (irNode.type === "enum" || irNode.type === "literal") {
80
+ irNode.name = irNode.title || "Root";
81
+ }
82
+ else {
83
+ irNode.name = "Root";
84
+ }
59
85
  }
86
+ // The derived name (from IR `name`/`title`) may itself be a reserved
87
+ // global type (e.g. a root titled "Record" or "Array"); claim it so the
88
+ // root declaration cannot shadow a global the output references.
89
+ irNode.name = this.claimDeclarationName(irNode.name);
60
90
  }
61
- // Reserve the root type name so enums/ref types don't collide with it
91
+ // Root name is now registered in usedDeclarationNames so enums/ref types
92
+ // don't collide with it.
62
93
  this.rootName = irNode.name;
63
- this.usedDeclarationNames.add(this.rootName);
64
94
  this.referencedNamedTypes = this.computeReferencedNamedTypes(irNode);
65
95
  // Pre-register enum names before type generation so that enum names
66
96
  // (derived from meaningful property names) take precedence over
@@ -107,7 +137,9 @@ export class TypescriptConverter extends TypescriptBaseConverter {
107
137
  this.extractedTypeNames = this.computeExtractedTypeNames().filter((n) => n !== this.rootTypeName);
108
138
  }
109
139
  computeRefTypeNamingConfigOverrides() {
110
- const out = {};
140
+ const out = {
141
+ reservedTypeNames: TS_RESERVED_TYPE_NAMES,
142
+ };
111
143
  if (this.opts?.arrayItemNaming !== undefined)
112
144
  out.arrayItemNaming = this.opts.arrayItemNaming;
113
145
  if (this.opts?.depluralize !== undefined)
@@ -193,7 +225,6 @@ export class TypescriptConverter extends TypescriptBaseConverter {
193
225
  return existing.name;
194
226
  }
195
227
  const enumName = this.deriveEnumName(path);
196
- this.usedDeclarationNames.add(enumName);
197
228
  // Build members with collision resolution
198
229
  const usedMemberNames = new Set();
199
230
  const members = values.map((value) => {
@@ -223,21 +254,27 @@ export class TypescriptConverter extends TypescriptBaseConverter {
223
254
  */
224
255
  deriveEnumName(path) {
225
256
  const segments = PathUtils.parsePath(path).filter((x) => !/^\d+$/.test(x));
257
+ // Each branch ends in `claimDeclarationName`, which disambiguates against
258
+ // reserved/used names and registers the result — so this method, like
259
+ // `getUniqueRefTypeName`, self-registers and never hands back an
260
+ // unreserved name. The loop's own checks only drive parent-segment
261
+ // escalation (which `claimDeclarationName`'s numeric suffix can't do).
226
262
  if (segments.length === 0) {
227
- return this.findAvailableName("Value");
263
+ return this.claimDeclarationName("Value");
228
264
  }
229
265
  // Try progressively more parent path segments
230
266
  for (let count = 1; count <= segments.length; count++) {
231
267
  const proposed = segments.slice(-count).map(toPascalCase).join("");
232
268
  if (proposed &&
233
269
  this.isValidIdentifier(proposed) &&
234
- !this.usedDeclarationNames.has(proposed)) {
235
- return proposed;
270
+ !this.usedDeclarationNames.has(proposed) &&
271
+ !this.isReservedTypeName(proposed)) {
272
+ return this.claimDeclarationName(proposed);
236
273
  }
237
274
  }
238
275
  // All segment combinations exhausted or collided — use counter fallback
239
276
  const fullName = segments.map(toPascalCase).join("") || "Value";
240
- return this.findAvailableName(this.isValidIdentifier(fullName) ? fullName : "Value");
277
+ return this.claimDeclarationName(this.isValidIdentifier(fullName) ? fullName : "Value");
241
278
  }
242
279
  /**
243
280
  * Converts a string value to a valid PascalCase enum member name.
@@ -1 +1 @@
1
- {"version":3,"file":"TypescriptConverter.js","sourceRoot":"","sources":["../../src/typescript/TypescriptConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypescriptConverter.js","sourceRoot":"","sources":["../../src/typescript/TypescriptConverter.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAGL,MAAM,GACP,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAG;IAC7B,QAAQ;IACR,OAAO;IACP,KAAK;IACL,KAAK;IACL,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;IACT,UAAU;CACX,CAAC;AAuBF;;GAEG;AACH,MAAM,OAAO,mBACX,SAAQ,uBAAuB;IA+B/B,YAAY,MAA6B,EAAE,IAA8B;QACvE,KAAK,EAAE,CAAC;QArBV;;;WAGG;QACK,qBAAgB,GAAG,IAAI,GAAG,EAQ/B,CAAC;QAKY,YAAO,GAAa,EAAE,CAAC;QAMrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,EAAE,YAAY;YAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,eAAe,GAAG;YACrB,QAAQ,EAAE,YAAY;YACtB,gCAAgC,EAAE,IAAI;YACtC,4BAA4B,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YACpE,+BAA+B,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW;YAC/E,mBAAmB,EAAE,IAAI,CAAC,mCAAmC,EAAE;YAC/D,kBAAkB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;gBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9C,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,eAAe,EAAE,CAAC;YAC3B,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEvD,gEAAgE;QAChE,+DAA+D;QAC/D,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;YAChC,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,0EAA0E;gBAC1E,yEAAyE;gBACzE,iEAAiE;gBACjE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,qEAAqE;YACrE,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QAED,yEAAyE;QACzE,yBAAyB;QACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAErE,oEAAoE;QACpE,gEAAgE;QAChE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACrC,iBAAiB,EAAE,IAAI,CAAC,WAAW;gBACjC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS;gBACjB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;iBACjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;gBACtC,MAAM,KAAK,GACT,IAAI,CAAC,SAAS,IAAI,WAAW;oBAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI;oBACtC,CAAC,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,OAAO;qBACjB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;qBAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,KAAK,eAAe,IAAI,MAAM,IAAI,IAAI,CAAC;YACnD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;iBAC3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;gBACnC,MAAM,KAAK,GACT,IAAI,CAAC,SAAS,IAAI,WAAW;oBAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI;oBACtC,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,GAAG,KAAK,eAAe,IAAI,MAAM,IAAI,GAAG,CAAC;YAClD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjE,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW;gBAClC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;gBAC7C,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,GAAG,QAAQ,OAAO,SAAS,eAAe,QAAQ,MAAM,IAAI,KAAK,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAK,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAC/B,CAAC;IACJ,CAAC;IAEO,mCAAmC;QACzC,MAAM,GAAG,GAAiC;YACxC,iBAAiB,EAAE,sBAAsB;SAC1C,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS;YAAE,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9F,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAClF,IAAI,IAAI,CAAC,IAAI,EAAE,gBAAgB,KAAK,SAAS;YAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACjG,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,EAAU;QACrC,MAAM,CACJ,EAAE,EACF,CAAC,IAAI,EAAE,EAAE;YACP,IACE,IAAI,CAAC,IAAI,KAAK,MAAM;gBACpB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACzD,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,0BAA0B,CAC7B,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,0BAA0B,CAC7B,IAAI,CAAC,MAAkB,EACvB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IACL,IAAI,CAAC,IAAI,KAAK,SAAS;gBACvB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,QAAQ,EAC3C,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,0BAA0B,CAC7B,QAAQ,CAAC,SAAS,EAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,0BAA0B,CAC7B,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EACxB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CAAC,EAAU;QAC5C,IACE,IAAI,CAAC,SAAS,KAAK,MAAM;YACzB,CAAC,IAAI,CAAC,WAAW;YACjB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACvD,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAC9C,QAAQ,CAAC,SAAS,EAClB,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,KAAK,CACT,CAAC;gBACF,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC,0BAA0B,CACpC,EAAE,CAAC,MAAkB,EACrB,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,KAAK,CACT,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAEkB,mBAAmB,CAAC,EAAU;QAC/C,IACE,IAAI,CAAC,SAAS,KAAK,MAAM;YACzB,CAAC,IAAI,CAAC,WAAW;YACjB,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,QAAQ,EACzC,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAC9C,QAAQ,CAAC,SAAS,EAClB,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,KAAK,CACT,CAAC;gBACF,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC,0BAA0B,CACpC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACtB,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,WAAW,EACd,EAAE,CAAC,KAAK,CACT,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACK,0BAA0B,CAChC,MAAgB,EAChB,IAAY,EACZ,WAAoB,EACpB,KAAc;QAEd,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;gBACzC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC7B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE3C,0CAA0C;QAC1C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;gBACxC,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;YACtC,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,KAAK;YACL,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,IAAY;QACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,0EAA0E;QAC1E,sEAAsE;QACtE,iEAAiE;QACjE,mEAAmE;QACnE,uEAAuE;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,8CAA8C;QAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEnE,IACE,QAAQ;gBACR,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;gBAChC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACxC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAClC,CAAC;gBACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC;QAChE,OAAO,IAAI,CAAC,oBAAoB,CAC9B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAa;QACpC,IAAI,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,IAAI,GAAG,OAAO,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;CAEF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ajsc",
3
- "version": "7.3.0",
3
+ "version": "7.5.0",
4
4
  "description": "Another Json-Schema Converter",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -80,10 +80,10 @@
80
80
  "pluralize": "^8.0.0"
81
81
  },
82
82
  "devDependencies": {
83
- "@sinclair/typebox": "^0.34.41",
84
83
  "@types/json-schema": "^7.0.15",
85
84
  "@types/pluralize": "^0.0.33",
86
85
  "prettier": "^3.5.1",
86
+ "typebox": "^1.3.2",
87
87
  "typescript": "^5.7.3",
88
88
  "vitest": "^4.1.0"
89
89
  }