@archivist-gg/dnd5e 0.3.19 → 0.3.26
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/LICENSE +48 -21
- package/README.md +26 -48
- package/dist/armor/armor.codec.d.ts +0 -7
- package/dist/armor/armor.codec.js +1 -9
- package/dist/armor/armor.parser.js +1 -8
- package/dist/armor/armor.schema.js +1 -7
- package/dist/armor/armor.types.d.ts +0 -3
- package/dist/background/background.codec.d.ts +0 -6
- package/dist/background/background.codec.js +1 -12
- package/dist/background/background.parser.js +1 -11
- package/dist/background/background.schema.js +1 -12
- package/dist/background/background.types.d.ts +0 -5
- package/dist/chunk-2EOGK6R6.js +1 -0
- package/dist/chunk-2HRRH3WL.js +1 -0
- package/dist/chunk-2NUDWOFG.js +1 -0
- package/dist/chunk-3LWOVRLA.js +1 -0
- package/dist/chunk-3QQOATV3.js +1 -0
- package/dist/chunk-4E2GIWJE.js +1 -0
- package/dist/chunk-4GN3GYMP.js +1 -0
- package/dist/chunk-4IAMSRHD.js +1 -0
- package/dist/chunk-4JEF3CET.js +1 -0
- package/dist/chunk-4KVVAENP.js +1 -0
- package/dist/chunk-4SYAKWY4.js +1 -0
- package/dist/chunk-56JK6VCL.js +1 -0
- package/dist/chunk-5XDCM6YK.js +1 -0
- package/dist/chunk-63YJPWTM.js +1 -0
- package/dist/chunk-6R46KYGU.js +1 -0
- package/dist/chunk-6W253VHH.js +1 -0
- package/dist/chunk-72PRMZRD.js +1 -0
- package/dist/chunk-757KM22B.js +1 -0
- package/dist/chunk-7EL3GWWJ.js +1 -0
- package/dist/chunk-7FPQJDFD.js +1 -0
- package/dist/chunk-AINRPPLH.js +1 -0
- package/dist/chunk-BC52J4LA.js +1 -0
- package/dist/chunk-BCXGB4HP.js +1 -0
- package/dist/chunk-BREHZNTL.js +1 -0
- package/dist/chunk-BZ6BGGZS.js +1 -0
- package/dist/chunk-CAPYNIGK.js +1 -0
- package/dist/chunk-CCAVZANF.js +1 -0
- package/dist/chunk-CCFIINBA.js +1 -0
- package/dist/chunk-CEHL7PPC.js +1 -0
- package/dist/chunk-CMIEZQL4.js +1 -0
- package/dist/chunk-CNMHADNV.js +1 -0
- package/dist/chunk-CSTAQQGX.js +1 -0
- package/dist/chunk-DTB7YBMZ.js +1 -0
- package/dist/chunk-DVUXUIPV.js +1 -0
- package/dist/chunk-DZITM5AG.js +1 -0
- package/dist/chunk-E3MS4M3N.js +1 -0
- package/dist/chunk-E7KFJLDR.js +1 -0
- package/dist/chunk-EAARMPCW.js +1 -0
- package/dist/chunk-EPA24PVZ.js +1 -0
- package/dist/chunk-ETDMOGFO.js +1 -0
- package/dist/chunk-EVT7MGAC.js +1 -0
- package/dist/chunk-FOLHTMSC.js +1 -0
- package/dist/chunk-GCYUCIDN.js +1 -0
- package/dist/chunk-GD7WRCNH.js +1 -0
- package/dist/chunk-GGQDQSIF.js +1 -0
- package/dist/chunk-GIQLIBC7.js +1 -0
- package/dist/chunk-HX7WBOKR.js +1 -0
- package/dist/chunk-I26FHSI6.js +1 -0
- package/dist/chunk-IHPLT2ZT.js +1 -0
- package/dist/chunk-J3RP5C7L.js +1 -0
- package/dist/chunk-J5GL6FLP.js +1 -0
- package/dist/chunk-JXDX2DKF.js +1 -0
- package/dist/chunk-KEXSF3CH.js +1 -0
- package/dist/chunk-KM75CC6Q.js +1 -0
- package/dist/chunk-L2DXF7YS.js +1 -0
- package/dist/chunk-LHH5XSEA.js +1 -0
- package/dist/chunk-LJNT3PJP.js +1 -0
- package/dist/chunk-LR6UMA5V.js +1 -0
- package/dist/chunk-M6RPOLKS.js +1 -0
- package/dist/chunk-MGGKZGLG.js +1 -0
- package/dist/chunk-NEMX7QGG.js +1 -0
- package/dist/chunk-NIWLD33X.js +1 -0
- package/dist/chunk-NU2Z7MTS.js +1 -0
- package/dist/chunk-NYPH7RQN.js +1 -0
- package/dist/chunk-NYTR6NJS.js +1 -0
- package/dist/chunk-O2QZ73GA.js +1 -0
- package/dist/chunk-O776WL7O.js +1 -0
- package/dist/chunk-ONCXJMJM.js +1 -0
- package/dist/chunk-OTRH62HY.js +1 -0
- package/dist/chunk-PFQPP77Q.js +1 -0
- package/dist/chunk-PKIMOVQG.js +1 -0
- package/dist/chunk-PZ3ZZ5H5.js +1 -0
- package/dist/chunk-PZ4L2EEG.js +1 -0
- package/dist/chunk-QMEKQTUT.js +1 -0
- package/dist/chunk-QVWT67WA.js +1 -0
- package/dist/chunk-RE5Z5RNK.js +1 -0
- package/dist/chunk-RHIEOYDX.js +1 -0
- package/dist/chunk-RQZCGXUZ.js +1 -0
- package/dist/chunk-S5UCI27C.js +1 -0
- package/dist/chunk-SEOASDO4.js +1 -0
- package/dist/chunk-SFK57JAA.js +1 -0
- package/dist/chunk-SU4MEZ5P.js +1 -0
- package/dist/chunk-T55DELVL.js +1 -0
- package/dist/chunk-TKIEPC6F.js +1 -0
- package/dist/chunk-UBUKCRZ3.js +1 -0
- package/dist/chunk-VA3ZWV7C.js +1 -0
- package/dist/chunk-VIP3FH2O.js +1 -0
- package/dist/chunk-VTQ4RWEG.js +1 -0
- package/dist/chunk-VVJXZZ4Z.js +1 -0
- package/dist/chunk-WAUNLUFQ.js +1 -0
- package/dist/chunk-X22SISGM.js +1 -0
- package/dist/chunk-XKJXT2PN.js +1 -0
- package/dist/chunk-XPF53K54.js +1 -0
- package/dist/chunk-YGH7S5ZF.js +1 -0
- package/dist/chunk-ZE46ADXS.js +1 -0
- package/dist/chunk-ZI3FEUX3.js +1 -0
- package/dist/chunk-ZS5BMNXC.js +1 -0
- package/dist/chunk-ZVL5FXXO.js +1 -0
- package/dist/class/class.codec.d.ts +0 -7
- package/dist/class/class.codec.js +1 -18
- package/dist/class/class.parser.js +1 -17
- package/dist/class/class.schema.d.ts +4 -3
- package/dist/class/class.schema.js +1 -15
- package/dist/class/class.slug.d.ts +0 -11
- package/dist/class/class.slug.js +1 -8
- package/dist/class/class.standard-array.d.ts +0 -7
- package/dist/class/class.standard-array.js +1 -20
- package/dist/class/class.types.d.ts +0 -20
- package/dist/condition/condition.codec.d.ts +0 -6
- package/dist/condition/condition.parser.d.ts +0 -10
- package/dist/condition/condition.parser.js +1 -7
- package/dist/condition/condition.schema.d.ts +0 -16
- package/dist/condition/condition.types.d.ts +0 -3
- package/dist/data-srd/index.generated.js +1 -146
- package/dist/dnd/amount-text.d.ts +3 -30
- package/dist/dnd/amount-text.js +1 -15
- package/dist/dnd/constants.d.ts +0 -18
- package/dist/dnd/constants.js +1 -42
- package/dist/dnd/formula-tags.d.ts +0 -2
- package/dist/dnd/formula-tags.js +1 -119
- package/dist/dnd/math.d.ts +0 -26
- package/dist/dnd/math.js +1 -45
- package/dist/dnd/prose-tags.d.ts +1 -15
- package/dist/dnd/prose-tags.js +1 -18
- package/dist/dnd/resource-die.d.ts +0 -4
- package/dist/dnd/resource-die.js +1 -17
- package/dist/dnd/resource-formula.d.ts +0 -43
- package/dist/dnd/resource-formula.js +1 -14
- package/dist/dnd/resource-words.d.ts +0 -2
- package/dist/dnd/resource-words.js +1 -30
- package/dist/dnd/srd-tag-converter.d.ts +0 -21
- package/dist/dnd/srd-tag-converter.js +1 -12
- package/dist/dnd/tag-grammar.js +1 -12
- package/dist/dnd/warn-once.js +1 -8
- package/dist/encounter/encounter.ai-schema.js +1 -8
- package/dist/entities/base-item-resolver.d.ts +0 -26
- package/dist/entities/base-item-resolver.js +1 -11
- package/dist/entities/registry-revision.d.ts +0 -15
- package/dist/entities/registry-revision.js +1 -10
- package/dist/entities/slug.d.ts +1 -31
- package/dist/entities/slug.js +1 -12
- package/dist/entities/wikilink-display.d.ts +0 -2
- package/dist/entities/wikilink-display.js +1 -10
- package/dist/feat/feat.category-codes.d.ts +1 -26
- package/dist/feat/feat.category-codes.js +1 -14
- package/dist/feat/feat.codec.d.ts +0 -6
- package/dist/feat/feat.codec.js +1 -12
- package/dist/feat/feat.parser.js +1 -11
- package/dist/feat/feat.schema.d.ts +46 -4
- package/dist/feat/feat.schema.js +1 -10
- package/dist/feat/feat.types.d.ts +0 -6
- package/dist/index.js +45 -141495
- package/dist/inline-tag-parser.js +1 -6
- package/dist/item/item.actions-map.d.ts +4 -63
- package/dist/item/item.actions-map.js +1 -10
- package/dist/item/item.ai-schema.js +1 -6
- package/dist/item/item.attunement.d.ts +0 -14
- package/dist/item/item.attunement.js +1 -6
- package/dist/item/item.bonuses.js +1 -10
- package/dist/item/item.codec.js +1 -9
- package/dist/item/item.conditions.d.ts +0 -7
- package/dist/item/item.conditions.js +1 -11
- package/dist/item/item.conditions.types.d.ts +0 -2
- package/dist/item/item.cost.js +1 -29
- package/dist/item/item.enrichment.js +1 -9
- package/dist/item/item.icon.d.ts +0 -8
- package/dist/item/item.icon.js +1 -211
- package/dist/item/item.parser.js +1 -8
- package/dist/item/item.schema.d.ts +5 -0
- package/dist/item/item.schema.js +1 -11
- package/dist/item/item.types.d.ts +5 -28
- package/dist/monster/monster.ai-schema.js +1 -6
- package/dist/monster/monster.codec.d.ts +0 -10
- package/dist/monster/monster.enrichment.js +1 -19
- package/dist/monster/monster.format.d.ts +0 -69
- package/dist/monster/monster.format.js +1 -78
- package/dist/monster/monster.parser.d.ts +0 -4
- package/dist/monster/monster.parser.js +1 -15
- package/dist/monster/monster.resolve.d.ts +0 -4
- package/dist/monster/monster.schema.d.ts +0 -9
- package/dist/monster/monster.schema.js +1 -34
- package/dist/monster/monster.types.d.ts +0 -3
- package/dist/monster/monster.types.js +1 -1
- package/dist/optional-feature/optional-feature.codec.d.ts +0 -11
- package/dist/optional-feature/optional-feature.codec.js +1 -13
- package/dist/optional-feature/optional-feature.parser.js +1 -12
- package/dist/optional-feature/optional-feature.schema.d.ts +44 -3
- package/dist/optional-feature/optional-feature.schema.js +1 -15
- package/dist/pack.d.ts +0 -9
- package/dist/pc/conditions.constants.js +1 -6
- package/dist/pc/decision-recognizer.js +1 -8
- package/dist/pc/pc.additional-spells.d.ts +0 -24
- package/dist/pc/pc.additional-spells.js +1 -26
- package/dist/pc/pc.amount-bindings.d.ts +3 -28
- package/dist/pc/pc.amount-bindings.js +1 -28
- package/dist/pc/pc.asi-flatten.d.ts +0 -59
- package/dist/pc/pc.asi-flatten.js +1 -16
- package/dist/pc/pc.conditions.d.ts +1 -0
- package/dist/pc/pc.conditions.js +1 -6
- package/dist/pc/pc.containment.d.ts +0 -5
- package/dist/pc/pc.containment.js +1 -24
- package/dist/pc/pc.decision-engine.d.ts +6 -145
- package/dist/pc/pc.decision-engine.js +1 -55
- package/dist/pc/pc.defense-normalize.d.ts +0 -10
- package/dist/pc/pc.defense-normalize.js +1 -6
- package/dist/pc/pc.entry-overrides.d.ts +19 -58
- package/dist/pc/pc.entry-overrides.js +1 -41
- package/dist/pc/pc.equipment.d.ts +2 -22
- package/dist/pc/pc.equipment.js +1 -34
- package/dist/pc/pc.feature-effects.d.ts +27 -281
- package/dist/pc/pc.feature-effects.js +1 -39
- package/dist/pc/pc.formula-context.js +1 -11
- package/dist/pc/pc.infusions.d.ts +0 -65
- package/dist/pc/pc.infusions.js +1 -65
- package/dist/pc/pc.item-effects.d.ts +19 -0
- package/dist/pc/pc.item-effects.js +1 -0
- package/dist/pc/pc.member-choices.d.ts +3 -66
- package/dist/pc/pc.member-choices.js +1 -39
- package/dist/pc/pc.parser.js +1 -58
- package/dist/pc/pc.pools.d.ts +7 -10
- package/dist/pc/pc.pools.js +1 -27
- package/dist/pc/pc.proficiencies.d.ts +0 -40
- package/dist/pc/pc.proficiencies.js +1 -156
- package/dist/pc/pc.proficiency-grants.d.ts +3 -27
- package/dist/pc/pc.proficiency-normalize.d.ts +0 -35
- package/dist/pc/pc.proficiency-normalize.js +1 -18
- package/dist/pc/pc.proficiency-query.d.ts +0 -13
- package/dist/pc/pc.proficiency-query.js +1 -27
- package/dist/pc/pc.recalc.d.ts +8 -131
- package/dist/pc/pc.recalc.js +1 -1042
- package/dist/pc/pc.resolver.d.ts +9 -107
- package/dist/pc/pc.resolver.js +1 -60
- package/dist/pc/pc.resource-seed.d.ts +0 -8
- package/dist/pc/pc.resource-seed.js +1 -42
- package/dist/pc/pc.resources.d.ts +1 -59
- package/dist/pc/pc.resources.js +1 -23
- package/dist/pc/pc.rest.d.ts +1 -20
- package/dist/pc/pc.rest.js +1 -231
- package/dist/pc/pc.schema.d.ts +20 -2
- package/dist/pc/pc.schema.js +1 -9
- package/dist/pc/pc.slotting.d.ts +0 -29
- package/dist/pc/pc.slotting.js +1 -28
- package/dist/pc/pc.speeds.d.ts +36 -0
- package/dist/pc/pc.spell-scope.d.ts +0 -16
- package/dist/pc/pc.spellcasting.d.ts +0 -70
- package/dist/pc/pc.spellcasting.js +1 -28
- package/dist/pc/pc.table-column.d.ts +3 -22
- package/dist/pc/pc.table-column.js +1 -18
- package/dist/pc/pc.tool-picks.d.ts +0 -27
- package/dist/pc/pc.tool-picks.js +1 -18
- package/dist/pc/pc.types.d.ts +59 -374
- package/dist/pc/pc.weapon-grant.d.ts +0 -6
- package/dist/pc/pool-layout.d.ts +0 -39
- package/dist/pc/pool-layout.js +1 -18
- package/dist/pc/resource-equivalents.d.ts +2 -40
- package/dist/pc/roll-scope.js +1 -8
- package/dist/pc/roll-tag-labels.d.ts +0 -32
- package/dist/pc/roll-tag-labels.js +1 -17
- package/dist/pc/spell-source.d.ts +0 -11
- package/dist/pc/spell-source.js +1 -8
- package/dist/race/race.codec.d.ts +0 -6
- package/dist/race/race.codec.js +1 -15
- package/dist/race/race.parser.js +1 -14
- package/dist/race/race.schema.d.ts +0 -8
- package/dist/race/race.schema.js +1 -14
- package/dist/race/race.structural.d.ts +0 -6
- package/dist/race/race.structural.js +1 -6
- package/dist/race/race.types.d.ts +0 -8
- package/dist/schemas/attack-schema.d.ts +5 -0
- package/dist/schemas/caster-type-schema.d.ts +1 -6
- package/dist/schemas/caster-type-schema.js +1 -6
- package/dist/schemas/choice-schema.js +1 -7
- package/dist/schemas/duration-schema.d.ts +0 -2
- package/dist/schemas/duration-schema.js +1 -6
- package/dist/schemas/entity-extras-schema.d.ts +0 -30
- package/dist/schemas/entity-extras-schema.js +1 -10
- package/dist/schemas/equipment-grant-schema.d.ts +0 -2
- package/dist/schemas/equipment-grant-schema.js +1 -12
- package/dist/schemas/feature-alias.d.ts +0 -27
- package/dist/schemas/feature-effect-schema.d.ts +44 -3
- package/dist/schemas/feature-effect-schema.js +1 -6
- package/dist/schemas/feature-schema.d.ts +0 -6
- package/dist/schemas/feature-schema.js +1 -12
- package/dist/schemas/resource-schema.d.ts +1 -34
- package/dist/schemas/resource-schema.js +1 -12
- package/dist/schemas/selection-pool-schema.js +1 -10
- package/dist/spell/casting-time.d.ts +0 -15
- package/dist/spell/casting-time.js +1 -6
- package/dist/spell/spell.access.d.ts +0 -6
- package/dist/spell/spell.access.js +1 -45
- package/dist/spell/spell.ai-schema.js +1 -6
- package/dist/spell/spell.codec.js +1 -9
- package/dist/spell/spell.enrichment.js +1 -9
- package/dist/spell/spell.filter.d.ts +0 -5
- package/dist/spell/spell.filter.js +1 -75
- package/dist/spell/spell.parser.d.ts +0 -31
- package/dist/spell/spell.parser.js +1 -16
- package/dist/spell/spell.scaling.d.ts +0 -46
- package/dist/spell/spell.scaling.js +1 -79
- package/dist/spell/spell.schema.js +1 -7
- package/dist/spell/spell.types.d.ts +0 -7
- package/dist/srd/retired-items.d.ts +0 -4
- package/dist/srd/retired-items.js +1 -11
- package/dist/srd-store.d.ts +0 -33
- package/dist/subclass/subclass.codec.d.ts +0 -8
- package/dist/subclass/subclass.codec.js +1 -17
- package/dist/subclass/subclass.parser.js +1 -16
- package/dist/subclass/subclass.schema.d.ts +2 -1
- package/dist/subclass/subclass.schema.js +1 -14
- package/dist/subclass/subclass.types.d.ts +0 -3
- package/dist/types/attack.d.ts +2 -0
- package/dist/types/casting-option.d.ts +0 -4
- package/dist/types/choice.d.ts +1 -72
- package/dist/types/choice.js +1 -24
- package/dist/types/edition.d.ts +0 -3
- package/dist/types/equipment-grant.d.ts +1 -27
- package/dist/types/equipment-grant.js +1 -12
- package/dist/types/feature-effect.d.ts +11 -23
- package/dist/types/feature.d.ts +0 -22
- package/dist/types/optional-feature.types.d.ts +1 -31
- package/dist/types/resource.d.ts +1 -21
- package/dist/types/selection-pool.d.ts +0 -24
- package/dist/weapon/weapon-mastery.d.ts +0 -1
- package/dist/weapon/weapon.classify.d.ts +0 -11
- package/dist/weapon/weapon.classify.js +1 -7
- package/dist/weapon/weapon.codec.d.ts +0 -9
- package/dist/weapon/weapon.codec.js +1 -9
- package/dist/weapon/weapon.parser.js +1 -8
- package/dist/weapon/weapon.schema.js +1 -7
- package/dist/weapon/weapon.types.d.ts +0 -3
- package/package.json +3 -3
- package/src/data-srd/ATTRIBUTION.md +1 -1
- package/dist/chunk-2FRUSVZS.js +0 -489
- package/dist/chunk-2LULMQTF.js +0 -14
- package/dist/chunk-3LWMFYKS.js +0 -57
- package/dist/chunk-3SFGWFVQ.js +0 -19
- package/dist/chunk-3SIUAFDQ.js +0 -18
- package/dist/chunk-3TM34RSJ.js +0 -23
- package/dist/chunk-4J6DS3EJ.js +0 -30
- package/dist/chunk-4U55VNC7.js +0 -22
- package/dist/chunk-5GKJAUMX.js +0 -59
- package/dist/chunk-5JXFJ5AU.js +0 -26
- package/dist/chunk-64VNLMSG.js +0 -375
- package/dist/chunk-656QCX4U.js +0 -22
- package/dist/chunk-6GNXYAYP.js +0 -25
- package/dist/chunk-6PXTNCBP.js +0 -133
- package/dist/chunk-6X2NV665.js +0 -33
- package/dist/chunk-7Q2VPKCD.js +0 -181
- package/dist/chunk-7XJHI5H5.js +0 -709
- package/dist/chunk-A54HHCWW.js +0 -67
- package/dist/chunk-B2QHP6UF.js +0 -159
- package/dist/chunk-B3DP42OM.js +0 -55
- package/dist/chunk-BJGOSM76.js +0 -18
- package/dist/chunk-BJWSOQUC.js +0 -133
- package/dist/chunk-CJYCVNW2.js +0 -7
- package/dist/chunk-CM5CWO4K.js +0 -735
- package/dist/chunk-DEEHHLAP.js +0 -271
- package/dist/chunk-DPUJDOKV.js +0 -365
- package/dist/chunk-EJD47JHL.js +0 -1838
- package/dist/chunk-EJP263OP.js +0 -186
- package/dist/chunk-EVMUJYUD.js +0 -195
- package/dist/chunk-EYX4JMAU.js +0 -101
- package/dist/chunk-FC4IGH5Y.js +0 -18
- package/dist/chunk-FJYBLXV7.js +0 -89
- package/dist/chunk-FMUD3LDV.js +0 -19
- package/dist/chunk-FMYWORTP.js +0 -93
- package/dist/chunk-FVXLP7P3.js +0 -18
- package/dist/chunk-G6MHJDVT.js +0 -41
- package/dist/chunk-GVWEFECG.js +0 -18
- package/dist/chunk-HHBD4SQ6.js +0 -24
- package/dist/chunk-HS6FIOLP.js +0 -52
- package/dist/chunk-HY2SRSVM.js +0 -23
- package/dist/chunk-IHE6KVC3.js +0 -13
- package/dist/chunk-IN4M4X7P.js +0 -34
- package/dist/chunk-IUAAXXNO.js +0 -58
- package/dist/chunk-JXWNXIIZ.js +0 -219
- package/dist/chunk-K5NJBTE2.js +0 -18
- package/dist/chunk-KR6JF3BF.js +0 -14
- package/dist/chunk-KSTV7J2U.js +0 -112
- package/dist/chunk-KU3YLF6D.js +0 -106
- package/dist/chunk-LBEXLN6I.js +0 -91
- package/dist/chunk-LHZXYFBU.js +0 -94
- package/dist/chunk-LICYHPI3.js +0 -237
- package/dist/chunk-LNT64X7C.js +0 -81
- package/dist/chunk-LSLSG67V.js +0 -31
- package/dist/chunk-LVQLWRCU.js +0 -15
- package/dist/chunk-MYY2C5MB.js +0 -233
- package/dist/chunk-NKZMQV2C.js +0 -19
- package/dist/chunk-NTU2DXNG.js +0 -355
- package/dist/chunk-NXUY5XQN.js +0 -1062
- package/dist/chunk-NZO7M5GV.js +0 -18
- package/dist/chunk-OOL4KMG2.js +0 -71
- package/dist/chunk-OOSRUJBI.js +0 -19
- package/dist/chunk-PDJSUH24.js +0 -110
- package/dist/chunk-PTXBIDG7.js +0 -63
- package/dist/chunk-PVCEA4HZ.js +0 -6
- package/dist/chunk-QA3YCOML.js +0 -101
- package/dist/chunk-QFWQKS3M.js +0 -110
- package/dist/chunk-QS5L5YTJ.js +0 -24
- package/dist/chunk-QYZV2MQA.js +0 -97
- package/dist/chunk-RD2MID3M.js +0 -292
- package/dist/chunk-S3YUXDSC.js +0 -278
- package/dist/chunk-S7REMWW4.js +0 -21
- package/dist/chunk-TOM66P2P.js +0 -38
- package/dist/chunk-TRBGC4ZG.js +0 -112
- package/dist/chunk-UA5KS2PL.js +0 -26
- package/dist/chunk-UJCK5IW4.js +0 -187
- package/dist/chunk-UNYR5GLI.js +0 -23
- package/dist/chunk-UZXG6QSY.js +0 -58
- package/dist/chunk-VN5DLURA.js +0 -158
- package/dist/chunk-VP5TIXDK.js +0 -178
- package/dist/chunk-VPYBK2MG.js +0 -18
- package/dist/chunk-VTTA2ALZ.js +0 -16
- package/dist/chunk-W6GC6OKK.js +0 -16
- package/dist/chunk-WELIKLZF.js +0 -256
- package/dist/chunk-WOHX7YTH.js +0 -165
- package/dist/chunk-WSVMLNTO.js +0 -31
- package/dist/chunk-WYGD2UGN.js +0 -14
- package/dist/chunk-XCFC7LGF.js +0 -122
- package/dist/chunk-XJ2F2WO6.js +0 -8
- package/dist/chunk-XTEFPUSN.js +0 -23
- package/dist/chunk-YBLDE5CG.js +0 -42
- package/dist/chunk-YDGMBMYI.js +0 -25
- package/dist/chunk-YHYTW5QA.js +0 -20
- package/dist/chunk-ZCTUYGNV.js +0 -26
- package/dist/chunk-ZDAEGJH4.js +0 -102
- package/dist/chunk-ZJXSXVFP.js +0 -58
- package/dist/chunk-ZOWKWMD2.js +0 -18
- package/dist/chunk-ZUQW5VBZ.js +0 -89
|
@@ -12,10 +12,6 @@ export interface Spell {
|
|
|
12
12
|
casting_time?: string;
|
|
13
13
|
range?: string;
|
|
14
14
|
components?: string;
|
|
15
|
-
/** D2b-B: the converter's structured material component (`components.m` as an object), kept beside the `components` string,
|
|
16
|
-
* which cannot carry its numbers: `cost` in copper pieces as authored (5etools), `consume` true or a word ("optional").
|
|
17
|
-
* Absent for a string `components`, a bare `m: true` or a string `m`. A PARSE output only, never a YAML key: the codec
|
|
18
|
-
* drops it on serialize. */
|
|
19
15
|
material?: SpellMaterial;
|
|
20
16
|
duration?: string;
|
|
21
17
|
concentration?: boolean;
|
|
@@ -26,9 +22,6 @@ export interface Spell {
|
|
|
26
22
|
damage?: {
|
|
27
23
|
types: string[];
|
|
28
24
|
};
|
|
29
|
-
/** The BASE roll: the roll at the spell's own level, or a cantrip's tier-1 roll (before its first
|
|
30
|
-
* `player_level_<N>` option). Like `casting_options[].damage_roll` it also carries healing rolls
|
|
31
|
-
* (Cure Wounds `2d8`). Mirrors Open5e v2's top-level `damage_roll`. */
|
|
32
25
|
damage_roll?: string;
|
|
33
26
|
saving_throw?: {
|
|
34
27
|
ability: string;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
export interface RetiredItem {
|
|
2
2
|
retired_slug: string;
|
|
3
3
|
retired_name: string;
|
|
4
|
-
/** The bundle-relative note path the retired record shipped at (dnd5e 0.3.12). */
|
|
5
4
|
retired_path: string;
|
|
6
5
|
kept_slug: string;
|
|
7
6
|
kept_name: string;
|
|
8
7
|
}
|
|
9
8
|
export declare const RETIRED_ITEMS: readonly RetiredItem[];
|
|
10
|
-
/** The kept slug for a retired item slug, or undefined. */
|
|
11
9
|
export declare function keptSlugFor(slug: string): string | undefined;
|
|
12
|
-
/** The kept slug for an UNWRAPPED link target: a slug, or a compendium path (`SRD 5e/Magic Items/Hand Crossbow +2`), read
|
|
13
|
-
* the way `resolveBaseItem` reads one. A vault-root path (`Compendium/SRD 5e/...`) never resolved and is left alone. */
|
|
14
10
|
export declare function keptSlugForLink(target: string): string | undefined;
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
RETIRED_ITEMS,
|
|
3
|
-
keptSlugFor,
|
|
4
|
-
keptSlugForLink
|
|
5
|
-
} from "../chunk-CM5CWO4K.js";
|
|
6
|
-
import "../chunk-ZCTUYGNV.js";
|
|
7
|
-
export {
|
|
8
|
-
RETIRED_ITEMS,
|
|
9
|
-
keptSlugFor,
|
|
10
|
-
keptSlugForLink
|
|
11
|
-
};
|
|
1
|
+
import{RETIRED_ITEMS,keptSlugFor,keptSlugForLink}from"../chunk-PZ4L2EEG.js";import"../chunk-63YJPWTM.js";export{RETIRED_ITEMS,keptSlugFor,keptSlugForLink};
|
package/dist/srd-store.d.ts
CHANGED
|
@@ -7,47 +7,14 @@ export interface SrdEntity {
|
|
|
7
7
|
export type SrdEntityType = "monster" | "spell" | "item" | "armor" | "weapon" | "feat" | "condition" | "class" | "subclass" | "background" | "race" | "optional-feature";
|
|
8
8
|
export type SrdDataSources = Record<string, Record<string, unknown>[]>;
|
|
9
9
|
export declare class SrdStore {
|
|
10
|
-
/** slug -> SrdEntity for O(1) lookup */
|
|
11
10
|
private bySlug;
|
|
12
|
-
/** entityType -> SrdEntity[] for type-scoped operations */
|
|
13
11
|
private byType;
|
|
14
|
-
/**
|
|
15
|
-
* Load entities from a map of source-key -> raw JSON arrays.
|
|
16
|
-
* Source keys are resolved through TYPE_MAP (e.g. "monster" -> "monster",
|
|
17
|
-
* "magicitems" -> "item"). If a key is not in TYPE_MAP it is used as-is.
|
|
18
|
-
*/
|
|
19
12
|
loadFromData(sources: SrdDataSources): void;
|
|
20
|
-
/**
|
|
21
|
-
* Load all bundled SRD JSON files from the canonical pipeline runtime.
|
|
22
|
-
* Both 2014 and 2024 editions are merged into a single store; entities are
|
|
23
|
-
* disambiguated by their edition-prefixed slugs (e.g. "srd-5e_aboleth" vs
|
|
24
|
-
* "srd-2024_aboleth").
|
|
25
|
-
*/
|
|
26
13
|
loadFromBundledJson(): void;
|
|
27
|
-
/**
|
|
28
|
-
* O(1) lookup by slug.
|
|
29
|
-
*/
|
|
30
14
|
getBySlug(slug: string): SrdEntity | undefined;
|
|
31
|
-
/**
|
|
32
|
-
* Ranked search: exact match > starts-with > contains.
|
|
33
|
-
* Case-insensitive. Optionally filtered by entityType.
|
|
34
|
-
*/
|
|
35
15
|
search(query: string, entityType?: string, limit?: number): SrdEntity[];
|
|
36
|
-
/**
|
|
37
|
-
* Return all entities of a given type.
|
|
38
|
-
*/
|
|
39
16
|
getAllOfType(entityType: string): SrdEntity[];
|
|
40
|
-
/**
|
|
41
|
-
* Return all registered entity type strings.
|
|
42
|
-
*/
|
|
43
17
|
getTypes(): string[];
|
|
44
|
-
/**
|
|
45
|
-
* Total number of entities across all types.
|
|
46
|
-
*/
|
|
47
18
|
count(): number;
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated Use getBySlug() instead. Kept for backward compatibility.
|
|
50
|
-
* Exact name match (case-insensitive). Searches all types or a specific type.
|
|
51
|
-
*/
|
|
52
19
|
getByName(name: string, entityType?: string): SrdEntity | null;
|
|
53
20
|
}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
import type { DocCodec } from "@archivist-gg/core";
|
|
2
2
|
import type { SubclassEntity } from "./subclass.types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Normalizing codec (0c.1a). `parse` delegates to `parseSubclass`, which validates
|
|
5
|
-
* against `subclassEntitySchema`. `subclass.types` is this entity's dnd5e home for
|
|
6
|
-
* `SubclassEntity` (consumed by the PC resolver/types); its `Edition`/`SubclassSpellcastingConfig`
|
|
7
|
-
* imports resolve dnd5e-internally from `class.types`. `serialize` stays `yaml.dump`
|
|
8
|
-
* (the edit-save path uses obsidian's separate serializer; gate (d) verifies `yaml.dump`
|
|
9
|
-
* round-trips through `parseSubclass`).
|
|
10
|
-
*/
|
|
11
3
|
export declare const subclassCodec: DocCodec<SubclassEntity>;
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
subclassCodec
|
|
3
|
-
} from "../chunk-NZO7M5GV.js";
|
|
4
|
-
import "../chunk-UNYR5GLI.js";
|
|
5
|
-
import "../chunk-LNT64X7C.js";
|
|
6
|
-
import "../chunk-4U55VNC7.js";
|
|
7
|
-
import "../chunk-G6MHJDVT.js";
|
|
8
|
-
import "../chunk-CJYCVNW2.js";
|
|
9
|
-
import "../chunk-B2QHP6UF.js";
|
|
10
|
-
import "../chunk-WYGD2UGN.js";
|
|
11
|
-
import "../chunk-ZJXSXVFP.js";
|
|
12
|
-
import "../chunk-OOL4KMG2.js";
|
|
13
|
-
import "../chunk-JXWNXIIZ.js";
|
|
14
|
-
import "../chunk-UA5KS2PL.js";
|
|
15
|
-
export {
|
|
16
|
-
subclassCodec
|
|
17
|
-
};
|
|
1
|
+
import{subclassCodec}from"../chunk-RHIEOYDX.js";import"../chunk-ETDMOGFO.js";import"../chunk-ONCXJMJM.js";import"../chunk-S5UCI27C.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{subclassCodec};
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
parseSubclass
|
|
3
|
-
} from "../chunk-UNYR5GLI.js";
|
|
4
|
-
import "../chunk-LNT64X7C.js";
|
|
5
|
-
import "../chunk-4U55VNC7.js";
|
|
6
|
-
import "../chunk-G6MHJDVT.js";
|
|
7
|
-
import "../chunk-CJYCVNW2.js";
|
|
8
|
-
import "../chunk-B2QHP6UF.js";
|
|
9
|
-
import "../chunk-WYGD2UGN.js";
|
|
10
|
-
import "../chunk-ZJXSXVFP.js";
|
|
11
|
-
import "../chunk-OOL4KMG2.js";
|
|
12
|
-
import "../chunk-JXWNXIIZ.js";
|
|
13
|
-
import "../chunk-UA5KS2PL.js";
|
|
14
|
-
export {
|
|
15
|
-
parseSubclass
|
|
16
|
-
};
|
|
1
|
+
import{parseSubclass}from"../chunk-ETDMOGFO.js";import"../chunk-ONCXJMJM.js";import"../chunk-S5UCI27C.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{parseSubclass};
|
|
@@ -15,7 +15,7 @@ export declare const subclassEntitySchema: z.ZodObject<{
|
|
|
15
15
|
full: "full";
|
|
16
16
|
pact: "pact";
|
|
17
17
|
third: "third";
|
|
18
|
-
|
|
18
|
+
"half-up": "half-up";
|
|
19
19
|
}>>;
|
|
20
20
|
ability: z.ZodEnum<{
|
|
21
21
|
str: "str";
|
|
@@ -66,6 +66,7 @@ export declare const subclassEntitySchema: z.ZodObject<{
|
|
|
66
66
|
band: "band";
|
|
67
67
|
tab: "tab";
|
|
68
68
|
}>>;
|
|
69
|
+
equivalent_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
69
70
|
recovery: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
70
71
|
id: z.ZodString;
|
|
71
72
|
name: z.ZodString;
|
|
@@ -1,14 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
subclassEntitySchema
|
|
3
|
-
} from "../chunk-LNT64X7C.js";
|
|
4
|
-
import "../chunk-G6MHJDVT.js";
|
|
5
|
-
import "../chunk-CJYCVNW2.js";
|
|
6
|
-
import "../chunk-B2QHP6UF.js";
|
|
7
|
-
import "../chunk-WYGD2UGN.js";
|
|
8
|
-
import "../chunk-ZJXSXVFP.js";
|
|
9
|
-
import "../chunk-OOL4KMG2.js";
|
|
10
|
-
import "../chunk-JXWNXIIZ.js";
|
|
11
|
-
import "../chunk-UA5KS2PL.js";
|
|
12
|
-
export {
|
|
13
|
-
subclassEntitySchema
|
|
14
|
-
};
|
|
1
|
+
import{subclassEntitySchema}from"../chunk-ONCXJMJM.js";import"../chunk-GCYUCIDN.js";import"../chunk-X22SISGM.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{subclassEntitySchema};
|
|
@@ -18,12 +18,10 @@ export interface SubclassEntity {
|
|
|
18
18
|
selection_pools?: SelectionPool[];
|
|
19
19
|
pool_grants?: PoolGrant[];
|
|
20
20
|
tabs?: TabDecl[];
|
|
21
|
-
/** Converter/bundle extras declared by subclass.schema.ts §2.7; all optional, none read today. */
|
|
22
21
|
rendering_hint?: string;
|
|
23
22
|
short_name?: string;
|
|
24
23
|
has_fluff?: boolean;
|
|
25
24
|
has_fluff_images?: boolean;
|
|
26
|
-
/** RAW 5etools passthrough (single measured key-set `{_subclassFluff:{…}}`): mirrors `z.unknown()`. */
|
|
27
25
|
fluff?: unknown;
|
|
28
26
|
table_col_labels?: string[];
|
|
29
27
|
cantrip_progression?: number[];
|
|
@@ -33,6 +31,5 @@ export interface SubclassEntity {
|
|
|
33
31
|
feat_progression?: ProgressionEntry[];
|
|
34
32
|
optionalfeature_progression?: ProgressionEntry[];
|
|
35
33
|
additional_spells?: AdditionalSpellsEntry[];
|
|
36
|
-
/** One wikilink, or an array of them for the multi-fluff-image emit. */
|
|
37
34
|
image?: string | string[];
|
|
38
35
|
}
|
package/dist/types/attack.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/** A single alternate casting mode for a spell (e.g. a different shape, range,
|
|
2
|
-
* or scaling). Lives in dnd5e so the build-time SRD spell merger can consume
|
|
3
|
-
* it without a tools→obsidian reverse edge; obsidian `spell.types` re-exports
|
|
4
|
-
* it for the renderer/parser. */
|
|
5
1
|
export interface CastingOption {
|
|
6
2
|
type: string;
|
|
7
3
|
damage_roll?: string;
|
package/dist/types/choice.d.ts
CHANGED
|
@@ -3,107 +3,38 @@ import type { FeatureEffect } from "./feature-effect.js";
|
|
|
3
3
|
export type Ability = keyof Abilities;
|
|
4
4
|
export type SkillSlug = "acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival";
|
|
5
5
|
export declare const ALL_SKILL_SLUGS: SkillSlug[];
|
|
6
|
-
/** The language vocabulary the engine matches every language grant and pick
|
|
7
|
-
* against: 8 standard + 8 exotic + 2 SECRET. It is NOT "the SRD language set" —
|
|
8
|
-
* the two secret languages are class-taught and appear on no SRD language list.
|
|
9
|
-
* Slugs are edition-agnostic, apostrophe-retaining and canonical under
|
|
10
|
-
* `toProfSlug`, exactly as ALL_TOOLS is.
|
|
11
|
-
*
|
|
12
|
-
* A cross-repo CONTRACT with three kinds of consumer, so widening this list is a
|
|
13
|
-
* data change at all three · named by symbol, because line cites rot:
|
|
14
|
-
* · the SRD GENERATOR: `race-merge.ts` builds `KNOWN_LANGUAGES = new Set(ALL_LANGUAGES)`
|
|
15
|
-
* and `extractLanguagesFromTraits` gates species prose tokens through it, so
|
|
16
|
-
* this constant is INPUT DATA to canonical species output. That name belongs
|
|
17
|
-
* to the generator and to nothing else. Guarded by
|
|
18
|
-
* `tests/srd-canonical/merger-rules/srd-race-languages.test.ts`.
|
|
19
|
-
* · the ENGINE: `enumerateOptions` uses it as the from-less `domain:"language"`
|
|
20
|
-
* picker pool, and `computeEffectiveProficiencies` canonicalizes grants, picks
|
|
21
|
-
* and manual adds against it through `pc.decision-engine.ts`'s one canonical
|
|
22
|
-
* comparison, `matchPool` — a module-level helper it shares with its other call
|
|
23
|
-
* sites, not one of its own. `computeEffectiveProficiencies` reads ALL_LANGUAGES
|
|
24
|
-
* from HERE, directly — it does not go through the generator's KNOWN_LANGUAGES.
|
|
25
|
-
* · the PLUGIN: `proficiency-picker.ts` (D4 A) lists STANDARD, EXOTIC ("Rare") and
|
|
26
|
-
* SECRET_LANGUAGES as its Languages rows, plus any held or removed value they miss.
|
|
27
|
-
* Membership is also what makes two spellings of one language FOLD onto a single
|
|
28
|
-
* row: a vocabulary MISS keys on the raw string and splits the row in two. */
|
|
29
6
|
export declare const STANDARD_LANGUAGES: string[];
|
|
30
7
|
export declare const EXOTIC_LANGUAGES: string[];
|
|
31
|
-
/** Secret languages: granted by a class feature (Druid, Rogue), never carried by a
|
|
32
|
-
* race or background language list. `thieves'-cant` RETAINS the ASCII apostrophe —
|
|
33
|
-
* the file's stated convention, and the slug `toProfSlug` already produces from
|
|
34
|
-
* both live spellings (the converter's `Thieves' Cant` and the 2014 SRD prose's
|
|
35
|
-
* U+2019 form). */
|
|
36
8
|
export declare const SECRET_LANGUAGES: string[];
|
|
37
9
|
export declare const ALL_LANGUAGES: string[];
|
|
38
|
-
/** The SRD tool set: 17 artisan's tools + 10 musical instruments + 2 gaming sets
|
|
39
|
-
* + 6 other tools = 35. Like ALL_LANGUAGES this is a SINGLE edition-agnostic
|
|
40
|
-
* list covering 2014 and 2024, and where the two editions name the same tool
|
|
41
|
-
* differently the 2024 name wins. Across all 35 entries there is exactly one
|
|
42
|
-
* such delta: `Playing Card Set` (2014) vs `Playing Cards` (2024), resolved
|
|
43
|
-
* here to "playing-cards".
|
|
44
|
-
*
|
|
45
|
-
* Apostrophes are RETAINED ("thieves'-tools", "calligrapher's-supplies").
|
|
46
|
-
* These are the slugs the product already emits · see
|
|
47
|
-
* `tools/srd-canonical/merger-rules/background-merge.ts`, whose output is live
|
|
48
|
-
* in `background.2024.json` · and humanizeProficiency is apostrophe-safe.
|
|
49
|
-
* Stripping the apostrophes would diverge from that live data and CREATE the
|
|
50
|
-
* collision it would claim to avoid.
|
|
51
|
-
*
|
|
52
|
-
* Every entry is already canonical under toProfSlug (identity) and the set is
|
|
53
|
-
* collision-free under it. Ordering is alphabetical within each subset, and
|
|
54
|
-
* ALL_TOOLS composes the four subsets in that order, mirroring
|
|
55
|
-
* ALL_LANGUAGES = STANDARD + EXOTIC + SECRET. The list is a cross-repo contract: a
|
|
56
|
-
* one-entry divergence is silent and permanent, so it is pinned verbatim. */
|
|
57
10
|
export declare const ARTISANS_TOOLS: string[];
|
|
58
11
|
export declare const MUSICAL_INSTRUMENTS: string[];
|
|
59
12
|
export declare const GAMING_SETS: string[];
|
|
60
13
|
export declare const OTHER_TOOLS: string[];
|
|
61
14
|
export declare const ALL_TOOLS: string[];
|
|
62
15
|
export type FeatCategory = "origin" | "general" | "fighting-style" | "epic-boon";
|
|
63
|
-
/** Closed, enumerated registry filter — YAML can never express a query the
|
|
64
|
-
* engine would apply unsafely. `"self"` resolves against the owning
|
|
65
|
-
* class/subclass at ledger-build time. */
|
|
66
16
|
export interface EntityFilter {
|
|
67
17
|
feature_type?: string;
|
|
68
18
|
category?: string;
|
|
69
19
|
parent_class?: "self";
|
|
70
20
|
available_to?: "self";
|
|
71
|
-
/** Weapon proficiency class. Matched against a weapon entity's compound
|
|
72
|
-
* `category` (e.g. "martial-melee") by prefix, so "martial" covers both
|
|
73
|
-
* martial-melee and martial-ranged. */
|
|
74
21
|
weapon_category?: "simple" | "martial";
|
|
75
|
-
/** Armor proficiency class. Matched against an armor entity's `category`
|
|
76
|
-
* field exactly; "shield" selects shields. */
|
|
77
22
|
armor_category?: "light" | "medium" | "heavy" | "shield";
|
|
78
|
-
/** Item axis: an item entity's `type` ("instrument", "artisan's tools", "gaming set"); ANY listed type matches.
|
|
79
|
-
* Compared case-insensitively with apostrophes, separators and a plural "s" folded (`categoryWords` in
|
|
80
|
-
* pc.tool-picks.ts), so "artisans tools" matches "artisan's tools". A starting-equipment tool category
|
|
81
|
-
* (`musical-instrument`, `artisan's-tools`, `gaming-set`, or an `X-or-Y` union of them) sets it. */
|
|
82
23
|
item_type?: string[];
|
|
83
|
-
/** Item axis: true keeps only MUNDANE items, dropping one whose `rarity` names a magic tier. Starting gear sets
|
|
84
|
-
* it, because magic instruments (Instrument of Scribing, +3 Rhythm-Maker's Drum) also carry `type: instrument`. */
|
|
85
24
|
mundane?: boolean;
|
|
86
|
-
/** Spell axis: filter spells by class list, level, and edition. Set together on a
|
|
87
|
-
* select-entity{entity_type:"spell"} choice (e.g. Magic Initiate). */
|
|
88
25
|
list?: string;
|
|
89
26
|
level?: number;
|
|
90
27
|
edition?: string;
|
|
91
|
-
/** D2b-A: true keeps only spells a note marks `ritual` (Pact of the Tome's rituals). */
|
|
92
28
|
ritual?: boolean;
|
|
29
|
+
inventory?: boolean;
|
|
93
30
|
}
|
|
94
31
|
export interface InlineOption {
|
|
95
32
|
value: string;
|
|
96
33
|
label: string;
|
|
97
34
|
description?: string;
|
|
98
|
-
/** Applied via a synthesized resolved feature when the option is selected. */
|
|
99
35
|
effects?: FeatureEffect[];
|
|
100
|
-
/** Nested decisions revealed when this option is selected (recursive). */
|
|
101
36
|
choices?: Choice[];
|
|
102
37
|
}
|
|
103
|
-
/** The four game-agnostic decision primitives. All game knowledge (which
|
|
104
|
-
* options, which counts) lives in data — authored in the SRD overlay or
|
|
105
|
-
* inline in homebrew entity notes. `id` is the persistence key under
|
|
106
|
-
* `ClassEntry.choices[level]` / `Character.origin_choices`. */
|
|
107
38
|
export type Choice = {
|
|
108
39
|
kind: "select-inline";
|
|
109
40
|
id: string;
|
|
@@ -118,8 +49,6 @@ export type Choice = {
|
|
|
118
49
|
entity_type: string;
|
|
119
50
|
from?: string[];
|
|
120
51
|
where?: EntityFilter;
|
|
121
|
-
/** D2b-A: the pick names a TARGET (the cantrip a blast invocation's rider reaches), not a grant: nothing it picks
|
|
122
|
-
* becomes the character's own (a spell, a feat, a feature). */
|
|
123
52
|
target?: true;
|
|
124
53
|
} | {
|
|
125
54
|
kind: "select-proficiency";
|
package/dist/types/choice.js
CHANGED
|
@@ -1,24 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
ALL_LANGUAGES,
|
|
3
|
-
ALL_SKILL_SLUGS,
|
|
4
|
-
ALL_TOOLS,
|
|
5
|
-
ARTISANS_TOOLS,
|
|
6
|
-
EXOTIC_LANGUAGES,
|
|
7
|
-
GAMING_SETS,
|
|
8
|
-
MUSICAL_INSTRUMENTS,
|
|
9
|
-
OTHER_TOOLS,
|
|
10
|
-
SECRET_LANGUAGES,
|
|
11
|
-
STANDARD_LANGUAGES
|
|
12
|
-
} from "../chunk-KU3YLF6D.js";
|
|
13
|
-
export {
|
|
14
|
-
ALL_LANGUAGES,
|
|
15
|
-
ALL_SKILL_SLUGS,
|
|
16
|
-
ALL_TOOLS,
|
|
17
|
-
ARTISANS_TOOLS,
|
|
18
|
-
EXOTIC_LANGUAGES,
|
|
19
|
-
GAMING_SETS,
|
|
20
|
-
MUSICAL_INSTRUMENTS,
|
|
21
|
-
OTHER_TOOLS,
|
|
22
|
-
SECRET_LANGUAGES,
|
|
23
|
-
STANDARD_LANGUAGES
|
|
24
|
-
};
|
|
1
|
+
import{ALL_LANGUAGES,ALL_SKILL_SLUGS,ALL_TOOLS,ARTISANS_TOOLS,EXOTIC_LANGUAGES,GAMING_SETS,MUSICAL_INSTRUMENTS,OTHER_TOOLS,SECRET_LANGUAGES,STANDARD_LANGUAGES}from"../chunk-4JEF3CET.js";export{ALL_LANGUAGES,ALL_SKILL_SLUGS,ALL_TOOLS,ARTISANS_TOOLS,EXOTIC_LANGUAGES,GAMING_SETS,MUSICAL_INSTRUMENTS,OTHER_TOOLS,SECRET_LANGUAGES,STANDARD_LANGUAGES};
|
package/dist/types/edition.d.ts
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* slug (e.g. "chain-mail"); the seeder resolves it to the full edition slug.
|
|
3
|
-
* `category` is a player-picked class of item ("martial-weapon",
|
|
4
|
-
* "simple-weapon", "martial-melee-weapon", "any-armor", "shield",
|
|
5
|
-
* "musical-instrument", "artisan's-tools", "gaming-set", a tool `X-or-Y` union;
|
|
6
|
-
* the vocabulary is `categoryToEntitySelect`'s in pc.decision-engine.ts) resolved
|
|
7
|
-
* by a nested select-entity. `gold` is gp folded into the bundle. */
|
|
8
|
-
export type EquipmentGrant =
|
|
9
|
-
/** `contains_value` (COPPER; `1500` = 15 gp) is seeded as gold by the plugin's starting-equipment seeder
|
|
10
|
-
* (R4-G3b §9); `worth_value` is never seeded; `display_name` is read by grantLabel. */
|
|
11
|
-
{
|
|
1
|
+
export type EquipmentGrant = {
|
|
12
2
|
item: string;
|
|
13
3
|
qty?: number;
|
|
14
4
|
contains_value?: number;
|
|
@@ -21,30 +11,16 @@ export type EquipmentGrant =
|
|
|
21
11
|
} | {
|
|
22
12
|
gold: number;
|
|
23
13
|
};
|
|
24
|
-
/** THE rule for which grant is a player-picked CATEGORY: an object whose `category` is a non-empty string. Shared by
|
|
25
|
-
* the engine's nested-pick synthesis and the plugin's seeder, so the nth category grant of an option always
|
|
26
|
-
* consumes the nth pick key and the two can never count a malformed grant differently. */
|
|
27
14
|
export declare function isCategoryGrant(g: unknown): g is Extract<EquipmentGrant, {
|
|
28
15
|
category: string;
|
|
29
16
|
}>;
|
|
30
|
-
/** The persistence key of the nested pick for grant `k` of option `j` of starting-equipment entry `i`: the one
|
|
31
|
-
* spelling the engine emits and the plugin reads. `k` indexes the option's WHOLE grant list, not its category
|
|
32
|
-
* grants alone. */
|
|
33
17
|
export declare const equipmentCategoryKey: (i: number, j: number, k: number) => string;
|
|
34
|
-
/** The ORDERED pick keys of one option's category grants, the order `resolveGrants` consumes them in. */
|
|
35
18
|
export declare const equipmentCategoryKeys: (grants: readonly unknown[], i: number, j: number) => string[];
|
|
36
|
-
/** True for a starting-equipment decision key (`equipment-<i>` and its nested picks). The Equipment step owns
|
|
37
|
-
* these; every other step's decision strip leaves them out. */
|
|
38
19
|
export declare const isStartingEquipmentKey: (key: string) => boolean;
|
|
39
|
-
/** One selectable option of a `kind:"choice"` starting-equipment entry. `label`
|
|
40
|
-
* is the human display string (the `.pc-cb-eqopt` text); `grants` is what seeds. */
|
|
41
20
|
export interface EquipmentOption {
|
|
42
21
|
label: string;
|
|
43
22
|
grants: EquipmentGrant[];
|
|
44
23
|
}
|
|
45
|
-
/** Structured starting equipment. Shared by class + background. A `fixed` entry
|
|
46
|
-
* may carry a `label` for the un-parsed (prose fallback) case where `grants`
|
|
47
|
-
* is empty — it then displays but seeds nothing (graceful degradation). */
|
|
48
24
|
export type StartingEquipmentEntry = {
|
|
49
25
|
kind: "choice";
|
|
50
26
|
options: EquipmentOption[];
|
|
@@ -56,8 +32,6 @@ export type StartingEquipmentEntry = {
|
|
|
56
32
|
kind: "gold";
|
|
57
33
|
amount: number;
|
|
58
34
|
};
|
|
59
|
-
/** Buy-with-Gold budget. `fixed` gp (2024) or a `dice`×`multiplier` roll (2014
|
|
60
|
-
* "XdY × 10"); average is derived by the consumer. */
|
|
61
35
|
export interface StartingGold {
|
|
62
36
|
fixed?: number;
|
|
63
37
|
dice?: string;
|
|
@@ -1,12 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
equipmentCategoryKey,
|
|
3
|
-
equipmentCategoryKeys,
|
|
4
|
-
isCategoryGrant,
|
|
5
|
-
isStartingEquipmentKey
|
|
6
|
-
} from "../chunk-2LULMQTF.js";
|
|
7
|
-
export {
|
|
8
|
-
equipmentCategoryKey,
|
|
9
|
-
equipmentCategoryKeys,
|
|
10
|
-
isCategoryGrant,
|
|
11
|
-
isStartingEquipmentKey
|
|
12
|
-
};
|
|
1
|
+
import{equipmentCategoryKey,equipmentCategoryKeys,isCategoryGrant,isStartingEquipmentKey}from"../chunk-2EOGK6R6.js";export{equipmentCategoryKey,equipmentCategoryKeys,isCategoryGrant,isStartingEquipmentKey};
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
import type { Ability } from "./choice.js";
|
|
2
2
|
export type SenseType = "darkvision" | "blindsight" | "tremorsense" | "truesight";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* Unarmed Strike row, `finesse` and `thrown` the row's properties, and `weapon` every attack row (today's reach, the
|
|
6
|
-
* Unarmed Strike row included). A list reaches a row when ANY word matches it. */
|
|
7
|
-
export type WeaponScope = "weapon" | "melee" | "ranged" | "unarmed" | "finesse" | "thrown";
|
|
8
|
-
/** A spell damage rider's spell scope, the `damage-bonus` arm's `spell_scope` (found 2026-09-29: Potent Spellcasting,
|
|
9
|
-
* Empowered Evocation, Elemental Affinity and Radiant Soul said which spells they reach only in prose, so they reached
|
|
10
|
-
* none). The rider reaches a character's spell that DEALS DAMAGE when every word it carries matches: `list` the spell is
|
|
11
|
-
* on that class's list, `level` its exact level (0 = cantrip), `school` its school, `damage_types` it deals ANY of them,
|
|
12
|
-
* `damage_type_pick` it deals the damage type the character chose at that `select-inline` (its option value or a type
|
|
13
|
-
* named in its label, "Red (Fire)"), `spells` it is one of these (a name or a slug). `once`: the rider adds to ONE damage
|
|
14
|
-
* roll of the casting, however many rolls or targets the spell has ("one damage roll of that spell"). Read with
|
|
15
|
-
* `applies_to: spell` or `all`; `all` with no scope reaches every damaging spell. */
|
|
3
|
+
export type WeaponScope = "weapon" | "melee" | "ranged" | "unarmed" | "finesse" | "thrown" | "heavy" | "pact-weapon";
|
|
4
|
+
export type SpeedGateWord = "heavy-armor" | "armor" | "shield";
|
|
16
5
|
export interface SpellScope {
|
|
17
6
|
list?: string;
|
|
18
7
|
level?: number;
|
|
@@ -22,23 +11,16 @@ export interface SpellScope {
|
|
|
22
11
|
spells?: string[];
|
|
23
12
|
once?: boolean;
|
|
24
13
|
}
|
|
25
|
-
/** Present on every arm: whose numbers the effect changes. Absent === "self". The engine's fold readers skip
|
|
26
|
-
* every effect whose subject is present and not "self" (`foldsOnSelf` in pc.feature-effects.ts). */
|
|
27
14
|
type Subject = {
|
|
28
15
|
subject?: string;
|
|
29
16
|
};
|
|
30
|
-
/** A prose qualifier, carried for display; on `apply-condition` and `immune-condition` the `condition` key is the
|
|
31
|
-
* condition NAME instead, so those two arms do not carry this qualifier. */
|
|
32
17
|
type Qualified = {
|
|
33
18
|
condition?: string;
|
|
34
19
|
} & Subject;
|
|
35
|
-
/**
|
|
36
|
-
* Hand-written MIRROR of `featureEffectSchema` (schemas/feature-effect-schema.ts). The two are cross-checked at the
|
|
37
|
-
* four parser returns and by `_kindPin` in the schema file; edit both in the same commit.
|
|
38
|
-
*/
|
|
39
20
|
export type FeatureEffect = ({
|
|
40
21
|
kind: "initiative-bonus";
|
|
41
|
-
value
|
|
22
|
+
value?: number;
|
|
23
|
+
amount?: string;
|
|
42
24
|
} & Qualified) | ({
|
|
43
25
|
kind: "skill-bonus";
|
|
44
26
|
skills: string[];
|
|
@@ -67,12 +49,17 @@ export type FeatureEffect = ({
|
|
|
67
49
|
} & Qualified) | ({
|
|
68
50
|
kind: "speed-bonus";
|
|
69
51
|
mode: "walk" | "fly" | "swim" | "climb" | "burrow";
|
|
70
|
-
value
|
|
52
|
+
value?: number;
|
|
53
|
+
equal_to?: "walk";
|
|
71
54
|
set?: boolean;
|
|
72
55
|
scales_at?: {
|
|
73
56
|
level: number;
|
|
74
57
|
value: number;
|
|
75
58
|
}[];
|
|
59
|
+
inactive_while?: SpeedGateWord | SpeedGateWord[];
|
|
60
|
+
} & Qualified) | ({
|
|
61
|
+
kind: "speed-rule";
|
|
62
|
+
flag: "ignore-armor-strength";
|
|
76
63
|
} & Qualified) | ({
|
|
77
64
|
kind: "attunement-limit";
|
|
78
65
|
value: number;
|
|
@@ -139,6 +126,7 @@ export type FeatureEffect = ({
|
|
|
139
126
|
level: number;
|
|
140
127
|
count: number;
|
|
141
128
|
}[];
|
|
129
|
+
applies_to?: WeaponScope | WeaponScope[];
|
|
142
130
|
} & Qualified) | ({
|
|
143
131
|
kind: "reroll-damage";
|
|
144
132
|
max_reroll: number;
|
package/dist/types/feature.d.ts
CHANGED
|
@@ -3,24 +3,10 @@ import type { Resource, ResourceConsumption, ActionCost } from "./resource.js";
|
|
|
3
3
|
import type { Attack } from "./attack.js";
|
|
4
4
|
import type { FeatureEffect } from "./feature-effect.js";
|
|
5
5
|
import type { Duration } from "../schemas/duration-schema.js";
|
|
6
|
-
/**
|
|
7
|
-
* Recharge / per-day usage limits on a Feature (e.g. monster action).
|
|
8
|
-
*
|
|
9
|
-
* - `recharge_on_roll`: at the start of each turn, recharges on a d6 roll
|
|
10
|
-
* ≥ `param`. Renders as "Recharge {param}-6" (or "Recharge 6" when param=6).
|
|
11
|
-
* - `per_day`: usable `param` times per day. Renders as "{param}/Day".
|
|
12
|
-
* - `per_short_rest` / `per_long_rest`: usable `param` times per rest.
|
|
13
|
-
*/
|
|
14
6
|
export interface FeatureRecharge {
|
|
15
7
|
type: "recharge_on_roll" | "per_day" | "per_short_rest" | "per_long_rest";
|
|
16
8
|
param: number;
|
|
17
9
|
}
|
|
18
|
-
/** The converter's 14-key companion binding (R4-G5 §7, ruling G5-UR2 "declare now, card after the G7 re-emit").
|
|
19
|
-
* DECLARED, not read: the converter withholds the key today (`P9_NOT_EMITTED_FIELDS`), 0 converted and 0 bundle
|
|
20
|
-
* notes carry it, and the Passive-tab card is a G8 booking. Every closed-vocabulary leaf is a plain `string` and
|
|
21
|
-
* every position the converter can emit as null is `| null`, for the reason the schema mirror states: a class,
|
|
22
|
-
* subclass or race parser refuses a WHOLE document on one nested leaf failure, so a mirror stricter than the
|
|
23
|
-
* emitter is a total-loss risk on the day the re-emit lands. */
|
|
24
10
|
export interface FeatureCompanion {
|
|
25
11
|
statblock?: string;
|
|
26
12
|
statblock_wikilink?: string | null;
|
|
@@ -81,15 +67,10 @@ export interface Feature {
|
|
|
81
67
|
sub_features?: Feature[];
|
|
82
68
|
resources?: Resource[];
|
|
83
69
|
recharge?: FeatureRecharge;
|
|
84
|
-
/** Phase 3 activatable buffs: when true, the feature's effects fold only while
|
|
85
|
-
* its `id` is present in `Character.state.active_buffs` (toggled in the UI). */
|
|
86
70
|
activatable?: boolean;
|
|
87
|
-
/** Always-on marker; renders a "Passive" tag. */
|
|
88
71
|
passive?: boolean;
|
|
89
|
-
/** How long the buff lasts; rendered as a static label (no live countdown). */
|
|
90
72
|
duration?: Duration;
|
|
91
73
|
class_source?: string;
|
|
92
|
-
/** Always "" on every measured carrier — never constrain it non-empty. */
|
|
93
74
|
rendering_hint?: string;
|
|
94
75
|
subclass_short_name?: string;
|
|
95
76
|
subclass_source?: string;
|
|
@@ -97,14 +78,11 @@ export interface Feature {
|
|
|
97
78
|
is_class_feature_variant?: boolean;
|
|
98
79
|
gain_subclass_feature?: boolean;
|
|
99
80
|
gain_subclass_feature_has_content?: boolean;
|
|
100
|
-
/** 5etools entry type; values {"inset","item"}. */
|
|
101
81
|
type?: string;
|
|
102
82
|
action_cost?: ActionCost;
|
|
103
83
|
save?: {
|
|
104
84
|
ability: string;
|
|
105
85
|
dc_formula: string;
|
|
106
86
|
};
|
|
107
|
-
/** The companion this feature binds (R4-G5 §7). Declared so the class / subclass / race parsers stop stripping
|
|
108
|
-
* it on the day the G7 re-emit lands; nothing reads it in G5. */
|
|
109
87
|
companion?: FeatureCompanion;
|
|
110
88
|
}
|