@texaryn/schema-json 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +169 -0
- package/THIRD-PARTY-NOTICES.md +43 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +8 -0
- package/dist/adapter.js.map +1 -1
- package/dist/metaschemas/2019-09.d.ts +4 -0
- package/dist/metaschemas/2019-09.d.ts.map +1 -0
- package/dist/metaschemas/2019-09.js +18 -0
- package/dist/metaschemas/2019-09.js.map +1 -0
- package/dist/metaschemas/2020-12.d.ts +4 -0
- package/dist/metaschemas/2020-12.d.ts.map +1 -0
- package/dist/metaschemas/2020-12.js +20 -0
- package/dist/metaschemas/2020-12.js.map +1 -0
- package/dist/metaschemas/draft-07.d.ts +4 -0
- package/dist/metaschemas/draft-07.d.ts.map +1 -0
- package/dist/metaschemas/draft-07.js +6 -0
- package/dist/metaschemas/draft-07.js.map +1 -0
- package/dist/metaschemas/index.d.ts +22 -0
- package/dist/metaschemas/index.d.ts.map +1 -0
- package/dist/metaschemas/index.js +102 -0
- package/dist/metaschemas/index.js.map +1 -0
- package/dist/projection.d.ts +1 -1
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +629 -51
- package/dist/projection.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,174 @@
|
|
|
1
1
|
# @texaryn/schema-json
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a53724c: Report two disagreeing applicable defaults rather than merging them
|
|
8
|
+
|
|
9
|
+
`AnnotationSet.default` is one value, so an adapter that merges before core sees
|
|
10
|
+
anything reported whichever declaration its merge kept. For
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
{
|
|
14
|
+
type: 'object',
|
|
15
|
+
allOf: [
|
|
16
|
+
{ properties: { x: { type: 'string', default: 'a' } } },
|
|
17
|
+
{ properties: { x: { type: 'string', default: 'b' } } },
|
|
18
|
+
],
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`@texaryn/schema-json` reported `'b'` and `@texaryn/schema-json-hyperjump`
|
|
23
|
+
reported `'a'`. Neither is wrong, which is why neither can be the answer: in
|
|
24
|
+
JSON Schema two `allOf` branches are conjunctive and neither is nearer.
|
|
25
|
+
|
|
26
|
+
`/x` now projects with no `default` at all, and the projection carries an
|
|
27
|
+
`ambiguous-default` diagnostic naming the two schema positions that disagreed.
|
|
28
|
+
That is the rule `ambiguous-projection-shape` already applies to a shape two
|
|
29
|
+
keyword families disagree about, one level down.
|
|
30
|
+
|
|
31
|
+
Scope is declarations that apply to every instance: a location's own, and those
|
|
32
|
+
reached through `allOf` and `$ref`. A declaration carried by `oneOf`, `anyOf`,
|
|
33
|
+
`if`/`then`/`else` or `dependentSchemas` competes with the base only while its
|
|
34
|
+
branch applies, so whether it disagrees is a state of the data rather than a
|
|
35
|
+
fact about the schema, and `SchemaProjection.diagnostics` carries the latter.
|
|
36
|
+
Those still collapse, tracked as #142.
|
|
37
|
+
|
|
38
|
+
**Behaviour change.** A caller reading `annotations.default` for such a location
|
|
39
|
+
used to get a value and now gets `undefined`. That value was one library's
|
|
40
|
+
traversal order, so relying on it was relying on the adapter rather than on the
|
|
41
|
+
schema, but it is a change and this is why the bump is `minor`, which is the
|
|
42
|
+
break bump under 0.x.
|
|
43
|
+
|
|
44
|
+
`ProjectionDiagnostic` gains an optional `sources`, the schema positions a
|
|
45
|
+
diagnostic is about, as JSON Pointers into the schema document with the root as
|
|
46
|
+
the empty string. A position reached through `$ref` is named by what it resolves
|
|
47
|
+
to. Both adapters report in that form, so a diagnostic means the same thing
|
|
48
|
+
whichever produced it.
|
|
49
|
+
|
|
50
|
+
`@texaryn/schema-json-hyperjump` implements the same rule and gains the same
|
|
51
|
+
break. It is unpublished, so it carries no version here. It also returns a
|
|
52
|
+
`diagnostics` array for the first time, carrying `ambiguous-default` and only
|
|
53
|
+
that code: it detects neither shape code, so an empty array from it is not a
|
|
54
|
+
claim that no schema in the projection was ambiguous.
|
|
55
|
+
|
|
56
|
+
`NodeProjection.itemAnnotations.default` is unchanged and still collapses. It
|
|
57
|
+
describes an array's item schema rather than being an instance location, so
|
|
58
|
+
there is no pointer an omission there could be reported at, and the element
|
|
59
|
+
locations the data provides each report their own conflict.
|
|
60
|
+
|
|
61
|
+
### Patch Changes
|
|
62
|
+
|
|
63
|
+
- Updated dependencies [a53724c]
|
|
64
|
+
- @texaryn/core@0.9.0
|
|
65
|
+
|
|
66
|
+
## 0.4.0
|
|
67
|
+
|
|
68
|
+
### Minor Changes
|
|
69
|
+
|
|
70
|
+
- 7bd64e5: Project conditional fields declared inside nested applicators
|
|
71
|
+
|
|
72
|
+
A property that only a nested branch declares was never projected, so the form
|
|
73
|
+
could not collect a value its own validation demanded. Given the conditional
|
|
74
|
+
idiom Backstage's documentation tells template authors to write,
|
|
75
|
+
`dependencies` containing `allOf` containing `if`/`then`, the validator
|
|
76
|
+
reported `/lastName` as required and the projection had no `/lastName` at all:
|
|
77
|
+
a step that cannot be completed or corrected.
|
|
78
|
+
|
|
79
|
+
Candidate discovery now recurses through the applicators that act on the same
|
|
80
|
+
instance location (`if`, `then`, `else`, `allOf`, `anyOf`, `oneOf`,
|
|
81
|
+
`dependentSchemas`, and `$ref` targets) rather than reading one level of each.
|
|
82
|
+
It does not follow `not`, whose subschema describes what an instance must not
|
|
83
|
+
be, nor the values of `properties` or `items`, which describe other locations.
|
|
84
|
+
|
|
85
|
+
The defect was never specific to `dependencies`: a top-level `allOf` containing
|
|
86
|
+
`if`/`then` failed the same way.
|
|
87
|
+
- 7f22daf: Provisionally selects the `oneOf` branch the current data uniquely identifies,
|
|
88
|
+
so a form can show the field that would make that branch apply.
|
|
89
|
+
|
|
90
|
+
`oneOf` selects on full validity, so a branch identified by an explicit
|
|
91
|
+
discriminator stays unselected while one of its own required properties is
|
|
92
|
+
absent. The branch's fields were therefore inactive, which hid the very field
|
|
93
|
+
needed to complete it: the exit from the state existed and the form could not
|
|
94
|
+
reach it. Those fields now report `provisional`, and the branch's requirements
|
|
95
|
+
report `provisionalRequired`, both added to the port in `@texaryn/core` 0.8.0.
|
|
96
|
+
|
|
97
|
+
The rule is narrow on purpose. Only an explicit `const` or `enum` on a property
|
|
98
|
+
discriminates, and only where every branch constrains that property; both
|
|
99
|
+
keywords together are conjunctive; the discriminator has to be present in the
|
|
100
|
+
data rather than declared as a `default`; every present discriminator has to
|
|
101
|
+
agree; and zero or several surviving branches select nothing. `type` and `anyOf`
|
|
102
|
+
are excluded. Nothing else about a branch participates, so a branch stays
|
|
103
|
+
identified when some other constraint of its own fails.
|
|
104
|
+
|
|
105
|
+
A selected branch also supplies its children's shape and annotations, ahead of
|
|
106
|
+
the previous first-declaration fallback, so an exposed field carries its own
|
|
107
|
+
branch's widget, title and `default` rather than another branch's.
|
|
108
|
+
|
|
109
|
+
One correction comes with it: `ChildProjection.required` is now gated on the
|
|
110
|
+
containing node applying. A branch that does not apply demands nothing, and
|
|
111
|
+
reporting its `required` array attributed to the validator something it was not
|
|
112
|
+
asking for. Previously such a child was reported required while `validate`
|
|
113
|
+
reported no errors.
|
|
114
|
+
- f548009: Resolve the published JSON Schema metaschemas, so a schema can assert that it is itself a valid schema.
|
|
115
|
+
|
|
116
|
+
A schema may reference its dialect's metaschema by canonical URI, which is how the specification's own test suite checks schema validity. `json-schema-library` carries the draft definitions but not the metaschema documents, and an unresolved reference fails closed, so previously a perfectly valid schema was reported invalid with `Could not resolve $ref`. Draft 7, 2019-09 and 2020-12 all work now, including the vocabulary documents the later two reference.
|
|
117
|
+
|
|
118
|
+
The documents are vendored, so nothing is fetched over the network, and they are loaded on demand: a form that never asks the question does not carry them. Loading is keyed on `$ref`, `$dynamicRef` and `$recursiveRef`, never on `$schema`, because every schema declares one of those and the validator maps it to a draft without retrieving anything. The dialect comes from the URI that was referenced rather than the one detected, so a Draft 7 schema referencing the 2020-12 metaschema gets the right closure.
|
|
119
|
+
|
|
120
|
+
One inherited consequence is worth knowing: metaschema validation follows the dialect's `format` rule, so a malformed `pattern` or `$id` is rejected under Draft 7, which asserts `format`, and not under 2019-09 or 2020-12, which treat it as an annotation. Strict schema linting would be a separate capability rather than a change to validation semantics.
|
|
121
|
+
|
|
122
|
+
Against the official test suite this closes all six standard-metaschema failures, taking mandatory results to 917/929 for Draft 7, 1244/1261 for 2019-09 and 1278/1301 for 2020-12, with no other result moving in either adapter.
|
|
123
|
+
- 748b250: Derive a form shape for schemas that declare structure without `type`
|
|
124
|
+
|
|
125
|
+
A schema is not obliged to declare `type`, and one that declares `properties`
|
|
126
|
+
without it is both valid and widespread: not one parameter step in a Backstage
|
|
127
|
+
Software Template declares `type: object`. Every such schema used to project no
|
|
128
|
+
node at all, which threw at the root and, one level down, dropped the field
|
|
129
|
+
from the form with no error at all.
|
|
130
|
+
|
|
131
|
+
The projection now derives a shape from type-specific structural keywords when
|
|
132
|
+
exactly one JSON type's keywords are present, and reports the pointer as
|
|
133
|
+
ambiguous when more than one type's are. Nothing scalar is inferred, because
|
|
134
|
+
`minimum` cannot distinguish `number` from `integer` and a wrong guess selects
|
|
135
|
+
the wrong widget.
|
|
136
|
+
|
|
137
|
+
This is a projection decision and not a type assertion. No `type` is written
|
|
138
|
+
into the schema and the schema is never mutated, so
|
|
139
|
+
`{ properties: { name: … } }` continues to accept a string, a number and null,
|
|
140
|
+
exactly as JSON Schema says it should, while the form renders as an object.
|
|
141
|
+
|
|
142
|
+
`SchemaProjection` gains an optional `diagnostics` array, with the
|
|
143
|
+
`ProjectionDiagnostic` and `ProjectionDiagnosticCode` types, so a pointer that
|
|
144
|
+
could not be given a shape is reported rather than silently absent. Two codes:
|
|
145
|
+
`ambiguous-projection-shape` where keywords from more than one type conflict,
|
|
146
|
+
and `unresolved-projection-shape` where there is nothing to go on at all. An
|
|
147
|
+
`enum` without a `type` is the common case of the second, and deliberately not
|
|
148
|
+
read as a string, because JSON Schema permits members of different types.
|
|
149
|
+
|
|
150
|
+
Diagnostics describe schemas rather than data. One case is not reported: a
|
|
151
|
+
`oneOf` or `anyOf` whose branches the current value does not match, where some
|
|
152
|
+
branch would have rendered for a value that did. Whether the value is
|
|
153
|
+
acceptable is validation's subject. A branch the value does match and that
|
|
154
|
+
still supplies no shape is reported, as is a composition with no renderable
|
|
155
|
+
branch at all, because those are limitations rather than data states.
|
|
156
|
+
|
|
157
|
+
The rule in full: an explicit `type` is used, an unambiguous structural shape
|
|
158
|
+
is derived, and everything else is reported. Nothing is guessed and nothing
|
|
159
|
+
disappears without a word.
|
|
160
|
+
|
|
161
|
+
### Patch Changes
|
|
162
|
+
|
|
163
|
+
- Updated dependencies [89c44e5]
|
|
164
|
+
- Updated dependencies [43e4370]
|
|
165
|
+
- Updated dependencies [b2bb9d6]
|
|
166
|
+
- Updated dependencies [55ce8d6]
|
|
167
|
+
- Updated dependencies [a835e87]
|
|
168
|
+
- Updated dependencies [9b262d3]
|
|
169
|
+
- Updated dependencies [748b250]
|
|
170
|
+
- @texaryn/core@0.8.0
|
|
171
|
+
|
|
3
172
|
## 0.3.0
|
|
4
173
|
|
|
5
174
|
### Minor Changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
## JSON Schema metaschemas
|
|
4
|
+
|
|
5
|
+
`src/metaschemas/` contains the published JSON Schema metaschema documents for
|
|
6
|
+
Draft 7, 2019-09 and 2020-12, together with the vocabulary documents the latter
|
|
7
|
+
two reference. They are copied verbatim so that validating a schema against its
|
|
8
|
+
own metaschema needs no network access.
|
|
9
|
+
|
|
10
|
+
Retrieved from:
|
|
11
|
+
|
|
12
|
+
- `http://json-schema.org/draft-07/schema`
|
|
13
|
+
- `https://json-schema.org/draft/2019-09/schema` and its `meta/` documents
|
|
14
|
+
- `https://json-schema.org/draft/2020-12/schema` and its `meta/` documents
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2022 JSON Schema Specification Authors
|
|
17
|
+
|
|
18
|
+
Redistribution and use in source and binary forms, with or without
|
|
19
|
+
modification, are permitted provided that the following conditions are
|
|
20
|
+
met:
|
|
21
|
+
|
|
22
|
+
1. Redistributions of source code must retain the above copyright
|
|
23
|
+
notice, this list of conditions and the following disclaimer.
|
|
24
|
+
|
|
25
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
26
|
+
notice, this list of conditions and the following disclaimer in the
|
|
27
|
+
documentation and/or other materials provided with the distribution.
|
|
28
|
+
|
|
29
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
30
|
+
contributors may be used to endorse or promote products derived from
|
|
31
|
+
this software without specific prior written permission.
|
|
32
|
+
|
|
33
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
34
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
35
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
36
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
37
|
+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
38
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
39
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
40
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
41
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
42
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
43
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAElE,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAoB5B"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { compileSchema, } from 'json-schema-library';
|
|
2
2
|
import { detectDialect } from './dialect.js';
|
|
3
|
+
import { loadMetaschemas, referencedDialects } from './metaschemas/index.js';
|
|
3
4
|
import { buildProjection } from './projection.js';
|
|
4
5
|
export async function createJsonSchemaAdapter(schema, config) {
|
|
5
6
|
const dialect = detectDialect(schema, {
|
|
@@ -27,6 +28,12 @@ function toDraftOption(dialect) {
|
|
|
27
28
|
// wrapped in a Promise so the factory signature stays uniform with libraries whose
|
|
28
29
|
// preparation step is genuinely async (e.g. hyperjump's annotate()).
|
|
29
30
|
async function prepareSchema(schema, dialect) {
|
|
31
|
+
// A schema may reference its dialect's metaschema to assert that it is
|
|
32
|
+
// itself a valid schema. json-schema-library carries the draft definitions
|
|
33
|
+
// but not the metaschema documents, and an unresolved reference fails
|
|
34
|
+
// closed, so without these a valid schema is reported invalid.
|
|
35
|
+
const referenced = referencedDialects(schema);
|
|
36
|
+
const remotes = referenced.length > 0 ? await loadMetaschemas(referenced) : undefined;
|
|
30
37
|
// json-schema-library asserts `format` in every dialect. Draft 7 permits that:
|
|
31
38
|
// assertion is the conventional behaviour there and the specification only asks
|
|
32
39
|
// that it can be disabled. From 2019-09 the default inverted, and `format` is an
|
|
@@ -36,6 +43,7 @@ async function prepareSchema(schema, dialect) {
|
|
|
36
43
|
return compileSchema(schema, {
|
|
37
44
|
draft: toDraftOption(dialect),
|
|
38
45
|
formatAssertion,
|
|
46
|
+
remotes,
|
|
39
47
|
});
|
|
40
48
|
}
|
|
41
49
|
// json-schema-library reports data pointers as "#"-prefixed URI fragments (e.g. "#/age");
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GAKd,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGjD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAe,EACf,MAAsB;IAEtB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,UAAU;KACrD,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO;QACL,OAAO,CAAC,IAAa;YACnB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;QAED,QAAQ,CAAC,IAAa;YACpB,OAAO,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,UAAU,CAAC,IAAa,EAAE,OAAoB;YAC5C,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC;AAED,2FAA2F;AAC3F,0DAA0D;AAC1D,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAA;AACjE,CAAC;AAED,2FAA2F;AAC3F,mFAAmF;AACnF,qEAAqE;AACrE,KAAK,UAAU,aAAa,CAAC,MAAe,EAAE,OAAgB;IAC5D,+EAA+E;IAC/E,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,iDAAiD;IACjD,MAAM,eAAe,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IAClE,OAAO,aAAa,CAAC,MAAoC,EAAE;QACzD,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;QAC7B,eAAe;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2019-09.d.ts","sourceRoot":"","sources":["../../src/metaschemas/2019-09.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,UAAU,EAenC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** The 2019-09 metaschema and every vocabulary document it references. */
|
|
2
|
+
export const metaschemas = [
|
|
3
|
+
// https://json-schema.org/draft/2019-09/schema
|
|
4
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/schema", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/core": true, "https://json-schema.org/draft/2019-09/vocab/applicator": true, "https://json-schema.org/draft/2019-09/vocab/validation": true, "https://json-schema.org/draft/2019-09/vocab/meta-data": true, "https://json-schema.org/draft/2019-09/vocab/format": false, "https://json-schema.org/draft/2019-09/vocab/content": true }, "$recursiveAnchor": true, "title": "Core and Validation specifications meta-schema", "allOf": [{ "$ref": "meta/core" }, { "$ref": "meta/applicator" }, { "$ref": "meta/validation" }, { "$ref": "meta/meta-data" }, { "$ref": "meta/format" }, { "$ref": "meta/content" }], "type": ["object", "boolean"], "properties": { "definitions": { "$comment": "While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.", "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} }, "dependencies": { "$comment": "\"dependencies\" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to \"dependentSchemas\" and \"dependentRequired\"", "type": "object", "additionalProperties": { "anyOf": [{ "$recursiveRef": "#" }, { "$ref": "meta/validation#/$defs/stringArray" }] } } } },
|
|
5
|
+
// https://json-schema.org/draft/2019-09/meta/core
|
|
6
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/core", "$recursiveAnchor": true, "title": "Core vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "$id": { "type": "string", "format": "uri-reference", "$comment": "Non-empty fragments not allowed.", "pattern": "^[^#]*#?$" }, "$schema": { "type": "string", "format": "uri" }, "$anchor": { "type": "string", "pattern": "^[A-Za-z][-A-Za-z0-9.:_]*$" }, "$ref": { "type": "string", "format": "uri-reference" }, "$recursiveRef": { "type": "string", "format": "uri-reference" }, "$recursiveAnchor": { "type": "boolean", "default": false }, "$vocabulary": { "type": "object", "propertyNames": { "type": "string", "format": "uri" }, "additionalProperties": { "type": "boolean" } }, "$comment": { "type": "string" }, "$defs": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} } } },
|
|
7
|
+
// https://json-schema.org/draft/2019-09/meta/applicator
|
|
8
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/applicator", "$recursiveAnchor": true, "title": "Applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "additionalItems": { "$recursiveRef": "#" }, "unevaluatedItems": { "$recursiveRef": "#" }, "items": { "anyOf": [{ "$recursiveRef": "#" }, { "$ref": "#/$defs/schemaArray" }] }, "contains": { "$recursiveRef": "#" }, "additionalProperties": { "$recursiveRef": "#" }, "unevaluatedProperties": { "$recursiveRef": "#" }, "properties": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependentSchemas": { "type": "object", "additionalProperties": { "$recursiveRef": "#" } }, "propertyNames": { "$recursiveRef": "#" }, "if": { "$recursiveRef": "#" }, "then": { "$recursiveRef": "#" }, "else": { "$recursiveRef": "#" }, "allOf": { "$ref": "#/$defs/schemaArray" }, "anyOf": { "$ref": "#/$defs/schemaArray" }, "oneOf": { "$ref": "#/$defs/schemaArray" }, "not": { "$recursiveRef": "#" } }, "$defs": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$recursiveRef": "#" } } } },
|
|
9
|
+
// https://json-schema.org/draft/2019-09/meta/validation
|
|
10
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/validation", "$recursiveAnchor": true, "title": "Validation vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/$defs/nonNegativeInteger" }, "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "maxItems": { "$ref": "#/$defs/nonNegativeInteger" }, "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "maxContains": { "$ref": "#/$defs/nonNegativeInteger" }, "minContains": { "$ref": "#/$defs/nonNegativeInteger", "default": 1 }, "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" }, "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/$defs/stringArray" }, "dependentRequired": { "type": "object", "additionalProperties": { "$ref": "#/$defs/stringArray" } }, "const": true, "enum": { "type": "array", "items": true }, "type": { "anyOf": [{ "$ref": "#/$defs/simpleTypes" }, { "type": "array", "items": { "$ref": "#/$defs/simpleTypes" }, "minItems": 1, "uniqueItems": true }] } }, "$defs": { "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "$ref": "#/$defs/nonNegativeInteger", "default": 0 }, "simpleTypes": { "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } } },
|
|
11
|
+
// https://json-schema.org/draft/2019-09/meta/meta-data
|
|
12
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/meta-data", "$recursiveAnchor": true, "title": "Meta-data vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "deprecated": { "type": "boolean", "default": false }, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true } } },
|
|
13
|
+
// https://json-schema.org/draft/2019-09/meta/format
|
|
14
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/format", "$recursiveAnchor": true, "title": "Format vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "format": { "type": "string" } } },
|
|
15
|
+
// https://json-schema.org/draft/2019-09/meta/content
|
|
16
|
+
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/content", "$recursiveAnchor": true, "title": "Content vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "contentMediaType": { "type": "string" }, "contentEncoding": { "type": "string" }, "contentSchema": { "$recursiveRef": "#" } } },
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=2019-09.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2019-09.js","sourceRoot":"","sources":["../../src/metaschemas/2019-09.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2020-12.d.ts","sourceRoot":"","sources":["../../src/metaschemas/2020-12.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,UAAU,EAiBnC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The 2020-12 metaschema and every vocabulary document it references. */
|
|
2
|
+
export const metaschemas = [
|
|
3
|
+
// https://json-schema.org/draft/2020-12/schema
|
|
4
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/schema", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/core": true, "https://json-schema.org/draft/2020-12/vocab/applicator": true, "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, "https://json-schema.org/draft/2020-12/vocab/validation": true, "https://json-schema.org/draft/2020-12/vocab/meta-data": true, "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, "https://json-schema.org/draft/2020-12/vocab/content": true }, "$dynamicAnchor": "meta", "title": "Core and Validation specifications meta-schema", "allOf": [{ "$ref": "meta/core" }, { "$ref": "meta/applicator" }, { "$ref": "meta/unevaluated" }, { "$ref": "meta/validation" }, { "$ref": "meta/meta-data" }, { "$ref": "meta/format-annotation" }, { "$ref": "meta/content" }], "type": ["object", "boolean"], "$comment": "This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.", "properties": { "definitions": { "$comment": "\"definitions\" has been replaced by \"$defs\".", "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "deprecated": true, "default": {} }, "dependencies": { "$comment": "\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.", "type": "object", "additionalProperties": { "anyOf": [{ "$dynamicRef": "#meta" }, { "$ref": "meta/validation#/$defs/stringArray" }] }, "deprecated": true, "default": {} }, "$recursiveAnchor": { "$comment": "\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".", "$ref": "meta/core#/$defs/anchorString", "deprecated": true }, "$recursiveRef": { "$comment": "\"$recursiveRef\" has been replaced by \"$dynamicRef\".", "$ref": "meta/core#/$defs/uriReferenceString", "deprecated": true } } },
|
|
5
|
+
// https://json-schema.org/draft/2020-12/meta/core
|
|
6
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/core", "$dynamicAnchor": "meta", "title": "Core vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "$id": { "$ref": "#/$defs/uriReferenceString", "$comment": "Non-empty fragments not allowed.", "pattern": "^[^#]*#?$" }, "$schema": { "$ref": "#/$defs/uriString" }, "$ref": { "$ref": "#/$defs/uriReferenceString" }, "$anchor": { "$ref": "#/$defs/anchorString" }, "$dynamicRef": { "$ref": "#/$defs/uriReferenceString" }, "$dynamicAnchor": { "$ref": "#/$defs/anchorString" }, "$vocabulary": { "type": "object", "propertyNames": { "$ref": "#/$defs/uriString" }, "additionalProperties": { "type": "boolean" } }, "$comment": { "type": "string" }, "$defs": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" } } }, "$defs": { "anchorString": { "type": "string", "pattern": "^[A-Za-z_][-A-Za-z0-9._]*$" }, "uriString": { "type": "string", "format": "uri" }, "uriReferenceString": { "type": "string", "format": "uri-reference" } } },
|
|
7
|
+
// https://json-schema.org/draft/2020-12/meta/applicator
|
|
8
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/applicator", "$dynamicAnchor": "meta", "title": "Applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "prefixItems": { "$ref": "#/$defs/schemaArray" }, "items": { "$dynamicRef": "#meta" }, "contains": { "$dynamicRef": "#meta" }, "additionalProperties": { "$dynamicRef": "#meta" }, "properties": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependentSchemas": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "default": {} }, "propertyNames": { "$dynamicRef": "#meta" }, "if": { "$dynamicRef": "#meta" }, "then": { "$dynamicRef": "#meta" }, "else": { "$dynamicRef": "#meta" }, "allOf": { "$ref": "#/$defs/schemaArray" }, "anyOf": { "$ref": "#/$defs/schemaArray" }, "oneOf": { "$ref": "#/$defs/schemaArray" }, "not": { "$dynamicRef": "#meta" } }, "$defs": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$dynamicRef": "#meta" } } } },
|
|
9
|
+
// https://json-schema.org/draft/2020-12/meta/unevaluated
|
|
10
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/unevaluated", "$dynamicAnchor": "meta", "title": "Unevaluated applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "unevaluatedItems": { "$dynamicRef": "#meta" }, "unevaluatedProperties": { "$dynamicRef": "#meta" } } },
|
|
11
|
+
// https://json-schema.org/draft/2020-12/meta/validation
|
|
12
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/validation", "$dynamicAnchor": "meta", "title": "Validation vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "type": { "anyOf": [{ "$ref": "#/$defs/simpleTypes" }, { "type": "array", "items": { "$ref": "#/$defs/simpleTypes" }, "minItems": 1, "uniqueItems": true }] }, "const": true, "enum": { "type": "array", "items": true }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/$defs/nonNegativeInteger" }, "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "maxItems": { "$ref": "#/$defs/nonNegativeInteger" }, "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "maxContains": { "$ref": "#/$defs/nonNegativeInteger" }, "minContains": { "$ref": "#/$defs/nonNegativeInteger", "default": 1 }, "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" }, "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/$defs/stringArray" }, "dependentRequired": { "type": "object", "additionalProperties": { "$ref": "#/$defs/stringArray" } } }, "$defs": { "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "$ref": "#/$defs/nonNegativeInteger", "default": 0 }, "simpleTypes": { "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } } },
|
|
13
|
+
// https://json-schema.org/draft/2020-12/meta/meta-data
|
|
14
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/meta-data", "$dynamicAnchor": "meta", "title": "Meta-data vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "deprecated": { "type": "boolean", "default": false }, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true } } },
|
|
15
|
+
// https://json-schema.org/draft/2020-12/meta/format-annotation
|
|
16
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/format-annotation", "$dynamicAnchor": "meta", "title": "Format vocabulary meta-schema for annotation results", "type": ["object", "boolean"], "properties": { "format": { "type": "string" } } },
|
|
17
|
+
// https://json-schema.org/draft/2020-12/meta/content
|
|
18
|
+
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/content", "$dynamicAnchor": "meta", "title": "Content vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "contentEncoding": { "type": "string" }, "contentMediaType": { "type": "string" }, "contentSchema": { "$dynamicRef": "#meta" } } },
|
|
19
|
+
];
|
|
20
|
+
//# sourceMappingURL=2020-12.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2020-12.js","sourceRoot":"","sources":["../../src/metaschemas/2020-12.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-07.d.ts","sourceRoot":"","sources":["../../src/metaschemas/draft-07.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD,2EAA2E;AAC3E,eAAO,MAAM,WAAW,EAAE,UAAU,EAGnC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The draft-07 metaschema and every vocabulary document it references. */
|
|
2
|
+
export const metaschemas = [
|
|
3
|
+
// http://json-schema.org/draft-07/schema#
|
|
4
|
+
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://json-schema.org/draft-07/schema#", "title": "Core schema meta-schema", "definitions": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$ref": "#" } }, "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "allOf": [{ "$ref": "#/definitions/nonNegativeInteger" }, { "default": 0 }] }, "simpleTypes": { "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } }, "type": ["object", "boolean"], "properties": { "$id": { "type": "string", "format": "uri-reference" }, "$schema": { "type": "string", "format": "uri" }, "$ref": { "type": "string", "format": "uri-reference" }, "$comment": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/definitions/nonNegativeInteger" }, "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "additionalItems": { "$ref": "#" }, "items": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/schemaArray" }], "default": true }, "maxItems": { "$ref": "#/definitions/nonNegativeInteger" }, "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "contains": { "$ref": "#" }, "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" }, "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/definitions/stringArray" }, "additionalProperties": { "$ref": "#" }, "definitions": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "properties": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$ref": "#" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependencies": { "type": "object", "additionalProperties": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/stringArray" }] } }, "propertyNames": { "$ref": "#" }, "const": true, "enum": { "type": "array", "items": true, "minItems": 1, "uniqueItems": true }, "type": { "anyOf": [{ "$ref": "#/definitions/simpleTypes" }, { "type": "array", "items": { "$ref": "#/definitions/simpleTypes" }, "minItems": 1, "uniqueItems": true }] }, "format": { "type": "string" }, "contentMediaType": { "type": "string" }, "contentEncoding": { "type": "string" }, "if": { "$ref": "#" }, "then": { "$ref": "#" }, "else": { "$ref": "#" }, "allOf": { "$ref": "#/definitions/schemaArray" }, "anyOf": { "$ref": "#/definitions/schemaArray" }, "oneOf": { "$ref": "#/definitions/schemaArray" }, "not": { "$ref": "#" } }, "default": true },
|
|
5
|
+
];
|
|
6
|
+
//# sourceMappingURL=draft-07.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-07.js","sourceRoot":"","sources":["../../src/metaschemas/draft-07.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JsonSchema } from 'json-schema-library';
|
|
2
|
+
import type { Dialect } from '../dialect.js';
|
|
3
|
+
/**
|
|
4
|
+
* Which metaschema closures a schema needs, by walking it for references.
|
|
5
|
+
*
|
|
6
|
+
* Only `$ref`, `$dynamicRef` and `$recursiveRef` count. `$schema` is
|
|
7
|
+
* deliberately ignored: every schema declares one, and the validator maps it
|
|
8
|
+
* to a draft without ever retrieving the document, so keying on it would load
|
|
9
|
+
* these on every single compile.
|
|
10
|
+
*
|
|
11
|
+
* The dialect comes from the URI that was referenced rather than the one
|
|
12
|
+
* detected for the schema, because a Draft 7 schema may reference the 2020-12
|
|
13
|
+
* metaschema and would then need that closure instead of its own.
|
|
14
|
+
*/
|
|
15
|
+
export declare function referencedDialects(schema: unknown): Dialect[];
|
|
16
|
+
/**
|
|
17
|
+
* The metaschema documents for the given dialects, imported on demand so a
|
|
18
|
+
* consumer who never references a metaschema does not carry roughly 24kB of
|
|
19
|
+
* specification documents.
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadMetaschemas(dialects: readonly Dialect[]): Promise<JsonSchema[]>;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metaschemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAwB5C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,CA6B7D;AAuBD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAczF"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prefixes that identify a published metaschema document, mapped to the
|
|
3
|
+
* dialect whose closure resolves it. Both schemes are listed because the
|
|
4
|
+
* canonical form differs by dialect (Draft 7 publishes `http`, the later two
|
|
5
|
+
* `https`) and a schema author may write either.
|
|
6
|
+
*/
|
|
7
|
+
const prefixes = [
|
|
8
|
+
['http://json-schema.org/draft-07/schema', 'draft-07'],
|
|
9
|
+
['https://json-schema.org/draft-07/schema', 'draft-07'],
|
|
10
|
+
['http://json-schema.org/draft/2019-09/', '2019-09'],
|
|
11
|
+
['https://json-schema.org/draft/2019-09/', '2019-09'],
|
|
12
|
+
['http://json-schema.org/draft/2020-12/', '2020-12'],
|
|
13
|
+
['https://json-schema.org/draft/2020-12/', '2020-12'],
|
|
14
|
+
];
|
|
15
|
+
function dialectFor(uri) {
|
|
16
|
+
for (const [prefix, dialect] of prefixes) {
|
|
17
|
+
if (uri.startsWith(prefix))
|
|
18
|
+
return dialect;
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Which metaschema closures a schema needs, by walking it for references.
|
|
24
|
+
*
|
|
25
|
+
* Only `$ref`, `$dynamicRef` and `$recursiveRef` count. `$schema` is
|
|
26
|
+
* deliberately ignored: every schema declares one, and the validator maps it
|
|
27
|
+
* to a draft without ever retrieving the document, so keying on it would load
|
|
28
|
+
* these on every single compile.
|
|
29
|
+
*
|
|
30
|
+
* The dialect comes from the URI that was referenced rather than the one
|
|
31
|
+
* detected for the schema, because a Draft 7 schema may reference the 2020-12
|
|
32
|
+
* metaschema and would then need that closure instead of its own.
|
|
33
|
+
*/
|
|
34
|
+
export function referencedDialects(schema) {
|
|
35
|
+
const found = new Set();
|
|
36
|
+
const seen = new Set();
|
|
37
|
+
const walk = (node) => {
|
|
38
|
+
if (Array.isArray(node)) {
|
|
39
|
+
for (const entry of node)
|
|
40
|
+
walk(entry);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (typeof node !== 'object' || node === null)
|
|
44
|
+
return;
|
|
45
|
+
// Schemas are user input and may contain a cycle.
|
|
46
|
+
if (seen.has(node))
|
|
47
|
+
return;
|
|
48
|
+
seen.add(node);
|
|
49
|
+
for (const [key, value] of Object.entries(node)) {
|
|
50
|
+
if ((key === '$ref' || key === '$dynamicRef' || key === '$recursiveRef') &&
|
|
51
|
+
typeof value === 'string') {
|
|
52
|
+
const dialect = dialectFor(value);
|
|
53
|
+
if (dialect)
|
|
54
|
+
found.add(dialect);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
walk(value);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
walk(schema);
|
|
61
|
+
return [...found];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Draft 7 publishes its metaschema with `$id` ending in `#`, and
|
|
65
|
+
* json-schema-library keys the remote registry by that string while resolving
|
|
66
|
+
* a reference with the fragment removed, so the two never meet and the
|
|
67
|
+
* document is only found when something else has already normalised it. An
|
|
68
|
+
* empty fragment denotes the document itself, so dropping it identifies the
|
|
69
|
+
* same resource; the vendored file stays byte-faithful to what the
|
|
70
|
+
* specification publishes and this adapts it at the boundary.
|
|
71
|
+
*
|
|
72
|
+
* The documents are also copied rather than handed over directly, because
|
|
73
|
+
* compileSchema normalises `$id` in place and the module-level arrays would
|
|
74
|
+
* otherwise be mutated for every later caller.
|
|
75
|
+
*/
|
|
76
|
+
function normalize(documents) {
|
|
77
|
+
return documents.map((document) => {
|
|
78
|
+
const id = document.$id;
|
|
79
|
+
if (typeof id !== 'string' || !id.endsWith('#'))
|
|
80
|
+
return { ...document };
|
|
81
|
+
return { ...document, $id: id.slice(0, -1) };
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The metaschema documents for the given dialects, imported on demand so a
|
|
86
|
+
* consumer who never references a metaschema does not carry roughly 24kB of
|
|
87
|
+
* specification documents.
|
|
88
|
+
*/
|
|
89
|
+
export async function loadMetaschemas(dialects) {
|
|
90
|
+
const loaded = await Promise.all(dialects.map(async (dialect) => {
|
|
91
|
+
switch (dialect) {
|
|
92
|
+
case 'draft-07':
|
|
93
|
+
return (await import('./draft-07.js')).metaschemas;
|
|
94
|
+
case '2019-09':
|
|
95
|
+
return (await import('./2019-09.js')).metaschemas;
|
|
96
|
+
case '2020-12':
|
|
97
|
+
return (await import('./2020-12.js')).metaschemas;
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
return normalize(loaded.flat());
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metaschemas/index.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,QAAQ,GAA8C;IAC1D,CAAC,wCAAwC,EAAE,UAAU,CAAC;IACtD,CAAC,yCAAyC,EAAE,UAAU,CAAC;IACvD,CAAC,uCAAuC,EAAE,SAAS,CAAC;IACpD,CAAC,wCAAwC,EAAE,SAAS,CAAC;IACrD,CAAC,uCAAuC,EAAE,SAAS,CAAC;IACpD,CAAC,wCAAwC,EAAE,SAAS,CAAC;CACtD,CAAA;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAA;IAC5C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAW,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,MAAM,IAAI,GAAG,CAAC,IAAa,EAAQ,EAAE;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAM;QACrD,kDAAkD;QAClD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAM;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IACE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,eAAe,CAAC;gBACpE,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;gBACD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;gBACjC,IAAI,OAAO;oBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,CAAA;IACZ,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,SAAS,CAAC,SAAgC;IACjD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChC,MAAM,EAAE,GAAI,QAA8B,CAAC,GAAG,CAAA;QAC9C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,GAAI,QAAmB,EAAgB,CAAA;QACjG,OAAO,EAAE,GAAI,QAAmB,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAgB,CAAA;IACxE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAA4B;IAChE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,UAAU;gBACb,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAA;YACpD,KAAK,SAAS;gBACZ,OAAO,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAA;YACnD,KAAK,SAAS;gBACZ,OAAO,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAA;QACrD,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;AACjC,CAAC"}
|
package/dist/projection.d.ts
CHANGED
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EACV,gBAAgB,EASjB,MAAM,eAAe,CAAA;AA49BtB;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAKjF"}
|