json_skooma 0.2.4 → 0.2.6

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -1
  3. data/README.md +38 -0
  4. data/lib/json_skooma/formatters.rb +56 -0
  5. data/lib/json_skooma/keywords/value_schemas.rb +13 -3
  6. data/lib/json_skooma/registry.rb +14 -3
  7. data/lib/json_skooma/version.rb +1 -1
  8. metadata +17 -40
  9. data/data/draft-2019-09/README.md +0 -60
  10. data/data/draft-2019-09/hyper-schema.json +0 -26
  11. data/data/draft-2019-09/links.json +0 -91
  12. data/data/draft-2019-09/meta/applicator.json +0 -53
  13. data/data/draft-2019-09/meta/content.json +0 -14
  14. data/data/draft-2019-09/meta/core.json +0 -54
  15. data/data/draft-2019-09/meta/format.json +0 -11
  16. data/data/draft-2019-09/meta/hyper-schema.json +0 -26
  17. data/data/draft-2019-09/meta/meta-data.json +0 -34
  18. data/data/draft-2019-09/meta/validation.json +0 -95
  19. data/data/draft-2019-09/output/hyper-schema.json +0 -62
  20. data/data/draft-2019-09/output/schema.json +0 -86
  21. data/data/draft-2019-09/output/verbose-example.json +0 -130
  22. data/data/draft-2019-09/schema.json +0 -42
  23. data/data/draft-2020-12/README.md +0 -89
  24. data/data/draft-2020-12/adr/README.md +0 -15
  25. data/data/draft-2020-12/archive/hyper-schema.json +0 -28
  26. data/data/draft-2020-12/archive/links.json +0 -93
  27. data/data/draft-2020-12/archive/meta/hyper-schema.json +0 -30
  28. data/data/draft-2020-12/hyper-schema.json +0 -27
  29. data/data/draft-2020-12/links.json +0 -85
  30. data/data/draft-2020-12/meta/applicator.json +0 -45
  31. data/data/draft-2020-12/meta/content.json +0 -14
  32. data/data/draft-2020-12/meta/core.json +0 -48
  33. data/data/draft-2020-12/meta/format-annotation.json +0 -11
  34. data/data/draft-2020-12/meta/format-assertion.json +0 -11
  35. data/data/draft-2020-12/meta/hyper-schema.json +0 -26
  36. data/data/draft-2020-12/meta/meta-data.json +0 -34
  37. data/data/draft-2020-12/meta/unevaluated.json +0 -12
  38. data/data/draft-2020-12/meta/validation.json +0 -95
  39. data/data/draft-2020-12/output/hyper-schema.json +0 -62
  40. data/data/draft-2020-12/output/schema.json +0 -96
  41. data/data/draft-2020-12/output/verbose-example.json +0 -130
  42. data/data/draft-2020-12/schema.json +0 -58
