@fulmenhq/tsfulmen 0.2.0 → 0.2.3

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 (111) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +61 -7
  3. package/config/crucible-ts/agentic/roles/README.md +3 -3
  4. package/config/crucible-ts/library/fulencode/fixtures/README.md +18 -0
  5. package/config/crucible-ts/library/fulencode/fixtures/bom/bom.yaml +14 -0
  6. package/config/crucible-ts/library/fulencode/fixtures/detection/detection.yaml +12 -0
  7. package/config/crucible-ts/library/fulencode/fixtures/invalid-encodings/base64.yaml +10 -0
  8. package/config/crucible-ts/library/fulencode/fixtures/normalization/text-safe.yaml +10 -0
  9. package/config/crucible-ts/library/fulencode/fixtures/telemetry/telemetry-test-cases.yaml +24 -0
  10. package/config/crucible-ts/library/fulencode/fixtures/valid-encodings/base64.yaml +11 -0
  11. package/config/crucible-ts/taxonomy/library/platform-modules/v1.0.0/modules.yaml +2 -2
  12. package/config/crucible-ts/taxonomy/metrics.yaml +79 -1
  13. package/dist/appidentity/index.d.ts +31 -109
  14. package/dist/appidentity/index.js +369 -60
  15. package/dist/appidentity/index.js.map +1 -1
  16. package/dist/config/index.d.ts +46 -1
  17. package/dist/config/index.js +427 -62
  18. package/dist/config/index.js.map +1 -1
  19. package/dist/crucible/index.js +367 -59
  20. package/dist/crucible/index.js.map +1 -1
  21. package/dist/errors/index.d.ts +1 -1
  22. package/dist/errors/index.js +367 -59
  23. package/dist/errors/index.js.map +1 -1
  24. package/dist/foundry/index.d.ts +2 -1
  25. package/dist/foundry/index.js +368 -60
  26. package/dist/foundry/index.js.map +1 -1
  27. package/dist/fulencode/index.d.ts +102 -0
  28. package/dist/fulencode/index.js +806 -0
  29. package/dist/fulencode/index.js.map +1 -0
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.js +370 -61
  32. package/dist/index.js.map +1 -1
  33. package/dist/pathfinder/index.d.ts +1 -1
  34. package/dist/pathfinder/index.js +367 -59
  35. package/dist/pathfinder/index.js.map +1 -1
  36. package/dist/reports/license-inventory.csv +31 -24
  37. package/dist/schema/index.d.ts +16 -3
  38. package/dist/schema/index.js +368 -60
  39. package/dist/schema/index.js.map +1 -1
  40. package/dist/signals/index.d.ts +483 -395
  41. package/dist/signals/index.js +368 -60
  42. package/dist/signals/index.js.map +1 -1
  43. package/dist/telemetry/http/index.js +368 -59
  44. package/dist/telemetry/http/index.js.map +1 -1
  45. package/dist/telemetry/index.d.ts +1 -1
  46. package/dist/telemetry/index.js +367 -59
  47. package/dist/telemetry/index.js.map +1 -1
  48. package/dist/telemetry/prometheus/index.d.ts +1 -1
  49. package/dist/telemetry/prometheus/index.js +369 -59
  50. package/dist/telemetry/prometheus/index.js.map +1 -1
  51. package/dist/{types-BJswWpQC.d.ts → types-DdoeE7F5.d.ts} +1 -1
  52. package/dist/types-Dv5TERCM.d.ts +108 -0
  53. package/package.json +13 -8
  54. package/schemas/crucible-ts/library/fulencode/v1.0.0/README.md +37 -0
  55. package/schemas/crucible-ts/library/fulencode/v1.0.0/bom-result.schema.json +48 -0
  56. package/schemas/crucible-ts/library/fulencode/v1.0.0/decode-options.schema.json +60 -0
  57. package/schemas/crucible-ts/library/fulencode/v1.0.0/decoding-result.schema.json +70 -0
  58. package/schemas/crucible-ts/library/fulencode/v1.0.0/detect-options.schema.json +25 -0
  59. package/schemas/crucible-ts/library/fulencode/v1.0.0/detection-result.schema.json +57 -0
  60. package/schemas/crucible-ts/library/fulencode/v1.0.0/encode-options.schema.json +71 -0
  61. package/schemas/crucible-ts/library/fulencode/v1.0.0/encoding-result.schema.json +57 -0
  62. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +8 -4
  63. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-error.schema.json +66 -0
  64. package/schemas/crucible-ts/library/fulencode/v1.0.0/normalization-result.schema.json +73 -0
  65. package/schemas/crucible-ts/library/fulencode/v1.0.0/normalize-options.schema.json +44 -0
  66. package/schemas/crucible-ts/meta/README.md +38 -2
  67. package/schemas/crucible-ts/meta/draft-04/schema.json +222 -0
  68. package/schemas/crucible-ts/meta/draft-06/schema.json +218 -0
  69. package/schemas/crucible-ts/meta/draft-2019-09/meta/applicator.json +93 -0
  70. package/schemas/crucible-ts/meta/draft-2019-09/meta/content.json +21 -0
  71. package/schemas/crucible-ts/meta/draft-2019-09/meta/core.json +58 -0
  72. package/schemas/crucible-ts/meta/draft-2019-09/meta/format.json +15 -0
  73. package/schemas/crucible-ts/meta/draft-2019-09/meta/meta-data.json +35 -0
  74. package/schemas/crucible-ts/meta/draft-2019-09/meta/validation.json +119 -0
  75. package/schemas/crucible-ts/meta/draft-2019-09/offline.schema.json +148 -0
  76. package/schemas/crucible-ts/meta/draft-2019-09/schema.json +62 -0
  77. package/schemas/crucible-ts/meta/fixtures/draft-04-sample.json +16 -0
  78. package/schemas/crucible-ts/meta/fixtures/draft-06-sample.json +16 -0
  79. package/schemas/crucible-ts/meta/fixtures/draft-07-sample.json +34 -0
  80. package/schemas/crucible-ts/meta/fixtures/draft-2019-09-sample.json +21 -0
  81. package/schemas/crucible-ts/meta/fixtures/draft-2020-12-sample.json +21 -0
  82. package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.yaml +16 -0
  83. package/schemas/crucible-ts/upstream/3leaps/crucible/PROVENANCE.md +64 -0
  84. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/access-tier.dimension.json +103 -0
  85. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/retention-lifecycle.dimension.json +103 -0
  86. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/schema-stability.dimension.json +100 -0
  87. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/sensitivity.dimension.json +130 -0
  88. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/velocity-mode.dimension.json +79 -0
  89. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/volatility.dimension.json +72 -0
  90. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/volume-tier.dimension.json +66 -0
  91. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/catalog/classifiers/README.md +29 -0
  92. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/access-tier-classification.md +163 -0
  93. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/classifiers-framework.md +157 -0
  94. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/data-sensitivity-classification.md +259 -0
  95. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/retention-lifecycle-classification.md +200 -0
  96. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/schema-stability-classification.md +205 -0
  97. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/velocity-mode-classification.md +222 -0
  98. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/volatility-classification.md +209 -0
  99. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/volume-tier-classification.md +200 -0
  100. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/ailink/v0/README.md +48 -0
  101. package/schemas/crucible-ts/upstream/3leaps/{ailink → crucible/schemas/ailink}/v0/prompt.schema.json +4 -18
  102. package/schemas/crucible-ts/upstream/3leaps/{ailink → crucible/schemas/ailink}/v0/search-response.schema.json +7 -37
  103. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/classifiers/v0/dimension-definition.schema.json +247 -0
  104. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/classifiers/v0/sensitivity-level.schema.json +67 -0
  105. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/error-response.schema.json +59 -0
  106. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/lifecycle-phases.data.json +102 -0
  107. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/lifecycle-phases.schema.json +101 -0
  108. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/release-phase.schema.json +18 -0
  109. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/types.schema.json +177 -0
  110. package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +0 -43
  111. /package/schemas/crucible-ts/upstream/3leaps/{agentic → crucible/schemas/agentic}/v0/role-prompt.schema.json +0 -0
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/library/fulencode/v1.0.0/fulencode-error.schema.json",
4
+ "title": "Fulencode Error",
5
+ "description": "Canonical error envelope for Fulencode operations",
6
+ "type": "object",
7
+ "properties": {
8
+ "code": {
9
+ "type": "string"
10
+ },
11
+ "message": {
12
+ "type": "string"
13
+ },
14
+ "operation": {
15
+ "type": "string"
16
+ },
17
+ "input_format": {
18
+ "type": "string"
19
+ },
20
+ "output_format": {
21
+ "type": "string"
22
+ },
23
+ "details": {
24
+ "type": "object",
25
+ "properties": {
26
+ "byte_offset": {
27
+ "type": "integer",
28
+ "minimum": 0
29
+ },
30
+ "codepoint_offset": {
31
+ "type": "integer",
32
+ "minimum": 0
33
+ },
34
+ "detected_encoding": {
35
+ "type": "string"
36
+ },
37
+ "confidence": {
38
+ "type": "number",
39
+ "minimum": 0.0,
40
+ "maximum": 1.0
41
+ },
42
+ "invalid_bytes": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "integer",
46
+ "minimum": 0,
47
+ "maximum": 255
48
+ }
49
+ },
50
+ "expected": {
51
+ "type": "string"
52
+ },
53
+ "actual": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ "additionalProperties": true
58
+ }
59
+ },
60
+ "required": [
61
+ "code",
62
+ "message",
63
+ "operation"
64
+ ],
65
+ "additionalProperties": false
66
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/library/fulencode/v1.0.0/normalization-result.schema.json",
4
+ "title": "Fulencode Normalization Result",
5
+ "description": "Result payload for fulencode normalize()",
6
+ "type": "object",
7
+ "properties": {
8
+ "text": {
9
+ "type": "string"
10
+ },
11
+ "profile": {
12
+ "type": "string"
13
+ },
14
+ "input_length": {
15
+ "type": "integer",
16
+ "minimum": 0
17
+ },
18
+ "output_length": {
19
+ "type": "integer",
20
+ "minimum": 0
21
+ },
22
+ "transformations_applied": {
23
+ "type": "array",
24
+ "items": {
25
+ "type": "string"
26
+ }
27
+ },
28
+ "semantic_changes": {
29
+ "type": "array",
30
+ "items": {
31
+ "type": "object",
32
+ "properties": {
33
+ "position": {
34
+ "type": "integer",
35
+ "minimum": 0
36
+ },
37
+ "original": {
38
+ "type": "string"
39
+ },
40
+ "normalized": {
41
+ "type": "string"
42
+ },
43
+ "reason": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "required": [
48
+ "position",
49
+ "original",
50
+ "normalized",
51
+ "reason"
52
+ ],
53
+ "additionalProperties": false
54
+ }
55
+ },
56
+ "warnings": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string"
60
+ }
61
+ }
62
+ },
63
+ "required": [
64
+ "text",
65
+ "profile",
66
+ "input_length",
67
+ "output_length",
68
+ "transformations_applied",
69
+ "semantic_changes",
70
+ "warnings"
71
+ ],
72
+ "additionalProperties": false
73
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.fulmenhq.dev/crucible/library/fulencode/v1.0.0/normalize-options.schema.json",
4
+ "title": "Fulencode Normalize Options",
5
+ "description": "Options for fulencode normalize() operation",
6
+ "type": "object",
7
+ "properties": {
8
+ "warn_semantic_change": {
9
+ "type": "boolean",
10
+ "description": "Warn when normalization performs semantic-changing transforms (NFKC/NFKD)."
11
+ },
12
+ "reject_zero_width": {
13
+ "type": "boolean",
14
+ "description": "Reject zero-width characters when true."
15
+ },
16
+ "reject_bidi_controls": {
17
+ "type": "boolean",
18
+ "description": "Reject bidi control characters (override/isolate) when true."
19
+ },
20
+ "max_combining_marks": {
21
+ "type": "integer",
22
+ "description": "Maximum combining marks per base character.",
23
+ "minimum": 1,
24
+ "maximum": 100
25
+ },
26
+ "strip_accents": {
27
+ "type": "boolean",
28
+ "description": "Remove combining marks/diacritics when true."
29
+ },
30
+ "case_fold": {
31
+ "type": "boolean",
32
+ "description": "Apply Unicode case folding when true."
33
+ },
34
+ "remove_punctuation": {
35
+ "type": "boolean",
36
+ "description": "Remove punctuation and symbol categories when true."
37
+ },
38
+ "compress_whitespace": {
39
+ "type": "boolean",
40
+ "description": "Collapse consecutive whitespace to a single space when true."
41
+ }
42
+ },
43
+ "additionalProperties": false
44
+ }
@@ -2,15 +2,47 @@
2
2
 
