json_skooma 0.2.6 → 0.2.7

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -2
  3. data/data/draft-2019-09/README.md +60 -0
  4. data/data/draft-2019-09/hyper-schema.json +26 -0
  5. data/data/draft-2019-09/links.json +91 -0
  6. data/data/draft-2019-09/meta/applicator.json +53 -0
  7. data/data/draft-2019-09/meta/content.json +14 -0
  8. data/data/draft-2019-09/meta/core.json +54 -0
  9. data/data/draft-2019-09/meta/format.json +11 -0
  10. data/data/draft-2019-09/meta/hyper-schema.json +26 -0
  11. data/data/draft-2019-09/meta/meta-data.json +34 -0
  12. data/data/draft-2019-09/meta/validation.json +95 -0
  13. data/data/draft-2019-09/output/hyper-schema.json +62 -0
  14. data/data/draft-2019-09/output/schema.json +86 -0
  15. data/data/draft-2019-09/output/verbose-example.json +130 -0
  16. data/data/draft-2019-09/schema.json +42 -0
  17. data/data/draft-2020-12/README.md +89 -0
  18. data/data/draft-2020-12/adr/README.md +15 -0
  19. data/data/draft-2020-12/archive/hyper-schema.json +28 -0
  20. data/data/draft-2020-12/archive/links.json +93 -0
  21. data/data/draft-2020-12/archive/meta/hyper-schema.json +30 -0
  22. data/data/draft-2020-12/hyper-schema.json +27 -0
  23. data/data/draft-2020-12/links.json +85 -0
  24. data/data/draft-2020-12/meta/applicator.json +45 -0
  25. data/data/draft-2020-12/meta/content.json +14 -0
  26. data/data/draft-2020-12/meta/core.json +48 -0
  27. data/data/draft-2020-12/meta/format-annotation.json +11 -0
  28. data/data/draft-2020-12/meta/format-assertion.json +11 -0
  29. data/data/draft-2020-12/meta/hyper-schema.json +26 -0
  30. data/data/draft-2020-12/meta/meta-data.json +34 -0
  31. data/data/draft-2020-12/meta/unevaluated.json +12 -0
  32. data/data/draft-2020-12/meta/validation.json +95 -0
  33. data/data/draft-2020-12/output/hyper-schema.json +62 -0
  34. data/data/draft-2020-12/output/schema.json +96 -0
  35. data/data/draft-2020-12/output/verbose-example.json +130 -0
  36. data/data/draft-2020-12/schema.json +58 -0
  37. data/lib/json_skooma/version.rb +1 -1
  38. metadata +35 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c9b29eaf20596ff580928de020aadb7e54bc70e449ae85bdcabc03124b205c5
4
- data.tar.gz: 4a3b4949d29cd5a56785776929234907320d7df6ce86101a6527a5c29e8795c2
3
+ metadata.gz: bc94f3d758977e845fe5b92b683c57da06d23af3144cee65cd573679b0992b56
4
+ data.tar.gz: 1b9209442642b9bbe4170a400d164eae8ab4f58c4857ebd15c9a79a4532837f2
5
5
  SHA512:
6
- metadata.gz: 39af1cfcaf160b8b871a0d3e3f1a27f01f3327db0f767feb691b836591f7c07ebab5595f57317a229f366e32ecac56a2f4a0b718bb09821a2462186c14edb835
7
- data.tar.gz: 4d279524b54059e230873d9b602017e299a7f76ef4ab8c907d0c540be036739c430a4c3821346aa9ae20cb63b808ed1b45373b847ab2f8bedfe6428372eb0418
6
+ metadata.gz: 162215474dabeade31c53db14198eadb391f076b8305565c7f504ddbfe8cc3ea56654f7fdc0bbd4dca488f1adb814914b21e7d5780804d5d54efc4f11b66c8d3
7
+ data.tar.gz: f9158392915e5ea3985ad19f2df4e94ce3988b627f44b57cdbc3eb8b6a2dc01e475c40275e648baf6c64bb27168b292415ef663632f0becd6389f6c37e917863
data/CHANGELOG.md CHANGED
@@ -7,7 +7,13 @@ and this project adheres to [Semantic Versioning].
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [0.2.6] - 2026-06-10
10
+ ## [0.2.7] - 2026-06-10
11
+
12
+ ### Fixed
13
+
14
+ - Include the JSON Schema metaschema data files in the packaged gem. 0.2.6 was built without the `data/draft-*` submodules checked out, so `create_registry` crashed with `Sources::Error` on the released gem. ([@skryukov])
15
+
16
+ ## [0.2.6] - 2026-06-10 [YANKED]
11
17
 
