5etools-utils 0.8.36 → 0.9.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.
- package/README.md +1 -0
- package/bin/test-json-ua.js +5 -0
- package/lib/BrewTester.js +2 -2
- package/lib/TestJson.js +19 -6
- package/package.json +2 -1
- package/schema/brew/items.json +10 -7
- package/schema/brew-fast/items.json +10 -7
- package/schema/site/items.json +10 -7
- package/schema/site/util.json +1 -1
- package/schema/site-fast/items.json +10 -7
- package/schema/site-fast/util.json +1 -1
- package/schema/ua/actions.json +97 -0
- package/schema/ua/adventure/adventure.json +12 -0
- package/schema/ua/adventures.json +214 -0
- package/schema/ua/backgrounds.json +314 -0
- package/schema/ua/bestiary/bestiary.json +3735 -0
- package/schema/ua/bestiary/fluff-bestiary.json +15 -0
- package/schema/ua/bestiary/fluff-index.json +11 -0
- package/schema/ua/bestiary/foundry.json +15 -0
- package/schema/ua/bestiary/index.json +11 -0
- package/schema/ua/bestiary/legendarygroups.json +202 -0
- package/schema/ua/bestiary/template.json +275 -0
- package/schema/ua/book/book.json +12 -0
- package/schema/ua/books.json +141 -0
- package/schema/ua/changelog.json +35 -0
- package/schema/ua/charcreationoptions.json +80 -0
- package/schema/ua/class/class.json +1782 -0
- package/schema/ua/class/foundry.json +397 -0
- package/schema/ua/class/index.json +11 -0
- package/schema/ua/conditionsdiseases.json +82 -0
- package/schema/ua/cultsboons.json +175 -0
- package/schema/ua/decks.json +504 -0
- package/schema/ua/deities.json +473 -0
- package/schema/ua/encounters.json +105 -0
- package/schema/ua/entry.json +3748 -0
- package/schema/ua/feats.json +117 -0
- package/schema/ua/fluff-backgrounds.json +15 -0
- package/schema/ua/fluff-charcreationoptions.json +43 -0
- package/schema/ua/fluff-conditionsdiseases.json +43 -0
- package/schema/ua/fluff-feats.json +15 -0
- package/schema/ua/fluff-items.json +15 -0
- package/schema/ua/fluff-languages.json +42 -0
- package/schema/ua/fluff-objects.json +15 -0
- package/schema/ua/fluff-races.json +214 -0
- package/schema/ua/fluff-recipes.json +42 -0
- package/schema/ua/fluff-vehicles.json +63 -0
- package/schema/ua/foundry-actions.json +15 -0
- package/schema/ua/foundry-backgrounds.json +53 -0
- package/schema/ua/foundry-feats.json +15 -0
- package/schema/ua/foundry-items.json +63 -0
- package/schema/ua/foundry-optionalfeatures.json +15 -0
- package/schema/ua/foundry-psionics.json +56 -0
- package/schema/ua/foundry-races.json +58 -0
- package/schema/ua/foundry-rewards.json +15 -0
- package/schema/ua/foundry-vehicles.json +15 -0
- package/schema/ua/generated/bookref-quick.json +72 -0
- package/schema/ua/generated/gendata-spell-source-lookup.json +230 -0
- package/schema/ua/homebrew.json +633 -0
- package/schema/ua/items-base.json +959 -0
- package/schema/ua/items-shared.json +267 -0
- package/schema/ua/items.json +1770 -0
- package/schema/ua/languages.json +123 -0
- package/schema/ua/life.json +17 -0
- package/schema/ua/loot.json +510 -0
- package/schema/ua/magicvariants.json +361 -0
- package/schema/ua/makebrew-creature.json +66 -0
- package/schema/ua/makecards.json +43 -0
- package/schema/ua/monsterfeatures.json +53 -0
- package/schema/ua/msbcr.json +60 -0
- package/schema/ua/names.json +94 -0
- package/schema/ua/objects.json +165 -0
- package/schema/ua/optionalfeatures.json +130 -0
- package/schema/ua/psionics.json +173 -0
- package/schema/ua/races.json +1650 -0
- package/schema/ua/recipes.json +185 -0
- package/schema/ua/renderdemo.json +16 -0
- package/schema/ua/rewards.json +93 -0
- package/schema/ua/senses.json +54 -0
- package/schema/ua/skills.json +54 -0
- package/schema/ua/spells/fluff-index.json +11 -0
- package/schema/ua/spells/fluff-spells.json +15 -0
- package/schema/ua/spells/foundry.json +15 -0
- package/schema/ua/spells/index.json +11 -0
- package/schema/ua/spells/roll20.json +112 -0
- package/schema/ua/spells/spells.json +1190 -0
- package/schema/ua/tables.json +220 -0
- package/schema/ua/trapshazards.json +236 -0
- package/schema/ua/util.json +4420 -0
- package/schema/ua/variantrules.json +74 -0
- package/schema/ua/vehicles.json +820 -0
- package/schema/ua-fast/actions.json +97 -0
- package/schema/ua-fast/adventure/adventure.json +12 -0
- package/schema/ua-fast/adventures.json +214 -0
- package/schema/ua-fast/backgrounds.json +314 -0
- package/schema/ua-fast/bestiary/bestiary.json +3735 -0
- package/schema/ua-fast/bestiary/fluff-bestiary.json +15 -0
- package/schema/ua-fast/bestiary/fluff-index.json +11 -0
- package/schema/ua-fast/bestiary/foundry.json +15 -0
- package/schema/ua-fast/bestiary/index.json +11 -0
- package/schema/ua-fast/bestiary/legendarygroups.json +202 -0
- package/schema/ua-fast/bestiary/template.json +275 -0
- package/schema/ua-fast/book/book.json +12 -0
- package/schema/ua-fast/books.json +141 -0
- package/schema/ua-fast/changelog.json +35 -0
- package/schema/ua-fast/charcreationoptions.json +80 -0
- package/schema/ua-fast/class/class.json +1782 -0
- package/schema/ua-fast/class/foundry.json +397 -0
- package/schema/ua-fast/class/index.json +11 -0
- package/schema/ua-fast/conditionsdiseases.json +82 -0
- package/schema/ua-fast/cultsboons.json +175 -0
- package/schema/ua-fast/decks.json +504 -0
- package/schema/ua-fast/deities.json +473 -0
- package/schema/ua-fast/encounters.json +105 -0
- package/schema/ua-fast/entry.json +3748 -0
- package/schema/ua-fast/feats.json +117 -0
- package/schema/ua-fast/fluff-backgrounds.json +15 -0
- package/schema/ua-fast/fluff-charcreationoptions.json +43 -0
- package/schema/ua-fast/fluff-conditionsdiseases.json +43 -0
- package/schema/ua-fast/fluff-feats.json +15 -0
- package/schema/ua-fast/fluff-items.json +15 -0
- package/schema/ua-fast/fluff-languages.json +42 -0
- package/schema/ua-fast/fluff-objects.json +15 -0
- package/schema/ua-fast/fluff-races.json +214 -0
- package/schema/ua-fast/fluff-recipes.json +42 -0
- package/schema/ua-fast/fluff-vehicles.json +63 -0
- package/schema/ua-fast/foundry-actions.json +15 -0
- package/schema/ua-fast/foundry-backgrounds.json +53 -0
- package/schema/ua-fast/foundry-feats.json +15 -0
- package/schema/ua-fast/foundry-items.json +63 -0
- package/schema/ua-fast/foundry-optionalfeatures.json +15 -0
- package/schema/ua-fast/foundry-psionics.json +56 -0
- package/schema/ua-fast/foundry-races.json +58 -0
- package/schema/ua-fast/foundry-rewards.json +15 -0
- package/schema/ua-fast/foundry-vehicles.json +15 -0
- package/schema/ua-fast/generated/bookref-quick.json +72 -0
- package/schema/ua-fast/generated/gendata-spell-source-lookup.json +230 -0
- package/schema/ua-fast/homebrew.json +631 -0
- package/schema/ua-fast/items-base.json +959 -0
- package/schema/ua-fast/items-shared.json +267 -0
- package/schema/ua-fast/items.json +1770 -0
- package/schema/ua-fast/languages.json +123 -0
- package/schema/ua-fast/life.json +17 -0
- package/schema/ua-fast/loot.json +510 -0
- package/schema/ua-fast/magicvariants.json +361 -0
- package/schema/ua-fast/makebrew-creature.json +66 -0
- package/schema/ua-fast/makecards.json +43 -0
- package/schema/ua-fast/monsterfeatures.json +53 -0
- package/schema/ua-fast/msbcr.json +60 -0
- package/schema/ua-fast/names.json +94 -0
- package/schema/ua-fast/objects.json +165 -0
- package/schema/ua-fast/optionalfeatures.json +130 -0
- package/schema/ua-fast/psionics.json +173 -0
- package/schema/ua-fast/races.json +1650 -0
- package/schema/ua-fast/recipes.json +185 -0
- package/schema/ua-fast/renderdemo.json +16 -0
- package/schema/ua-fast/rewards.json +93 -0
- package/schema/ua-fast/senses.json +54 -0
- package/schema/ua-fast/skills.json +54 -0
- package/schema/ua-fast/spells/fluff-index.json +11 -0
- package/schema/ua-fast/spells/fluff-spells.json +15 -0
- package/schema/ua-fast/spells/foundry.json +15 -0
- package/schema/ua-fast/spells/index.json +11 -0
- package/schema/ua-fast/spells/roll20.json +112 -0
- package/schema/ua-fast/spells/spells.json +1190 -0
- package/schema/ua-fast/tables.json +220 -0
- package/schema/ua-fast/trapshazards.json +236 -0
- package/schema/ua-fast/util.json +4420 -0
- package/schema/ua-fast/variantrules.json +74 -0
- package/schema/ua-fast/vehicles.json +820 -0
package/README.md
CHANGED
package/lib/BrewTester.js
CHANGED
|
@@ -10,7 +10,7 @@ class _BrewTesterJson {
|
|
|
10
10
|
static _LOG_TAG = "JSON";
|
|
11
11
|
static _IS_FAIL_SLOW = !!process.env.FAIL_SLOW;
|
|
12
12
|
|
|
13
|
-
static async pRun (args) {
|
|
13
|
+
static async pRun (args, {mode = "brew"} = {}) {
|
|
14
14
|
const program = new Command()
|
|
15
15
|
.argument("[file]", "File to test")
|
|
16
16
|
.option("--dir <dir>", "Directory to test")
|
|
@@ -19,7 +19,7 @@ class _BrewTesterJson {
|
|
|
19
19
|
program.parse(args);
|
|
20
20
|
const opts = program.opts();
|
|
21
21
|
|
|
22
|
-
const jsonTester = new JsonTester({
|
|
22
|
+
const jsonTester = new JsonTester({mode, tagLog: this._LOG_TAG, fnGetSchemaId: () => "homebrew.json"});
|
|
23
23
|
|
|
24
24
|
let results;
|
|
25
25
|
if (program.args[0]) {
|
package/lib/TestJson.js
CHANGED
|
@@ -18,6 +18,12 @@ const _IS_TRIM_RESULTS = !process.env.VET_TEST_JSON_RESULTS_UNTRIMMED;
|
|
|
18
18
|
|
|
19
19
|
const LOG_TAG = "JSON";
|
|
20
20
|
|
|
21
|
+
const MODES = {
|
|
22
|
+
SITE: "site",
|
|
23
|
+
BREW: "brew",
|
|
24
|
+
UA: "ua",
|
|
25
|
+
};
|
|
26
|
+
|
|
21
27
|
class JsonTester {
|
|
22
28
|
static _RE_DATE = /^\d\d\d\d-\d\d-\d\d$/;
|
|
23
29
|
|
|
@@ -25,18 +31,20 @@ class JsonTester {
|
|
|
25
31
|
{
|
|
26
32
|
fnGetSchemaId,
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
mode = null,
|
|
29
35
|
dirSchema = null,
|
|
30
36
|
tagLog = LOG_TAG,
|
|
31
37
|
},
|
|
32
38
|
) {
|
|
33
|
-
if (
|
|
39
|
+
if (mode && dirSchema) throw new Error(`"mode" and "dirSchema" are mutually exclusive!`);
|
|
40
|
+
if (mode != null && !Object.values(MODES).includes(mode)) throw new Error(`"mode" must be one of ${Object.values(MODES).join("/")}!`);
|
|
34
41
|
if (!fnGetSchemaId) throw new Error(`"fnGetSchemaId" is required!`);
|
|
35
42
|
|
|
36
43
|
this._dirSchemaSite = path.join(__dirname, "..", "schema", "site");
|
|
37
44
|
this._dirSchemaBrew = path.join(__dirname, "..", "schema", "brew");
|
|
45
|
+
this._dirSchemaUa = path.join(__dirname, "..", "schema", "ua");
|
|
38
46
|
|
|
39
|
-
this._dirSchema = dirSchema ?? (
|
|
47
|
+
this._dirSchema = dirSchema ?? (mode === "site" ? this._dirSchemaSite : mode === "brew" ? this._dirSchemaBrew : this._dirSchemaSite);
|
|
40
48
|
this._tagLog = tagLog;
|
|
41
49
|
this._fnGetSchemaId = fnGetSchemaId;
|
|
42
50
|
|
|
@@ -113,9 +121,14 @@ class JsonTester {
|
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
doLoadSchema (type, relativeFilePath) {
|
|
116
|
-
if (!
|
|
117
|
-
|
|
118
|
-
const dir =
|
|
124
|
+
if (!Object.values(MODES).includes(type)) throw new Error(`Unknown schema type "${type}"`);
|
|
125
|
+
|
|
126
|
+
const dir = {
|
|
127
|
+
[MODES.SITE]: this._dirSchemaSite,
|
|
128
|
+
[MODES.BREW]: this._dirSchemaBrew,
|
|
129
|
+
[MODES.UA]: this._dirSchemaUa,
|
|
130
|
+
}[type];
|
|
131
|
+
if (!dir) throw new Error(`Unhandled type "${type}"!`);
|
|
119
132
|
|
|
120
133
|
this._ajv.addSchema(
|
|
121
134
|
Uf.readJsonSync(path.join(dir, relativeFilePath)),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "5etools-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Shared utilities for the 5etools ecosystem.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/Api.js",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
15
|
"test-json-brew": "bin/test-json-brew.js",
|
|
16
|
+
"test-json-ua": "bin/test-json-ua.js",
|
|
16
17
|
"test-file-extensions": "bin/test-file-extensions.js",
|
|
17
18
|
"test-file-locations": "bin/test-file-locations.js"
|
|
18
19
|
},
|
package/schema/brew/items.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items.json",
|
|
4
|
-
"version": "1.13.
|
|
4
|
+
"version": "1.13.5",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -533,9 +533,10 @@
|
|
|
533
533
|
"miscTags": {
|
|
534
534
|
"type": "array",
|
|
535
535
|
"items": {
|
|
536
|
-
"description": "CF/W: Creates Food/Water",
|
|
536
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
537
537
|
"enum": [
|
|
538
|
-
"CF/W"
|
|
538
|
+
"CF/W",
|
|
539
|
+
"TT"
|
|
539
540
|
]
|
|
540
541
|
}
|
|
541
542
|
},
|
|
@@ -1134,9 +1135,10 @@
|
|
|
1134
1135
|
"miscTags": {
|
|
1135
1136
|
"type": "array",
|
|
1136
1137
|
"items": {
|
|
1137
|
-
"description": "CF/W: Creates Food/Water",
|
|
1138
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1138
1139
|
"enum": [
|
|
1139
|
-
"CF/W"
|
|
1140
|
+
"CF/W",
|
|
1141
|
+
"TT"
|
|
1140
1142
|
]
|
|
1141
1143
|
}
|
|
1142
1144
|
},
|
|
@@ -1738,9 +1740,10 @@
|
|
|
1738
1740
|
"miscTags": {
|
|
1739
1741
|
"type": "array",
|
|
1740
1742
|
"items": {
|
|
1741
|
-
"description": "CF/W: Creates Food/Water",
|
|
1743
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1742
1744
|
"enum": [
|
|
1743
|
-
"CF/W"
|
|
1745
|
+
"CF/W",
|
|
1746
|
+
"TT"
|
|
1744
1747
|
]
|
|
1745
1748
|
}
|
|
1746
1749
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items.json",
|
|
4
|
-
"version": "1.13.
|
|
4
|
+
"version": "1.13.5",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -533,9 +533,10 @@
|
|
|
533
533
|
"miscTags": {
|
|
534
534
|
"type": "array",
|
|
535
535
|
"items": {
|
|
536
|
-
"description": "CF/W: Creates Food/Water",
|
|
536
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
537
537
|
"enum": [
|
|
538
|
-
"CF/W"
|
|
538
|
+
"CF/W",
|
|
539
|
+
"TT"
|
|
539
540
|
]
|
|
540
541
|
}
|
|
541
542
|
},
|
|
@@ -1134,9 +1135,10 @@
|
|
|
1134
1135
|
"miscTags": {
|
|
1135
1136
|
"type": "array",
|
|
1136
1137
|
"items": {
|
|
1137
|
-
"description": "CF/W: Creates Food/Water",
|
|
1138
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1138
1139
|
"enum": [
|
|
1139
|
-
"CF/W"
|
|
1140
|
+
"CF/W",
|
|
1141
|
+
"TT"
|
|
1140
1142
|
]
|
|
1141
1143
|
}
|
|
1142
1144
|
},
|
|
@@ -1738,9 +1740,10 @@
|
|
|
1738
1740
|
"miscTags": {
|
|
1739
1741
|
"type": "array",
|
|
1740
1742
|
"items": {
|
|
1741
|
-
"description": "CF/W: Creates Food/Water",
|
|
1743
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1742
1744
|
"enum": [
|
|
1743
|
-
"CF/W"
|
|
1745
|
+
"CF/W",
|
|
1746
|
+
"TT"
|
|
1744
1747
|
]
|
|
1745
1748
|
}
|
|
1746
1749
|
},
|
package/schema/site/items.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items.json",
|
|
4
|
-
"version": "1.13.
|
|
4
|
+
"version": "1.13.5",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -533,9 +533,10 @@
|
|
|
533
533
|
"miscTags": {
|
|
534
534
|
"type": "array",
|
|
535
535
|
"items": {
|
|
536
|
-
"description": "CF/W: Creates Food/Water",
|
|
536
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
537
537
|
"enum": [
|
|
538
|
-
"CF/W"
|
|
538
|
+
"CF/W",
|
|
539
|
+
"TT"
|
|
539
540
|
]
|
|
540
541
|
}
|
|
541
542
|
},
|
|
@@ -1086,9 +1087,10 @@
|
|
|
1086
1087
|
"miscTags": {
|
|
1087
1088
|
"type": "array",
|
|
1088
1089
|
"items": {
|
|
1089
|
-
"description": "CF/W: Creates Food/Water",
|
|
1090
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1090
1091
|
"enum": [
|
|
1091
|
-
"CF/W"
|
|
1092
|
+
"CF/W",
|
|
1093
|
+
"TT"
|
|
1092
1094
|
]
|
|
1093
1095
|
}
|
|
1094
1096
|
},
|
|
@@ -1642,9 +1644,10 @@
|
|
|
1642
1644
|
"miscTags": {
|
|
1643
1645
|
"type": "array",
|
|
1644
1646
|
"items": {
|
|
1645
|
-
"description": "CF/W: Creates Food/Water",
|
|
1647
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1646
1648
|
"enum": [
|
|
1647
|
-
"CF/W"
|
|
1649
|
+
"CF/W",
|
|
1650
|
+
"TT"
|
|
1648
1651
|
]
|
|
1649
1652
|
}
|
|
1650
1653
|
},
|
package/schema/site/util.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items.json",
|
|
4
|
-
"version": "1.13.
|
|
4
|
+
"version": "1.13.5",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -533,9 +533,10 @@
|
|
|
533
533
|
"miscTags": {
|
|
534
534
|
"type": "array",
|
|
535
535
|
"items": {
|
|
536
|
-
"description": "CF/W: Creates Food/Water",
|
|
536
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
537
537
|
"enum": [
|
|
538
|
-
"CF/W"
|
|
538
|
+
"CF/W",
|
|
539
|
+
"TT"
|
|
539
540
|
]
|
|
540
541
|
}
|
|
541
542
|
},
|
|
@@ -1086,9 +1087,10 @@
|
|
|
1086
1087
|
"miscTags": {
|
|
1087
1088
|
"type": "array",
|
|
1088
1089
|
"items": {
|
|
1089
|
-
"description": "CF/W: Creates Food/Water",
|
|
1090
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1090
1091
|
"enum": [
|
|
1091
|
-
"CF/W"
|
|
1092
|
+
"CF/W",
|
|
1093
|
+
"TT"
|
|
1092
1094
|
]
|
|
1093
1095
|
}
|
|
1094
1096
|
},
|
|
@@ -1642,9 +1644,10 @@
|
|
|
1642
1644
|
"miscTags": {
|
|
1643
1645
|
"type": "array",
|
|
1644
1646
|
"items": {
|
|
1645
|
-
"description": "CF/W: Creates Food/Water",
|
|
1647
|
+
"description": "CF/W: Creates Food/Water\nTT: Trinket Table",
|
|
1646
1648
|
"enum": [
|
|
1647
|
-
"CF/W"
|
|
1649
|
+
"CF/W",
|
|
1650
|
+
"TT"
|
|
1648
1651
|
]
|
|
1649
1652
|
}
|
|
1650
1653
|
},
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "actions.json",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"$defs": {
|
|
7
|
+
"action": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"name": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"entries": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"$ref": "entry.json"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"source": {
|
|
20
|
+
"$ref": "util.json#/$defs/source"
|
|
21
|
+
},
|
|
22
|
+
"page": {
|
|
23
|
+
"$ref": "util.json#/$defs/page"
|
|
24
|
+
},
|
|
25
|
+
"fromVariant": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "UID of a \"variantrule\" to be linked as a footnote in the action."
|
|
28
|
+
},
|
|
29
|
+
"time": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"oneOf": [
|
|
33
|
+
{
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"unit": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": [
|
|
42
|
+
"action",
|
|
43
|
+
"bonus",
|
|
44
|
+
"reaction"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"number": {
|
|
48
|
+
"type": "integer"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"required": [
|
|
52
|
+
"unit",
|
|
53
|
+
"number"
|
|
54
|
+
],
|
|
55
|
+
"additionalProperties": false
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"srd": {
|
|
61
|
+
"$ref": "util.json#/$defs/srd"
|
|
62
|
+
},
|
|
63
|
+
"basicRules": {
|
|
64
|
+
"$ref": "util.json#/$defs/basicRules"
|
|
65
|
+
},
|
|
66
|
+
"seeAlsoAction": {
|
|
67
|
+
"type": "array",
|
|
68
|
+
"items": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "UIDs of \"action\"s to be linked in a \"See Also\" footnote.\nEx.: \"disarm|dmg\"."
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"required": [
|
|
75
|
+
"name",
|
|
76
|
+
"entries",
|
|
77
|
+
"source",
|
|
78
|
+
"page"
|
|
79
|
+
],
|
|
80
|
+
"additionalProperties": false
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"properties": {
|
|
84
|
+
"action": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"minItems": 1,
|
|
87
|
+
"uniqueItems": true,
|
|
88
|
+
"items": {
|
|
89
|
+
"$ref": "#/$defs/action"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"required": [
|
|
94
|
+
"action"
|
|
95
|
+
],
|
|
96
|
+
"additionalProperties": false
|
|
97
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "adventure.json",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"data": {
|
|
8
|
+
"$ref": "../util.json#/$defs/adventureBookData"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"additionalProperties": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "adventures.json",
|
|
4
|
+
"version": "1.10.11",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"adventure": {
|
|
8
|
+
"type": "array",
|
|
9
|
+
"minItems": 1,
|
|
10
|
+
"uniqueItems": true,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"alias": {
|
|
18
|
+
"$ref": "util.json#/$defs/alias"
|
|
19
|
+
},
|
|
20
|
+
"id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "An ID that will be used to refer to this adventure in tags."
|
|
23
|
+
},
|
|
24
|
+
"source": {
|
|
25
|
+
"$ref": "util.json#/$defs/source"
|
|
26
|
+
},
|
|
27
|
+
"parentSource": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Used for books that contain multiple adventures, e.g. TftYP",
|
|
30
|
+
"$ref": "util.json#/$defs/source"
|
|
31
|
+
},
|
|
32
|
+
"group": {
|
|
33
|
+
"description": "The group under which this adventure should be listed in the navbar.",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": [
|
|
36
|
+
"supplement",
|
|
37
|
+
"supplement-alt",
|
|
38
|
+
"prerelease",
|
|
39
|
+
"homebrew",
|
|
40
|
+
"other"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"contents": {
|
|
44
|
+
"description": "The linked Table of Contents of the adventure.",
|
|
45
|
+
"type": "array",
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"name": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"headers": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"minItems": 1,
|
|
56
|
+
"items": {
|
|
57
|
+
"oneOf": [
|
|
58
|
+
{
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "object",
|
|
63
|
+
"properties": {
|
|
64
|
+
"depth": {
|
|
65
|
+
"type": "integer"
|
|
66
|
+
},
|
|
67
|
+
"header": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"index": {
|
|
71
|
+
"description": "The relative index of this header in the current chapter, i.e. if \"Treasure\" appears twice and you wish the contents entry to link to the second instance, set the \"index\" to 1.",
|
|
72
|
+
"type": "integer"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"header"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"ordinal": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"properties": {
|
|
85
|
+
"type": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": [
|
|
88
|
+
"chapter",
|
|
89
|
+
"appendix",
|
|
90
|
+
"part",
|
|
91
|
+
"episode",
|
|
92
|
+
"level"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"identifier": {
|
|
96
|
+
"type": [
|
|
97
|
+
"integer",
|
|
98
|
+
"string"
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": [
|
|
104
|
+
"type",
|
|
105
|
+
"identifier"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false,
|
|
110
|
+
"required": [
|
|
111
|
+
"name"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"level": {
|
|
116
|
+
"description": "The character levels that the adventure ranges across.",
|
|
117
|
+
"oneOf": [
|
|
118
|
+
{
|
|
119
|
+
"type": "object",
|
|
120
|
+
"properties": {
|
|
121
|
+
"start": {
|
|
122
|
+
"type": "integer"
|
|
123
|
+
},
|
|
124
|
+
"end": {
|
|
125
|
+
"type": "integer"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"additionalProperties": false,
|
|
129
|
+
"required": [
|
|
130
|
+
"start",
|
|
131
|
+
"end"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"type": "object",
|
|
136
|
+
"properties": {
|
|
137
|
+
"custom": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"additionalProperties": false,
|
|
142
|
+
"required": [
|
|
143
|
+
"custom"
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"published": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"format": "date",
|
|
151
|
+
"description": "The date of publication of the adventure, in the format YYYY-MM-DD (RFC3339)."
|
|
152
|
+
},
|
|
153
|
+
"publishedOrder": {
|
|
154
|
+
"description": "A sorting order for adventures within a single source.",
|
|
155
|
+
"type": "integer"
|
|
156
|
+
},
|
|
157
|
+
"coverUrl": {
|
|
158
|
+
"description": "A direct link to an image which should be 300 x 300px in size. Larger images will be centred and cropped.",
|
|
159
|
+
"type": "string"
|
|
160
|
+
},
|
|
161
|
+
"storyline": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"enum": [
|
|
164
|
+
"Starter Set",
|
|
165
|
+
"Tyranny of Dragons",
|
|
166
|
+
"Elemental Evil",
|
|
167
|
+
"Rage of Demons",
|
|
168
|
+
"Ravenloft",
|
|
169
|
+
"Storm King's Thunder",
|
|
170
|
+
"Tales from the Yawning Portal",
|
|
171
|
+
"Tomb of Annihilation",
|
|
172
|
+
"Waterdeep",
|
|
173
|
+
"Ravnica",
|
|
174
|
+
"Extra Life",
|
|
175
|
+
"Ghosts of Saltmarsh",
|
|
176
|
+
"Acquisitions Incorporated",
|
|
177
|
+
"Essentials Kit",
|
|
178
|
+
"Stranger Things",
|
|
179
|
+
"Baldur's Gate",
|
|
180
|
+
"Eberron",
|
|
181
|
+
"Rick and Morty",
|
|
182
|
+
"Wildemount",
|
|
183
|
+
"Icewind Dale",
|
|
184
|
+
"Mythic Odysseys of Theros",
|
|
185
|
+
"Candlekeep Mysteries",
|
|
186
|
+
"Adventures in the Forgotten Realms",
|
|
187
|
+
"The Wild Beyond the Witchlight",
|
|
188
|
+
"Ixalan",
|
|
189
|
+
"NERDS Restoring Harmony",
|
|
190
|
+
"Strixhaven",
|
|
191
|
+
"Critical Role",
|
|
192
|
+
"Journeys through the Radiant Citadel",
|
|
193
|
+
"Spelljammer",
|
|
194
|
+
"Dragonlance",
|
|
195
|
+
"Keys from the Golden Vault"
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"additionalProperties": false,
|
|
200
|
+
"required": [
|
|
201
|
+
"name",
|
|
202
|
+
"id",
|
|
203
|
+
"source",
|
|
204
|
+
"contents",
|
|
205
|
+
"level",
|
|
206
|
+
"published",
|
|
207
|
+
"storyline",
|
|
208
|
+
"group"
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"additionalProperties": false
|
|
214
|
+
}
|