@cobbled-creators/cobblemon-schemas 1.7.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.
Files changed (85) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +68 -0
  3. package/bin/cobblemon-schemas.mjs +51 -0
  4. package/dist/bundle.json +1 -0
  5. package/dist/validators.mjs +3 -0
  6. package/package.json +66 -0
  7. package/schemas/_shared/common.schema.json +89 -0
  8. package/schemas/_shared/defs/collections.schema.json +32 -0
  9. package/schemas/_shared/defs/drops.schema.json +89 -0
  10. package/schemas/_shared/defs/expressions.schema.json +82 -0
  11. package/schemas/_shared/defs/identifiers.schema.json +24 -0
  12. package/schemas/_shared/defs/npc.schema.json +76 -0
  13. package/schemas/_shared/defs/pokemon.schema.json +41 -0
  14. package/schemas/_shared/defs/ranges.schema.json +70 -0
  15. package/schemas/_shared/defs/ride.schema.json +77 -0
  16. package/schemas/_shared/defs/spawning.schema.json +183 -0
  17. package/schemas/_shared/defs/vectors.schema.json +44 -0
  18. package/schemas/action_effects/schema.json +123 -0
  19. package/schemas/bedrock_pokemon_resolvers/schema.json +184 -0
  20. package/schemas/bedrock_posers/schema.json +367 -0
  21. package/schemas/behaviours/schema.json +145 -0
  22. package/schemas/berries/schema.json +178 -0
  23. package/schemas/cosmetic_items/schema.json +55 -0
  24. package/schemas/dex_additions/schema.json +22 -0
  25. package/schemas/dex_entries/schema.json +83 -0
  26. package/schemas/dex_entry_additions/schema.json +63 -0
  27. package/schemas/dexes/schema.json +89 -0
  28. package/schemas/dialogues/schema.json +260 -0
  29. package/schemas/fossils/schema.json +22 -0
  30. package/schemas/global_species_features/schema.json +6 -0
  31. package/schemas/index.json +244 -0
  32. package/schemas/marks/schema.json +49 -0
  33. package/schemas/mechanics/aprijuices.schema.json +25 -0
  34. package/schemas/mechanics/berries.schema.json +35 -0
  35. package/schemas/mechanics/potions.schema.json +23 -0
  36. package/schemas/mechanics/remedies.schema.json +31 -0
  37. package/schemas/mechanics/slowpoke_tails.schema.json +17 -0
  38. package/schemas/natural_materials/schema.json +40 -0
  39. package/schemas/npc_presets/schema.json +6 -0
  40. package/schemas/npcs/schema.json +443 -0
  41. package/schemas/pokemon_interactions/schema.json +169 -0
  42. package/schemas/pokerods/schema.json +19 -0
  43. package/schemas/ride_settings/bird.schema.json +48 -0
  44. package/schemas/ride_settings/boat.schema.json +45 -0
  45. package/schemas/ride_settings/burst.schema.json +11 -0
  46. package/schemas/ride_settings/dolphin.schema.json +45 -0
  47. package/schemas/ride_settings/glider.schema.json +18 -0
  48. package/schemas/ride_settings/helicopter.schema.json +21 -0
  49. package/schemas/ride_settings/horse.schema.json +36 -0
  50. package/schemas/ride_settings/hover.schema.json +33 -0
  51. package/schemas/ride_settings/jet.schema.json +42 -0
  52. package/schemas/ride_settings/minekart.schema.json +33 -0
  53. package/schemas/ride_settings/rocket.schema.json +36 -0
  54. package/schemas/ride_settings/submarine.schema.json +33 -0
  55. package/schemas/ride_settings/vehicle.schema.json +45 -0
  56. package/schemas/seasonings/schema.json +124 -0
  57. package/schemas/spawn_bait_effects/schema.json +42 -0
  58. package/schemas/spawn_detail_presets/schema.json +79 -0
  59. package/schemas/spawn_pool_world/schema.json +455 -0
  60. package/schemas/spawn_rules/schema.json +217 -0
  61. package/schemas/species/schema.json +1043 -0
  62. package/schemas/species_additions/schema.json +22 -0
  63. package/schemas/species_feature_assignments/schema.json +25 -0
  64. package/schemas/species_features/schema.json +139 -0
  65. package/schemas/starters/schema.json +28 -0
  66. package/schemas/unlockable_pc_box_wallpapers/schema.json +29 -0
  67. package/src/errors/format.mjs +46 -0
  68. package/src/errors/pointer.mjs +30 -0
  69. package/src/errors/simplify.mjs +58 -0
  70. package/src/errors/type-branches.mjs +65 -0
  71. package/src/errors/values.mjs +7 -0
  72. package/src/index.d.ts +74 -0
  73. package/src/index.mjs +6 -0
  74. package/src/json/line-index.mjs +21 -0
  75. package/src/json/parse-json.mjs +28 -0
  76. package/src/json/syntax-errors.mjs +56 -0
  77. package/src/node/load-engine.mjs +30 -0
  78. package/src/node/load-schemas.mjs +35 -0
  79. package/src/node/package-info.mjs +10 -0
  80. package/src/node/read-pack.mjs +18 -0
  81. package/src/node.d.ts +13 -0
  82. package/src/node.mjs +5 -0
  83. package/src/schema-engine.mjs +43 -0
  84. package/src/schema-index.mjs +54 -0
  85. package/src/validate-pack.mjs +28 -0
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/cosmetic_items/schema.json",
4
+ "title": "Cobblemon Cosmetic Item Assignment",
5
+ "type": "object",
6
+ "properties": {
7
+ "pokemon": {
8
+ "type": "array",
9
+ "items": {
10
+ "$ref": "../_shared/defs/pokemon.schema.json#/$defs/pokemonProperties"
11
+ }
12
+ },
13
+ "cosmeticItems": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "object",
17
+ "properties": {
18
+ "consumedItem": {
19
+ "$ref": "../_shared/defs/pokemon.schema.json#/$defs/registryLikeCondition"
20
+ },
21
+ "item": {
22
+ "$ref": "../_shared/defs/pokemon.schema.json#/$defs/registryLikeCondition"
23
+ },
24
+ "aspects": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ }
30
+ },
31
+ "required": [
32
+ "aspects"
33
+ ],
34
+ "anyOf": [
35
+ {
36
+ "required": [
37
+ "consumedItem"
38
+ ]
39
+ },
40
+ {
41
+ "required": [
42
+ "item"
43
+ ]
44
+ }
45
+ ],
46
+ "additionalProperties": false
47
+ }
48
+ }
49
+ },
50
+ "required": [
51
+ "pokemon",
52
+ "cosmeticItems"
53
+ ],
54
+ "additionalProperties": false
55
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/dex_additions/schema.json",
4
+ "title": "Cobblemon Dex Addition",
5
+ "type": "object",
6
+ "properties": {
7
+ "dexId": {
8
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
9
+ },
10
+ "entries": {
11
+ "type": "array",
12
+ "items": {
13
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
14
+ }
15
+ }
16
+ },
17
+ "required": [
18
+ "dexId",
19
+ "entries"
20
+ ],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/dex_entries/schema.json",
4
+ "title": "Cobblemon Dex Entry",
5
+ "type": "object",
6
+ "properties": {
7
+ "id": {
8
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
9
+ },
10
+ "speciesId": {
11
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
12
+ },
13
+ "displayAspects": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "conditionAspects": {
20
+ "type": "array",
21
+ "items": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ "forms": {
26
+ "type": "array",
27
+ "items": {
28
+ "type": "object",
29
+ "properties": {
30
+ "displayForm": {
31
+ "type": "string"
32
+ },
33
+ "unlockForms": {
34
+ "type": "array",
35
+ "items": {
36
+ "type": "string"
37
+ }
38
+ }
39
+ },
40
+ "required": [
41
+ "displayForm",
42
+ "unlockForms"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ },
47
+ "variations": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "object",
51
+ "properties": {
52
+ "displayName": {
53
+ "type": "string"
54
+ },
55
+ "icon": {
56
+ "type": "string"
57
+ },
58
+ "aspects": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "string"
62
+ }
63
+ }
64
+ },
65
+ "required": [
66
+ "displayName",
67
+ "icon",
68
+ "aspects"
69
+ ],
70
+ "additionalProperties": false
71
+ }
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "speciesId",
77
+ "displayAspects",
78
+ "conditionAspects",
79
+ "forms",
80
+ "variations"
81
+ ],
82
+ "additionalProperties": false
83
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/dex_entry_additions/schema.json",
4
+ "title": "Cobblemon Dex Entry Addition",
5
+ "type": "object",
6
+ "properties": {
7
+ "entryId": {
8
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
9
+ },
10
+ "forms": {
11
+ "type": "array",
12
+ "items": {
13
+ "type": "object",
14
+ "properties": {
15
+ "displayForm": {
16
+ "type": "string"
17
+ },
18
+ "unlockForms": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "string"
22
+ }
23
+ }
24
+ },
25
+ "required": [
26
+ "displayForm",
27
+ "unlockForms"
28
+ ],
29
+ "additionalProperties": false
30
+ }
31
+ },
32
+ "variations": {
33
+ "type": "array",
34
+ "items": {
35
+ "type": "object",
36
+ "properties": {
37
+ "displayName": {
38
+ "type": "string"
39
+ },
40
+ "icon": {
41
+ "type": "string"
42
+ },
43
+ "aspects": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string"
47
+ }
48
+ }
49
+ },
50
+ "required": [
51
+ "displayName",
52
+ "icon",
53
+ "aspects"
54
+ ],
55
+ "additionalProperties": false
56
+ }
57
+ }
58
+ },
59
+ "required": [
60
+ "entryId"
61
+ ],
62
+ "additionalProperties": false
63
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/dexes/schema.json",
4
+ "title": "Cobblemon Dex Definition",
5
+ "type": "object",
6
+ "properties": {
7
+ "type": {
8
+ "type": "string",
9
+ "enum": [
10
+ "cobblemon:simple_pokedex_def",
11
+ "cobblemon:aggregate_pokedex_def"
12
+ ]
13
+ },
14
+ "id": {
15
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
16
+ },
17
+ "sortOrder": {
18
+ "type": "integer"
19
+ },
20
+ "entries": {
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
24
+ }
25
+ },
26
+ "subDexIds": {
27
+ "type": "array",
28
+ "items": {
29
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
30
+ }
31
+ },
32
+ "squash": {
33
+ "type": "boolean"
34
+ }
35
+ },
36
+ "required": [
37
+ "type",
38
+ "id",
39
+ "sortOrder"
40
+ ],
41
+ "allOf": [
42
+ {
43
+ "if": {
44
+ "properties": {
45
+ "type": {
46
+ "const": "cobblemon:simple_pokedex_def"
47
+ }
48
+ },
49
+ "required": [
50
+ "type"
51
+ ]
52
+ },
53
+ "then": {
54
+ "required": [
55
+ "entries"
56
+ ],
57
+ "not": {
58
+ "required": [
59
+ "subDexIds"
60
+ ]
61
+ }
62
+ }
63
+ },
64
+ {
65
+ "if": {
66
+ "properties": {
67
+ "type": {
68
+ "const": "cobblemon:aggregate_pokedex_def"
69
+ }
70
+ },
71
+ "required": [
72
+ "type"
73
+ ]
74
+ },
75
+ "then": {
76
+ "required": [
77
+ "subDexIds",
78
+ "squash"
79
+ ],
80
+ "not": {
81
+ "required": [
82
+ "entries"
83
+ ]
84
+ }
85
+ }
86
+ }
87
+ ],
88
+ "additionalProperties": false
89
+ }
@@ -0,0 +1,260 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/dialogues/schema.json",
4
+ "title": "Cobblemon Dialogue",
5
+ "type": "object",
6
+ "properties": {
7
+ "pages": {
8
+ "type": "array",
9
+ "items": {
10
+ "$ref": "#/$defs/page"
11
+ }
12
+ },
13
+ "background": {
14
+ "type": "string"
15
+ },
16
+ "escapeAction": {
17
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
18
+ },
19
+ "initializationAction": {
20
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
21
+ },
22
+ "speakers": {
23
+ "type": "object",
24
+ "additionalProperties": {
25
+ "$ref": "#/$defs/speaker"
26
+ }
27
+ }
28
+ },
29
+ "required": [
30
+ "pages",
31
+ "speakers"
32
+ ],
33
+ "additionalProperties": false,
34
+ "$defs": {
35
+ "line": {
36
+ "oneOf": [
37
+ {
38
+ "type": "string"
39
+ },
40
+ {
41
+ "type": "object",
42
+ "properties": {
43
+ "type": {
44
+ "type": "string"
45
+ },
46
+ "expression": {
47
+ "type": "string"
48
+ }
49
+ },
50
+ "required": [
51
+ "type",
52
+ "expression"
53
+ ],
54
+ "additionalProperties": true
55
+ }
56
+ ]
57
+ },
58
+ "option": {
59
+ "type": "object",
60
+ "properties": {
61
+ "text": {
62
+ "oneOf": [
63
+ {
64
+ "type": "string"
65
+ },
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "type": {
70
+ "type": "string"
71
+ },
72
+ "expression": {
73
+ "type": "string"
74
+ }
75
+ },
76
+ "required": [
77
+ "type",
78
+ "expression"
79
+ ],
80
+ "additionalProperties": true
81
+ }
82
+ ]
83
+ },
84
+ "value": {
85
+ "type": "string"
86
+ },
87
+ "action": {
88
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
89
+ },
90
+ "isVisible": {
91
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
92
+ },
93
+ "isSelectable": {
94
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
95
+ }
96
+ },
97
+ "required": [
98
+ "text",
99
+ "value"
100
+ ],
101
+ "additionalProperties": false
102
+ },
103
+ "input": {
104
+ "oneOf": [
105
+ {
106
+ "type": "string"
107
+ },
108
+ {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string"
112
+ }
113
+ },
114
+ {
115
+ "type": "object",
116
+ "properties": {
117
+ "type": {
118
+ "type": "string",
119
+ "enum": [
120
+ "text",
121
+ "auto-continue",
122
+ "option",
123
+ "none"
124
+ ]
125
+ },
126
+ "action": {
127
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
128
+ },
129
+ "delay": {
130
+ "type": "integer"
131
+ },
132
+ "allowSkip": {
133
+ "type": "boolean"
134
+ },
135
+ "showTimer": {
136
+ "type": "boolean"
137
+ },
138
+ "vertical": {
139
+ "type": "boolean"
140
+ },
141
+ "options": {
142
+ "type": "array",
143
+ "items": {
144
+ "$ref": "#/$defs/option"
145
+ }
146
+ },
147
+ "timeout": {
148
+ "type": "object",
149
+ "properties": {
150
+ "delay": {
151
+ "type": "integer"
152
+ },
153
+ "action": {
154
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
155
+ }
156
+ },
157
+ "required": [
158
+ "delay",
159
+ "action"
160
+ ],
161
+ "additionalProperties": false
162
+ }
163
+ },
164
+ "additionalProperties": false
165
+ }
166
+ ]
167
+ },
168
+ "speaker": {
169
+ "type": "object",
170
+ "properties": {
171
+ "name": {
172
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
173
+ },
174
+ "face": {
175
+ "oneOf": [
176
+ {
177
+ "type": "string"
178
+ },
179
+ {
180
+ "type": "object",
181
+ "properties": {
182
+ "type": {
183
+ "type": "string"
184
+ },
185
+ "modelType": {
186
+ "type": "string"
187
+ },
188
+ "identifier": {
189
+ "type": "string"
190
+ },
191
+ "isLeftSide": {
192
+ "type": "boolean"
193
+ },
194
+ "aspects": {
195
+ "type": "array",
196
+ "items": {
197
+ "type": "string"
198
+ }
199
+ }
200
+ },
201
+ "additionalProperties": true
202
+ }
203
+ ]
204
+ },
205
+ "gibber": {
206
+ "type": "object",
207
+ "additionalProperties": true
208
+ }
209
+ },
210
+ "required": [
211
+ "name",
212
+ "face"
213
+ ],
214
+ "additionalProperties": false
215
+ },
216
+ "page": {
217
+ "type": "object",
218
+ "properties": {
219
+ "id": {
220
+ "type": "string"
221
+ },
222
+ "speaker": {
223
+ "type": "string"
224
+ },
225
+ "lines": {
226
+ "type": "array",
227
+ "items": {
228
+ "$ref": "#/$defs/line"
229
+ }
230
+ },
231
+ "textColor": {
232
+ "type": "string"
233
+ },
234
+ "background": {
235
+ "type": "string"
236
+ },
237
+ "input": {
238
+ "$ref": "#/$defs/input"
239
+ },
240
+ "gibber": {
241
+ "type": "object",
242
+ "additionalProperties": true
243
+ },
244
+ "clientActions": {
245
+ "type": "array",
246
+ "items": {
247
+ "type": "string"
248
+ }
249
+ },
250
+ "escapeAction": {
251
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/actionList"
252
+ }
253
+ },
254
+ "required": [
255
+ "lines"
256
+ ],
257
+ "additionalProperties": false
258
+ }
259
+ }
260
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/fossils/schema.json",
4
+ "title": "Cobblemon Fossil Revival",
5
+ "type": "object",
6
+ "properties": {
7
+ "result": {
8
+ "$ref": "../_shared/defs/pokemon.schema.json#/$defs/pokemonProperties"
9
+ },
10
+ "fossils": {
11
+ "type": "array",
12
+ "items": {
13
+ "$ref": "../_shared/defs/pokemon.schema.json#/$defs/itemPredicate"
14
+ }
15
+ }
16
+ },
17
+ "required": [
18
+ "result",
19
+ "fossils"
20
+ ],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/global_species_features/schema.json",
4
+ "title": "Cobblemon Global Species Feature Provider",
5
+ "$ref": "../species_features/schema.json"
6
+ }