ajsc 5.0.2 → 5.0.3

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.
@@ -10,4 +10,296 @@ describe("TypescriptConverter - unions and intersections", () => {
10
10
  }).code).toMatch(`string & number`);
11
11
  });
12
12
  });
13
+ describe("TypescriptConverter - unions and intersections with shared ancestor type merging", () => {
14
+ it("should merge enum unions with same name under shared ancestor", () => {
15
+ expect(new TypescriptConverter({
16
+ type: "object",
17
+ properties: {
18
+ timeLog: {
19
+ type: "array",
20
+ items: {
21
+ anyOf: [
22
+ {
23
+ type: "object",
24
+ properties: {
25
+ action: {
26
+ type: "string",
27
+ enum: ["startshift", "endshift"],
28
+ },
29
+ },
30
+ },
31
+ {
32
+ type: "object",
33
+ properties: {
34
+ action: {
35
+ type: "string",
36
+ enum: ["startbreak", "endbreak"],
37
+ },
38
+ break: {
39
+ type: "object",
40
+ properties: {
41
+ durationMin: {
42
+ type: "number",
43
+ },
44
+ mandatory: {
45
+ type: "boolean",
46
+ },
47
+ paid: {
48
+ type: "boolean",
49
+ },
50
+ startsAfterShiftHrs: {
51
+ type: "number",
52
+ },
53
+ type: {
54
+ type: "string",
55
+ },
56
+ },
57
+ },
58
+ },
59
+ },
60
+ ],
61
+ },
62
+ },
63
+ },
64
+ }, { enumStyle: "enum" }).code).toMatch(`export enum Action { Startshift = "startshift", Endshift = "endshift", Startbreak = "startbreak", Endbreak = "endbreak" }`);
65
+ });
66
+ it("should merge type unions with shared ancestor", () => {
67
+ expect(new TypescriptConverter({
68
+ type: "object",
69
+ properties: {
70
+ status: {
71
+ anyOf: [
72
+ {
73
+ type: "object",
74
+ properties: {
75
+ color: {
76
+ type: "string",
77
+ },
78
+ timeframe: {
79
+ type: "string",
80
+ enum: ["past"],
81
+ },
82
+ title: {
83
+ type: "string",
84
+ enum: ["completed", "missed"],
85
+ },
86
+ },
87
+ required: ["timeframe", "title"],
88
+ },
89
+ {
90
+ type: "object",
91
+ properties: {
92
+ color: {
93
+ type: "string",
94
+ },
95
+ timeframe: {
96
+ type: "string",
97
+ enum: ["current"],
98
+ },
99
+ title: {
100
+ type: "string",
101
+ enum: [
102
+ "ended",
103
+ "inprogress",
104
+ "notended",
105
+ "notstarted",
106
+ "onbreak",
107
+ ],
108
+ },
109
+ },
110
+ required: ["timeframe", "title"],
111
+ },
112
+ {
113
+ type: "object",
114
+ properties: {
115
+ color: {
116
+ type: "string",
117
+ },
118
+ timeframe: {
119
+ type: "string",
120
+ enum: ["future"],
121
+ },
122
+ },
123
+ required: ["timeframe"],
124
+ },
125
+ ],
126
+ },
127
+ },
128
+ }, { enumStyle: "enum" }).code).toContain(`export enum Timeframe { Past = "past", Current = "current", Future = "future" }\nexport enum Title { Completed = "completed", Missed = "missed", Ended = "ended", Inprogress = "inprogress", Notended = "notended", Notstarted = "notstarted", Onbreak = "onbreak" }\nexport type Status = { color?: string; timeframe: Timeframe; title?: Title; };\n\nexport type Root = { status?: Status; };\n`);
129
+ });
130
+ it("should merge enum + literal properties across union options", () => {
131
+ expect(new TypescriptConverter({
132
+ type: "object",
133
+ properties: {
134
+ item: {
135
+ anyOf: [
136
+ {
137
+ type: "object",
138
+ properties: {
139
+ kind: { const: "book" },
140
+ shared: { type: "string" },
141
+ },
142
+ },
143
+ {
144
+ type: "object",
145
+ properties: {
146
+ kind: {
147
+ type: "string",
148
+ enum: ["dvd", "cd"],
149
+ },
150
+ shared: { type: "string" },
151
+ },
152
+ },
153
+ ],
154
+ },
155
+ },
156
+ }, { enumStyle: "enum" }).code).toMatch(`export enum Kind { Book = "book", Dvd = "dvd", Cd = "cd" }`);
157
+ });
158
+ it("should preserve union when options have incompatible property types", () => {
159
+ const code = new TypescriptConverter({
160
+ type: "object",
161
+ properties: {
162
+ field: {
163
+ anyOf: [
164
+ {
165
+ type: "object",
166
+ properties: {
167
+ value: { type: "string" },
168
+ name: { type: "string" },
169
+ },
170
+ },
171
+ {
172
+ type: "object",
173
+ properties: {
174
+ value: { type: "number" },
175
+ name: { type: "string" },
176
+ },
177
+ },
178
+ ],
179
+ },
180
+ },
181
+ }, { enumStyle: "enum" }).code;
182
+ // Should remain as a union because "value" has incompatible types
183
+ expect(code).toMatch(/Field \| FieldType/);
184
+ });
185
+ it("should preserve discriminated unions as separate types", () => {
186
+ const code = new TypescriptConverter({
187
+ type: "object",
188
+ properties: {
189
+ shape: {
190
+ anyOf: [
191
+ {
192
+ type: "object",
193
+ properties: {
194
+ kind: { const: "circle" },
195
+ radius: { type: "number" },
196
+ },
197
+ },
198
+ {
199
+ type: "object",
200
+ properties: {
201
+ kind: { const: "square" },
202
+ side: { type: "number" },
203
+ },
204
+ },
205
+ ],
206
+ },
207
+ },
208
+ }, { enumStyle: "enum" }).code;
209
+ // Discriminated union: "kind" has distinct const per option with
210
+ // option-specific properties — should NOT be merged
211
+ expect(code).toMatch(/Shape \| ShapeType/);
212
+ });
213
+ it("should merge with union-style enums (default enumStyle)", () => {
214
+ const code = new TypescriptConverter({
215
+ type: "object",
216
+ properties: {
217
+ event: {
218
+ anyOf: [
219
+ {
220
+ type: "object",
221
+ properties: {
222
+ type: {
223
+ type: "string",
224
+ enum: ["click", "hover"],
225
+ },
226
+ x: { type: "number" },
227
+ },
228
+ },
229
+ {
230
+ type: "object",
231
+ properties: {
232
+ type: {
233
+ type: "string",
234
+ enum: ["scroll", "resize"],
235
+ },
236
+ x: { type: "number" },
237
+ },
238
+ },
239
+ ],
240
+ },
241
+ },
242
+ }).code;
243
+ // With default enumStyle ("union"), merged enums appear as string literal unions
244
+ expect(code).toMatch(`"click" | "hover" | "scroll" | "resize"`);
245
+ });
246
+ it("should handle nested anyOf merging (bottom-up)", () => {
247
+ const code = new TypescriptConverter({
248
+ type: "object",
249
+ properties: {
250
+ outer: {
251
+ type: "array",
252
+ items: {
253
+ anyOf: [
254
+ {
255
+ type: "object",
256
+ properties: {
257
+ tag: {
258
+ type: "string",
259
+ enum: ["a"],
260
+ },
261
+ inner: {
262
+ anyOf: [
263
+ {
264
+ type: "object",
265
+ properties: {
266
+ level: {
267
+ type: "string",
268
+ enum: ["low"],
269
+ },
270
+ },
271
+ },
272
+ {
273
+ type: "object",
274
+ properties: {
275
+ level: {
276
+ type: "string",
277
+ enum: ["high"],
278
+ },
279
+ },
280
+ },
281
+ ],
282
+ },
283
+ },
284
+ },
285
+ {
286
+ type: "object",
287
+ properties: {
288
+ tag: {
289
+ type: "string",
290
+ enum: ["b"],
291
+ },
292
+ },
293
+ },
294
+ ],
295
+ },
296
+ },
297
+ },
298
+ }, { enumStyle: "enum" }).code;
299
+ // Inner anyOf should be merged first (bottom-up), producing a merged Level enum
300
+ expect(code).toMatch(`export enum Level { Low = "low", High = "high" }`);
301
+ // Outer anyOf should also be merged (tag is shared)
302
+ expect(code).toMatch(`export enum Tag { A = "a", B = "b" }`);
303
+ });
304
+ });
13
305
  //# sourceMappingURL=TypescriptConverter.composites.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypescriptConverter.composites.test.js","sourceRoot":"","sources":["../src/TypescriptConverter.composites.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CACJ,IAAI,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAC7D,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CACJ,IAAI,mBAAmB,CAAC;YACtB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAChD,CAAC,CAAC,IAAI,CACR,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"TypescriptConverter.composites.test.js","sourceRoot":"","sources":["../src/TypescriptConverter.composites.test.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export declare class TypescriptConverter extends TypescriptBaseConverter impleme
