@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.
- package/LICENSE +21 -0
- package/README.md +45 -0
- package/dist/attribute-registry.d.ts +14 -0
- package/dist/attribute-registry.d.ts.map +1 -0
- package/dist/attribute-registry.js +77 -0
- package/dist/attribute-registry.js.map +1 -0
- package/dist/document.d.ts +38 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +132 -0
- package/dist/document.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/model/array-schema.d.ts +41 -0
- package/dist/model/array-schema.d.ts.map +1 -0
- package/dist/model/array-schema.js +160 -0
- package/dist/model/array-schema.js.map +1 -0
- package/dist/model/boolean-schema.d.ts +17 -0
- package/dist/model/boolean-schema.d.ts.map +1 -0
- package/dist/model/boolean-schema.js +31 -0
- package/dist/model/boolean-schema.js.map +1 -0
- package/dist/model/composition-schema.d.ts +36 -0
- package/dist/model/composition-schema.d.ts.map +1 -0
- package/dist/model/composition-schema.js +128 -0
- package/dist/model/composition-schema.js.map +1 -0
- package/dist/model/custom-attributes.d.ts +16 -0
- package/dist/model/custom-attributes.d.ts.map +1 -0
- package/dist/model/custom-attributes.js +41 -0
- package/dist/model/custom-attributes.js.map +1 -0
- package/dist/model/factory.d.ts +30 -0
- package/dist/model/factory.d.ts.map +1 -0
- package/dist/model/factory.js +88 -0
- package/dist/model/factory.js.map +1 -0
- package/dist/model/index.d.ts +19 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +19 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/integer-schema.d.ts +2 -0
- package/dist/model/integer-schema.d.ts.map +1 -0
- package/dist/model/integer-schema.js +2 -0
- package/dist/model/integer-schema.js.map +1 -0
- package/dist/model/metadata.d.ts +25 -0
- package/dist/model/metadata.d.ts.map +1 -0
- package/dist/model/metadata.js +77 -0
- package/dist/model/metadata.js.map +1 -0
- package/dist/model/node.d.ts +54 -0
- package/dist/model/node.d.ts.map +1 -0
- package/dist/model/node.js +108 -0
- package/dist/model/node.js.map +1 -0
- package/dist/model/null-schema.d.ts +17 -0
- package/dist/model/null-schema.d.ts.map +1 -0
- package/dist/model/null-schema.js +31 -0
- package/dist/model/null-schema.js.map +1 -0
- package/dist/model/number-schema.d.ts +2 -0
- package/dist/model/number-schema.d.ts.map +1 -0
- package/dist/model/number-schema.js +2 -0
- package/dist/model/number-schema.js.map +1 -0
- package/dist/model/numeric-schema.d.ts +37 -0
- package/dist/model/numeric-schema.d.ts.map +1 -0
- package/dist/model/numeric-schema.js +95 -0
- package/dist/model/numeric-schema.js.map +1 -0
- package/dist/model/object-schema.d.ts +31 -0
- package/dist/model/object-schema.d.ts.map +1 -0
- package/dist/model/object-schema.js +119 -0
- package/dist/model/object-schema.js.map +1 -0
- package/dist/model/property-collection.d.ts +20 -0
- package/dist/model/property-collection.d.ts.map +1 -0
- package/dist/model/property-collection.js +61 -0
- package/dist/model/property-collection.js.map +1 -0
- package/dist/model/ref-schema.d.ts +20 -0
- package/dist/model/ref-schema.d.ts.map +1 -0
- package/dist/model/ref-schema.js +38 -0
- package/dist/model/ref-schema.js.map +1 -0
- package/dist/model/string-schema.d.ts +29 -0
- package/dist/model/string-schema.d.ts.map +1 -0
- package/dist/model/string-schema.js +75 -0
- package/dist/model/string-schema.js.map +1 -0
- package/dist/model/type-variants.d.ts +9 -0
- package/dist/model/type-variants.d.ts.map +1 -0
- package/dist/model/type-variants.js +25 -0
- package/dist/model/type-variants.js.map +1 -0
- package/dist/model/untyped-schema.d.ts +18 -0
- package/dist/model/untyped-schema.d.ts.map +1 -0
- package/dist/model/untyped-schema.js +31 -0
- package/dist/model/untyped-schema.js.map +1 -0
- package/dist/model/visitor.d.ts +23 -0
- package/dist/model/visitor.d.ts.map +1 -0
- package/dist/model/visitor.js +2 -0
- package/dist/model/visitor.js.map +1 -0
- package/dist/parse.d.ts +6 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +6 -0
- package/dist/parse.js.map +1 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"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"}
|