@jsonschema-editor/json-schema 0.1.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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/dist/attribute-registry.d.ts +14 -0
  4. package/dist/attribute-registry.d.ts.map +1 -0
  5. package/dist/attribute-registry.js +77 -0
  6. package/dist/attribute-registry.js.map +1 -0
  7. package/dist/document.d.ts +38 -0
  8. package/dist/document.d.ts.map +1 -0
  9. package/dist/document.js +132 -0
  10. package/dist/document.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +6 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/model/array-schema.d.ts +41 -0
  16. package/dist/model/array-schema.d.ts.map +1 -0
  17. package/dist/model/array-schema.js +160 -0
  18. package/dist/model/array-schema.js.map +1 -0
  19. package/dist/model/boolean-schema.d.ts +17 -0
  20. package/dist/model/boolean-schema.d.ts.map +1 -0
  21. package/dist/model/boolean-schema.js +31 -0
  22. package/dist/model/boolean-schema.js.map +1 -0
  23. package/dist/model/composition-schema.d.ts +36 -0
  24. package/dist/model/composition-schema.d.ts.map +1 -0
  25. package/dist/model/composition-schema.js +128 -0
  26. package/dist/model/composition-schema.js.map +1 -0
  27. package/dist/model/custom-attributes.d.ts +16 -0
  28. package/dist/model/custom-attributes.d.ts.map +1 -0
  29. package/dist/model/custom-attributes.js +41 -0
  30. package/dist/model/custom-attributes.js.map +1 -0
  31. package/dist/model/factory.d.ts +30 -0
  32. package/dist/model/factory.d.ts.map +1 -0
  33. package/dist/model/factory.js +88 -0
  34. package/dist/model/factory.js.map +1 -0
  35. package/dist/model/index.d.ts +19 -0
  36. package/dist/model/index.d.ts.map +1 -0
  37. package/dist/model/index.js +19 -0
  38. package/dist/model/index.js.map +1 -0
  39. package/dist/model/integer-schema.d.ts +2 -0
  40. package/dist/model/integer-schema.d.ts.map +1 -0
  41. package/dist/model/integer-schema.js +2 -0
  42. package/dist/model/integer-schema.js.map +1 -0
  43. package/dist/model/metadata.d.ts +25 -0
  44. package/dist/model/metadata.d.ts.map +1 -0
  45. package/dist/model/metadata.js +77 -0
  46. package/dist/model/metadata.js.map +1 -0
  47. package/dist/model/node.d.ts +54 -0
  48. package/dist/model/node.d.ts.map +1 -0
  49. package/dist/model/node.js +108 -0
  50. package/dist/model/node.js.map +1 -0
  51. package/dist/model/null-schema.d.ts +17 -0
  52. package/dist/model/null-schema.d.ts.map +1 -0
  53. package/dist/model/null-schema.js +31 -0
  54. package/dist/model/null-schema.js.map +1 -0
  55. package/dist/model/number-schema.d.ts +2 -0
  56. package/dist/model/number-schema.d.ts.map +1 -0
  57. package/dist/model/number-schema.js +2 -0
  58. package/dist/model/number-schema.js.map +1 -0
  59. package/dist/model/numeric-schema.d.ts +37 -0
  60. package/dist/model/numeric-schema.d.ts.map +1 -0
  61. package/dist/model/numeric-schema.js +95 -0
  62. package/dist/model/numeric-schema.js.map +1 -0
  63. package/dist/model/object-schema.d.ts +31 -0
  64. package/dist/model/object-schema.d.ts.map +1 -0
  65. package/dist/model/object-schema.js +119 -0
  66. package/dist/model/object-schema.js.map +1 -0
  67. package/dist/model/property-collection.d.ts +20 -0
  68. package/dist/model/property-collection.d.ts.map +1 -0
  69. package/dist/model/property-collection.js +61 -0
  70. package/dist/model/property-collection.js.map +1 -0
  71. package/dist/model/ref-schema.d.ts +20 -0
  72. package/dist/model/ref-schema.d.ts.map +1 -0
  73. package/dist/model/ref-schema.js +38 -0
  74. package/dist/model/ref-schema.js.map +1 -0
  75. package/dist/model/string-schema.d.ts +29 -0
  76. package/dist/model/string-schema.d.ts.map +1 -0
  77. package/dist/model/string-schema.js +75 -0
  78. package/dist/model/string-schema.js.map +1 -0
  79. package/dist/model/type-variants.d.ts +9 -0
  80. package/dist/model/type-variants.d.ts.map +1 -0
  81. package/dist/model/type-variants.js +25 -0
  82. package/dist/model/type-variants.js.map +1 -0
  83. package/dist/model/untyped-schema.d.ts +18 -0
  84. package/dist/model/untyped-schema.d.ts.map +1 -0
  85. package/dist/model/untyped-schema.js +31 -0
  86. package/dist/model/untyped-schema.js.map +1 -0
  87. package/dist/model/visitor.d.ts +23 -0
  88. package/dist/model/visitor.d.ts.map +1 -0
  89. package/dist/model/visitor.js +2 -0
  90. package/dist/model/visitor.js.map +1 -0
  91. package/dist/parse.d.ts +6 -0
  92. package/dist/parse.d.ts.map +1 -0
  93. package/dist/parse.js +6 -0
  94. package/dist/parse.js.map +1 -0
  95. package/dist/types.d.ts +39 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +2 -0
  98. package/dist/types.js.map +1 -0
  99. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-schema.js","sourceRoot":"","sources":["../../src/model/boolean-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,OAAO,aAAc,SAAQ,UAAU;IAClC,QAAQ,GAAG,SAAkB,CAAC;IAEvC,YACE,QAAsC,EACtC,WAA2B,IAAI,cAAc,EAAE,EAC/C,gBAA4C;QAE5C,KAAK,CAAC,QAAQ,EAAE,gBAAgB,IAAI,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAsB,EAAE,OAAsB;QAC5D,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAI,OAAyB;QACjC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,SAAS;QACP,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAES,mBAAmB,CAAC,IAAsB;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import type { JsonSchemaAttributeRegistry } from "../attribute-registry.js";
