@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,183 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/_shared/defs/spawning.schema.json",
4
+ "title": "Cobblemon Shared Spawning",
5
+ "type": "object",
6
+ "$defs": {
7
+ "spawningCondition": {
8
+ "type": "object",
9
+ "properties": {
10
+ "type": {
11
+ "type": "string",
12
+ "enum": [
13
+ "basic",
14
+ "area",
15
+ "grounded",
16
+ "surface",
17
+ "submerged",
18
+ "seafloor",
19
+ "fishing"
20
+ ]
21
+ },
22
+ "dimensions": {
23
+ "$ref": "./collections.schema.json#/$defs/stringList"
24
+ },
25
+ "biomes": {
26
+ "$ref": "./collections.schema.json#/$defs/stringList"
27
+ },
28
+ "moonPhase": {
29
+ "oneOf": [
30
+ {
31
+ "type": "string"
32
+ },
33
+ {
34
+ "type": "integer"
35
+ }
36
+ ]
37
+ },
38
+ "canSeeSky": {
39
+ "type": "boolean"
40
+ },
41
+ "minX": {
42
+ "type": "number"
43
+ },
44
+ "minY": {
45
+ "type": "number"
46
+ },
47
+ "minZ": {
48
+ "type": "number"
49
+ },
50
+ "maxX": {
51
+ "type": "number"
52
+ },
53
+ "maxY": {
54
+ "type": "number"
55
+ },
56
+ "maxZ": {
57
+ "type": "number"
58
+ },
59
+ "minLight": {
60
+ "type": "integer"
61
+ },
62
+ "maxLight": {
63
+ "type": "integer"
64
+ },
65
+ "minSkyLight": {
66
+ "type": "integer"
67
+ },
68
+ "maxSkyLight": {
69
+ "type": "integer"
70
+ },
71
+ "isRaining": {
72
+ "type": "boolean"
73
+ },
74
+ "isThundering": {
75
+ "type": "boolean"
76
+ },
77
+ "timeRange": {
78
+ "anyOf": [
79
+ {
80
+ "$ref": "./ranges.schema.json#/$defs/intRange"
81
+ },
82
+ {
83
+ "type": "string",
84
+ "enum": [
85
+ "any",
86
+ "day",
87
+ "night",
88
+ "morning",
89
+ "noon",
90
+ "afternoon",
91
+ "evening",
92
+ "midnight",
93
+ "predawn",
94
+ "dawn",
95
+ "dusk",
96
+ "twilight"
97
+ ]
98
+ }
99
+ ]
100
+ },
101
+ "structures": {
102
+ "$ref": "./collections.schema.json#/$defs/stringList"
103
+ },
104
+ "isSlimeChunk": {
105
+ "type": "boolean"
106
+ },
107
+ "markers": {
108
+ "$ref": "./collections.schema.json#/$defs/stringList"
109
+ },
110
+ "minHeight": {
111
+ "type": "integer"
112
+ },
113
+ "maxHeight": {
114
+ "type": "integer"
115
+ },
116
+ "neededNearbyBlocks": {
117
+ "$ref": "./collections.schema.json#/$defs/stringList"
118
+ },
119
+ "neededBaseBlocks": {
120
+ "$ref": "./collections.schema.json#/$defs/stringList"
121
+ },
122
+ "minDepth": {
123
+ "type": "integer"
124
+ },
125
+ "maxDepth": {
126
+ "type": "integer"
127
+ },
128
+ "fluidIsSource": {
129
+ "type": "boolean"
130
+ },
131
+ "fluid": {
132
+ "$ref": "./pokemon.schema.json#/$defs/registryLikeCondition"
133
+ },
134
+ "rod": {
135
+ "$ref": "./pokemon.schema.json#/$defs/registryLikeCondition"
136
+ },
137
+ "minLureLevel": {
138
+ "type": "integer"
139
+ },
140
+ "maxLureLevel": {
141
+ "type": "integer"
142
+ },
143
+ "bait": {
144
+ "$ref": "./identifiers.schema.json#/$defs/identifier"
145
+ },
146
+ "rodType": {
147
+ "$ref": "./identifiers.schema.json#/$defs/identifier"
148
+ }
149
+ },
150
+ "additionalProperties": true
151
+ },
152
+ "weightMultiplier": {
153
+ "type": "object",
154
+ "properties": {
155
+ "condition": {
156
+ "$ref": "./spawning.schema.json#/$defs/spawningCondition"
157
+ },
158
+ "conditions": {
159
+ "type": "array",
160
+ "items": {
161
+ "$ref": "./spawning.schema.json#/$defs/spawningCondition"
162
+ }
163
+ },
164
+ "anticondition": {
165
+ "$ref": "./spawning.schema.json#/$defs/spawningCondition"
166
+ },
167
+ "anticonditions": {
168
+ "type": "array",
169
+ "items": {
170
+ "$ref": "./spawning.schema.json#/$defs/spawningCondition"
171
+ }
172
+ },
173
+ "multiplier": {
174
+ "type": "number"
175
+ }
176
+ },
177
+ "required": [
178
+ "multiplier"
179
+ ],
180
+ "additionalProperties": false
181
+ }
182
+ }
183
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/_shared/defs/vectors.schema.json",
4
+ "title": "Cobblemon Shared Vectors",
5
+ "type": "object",
6
+ "$defs": {
7
+ "vec3": {
8
+ "type": "object",
9
+ "properties": {
10
+ "x": {
11
+ "type": "number"
12
+ },
13
+ "y": {
14
+ "type": "number"
15
+ },
16
+ "z": {
17
+ "type": "number"
18
+ }
19
+ },
20
+ "required": [
21
+ "x",
22
+ "y",
23
+ "z"
24
+ ],
25
+ "additionalProperties": false
26
+ },
27
+ "positioning": {
28
+ "type": "object",
29
+ "properties": {
30
+ "position": {
31
+ "$ref": "./vectors.schema.json#/$defs/vec3"
32
+ },
33
+ "rotation": {
34
+ "$ref": "./vectors.schema.json#/$defs/vec3"
35
+ }
36
+ },
37
+ "required": [
38
+ "position",
39
+ "rotation"
40
+ ],
41
+ "additionalProperties": false
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/action_effects/schema.json",
4
+ "title": "Cobblemon Action Effects",
5
+ "type": "object",
6
+ "properties": {
7
+ "timeline": {
8
+ "type": "array",
9
+ "items": {
10
+ "$ref": "#/$defs/keyframe"
11
+ }
12
+ },
13
+ "condition": {
14
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
15
+ }
16
+ },
17
+ "required": [
18
+ "timeline"
19
+ ],
20
+ "additionalProperties": false,
21
+ "$defs": {
22
+ "keyframe": {
23
+ "oneOf": [
24
+ {
25
+ "type": "string"
26
+ },
27
+ {
28
+ "type": "object",
29
+ "properties": {
30
+ "type": {
31
+ "type": "string"
32
+ },
33
+ "animation": {
34
+ "oneOf": [
35
+ {
36
+ "type": "string"
37
+ },
38
+ {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string"
42
+ }
43
+ }
44
+ ]
45
+ },
46
+ "expressions": {
47
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
48
+ },
49
+ "pause": {
50
+ "type": "number"
51
+ },
52
+ "delay": {
53
+ "oneOf": [
54
+ {
55
+ "type": "number"
56
+ },
57
+ {
58
+ "type": "string"
59
+ }
60
+ ]
61
+ },
62
+ "effect": {
63
+ "type": "string"
64
+ },
65
+ "sound": {
66
+ "type": "string"
67
+ },
68
+ "locators": {
69
+ "oneOf": [
70
+ {
71
+ "type": "string"
72
+ },
73
+ {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ }
78
+ }
79
+ ]
80
+ },
81
+ "targetLocators": {
82
+ "type": "array",
83
+ "items": {
84
+ "type": "string"
85
+ }
86
+ },
87
+ "holds": {
88
+ "type": "array",
89
+ "items": {
90
+ "type": "string"
91
+ }
92
+ },
93
+ "variables": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string"
97
+ }
98
+ },
99
+ "entityCondition": {
100
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
101
+ },
102
+ "condition": {
103
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
104
+ },
105
+ "locator": {
106
+ "type": "string"
107
+ },
108
+ "keyframes": {
109
+ "type": "array",
110
+ "items": {
111
+ "$ref": "#/$defs/keyframe"
112
+ }
113
+ }
114
+ },
115
+ "required": [
116
+ "type"
117
+ ],
118
+ "additionalProperties": true
119
+ }
120
+ ]
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,184 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cobblemon-schema.local/bedrock_pokemon_resolvers/schema.json",
4
+ "title": "Cobblemon Bedrock Pokemon Resolver",
5
+ "type": "object",
6
+ "properties": {
7
+ "species": {
8
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/resourceLocation"
9
+ },
10
+ "name": {
11
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/resourceLocation"
12
+ },
13
+ "pokeball": {
14
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/resourceLocation"
15
+ },
16
+ "order": {
17
+ "type": "integer",
18
+ "minimum": 0
19
+ },
20
+ "variations": {
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "#/$defs/variation"
24
+ }
25
+ }
26
+ },
27
+ "required": [
28
+ "order",
29
+ "variations"
30
+ ],
31
+ "anyOf": [
32
+ {
33
+ "required": [
34
+ "species"
35
+ ]
36
+ },
37
+ {
38
+ "required": [
39
+ "name"
40
+ ]
41
+ },
42
+ {
43
+ "required": [
44
+ "pokeball"
45
+ ]
46
+ }
47
+ ],
48
+ "additionalProperties": false,
49
+ "$defs": {
50
+ "textureSupplier": {
51
+ "anyOf": [
52
+ {
53
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
54
+ },
55
+ {
56
+ "type": "string",
57
+ "const": "variable"
58
+ },
59
+ {
60
+ "type": "object",
61
+ "properties": {
62
+ "loop": {
63
+ "type": "boolean"
64
+ },
65
+ "fps": {
66
+ "type": "number",
67
+ "exclusiveMinimum": 0
68
+ },
69
+ "frames": {
70
+ "type": "array",
71
+ "items": {
72
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
73
+ },
74
+ "minItems": 1
75
+ },
76
+ "interpolation": {
77
+ "type": "boolean"
78
+ }
79
+ },
80
+ "required": [
81
+ "frames"
82
+ ],
83
+ "additionalProperties": false
84
+ }
85
+ ]
86
+ },
87
+ "scrollingSettings": {
88
+ "type": "object",
89
+ "properties": {
90
+ "speedU": {
91
+ "type": "number"
92
+ },
93
+ "speedV": {
94
+ "type": "number"
95
+ }
96
+ },
97
+ "additionalProperties": false
98
+ },
99
+ "layer": {
100
+ "type": "object",
101
+ "properties": {
102
+ "name": {
103
+ "type": "string",
104
+ "minLength": 1
105
+ },
106
+ "enabled": {
107
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/booleanLike"
108
+ },
109
+ "tint": {
110
+ "type": "array",
111
+ "items": {
112
+ "type": "number"
113
+ },
114
+ "minItems": 4,
115
+ "maxItems": 4
116
+ },
117
+ "texture": {
118
+ "$ref": "#/$defs/textureSupplier"
119
+ },
120
+ "emissive": {
121
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/booleanLike"
122
+ },
123
+ "translucent": {
124
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/booleanLike"
125
+ },
126
+ "translucent_cull": {
127
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/booleanLike"
128
+ },
129
+ "scrolling": {
130
+ "$ref": "#/$defs/scrollingSettings"
131
+ }
132
+ },
133
+ "additionalProperties": false
134
+ },
135
+ "sprites": {
136
+ "type": "object",
137
+ "properties": {
138
+ "PORTRAIT": {
139
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
140
+ },
141
+ "PROFILE": {
142
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
143
+ }
144
+ },
145
+ "additionalProperties": false
146
+ },
147
+ "variation": {
148
+ "type": "object",
149
+ "properties": {
150
+ "aspects": {
151
+ "type": "array",
152
+ "items": {
153
+ "type": "string"
154
+ }
155
+ },
156
+ "condition": {
157
+ "$ref": "../_shared/defs/expressions.schema.json#/$defs/expressionLike"
158
+ },
159
+ "poser": {
160
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
161
+ },
162
+ "model": {
163
+ "$ref": "../_shared/defs/identifiers.schema.json#/$defs/identifier"
164
+ },
165
+ "texture": {
166
+ "$ref": "#/$defs/textureSupplier"
167
+ },
168
+ "layers": {
169
+ "type": "array",
170
+ "items": {
171
+ "$ref": "#/$defs/layer"
172
+ }
173
+ },
174
+ "sprites": {
175
+ "$ref": "#/$defs/sprites"
176
+ }
177
+ },
178
+ "required": [
179
+ "aspects"
180
+ ],
181
+ "additionalProperties": false
182
+ }
183
+ }
184
+ }