47
47
  */
48
48
  private enumDeclarations;
49
49
  readonly code: string;
50
+ private mergeCounter;
50
51
  constructor(schema: JSONSchema7Definition, opts?: TypescriptConverterOpts);
51
52
  protected getRefTypeNamingConfig(): RefTypeNamingConfig;
52
53
  /**
@@ -83,4 +84,34 @@ export declare class TypescriptConverter extends TypescriptBaseConverter impleme
83
84
  * Converts a string value to a valid PascalCase enum member name.
84
85
  */
85
86
  private toEnumMemberName;
87
+ /**
88
+ * Recursively walks the IR tree (bottom-up) and merges anyOf unions
89
+ * whose options are all objects with compatible property types.
90
+ * Merged enums collect values from all options; properties missing
91
+ * from some options become optional in the merged type.
92
+ */
93
+ private mergeCompatibleUnions;
94
+ /**
95
+ * Attempts to merge all options of an anyOf union into a single object type.
96
+ * Returns the merged IRNode, or null if the options are not compatible.
97
+ */
98
+ private tryMergeObjectUnion;
99
+ /**
100
+ * Tries to merge multiple instances of the same property across union options.
101
+ * Returns the merged IRNode, or null if incompatible.
102
+ */
103
+ private tryMergeProperty;
104
+ /**
105
+ * Detects discriminated union patterns where merging would lose
106
+ * semantic precision. A discriminated union requires:
107
+ * 1. A shared property with distinct const/single-value-enum per option
108
+ * (the "discriminator")
109
+ * 2. Every option has at least one property exclusive to only that option
110
+ * (variant-specific fields tied to the discriminator value)
111
+ *
112
+ * This distinguishes true tagged unions (circle+radius vs square+side)
113
+ * from schemas where single-value enums represent different values of
114
+ * the same field that should be merged (past/current/future → Timeframe).
115
+ */
116
+ private isDiscriminatedUnion;
86
117
  }