@@ -1,93 +0,0 @@
1
- {
2
- "$comment": "This file represents a work in progress and may not be a complete or valid 2019-09 / 2020-12 schema or vocabulary",
3
- "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
4
- "$id": "https://json-schema.org/draft/2019-09/links",
5
- "title": "Link Description Object",
6
-
7
- "allOf": [
8
- { "required": [ "rel", "href" ] },
9
- { "$ref": "#/$defs/noRequiredFields" }
10
- ],
11
- "$defs": {
12
- "noRequiredFields": {
13
- "type": "object",
14
- "properties": {
15
- "anchor": {
16
- "type": "string",
17
- "format": "uri-template"
18
- },
19
- "anchorPointer": {
20
- "type": "string",
21
- "anyOf": [
22
- { "format": "json-pointer" },
23
- { "format": "relative-json-pointer" }
24
- ]
25
- },
26
- "rel": {
27
- "anyOf": [
28
- { "type": "string" },
29
- {
30
- "type": "array",
31
- "items": { "type": "string" },
32
- "minItems": 1
33
- }
34
- ]
35
- },
36
- "href": {
37
- "type": "string",
38
- "format": "uri-template"
39
- },
40
- "hrefSchema": {
41
- "$dynamicRef": "https://json-schema.org/draft/2019-09/hyper-schema#meta",
42
- "default": false
43
- },
44
- "templatePointers": {
45
- "type": "object",
46
- "additionalProperties": {
47
- "type": "string",
48
- "anyOf": [
49
- { "format": "json-pointer" },
50
- { "format": "relative-json-pointer" }
51
- ]
52
- }
53
- },
54
- "templateRequired": {
55
- "type": "array",
56
- "items": {
57
- "type": "string"
58
- },
59
- "uniqueItems": true
60
- },
61
- "title": {
62
- "type": "string"
63
- },
64
- "description": {
65
- "type": "string"
66
- },
67
- "targetSchema": {
68
- "$dynamicRef": "https://json-schema.org/draft/2019-09/hyper-schema#meta",
69
- "default": true
70
- },
71
- "targetMediaType": {
72
- "type": "string"
73
- },
74
- "targetHints": { },
75
- "headerSchema": {
76
- "$dynamicRef": "https://json-schema.org/draft/2019-09/hyper-schema#meta",
77
- "default": true
78
- },
79
- "submissionMediaType": {
80
- "type": "string",
81
- "default": "application/json"
82
- },
83
- "submissionSchema": {
84
- "$dynamicRef": "https://json-schema.org/draft/2019-09/hyper-schema#meta",
85
- "default": true
86
- },
87
- "$comment": {
88
- "type": "string"
89
- }
90
- }
91
- }
92
- }
93
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$comment": "This file represents a work in progress and may not be a complete or valid 2019-09 / 2020-12 schema or vocabulary",
3
- "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
4
- "$id": "https://json-schema.org/draft/2019-09/meta/hyper-schema",
5
- "$vocabulary": {
6
- "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
7
- },
8
- "$dynamicAnchor": "meta",
9
-
10
- "title": "JSON Hyper-Schema Vocabulary Schema",
11
- "type": ["object", "boolean"],
12
- "properties": {
13
- "base": {
14
- "type": "string",
15
- "format": "uri-template"
16
- },
17
- "links": {
18
- "type": "array",
19
- "items": {
20
- "$ref": "https://json-schema.org/draft/2019-09/links"
21
- }
22
- }
23
- },
24
- "links": [
25
- {
26
- "rel": "self",
27
- "href": "{+%24id}"
28
- }
29
- ]
30
- }
@@ -1,27 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/hyper-schema",
3
- "$id": "https://json-schema.org/draft/2020-12/hyper-schema",
4
- "$vocabulary": {
5
- "https://json-schema.org/draft/2020-12/vocab/core": true,
6
- "https://json-schema.org/draft/2020-12/vocab/applicator": true,
7
- "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
8
- "https://json-schema.org/draft/2020-12/vocab/validation": true,
9
- "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
10
- "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
11
- "https://json-schema.org/draft/2020-12/vocab/content": true,
12
- "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
13
- },
14
- "$dynamicAnchor": "meta",
15
-
16
- "title": "JSON Hyper-Schema",
17
- "allOf": [
18
- { "$ref": "https://json-schema.org/draft/2020-12/schema" },
19
- { "$ref": "https://json-schema.org/draft/2020-12/meta/hyper-schema" }
20
- ],
21
- "links": [
22
- {
23
- "rel": "self",
24
- "href": "{+%24id}"
25
- }
26
- ]
27
- }
@@ -1,85 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/links",
4
- "title": "Link Description Object",
5
-
6
- "type": "object",
7
- "properties": {
8
- "anchor": {
9
- "type": "string",
10
- "format": "uri-template"
11
- },
12
- "anchorPointer": {
13
- "type": "string",
14
- "anyOf": [
15
- { "format": "json-pointer" },
16
- { "format": "relative-json-pointer" }
17
- ]
18
- },
19
- "rel": {
20
- "anyOf": [
21
- { "type": "string" },
22
- {
23
- "type": "array",
24
- "items": { "type": "string" },
25
- "minItems": 1
26
- }
27
- ]
28
- },
29
- "href": {
30
- "type": "string",
31
- "format": "uri-template"
32
- },
33
- "hrefSchema": {
34
- "$dynamicRef": "https://json-schema.org/draft/2020-12/hyper-schema#meta",
35
- "default": false
36
- },
37
- "templatePointers": {
38
- "type": "object",
39
- "additionalProperties": {
40
- "type": "string",
41
- "anyOf": [
42
- { "format": "json-pointer" },
43
- { "format": "relative-json-pointer" }
44
- ]
45
- }
46
- },
47
- "templateRequired": {
48
- "type": "array",
49
- "items": {
50
- "type": "string"
51
- },
52
- "uniqueItems": true
53
- },
54
- "title": {
55
- "type": "string"
56
- },
57
- "description": {
58
- "type": "string"
59
- },
60
- "targetSchema": {
61
- "$dynamicRef": "https://json-schema.org/draft/2020-12/hyper-schema#meta",
62
- "default": true
63
- },
64
- "targetMediaType": {
65
- "type": "string"
66
- },
67
- "targetHints": {},
68
- "headerSchema": {
69
- "$dynamicRef": "https://json-schema.org/draft/2020-12/hyper-schema#meta",
70
- "default": true
71
- },
72
- "submissionMediaType": {
73
- "type": "string",
74
- "default": "application/json"
75
- },
76
- "submissionSchema": {
77
- "$dynamicRef": "https://json-schema.org/draft/2020-12/hyper-schema#meta",
78
- "default": true
79
- },
80
- "$comment": {
81
- "type": "string"
82
- }
83
- },
84
- "required": [ "rel", "href" ]
85
- }
@@ -1,45 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/applicator",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Applicator vocabulary meta-schema",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "prefixItems": { "$ref": "#/$defs/schemaArray" },
10
- "items": { "$dynamicRef": "#meta" },
11
- "contains": { "$dynamicRef": "#meta" },
12
- "additionalProperties": { "$dynamicRef": "#meta" },
13
- "properties": {
14
- "type": "object",
15
- "additionalProperties": { "$dynamicRef": "#meta" },
16
- "default": {}
17
- },
18
- "patternProperties": {
19
- "type": "object",
20
- "additionalProperties": { "$dynamicRef": "#meta" },
21
- "propertyNames": { "format": "regex" },
22
- "default": {}
23
- },
24
- "dependentSchemas": {
25
- "type": "object",
26
- "additionalProperties": { "$dynamicRef": "#meta" },
27
- "default": {}
28
- },
29
- "propertyNames": { "$dynamicRef": "#meta" },
30
- "if": { "$dynamicRef": "#meta" },
31
- "then": { "$dynamicRef": "#meta" },
32
- "else": { "$dynamicRef": "#meta" },
33
- "allOf": { "$ref": "#/$defs/schemaArray" },
34
- "anyOf": { "$ref": "#/$defs/schemaArray" },
35
- "oneOf": { "$ref": "#/$defs/schemaArray" },
36
- "not": { "$dynamicRef": "#meta" }
37
- },
38
- "$defs": {
39
- "schemaArray": {
40
- "type": "array",
41
- "minItems": 1,
42
- "items": { "$dynamicRef": "#meta" }
43
- }
44
- }
45
- }
@@ -1,14 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/content",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Content vocabulary meta-schema",
7
-
8
- "type": ["object", "boolean"],
9
- "properties": {
10
- "contentEncoding": { "type": "string" },
11
- "contentMediaType": { "type": "string" },
12
- "contentSchema": { "$dynamicRef": "#meta" }
13
- }
14
- }
@@ -1,48 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/core",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Core vocabulary meta-schema",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "$id": {
10
- "$ref": "#/$defs/uriReferenceString",
11
- "$comment": "Non-empty fragments not allowed.",
12
- "pattern": "^[^#]*#?$"
13
- },
14
- "$schema": { "$ref": "#/$defs/uriString" },
15
- "$ref": { "$ref": "#/$defs/uriReferenceString" },
16
- "$anchor": { "$ref": "#/$defs/anchorString" },
17
- "$dynamicRef": { "$ref": "#/$defs/uriReferenceString" },
18
- "$dynamicAnchor": { "$ref": "#/$defs/anchorString" },
19
- "$vocabulary": {
20
- "type": "object",
21
- "propertyNames": { "$ref": "#/$defs/uriString" },
22
- "additionalProperties": {
23
- "type": "boolean"
24
- }
25
- },
26
- "$comment": {
27
- "type": "string"
28
- },
29
- "$defs": {
30
- "type": "object",
31
- "additionalProperties": { "$dynamicRef": "#meta" }
32
- }
33
- },
34
- "$defs": {
35
- "anchorString": {
36
- "type": "string",
37
- "pattern": "^[A-Za-z_][-A-Za-z0-9._]*$"
38
- },
39
- "uriString": {
40
- "type": "string",
41
- "format": "uri"
42
- },
43
- "uriReferenceString": {
44
- "type": "string",
45
- "format": "uri-reference"
46
- }
47
- }
48
- }
@@ -1,11 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/format-annotation",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Format vocabulary meta-schema for annotation results",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "format": { "type": "string" }
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/format-assertion",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Format vocabulary meta-schema for assertion results",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "format": { "type": "string" }
10
- }
11
- }
@@ -1,26 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/hyper-schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/hyper-schema",
4
- "$dynamicAnchor": "meta",
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/2020-12/links"
17
- }
18
- }
19
- },
20
- "links": [
21
- {
22
- "rel": "self",
23
- "href": "{+%24id}"
24
- }
25
- ]
26
- }
@@ -1,34 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/meta-data",
4
- "$dynamicAnchor": "meta",
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
- }
@@ -1,12 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/unevaluated",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Unevaluated applicator vocabulary meta-schema",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "unevaluatedItems": { "$dynamicRef": "#meta" },
10
- "unevaluatedProperties": { "$dynamicRef": "#meta" }
11
- }
12
- }
@@ -1,95 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://json-schema.org/draft/2020-12/meta/validation",
4
- "$dynamicAnchor": "meta",
5
-
6
- "title": "Validation vocabulary meta-schema",
7
- "type": ["object", "boolean"],
8
- "properties": {
9
- "type": {
10
- "anyOf": [
11
- { "$ref": "#/$defs/simpleTypes" },
12
- {
13
- "type": "array",
14
- "items": { "$ref": "#/$defs/simpleTypes" },
15
- "minItems": 1,
16
- "uniqueItems": true
17
- }
18
- ]
19
- },
20
- "const": true,
21
- "enum": {
22
- "type": "array",
23
- "items": true
24
- },
25
- "multipleOf": {
26
- "type": "number",
27
- "exclusiveMinimum": 0
28
- },
29
- "maximum": {
30
- "type": "number"
31
- },
32
- "exclusiveMaximum": {
33
- "type": "number"
34
- },
35
- "minimum": {
36
- "type": "number"
37
- },
38
- "exclusiveMinimum": {
39
- "type": "number"
40
- },
41
- "maxLength": { "$ref": "#/$defs/nonNegativeInteger" },
42
- "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
43
- "pattern": {
44
- "type": "string",
45
- "format": "regex"
46
- },
47
- "maxItems": { "$ref": "#/$defs/nonNegativeInteger" },
48
- "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
49
- "uniqueItems": {
50
- "type": "boolean",
51
- "default": false
52
- },
53
- "maxContains": { "$ref": "#/$defs/nonNegativeInteger" },
54
- "minContains": {
55
- "$ref": "#/$defs/nonNegativeInteger",
56
- "default": 1
57
- },
58
- "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" },
59
- "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
60
- "required": { "$ref": "#/$defs/stringArray" },
61
- "dependentRequired": {
62
- "type": "object",
63
- "additionalProperties": {
64
- "$ref": "#/$defs/stringArray"
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
- }
@@ -1,62 +0,0 @@
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
- }