@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,244 @@
1
+ {
2
+ "schemas": [
3
+ {
4
+ "name": "action_effects",
5
+ "path": "schemas/action_effects/schema.json",
6
+ "$id": "https://cobblemon-schema.local/action_effects/schema.json"
7
+ },
8
+ {
9
+ "name": "behaviours",
10
+ "path": "schemas/behaviours/schema.json",
11
+ "$id": "https://cobblemon-schema.local/behaviours/schema.json"
12
+ },
13
+ {
14
+ "name": "berries",
15
+ "path": "schemas/berries/schema.json",
16
+ "$id": "https://cobblemon-schema.local/berries/schema.json"
17
+ },
18
+ {
19
+ "name": "cosmetic_items",
20
+ "path": "schemas/cosmetic_items/schema.json",
21
+ "$id": "https://cobblemon-schema.local/cosmetic_items/schema.json"
22
+ },
23
+ {
24
+ "name": "dex_entries",
25
+ "path": "schemas/dex_entries/schema.json",
26
+ "$id": "https://cobblemon-schema.local/dex_entries/schema.json"
27
+ },
28
+ {
29
+ "name": "dexes",
30
+ "path": "schemas/dexes/schema.json",
31
+ "$id": "https://cobblemon-schema.local/dexes/schema.json"
32
+ },
33
+ {
34
+ "name": "dialogues",
35
+ "path": "schemas/dialogues/schema.json",
36
+ "$id": "https://cobblemon-schema.local/dialogues/schema.json"
37
+ },
38
+ {
39
+ "name": "fossils",
40
+ "path": "schemas/fossils/schema.json",
41
+ "$id": "https://cobblemon-schema.local/fossils/schema.json"
42
+ },
43
+ {
44
+ "name": "global_species_features",
45
+ "path": "schemas/global_species_features/schema.json",
46
+ "$id": "https://cobblemon-schema.local/global_species_features/schema.json"
47
+ },
48
+ {
49
+ "name": "marks",
50
+ "path": "schemas/marks/schema.json",
51
+ "$id": "https://cobblemon-schema.local/marks/schema.json"
52
+ },
53
+ {
54
+ "name": "mechanics_aprijuices",
55
+ "path": "schemas/mechanics/aprijuices.schema.json",
56
+ "$id": "https://cobblemon-schema.local/mechanics/aprijuices.schema.json"
57
+ },
58
+ {
59
+ "name": "mechanics_berries",
60
+ "path": "schemas/mechanics/berries.schema.json",
61
+ "$id": "https://cobblemon-schema.local/mechanics/berries.schema.json"
62
+ },
63
+ {
64
+ "name": "mechanics_potions",
65
+ "path": "schemas/mechanics/potions.schema.json",
66
+ "$id": "https://cobblemon-schema.local/mechanics/potions.schema.json"
67
+ },
68
+ {
69
+ "name": "mechanics_remedies",
70
+ "path": "schemas/mechanics/remedies.schema.json",
71
+ "$id": "https://cobblemon-schema.local/mechanics/remedies.schema.json"
72
+ },
73
+ {
74
+ "name": "mechanics_slowpoke_tails",
75
+ "path": "schemas/mechanics/slowpoke_tails.schema.json",
76
+ "$id": "https://cobblemon-schema.local/mechanics/slowpoke_tails.schema.json"
77
+ },
78
+ {
79
+ "name": "natural_materials",
80
+ "path": "schemas/natural_materials/schema.json",
81
+ "$id": "https://cobblemon-schema.local/natural_materials/schema.json"
82
+ },
83
+ {
84
+ "name": "npc_presets",
85
+ "path": "schemas/npc_presets/schema.json",
86
+ "$id": "https://cobblemon-schema.local/npc_presets/schema.json"
87
+ },
88
+ {
89
+ "name": "npcs",
90
+ "path": "schemas/npcs/schema.json",
91
+ "$id": "https://cobblemon-schema.local/npcs/schema.json"
92
+ },
93
+ {
94
+ "name": "pokemon_interactions",
95
+ "path": "schemas/pokemon_interactions/schema.json",
96
+ "$id": "https://cobblemon-schema.local/pokemon_interactions/schema.json"
97
+ },
98
+ {
99
+ "name": "pokerods",
100
+ "path": "schemas/pokerods/schema.json",
101
+ "$id": "https://cobblemon-schema.local/pokerods/schema.json"
102
+ },
103
+ {
104
+ "name": "ride_settings_bird",
105
+ "path": "schemas/ride_settings/bird.schema.json",
106
+ "$id": "https://cobblemon-schema.local/ride_settings/bird.schema.json"
107
+ },
108
+ {
109
+ "name": "ride_settings_boat",
110
+ "path": "schemas/ride_settings/boat.schema.json",
111
+ "$id": "https://cobblemon-schema.local/ride_settings/boat.schema.json"
112
+ },
113
+ {
114
+ "name": "ride_settings_burst",
115
+ "path": "schemas/ride_settings/burst.schema.json",
116
+ "$id": "https://cobblemon-schema.local/ride_settings/burst.schema.json"
117
+ },
118
+ {
119
+ "name": "ride_settings_dolphin",
120
+ "path": "schemas/ride_settings/dolphin.schema.json",
121
+ "$id": "https://cobblemon-schema.local/ride_settings/dolphin.schema.json"
122
+ },
123
+ {
124
+ "name": "ride_settings_glider",
125
+ "path": "schemas/ride_settings/glider.schema.json",
126
+ "$id": "https://cobblemon-schema.local/ride_settings/glider.schema.json"
127
+ },
128
+ {
129
+ "name": "ride_settings_helicopter",
130
+ "path": "schemas/ride_settings/helicopter.schema.json",
131
+ "$id": "https://cobblemon-schema.local/ride_settings/helicopter.schema.json"
132
+ },
133
+ {
134
+ "name": "ride_settings_horse",
135
+ "path": "schemas/ride_settings/horse.schema.json",
136
+ "$id": "https://cobblemon-schema.local/ride_settings/horse.schema.json"
137
+ },
138
+ {
139
+ "name": "ride_settings_hover",
140
+ "path": "schemas/ride_settings/hover.schema.json",
141
+ "$id": "https://cobblemon-schema.local/ride_settings/hover.schema.json"
142
+ },
143
+ {
144
+ "name": "ride_settings_jet",
145
+ "path": "schemas/ride_settings/jet.schema.json",
146
+ "$id": "https://cobblemon-schema.local/ride_settings/jet.schema.json"
147
+ },
148
+ {
149
+ "name": "ride_settings_minekart",
150
+ "path": "schemas/ride_settings/minekart.schema.json",
151
+ "$id": "https://cobblemon-schema.local/ride_settings/minekart.schema.json"
152
+ },
153
+ {
154
+ "name": "ride_settings_rocket",
155
+ "path": "schemas/ride_settings/rocket.schema.json",
156
+ "$id": "https://cobblemon-schema.local/ride_settings/rocket.schema.json"
157
+ },
158
+ {
159
+ "name": "ride_settings_submarine",
160
+ "path": "schemas/ride_settings/submarine.schema.json",
161
+ "$id": "https://cobblemon-schema.local/ride_settings/submarine.schema.json"
162
+ },
163
+ {
164
+ "name": "ride_settings_vehicle",
165
+ "path": "schemas/ride_settings/vehicle.schema.json",
166
+ "$id": "https://cobblemon-schema.local/ride_settings/vehicle.schema.json"
167
+ },
168
+ {
169
+ "name": "seasonings",
170
+ "path": "schemas/seasonings/schema.json",
171
+ "$id": "https://cobblemon-schema.local/seasonings/schema.json"
172
+ },
173
+ {
174
+ "name": "spawn_bait_effects",
175
+ "path": "schemas/spawn_bait_effects/schema.json",
176
+ "$id": "https://cobblemon-schema.local/spawn_bait_effects/schema.json"
177
+ },
178
+ {
179
+ "name": "spawn_detail_presets",
180
+ "path": "schemas/spawn_detail_presets/schema.json",
181
+ "$id": "https://cobblemon-schema.local/spawn_detail_presets/schema.json"
182
+ },
183
+ {
184
+ "name": "spawn_pool_world",
185
+ "path": "schemas/spawn_pool_world/schema.json",
186
+ "$id": "https://cobblemon-schema.local/spawn_pool_world/schema.json"
187
+ },
188
+ {
189
+ "name": "spawn_rules",
190
+ "path": "schemas/spawn_rules/schema.json",
191
+ "$id": "https://cobblemon-schema.local/spawn_rules/schema.json"
192
+ },
193
+ {
194
+ "name": "species",
195
+ "path": "schemas/species/schema.json",
196
+ "$id": "https://cobblemon-schema.local/species/schema.json"
197
+ },
198
+ {
199
+ "name": "species_feature_assignments",
200
+ "path": "schemas/species_feature_assignments/schema.json",
201
+ "$id": "https://cobblemon-schema.local/species_feature_assignments/schema.json"
202
+ },
203
+ {
204
+ "name": "species_features",
205
+ "path": "schemas/species_features/schema.json",
206
+ "$id": "https://cobblemon-schema.local/species_features/schema.json"
207
+ },
208
+ {
209
+ "name": "unlockable_pc_box_wallpapers",
210
+ "path": "schemas/unlockable_pc_box_wallpapers/schema.json",
211
+ "$id": "https://cobblemon-schema.local/unlockable_pc_box_wallpapers/schema.json"
212
+ },
213
+ {
214
+ "name": "species_additions",
215
+ "path": "schemas/species_additions/schema.json",
216
+ "$id": "https://cobblemon-schema.local/species_additions/schema.json"
217
+ },
218
+ {
219
+ "name": "dex_additions",
220
+ "path": "schemas/dex_additions/schema.json",
221
+ "$id": "https://cobblemon-schema.local/dex_additions/schema.json"
222
+ },
223
+ {
224
+ "name": "dex_entry_additions",
225
+ "path": "schemas/dex_entry_additions/schema.json",
226
+ "$id": "https://cobblemon-schema.local/dex_entry_additions/schema.json"
227
+ },
228
+ {
229
+ "name": "starters",
230
+ "path": "schemas/starters/schema.json",
231
+ "$id": "https://cobblemon-schema.local/starters/schema.json"
232
+ },
233
+ {
234
+ "name": "bedrock_pokemon_resolvers",
235
+ "path": "schemas/bedrock_pokemon_resolvers/schema.json",
236
+ "$id": "https://cobblemon-schema.local/bedrock_pokemon_resolvers/schema.json"
237
+ },
238
+ {
239
+ "name": "bedrock_posers",
240
+ "path": "schemas/bedrock_posers/schema.json",
241
+ "$id": "https://cobblemon-schema.local/bedrock_posers/schema.json"
242
+ }
243
+ ]
244
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/marks/schema.json",
4
+ "title": "Cobblemon Mark",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string"
9
+ },
10
+ "description": {
11
+ "type": "string"
12
+ },
13
+ "title": {
14
+ "type": "string"
15
+ },
16
+ "titleColor": {
17
+ "type": "string"
18
+ },
19
+ "titleColour": {
20
+ "type": "string"
21
+ },
22
+ "texture": {
23
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
24
+ },
25
+ "replace": {
26
+ "type": "array",
27
+ "items": {
28
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
29
+ }
30
+ },
31
+ "group": {
32
+ "type": "string"
33
+ },
34
+ "chance": {
35
+ "type": "number",
36
+ "minimum": 0
37
+ },
38
+ "indexNumber": {
39
+ "type": "integer",
40
+ "minimum": 0
41
+ }
42
+ },
43
+ "required": [
44
+ "name",
45
+ "description",
46
+ "texture"
47
+ ],
48
+ "additionalProperties": false
49
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/mechanics/aprijuices.schema.json",
4
+ "title": "Cobblemon Mechanics: Aprijuices",
5
+ "type": "object",
6
+ "properties": {
7
+ "apricornStatEffects": {
8
+ "type": "object",
9
+ "additionalProperties": {
10
+ "type": "object",
11
+ "additionalProperties": { "type": "integer" }
12
+ }
13
+ },
14
+ "statPointFlavourThresholds": {
15
+ "type": "object",
16
+ "additionalProperties": { "type": "integer" }
17
+ },
18
+ "cookingQualityPointThresholds": {
19
+ "type": "object",
20
+ "additionalProperties": { "type": "string" }
21
+ }
22
+ },
23
+ "required": ["apricornStatEffects", "statPointFlavourThresholds", "cookingQualityPointThresholds"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/mechanics/berries.schema.json",
4
+ "title": "Cobblemon Mechanics: Berries",
5
+ "type": "object",
6
+ "properties": {
7
+ "portionHealRatio": {
8
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
9
+ },
10
+ "sitrusHealAmount": {
11
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
12
+ },
13
+ "friendshipRaiseAmount": {
14
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
15
+ },
16
+ "evLowerAmount": {
17
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
18
+ },
19
+ "ppRestoreAmount": {
20
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
21
+ },
22
+ "oranRestoreAmount": {
23
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
24
+ }
25
+ },
26
+ "required": [
27
+ "portionHealRatio",
28
+ "sitrusHealAmount",
29
+ "friendshipRaiseAmount",
30
+ "evLowerAmount",
31
+ "ppRestoreAmount",
32
+ "oranRestoreAmount"
33
+ ],
34
+ "additionalProperties": false
35
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/mechanics/potions.schema.json",
4
+ "title": "Cobblemon Mechanics: Potions",
5
+ "type": "object",
6
+ "properties": {
7
+ "potionRestoreAmount": {
8
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
9
+ },
10
+ "superPotionRestoreAmount": {
11
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
12
+ },
13
+ "hyperPotionRestoreAmount": {
14
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
15
+ }
16
+ },
17
+ "required": [
18
+ "potionRestoreAmount",
19
+ "superPotionRestoreAmount",
20
+ "hyperPotionRestoreAmount"
21
+ ],
22
+ "additionalProperties": false
23
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/mechanics/remedies.schema.json",
4
+ "title": "Cobblemon Mechanics: Remedies",
5
+ "type": "object",
6
+ "properties": {
7
+ "remedies": {
8
+ "type": "object",
9
+ "additionalProperties": {
10
+ "type": "object",
11
+ "properties": {
12
+ "healingAmount": {
13
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
14
+ },
15
+ "friendshipDrop": {
16
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
17
+ }
18
+ },
19
+ "required": [
20
+ "healingAmount",
21
+ "friendshipDrop"
22
+ ],
23
+ "additionalProperties": false
24
+ }
25
+ }
26
+ },
27
+ "required": [
28
+ "remedies"
29
+ ],
30
+ "additionalProperties": false
31
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/mechanics/slowpoke_tails.schema.json",
4
+ "title": "Cobblemon Mechanics: Slowpoke Tails",
5
+ "type": "object",
6
+ "properties": {
7
+ "canShearSlowpoke": { "type": "boolean" },
8
+ "onlyRegrowWhenSentOut": { "type": "boolean" },
9
+ "regrowthSeconds": { "type": "integer", "minimum": 0 },
10
+ "aspectThresholds": {
11
+ "type": "object",
12
+ "additionalProperties": { "type": "string" }
13
+ }
14
+ },
15
+ "required": ["canShearSlowpoke", "onlyRegrowWhenSentOut", "regrowthSeconds", "aspectThresholds"],
16
+ "additionalProperties": false
17
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/natural_materials/schema.json",
4
+ "title": "Cobblemon Natural Materials",
5
+ "type": "array",
6
+ "items": {
7
+ "type": "object",
8
+ "properties": {
9
+ "content": {
10
+ "type": "integer",
11
+ "minimum": 0
12
+ },
13
+ "item": {
14
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
15
+ },
16
+ "tag": {
17
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/tagIdentifier"
18
+ },
19
+ "returnItem": {
20
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
21
+ }
22
+ },
23
+ "required": [
24
+ "content"
25
+ ],
26
+ "anyOf": [
27
+ {
28
+ "required": [
29
+ "item"
30
+ ]
31
+ },
32
+ {
33
+ "required": [
34
+ "tag"
35
+ ]
36
+ }
37
+ ],
38
+ "additionalProperties": false
39
+ }
40
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/npc_presets/schema.json",
4
+ "title": "Cobblemon NPC Preset",
5
+ "$ref": "../npcs/schema.json"
6
+ }