3
3
  This directory stores the curated JSON Schema meta-schemas that FulmenHQ tools need for
4
4
  offline validation. Directory names mirror the signature tags defined in
5
- schema signatures (e.g., `draft-07`, `draft-2020-12`) so downstream automation can reason about available drafts.
5
+ schema signatures (e.g., `draft-04`, `draft-06`, `draft-07`, `draft-2019-09`, `draft-2020-12`) so downstream automation can reason about available drafts.
6
6
 
7
7
  ## Contents
8
8
 
9
+ - `draft-04/` – canonical Draft-04 meta-schema (`schema.json`).
10
+ - Single-file, self-contained meta-schema.
11
+ - Uses `id` instead of `$id` (pre-Draft-06 convention).
12
+ - Common in SchemaStore and legacy tooling.
13
+
14
+ - `draft-06/` – canonical Draft-06 meta-schema (`schema.json`).
15
+ - Single-file, self-contained meta-schema.
16
+ - Introduced `$id`, `const`, `contains`, `propertyNames`.
17
+ - Boolean schemas allowed (`true`/`false` as schemas).
18
+
9
19
  - `draft-07/` – canonical Draft-07 meta-schema (`schema.json`).
20
+ - Single-file, self-contained meta-schema.
21
+ - Added `if`/`then`/`else`, `readOnly`, `writeOnly`, `$comment`.
22
+
23
+ - `draft-2019-09/` – canonical Draft 2019-09 meta-schema plus offline helpers.
24
+ - `schema.json` – raw meta-schema with `$ref` to modular vocabularies.
25
+ - `offline.schema.json` – reduced subset for offline validation (no external refs).
26
+ - `meta/` – modular vocabularies (`core.json`, `validation.json`, `applicator.json`, etc.).
27
+ - Uses `$recursiveAnchor`/`$recursiveRef` (replaced by `$dynamicAnchor` in 2020-12).
28
+ - Introduced `$vocabulary`, `$anchor`, `unevaluatedProperties`, `unevaluatedItems`.
29
+
10
30
  - `draft-2020-12/` – canonical Draft 2020-12 meta-schema plus offline helpers.