2
+ import type { JsonSchemaObject } from "../types.js";
3
+ import { CustomAttributeCollection } from "./custom-attributes.js";
4
+ import type { SchemaFactory } from "./factory.js";
5
+ import { CompositeSchema, SchemaNode } from "./node.js";
6
+ import { SchemaMetadata } from "./metadata.js";
7
+ import { ObjectSchema } from "./object-schema.js";
8
+ import type { SchemaVisitor } from "./visitor.js";
9
+ export type CompositionOperator = "allOf" | "anyOf" | "oneOf";
10
+ export declare class CompositionSchema extends CompositeSchema {
11
+ readonly nodeKind: "composition";
12
+ private readonly _allOf;
13
+ private readonly _anyOf;
14
+ private readonly _oneOf;
15
+ constructor(registry?: JsonSchemaAttributeRegistry, metadata?: SchemaMetadata, customAttributes?: CustomAttributeCollection);
16
+ get allOf(): readonly SchemaNode[];
17
+ get anyOf(): readonly SchemaNode[];
18
+ get oneOf(): readonly SchemaNode[];
19
+ get branches(): readonly SchemaNode[];
20
+ get compositionType(): CompositionOperator | null;
21
+ get activeOperators(): CompositionOperator[];
22
+ addBranch(operator: CompositionOperator, schema: SchemaNode): this;
23
+ getBranch(operator: CompositionOperator, index: number): SchemaNode | undefined;
24
+ setBranch(operator: CompositionOperator, index: number, schema: SchemaNode): this;
25
+ removeBranch(operator: CompositionOperator, index: number): this;
26
+ getChildren(): readonly SchemaNode[];
27
+ mergeToObject(): ObjectSchema | undefined;
28
+ static fromJSON(json: JsonSchemaObject, factory: SchemaFactory): CompositionSchema;
29
+ accept<T>(visitor: SchemaVisitor<T>): T;
30
+ deepClone(): CompositionSchema;
31
+ createDefaultValue(): unknown;
32
+ protected writeTypeDefinition(json: JsonSchemaObject): void;
33
+ protected resolvePathImpl(segments: readonly string[]): SchemaNode | undefined;
34
+ private getMutableBranch;
35
+ }
36
+ //# sourceMappingURL=composition-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-schema.d.ts","sourceRoot":"","sources":["../../src/model/composition-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9D,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAE3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAGzC,QAAQ,CAAC,EAAE,2BAA2B,EACtC,QAAQ,GAAE,cAAqC,EAC/C,gBAAgB,CAAC,EAAE,yBAAyB;IAK9C,IAAI,KAAK,IAAI,SAAS,UAAU,EAAE,CAEjC;IAED,IAAI,KAAK,IAAI,SAAS,UAAU,EAAE,CAEjC;IAED,IAAI,KAAK,IAAI,SAAS,UAAU,EAAE,CAEjC;IAED,IAAI,QAAQ,IAAI,SAAS,UAAU,EAAE,CAIpC;IAED,IAAI,eAAe,IAAI,mBAAmB,GAAG,IAAI,CAEhD;IAED,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAM3C;IAED,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAKlE,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI/E,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IASjF,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAShE,WAAW,IAAI,SAAS,UAAU,EAAE;IAIpC,aAAa,IAAI,YAAY,GAAG,SAAS;IAazC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,GAAG,iBAAiB;IASlF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAIvC,SAAS,IAAI,iBAAiB;IAU9B,kBAAkB,IAAI,OAAO;IAK7B,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAM3D,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAM9E,OAAO,CAAC,gBAAgB;CAUzB"}
@@ -0,0 +1,128 @@
1
+ import { CustomAttributeCollection } from "./custom-attributes.js";
2
+ import { CompositeSchema } from "./node.js";
3
+ import { SchemaMetadata } from "./metadata.js";
4
+ import { ObjectSchema } from "./object-schema.js";
5
+ export class CompositionSchema extends CompositeSchema {
6
+ nodeKind = "composition";
7
+ _allOf = [];
8
+ _anyOf = [];
9
+ _oneOf = [];
10
+ constructor(registry, metadata = new SchemaMetadata(), customAttributes) {
11
+ super(metadata, customAttributes ?? new CustomAttributeCollection(registry));
12
+ }
13
+ get allOf() {
14
+ return this._allOf;
15
+ }
16
+ get anyOf() {
17
+ return this._anyOf;
18
+ }
19
+ get oneOf() {
20
+ return this._oneOf;
21
+ }
22
+ get branches() {
23
+ if (this._oneOf.length)
24
+ return this._oneOf;
25
+ if (this._anyOf.length)
26
+ return this._anyOf;
27
+ return this._allOf;
28
+ }
29
+ get compositionType() {
30
+ return this.activeOperators[0] ?? null;
31
+ }
32
+ get activeOperators() {
33
+ const operators = [];
34
+ if (this._allOf.length)
35
+ operators.push("allOf");
36
+ if (this._anyOf.length)
37
+ operators.push("anyOf");
38
+ if (this._oneOf.length)
39
+ operators.push("oneOf");
40
+ return operators;
41
+ }
42
+ addBranch(operator, schema) {
43
+ this.getMutableBranch(operator).push(schema);
44
+ return this;
45
+ }
46
+ getBranch(operator, index) {
47
+ return this.getMutableBranch(operator)[index];
48
+ }
49
+ setBranch(operator, index, schema) {
50
+ const branch = this.getMutableBranch(operator);
51
+ if (index < 0 || index >= branch.length) {
52
+ throw new Error(`Branch index ${index} out of range for ${operator}.`);
53
+ }
54
+ branch[index] = schema;
55
+ return this;
56
+ }
57
+ removeBranch(operator, index) {
58
+ const branch = this.getMutableBranch(operator);
59
+ if (index < 0 || index >= branch.length) {
60
+ throw new Error(`Branch index ${index} out of range for ${operator}.`);
61
+ }
62
+ branch.splice(index, 1);
63
+ return this;
64
+ }
65
+ getChildren() {
66
+ return [...this._allOf, ...this._anyOf, ...this._oneOf];
67
+ }
68
+ mergeToObject() {
69
+ const merged = new ObjectSchema();
70
+ for (const branch of this._allOf.length ? this._allOf : this.branches) {
71
+ if (!(branch instanceof ObjectSchema))
72
+ continue;
73
+ for (const [name, prop] of branch.properties) {
74
+ merged.setProperty(name, prop.deepClone(), branch.isPropertyRequired(name));
75
+ }
76
+ }
77
+ return merged.propertyCount > 0 ? merged : undefined;
78
+ }
79
+ static fromJSON(json, factory) {
80
+ const node = new CompositionSchema(factory.attributeRegistry);
81
+ node.applyMetadata(json);
82
+ node._allOf.push(...(json.allOf ?? []).map((s) => factory.fromJSON(s)));
83
+ node._anyOf.push(...(json.anyOf ?? []).map((s) => factory.fromJSON(s)));
84
+ node._oneOf.push(...(json.oneOf ?? []).map((s) => factory.fromJSON(s)));
85
+ return node;
86
+ }
87
+ accept(visitor) {
88
+ return visitor.visitComposition(this);
89
+ }
90
+ deepClone() {
91
+ const { metadata, customAttributes, typeVariants } = this.cloneBase();
92
+ const copy = new CompositionSchema(undefined, metadata, customAttributes);
93
+ copy.typeVariants = typeVariants;
94
+ copy._allOf.push(...this._allOf.map((s) => s.deepClone()));
95
+ copy._anyOf.push(...this._anyOf.map((s) => s.deepClone()));
96
+ copy._oneOf.push(...this._oneOf.map((s) => s.deepClone()));
97
+ return copy;
98
+ }
99
+ createDefaultValue() {
100
+ const first = this.branches[0];
101
+ return first ? first.createDefaultValue() : null;
102
+ }
103
+ writeTypeDefinition(json) {
104
+ if (this._allOf.length)
105
+ json.allOf = this._allOf.map((s) => s.toJSON());
106
+ if (this._anyOf.length)
107
+ json.anyOf = this._anyOf.map((s) => s.toJSON());
108
+ if (this._oneOf.length)
109
+ json.oneOf = this._oneOf.map((s) => s.toJSON());
110
+ }
111
+ resolvePathImpl(segments) {
112
+ const merged = this.mergeToObject();
113
+ if (!merged)
114
+ return undefined;
115
+ return merged.resolvePath(segments);
116
+ }
117
+ getMutableBranch(operator) {
118
+ switch (operator) {
119
+ case "allOf":
120
+ return this._allOf;
121
+ case "anyOf":
122
+ return this._anyOf;
123
+ case "oneOf":
124
+ return this._oneOf;
125
+ }
126
+ }
127
+ }
128
+ //# sourceMappingURL=composition-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-schema.js","sourceRoot":"","sources":["../../src/model/composition-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { JsonSchemaAttributeRegistry } from "../attribute-registry.js";
2
+ import type { JsonSchemaObject } from "../types.js";
3
+ export declare class CustomAttributeCollection {
4
+ private readonly registry;
5
+ private readonly values;
6
+ constructor(registry?: JsonSchemaAttributeRegistry);
7
+ get(name: string): unknown;
8
+ set(name: string, value: unknown): this;
9
+ delete(name: string): boolean;
10
+ has(name: string): boolean;
11
+ entries(): IterableIterator<[string, unknown]>;
12
+ applyFrom(json: JsonSchemaObject): void;
13
+ writeTo(json: JsonSchemaObject): void;
14
+ clone(registry?: JsonSchemaAttributeRegistry): CustomAttributeCollection;
15
+ }
16
+ //# sourceMappingURL=custom-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-attributes.d.ts","sourceRoot":"","sources":["../../src/model/custom-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAGlC,QAAQ,GAAE,2BAA+D;IAG5F,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9C,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIrC,KAAK,CAAC,QAAQ,GAAE,2BAA2C,GAAG,yBAAyB;CAOxF"}
@@ -0,0 +1,41 @@
1
+ import { globalJsonSchemaAttributeRegistry } from "../attribute-registry.js";
2
+ export class CustomAttributeCollection {
3
+ registry;
4
+ values = new Map();
5
+ constructor(registry = globalJsonSchemaAttributeRegistry) {
6
+ this.registry = registry;
7
+ }
8
+ get(name) {
9
+ return this.values.get(name);
10
+ }
11
+ set(name, value) {
12
+ this.values.set(name, value);
13
+ return this;
14
+ }
15
+ delete(name) {
16
+ return this.values.delete(name);
17
+ }
18
+ has(name) {
19
+ return this.values.has(name);
20
+ }
21
+ entries() {
22
+ return this.values.entries();
23
+ }
24
+ applyFrom(json) {
25
+ this.values.clear();
26
+ for (const [key, value] of this.registry.readCustomAttributes(json)) {
27
+ this.values.set(key, value);
28
+ }
29
+ }
30
+ writeTo(json) {
31
+ this.registry.writeCustomAttributes(json, this.values);
32
+ }
33
+ clone(registry = this.registry) {
34
+ const copy = new CustomAttributeCollection(registry);
35
+ for (const [key, value] of this.values) {
36
+ copy.values.set(key, structuredClone(value));
37
+ }
38
+ return copy;
39
+ }
40
+ }
41
+ //# sourceMappingURL=custom-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-attributes.js","sourceRoot":"","sources":["../../src/model/custom-attributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAG7E,MAAM,OAAO,yBAAyB;IAIjB;IAHF,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAErD,YACmB,WAAwC,iCAAiC;QAAzE,aAAQ,GAAR,QAAQ,CAAiE;IACzF,CAAC;IAEJ,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAc;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,IAAsB;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAsB;QAC5B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAwC,IAAI,CAAC,QAAQ;QACzD,MAAM,IAAI,GAAG,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import type { JsonSchemaAttributeRegistry } from "../attribute-registry.js";
2
+ import type { JsonSchemaObject } from "../types.js";
3
+ import { ArraySchema } from "./array-schema.js";
4
+ import { BooleanSchema } from "./boolean-schema.js";
5
+ import { CompositionSchema } from "./composition-schema.js";
6
+ import { IntegerSchema } from "./integer-schema.js";
7
+ import { NullSchema } from "./null-schema.js";
8
+ import { NumberSchema } from "./number-schema.js";
9
+ import { ObjectSchema } from "./object-schema.js";
10
+ import { RefSchema } from "./ref-schema.js";
11
+ import { StringSchema } from "./string-schema.js";
12
+ import { UntypedSchema } from "./untyped-schema.js";
13
+ import type { SchemaNode } from "./node.js";
14
+ export declare class SchemaFactory {
15
+ readonly attributeRegistry: JsonSchemaAttributeRegistry;
16
+ constructor(attributeRegistry?: JsonSchemaAttributeRegistry);
17
+ fromJSON(json: JsonSchemaObject): SchemaNode;
18
+ createRef(ref: string): RefSchema;
19
+ createComposition(): CompositionSchema;
20
+ createObject(): ObjectSchema;
21
+ createArray(): ArraySchema;
22
+ createString(): StringSchema;
23
+ createNumber(): NumberSchema;
24
+ createInteger(): IntegerSchema;
25
+ createBoolean(): BooleanSchema;
26
+ createNull(): NullSchema;
27
+ createUntyped(): UntypedSchema;
28
+ }
29
+ export declare const defaultSchemaFactory: SchemaFactory;
30
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/model/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,aAAa;aAEN,iBAAiB,EAAE,2BAA2B;gBAA9C,iBAAiB,GAAE,2BAA+D;IAGpG,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU;IAoC5C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAIjC,iBAAiB,IAAI,iBAAiB;IAItC,YAAY,IAAI,YAAY;IAI5B,WAAW,IAAI,WAAW;IAI1B,YAAY,IAAI,YAAY;IAI5B,YAAY,IAAI,YAAY;IAI5B,aAAa,IAAI,aAAa;IAI9B,aAAa,IAAI,aAAa;IAI9B,UAAU,IAAI,UAAU;IAIxB,aAAa,IAAI,aAAa;CAG/B;AAED,eAAO,MAAM,oBAAoB,eAAsB,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { globalJsonSchemaAttributeRegistry } from "../attribute-registry.js";
2
+ import { ArraySchema } from "./array-schema.js";
3
+ import { BooleanSchema } from "./boolean-schema.js";
4
+ import { CompositionSchema } from "./composition-schema.js";
5
+ import { IntegerSchema } from "./integer-schema.js";
6
+ import { NullSchema } from "./null-schema.js";
7
+ import { NumberSchema } from "./number-schema.js";
8
+ import { ObjectSchema } from "./object-schema.js";
9
+ import { RefSchema } from "./ref-schema.js";
10
+ import { StringSchema } from "./string-schema.js";
11
+ import { UntypedSchema } from "./untyped-schema.js";
12
+ export class SchemaFactory {
13
+ attributeRegistry;
14
+ constructor(attributeRegistry = globalJsonSchemaAttributeRegistry) {
15
+ this.attributeRegistry = attributeRegistry;
16
+ }
17
+ fromJSON(json) {
18
+ if (json.$ref) {
19
+ return RefSchema.fromJSON(json, this);
20
+ }
21
+ if (json.allOf?.length || json.anyOf?.length || json.oneOf?.length) {
22
+ return CompositionSchema.fromJSON(json, this);
23
+ }
24
+ const type = resolvePrimaryType(json.type);
25
+ switch (type) {
26
+ case "object":
27
+ return ObjectSchema.fromJSON(json, this);
28
+ case "array":
29
+ return ArraySchema.fromJSON(json, this);
30
+ case "string":
31
+ return StringSchema.fromJSON(json, this);
32
+ case "number":
33
+ return NumberSchema.fromJSON(json, this);
34
+ case "integer":
35
+ return IntegerSchema.fromJSON(json, this);
36
+ case "boolean":
37
+ return BooleanSchema.fromJSON(json, this);
38
+ case "null":
39
+ return NullSchema.fromJSON(json, this);
40
+ default:
41
+ if (json.properties) {
42
+ return ObjectSchema.fromJSON({ ...json, type: "object" }, this);
43
+ }
44
+ if (json.prefixItems?.length || json.items) {
45
+ return ArraySchema.fromJSON({ ...json, type: "array" }, this);
46
+ }
47
+ return UntypedSchema.fromJSON(json, this);
48
+ }
49
+ }
50
+ createRef(ref) {
51
+ return new RefSchema(ref, this.attributeRegistry);
52
+ }
53
+ createComposition() {
54
+ return new CompositionSchema(this.attributeRegistry);
55
+ }
56
+ createObject() {
57
+ return new ObjectSchema(this.attributeRegistry);
58
+ }
59
+ createArray() {
60
+ return new ArraySchema(this.attributeRegistry);
61
+ }
62
+ createString() {
63
+ return new StringSchema(this.attributeRegistry);
64
+ }
65
+ createNumber() {
66
+ return new NumberSchema(this.attributeRegistry);
67
+ }
68
+ createInteger() {
69
+ return new IntegerSchema(this.attributeRegistry);
70
+ }
71
+ createBoolean() {
72
+ return new BooleanSchema(this.attributeRegistry);
73
+ }
74
+ createNull() {
75
+ return new NullSchema(this.attributeRegistry);
76
+ }
77
+ createUntyped() {
78
+ return new UntypedSchema(this.attributeRegistry);
79
+ }
80
+ }
81
+ export const defaultSchemaFactory = new SchemaFactory();
82
+ function resolvePrimaryType(type) {
83
+ if (Array.isArray(type)) {
84
+ return type.find((t) => t !== "null") ?? type[0];
85
+ }
86
+ return type;
87
+ }
88
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/model/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,aAAa;IAEN;IADlB,YACkB,oBAAiD,iCAAiC;QAAlF,sBAAiB,GAAjB,iBAAiB,CAAiE;IACjG,CAAC;IAEJ,QAAQ,CAAC,IAAsB;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACnE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,OAAO;gBACV,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,KAAK,QAAQ;gBACX,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,QAAQ;gBACX,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,SAAS;gBACZ,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,KAAK,SAAS;gBACZ,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,KAAK,MAAM;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC;gBACE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;gBAClE,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3C,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,aAAa,EAAE,CAAC;AAExD,SAAS,kBAAkB,CACzB,IAAmD;IAEnD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,19 @@
1
+ export * from "./node.js";
2
+ export * from "./metadata.js";
3
+ export * from "./custom-attributes.js";
4
+ export * from "./property-collection.js";
5
+ export * from "./visitor.js";
6
+ export * from "./factory.js";
7
+ export * from "./ref-schema.js";
8
+ export * from "./composition-schema.js";
9
+ export * from "./object-schema.js";
10
+ export * from "./array-schema.js";
11
+ export * from "./string-schema.js";
12
+ export * from "./numeric-schema.js";
13
+ export * from "./number-schema.js";
14
+ export * from "./integer-schema.js";
15
+ export * from "./boolean-schema.js";
16
+ export * from "./null-schema.js";
17
+ export * from "./untyped-schema.js";
18
+ export * from "./type-variants.js";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export * from "./node.js";
2
+ export * from "./metadata.js";
3
+ export * from "./custom-attributes.js";
4
+ export * from "./property-collection.js";
5
+ export * from "./visitor.js";
6
+ export * from "./factory.js";
7
+ export * from "./ref-schema.js";
8
+ export * from "./composition-schema.js";
9
+ export * from "./object-schema.js";
10
+ export * from "./array-schema.js";
11
+ export * from "./string-schema.js";
12
+ export * from "./numeric-schema.js";
13
+ export * from "./number-schema.js";
14
+ export * from "./integer-schema.js";
15
+ export * from "./boolean-schema.js";
16
+ export * from "./null-schema.js";
17
+ export * from "./untyped-schema.js";
18
+ export * from "./type-variants.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { IntegerSchema } from "./numeric-schema.js";
2
+ //# sourceMappingURL=integer-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-schema.d.ts","sourceRoot":"","sources":["../../src/model/integer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { IntegerSchema } from "./numeric-schema.js";
2
+ //# sourceMappingURL=integer-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-schema.js","sourceRoot":"","sources":["../../src/model/integer-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { JsonSchemaObject } from "../types.js";
2
+ export declare class SchemaMetadata {
3
+ private _title?;
4
+ private _description?;
5
+ private _defaultValue?;
6
+ private _examples?;
7
+ private _enumValues?;
8
+ private _constValue?;
9
+ get title(): string | undefined;
10
+ set title(value: string | undefined);
11
+ get description(): string | undefined;
12
+ set description(value: string | undefined);
13
+ get defaultValue(): unknown;
14
+ set defaultValue(value: unknown);
15
+ get examples(): unknown[] | undefined;
16
+ set examples(value: unknown[] | undefined);
17
+ get enumValues(): unknown[] | undefined;
18
+ set enumValues(value: unknown[] | undefined);
19
+ get constValue(): unknown;
20
+ set constValue(value: unknown);
21
+ applyFrom(json: JsonSchemaObject): void;
22
+ writeTo(json: JsonSchemaObject): void;
23
+ clone(): SchemaMetadata;
24
+ }
25
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/model/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAY;IAChC,OAAO,CAAC,WAAW,CAAC,CAAU;IAE9B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;IAED,IAAI,QAAQ,IAAI,OAAO,EAAE,GAAG,SAAS,CAEpC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAExC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,GAAG,SAAS,CAEtC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAE1C;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IAED,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IASvC,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IASrC,KAAK,IAAI,cAAc;CAUxB"}
@@ -0,0 +1,77 @@
1
+ export class SchemaMetadata {
2
+ _title;
3
+ _description;
4
+ _defaultValue;
5
+ _examples;
6
+ _enumValues;
7
+ _constValue;
8
+ get title() {
9
+ return this._title;
10
+ }
11
+ set title(value) {
12
+ this._title = value;
13
+ }
14
+ get description() {
15
+ return this._description;
16
+ }
17
+ set description(value) {
18
+ this._description = value;
19
+ }
20
+ get defaultValue() {
21
+ return this._defaultValue;
22
+ }
23
+ set defaultValue(value) {
24
+ this._defaultValue = value;
25
+ }
26
+ get examples() {
27
+ return this._examples;
28
+ }
29
+ set examples(value) {
30
+ this._examples = value;
31
+ }
32
+ get enumValues() {
33
+ return this._enumValues;
34
+ }
35
+ set enumValues(value) {
36
+ this._enumValues = value;
37
+ }
38
+ get constValue() {
39
+ return this._constValue;
40
+ }
41
+ set constValue(value) {
42
+ this._constValue = value;
43
+ }
44
+ applyFrom(json) {
45
+ this._title = json.title;
46
+ this._description = json.description;
47
+ this._defaultValue = json.default;
48
+ this._examples = json.examples;
49
+ this._enumValues = json.enum;
50
+ this._constValue = json.const;
51
+ }
52
+ writeTo(json) {
53
+ if (this._title !== undefined)
54
+ json.title = this._title;
55
+ if (this._description !== undefined)
56
+ json.description = this._description;
57
+ if (this._defaultValue !== undefined)
58
+ json.default = this._defaultValue;
59
+ if (this._examples !== undefined)
60
+ json.examples = this._examples;
61
+ if (this._enumValues !== undefined)
62
+ json.enum = this._enumValues;
63
+ if (this._constValue !== undefined)
64
+ json.const = this._constValue;
65
+ }
66
+ clone() {
67
+ const copy = new SchemaMetadata();
68
+ copy._title = this._title;
69
+ copy._description = this._description;
70
+ copy._defaultValue = this._defaultValue;
71
+ copy._examples = this._examples ? [...this._examples] : undefined;
72
+ copy._enumValues = this._enumValues ? [...this._enumValues] : undefined;
73
+ copy._constValue = this._constValue;
74
+ return copy;
75
+ }
76
+ }
77
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/model/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { JsonSchemaObject, JsonSchemaType } from "../types.js";
2
+ import { CustomAttributeCollection } from "./custom-attributes.js";
3
+ import { SchemaMetadata } from "./metadata.js";
4
+ import { TypeVariants } from "./type-variants.js";
5
+ import type { SchemaVisitor } from "./visitor.js";
6
+ export type SchemaNodeKind = "ref" | "composition" | "object" | "array" | "string" | "number" | "integer" | "boolean" | "null" | "untyped";
7
+ export declare abstract class SchemaNode {
8
+ protected readonly metadata: SchemaMetadata;
9
+ protected readonly customAttributes: CustomAttributeCollection;
10
+ protected typeVariants: TypeVariants;
11
+ protected constructor(metadata: SchemaMetadata, customAttributes: CustomAttributeCollection);
12
+ abstract readonly nodeKind: SchemaNodeKind;
13
+ abstract accept<T>(visitor: SchemaVisitor<T>): T;
14
+ abstract deepClone(): SchemaNode;
15
+ abstract createDefaultValue(): unknown;
16
+ protected abstract writeTypeDefinition(json: JsonSchemaObject): void;
17
+ protected abstract resolvePathImpl(segments: readonly string[]): SchemaNode | undefined;
18
+ resolvePath(segments: readonly string[]): SchemaNode | undefined;
19
+ toJSON(): JsonSchemaObject;
20
+ resolveAtScope(scope: string): SchemaNode | undefined;
21
+ clone(): SchemaNode;
22
+ get kind(): SchemaNodeKind;
23
+ get title(): string | undefined;
24
+ set title(value: string | undefined);
25
+ get description(): string | undefined;
26
+ set description(value: string | undefined);
27
+ get defaultValue(): unknown;
28
+ set defaultValue(value: unknown);
29
+ get examples(): unknown[] | undefined;
30
+ set examples(value: unknown[] | undefined);
31
+ get enumValues(): unknown[] | undefined;
32
+ set enumValues(value: unknown[] | undefined);
33
+ get constValue(): unknown;
34
+ set constValue(value: unknown);
35
+ getCustomAttribute<T = unknown>(name: string): T | undefined;
36
+ setCustomAttribute(name: string, value: unknown): void;
37
+ deleteCustomAttribute(name: string): boolean;
38
+ protected applyTypeFrom(json: JsonSchemaObject): void;
39
+ protected writeTypeTo(json: JsonSchemaObject, fallback: JsonSchemaType): void;
40
+ protected cloneBase(): {
41
+ metadata: SchemaMetadata;
42
+ customAttributes: CustomAttributeCollection;
43
+ typeVariants: TypeVariants;
44
+ };
45
+ protected applyMetadata(json: JsonSchemaObject): void;
46
+ }
47
+ export declare abstract class LeafSchema extends SchemaNode {
48
+ protected resolvePathImpl(_segments: readonly string[]): SchemaNode | undefined;
49
+ }
50
+ export declare abstract class CompositeSchema extends SchemaNode {
51
+ abstract getChildren(): readonly SchemaNode[];
52
+ }
53
+ export declare function parseScope(scope: string): string[];
54
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/model/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,aAAa,GACb,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,CAAC;AAEd,8BAAsB,UAAU;IAI5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IAC3C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB;IAJhE,SAAS,CAAC,YAAY,eAAsB;IAE5C,SAAS,aACY,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,yBAAyB;IAGhE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAE3C,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,QAAQ,CAAC,SAAS,IAAI,UAAU;IAChC,QAAQ,CAAC,kBAAkB,IAAI,OAAO;IAEtC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IACpE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAEvF,WAAW,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAIhE,MAAM,IAAI,gBAAgB;IAQ1B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,KAAK,IAAI,UAAU;IAInB,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;IAED,IAAI,QAAQ,IAAI,OAAO,EAAE,GAAG,SAAS,CAEpC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAExC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,GAAG,SAAS,CAEtC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAE1C;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IAED,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI5D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAItD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIrD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI7E,SAAS,CAAC,SAAS,IAAI;QACrB,QAAQ,EAAE,cAAc,CAAC;QACzB,gBAAgB,EAAE,yBAAyB,CAAC;QAC5C,YAAY,EAAE,YAAY,CAAC;KAC5B;IAQD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;CAItD;AAED,8BAAsB,UAAW,SAAQ,UAAU;IACjD,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;CAGhF;AAED,8BAAsB,eAAgB,SAAQ,UAAU;IACtD,QAAQ,CAAC,WAAW,IAAI,SAAS,UAAU,EAAE;CAC9C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQlD"}