@@ -14,28 +14,33 @@ export class TypescriptConverter extends TypescriptBaseConverter {
14
14
  * for deduplication across the schema.
15
15
  */
16
16
  this.enumDeclarations = new Map();
17
+ this.mergeCounter = 0;
17
18
  this.opts = opts;
18
19
  this.inlineTypes = opts?.inlineTypes ?? false;
19
20
  this.enumStyle = opts?.enumStyle ?? "union";
20
21
  this.schemaConverter = new JSONSchemaConverter(schema);
21
- if (!this.schemaConverter.irNode.name) {
22
- this.schemaConverter.irNode.name = "Root";
22
+ // Merge compatible anyOf unions into single object types before
23
+ // enum pre-registration and type generation, so the downstream
24
+ // pipeline sees merged enums and objects rather than separate variants.
25
+ const irNode = this.mergeCompatibleUnions(this.schemaConverter.irNode);
26
+ if (!irNode.name) {
27
+ irNode.name = "Root";
23
28
  }
24
29
  // Reserve the root type name so enums/ref types don't collide with it
25
- this.rootName = this.schemaConverter.irNode.name;
30
+ this.rootName = irNode.name;
26
31
  this.usedDeclarationNames.add(this.rootName);
27
32
  // Pre-register enum names before type generation so that enum names
28
33
  // (derived from meaningful property names) take precedence over
29
34
  // synthetic ref type names (derived from postfix fallbacks).
30
35
  if (this.enumStyle === "enum" && !this.inlineTypes) {
31
- this.preRegisterEnumNames(this.schemaConverter.irNode);
36
+ this.preRegisterEnumNames(irNode);
32
37
  }
33
- const code = this.generateType(this.schemaConverter.irNode, {
38
+ const code = this.generateType(irNode, {
34
39
  getReferencedType: this.inlineTypes
35
40
  ? () => undefined
36
41
  : this.getReferencedType.bind(this),
37
42
  });
38
- const rootName = this.schemaConverter.irNode.name;
43
+ const rootName = irNode.name;
39
44
  if (!this.inlineTypes) {
40
45
  const enumCode = [...this.enumDeclarations.values()]
41
46
  .map(({ name, members }) => {
@@ -206,5 +211,243 @@ export class TypescriptConverter extends TypescriptBaseConverter {
206
211
  name = "Value";
207
212
  return name;
208
213
  }
214
+ /**
215
+ * Recursively walks the IR tree (bottom-up) and merges anyOf unions
216
+ * whose options are all objects with compatible property types.
217
+ * Merged enums collect values from all options; properties missing
218
+ * from some options become optional in the merged type.
219
+ */
220
+ mergeCompatibleUnions(ir) {
221
+ // Recurse into children first (bottom-up)
222
+ if (ir.properties) {
223
+ for (const key of Object.keys(ir.properties)) {
224
+ ir.properties[key] = this.mergeCompatibleUnions(ir.properties[key]);
225
+ }
226
+ }
227
+ if (ir.items) {
228
+ ir.items = this.mergeCompatibleUnions(ir.items);
229
+ }
230
+ if (ir.tupleItems) {
231
+ ir.tupleItems = ir.tupleItems.map((t) => this.mergeCompatibleUnions(t));
232
+ }
233
+ if (ir.options) {
234
+ ir.options = ir.options.map((o) => this.mergeCompatibleUnions(o));
235
+ }
236
+ if (ir.additionalProperties &&
237
+ typeof ir.additionalProperties !== "boolean") {
238
+ ir.additionalProperties = this.mergeCompatibleUnions(ir.additionalProperties);
239
+ }
240
+ // Check if this node is a mergeable anyOf union
241
+ if (ir.type === "union" &&
242
+ ir.constraints?.combinator === "anyOf" &&
243
+ ir.options &&
244
+ ir.options.length > 1) {
245
+ const merged = this.tryMergeObjectUnion(ir);
246
+ if (merged)
247
+ return merged;
248
+ }
249
+ return ir;
250
+ }
251
+ /**
252
+ * Attempts to merge all options of an anyOf union into a single object type.
253
+ * Returns the merged IRNode, or null if the options are not compatible.
254
+ */
255
+ tryMergeObjectUnion(ir) {
256
+ const options = ir.options;
257
+ // All options must be objects
258
+ if (!options.every((opt) => opt.type === "object")) {
259
+ return null;
260
+ }
261
+ // Bail if any option has patternProperties
262
+ if (options.some((opt) => opt.patternProperties)) {
263
+ return null;
264
+ }
265
+ // Bail if options have conflicting additionalProperties values.
266
+ // Identical values (all false, all true, all same schema) are fine.
267
+ const apValues = options.map((opt) => opt.additionalProperties);
268
+ const hasAp = apValues.some((v) => v !== undefined);
269
+ if (hasAp) {
270
+ const serialized = apValues.map((v) => JSON.stringify(v ?? null));
271
+ if (!serialized.every((s) => s === serialized[0])) {
272
+ return null;
273
+ }
274
+ }
275
+ // Collect all property names in first-seen order across options
276
+ const allPropNames = [];
277
+ const seenProps = new Set();
278
+ for (const opt of options) {
279
+ if (opt.properties) {
280
+ for (const key of Object.keys(opt.properties)) {
281
+ if (!seenProps.has(key)) {
282
+ seenProps.add(key);
283
+ allPropNames.push(key);
284
+ }
285
+ }
286
+ }
287
+ }
288
+ if (allPropNames.length === 0) {
289
+ return null;
290
+ }
291
+ // Only merge when options share at least one property name —
292
+ // disjoint objects should remain as a union to preserve semantics.
293
+ const sharedPropNames = allPropNames.filter((propName) => options.every((opt) => opt.properties?.[propName] !== undefined));
294
+ if (sharedPropNames.length === 0) {
295
+ return null;
296
+ }
297
+ // Detect discriminated unions: if a shared property has different
298
+ // const/single-value-enum values across options AND there are
299
+ // option-specific (non-shared) properties, this is a tagged union
300
+ // where merging would lose the correlation between discriminator
301
+ // and variant-specific fields.
302
+ if (this.isDiscriminatedUnion(options, sharedPropNames, allPropNames)) {
303
+ return null;
304
+ }
305
+ // Try to merge each property across all options
306
+ const mergedProperties = {};
307
+ for (const propName of allPropNames) {
308
+ const instances = [];
309
+ for (const opt of options) {
310
+ if (opt.properties?.[propName]) {
311
+ instances.push(opt.properties[propName]);
312
+ }
313
+ }
314
+ const merged = this.tryMergeProperty(instances);
315
+ if (!merged) {
316
+ return null; // Incompatible — bail out, keep as union
317
+ }
318
+ // Required only if property exists in ALL options AND required in all
319
+ const existsInAll = options.every((opt) => opt.properties?.[propName] !== undefined);
320
+ const requiredInAll = instances.every((inst) => inst.required === true);
321
+ merged.required = existsInAll && requiredInAll;
322
+ mergedProperties[propName] = merged;
323
+ }
324
+ // Derive a name from the union's path
325
+ const pathSegments = ir.path
326
+ .split(".")
327
+ .filter((x) => !/^\d+$/.test(x));
328
+ const name = pathSegments[pathSegments.length - 1] || "Merged";
329
+ const merged = {
330
+ type: "object",
331
+ properties: mergedProperties,
332
+ path: ir.path,
333
+ name,
334
+ signature: `merged:${++this.mergeCounter}`,
335
+ };
336
+ // Propagate additionalProperties when all options agree on the same value
337
+ if (hasAp) {
338
+ merged.additionalProperties = options[0].additionalProperties;
339
+ }
340
+ return merged;
341
+ }
342
+ /**
343
+ * Tries to merge multiple instances of the same property across union options.
344
+ * Returns the merged IRNode, or null if incompatible.
345
+ */
346
+ tryMergeProperty(instances) {
347
+ if (instances.length === 0)
348
+ return null;
349
+ if (instances.length === 1)
350
+ return { ...instances[0] };
351
+ const isStringEnum = (ir) => ir.type === "enum" &&
352
+ ir.values?.every((v) => typeof v === "string");
353
+ const isStringLiteral = (ir) => ir.type === "literal" && typeof ir.constraints?.value === "string";
354
+ // Merge string enums and/or string literals into a single enum
355
+ if (instances.every((inst) => isStringEnum(inst) || isStringLiteral(inst))) {
356
+ const seen = new Set();
357
+ const mergedValues = [];
358
+ for (const inst of instances) {
359
+ const values = isStringEnum(inst)
360
+ ? inst.values
361
+ : [inst.constraints.value];
362
+ for (const v of values) {
363
+ if (!seen.has(v)) {
364
+ seen.add(v);
365
+ mergedValues.push(v);
366
+ }
367
+ }
368
+ }
369
+ return {
370
+ type: "enum",
371
+ values: mergedValues,
372
+ path: instances[0].path,
373
+ };
374
+ }
375
+ // Same primitive type across all instances
376
+ const firstType = instances[0].type;
377
+ if (instances.every((inst) => inst.type === firstType) &&
378
+ ["string", "number", "integer", "boolean", "null"].includes(firstType)) {
379
+ return { ...instances[0] };
380
+ }
381
+ // Same object signature across all instances
382
+ if (instances.every((inst) => inst.type === "object" && inst.signature) &&
383
+ instances.every((inst) => inst.signature === instances[0].signature)) {
384
+ return { ...instances[0] };
385
+ }
386
+ // Incompatible types
387
+ return null;
388
+ }
389
+ /**
390
+ * Detects discriminated union patterns where merging would lose
391
+ * semantic precision. A discriminated union requires:
392
+ * 1. A shared property with distinct const/single-value-enum per option
393
+ * (the "discriminator")
394
+ * 2. Every option has at least one property exclusive to only that option
395
+ * (variant-specific fields tied to the discriminator value)
396
+ *
397
+ * This distinguishes true tagged unions (circle+radius vs square+side)
398
+ * from schemas where single-value enums represent different values of
399
+ * the same field that should be merged (past/current/future → Timeframe).
400
+ */
401
+ isDiscriminatedUnion(options, sharedPropNames, allPropNames) {
402
+ const hasOptionSpecificProps = allPropNames.length > sharedPropNames.length;
403
+ if (!hasOptionSpecificProps) {
404
+ return false;
405
+ }
406
+ // Check if any shared property acts as a discriminator:
407
+ // each option has a distinct const or single-value enum for that property
408
+ let hasDiscriminator = false;
409
+ for (const propName of sharedPropNames) {
410
+ const perOptionValues = options.map((opt) => {
411
+ const prop = opt.properties?.[propName];
412
+ if (!prop)
413
+ return undefined;
414
+ if (prop.type === "literal" &&
415
+ typeof prop.constraints?.value === "string") {
416
+ return prop.constraints.value;
417
+ }
418
+ if (prop.type === "enum" &&
419
+ prop.values?.length === 1 &&
420
+ typeof prop.values[0] === "string") {
421
+ return prop.values[0];
422
+ }
423
+ return undefined;
424
+ });
425
+ if (perOptionValues.every((v) => v !== undefined)) {
426
+ const uniqueValues = new Set(perOptionValues);
427
+ if (uniqueValues.size === options.length) {
428
+ hasDiscriminator = true;
429
+ break;
430
+ }
431
+ }
432
+ }
433
+ if (!hasDiscriminator) {
434
+ return false;
435
+ }
436
+ // For a true discriminated union, every option must have at least one
437
+ // property that is exclusive to ONLY that option (no other option has it).
438
+ // This distinguishes { kind:"circle", radius } | { kind:"square", side }
439
+ // from { timeframe:"past", title } | { timeframe:"current", title } | { timeframe:"future" }
440
+ const sharedSet = new Set(sharedPropNames);
441
+ return options.every((opt) => {
442
+ const optProps = Object.keys(opt.properties ?? {});
443
+ return optProps.some((propName) => {
444
+ if (sharedSet.has(propName))
445
+ return false;
446
+ // Check if this prop appears in any other option
447
+ return !options.some((other) => other !== opt &&
448
+ other.properties?.[propName] !== undefined);
449
+ });
450
+ });
451
+ }
209
452
  }
210
453
  //# sourceMappingURL=TypescriptConverter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypescriptConverter.js","sourceRoot":"","sources":["../src/TypescriptConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypescriptConverter.js","sourceRoot":"","sources":["../src/TypescriptConverter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ajsc",
3
- "version": "5.0.2",
3
+ "version": "5.0.3",
4
4
  "description": "Another Json-Schema Converter",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",