11
31
  - `schema.json` – raw meta-schema fetched from json-schema.org.
12
32
  - `offline.schema.json` – reduced subset used when offline validation is needed.
13
- - `meta/` – reserved for additional vocabularies (`core.json`, `validation.json`, etc.).
33
+ - `meta/` – modular vocabularies (`core.json`, `validation.json`, `applicator.json`, etc.).
34
+ - Uses `$dynamicAnchor`/`$dynamicRef` (replacing recursive anchor from 2019-09).
35
+ - Recommended default for new schemas.
36
+
37
+ ## Draft Selection Guidance
38
+
39
+ | Draft | When to Use |
40
+ | ------------- | --------------------------------------------------------------- |
41
+ | Draft-04 | Legacy schema compatibility (SchemaStore, older tools) |
42
+ | Draft-06 | Transitional schemas needing `const` but not `if`/`then`/`else` |
43
+ | Draft-07 | Stable choice with conditional keywords, wide tool support |
44
+ | Draft 2019-09 | Advanced features without 2020-12's dynamic refs |
45
+ | Draft 2020-12 | **Recommended** for new schemas, latest features |
14
46
 
15
47
  ## Refresh Workflow
16
48
 
@@ -21,3 +53,7 @@ Meta-schemas are treated as curated assets. Refresh them from upstream when netw
21
53
  ## Offline Subset
