5etools-utils 0.10.14 → 0.10.16
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/lib/BrewCleaner.js +108 -72
- package/lib/UtilMisc.js +7 -3
- package/package.json +1 -1
- package/schema/brew/homebrew.json +6 -1
- package/schema/brew/items-base.json +10 -1
- package/schema/brew/items.json +16 -1
- package/schema/brew/magicvariants.json +10 -1
- package/schema/brew-fast/homebrew.json +6 -1
- package/schema/brew-fast/items-base.json +10 -1
- package/schema/brew-fast/items.json +16 -1
- package/schema/brew-fast/magicvariants.json +10 -1
- package/schema/site/homebrew.json +6 -1
- package/schema/site/items-base.json +10 -1
- package/schema/site/items.json +16 -1
- package/schema/site/magicvariants.json +10 -1
- package/schema/site-fast/homebrew.json +6 -1
- package/schema/site-fast/items-base.json +10 -1
- package/schema/site-fast/items.json +16 -1
- package/schema/site-fast/magicvariants.json +10 -1
- package/schema/ua/homebrew.json +6 -1
- package/schema/ua/items-base.json +10 -1
- package/schema/ua/items.json +16 -1
- package/schema/ua/magicvariants.json +10 -1
- package/schema/ua-fast/homebrew.json +6 -1
- package/schema/ua-fast/items-base.json +10 -1
- package/schema/ua-fast/items.json +16 -1
- package/schema/ua-fast/magicvariants.json +10 -1
package/lib/BrewCleaner.js
CHANGED
|
@@ -1,25 +1,123 @@
|
|
|
1
|
-
// Adapted from 5etools `clean-jsons.js`
|
|
2
|
-
// ===
|
|
3
|
-
|
|
4
1
|
import * as fs from "fs";
|
|
5
2
|
import * as Uf from "./UtilFs.js";
|
|
6
3
|
import Um from "./UtilMisc.js";
|
|
7
4
|
import {getCleanJson} from "./UtilClean.js";
|
|
5
|
+
import MiscUtil from "./UtilMisc.js";
|
|
8
6
|
|
|
9
|
-
class
|
|
10
|
-
static _IS_FAIL_SLOW = !!process.env.FAIL_SLOW;
|
|
11
|
-
|
|
7
|
+
class _BrewFileCleaner {
|
|
12
8
|
static _RUN_TIMESTAMP = Math.floor(Date.now() / 1000);
|
|
13
9
|
static _MAX_TIMESTAMP = 9999999999;
|
|
14
10
|
|
|
15
|
-
static
|
|
11
|
+
static cleanFile ({file, contents}) {
|
|
12
|
+
// Ensure _meta is at the top of the file
|
|
13
|
+
const tmp = {$schema: contents.$schema, _meta: contents._meta};
|
|
14
|
+
delete contents.$schema;
|
|
15
|
+
delete contents._meta;
|
|
16
|
+
Object.assign(tmp, contents);
|
|
17
|
+
contents = tmp;
|
|
18
|
+
|
|
19
|
+
if (contents._meta.dateAdded == null) {
|
|
20
|
+
Um.warn(`TIMESTAMPS`, `\tFile "${file}" did not have "dateAdded"! Adding one...`);
|
|
21
|
+
contents._meta.dateAdded = this._RUN_TIMESTAMP;
|
|
22
|
+
} else if (contents._meta.dateAdded > this._MAX_TIMESTAMP) {
|
|
23
|
+
Um.warn(`TIMESTAMPS`, `\tFile "${file}" had a "dateAdded" in milliseconds! Converting to seconds...`);
|
|
24
|
+
contents._meta.dateAdded = Math.round(contents._meta.dateAdded / 1000);
|
|
25
|
+
}
|
|
16
26
|
|
|
17
|
-
|
|
27
|
+
if (contents._meta.dateLastModified == null) {
|
|
28
|
+
Um.warn(`TIMESTAMPS`, `\tFile "${file}" did not have "dateLastModified"! Adding one...`);
|
|
29
|
+
contents._meta.dateLastModified = this._RUN_TIMESTAMP;
|
|
30
|
+
} else if (contents._meta.dateLastModified > this._MAX_TIMESTAMP) {
|
|
31
|
+
Um.warn(`TIMESTAMPS`, `\tFile "${file}" had a "dateLastModified" in milliseconds! Converting to seconds...`);
|
|
32
|
+
contents._meta.dateLastModified = Math.round(contents._meta.dateLastModified / 1000);
|
|
33
|
+
}
|
|
18
34
|
|
|
35
|
+
(contents._meta.sources || []).forEach(source => {
|
|
36
|
+
if (source.version != null) return;
|
|
37
|
+
Um.warn(`VERSION`, `\tFile "${file}" source "${source.json}" did not have "version"! Adding one...`);
|
|
38
|
+
source.version = "unknown";
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
return contents;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
class _BrewFileTester {
|
|
19
46
|
static _RE_VALID_SOURCE_CHARS = /^[-a-zA-Z0-9 :&+!]+$/;
|
|
20
47
|
|
|
21
48
|
static _ALL_SOURCES_JSON_LOWER = new Set();
|
|
22
49
|
|
|
50
|
+
static _CONTENT_KEY_BLOCKLIST = new Set(["$schema", "_meta", "siteVersion"]);
|
|
51
|
+
|
|
52
|
+
static _testFile_sources ({ALL_ERRORS, file, contents}) {
|
|
53
|
+
const docSourcesJson = contents._meta.sources.map(src => src.json);
|
|
54
|
+
const duplicateSourcesJson = docSourcesJson.filter(src => this._ALL_SOURCES_JSON_LOWER.has(src.toLowerCase()));
|
|
55
|
+
if (duplicateSourcesJson.length) {
|
|
56
|
+
ALL_ERRORS.push(`${file} :: "json" source${duplicateSourcesJson.length === 1 ? "" : "s"} exist in other documents; sources were: ${duplicateSourcesJson.map(src => `"${src}"`).join(", ")}`);
|
|
57
|
+
}
|
|
58
|
+
docSourcesJson.forEach(src => this._ALL_SOURCES_JSON_LOWER.add(src.toLowerCase()));
|
|
59
|
+
|
|
60
|
+
const invalidSourceChars = docSourcesJson.filter(src => !this._RE_VALID_SOURCE_CHARS.test(src));
|
|
61
|
+
if (invalidSourceChars.length) {
|
|
62
|
+
ALL_ERRORS.push(`${file} :: "json" source${invalidSourceChars.length === 1 ? "" : "s"} contained invalid characters (must match ${this._RE_VALID_SOURCE_CHARS.toString()}): ${invalidSourceChars.map(src => `"${src}"`).join(", ")}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const docSourcesJsonSet = new Set(docSourcesJson);
|
|
66
|
+
|
|
67
|
+
Object.keys(contents)
|
|
68
|
+
.filter(k => !this._CONTENT_KEY_BLOCKLIST.has(k))
|
|
69
|
+
.forEach(k => {
|
|
70
|
+
const data = contents[k];
|
|
71
|
+
|
|
72
|
+
if (!(data instanceof Array) || !data.forEach) throw new Error(`File "${k}" data was not an array!`);
|
|
73
|
+
|
|
74
|
+
if (!data.length) throw new Error(`File "${k}" array is empty!`);
|
|
75
|
+
|
|
76
|
+
data.forEach(it => {
|
|
77
|
+
const source = it.source || (it.inherits ? it.inherits.source : null);
|
|
78
|
+
if (!source) return ALL_ERRORS.push(`${file} :: ${k} :: "${it.name || it.id}" had no source!`);
|
|
79
|
+
if (!docSourcesJsonSet.has(source)) return ALL_ERRORS.push(`${file} :: ${k} :: "${it.name || it.id}" source "${source}" was not in _meta`);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static _PROP_PUBLICATION_PAIRS = [
|
|
85
|
+
{
|
|
86
|
+
propContents: "adventure",
|
|
87
|
+
propData: "adventureData",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
propContents: "book",
|
|
91
|
+
propData: "bookData",
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
|
|
95
|
+
static _testFile_publicationTuples ({ALL_ERRORS, file, contents}) {
|
|
96
|
+
this._PROP_PUBLICATION_PAIRS
|
|
97
|
+
.forEach(({propContents, propData}) => {
|
|
98
|
+
const idsContents = new Set((contents[propContents] || []).map(it => it.id));
|
|
99
|
+
const idsData = new Set((contents[propData] || []).map(it => it.id));
|
|
100
|
+
|
|
101
|
+
if (MiscUtil.setEq(idsContents, idsData)) return;
|
|
102
|
+
|
|
103
|
+
const lstContents = [...idsContents].sort((a, b) => a.localeCompare(b, {sensitivity: "base"}));
|
|
104
|
+
const lstData = [...idsData].sort((a, b) => a.localeCompare(b, {sensitivity: "base"}));
|
|
105
|
+
|
|
106
|
+
ALL_ERRORS.push(`${file} :: "${propContents}"/"${propData}" :: contents ID list "${lstContents.join(", ")}" did not equal data ID list "${lstData.join(", ")}"`);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
static testFile ({ALL_ERRORS, file, contents}) {
|
|
111
|
+
this._testFile_sources({ALL_ERRORS, file, contents});
|
|
112
|
+
this._testFile_publicationTuples({ALL_ERRORS, file, contents});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export class BrewCleaner {
|
|
117
|
+
static _IS_FAIL_SLOW = !!process.env.FAIL_SLOW;
|
|
118
|
+
|
|
119
|
+
static _RE_INVALID_WINDOWS_CHARS = /[<>:"/\\|?*]/;
|
|
120
|
+
|
|
23
121
|
static _cleanFolder (folder) {
|
|
24
122
|
const ALL_ERRORS = [];
|
|
25
123
|
|
|
@@ -37,68 +135,8 @@ class BrewCleaner {
|
|
|
37
135
|
if (!this._IS_FAIL_SLOW) break;
|
|
38
136
|
}
|
|
39
137
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const tmp = {$schema: contents.$schema, _meta: contents._meta};
|
|
43
|
-
delete contents.$schema;
|
|
44
|
-
delete contents._meta;
|
|
45
|
-
Object.assign(tmp, contents);
|
|
46
|
-
contents = tmp;
|
|
47
|
-
|
|
48
|
-
if (contents._meta.dateAdded == null) {
|
|
49
|
-
Um.warn(`TIMESTAMPS`, `\tFile "${file}" did not have "dateAdded"! Adding one...`);
|
|
50
|
-
contents._meta.dateAdded = this._RUN_TIMESTAMP;
|
|
51
|
-
} else if (contents._meta.dateAdded > this._MAX_TIMESTAMP) {
|
|
52
|
-
Um.warn(`TIMESTAMPS`, `\tFile "${file}" had a "dateAdded" in milliseconds! Converting to seconds...`);
|
|
53
|
-
contents._meta.dateAdded = Math.round(contents._meta.dateAdded / 1000);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (contents._meta.dateLastModified == null) {
|
|
57
|
-
Um.warn(`TIMESTAMPS`, `\tFile "${file}" did not have "dateLastModified"! Adding one...`);
|
|
58
|
-
contents._meta.dateLastModified = this._RUN_TIMESTAMP;
|
|
59
|
-
} else if (contents._meta.dateLastModified > this._MAX_TIMESTAMP) {
|
|
60
|
-
Um.warn(`TIMESTAMPS`, `\tFile "${file}" had a "dateLastModified" in milliseconds! Converting to seconds...`);
|
|
61
|
-
contents._meta.dateLastModified = Math.round(contents._meta.dateLastModified / 1000);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
(contents._meta.sources || []).forEach(source => {
|
|
65
|
-
if (source.version != null) return;
|
|
66
|
-
Um.warn(`VERSION`, `\tFile "${file}" source "${source.json}" did not have "version"! Adding one...`);
|
|
67
|
-
source.version = "unknown";
|
|
68
|
-
});
|
|
69
|
-
// endregion
|
|
70
|
-
|
|
71
|
-
// region test
|
|
72
|
-
const docSourcesJson = contents._meta.sources.map(src => src.json);
|
|
73
|
-
const duplicateSourcesJson = docSourcesJson.filter(src => this._ALL_SOURCES_JSON_LOWER.has(src.toLowerCase()));
|
|
74
|
-
if (duplicateSourcesJson.length) {
|
|
75
|
-
ALL_ERRORS.push(`${file} :: "json" source${duplicateSourcesJson.length === 1 ? "" : "s"} exist in other documents; sources were: ${duplicateSourcesJson.map(src => `"${src}"`).join(", ")}`);
|
|
76
|
-
}
|
|
77
|
-
docSourcesJson.forEach(src => this._ALL_SOURCES_JSON_LOWER.add(src.toLowerCase()));
|
|
78
|
-
|
|
79
|
-
const invalidSourceChars = docSourcesJson.filter(src => !this._RE_VALID_SOURCE_CHARS.test(src));
|
|
80
|
-
if (invalidSourceChars.length) {
|
|
81
|
-
ALL_ERRORS.push(`${file} :: "json" source${invalidSourceChars.length === 1 ? "" : "s"} contained invalid characters (must match ${this._RE_VALID_SOURCE_CHARS.toString()}): ${invalidSourceChars.map(src => `"${src}"`).join(", ")}`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const docSourcesJsonSet = new Set(docSourcesJson);
|
|
85
|
-
|
|
86
|
-
Object.keys(contents)
|
|
87
|
-
.filter(k => !this._CONTENT_KEY_BLOCKLIST.has(k))
|
|
88
|
-
.forEach(k => {
|
|
89
|
-
const data = contents[k];
|
|
90
|
-
|
|
91
|
-
if (!(data instanceof Array) || !data.forEach) throw new Error(`File "${k}" data was not an array!`);
|
|
92
|
-
|
|
93
|
-
if (!data.length) throw new Error(`File "${k}" array is empty!`);
|
|
94
|
-
|
|
95
|
-
data.forEach(it => {
|
|
96
|
-
const source = it.source || (it.inherits ? it.inherits.source : null);
|
|
97
|
-
if (!source) return ALL_ERRORS.push(`${file} :: ${k} :: "${it.name || it.id}" had no source!`);
|
|
98
|
-
if (!docSourcesJsonSet.has(source)) return ALL_ERRORS.push(`${file} :: ${k} :: "${it.name || it.id}" source "${source}" was not in _meta`);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
// endregion
|
|
138
|
+
contents = _BrewFileCleaner.cleanFile({file, contents});
|
|
139
|
+
_BrewFileTester.testFile({ALL_ERRORS, file, contents});
|
|
102
140
|
|
|
103
141
|
if (!this._IS_FAIL_SLOW && ALL_ERRORS.length) break;
|
|
104
142
|
|
|
@@ -126,5 +164,3 @@ class BrewCleaner {
|
|
|
126
164
|
Um.info(`CLEANER`, `Cleaning complete. Cleaned ${totalFiles} file${totalFiles === 1 ? "" : "s"}.`);
|
|
127
165
|
}
|
|
128
166
|
}
|
|
129
|
-
|
|
130
|
-
export {BrewCleaner};
|
package/lib/UtilMisc.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class MiscUtil {
|
|
1
|
+
export default class MiscUtil {
|
|
2
2
|
/* -------------------------------------------- */
|
|
3
3
|
|
|
4
4
|
// region Logging
|
|
@@ -36,6 +36,10 @@ class MiscUtil {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/* -------------------------------------------- */
|
|
39
|
-
}
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
static setEq (a, b) {
|
|
41
|
+
if (a.size !== b.size) return false;
|
|
42
|
+
for (const it of a) if (!b.has(it)) return false;
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -85,7 +85,12 @@
|
|
|
85
85
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
86
86
|
"minLength": 3
|
|
87
87
|
},
|
|
88
|
+
"partnered": {
|
|
89
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
90
|
+
"type": "boolean"
|
|
91
|
+
},
|
|
88
92
|
"targetSchema": {
|
|
93
|
+
"deprecated": true,
|
|
89
94
|
"type": "string",
|
|
90
95
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
91
96
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -154,6 +154,9 @@
|
|
|
154
154
|
"bonusProficiencyBonus": {
|
|
155
155
|
"type": "string"
|
|
156
156
|
},
|
|
157
|
+
"bonusSavingThrowConcentration": {
|
|
158
|
+
"type": "string"
|
|
159
|
+
},
|
|
157
160
|
"dmg1": {
|
|
158
161
|
"type": "string"
|
|
159
162
|
},
|
|
@@ -499,6 +502,9 @@
|
|
|
499
502
|
"bonusProficiencyBonus": {
|
|
500
503
|
"type": "string"
|
|
501
504
|
},
|
|
505
|
+
"bonusSavingThrowConcentration": {
|
|
506
|
+
"type": "string"
|
|
507
|
+
},
|
|
502
508
|
"dmg1": {
|
|
503
509
|
"type": "string"
|
|
504
510
|
},
|
|
@@ -848,6 +854,9 @@
|
|
|
848
854
|
"bonusProficiencyBonus": {
|
|
849
855
|
"type": "string"
|
|
850
856
|
},
|
|
857
|
+
"bonusSavingThrowConcentration": {
|
|
858
|
+
"type": "string"
|
|
859
|
+
},
|
|
851
860
|
"dmg1": {
|
|
852
861
|
"type": "string"
|
|
853
862
|
},
|
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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -991,6 +994,9 @@
|
|
|
991
994
|
"bonusProficiencyBonus": {
|
|
992
995
|
"type": "string"
|
|
993
996
|
},
|
|
997
|
+
"bonusSavingThrowConcentration": {
|
|
998
|
+
"type": "string"
|
|
999
|
+
},
|
|
994
1000
|
"modifySpeed": {
|
|
995
1001
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
996
1002
|
},
|
|
@@ -1581,6 +1587,9 @@
|
|
|
1581
1587
|
"bonusProficiencyBonus": {
|
|
1582
1588
|
"type": "string"
|
|
1583
1589
|
},
|
|
1590
|
+
"bonusSavingThrowConcentration": {
|
|
1591
|
+
"type": "string"
|
|
1592
|
+
},
|
|
1584
1593
|
"modifySpeed": {
|
|
1585
1594
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1586
1595
|
},
|
|
@@ -2176,6 +2185,9 @@
|
|
|
2176
2185
|
"bonusProficiencyBonus": {
|
|
2177
2186
|
"type": "string"
|
|
2178
2187
|
},
|
|
2188
|
+
"bonusSavingThrowConcentration": {
|
|
2189
|
+
"type": "string"
|
|
2190
|
+
},
|
|
2179
2191
|
"modifySpeed": {
|
|
2180
2192
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2181
2193
|
},
|
|
@@ -2770,6 +2782,9 @@
|
|
|
2770
2782
|
"bonusProficiencyBonus": {
|
|
2771
2783
|
"type": "string"
|
|
2772
2784
|
},
|
|
2785
|
+
"bonusSavingThrowConcentration": {
|
|
2786
|
+
"type": "string"
|
|
2787
|
+
},
|
|
2773
2788
|
"modifySpeed": {
|
|
2774
2789
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2775
2790
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -179,6 +179,9 @@
|
|
|
179
179
|
"bonusProficiencyBonus": {
|
|
180
180
|
"type": "string"
|
|
181
181
|
},
|
|
182
|
+
"bonusSavingThrowConcentration": {
|
|
183
|
+
"type": "string"
|
|
184
|
+
},
|
|
182
185
|
"dmg1": {
|
|
183
186
|
"type": "string"
|
|
184
187
|
},
|
|
@@ -705,6 +708,9 @@
|
|
|
705
708
|
"bonusProficiencyBonus": {
|
|
706
709
|
"type": "string"
|
|
707
710
|
},
|
|
711
|
+
"bonusSavingThrowConcentration": {
|
|
712
|
+
"type": "string"
|
|
713
|
+
},
|
|
708
714
|
"dmg1": {
|
|
709
715
|
"type": "string"
|
|
710
716
|
},
|
|
@@ -1240,6 +1246,9 @@
|
|
|
1240
1246
|
"bonusProficiencyBonus": {
|
|
1241
1247
|
"type": "string"
|
|
1242
1248
|
},
|
|
1249
|
+
"bonusSavingThrowConcentration": {
|
|
1250
|
+
"type": "string"
|
|
1251
|
+
},
|
|
1243
1252
|
"dmg1": {
|
|
1244
1253
|
"type": "string"
|
|
1245
1254
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -83,7 +83,12 @@
|
|
|
83
83
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
84
84
|
"minLength": 3
|
|
85
85
|
},
|
|
86
|
+
"partnered": {
|
|
87
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
86
90
|
"targetSchema": {
|
|
91
|
+
"deprecated": true,
|
|
87
92
|
"type": "string",
|
|
88
93
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
89
94
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -154,6 +154,9 @@
|
|
|
154
154
|
"bonusProficiencyBonus": {
|
|
155
155
|
"type": "string"
|
|
156
156
|
},
|
|
157
|
+
"bonusSavingThrowConcentration": {
|
|
158
|
+
"type": "string"
|
|
159
|
+
},
|
|
157
160
|
"dmg1": {
|
|
158
161
|
"type": "string"
|
|
159
162
|
},
|
|
@@ -499,6 +502,9 @@
|
|
|
499
502
|
"bonusProficiencyBonus": {
|
|
500
503
|
"type": "string"
|
|
501
504
|
},
|
|
505
|
+
"bonusSavingThrowConcentration": {
|
|
506
|
+
"type": "string"
|
|
507
|
+
},
|
|
502
508
|
"dmg1": {
|
|
503
509
|
"type": "string"
|
|
504
510
|
},
|
|
@@ -848,6 +854,9 @@
|
|
|
848
854
|
"bonusProficiencyBonus": {
|
|
849
855
|
"type": "string"
|
|
850
856
|
},
|
|
857
|
+
"bonusSavingThrowConcentration": {
|
|
858
|
+
"type": "string"
|
|
859
|
+
},
|
|
851
860
|
"dmg1": {
|
|
852
861
|
"type": "string"
|
|
853
862
|
},
|
|
@@ -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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -991,6 +994,9 @@
|
|
|
991
994
|
"bonusProficiencyBonus": {
|
|
992
995
|
"type": "string"
|
|
993
996
|
},
|
|
997
|
+
"bonusSavingThrowConcentration": {
|
|
998
|
+
"type": "string"
|
|
999
|
+
},
|
|
994
1000
|
"modifySpeed": {
|
|
995
1001
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
996
1002
|
},
|
|
@@ -1581,6 +1587,9 @@
|
|
|
1581
1587
|
"bonusProficiencyBonus": {
|
|
1582
1588
|
"type": "string"
|
|
1583
1589
|
},
|
|
1590
|
+
"bonusSavingThrowConcentration": {
|
|
1591
|
+
"type": "string"
|
|
1592
|
+
},
|
|
1584
1593
|
"modifySpeed": {
|
|
1585
1594
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1586
1595
|
},
|
|
@@ -2176,6 +2185,9 @@
|
|
|
2176
2185
|
"bonusProficiencyBonus": {
|
|
2177
2186
|
"type": "string"
|
|
2178
2187
|
},
|
|
2188
|
+
"bonusSavingThrowConcentration": {
|
|
2189
|
+
"type": "string"
|
|
2190
|
+
},
|
|
2179
2191
|
"modifySpeed": {
|
|
2180
2192
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2181
2193
|
},
|
|
@@ -2770,6 +2782,9 @@
|
|
|
2770
2782
|
"bonusProficiencyBonus": {
|
|
2771
2783
|
"type": "string"
|
|
2772
2784
|
},
|
|
2785
|
+
"bonusSavingThrowConcentration": {
|
|
2786
|
+
"type": "string"
|
|
2787
|
+
},
|
|
2773
2788
|
"modifySpeed": {
|
|
2774
2789
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2775
2790
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -179,6 +179,9 @@
|
|
|
179
179
|
"bonusProficiencyBonus": {
|
|
180
180
|
"type": "string"
|
|
181
181
|
},
|
|
182
|
+
"bonusSavingThrowConcentration": {
|
|
183
|
+
"type": "string"
|
|
184
|
+
},
|
|
182
185
|
"dmg1": {
|
|
183
186
|
"type": "string"
|
|
184
187
|
},
|
|
@@ -705,6 +708,9 @@
|
|
|
705
708
|
"bonusProficiencyBonus": {
|
|
706
709
|
"type": "string"
|
|
707
710
|
},
|
|
711
|
+
"bonusSavingThrowConcentration": {
|
|
712
|
+
"type": "string"
|
|
713
|
+
},
|
|
708
714
|
"dmg1": {
|
|
709
715
|
"type": "string"
|
|
710
716
|
},
|
|
@@ -1240,6 +1246,9 @@
|
|
|
1240
1246
|
"bonusProficiencyBonus": {
|
|
1241
1247
|
"type": "string"
|
|
1242
1248
|
},
|
|
1249
|
+
"bonusSavingThrowConcentration": {
|
|
1250
|
+
"type": "string"
|
|
1251
|
+
},
|
|
1243
1252
|
"dmg1": {
|
|
1244
1253
|
"type": "string"
|
|
1245
1254
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -85,7 +85,12 @@
|
|
|
85
85
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
86
86
|
"minLength": 3
|
|
87
87
|
},
|
|
88
|
+
"partnered": {
|
|
89
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
90
|
+
"type": "boolean"
|
|
91
|
+
},
|
|
88
92
|
"targetSchema": {
|
|
93
|
+
"deprecated": true,
|
|
89
94
|
"type": "string",
|
|
90
95
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
91
96
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -156,6 +156,9 @@
|
|
|
156
156
|
"bonusProficiencyBonus": {
|
|
157
157
|
"type": "string"
|
|
158
158
|
},
|
|
159
|
+
"bonusSavingThrowConcentration": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
159
162
|
"dmg1": {
|
|
160
163
|
"type": "string"
|
|
161
164
|
},
|
|
@@ -461,6 +464,9 @@
|
|
|
461
464
|
"bonusProficiencyBonus": {
|
|
462
465
|
"type": "string"
|
|
463
466
|
},
|
|
467
|
+
"bonusSavingThrowConcentration": {
|
|
468
|
+
"type": "string"
|
|
469
|
+
},
|
|
464
470
|
"dmg1": {
|
|
465
471
|
"type": "string"
|
|
466
472
|
},
|
|
@@ -770,6 +776,9 @@
|
|
|
770
776
|
"bonusProficiencyBonus": {
|
|
771
777
|
"type": "string"
|
|
772
778
|
},
|
|
779
|
+
"bonusSavingThrowConcentration": {
|
|
780
|
+
"type": "string"
|
|
781
|
+
},
|
|
773
782
|
"dmg1": {
|
|
774
783
|
"type": "string"
|
|
775
784
|
},
|
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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -947,6 +950,9 @@
|
|
|
947
950
|
"bonusProficiencyBonus": {
|
|
948
951
|
"type": "string"
|
|
949
952
|
},
|
|
953
|
+
"bonusSavingThrowConcentration": {
|
|
954
|
+
"type": "string"
|
|
955
|
+
},
|
|
950
956
|
"modifySpeed": {
|
|
951
957
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
952
958
|
},
|
|
@@ -1493,6 +1499,9 @@
|
|
|
1493
1499
|
"bonusProficiencyBonus": {
|
|
1494
1500
|
"type": "string"
|
|
1495
1501
|
},
|
|
1502
|
+
"bonusSavingThrowConcentration": {
|
|
1503
|
+
"type": "string"
|
|
1504
|
+
},
|
|
1496
1505
|
"modifySpeed": {
|
|
1497
1506
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1498
1507
|
},
|
|
@@ -2044,6 +2053,9 @@
|
|
|
2044
2053
|
"bonusProficiencyBonus": {
|
|
2045
2054
|
"type": "string"
|
|
2046
2055
|
},
|
|
2056
|
+
"bonusSavingThrowConcentration": {
|
|
2057
|
+
"type": "string"
|
|
2058
|
+
},
|
|
2047
2059
|
"modifySpeed": {
|
|
2048
2060
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2049
2061
|
},
|
|
@@ -2594,6 +2606,9 @@
|
|
|
2594
2606
|
"bonusProficiencyBonus": {
|
|
2595
2607
|
"type": "string"
|
|
2596
2608
|
},
|
|
2609
|
+
"bonusSavingThrowConcentration": {
|
|
2610
|
+
"type": "string"
|
|
2611
|
+
},
|
|
2597
2612
|
"modifySpeed": {
|
|
2598
2613
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2599
2614
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -170,6 +170,9 @@
|
|
|
170
170
|
"bonusProficiencyBonus": {
|
|
171
171
|
"type": "string"
|
|
172
172
|
},
|
|
173
|
+
"bonusSavingThrowConcentration": {
|
|
174
|
+
"type": "string"
|
|
175
|
+
},
|
|
173
176
|
"dmg1": {
|
|
174
177
|
"type": "string"
|
|
175
178
|
},
|
|
@@ -652,6 +655,9 @@
|
|
|
652
655
|
"bonusProficiencyBonus": {
|
|
653
656
|
"type": "string"
|
|
654
657
|
},
|
|
658
|
+
"bonusSavingThrowConcentration": {
|
|
659
|
+
"type": "string"
|
|
660
|
+
},
|
|
655
661
|
"dmg1": {
|
|
656
662
|
"type": "string"
|
|
657
663
|
},
|
|
@@ -1143,6 +1149,9 @@
|
|
|
1143
1149
|
"bonusProficiencyBonus": {
|
|
1144
1150
|
"type": "string"
|
|
1145
1151
|
},
|
|
1152
|
+
"bonusSavingThrowConcentration": {
|
|
1153
|
+
"type": "string"
|
|
1154
|
+
},
|
|
1146
1155
|
"dmg1": {
|
|
1147
1156
|
"type": "string"
|
|
1148
1157
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -83,7 +83,12 @@
|
|
|
83
83
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
84
84
|
"minLength": 3
|
|
85
85
|
},
|
|
86
|
+
"partnered": {
|
|
87
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
86
90
|
"targetSchema": {
|
|
91
|
+
"deprecated": true,
|
|
87
92
|
"type": "string",
|
|
88
93
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
89
94
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -156,6 +156,9 @@
|
|
|
156
156
|
"bonusProficiencyBonus": {
|
|
157
157
|
"type": "string"
|
|
158
158
|
},
|
|
159
|
+
"bonusSavingThrowConcentration": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
159
162
|
"dmg1": {
|
|
160
163
|
"type": "string"
|
|
161
164
|
},
|
|
@@ -461,6 +464,9 @@
|
|
|
461
464
|
"bonusProficiencyBonus": {
|
|
462
465
|
"type": "string"
|
|
463
466
|
},
|
|
467
|
+
"bonusSavingThrowConcentration": {
|
|
468
|
+
"type": "string"
|
|
469
|
+
},
|
|
464
470
|
"dmg1": {
|
|
465
471
|
"type": "string"
|
|
466
472
|
},
|
|
@@ -770,6 +776,9 @@
|
|
|
770
776
|
"bonusProficiencyBonus": {
|
|
771
777
|
"type": "string"
|
|
772
778
|
},
|
|
779
|
+
"bonusSavingThrowConcentration": {
|
|
780
|
+
"type": "string"
|
|
781
|
+
},
|
|
773
782
|
"dmg1": {
|
|
774
783
|
"type": "string"
|
|
775
784
|
},
|
|
@@ -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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -947,6 +950,9 @@
|
|
|
947
950
|
"bonusProficiencyBonus": {
|
|
948
951
|
"type": "string"
|
|
949
952
|
},
|
|
953
|
+
"bonusSavingThrowConcentration": {
|
|
954
|
+
"type": "string"
|
|
955
|
+
},
|
|
950
956
|
"modifySpeed": {
|
|
951
957
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
952
958
|
},
|
|
@@ -1493,6 +1499,9 @@
|
|
|
1493
1499
|
"bonusProficiencyBonus": {
|
|
1494
1500
|
"type": "string"
|
|
1495
1501
|
},
|
|
1502
|
+
"bonusSavingThrowConcentration": {
|
|
1503
|
+
"type": "string"
|
|
1504
|
+
},
|
|
1496
1505
|
"modifySpeed": {
|
|
1497
1506
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1498
1507
|
},
|
|
@@ -2044,6 +2053,9 @@
|
|
|
2044
2053
|
"bonusProficiencyBonus": {
|
|
2045
2054
|
"type": "string"
|
|
2046
2055
|
},
|
|
2056
|
+
"bonusSavingThrowConcentration": {
|
|
2057
|
+
"type": "string"
|
|
2058
|
+
},
|
|
2047
2059
|
"modifySpeed": {
|
|
2048
2060
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2049
2061
|
},
|
|
@@ -2594,6 +2606,9 @@
|
|
|
2594
2606
|
"bonusProficiencyBonus": {
|
|
2595
2607
|
"type": "string"
|
|
2596
2608
|
},
|
|
2609
|
+
"bonusSavingThrowConcentration": {
|
|
2610
|
+
"type": "string"
|
|
2611
|
+
},
|
|
2597
2612
|
"modifySpeed": {
|
|
2598
2613
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2599
2614
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -170,6 +170,9 @@
|
|
|
170
170
|
"bonusProficiencyBonus": {
|
|
171
171
|
"type": "string"
|
|
172
172
|
},
|
|
173
|
+
"bonusSavingThrowConcentration": {
|
|
174
|
+
"type": "string"
|
|
175
|
+
},
|
|
173
176
|
"dmg1": {
|
|
174
177
|
"type": "string"
|
|
175
178
|
},
|
|
@@ -652,6 +655,9 @@
|
|
|
652
655
|
"bonusProficiencyBonus": {
|
|
653
656
|
"type": "string"
|
|
654
657
|
},
|
|
658
|
+
"bonusSavingThrowConcentration": {
|
|
659
|
+
"type": "string"
|
|
660
|
+
},
|
|
655
661
|
"dmg1": {
|
|
656
662
|
"type": "string"
|
|
657
663
|
},
|
|
@@ -1143,6 +1149,9 @@
|
|
|
1143
1149
|
"bonusProficiencyBonus": {
|
|
1144
1150
|
"type": "string"
|
|
1145
1151
|
},
|
|
1152
|
+
"bonusSavingThrowConcentration": {
|
|
1153
|
+
"type": "string"
|
|
1154
|
+
},
|
|
1146
1155
|
"dmg1": {
|
|
1147
1156
|
"type": "string"
|
|
1148
1157
|
},
|
package/schema/ua/homebrew.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -85,7 +85,12 @@
|
|
|
85
85
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
86
86
|
"minLength": 3
|
|
87
87
|
},
|
|
88
|
+
"partnered": {
|
|
89
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
90
|
+
"type": "boolean"
|
|
91
|
+
},
|
|
88
92
|
"targetSchema": {
|
|
93
|
+
"deprecated": true,
|
|
89
94
|
"type": "string",
|
|
90
95
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
91
96
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -156,6 +156,9 @@
|
|
|
156
156
|
"bonusProficiencyBonus": {
|
|
157
157
|
"type": "string"
|
|
158
158
|
},
|
|
159
|
+
"bonusSavingThrowConcentration": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
159
162
|
"dmg1": {
|
|
160
163
|
"type": "string"
|
|
161
164
|
},
|
|
@@ -464,6 +467,9 @@
|
|
|
464
467
|
"bonusProficiencyBonus": {
|
|
465
468
|
"type": "string"
|
|
466
469
|
},
|
|
470
|
+
"bonusSavingThrowConcentration": {
|
|
471
|
+
"type": "string"
|
|
472
|
+
},
|
|
467
473
|
"dmg1": {
|
|
468
474
|
"type": "string"
|
|
469
475
|
},
|
|
@@ -776,6 +782,9 @@
|
|
|
776
782
|
"bonusProficiencyBonus": {
|
|
777
783
|
"type": "string"
|
|
778
784
|
},
|
|
785
|
+
"bonusSavingThrowConcentration": {
|
|
786
|
+
"type": "string"
|
|
787
|
+
},
|
|
779
788
|
"dmg1": {
|
|
780
789
|
"type": "string"
|
|
781
790
|
},
|
package/schema/ua/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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -950,6 +953,9 @@
|
|
|
950
953
|
"bonusProficiencyBonus": {
|
|
951
954
|
"type": "string"
|
|
952
955
|
},
|
|
956
|
+
"bonusSavingThrowConcentration": {
|
|
957
|
+
"type": "string"
|
|
958
|
+
},
|
|
953
959
|
"modifySpeed": {
|
|
954
960
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
955
961
|
},
|
|
@@ -1499,6 +1505,9 @@
|
|
|
1499
1505
|
"bonusProficiencyBonus": {
|
|
1500
1506
|
"type": "string"
|
|
1501
1507
|
},
|
|
1508
|
+
"bonusSavingThrowConcentration": {
|
|
1509
|
+
"type": "string"
|
|
1510
|
+
},
|
|
1502
1511
|
"modifySpeed": {
|
|
1503
1512
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1504
1513
|
},
|
|
@@ -2053,6 +2062,9 @@
|
|
|
2053
2062
|
"bonusProficiencyBonus": {
|
|
2054
2063
|
"type": "string"
|
|
2055
2064
|
},
|
|
2065
|
+
"bonusSavingThrowConcentration": {
|
|
2066
|
+
"type": "string"
|
|
2067
|
+
},
|
|
2056
2068
|
"modifySpeed": {
|
|
2057
2069
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2058
2070
|
},
|
|
@@ -2606,6 +2618,9 @@
|
|
|
2606
2618
|
"bonusProficiencyBonus": {
|
|
2607
2619
|
"type": "string"
|
|
2608
2620
|
},
|
|
2621
|
+
"bonusSavingThrowConcentration": {
|
|
2622
|
+
"type": "string"
|
|
2623
|
+
},
|
|
2609
2624
|
"modifySpeed": {
|
|
2610
2625
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2611
2626
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -179,6 +179,9 @@
|
|
|
179
179
|
"bonusProficiencyBonus": {
|
|
180
180
|
"type": "string"
|
|
181
181
|
},
|
|
182
|
+
"bonusSavingThrowConcentration": {
|
|
183
|
+
"type": "string"
|
|
184
|
+
},
|
|
182
185
|
"dmg1": {
|
|
183
186
|
"type": "string"
|
|
184
187
|
},
|
|
@@ -680,6 +683,9 @@
|
|
|
680
683
|
"bonusProficiencyBonus": {
|
|
681
684
|
"type": "string"
|
|
682
685
|
},
|
|
686
|
+
"bonusSavingThrowConcentration": {
|
|
687
|
+
"type": "string"
|
|
688
|
+
},
|
|
683
689
|
"dmg1": {
|
|
684
690
|
"type": "string"
|
|
685
691
|
},
|
|
@@ -1190,6 +1196,9 @@
|
|
|
1190
1196
|
"bonusProficiencyBonus": {
|
|
1191
1197
|
"type": "string"
|
|
1192
1198
|
},
|
|
1199
|
+
"bonusSavingThrowConcentration": {
|
|
1200
|
+
"type": "string"
|
|
1201
|
+
},
|
|
1193
1202
|
"dmg1": {
|
|
1194
1203
|
"type": "string"
|
|
1195
1204
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.21",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
|
|
6
6
|
"$defs": {
|
|
@@ -83,7 +83,12 @@
|
|
|
83
83
|
"description": "A direct link to the source, if available in web form or on a store.",
|
|
84
84
|
"minLength": 3
|
|
85
85
|
},
|
|
86
|
+
"partnered": {
|
|
87
|
+
"description": "If this is a \"partnered\" source; usually one which is available and similarly marked on D&D Beyond.",
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
},
|
|
86
90
|
"targetSchema": {
|
|
91
|
+
"deprecated": true,
|
|
87
92
|
"type": "string",
|
|
88
93
|
"description": "The target schema version in 5etools, e.g. \"1.2.3\"."
|
|
89
94
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "items-base.json",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.21",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemLookupBase": {
|
|
@@ -156,6 +156,9 @@
|
|
|
156
156
|
"bonusProficiencyBonus": {
|
|
157
157
|
"type": "string"
|
|
158
158
|
},
|
|
159
|
+
"bonusSavingThrowConcentration": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
159
162
|
"dmg1": {
|
|
160
163
|
"type": "string"
|
|
161
164
|
},
|
|
@@ -464,6 +467,9 @@
|
|
|
464
467
|
"bonusProficiencyBonus": {
|
|
465
468
|
"type": "string"
|
|
466
469
|
},
|
|
470
|
+
"bonusSavingThrowConcentration": {
|
|
471
|
+
"type": "string"
|
|
472
|
+
},
|
|
467
473
|
"dmg1": {
|
|
468
474
|
"type": "string"
|
|
469
475
|
},
|
|
@@ -776,6 +782,9 @@
|
|
|
776
782
|
"bonusProficiencyBonus": {
|
|
777
783
|
"type": "string"
|
|
778
784
|
},
|
|
785
|
+
"bonusSavingThrowConcentration": {
|
|
786
|
+
"type": "string"
|
|
787
|
+
},
|
|
779
788
|
"dmg1": {
|
|
780
789
|
"type": "string"
|
|
781
790
|
},
|
|
@@ -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.14.
|
|
4
|
+
"version": "1.14.10",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"itemData": {
|
|
@@ -396,6 +396,9 @@
|
|
|
396
396
|
"bonusProficiencyBonus": {
|
|
397
397
|
"type": "string"
|
|
398
398
|
},
|
|
399
|
+
"bonusSavingThrowConcentration": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
399
402
|
"modifySpeed": {
|
|
400
403
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
401
404
|
},
|
|
@@ -950,6 +953,9 @@
|
|
|
950
953
|
"bonusProficiencyBonus": {
|
|
951
954
|
"type": "string"
|
|
952
955
|
},
|
|
956
|
+
"bonusSavingThrowConcentration": {
|
|
957
|
+
"type": "string"
|
|
958
|
+
},
|
|
953
959
|
"modifySpeed": {
|
|
954
960
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
955
961
|
},
|
|
@@ -1499,6 +1505,9 @@
|
|
|
1499
1505
|
"bonusProficiencyBonus": {
|
|
1500
1506
|
"type": "string"
|
|
1501
1507
|
},
|
|
1508
|
+
"bonusSavingThrowConcentration": {
|
|
1509
|
+
"type": "string"
|
|
1510
|
+
},
|
|
1502
1511
|
"modifySpeed": {
|
|
1503
1512
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
1504
1513
|
},
|
|
@@ -2053,6 +2062,9 @@
|
|
|
2053
2062
|
"bonusProficiencyBonus": {
|
|
2054
2063
|
"type": "string"
|
|
2055
2064
|
},
|
|
2065
|
+
"bonusSavingThrowConcentration": {
|
|
2066
|
+
"type": "string"
|
|
2067
|
+
},
|
|
2056
2068
|
"modifySpeed": {
|
|
2057
2069
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2058
2070
|
},
|
|
@@ -2606,6 +2618,9 @@
|
|
|
2606
2618
|
"bonusProficiencyBonus": {
|
|
2607
2619
|
"type": "string"
|
|
2608
2620
|
},
|
|
2621
|
+
"bonusSavingThrowConcentration": {
|
|
2622
|
+
"type": "string"
|
|
2623
|
+
},
|
|
2609
2624
|
"modifySpeed": {
|
|
2610
2625
|
"$ref": "items-shared.json#/$defs/itemModifySpeed"
|
|
2611
2626
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "magicvariants.json",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.17",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"$defs": {
|
|
7
7
|
"_magicvariantItemBase": {
|
|
@@ -179,6 +179,9 @@
|
|
|
179
179
|
"bonusProficiencyBonus": {
|
|
180
180
|
"type": "string"
|
|
181
181
|
},
|
|
182
|
+
"bonusSavingThrowConcentration": {
|
|
183
|
+
"type": "string"
|
|
184
|
+
},
|
|
182
185
|
"dmg1": {
|
|
183
186
|
"type": "string"
|
|
184
187
|
},
|
|
@@ -680,6 +683,9 @@
|
|
|
680
683
|
"bonusProficiencyBonus": {
|
|
681
684
|
"type": "string"
|
|
682
685
|
},
|
|
686
|
+
"bonusSavingThrowConcentration": {
|
|
687
|
+
"type": "string"
|
|
688
|
+
},
|
|
683
689
|
"dmg1": {
|
|
684
690
|
"type": "string"
|
|
685
691
|
},
|
|
@@ -1190,6 +1196,9 @@
|
|
|
1190
1196
|
"bonusProficiencyBonus": {
|
|
1191
1197
|
"type": "string"
|
|
1192
1198
|
},
|
|
1199
|
+
"bonusSavingThrowConcentration": {
|
|
1200
|
+
"type": "string"
|
|
1201
|
+
},
|
|
1193
1202
|
"dmg1": {
|
|
1194
1203
|
"type": "string"
|
|
1195
1204
|
},
|