@archivist-gg/dnd5e 0.3.0 → 0.3.4
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/LICENSES/SRD.md +25 -6
- package/dist/armor/armor.codec.js +4 -3
- package/dist/armor/armor.parser.js +3 -2
- package/dist/armor/armor.schema.d.ts +4 -0
- package/dist/armor/armor.schema.js +2 -1
- package/dist/armor/armor.types.d.ts +8 -0
- package/dist/background/background.codec.js +7 -6
- package/dist/background/background.parser.js +6 -5
- package/dist/background/background.schema.d.ts +34 -0
- package/dist/background/background.schema.js +9 -6
- package/dist/background/background.types.d.ts +22 -0
- package/dist/{chunk-4TIJKN6O.js → chunk-23LZLBJK.js} +1 -1
- package/dist/{chunk-AFKTJXRA.js → chunk-2DFENQIJ.js} +18 -0
- package/dist/chunk-2FRUSVZS.js +489 -0
- package/dist/chunk-4FWNK4FD.js +159 -0
- package/dist/chunk-4U55VNC7.js +22 -0
- package/dist/{chunk-4JHOHWBI.js → chunk-4XTNPNQB.js} +1 -1
- package/dist/{chunk-HCP3GMHS.js → chunk-5N2GW72F.js} +15 -2
- package/dist/{chunk-42Y5IJKT.js → chunk-5U5FFFA3.js} +5 -1
- package/dist/{chunk-4F6AIZ36.js → chunk-5XMQPTHD.js} +1 -1
- package/dist/{chunk-GJOI2GHP.js → chunk-6GNXYAYP.js} +1 -1
- package/dist/chunk-6PKV5V2H.js +178 -0
- package/dist/{chunk-66XXW2Z2.js → chunk-6PXTNCBP.js} +2 -2
- package/dist/chunk-6X2NV665.js +33 -0
- package/dist/{chunk-LV4SNWZQ.js → chunk-6X4KUDMU.js} +8 -1
- package/dist/{chunk-ZMR77DDL.js → chunk-AW3EHF3L.js} +1 -1
- package/dist/chunk-CJYCVNW2.js +7 -0
- package/dist/chunk-COEOOQX2.js +133 -0
- package/dist/{chunk-XTIQWSFM.js → chunk-D5U7GMPX.js} +1 -1
- package/dist/{chunk-RAWJTA45.js → chunk-DEEHHLAP.js} +1 -1
- package/dist/chunk-DPUJDOKV.js +365 -0
- package/dist/{chunk-73HOFQQ5.js → chunk-ESS46GR4.js} +1 -1
- package/dist/chunk-EVMUJYUD.js +195 -0
- package/dist/{chunk-2BWAID3Y.js → chunk-FDBWYMZK.js} +29 -3
- package/dist/{chunk-K6Q5OUGK.js → chunk-GFZ7PITJ.js} +86 -10
- package/dist/chunk-H7KBLR4X.js +81 -0
- package/dist/{chunk-L7E2UT5A.js → chunk-HB7XZXDK.js} +5 -1
- package/dist/{chunk-VTYUBINW.js → chunk-HJ5EEZ47.js} +1 -1
- package/dist/{chunk-6NK2MUD3.js → chunk-HZA7OE7N.js} +9 -2
- package/dist/{chunk-A4WENOUQ.js → chunk-I2NDWFDD.js} +52 -8
- package/dist/{chunk-RSDRMH54.js → chunk-IMZFOOVL.js} +1 -1
- package/dist/{chunk-3DZ74AKK.js → chunk-IN4M4X7P.js} +8 -2
- package/dist/chunk-IUAAXXNO.js +58 -0
- package/dist/{chunk-XJNECUPT.js → chunk-JC5UNIVM.js} +19 -0
- package/dist/chunk-JJ46T5XX.js +297 -0
- package/dist/{chunk-TUIFSVLI.js → chunk-JRDPUDT5.js} +30 -3
- package/dist/{chunk-24GFQU7T.js → chunk-JSZ4H6AQ.js} +1 -1
- package/dist/chunk-KU3YLF6D.js +106 -0
- package/dist/{chunk-5INR4NSL.js → chunk-LDDCNPHD.js} +1 -1
- package/dist/{chunk-DZXSWSBP.js → chunk-LMBAEIP6.js} +1 -1
- package/dist/chunk-LVQLWRCU.js +15 -0
- package/dist/chunk-MI7P3NX3.js +161 -0
- package/dist/chunk-O4SRD3J5.js +165 -0
- package/dist/{chunk-EMOORSQ7.js → chunk-OSQFPGLM.js} +45 -6
- package/dist/chunk-OZP6JFGT.js +162 -0
- package/dist/{chunk-NAEPSZAM.js → chunk-PDJSUH24.js} +24 -2
- package/dist/chunk-PP2UHLBA.js +50 -0
- package/dist/chunk-PVCEA4HZ.js +6 -0
- package/dist/{chunk-XLSVNUTK.js → chunk-R3VAKWKW.js} +1 -1
- package/dist/chunk-RIXI5D3R.js +89 -0
- package/dist/chunk-RLGQ5PZZ.js +16 -0
- package/dist/chunk-S7REMWW4.js +21 -0
- package/dist/{chunk-7VJ6BOA5.js → chunk-SMLXZUBH.js} +9 -1
- package/dist/{chunk-NXSWH3AE.js → chunk-T26ZVCL5.js} +1 -1
- package/dist/chunk-TOM66P2P.js +38 -0
- package/dist/chunk-UA5KS2PL.js +26 -0
- package/dist/{chunk-N6N74K6X.js → chunk-UBBKSYBY.js} +1 -1
- package/dist/{chunk-353WXS6S.js → chunk-UIRMA5KM.js} +1 -1
- package/dist/{chunk-GE4TLPWM.js → chunk-US5IKYCW.js} +1 -1
- package/dist/chunk-UXPGW4TI.js +101 -0
- package/dist/chunk-VQAXTIBW.js +100 -0
- package/dist/{chunk-WP2CX2JO.js → chunk-WELIKLZF.js} +22 -1
- package/dist/chunk-WPWOHGPI.js +172 -0
- package/dist/{chunk-GZ46OVGZ.js → chunk-WSVMLNTO.js} +1 -1
- package/dist/{chunk-4LZJXJJS.js → chunk-WXWPK3LI.js} +6 -2
- package/dist/{chunk-ZZGEVJKX.js → chunk-XBQMCEI2.js} +1 -1
- package/dist/{chunk-PHQRGDRQ.js → chunk-XGOFP7AQ.js} +5 -1
- package/dist/chunk-XJ2F2WO6.js +8 -0
- package/dist/chunk-XQCSGNXE.js +1580 -0
- package/dist/chunk-YBLDE5CG.js +42 -0
- package/dist/{chunk-JEYQU3JT.js → chunk-YHYTW5QA.js} +2 -18
- package/dist/{chunk-TLYDBT5F.js → chunk-YJJTISBN.js} +64 -7
- package/dist/{chunk-PZOWBI3B.js → chunk-YLL2QXY2.js} +7 -2
- package/dist/{chunk-MDEJHMKK.js → chunk-ZONJ66NE.js} +26 -5
- package/dist/class/class.codec.js +12 -9
- package/dist/class/class.parser.js +11 -8
- package/dist/class/class.schema.d.ts +55 -3
- package/dist/class/class.schema.js +9 -7
- package/dist/class/class.types.d.ts +48 -3
- package/dist/condition/condition.codec.d.ts +9 -0
- package/dist/condition/condition.entity-type.d.ts +2 -0
- package/dist/condition/condition.parser.d.ts +13 -0
- package/dist/condition/condition.parser.js +7 -0
- package/dist/condition/condition.schema.d.ts +29 -0
- package/dist/condition/condition.types.d.ts +15 -0
- package/dist/condition/condition.types.js +0 -0
- package/dist/dnd/constants.d.ts +22 -0
- package/dist/dnd/constants.js +9 -3
- package/dist/dnd/formula-tags.js +2 -2
- package/dist/dnd/math.d.ts +26 -0
- package/dist/dnd/math.js +12 -2
- package/dist/dnd/prose-tags.js +1 -1
- package/dist/dnd/resource-formula.d.ts +36 -10
- package/dist/dnd/resource-formula.js +10 -155
- package/dist/dnd/srd-tag-converter.js +3 -3
- package/dist/dnd/tag-grammar.js +1 -1
- package/dist/dnd/warn-once.d.ts +2 -0
- package/dist/dnd/warn-once.js +8 -0
- package/dist/entities/base-item-resolver.js +2 -2
- package/dist/entities/slug.d.ts +13 -0
- package/dist/entities/slug.js +5 -3
- package/dist/entities/wikilink-display.d.ts +3 -0
- package/dist/entities/wikilink-display.js +10 -0
- package/dist/feat/feat.category-codes.d.ts +32 -0
- package/dist/feat/feat.category-codes.js +14 -0
- package/dist/feat/feat.codec.js +7 -5
- package/dist/feat/feat.parser.js +6 -4
- package/dist/feat/feat.schema.d.ts +230 -0
- package/dist/feat/feat.schema.js +5 -3
- package/dist/feat/feat.types.d.ts +37 -1
- package/dist/index.js +2120 -6923
- package/dist/item/item.ai-schema.d.ts +1 -1
- package/dist/item/item.codec.js +4 -3
- package/dist/item/item.enrichment.js +4 -4
- package/dist/item/item.parser.js +3 -2
- package/dist/item/item.schema.d.ts +69 -3
- package/dist/item/item.schema.js +2 -1
- package/dist/item/item.types.d.ts +69 -3
- package/dist/monster/monster.codec.d.ts +7 -6
- package/dist/monster/monster.enrichment.js +4 -4
- package/dist/monster/monster.format.d.ts +135 -0
- package/dist/monster/monster.format.js +78 -0
- package/dist/monster/monster.parser.d.ts +6 -1
- package/dist/monster/monster.parser.js +10 -1
- package/dist/monster/monster.schema.d.ts +369 -0
- package/dist/monster/monster.schema.js +34 -0
- package/dist/monster/monster.types.d.ts +200 -14
- package/dist/optional-feature/optional-feature.codec.js +6 -5
- package/dist/optional-feature/optional-feature.parser.js +5 -4
- package/dist/optional-feature/optional-feature.schema.d.ts +176 -0
- package/dist/optional-feature/optional-feature.schema.js +4 -3
- package/dist/pack.d.ts +1 -1
- package/dist/pc/conditions.constants.d.ts +0 -1
- package/dist/pc/conditions.constants.js +1 -3
- package/dist/pc/decision-recognizer.js +1 -1
- package/dist/pc/pc.additional-spells.d.ts +47 -0
- package/dist/pc/pc.additional-spells.js +23 -0
- package/dist/pc/pc.asi-flatten.d.ts +18 -0
- package/dist/pc/pc.decision-engine.d.ts +106 -5
- package/dist/pc/pc.decision-engine.js +28 -10
- package/dist/pc/pc.defense-normalize.d.ts +11 -0
- package/dist/pc/pc.defense-normalize.js +6 -0
- package/dist/pc/pc.equipment.d.ts +30 -1
- package/dist/pc/pc.equipment.js +12 -7
- package/dist/pc/pc.feature-effects.d.ts +225 -11
- package/dist/pc/pc.feature-effects.js +21 -5
- package/dist/pc/pc.parser.js +2 -2
- package/dist/pc/pc.pools.d.ts +11 -3
- package/dist/pc/pc.pools.js +9 -13
- package/dist/pc/pc.proficiencies.d.ts +60 -4
- package/dist/pc/pc.proficiencies.js +89 -37
- package/dist/pc/pc.proficiency-grants.d.ts +58 -0
- package/dist/pc/pc.proficiency-normalize.d.ts +29 -0
- package/dist/pc/pc.proficiency-normalize.js +12 -0
- package/dist/pc/pc.proficiency-query.d.ts +13 -0
- package/dist/pc/pc.proficiency-query.js +5 -1
- package/dist/pc/pc.recalc.d.ts +69 -14
- package/dist/pc/pc.recalc.js +291 -142
- package/dist/pc/pc.resolver.d.ts +34 -8
- package/dist/pc/pc.resolver.js +27 -12
- package/dist/pc/pc.resource-seed.d.ts +3 -2
- package/dist/pc/pc.resource-seed.js +19 -17
- package/dist/pc/pc.resources.d.ts +87 -0
- package/dist/pc/pc.resources.js +21 -0
- package/dist/pc/pc.rest.d.ts +10 -1
- package/dist/pc/pc.rest.js +66 -12
- package/dist/pc/pc.schema.d.ts +147 -7
- package/dist/pc/pc.schema.js +4 -2
- package/dist/pc/pc.slotting.js +3 -3
- package/dist/pc/pc.spellcasting.d.ts +80 -7
- package/dist/pc/pc.spellcasting.js +18 -6
- package/dist/pc/pc.table-column.d.ts +23 -0
- package/dist/pc/pc.table-column.js +13 -3
- package/dist/pc/pc.types.d.ts +253 -16
- package/dist/pc/pool-layout.d.ts +47 -0
- package/dist/pc/pool-layout.js +16 -0
- package/dist/pc/roll-scope.d.ts +2 -0
- package/dist/pc/roll-scope.js +8 -0
- package/dist/pc/roll-tag-labels.d.ts +40 -0
- package/dist/pc/roll-tag-labels.js +17 -0
- package/dist/pc/spell-source.d.ts +21 -0
- package/dist/pc/spell-source.js +13 -0
- package/dist/race/race.codec.js +9 -7
- package/dist/race/race.parser.js +8 -6
- package/dist/race/race.schema.d.ts +51 -1
- package/dist/race/race.schema.js +8 -5
- package/dist/race/race.structural.d.ts +7 -0
- package/dist/race/race.structural.js +6 -0
- package/dist/race/race.types.d.ts +20 -0
- package/dist/schemas/attack-schema.d.ts +5 -0
- package/dist/schemas/caster-type-schema.d.ts +14 -0
- package/dist/schemas/caster-type-schema.js +6 -0
- package/dist/schemas/choice-schema.js +2 -2
- package/dist/schemas/entity-extras-schema.d.ts +53 -0
- package/dist/schemas/entity-extras-schema.js +10 -0
- package/dist/schemas/equipment-grant-schema.d.ts +2 -0
- package/dist/schemas/equipment-grant-schema.js +1 -1
- package/dist/schemas/feature-alias.d.ts +34 -0
- package/dist/schemas/feature-effect-schema.d.ts +124 -0
- package/dist/schemas/feature-effect-schema.js +1 -1
- package/dist/schemas/feature-schema.d.ts +8 -0
- package/dist/schemas/feature-schema.js +6 -4
- package/dist/schemas/resource-schema.d.ts +43 -0
- package/dist/schemas/resource-schema.js +1 -1
- package/dist/schemas/selection-pool-schema.d.ts +2 -0
- package/dist/schemas/selection-pool-schema.js +1 -1
- package/dist/spell/spell.access.js +23 -3
- package/dist/spell/spell.codec.js +4 -3
- package/dist/spell/spell.enrichment.js +4 -4
- package/dist/spell/spell.parser.d.ts +30 -0
- package/dist/spell/spell.parser.js +9 -2
- package/dist/spell/spell.scaling.d.ts +27 -6
- package/dist/spell/spell.scaling.js +25 -6
- package/dist/spell/spell.schema.d.ts +44 -2
- package/dist/spell/spell.schema.js +2 -1
- package/dist/spell/spell.types.d.ts +14 -0
- package/dist/subclass/subclass.codec.d.ts +1 -1
- package/dist/subclass/subclass.codec.js +11 -8
- package/dist/subclass/subclass.parser.js +10 -7
- package/dist/subclass/subclass.schema.d.ts +54 -7
- package/dist/subclass/subclass.schema.js +8 -6
- package/dist/subclass/subclass.types.d.ts +20 -2
- package/dist/types/choice.d.ts +56 -0
- package/dist/types/choice.js +21 -3
- package/dist/types/equipment-grant.d.ts +8 -1
- package/dist/types/feature-effect.d.ts +78 -23
- package/dist/types/feature.d.ts +70 -1
- package/dist/types/optional-feature.types.d.ts +28 -0
- package/dist/types/resource.d.ts +21 -1
- package/dist/types/selection-pool.d.ts +17 -2
- package/dist/weapon/weapon.classify.js +2 -2
- package/dist/weapon/weapon.codec.js +4 -3
- package/dist/weapon/weapon.parser.js +3 -2
- package/dist/weapon/weapon.schema.d.ts +4 -0
- package/dist/weapon/weapon.schema.js +2 -1
- package/dist/weapon/weapon.types.d.ts +8 -0
- package/package.json +2 -2
- package/dist/chunk-5MZSB6OM.js +0 -1089
- package/dist/chunk-5XUXXAQJ.js +0 -30
- package/dist/chunk-7P65Q426.js +0 -158
- package/dist/chunk-AIRFC5NQ.js +0 -143
- package/dist/chunk-BH6AMZVY.js +0 -25
- package/dist/chunk-CZPMTQOY.js +0 -68
- package/dist/chunk-M2EMFD6S.js +0 -269
- package/dist/chunk-N2JE7BWL.js +0 -81
- package/dist/chunk-NXR3BD2V.js +0 -90
- package/dist/chunk-Q5K6LWBZ.js +0 -45
- package/dist/chunk-TZK36BU7.js +0 -38
- package/dist/chunk-W7HWMMBF.js +0 -46
- package/dist/chunk-Y4I74YEG.js +0 -33
package/dist/chunk-N2JE7BWL.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
spellEntitySchema
|
|
3
|
-
} from "./chunk-Y4I74YEG.js";
|
|
4
|
-
|
|
5
|
-
// src/spell/spell.parser.ts
|
|
6
|
-
import { parseYaml, toStringSafe } from "@archivist-gg/core";
|
|
7
|
-
var KNOWN_KEYS = /* @__PURE__ */ new Set([
|
|
8
|
-
"name",
|
|
9
|
-
"level",
|
|
10
|
-
"school",
|
|
11
|
-
"casting_time",
|
|
12
|
-
"range",
|
|
13
|
-
"components",
|
|
14
|
-
"duration",
|
|
15
|
-
"concentration",
|
|
16
|
-
"ritual",
|
|
17
|
-
"classes",
|
|
18
|
-
"description",
|
|
19
|
-
"at_higher_levels",
|
|
20
|
-
"damage",
|
|
21
|
-
"saving_throw",
|
|
22
|
-
"casting_options",
|
|
23
|
-
// Body-only metadata that's emitted to YAML but ignored at runtime — accept silently.
|
|
24
|
-
"slug",
|
|
25
|
-
"edition",
|
|
26
|
-
"source"
|
|
27
|
-
]);
|
|
28
|
-
function parseSpell(source) {
|
|
29
|
-
const result = parseYaml(source, ["name"]);
|
|
30
|
-
if (!result.success) return result;
|
|
31
|
-
const meta = {};
|
|
32
|
-
if (typeof result.data.source === "string") meta.source = result.data.source;
|
|
33
|
-
if (typeof result.data.edition === "string") meta.edition = result.data.edition;
|
|
34
|
-
const filtered = {};
|
|
35
|
-
for (const [k, v] of Object.entries(result.data)) {
|
|
36
|
-
if (k === "slug" || k === "edition" || k === "source") continue;
|
|
37
|
-
if (!KNOWN_KEYS.has(k)) {
|
|
38
|
-
return { success: false, error: `Unknown spell field: ${k}` };
|
|
39
|
-
}
|
|
40
|
-
filtered[k] = v;
|
|
41
|
-
}
|
|
42
|
-
const parsed = spellEntitySchema.safeParse(filtered);
|
|
43
|
-
if (!parsed.success) {
|
|
44
|
-
return { success: false, error: `spell schema validation failed: ${parsed.error.message}` };
|
|
45
|
-
}
|
|
46
|
-
const raw = parsed.data;
|
|
47
|
-
const spell = { name: raw.name };
|
|
48
|
-
if (raw.level != null) spell.level = raw.level;
|
|
49
|
-
if (raw.school != null) spell.school = toStringSafe(raw.school);
|
|
50
|
-
if (raw.casting_time != null) spell.casting_time = toStringSafe(raw.casting_time);
|
|
51
|
-
if (raw.range != null) spell.range = toStringSafe(raw.range);
|
|
52
|
-
if (raw.components != null) spell.components = toStringSafe(raw.components);
|
|
53
|
-
if (raw.duration != null) spell.duration = toStringSafe(raw.duration);
|
|
54
|
-
if (raw.concentration != null) spell.concentration = Boolean(raw.concentration);
|
|
55
|
-
if (raw.ritual != null) spell.ritual = Boolean(raw.ritual);
|
|
56
|
-
if (raw.classes) spell.classes = raw.classes.map(String);
|
|
57
|
-
if (raw.description) spell.description = raw.description;
|
|
58
|
-
if (raw.at_higher_levels) spell.at_higher_levels = raw.at_higher_levels.map(String);
|
|
59
|
-
if (raw.damage) spell.damage = { types: raw.damage.types.map(String) };
|
|
60
|
-
if (raw.saving_throw) spell.saving_throw = { ability: raw.saving_throw.ability };
|
|
61
|
-
if (raw.casting_options) {
|
|
62
|
-
spell.casting_options = raw.casting_options.map((opt) => {
|
|
63
|
-
const co = { type: opt.type };
|
|
64
|
-
if (opt.damage_roll !== void 0) co.damage_roll = opt.damage_roll;
|
|
65
|
-
if (opt.target_count !== void 0) co.target_count = opt.target_count;
|
|
66
|
-
if (opt.duration !== void 0) co.duration = opt.duration;
|
|
67
|
-
if (opt.range !== void 0) co.range = opt.range;
|
|
68
|
-
if (opt.concentration !== void 0) co.concentration = opt.concentration;
|
|
69
|
-
if (opt.shape_size !== void 0) co.shape_size = opt.shape_size;
|
|
70
|
-
if (opt.desc !== void 0) co.desc = opt.desc;
|
|
71
|
-
return co;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
if (meta.source) spell.source = meta.source;
|
|
75
|
-
if (meta.edition) spell.edition = meta.edition;
|
|
76
|
-
return { success: true, data: spell };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export {
|
|
80
|
-
parseSpell
|
|
81
|
-
};
|
package/dist/chunk-NXR3BD2V.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// src/schemas/feature-effect-schema.ts
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
var featureEffectSchema = z.discriminatedUnion("kind", [
|
|
4
|
-
z.object({ kind: z.literal("initiative-bonus"), value: z.number().int() }),
|
|
5
|
-
z.object({ kind: z.literal("immune-condition"), condition: z.string().min(1), while: z.string().optional() }),
|
|
6
|
-
z.object({ kind: z.literal("resistance"), damage_type: z.string().min(1) }),
|
|
7
|
-
z.object({ kind: z.literal("hp-per-level-bonus"), value: z.number().int() }),
|
|
8
|
-
z.object({
|
|
9
|
-
kind: z.literal("speed-bonus"),
|
|
10
|
-
mode: z.enum(["walk", "fly", "swim", "climb", "burrow"]),
|
|
11
|
-
value: z.number().int(),
|
|
12
|
-
// when true, value is an absolute floor (Math.max), not additive; currently
|
|
13
|
-
// only surfaced for mode:"walk" — other modes have no derived speed yet.
|
|
14
|
-
set: z.boolean().optional()
|
|
15
|
-
}),
|
|
16
|
-
z.object({
|
|
17
|
-
kind: z.literal("sense"),
|
|
18
|
-
type: z.enum(["darkvision", "blindsight", "tremorsense", "truesight"]),
|
|
19
|
-
range: z.number().int().nonnegative()
|
|
20
|
-
}),
|
|
21
|
-
z.object({
|
|
22
|
-
kind: z.literal("apply-condition"),
|
|
23
|
-
condition: z.string().min(1),
|
|
24
|
-
duration: z.string().optional(),
|
|
25
|
-
ends_on: z.array(z.string()).optional(),
|
|
26
|
-
save_repeat: z.object({
|
|
27
|
-
ability: z.string().min(1),
|
|
28
|
-
timing: z.string().min(1)
|
|
29
|
-
}).optional()
|
|
30
|
-
}),
|
|
31
|
-
z.object({
|
|
32
|
-
kind: z.literal("damage-bonus"),
|
|
33
|
-
// intentionally an open string, NOT a damage-type enum: must accept the
|
|
34
|
-
// literal "chosen" (player-selected damage type at action time) alongside
|
|
35
|
-
// canonical damage types. Do not tighten to an enum.
|
|
36
|
-
damage_type: z.string().min(1),
|
|
37
|
-
amount: z.string().min(1),
|
|
38
|
-
applies_to: z.enum(["weapon", "spell", "all"]).optional(),
|
|
39
|
-
condition: z.string().optional()
|
|
40
|
-
}),
|
|
41
|
-
z.object({
|
|
42
|
-
kind: z.literal("proficiency"),
|
|
43
|
-
proficiency_type: z.enum(["skill", "tool", "language", "saving-throw", "armor", "weapon"]),
|
|
44
|
-
value: z.string().min(1)
|
|
45
|
-
}),
|
|
46
|
-
z.object({
|
|
47
|
-
kind: z.literal("ac-bonus"),
|
|
48
|
-
value: z.number().int(),
|
|
49
|
-
requires_armor: z.boolean().optional()
|
|
50
|
-
}),
|
|
51
|
-
z.object({
|
|
52
|
-
kind: z.literal("unarmored-ac"),
|
|
53
|
-
abilities: z.array(z.enum(["str", "dex", "con", "int", "wis", "cha"])),
|
|
54
|
-
base: z.number().int().optional(),
|
|
55
|
-
allow_shield: z.boolean().optional()
|
|
56
|
-
}),
|
|
57
|
-
z.object({
|
|
58
|
-
kind: z.literal("weapon-ability"),
|
|
59
|
-
ability: z.union([z.enum(["str", "dex", "con", "int", "wis", "cha"]), z.literal("spellcasting")]),
|
|
60
|
-
weapons: z.union([z.literal("chosen"), z.string(), z.array(z.string())]).optional()
|
|
61
|
-
}),
|
|
62
|
-
z.object({
|
|
63
|
-
kind: z.literal("roll-modifier"),
|
|
64
|
-
mode: z.enum(["advantage", "disadvantage"]),
|
|
65
|
-
roll: z.enum(["ability-check", "saving-throw", "attack"]),
|
|
66
|
-
scope: z.string().optional(),
|
|
67
|
-
condition: z.string().optional()
|
|
68
|
-
}),
|
|
69
|
-
z.object({ kind: z.literal("extra-attack"), count: z.number().int().positive() }),
|
|
70
|
-
z.object({
|
|
71
|
-
kind: z.literal("crit-range"),
|
|
72
|
-
min_roll: z.number().int().min(2).max(20),
|
|
73
|
-
applies_to: z.enum(["weapon", "spell", "all"]).optional(),
|
|
74
|
-
condition: z.string().optional()
|
|
75
|
-
}),
|
|
76
|
-
z.object({
|
|
77
|
-
kind: z.literal("reroll-damage"),
|
|
78
|
-
max_reroll: z.number().int().positive(),
|
|
79
|
-
applies_to: z.enum(["weapon", "spell", "all"]).optional(),
|
|
80
|
-
once_per_die: z.boolean().optional()
|
|
81
|
-
}),
|
|
82
|
-
z.object({
|
|
83
|
-
kind: z.literal("attack-rule"),
|
|
84
|
-
flag: z.enum(["no-ranged-in-melee-disadvantage"])
|
|
85
|
-
})
|
|
86
|
-
]);
|
|
87
|
-
|
|
88
|
-
export {
|
|
89
|
-
featureEffectSchema
|
|
90
|
-
};
|
package/dist/chunk-Q5K6LWBZ.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
choiceSchema
|
|
3
|
-
} from "./chunk-NXSWH3AE.js";
|
|
4
|
-
import {
|
|
5
|
-
featureEffectSchema
|
|
6
|
-
} from "./chunk-NXR3BD2V.js";
|
|
7
|
-
|
|
8
|
-
// src/feat/feat.schema.ts
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
var abilityEnum = z.enum(["str", "dex", "con", "int", "wis", "cha"]);
|
|
11
|
-
var editionEnum = z.enum(["2014", "2024"]);
|
|
12
|
-
var categoryEnum = z.enum(["origin", "general", "fighting-style", "epic-boon"]);
|
|
13
|
-
var prerequisiteSchema = z.discriminatedUnion("kind", [
|
|
14
|
-
z.object({ kind: z.literal("ability"), ability: abilityEnum, min: z.number().int().positive() }),
|
|
15
|
-
z.object({ kind: z.literal("level"), min: z.number().int().positive() }),
|
|
16
|
-
z.object({ kind: z.literal("spellcaster") }),
|
|
17
|
-
z.object({
|
|
18
|
-
kind: z.literal("proficiency"),
|
|
19
|
-
proficiency_type: z.enum(["armor", "weapon", "tool", "skill", "saving-throw"]),
|
|
20
|
-
value: z.string().min(1)
|
|
21
|
-
}),
|
|
22
|
-
z.object({ kind: z.literal("race"), slug: z.string().min(1) }),
|
|
23
|
-
z.object({ kind: z.literal("class"), slug: z.string().min(1) })
|
|
24
|
-
]);
|
|
25
|
-
var featEntitySchema = z.object({
|
|
26
|
-
slug: z.string().min(1),
|
|
27
|
-
name: z.string().min(1),
|
|
28
|
-
edition: editionEnum,
|
|
29
|
-
source: z.string().min(1),
|
|
30
|
-
category: categoryEnum,
|
|
31
|
-
description: z.string(),
|
|
32
|
-
prerequisites: z.array(prerequisiteSchema),
|
|
33
|
-
benefits: z.array(z.string()),
|
|
34
|
-
effects: z.array(featureEffectSchema),
|
|
35
|
-
grants_asi: z.object({
|
|
36
|
-
amount: z.number().int().positive(),
|
|
37
|
-
pool: z.array(abilityEnum).optional()
|
|
38
|
-
}).nullable(),
|
|
39
|
-
repeatable: z.boolean(),
|
|
40
|
-
choices: z.array(choiceSchema)
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export {
|
|
44
|
-
featEntitySchema
|
|
45
|
-
};
|
package/dist/chunk-TZK36BU7.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// src/pc/conditions.constants.ts
|
|
2
|
-
var CONDITION_SLUGS = [
|
|
3
|
-
"blinded",
|
|
4
|
-
"charmed",
|
|
5
|
-
"deafened",
|
|
6
|
-
"frightened",
|
|
7
|
-
"grappled",
|
|
8
|
-
"incapacitated",
|
|
9
|
-
"invisible",
|
|
10
|
-
"paralyzed",
|
|
11
|
-
"petrified",
|
|
12
|
-
"poisoned",
|
|
13
|
-
"prone",
|
|
14
|
-
"restrained",
|
|
15
|
-
"stunned",
|
|
16
|
-
"unconscious"
|
|
17
|
-
];
|
|
18
|
-
var CONDITION_DISPLAY_NAMES = {
|
|
19
|
-
blinded: "Blinded",
|
|
20
|
-
charmed: "Charmed",
|
|
21
|
-
deafened: "Deafened",
|
|
22
|
-
frightened: "Frightened",
|
|
23
|
-
grappled: "Grappled",
|
|
24
|
-
incapacitated: "Incapacitated",
|
|
25
|
-
invisible: "Invisible",
|
|
26
|
-
paralyzed: "Paralyzed",
|
|
27
|
-
petrified: "Petrified",
|
|
28
|
-
poisoned: "Poisoned",
|
|
29
|
-
prone: "Prone",
|
|
30
|
-
restrained: "Restrained",
|
|
31
|
-
stunned: "Stunned",
|
|
32
|
-
unconscious: "Unconscious"
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export {
|
|
36
|
-
CONDITION_SLUGS,
|
|
37
|
-
CONDITION_DISPLAY_NAMES
|
|
38
|
-
};
|
package/dist/chunk-W7HWMMBF.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
poolGrantSchema,
|
|
3
|
-
selectionPoolSchema,
|
|
4
|
-
tabDeclSchema
|
|
5
|
-
} from "./chunk-4TIJKN6O.js";
|
|
6
|
-
import {
|
|
7
|
-
featureSchema
|
|
8
|
-
} from "./chunk-CZPMTQOY.js";
|
|
9
|
-
import {
|
|
10
|
-
resourceSchema
|
|
11
|
-
} from "./chunk-PZOWBI3B.js";
|
|
12
|
-
|
|
13
|
-
// src/subclass/subclass.schema.ts
|
|
14
|
-
import { z } from "zod";
|
|
15
|
-
var editionEnum = z.enum(["2014", "2024"]);
|
|
16
|
-
var wikilinkRegex = /^\[\[[^[\]]+\]\]$/;
|
|
17
|
-
var casterTypeEnum = z.enum(["full", "half", "third", "pact"]);
|
|
18
|
-
var abilityEnum = z.enum(["str", "dex", "con", "int", "wis", "cha"]);
|
|
19
|
-
var spellcastingSchema = z.object({
|
|
20
|
-
caster_type: casterTypeEnum,
|
|
21
|
-
ability: abilityEnum,
|
|
22
|
-
preparation: z.enum(["known", "prepared"]),
|
|
23
|
-
spell_list: z.string().min(1)
|
|
24
|
-
});
|
|
25
|
-
var subclassTableRowSchema = z.object({
|
|
26
|
-
columns: z.record(z.string(), z.union([z.string(), z.number()])).optional()
|
|
27
|
-
});
|
|
28
|
-
var subclassEntitySchema = z.object({
|
|
29
|
-
slug: z.string().min(1),
|
|
30
|
-
name: z.string().min(1),
|
|
31
|
-
parent_class: z.string().regex(wikilinkRegex, "parent_class must be a wikilink like [[rogue]]"),
|
|
32
|
-
edition: editionEnum,
|
|
33
|
-
source: z.string().min(1),
|
|
34
|
-
description: z.string(),
|
|
35
|
-
spellcasting: spellcastingSchema.nullable().optional(),
|
|
36
|
-
table: z.record(z.string(), subclassTableRowSchema).optional(),
|
|
37
|
-
features_by_level: z.record(z.string(), z.array(featureSchema)),
|
|
38
|
-
resources: z.array(resourceSchema),
|
|
39
|
-
selection_pools: z.array(selectionPoolSchema).optional(),
|
|
40
|
-
pool_grants: z.array(poolGrantSchema).optional(),
|
|
41
|
-
tabs: z.array(tabDeclSchema).optional()
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
export {
|
|
45
|
-
subclassEntitySchema
|
|
46
|
-
};
|
package/dist/chunk-Y4I74YEG.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// src/spell/spell.schema.ts
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
var castingOptionSchema = z.object({
|
|
4
|
-
type: z.string(),
|
|
5
|
-
damage_roll: z.string().optional(),
|
|
6
|
-
target_count: z.number().optional(),
|
|
7
|
-
duration: z.string().optional(),
|
|
8
|
-
range: z.number().optional(),
|
|
9
|
-
concentration: z.boolean().optional(),
|
|
10
|
-
shape_size: z.number().optional(),
|
|
11
|
-
desc: z.string().optional()
|
|
12
|
-
});
|
|
13
|
-
var spellEntitySchema = z.object({
|
|
14
|
-
name: z.string().min(1),
|
|
15
|
-
level: z.number().int().min(0).optional(),
|
|
16
|
-
school: z.string().optional(),
|
|
17
|
-
casting_time: z.string().optional(),
|
|
18
|
-
range: z.string().optional(),
|
|
19
|
-
components: z.string().optional(),
|
|
20
|
-
duration: z.string().optional(),
|
|
21
|
-
concentration: z.boolean().optional(),
|
|
22
|
-
ritual: z.boolean().optional(),
|
|
23
|
-
classes: z.array(z.string()).optional(),
|
|
24
|
-
description: z.string().optional(),
|
|
25
|
-
at_higher_levels: z.array(z.string()).optional(),
|
|
26
|
-
damage: z.object({ types: z.array(z.string()) }).optional(),
|
|
27
|
-
saving_throw: z.object({ ability: z.string() }).optional(),
|
|
28
|
-
casting_options: z.array(castingOptionSchema).optional()
|
|
29
|
-
}).strict();
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
spellEntitySchema
|
|
33
|
-
};
|