22
54
 
23
55
  `draft-2020-12/offline.schema.json` is a minimal schema that covers the portions of the spec needed for validation. It avoids `$ref` chains to `meta/*` so the validator can operate without network access. Keep it in sync with upstream changes as needed.
56
+
57
+ ## Fixtures
58
+
59
+ `fixtures/` contains minimal sample schemas for each draft. These are intended for cross-language parity tests and for validating that the embedded meta-schemas load correctly.
@@ -0,0 +1,222 @@
1
+ {
2
+ "id": "http://json-schema.org/draft-04/schema#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "description": "Core schema meta-schema",
5
+ "definitions": {
6
+ "schemaArray": {
7
+ "type": "array",
8
+ "minItems": 1,
9
+ "items": {
10
+ "$ref": "#"
11
+ }
12
+ },
13
+ "positiveInteger": {
14
+ "type": "integer",
15
+ "minimum": 0
16
+ },
17
+ "positiveIntegerDefault0": {
18
+ "allOf": [
19
+ {
20
+ "$ref": "#/definitions/positiveInteger"
21
+ },
22
+ {
23
+ "default": 0
24
+ }
25
+ ]
26
+ },
27
+ "simpleTypes": {
28
+ "enum": [
29
+ "array",
30
+ "boolean",
31
+ "integer",
32
+ "null",
33
+ "number",
34
+ "object",
35
+ "string"
36
+ ]
37
+ },
38
+ "stringArray": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string"
42
+ },
43
+ "minItems": 1,
44
+ "uniqueItems": true
45
+ }
46
+ },
47
+ "type": "object",
48
+ "properties": {
49
+ "id": {
50
+ "type": "string"
51
+ },
52
+ "$schema": {
53
+ "type": "string"
54
+ },
55
+ "title": {
56
+ "type": "string"
57
+ },
58
+ "description": {
59
+ "type": "string"
60
+ },
61
+ "default": {},
62
+ "multipleOf": {
63
+ "type": "number",
64
+ "minimum": 0,
65
+ "exclusiveMinimum": true
66
+ },
67
+ "maximum": {
68
+ "type": "number"
69
+ },
70
+ "exclusiveMaximum": {
71
+ "type": "boolean",
72
+ "default": false
73
+ },
74
+ "minimum": {
75
+ "type": "number"
76
+ },
77
+ "exclusiveMinimum": {
78
+ "type": "boolean",
79
+ "default": false
80
+ },
81
+ "maxLength": {
82
+ "$ref": "#/definitions/positiveInteger"
83
+ },
84
+ "minLength": {
85
+ "$ref": "#/definitions/positiveIntegerDefault0"
86
+ },
87
+ "pattern": {
88
+ "type": "string",
89
+ "format": "regex"
90
+ },
91
+ "additionalItems": {
92
+ "anyOf": [
93
+ {
94
+ "type": "boolean"
95
+ },
96
+ {
97
+ "$ref": "#"
98
+ }
99
+ ],
100
+ "default": {}
101
+ },
102
+ "items": {
103
+ "anyOf": [
104
+ {
105
+ "$ref": "#"
106
+ },
107
+ {
108
+ "$ref": "#/definitions/schemaArray"
109
+ }
110
+ ],
111
+ "default": {}
112
+ },
113
+ "maxItems": {
114
+ "$ref": "#/definitions/positiveInteger"
115
+ },
116
+ "minItems": {
117
+ "$ref": "#/definitions/positiveIntegerDefault0"
118
+ },
119
+ "uniqueItems": {
120
+ "type": "boolean",
121
+ "default": false
122
+ },
123
+ "maxProperties": {
124
+ "$ref": "#/definitions/positiveInteger"
125
+ },
126
+ "minProperties": {
127
+ "$ref": "#/definitions/positiveIntegerDefault0"
128
+ },
129
+ "required": {
130
+ "$ref": "#/definitions/stringArray"
131
+ },
132
+ "additionalProperties": {
133
+ "anyOf": [
134
+ {
135
+ "type": "boolean"
136
+ },
137
+ {
138
+ "$ref": "#"
139
+ }
140
+ ],
141
+ "default": {}
142
+ },
143
+ "definitions": {
144
+ "type": "object",
145
+ "additionalProperties": {
146
+ "$ref": "#"
147
+ },
148
+ "default": {}
149
+ },
150
+ "properties": {
151
+ "type": "object",
152
+ "additionalProperties": {
153
+ "$ref": "#"
154
+ },
155
+ "default": {}
156
+ },
157
+ "patternProperties": {
158
+ "type": "object",
159
+ "additionalProperties": {
160
+ "$ref": "#"
161
+ },
162
+ "default": {}
163
+ },
164
+ "dependencies": {
165
+ "type": "object",
166
+ "additionalProperties": {
167
+ "anyOf": [
168
+ {
169
+ "$ref": "#"
170
+ },
171
+ {
172
+ "$ref": "#/definitions/stringArray"
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ "enum": {
178
+ "type": "array",
179
+ "minItems": 1,
180
+ "uniqueItems": true
181
+ },
182
+ "type": {
183
+ "anyOf": [
184
+ {
185
+ "$ref": "#/definitions/simpleTypes"
186
+ },
187
+ {
188
+ "type": "array",
189
+ "items": {
190
+ "$ref": "#/definitions/simpleTypes"
191
+ },
192
+ "minItems": 1,
193
+ "uniqueItems": true
194
+ }
195
+ ]
196
+ },
197
+ "format": {
198
+ "type": "string"
199
+ },
200
+ "allOf": {
201
+ "$ref": "#/definitions/schemaArray"
202
+ },
203
+ "anyOf": {
204
+ "$ref": "#/definitions/schemaArray"
205
+ },
206
+ "oneOf": {
207
+ "$ref": "#/definitions/schemaArray"
208
+ },
209
+ "not": {
210
+ "$ref": "#"
211
+ }
212
+ },
213
+ "dependencies": {
214
+ "exclusiveMaximum": [
215
+ "maximum"
216
+ ],
217
+ "exclusiveMinimum": [
218
+ "minimum"
219
+ ]
220
+ },
221
+ "default": {}
222
+ }
@@ -0,0 +1,218 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-06/schema#",
3
+ "$id": "http://json-schema.org/draft-06/schema#",
4
+ "title": "Core schema meta-schema",
5
+ "definitions": {
6
+ "schemaArray": {
7
+ "type": "array",
8
+ "minItems": 1,
9
+ "items": {
10
+ "$ref": "#"
11
+ }
12
+ },
13
+ "nonNegativeInteger": {
14
+ "type": "integer",
15
+ "minimum": 0
16
+ },
17
+ "nonNegativeIntegerDefault0": {
18
+ "allOf": [
19
+ {
20
+ "$ref": "#/definitions/nonNegativeInteger"
21
+ },
22
+ {
23
+ "default": 0
24
+ }
25
+ ]
26
+ },
27
+ "simpleTypes": {
28
+ "enum": [
29
+ "array",
30
+ "boolean",
31
+ "integer",
32
+ "null",
33
+ "number",
34
+ "object",
35
+ "string"
36
+ ]
37
+ },
38
+ "stringArray": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string"
42
+ },
43
+ "uniqueItems": true,
44
+ "default": []
45
+ }
46
+ },
47
+ "type": [
48
+ "object",
49
+ "boolean"
50
+ ],
51
+ "properties": {
52
+ "$id": {
53
+ "type": "string",
54
+ "format": "uri-reference"
55
+ },
56
+ "$schema": {
57
+ "type": "string",
58
+ "format": "uri"
59
+ },
60
+ "$ref": {
61
+ "type": "string",
62
+ "format": "uri-reference"
63
+ },
64
+ "title": {
65
+ "type": "string"
66
+ },
67
+ "description": {
68
+ "type": "string"
69
+ },
70
+ "default": {},
71
+ "examples": {
72
+ "type": "array",
73
+ "items": {}
74
+ },
75
+ "multipleOf": {
76
+ "type": "number",
77
+ "exclusiveMinimum": 0
78
+ },
79
+ "maximum": {
80
+ "type": "number"
81
+ },
82
+ "exclusiveMaximum": {
83
+ "type": "number"
84
+ },
85
+ "minimum": {
86
+ "type": "number"
87
+ },
88
+ "exclusiveMinimum": {
89
+ "type": "number"
90
+ },
91
+ "maxLength": {
92
+ "$ref": "#/definitions/nonNegativeInteger"
93
+ },
94
+ "minLength": {
95
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
96
+ },
97
+ "pattern": {
98
+ "type": "string",
99
+ "format": "regex"
100
+ },
101
+ "additionalItems": {
102
+ "$ref": "#"
103
+ },
104
+ "items": {
105
+ "anyOf": [
106
+ {
107
+ "$ref": "#"
108
+ },
109
+ {
110
+ "$ref": "#/definitions/schemaArray"
111
+ }
112
+ ],
113
+ "default": {}
114
+ },
115
+ "maxItems": {
116
+ "$ref": "#/definitions/nonNegativeInteger"
117
+ },
118
+ "minItems": {
119
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
120
+ },
121
+ "uniqueItems": {
122
+ "type": "boolean",
123
+ "default": false
124
+ },
125
+ "contains": {
126
+ "$ref": "#"
127
+ },
128
+ "maxProperties": {
129
+ "$ref": "#/definitions/nonNegativeInteger"
130
+ },
131
+ "minProperties": {
132
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
133
+ },
134
+ "required": {
135
+ "$ref": "#/definitions/stringArray"
136
+ },
137
+ "additionalProperties": {
138
+ "$ref": "#"
139
+ },
140
+ "definitions": {
141
+ "type": "object",
142
+ "additionalProperties": {
143
+ "$ref": "#"
144
+ },
145
+ "default": {}
146
+ },
147
+ "properties": {
148
+ "type": "object",
149
+ "additionalProperties": {
150
+ "$ref": "#"
151
+ },
152
+ "default": {}
153
+ },
154
+ "patternProperties": {
155
+ "type": "object",
156
+ "additionalProperties": {
157
+ "$ref": "#"
158
+ },
159
+ "propertyNames": {
160
+ "format": "regex"
161
+ },
162
+ "default": {}
163
+ },
164
+ "dependencies": {
165
+ "type": "object",
166
+ "additionalProperties": {
167
+ "anyOf": [
168
+ {
169
+ "$ref": "#"
170
+ },
171
+ {
172
+ "$ref": "#/definitions/stringArray"
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ "propertyNames": {
178
+ "$ref": "#"
179
+ },
180
+ "const": {},
181
+ "enum": {
182
+ "type": "array",
183
+ "minItems": 1,
184
+ "uniqueItems": true
185
+ },
186
+ "type": {
187
+ "anyOf": [
188
+ {
189
+ "$ref": "#/definitions/simpleTypes"
190
+ },
191
+ {
192
+ "type": "array",
193
+ "items": {
194
+ "$ref": "#/definitions/simpleTypes"
195
+ },
196
+ "minItems": 1,
197
+ "uniqueItems": true
198
+ }
199
+ ]
200
+ },
201
+ "format": {
202
+ "type": "string"
203
+ },
204
+ "allOf": {
205
+ "$ref": "#/definitions/schemaArray"
206
+ },
207
+ "anyOf": {
208
+ "$ref": "#/definitions/schemaArray"
209
+ },
210
+ "oneOf": {
211
+ "$ref": "#/definitions/schemaArray"
212
+ },
213
+ "not": {
214
+ "$ref": "#"
215
+ }
216
+ },
217
+ "default": {}
218
+ }