12
18
  ### Added
13
19
 
@@ -72,7 +78,8 @@ and this project adheres to [Semantic Versioning].
72
78
  [@killondark]: https://github.com/killondark
73
79
  [@skryukov]: https://github.com/skryukov
74
80
 
75
- [Unreleased]: https://github.com/skryukov/json_skooma/compare/v0.2.6...HEAD
81
+ [Unreleased]: https://github.com/skryukov/json_skooma/compare/v0.2.7...HEAD
82
+ [0.2.7]: https://github.com/skryukov/json_skooma/compare/v0.2.6...v0.2.7
76
83
  [0.2.6]: https://github.com/skryukov/json_skooma/compare/v0.2.5...v0.2.6
77
84
  [0.2.5]: https://github.com/skryukov/json_skooma/compare/v0.2.4...v0.2.5
78
85
  [0.2.4]: https://github.com/skryukov/json_skooma/compare/v0.2.3...v0.2.4
@@ -0,0 +1,60 @@
1
+ # Welcome to JSON Schema
2
+
3
+ JSON Schema is a vocabulary that allows you to validate, annotate, and manipulate JSON documents.
4
+
5
+ This repository contains the sources for the **work in progress** of the next set of JSON Schema IETF Internet Draft (I-D) documents.
6
+ For the latest released I-Ds, please see the [Specification page](http://json-schema.org/documentation.html) on the website.
7
+
8
+ ## Call for contributions and feedback
9
+
10
+ Reviews, comments and suggestions are most welcome!
11
+ Please read our [guidelines for contributing](CONTRIBUTING.md).
12
+
13
+ ## Status
14
+ For the current status of issues and pull requests, please see the following labels
15
+
16
+ [![Available](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Status:%20Available.svg?color=brightgreen)](https://github.com/json-schema-org/json-schema-spec/issues?q=is%3Aopen+is%3Aissue+label%3A%22Status%3A+Available%22) [![In Progress](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Status:%20In%20Progress.svg)](https://github.com/json-schema-org/json-schema-spec/labels/Status:%20In%20Progress) [![Review Needed](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Status:%20Review%20Needed.svg)](https://github.com/json-schema-org/json-schema-spec/labels/Status%3A%20Review%20Needed)
17
+
18
+ [![Critical](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Priority:%20Critical.svg?color=critical
19
+ )](https://github.com/json-schema-org/json-schema-spec/labels/Priority%3A%20Critical) [![High](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Priority:%20High.svg?color=important)](https://github.com/json-schema-org/json-schema-spec/labels/Priority%3A%20High) [![Medium](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Priority:%20Medium.svg)](https://github.com/json-schema-org/json-schema-spec/labels/Priority%3A%20Medium) [![Low](https://img.shields.io/github/issues/json-schema-org/json-schema-spec/Priority:%20Low.svg)](https://github.com/json-schema-org/json-schema-spec/labels/Priority%3A%20Low)
20
+
21
+
22
+ Labels are assigned based on [Sensible Github Labels](https://github.com/Relequestual/sensible-github-labels).
23
+
24
+ ## Contents
25
+
26
+ * Makefile - scripts to build the Internet-Draft txt/html
27
+ * _Internet-Draft sources_
28
+ * jsonschema-core.xml - source for JSON Schema's "core" I-D
29
+ * jsonschema-validation.xml - source for the validation vocabulary I-D
30
+ * jsonschema-hyperschema.xml - source for the hyper-schema vocabulary I-D
31
+ * relative-json-pointer.xml - source for the Relative JSON Pointer I-D
32
+ * _meta-schemas and recommended output formats_
33
+ * schema.json - JSON Schema "core" and Validation meta-schema
34
+ * hyper-schema.json - JSON Hyper-Schema meta-schema
35
+ * links.json - JSON Hyper-Schema's Link Description Object meta-schema
36
+ * hyper-schema-output.json - The recommended output format for JSON Hyper-Schema links
37
+
38
+ Type "make" at a shell to build the .txt and .html spec files.
39
+
40
+ Descriptions of the xml2rfc, I-D documents, and RFC processes:
41
+
42
+ * https://xml2rfc.tools.ietf.org/authoring/draft-mrose-writing-rfcs.html
43
+ * https://www.ietf.org/tao.html
44
+ * https://www.ietf.org/ietf-ftp/1id-guidelines.html
45
+ * https://www.rfc-editor.org/rfc/rfc7322.txt
46
+
47
+ ## Test suites
48
+
49
+ Conformance tests for JSON Schema and its vocabularies may be found
50
+ [in their own repository](https://github.com/json-schema-org/JSON-Schema-Test-Suite).
51
+
52
+ ## The website
53
+
54
+ The JSON Schema web site is at http://json-schema.org/
55
+
56
+ The source for the website is [maintained in a separate repository](https://github.com/json-schema-org/website).
57
+
58
+ ## License
59
+
60
+ The source material in this repository is licensed under the AFL or BSD license.
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/hyper-schema",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2019-09/vocab/core": true,
6
+ "https://json-schema.org/draft/2019-09/vocab/applicator": true,
7
+ "https://json-schema.org/draft/2019-09/vocab/validation": true,
8
+ "https://json-schema.org/draft/2019-09/vocab/meta-data": true,
9
+ "https://json-schema.org/draft/2019-09/vocab/format": false,
10
+ "https://json-schema.org/draft/2019-09/vocab/content": true,
11
+ "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
12
+ },
13
+ "$recursiveAnchor": true,
14
+
15
+ "title": "JSON Hyper-Schema",
16
+ "allOf": [
17
+ {"$ref": "https://json-schema.org/draft/2019-09/schema"},
18
+ {"$ref": "https://json-schema.org/draft/2019-09/meta/hyper-schema"}
19
+ ],
20
+ "links": [
21
+ {
22
+ "rel": "self",
23
+ "href": "{+%24id}"
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/links",
4
+ "title": "Link Description Object",
5
+ "allOf": [
6
+ { "required": [ "rel", "href" ] },
7
+ { "$ref": "#/$defs/noRequiredFields" }
8
+ ],
9
+ "$defs": {
10
+ "noRequiredFields": {
11
+ "type": "object",
12
+ "properties": {
13
+ "anchor": {
14
+ "type": "string",
15
+ "format": "uri-template"
16
+ },
17
+ "anchorPointer": {
18
+ "type": "string",
19
+ "anyOf": [
20
+ { "format": "json-pointer" },
21
+ { "format": "relative-json-pointer" }
22
+ ]
23
+ },
24
+ "rel": {
25
+ "anyOf": [
26
+ { "type": "string" },
27
+ {
28
+ "type": "array",
29
+ "items": { "type": "string" },
30
+ "minItems": 1
31
+ }
32
+ ]
33
+ },
34
+ "href": {
35
+ "type": "string",
36
+ "format": "uri-template"
37
+ },
38
+ "hrefSchema": {
39
+ "$ref": "https://json-schema.org/draft/2019-09/hyper-schema",
40
+ "default": false
41
+ },
42
+ "templatePointers": {
43
+ "type": "object",
44
+ "additionalProperties": {
45
+ "type": "string",
46
+ "anyOf": [
47
+ { "format": "json-pointer" },
48
+ { "format": "relative-json-pointer" }
49
+ ]
50
+ }
51
+ },
52
+ "templateRequired": {
53
+ "type": "array",
54
+ "items": {
55
+ "type": "string"
56
+ },
57
+ "uniqueItems": true
58
+ },
59
+ "title": {
60
+ "type": "string"
61
+ },
62
+ "description": {
63
+ "type": "string"
64
+ },
65
+ "targetSchema": {
66
+ "$ref": "https://json-schema.org/draft/2019-09/hyper-schema",
67
+ "default": true
68
+ },
69
+ "targetMediaType": {
70
+ "type": "string"
71
+ },
72
+ "targetHints": { },
73
+ "headerSchema": {
74
+ "$ref": "https://json-schema.org/draft/2019-09/hyper-schema",
75
+ "default": true
76
+ },
77
+ "submissionMediaType": {
78
+ "type": "string",
79
+ "default": "application/json"
80
+ },
81
+ "submissionSchema": {
82
+ "$ref": "https://json-schema.org/draft/2019-09/hyper-schema",
83
+ "default": true
84
+ },
85
+ "$comment": {
86
+ "type": "string"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/applicator",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Applicator vocabulary meta-schema",
7
+ "type": ["object", "boolean"],
8
+ "properties": {
9
+ "additionalItems": { "$recursiveRef": "#" },
10
+ "unevaluatedItems": { "$recursiveRef": "#" },
11
+ "items": {
12
+ "anyOf": [
13
+ { "$recursiveRef": "#" },
14
+ { "$ref": "#/$defs/schemaArray" }
15
+ ]
16
+ },
17
+ "contains": { "$recursiveRef": "#" },
18
+ "additionalProperties": { "$recursiveRef": "#" },
19
+ "unevaluatedProperties": { "$recursiveRef": "#" },
20
+ "properties": {
21
+ "type": "object",
22
+ "additionalProperties": { "$recursiveRef": "#" },
23
+ "default": {}
24
+ },
25
+ "patternProperties": {
26
+ "type": "object",
27
+ "additionalProperties": { "$recursiveRef": "#" },
28
+ "propertyNames": { "format": "regex" },
29
+ "default": {}
30
+ },
31
+ "dependentSchemas": {
32
+ "type": "object",
33
+ "additionalProperties": {
34
+ "$recursiveRef": "#"
35
+ }
36
+ },
37
+ "propertyNames": { "$recursiveRef": "#" },
38
+ "if": { "$recursiveRef": "#" },
39
+ "then": { "$recursiveRef": "#" },
40
+ "else": { "$recursiveRef": "#" },
41
+ "allOf": { "$ref": "#/$defs/schemaArray" },
42
+ "anyOf": { "$ref": "#/$defs/schemaArray" },
43
+ "oneOf": { "$ref": "#/$defs/schemaArray" },
44
+ "not": { "$recursiveRef": "#" }
45
+ },
46
+ "$defs": {
47
+ "schemaArray": {
48
+ "type": "array",
49
+ "minItems": 1,
50
+ "items": { "$recursiveRef": "#" }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/content",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Content vocabulary meta-schema",
7
+
8
+ "type": ["object", "boolean"],
9
+ "properties": {
10
+ "contentMediaType": { "type": "string" },
11
+ "contentEncoding": { "type": "string" },
12
+ "contentSchema": { "$recursiveRef": "#" }
13
+ }
14
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/core",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Core vocabulary meta-schema",
7
+ "type": ["object", "boolean"],
8
+ "properties": {
9
+ "$id": {
10
+ "type": "string",
11
+ "format": "uri-reference",
12
+ "$comment": "Non-empty fragments not allowed.",
13
+ "pattern": "^[^#]*#?$"
14
+ },
15
+ "$schema": {
16
+ "type": "string",
17
+ "format": "uri"
18
+ },
19
+ "$anchor": {
20
+ "type": "string",
21
+ "pattern": "^[A-Za-z][-A-Za-z0-9.:_]*$"
22
+ },
23
+ "$ref": {
24
+ "type": "string",
25
+ "format": "uri-reference"
26
+ },
27
+ "$recursiveRef": {
28
+ "type": "string",
29
+ "format": "uri-reference"
30
+ },
31
+ "$recursiveAnchor": {
32
+ "type": "boolean",
33
+ "default": false
34
+ },
35
+ "$vocabulary": {
36
+ "type": "object",
37
+ "propertyNames": {
38
+ "type": "string",
39
+ "format": "uri"
40
+ },
41
+ "additionalProperties": {
42
+ "type": "boolean"
43
+ }
44
+ },
45
+ "$comment": {
46
+ "type": "string"
47
+ },
48
+ "$defs": {
49
+ "type": "object",
50
+ "additionalProperties": { "$recursiveRef": "#" },
51
+ "default": {}
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/format",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Format vocabulary meta-schema",
7
+ "type": ["object", "boolean"],
8
+ "properties": {
9
+ "format": { "type": "string" }
10
+ }
11
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/hyper-schema",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "JSON Hyper-Schema Vocabulary Schema",
7
+ "type": ["object", "boolean"],
8
+ "properties": {
9
+ "base": {
10
+ "type": "string",
11
+ "format": "uri-template"
12
+ },
13
+ "links": {
14
+ "type": "array",
15
+ "items": {
16
+ "$ref": "https://json-schema.org/draft/2019-09/links"
17
+ }
18
+ }
19
+ },
20
+ "links": [
21
+ {
22
+ "rel": "self",
23
+ "href": "{+%24id}"
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/meta-data",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Meta-data vocabulary meta-schema",
7
+
8
+ "type": ["object", "boolean"],
9
+ "properties": {
10
+ "title": {
11
+ "type": "string"
12
+ },
13
+ "description": {
14
+ "type": "string"
15
+ },
16
+ "default": true,
17
+ "deprecated": {
18
+ "type": "boolean",
19
+ "default": false
20
+ },
21
+ "readOnly": {
22
+ "type": "boolean",
23
+ "default": false
24
+ },
25
+ "writeOnly": {
26
+ "type": "boolean",
27
+ "default": false
28
+ },
29
+ "examples": {
30
+ "type": "array",
31
+ "items": true
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/validation",
4
+ "$recursiveAnchor": true,
5
+
6
+ "title": "Validation vocabulary meta-schema",
7
+ "type": ["object", "boolean"],
8
+ "properties": {
9
+ "multipleOf": {
10
+ "type": "number",
11
+ "exclusiveMinimum": 0
12
+ },
13
+ "maximum": {
14
+ "type": "number"
15
+ },
16
+ "exclusiveMaximum": {
17
+ "type": "number"
18
+ },
19
+ "minimum": {
20
+ "type": "number"
21
+ },
22
+ "exclusiveMinimum": {
23
+ "type": "number"
24
+ },
25
+ "maxLength": { "$ref": "#/$defs/nonNegativeInteger" },
26
+ "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
27
+ "pattern": {
28
+ "type": "string",
29
+ "format": "regex"
30
+ },
31
+ "maxItems": { "$ref": "#/$defs/nonNegativeInteger" },
32
+ "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
33
+ "uniqueItems": {
34
+ "type": "boolean",
35
+ "default": false
36
+ },
37
+ "maxContains": { "$ref": "#/$defs/nonNegativeInteger" },
38
+ "minContains": {
39
+ "$ref": "#/$defs/nonNegativeInteger",
40
+ "default": 1
41
+ },
42
+ "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" },
43
+ "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
44
+ "required": { "$ref": "#/$defs/stringArray" },
45
+ "dependentRequired": {
46
+ "type": "object",
47
+ "additionalProperties": {
48
+ "$ref": "#/$defs/stringArray"
49
+ }
50
+ },
51
+ "const": true,
52
+ "enum": {
53
+ "type": "array",
54
+ "items": true
55
+ },
56
+ "type": {
57
+ "anyOf": [
58
+ { "$ref": "#/$defs/simpleTypes" },
59
+ {
60
+ "type": "array",
61
+ "items": { "$ref": "#/$defs/simpleTypes" },
62
+ "minItems": 1,
63
+ "uniqueItems": true
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ "$defs": {
69
+ "nonNegativeInteger": {
70
+ "type": "integer",
71
+ "minimum": 0
72
+ },
73
+ "nonNegativeIntegerDefault0": {
74
+ "$ref": "#/$defs/nonNegativeInteger",
75
+ "default": 0
76
+ },
77
+ "simpleTypes": {
78
+ "enum": [
79
+ "array",
80
+ "boolean",
81
+ "integer",
82
+ "null",
83
+ "number",
84
+ "object",
85
+ "string"
86
+ ]
87
+ },
88
+ "stringArray": {
89
+ "type": "array",
90
+ "items": { "type": "string" },
91
+ "uniqueItems": true,
92
+ "default": []
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/output/hyper-schema",
4
+ "title": "JSON Hyper-Schema Output",
5
+ "type": "array",
6
+ "items": {
7
+ "allOf": [
8
+ {"$ref": "https://json-schema.org/draft/2019-09/links#/$defs/noRequiredFields" }
9
+ ],
10
+ "type": "object",
11
+ "required": [
12
+ "contextUri",
13
+ "contextPointer",
14
+ "rel",
15
+ "attachmentPointer"
16
+ ],
17
+ "if": { "required": [ "hrefSchema" ] },
18
+ "then": { "required": [ "hrefInputTemplates", "hrefPrepopulatedInput" ] },
19
+ "else": { "required": [ "targetUri" ] },
20
+ "properties": {
21
+ "contextUri": {
22
+ "$comment": "The fully resolved URI of the link context, including a fragment if it is possible to construct one for the given media type and instance",
23
+ "type": "string",
24
+ "format": "uri"
25
+ },
26
+ "contextPointer": {
27
+ "$comment": "The absolute JSON Pointer to the location in the instance that is the context of the link. If the context resource supports JSON Pointer fragments, this will the string form of the identical JSON Pointer",
28
+ "type": "string",
29
+ "format": "json-pointer"
30
+ },
31
+ "rel": {
32
+ "type": "string"
33
+ },
34
+ "targetUri": {
35
+ "$comment": "The fully resolved target URI",
36
+ "type": "string",
37
+ "format": "uri"
38
+ },
39
+ "hrefInputTemplates": {
40
+ "$comment": "The list of partially resolved URI Templates, starting with \"href\", followed by applicable \"base\" values from nearest to furthest.",
41
+ "type": "array",
42
+ "items": {
43
+ "type": "string",
44
+ "format": "uri-template"
45
+ }
46
+ },
47
+ "hrefPrepopulatedInput": {
48
+ "$comment": "The initial data set to be presented with the input form when URI Template input is accepted.",
49
+ "type": "object",
50
+ "propertyNames": {
51
+ "$comment": "These are all URI Template variable names, specifically the 'varname' production from RFC 6570, Section 2.3",
52
+ "pattern": "^(?:\\w|(?:%[a-f\\d]{2}))+(?:\\.(?:\\w|(?:%[a-f\\d]{2})))*$"
53
+ }
54
+ },
55
+ "attachmentPointer": {
56
+ "$comment": "The absolute JSON Pointer, in string form, of the position to which this resolved link applies",
57
+ "type": "string",
58
+ "format": "json-pointer"
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/output/schema",
4
+ "description": "A schema that validates the minimum requirements for validation output",
5
+
6
+ "oneOf": [
7
+ { "$ref": "#/$defs/flag" },
8
+ { "$ref": "#/$defs/basic" },
9
+ { "$ref": "#/$defs/detailed" },
10
+ { "$ref": "#/$defs/verbose" }
11
+ ],
12
+ "$defs": {
13
+ "outputUnit":{
14
+ "properties": {
15
+ "valid": { "type": "boolean" },
16
+ "keywordLocation": {
17
+ "type": "string",
18
+ "format": "uri-reference"
19
+ },
20
+ "absoluteKeywordLocation": {
21
+ "type": "string",
22
+ "format": "uri"
23
+ },
24
+ "instanceLocation": {
25
+ "type": "string",
26
+ "format": "uri-reference"
27
+ },
28
+ "errors": {
29
+ "$ref": "#/$defs/outputUnitArray"
30
+ },
31
+ "annotations": {
32
+ "$ref": "#/$defs/outputUnitArray"
33
+ }
34
+ },
35
+ "required": [ "valid", "keywordLocation", "instanceLocation" ],
36
+ "allOf": [
37
+ {
38
+ "if": {
39
+ "properties": {
40
+ "valid": { "const": false }
41
+ }
42
+ },
43
+ "then": {
44
+ "required": [ "errors" ]
45
+ }
46
+ },
47
+ {
48
+ "if": {
49
+ "anyOf": [
50
+ {
51
+ "properties": {
52
+ "keywordLocation": {
53
+ "pattern": "/\\$ref/"
54
+ }
55
+ }
56
+ },
57
+ {
58
+ "properties": {
59
+ "keywordLocation": {
60
+ "pattern": "/\\$recursiveRef/"
61
+ }
62
+ }
63
+ }
64
+ ]
65
+ },
66
+ "then": {
67
+ "required": [ "absoluteKeywordLocation" ]
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ "outputUnitArray": {
73
+ "type": "array",
74
+ "items": { "$ref": "#/$defs/outputUnit" }
75
+ },
76
+ "flag": {
77
+ "properties": {
78
+ "valid": { "type": "boolean" }
79
+ },
80
+ "required": [ "valid" ]
81
+ },
82
+ "basic": { "$ref": "#/$defs/outputUnit" },
83
+ "detailed": { "$ref": "#/$defs/outputUnit" },
84
+ "verbose": { "$ref": "#/$defs/outputUnit" }
85
+ }
86
+ }