@archivist-gg/dnd5e 0.3.17 → 0.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/LICENSE +48 -21
  2. package/README.md +26 -48
  3. package/dist/armor/armor.codec.d.ts +0 -7
  4. package/dist/armor/armor.codec.js +1 -9
  5. package/dist/armor/armor.parser.js +1 -8
  6. package/dist/armor/armor.schema.js +1 -7
  7. package/dist/armor/armor.types.d.ts +0 -3
  8. package/dist/background/background.codec.d.ts +0 -6
  9. package/dist/background/background.codec.js +1 -12
  10. package/dist/background/background.parser.js +1 -11
  11. package/dist/background/background.schema.js +1 -12
  12. package/dist/background/background.types.d.ts +0 -5
  13. package/dist/chunk-2EOGK6R6.js +1 -0
  14. package/dist/chunk-2HRRH3WL.js +1 -0
  15. package/dist/chunk-2LCGKNVM.js +1 -0
  16. package/dist/chunk-2NUDWOFG.js +1 -0
  17. package/dist/chunk-334WLI7V.js +1 -0
  18. package/dist/chunk-3LWOVRLA.js +1 -0
  19. package/dist/chunk-3QQOATV3.js +1 -0
  20. package/dist/chunk-4E2GIWJE.js +1 -0
  21. package/dist/chunk-4GN3GYMP.js +1 -0
  22. package/dist/chunk-4IAMSRHD.js +1 -0
  23. package/dist/chunk-4JEF3CET.js +1 -0
  24. package/dist/chunk-4KVVAENP.js +1 -0
  25. package/dist/chunk-56JK6VCL.js +1 -0
  26. package/dist/chunk-5FEXHY4U.js +1 -0
  27. package/dist/chunk-63YJPWTM.js +1 -0
  28. package/dist/chunk-6ASJ3MVB.js +1 -0
  29. package/dist/chunk-6IC53O3Q.js +1 -0
  30. package/dist/chunk-6LCNV26D.js +1 -0
  31. package/dist/chunk-6W253VHH.js +1 -0
  32. package/dist/chunk-7AKJBRBD.js +1 -0
  33. package/dist/chunk-7EL3GWWJ.js +1 -0
  34. package/dist/chunk-7FPQJDFD.js +1 -0
  35. package/dist/chunk-7J5BNH2D.js +1 -0
  36. package/dist/chunk-7LPKI27J.js +1 -0
  37. package/dist/chunk-7UPYRKMF.js +1 -0
  38. package/dist/chunk-A7H6LX47.js +1 -0
  39. package/dist/chunk-AINRPPLH.js +1 -0
  40. package/dist/chunk-BC52J4LA.js +1 -0
  41. package/dist/chunk-BCXGB4HP.js +1 -0
  42. package/dist/chunk-BGX36NPE.js +1 -0
  43. package/dist/chunk-BPKG6RZ7.js +1 -0
  44. package/dist/chunk-BREHZNTL.js +1 -0
  45. package/dist/chunk-BZ6BGGZS.js +1 -0
  46. package/dist/chunk-CAPYNIGK.js +1 -0
  47. package/dist/chunk-CCFIINBA.js +1 -0
  48. package/dist/chunk-CMIEZQL4.js +1 -0
  49. package/dist/chunk-DVUXUIPV.js +1 -0
  50. package/dist/chunk-DY6FVAGA.js +1 -0
  51. package/dist/chunk-DZITM5AG.js +1 -0
  52. package/dist/chunk-DZKSXSJF.js +1 -0
  53. package/dist/chunk-EAARMPCW.js +1 -0
  54. package/dist/chunk-EVT7MGAC.js +1 -0
  55. package/dist/chunk-FOLHTMSC.js +1 -0
  56. package/dist/chunk-GCYUCIDN.js +1 -0
  57. package/dist/chunk-GIOV6JW7.js +1 -0
  58. package/dist/chunk-HCK6IUB3.js +1 -0
  59. package/dist/chunk-HR5MKCP2.js +1 -0
  60. package/dist/chunk-I26FHSI6.js +1 -0
  61. package/dist/chunk-I4O2FIDT.js +1 -0
  62. package/dist/chunk-IGVRLGLM.js +1 -0
  63. package/dist/chunk-IHPLT2ZT.js +1 -0
  64. package/dist/chunk-IOCJIWCV.js +1 -0
  65. package/dist/chunk-JXDX2DKF.js +1 -0
  66. package/dist/chunk-KBFSJ5WE.js +1 -0
  67. package/dist/chunk-KM75CC6Q.js +1 -0
  68. package/dist/chunk-KZDDFG4O.js +1 -0
  69. package/dist/chunk-LJNT3PJP.js +1 -0
  70. package/dist/chunk-LR6UMA5V.js +1 -0
  71. package/dist/chunk-M6RPOLKS.js +1 -0
  72. package/dist/chunk-MC6PLWRZ.js +1 -0
  73. package/dist/chunk-MGGKZGLG.js +1 -0
  74. package/dist/chunk-N3RYJ7RE.js +1 -0
  75. package/dist/chunk-NEMX7QGG.js +1 -0
  76. package/dist/chunk-NI364WV7.js +1 -0
  77. package/dist/chunk-O2QZ73GA.js +1 -0
  78. package/dist/chunk-O776WL7O.js +1 -0
  79. package/dist/chunk-OTFNINUY.js +1 -0
  80. package/dist/chunk-PQAVMK3T.js +1 -0
  81. package/dist/chunk-PZ3ZZ5H5.js +1 -0
  82. package/dist/chunk-PZ4L2EEG.js +1 -0
  83. package/dist/chunk-PZUPZBTN.js +1 -0
  84. package/dist/chunk-QBA757AU.js +1 -0
  85. package/dist/chunk-QFIGPOFW.js +1 -0
  86. package/dist/chunk-QMEKQTUT.js +1 -0
  87. package/dist/chunk-QVWT67WA.js +1 -0
  88. package/dist/chunk-RDXQAZBA.js +1 -0
  89. package/dist/chunk-RE5Z5RNK.js +1 -0
  90. package/dist/chunk-RL4VY2AL.js +1 -0
  91. package/dist/chunk-RQGTBHJW.js +1 -0
  92. package/dist/chunk-RQZCGXUZ.js +1 -0
  93. package/dist/chunk-S5UCI27C.js +1 -0
  94. package/dist/chunk-SEOASDO4.js +1 -0
  95. package/dist/chunk-SU4MEZ5P.js +1 -0
  96. package/dist/chunk-T55DELVL.js +1 -0
  97. package/dist/chunk-TKIEPC6F.js +1 -0
  98. package/dist/chunk-TLXFGGWH.js +1 -0
  99. package/dist/chunk-UBUKCRZ3.js +1 -0
  100. package/dist/chunk-V6NQ547U.js +1 -0
  101. package/dist/chunk-VA3ZWV7C.js +1 -0
  102. package/dist/chunk-VIP3FH2O.js +1 -0
  103. package/dist/chunk-VTQ4RWEG.js +1 -0
  104. package/dist/chunk-WUHTSLG4.js +1 -0
  105. package/dist/chunk-X22SISGM.js +1 -0
  106. package/dist/chunk-XKJXT2PN.js +1 -0
  107. package/dist/chunk-XQMKH4R4.js +1 -0
  108. package/dist/chunk-YGH7S5ZF.js +1 -0
  109. package/dist/chunk-ZE46ADXS.js +1 -0
  110. package/dist/chunk-ZI3FEUX3.js +1 -0
  111. package/dist/class/class.codec.d.ts +0 -7
  112. package/dist/class/class.codec.js +1 -18
  113. package/dist/class/class.parser.js +1 -17
  114. package/dist/class/class.schema.d.ts +2 -1
  115. package/dist/class/class.schema.js +1 -15
  116. package/dist/class/class.slug.d.ts +0 -11
  117. package/dist/class/class.slug.js +1 -8
  118. package/dist/class/class.standard-array.d.ts +0 -7
  119. package/dist/class/class.standard-array.js +1 -20
  120. package/dist/class/class.types.d.ts +0 -20
  121. package/dist/condition/condition.codec.d.ts +0 -6
  122. package/dist/condition/condition.parser.d.ts +0 -10
  123. package/dist/condition/condition.parser.js +1 -7
  124. package/dist/condition/condition.schema.d.ts +0 -16
  125. package/dist/condition/condition.types.d.ts +0 -3
  126. package/dist/data-srd/index.generated.js +1 -146
  127. package/dist/dnd/amount-text.d.ts +4 -27
  128. package/dist/dnd/amount-text.js +1 -13
  129. package/dist/dnd/constants.d.ts +0 -18
  130. package/dist/dnd/constants.js +1 -42
  131. package/dist/dnd/formula-tags.d.ts +0 -2
  132. package/dist/dnd/formula-tags.js +1 -119
  133. package/dist/dnd/math.d.ts +0 -26
  134. package/dist/dnd/math.js +1 -45
  135. package/dist/dnd/prose-tags.d.ts +1 -15
  136. package/dist/dnd/prose-tags.js +1 -18
  137. package/dist/dnd/resource-die.d.ts +0 -4
  138. package/dist/dnd/resource-die.js +1 -17
  139. package/dist/dnd/resource-formula.d.ts +0 -43
  140. package/dist/dnd/resource-formula.js +1 -14
  141. package/dist/dnd/resource-words.d.ts +0 -2
  142. package/dist/dnd/resource-words.js +1 -30
  143. package/dist/dnd/srd-tag-converter.d.ts +0 -21
  144. package/dist/dnd/srd-tag-converter.js +1 -12
  145. package/dist/dnd/tag-grammar.js +1 -12
  146. package/dist/dnd/warn-once.js +1 -8
  147. package/dist/encounter/encounter.ai-schema.js +1 -8
  148. package/dist/entities/base-item-resolver.d.ts +0 -26
  149. package/dist/entities/base-item-resolver.js +1 -11
  150. package/dist/entities/registry-revision.d.ts +10 -0
  151. package/dist/entities/registry-revision.js +1 -0
  152. package/dist/entities/slug.d.ts +1 -31
  153. package/dist/entities/slug.js +1 -12
  154. package/dist/entities/wikilink-display.d.ts +0 -2
  155. package/dist/entities/wikilink-display.js +1 -10
  156. package/dist/feat/feat.category-codes.d.ts +1 -26
  157. package/dist/feat/feat.category-codes.js +1 -14
  158. package/dist/feat/feat.codec.d.ts +0 -6
  159. package/dist/feat/feat.codec.js +1 -12
  160. package/dist/feat/feat.parser.js +1 -11
  161. package/dist/feat/feat.schema.d.ts +31 -1
  162. package/dist/feat/feat.schema.js +1 -10
  163. package/dist/feat/feat.types.d.ts +0 -6
  164. package/dist/index.js +45 -138113
  165. package/dist/inline-tag-parser.js +1 -6
  166. package/dist/item/item.actions-map.d.ts +4 -63
  167. package/dist/item/item.actions-map.js +1 -10
  168. package/dist/item/item.ai-schema.js +1 -6
  169. package/dist/item/item.attunement.d.ts +0 -14
  170. package/dist/item/item.attunement.js +1 -6
  171. package/dist/item/item.bonuses.js +1 -10
  172. package/dist/item/item.codec.js +1 -9
  173. package/dist/item/item.conditions.d.ts +0 -7
  174. package/dist/item/item.conditions.js +1 -11
  175. package/dist/item/item.conditions.types.d.ts +0 -2
  176. package/dist/item/item.cost.js +1 -29
  177. package/dist/item/item.enrichment.js +1 -9
  178. package/dist/item/item.icon.d.ts +0 -8
  179. package/dist/item/item.icon.js +1 -211
  180. package/dist/item/item.parser.js +1 -8
  181. package/dist/item/item.schema.d.ts +2 -0
  182. package/dist/item/item.schema.js +1 -11
  183. package/dist/item/item.types.d.ts +2 -28
  184. package/dist/monster/monster.ai-schema.js +1 -6
  185. package/dist/monster/monster.codec.d.ts +0 -10
  186. package/dist/monster/monster.enrichment.js +1 -19
  187. package/dist/monster/monster.format.d.ts +0 -69
  188. package/dist/monster/monster.format.js +1 -78
  189. package/dist/monster/monster.parser.d.ts +0 -4
  190. package/dist/monster/monster.parser.js +1 -15
  191. package/dist/monster/monster.resolve.d.ts +0 -4
  192. package/dist/monster/monster.schema.d.ts +0 -9
  193. package/dist/monster/monster.schema.js +1 -34
  194. package/dist/monster/monster.types.d.ts +0 -3
  195. package/dist/monster/monster.types.js +1 -1
  196. package/dist/optional-feature/optional-feature.codec.d.ts +0 -11
  197. package/dist/optional-feature/optional-feature.codec.js +1 -13
  198. package/dist/optional-feature/optional-feature.parser.js +1 -12
  199. package/dist/optional-feature/optional-feature.schema.d.ts +30 -1
  200. package/dist/optional-feature/optional-feature.schema.js +1 -15
  201. package/dist/pack.d.ts +0 -9
  202. package/dist/pc/conditions.constants.js +1 -6
  203. package/dist/pc/decision-recognizer.js +1 -8
  204. package/dist/pc/pc.additional-spells.d.ts +4 -14
  205. package/dist/pc/pc.additional-spells.js +1 -23
  206. package/dist/pc/pc.amount-bindings.d.ts +4 -20
  207. package/dist/pc/pc.amount-bindings.js +1 -23
  208. package/dist/pc/pc.asi-flatten.d.ts +0 -59
  209. package/dist/pc/pc.asi-flatten.js +1 -16
  210. package/dist/pc/pc.conditions.d.ts +1 -0
  211. package/dist/pc/pc.conditions.js +1 -6
  212. package/dist/pc/pc.containment.d.ts +0 -5
  213. package/dist/pc/pc.containment.js +1 -24
  214. package/dist/pc/pc.decision-engine.d.ts +4 -141
  215. package/dist/pc/pc.decision-engine.js +1 -52
  216. package/dist/pc/pc.defense-normalize.d.ts +0 -10
  217. package/dist/pc/pc.defense-normalize.js +1 -6
  218. package/dist/pc/pc.entry-overrides.d.ts +0 -58
  219. package/dist/pc/pc.entry-overrides.js +1 -40
  220. package/dist/pc/pc.equipment.d.ts +2 -22
  221. package/dist/pc/pc.equipment.js +1 -33
  222. package/dist/pc/pc.feature-effects.d.ts +23 -275
  223. package/dist/pc/pc.feature-effects.js +1 -26
  224. package/dist/pc/pc.formula-context.js +1 -11
  225. package/dist/pc/pc.infusions.d.ts +0 -65
  226. package/dist/pc/pc.infusions.js +1 -64
  227. package/dist/pc/pc.item-effects.d.ts +18 -0
  228. package/dist/pc/pc.member-choices.d.ts +18 -49
  229. package/dist/pc/pc.member-choices.js +1 -32
  230. package/dist/pc/pc.parser.js +1 -58
  231. package/dist/pc/pc.pools.d.ts +7 -10
  232. package/dist/pc/pc.pools.js +1 -26
  233. package/dist/pc/pc.proficiencies.d.ts +7 -33
  234. package/dist/pc/pc.proficiencies.js +1 -107
  235. package/dist/pc/pc.proficiency-grants.d.ts +0 -26
  236. package/dist/pc/pc.proficiency-normalize.d.ts +4 -25
  237. package/dist/pc/pc.proficiency-normalize.js +1 -12
  238. package/dist/pc/pc.proficiency-query.d.ts +0 -13
  239. package/dist/pc/pc.proficiency-query.js +1 -27
  240. package/dist/pc/pc.recalc.d.ts +7 -131
  241. package/dist/pc/pc.recalc.js +1 -946
  242. package/dist/pc/pc.resolver.d.ts +0 -104
  243. package/dist/pc/pc.resolver.js +1 -59
  244. package/dist/pc/pc.resource-seed.d.ts +0 -8
  245. package/dist/pc/pc.resource-seed.js +1 -42
  246. package/dist/pc/pc.resources.d.ts +1 -59
  247. package/dist/pc/pc.resources.js +1 -23
  248. package/dist/pc/pc.rest.d.ts +1 -20
  249. package/dist/pc/pc.rest.js +1 -230
  250. package/dist/pc/pc.schema.d.ts +19 -2
  251. package/dist/pc/pc.schema.js +1 -9
  252. package/dist/pc/pc.slotting.d.ts +0 -29
  253. package/dist/pc/pc.slotting.js +1 -28
  254. package/dist/pc/pc.speeds.d.ts +19 -0
  255. package/dist/pc/pc.spell-scope.d.ts +6 -0
  256. package/dist/pc/pc.spellcasting.d.ts +0 -70
  257. package/dist/pc/pc.spellcasting.js +1 -28
  258. package/dist/pc/pc.table-column.d.ts +0 -22
  259. package/dist/pc/pc.table-column.js +1 -18
  260. package/dist/pc/pc.tool-picks.d.ts +0 -27
  261. package/dist/pc/pc.tool-picks.js +1 -18
  262. package/dist/pc/pc.types.d.ts +85 -344
  263. package/dist/pc/pc.weapon-grant.d.ts +0 -6
  264. package/dist/pc/pool-layout.d.ts +0 -39
  265. package/dist/pc/pool-layout.js +1 -18
  266. package/dist/pc/resource-equivalents.d.ts +2 -40
  267. package/dist/pc/roll-scope.js +1 -8
  268. package/dist/pc/roll-tag-labels.d.ts +0 -32
  269. package/dist/pc/roll-tag-labels.js +1 -17
  270. package/dist/pc/spell-source.d.ts +0 -11
  271. package/dist/pc/spell-source.js +1 -8
  272. package/dist/race/race.codec.d.ts +0 -6
  273. package/dist/race/race.codec.js +1 -15
  274. package/dist/race/race.parser.js +1 -14
  275. package/dist/race/race.schema.d.ts +0 -8
  276. package/dist/race/race.schema.js +1 -14
  277. package/dist/race/race.structural.d.ts +0 -6
  278. package/dist/race/race.structural.js +1 -6
  279. package/dist/race/race.types.d.ts +0 -8
  280. package/dist/schemas/attack-schema.d.ts +5 -0
  281. package/dist/schemas/caster-type-schema.d.ts +1 -6
  282. package/dist/schemas/caster-type-schema.js +1 -6
  283. package/dist/schemas/choice-schema.js +1 -7
  284. package/dist/schemas/duration-schema.d.ts +0 -2
  285. package/dist/schemas/duration-schema.js +1 -6
  286. package/dist/schemas/entity-extras-schema.d.ts +0 -30
  287. package/dist/schemas/entity-extras-schema.js +1 -10
  288. package/dist/schemas/equipment-grant-schema.d.ts +0 -2
  289. package/dist/schemas/equipment-grant-schema.js +1 -12
  290. package/dist/schemas/feature-alias.d.ts +0 -27
  291. package/dist/schemas/feature-effect-schema.d.ts +30 -1
  292. package/dist/schemas/feature-effect-schema.js +1 -6
  293. package/dist/schemas/feature-schema.d.ts +0 -6
  294. package/dist/schemas/feature-schema.js +1 -12
  295. package/dist/schemas/resource-schema.d.ts +1 -34
  296. package/dist/schemas/resource-schema.js +1 -12
  297. package/dist/schemas/selection-pool-schema.js +1 -10
  298. package/dist/spell/casting-time.d.ts +0 -15
  299. package/dist/spell/casting-time.js +1 -6
  300. package/dist/spell/spell.access.d.ts +0 -6
  301. package/dist/spell/spell.access.js +1 -45
  302. package/dist/spell/spell.ai-schema.js +1 -6
  303. package/dist/spell/spell.codec.js +1 -9
  304. package/dist/spell/spell.enrichment.js +1 -9
  305. package/dist/spell/spell.filter.d.ts +0 -5
  306. package/dist/spell/spell.filter.js +1 -75
  307. package/dist/spell/spell.parser.d.ts +0 -31
  308. package/dist/spell/spell.parser.js +1 -16
  309. package/dist/spell/spell.scaling.d.ts +0 -46
  310. package/dist/spell/spell.scaling.js +1 -79
  311. package/dist/spell/spell.schema.js +1 -7
  312. package/dist/spell/spell.types.d.ts +0 -7
  313. package/dist/srd/retired-items.d.ts +0 -4
  314. package/dist/srd/retired-items.js +1 -11
  315. package/dist/srd-store.d.ts +0 -33
  316. package/dist/subclass/subclass.codec.d.ts +0 -8
  317. package/dist/subclass/subclass.codec.js +1 -17
  318. package/dist/subclass/subclass.parser.js +1 -16
  319. package/dist/subclass/subclass.schema.d.ts +2 -1
  320. package/dist/subclass/subclass.schema.js +1 -14
  321. package/dist/subclass/subclass.types.d.ts +0 -3
  322. package/dist/types/attack.d.ts +2 -0
  323. package/dist/types/casting-option.d.ts +0 -4
  324. package/dist/types/choice.d.ts +1 -72
  325. package/dist/types/choice.js +1 -24
  326. package/dist/types/edition.d.ts +0 -3
  327. package/dist/types/equipment-grant.d.ts +1 -27
  328. package/dist/types/equipment-grant.js +1 -12
  329. package/dist/types/feature-effect.d.ts +14 -14
  330. package/dist/types/feature.d.ts +0 -22
  331. package/dist/types/optional-feature.types.d.ts +1 -31
  332. package/dist/types/resource.d.ts +1 -21
  333. package/dist/types/selection-pool.d.ts +0 -24
  334. package/dist/weapon/weapon-mastery.d.ts +0 -1
  335. package/dist/weapon/weapon.classify.d.ts +0 -11
  336. package/dist/weapon/weapon.classify.js +1 -7
  337. package/dist/weapon/weapon.codec.d.ts +0 -9
  338. package/dist/weapon/weapon.codec.js +1 -9
  339. package/dist/weapon/weapon.parser.js +1 -8
  340. package/dist/weapon/weapon.schema.js +1 -7
  341. package/dist/weapon/weapon.types.d.ts +0 -3
  342. package/package.json +3 -3
  343. package/src/data-srd/ATTRIBUTION.md +1 -1
  344. package/dist/chunk-2FRUSVZS.js +0 -489
  345. package/dist/chunk-2JSQE3DD.js +0 -206
  346. package/dist/chunk-2LULMQTF.js +0 -14
  347. package/dist/chunk-2UDSN6VW.js +0 -18
  348. package/dist/chunk-3LWMFYKS.js +0 -57
  349. package/dist/chunk-3MGQFFNE.js +0 -110
  350. package/dist/chunk-3TM34RSJ.js +0 -23
  351. package/dist/chunk-3VZZDKRA.js +0 -1014
  352. package/dist/chunk-4U55VNC7.js +0 -22
  353. package/dist/chunk-5GKJAUMX.js +0 -59
  354. package/dist/chunk-5MXFW4O3.js +0 -71
  355. package/dist/chunk-656QCX4U.js +0 -22
  356. package/dist/chunk-6EI737IO.js +0 -19
  357. package/dist/chunk-6GNXYAYP.js +0 -25
  358. package/dist/chunk-6PXTNCBP.js +0 -133
  359. package/dist/chunk-6X2NV665.js +0 -33
  360. package/dist/chunk-7ATNGKBS.js +0 -178
  361. package/dist/chunk-7Q2VPKCD.js +0 -181
  362. package/dist/chunk-7QN7XSAK.js +0 -19
  363. package/dist/chunk-A54HHCWW.js +0 -67
  364. package/dist/chunk-AZRGFUSR.js +0 -18
  365. package/dist/chunk-B3DP42OM.js +0 -55
  366. package/dist/chunk-CJYCVNW2.js +0 -7
  367. package/dist/chunk-CM5CWO4K.js +0 -735
  368. package/dist/chunk-DEEHHLAP.js +0 -271
  369. package/dist/chunk-DOXSFYLH.js +0 -158
  370. package/dist/chunk-DPUJDOKV.js +0 -365
  371. package/dist/chunk-EJP263OP.js +0 -186
  372. package/dist/chunk-EVMUJYUD.js +0 -195
  373. package/dist/chunk-EYX4JMAU.js +0 -101
  374. package/dist/chunk-FANQVQ3D.js +0 -89
  375. package/dist/chunk-FC4IGH5Y.js +0 -18
  376. package/dist/chunk-G6MHJDVT.js +0 -41
  377. package/dist/chunk-G6PBI2BU.js +0 -18
  378. package/dist/chunk-H5PTKYXL.js +0 -101
  379. package/dist/chunk-HHBD4SQ6.js +0 -24
  380. package/dist/chunk-HS6FIOLP.js +0 -52
  381. package/dist/chunk-HTYMW5CH.js +0 -228
  382. package/dist/chunk-IHE6KVC3.js +0 -13
  383. package/dist/chunk-IN4M4X7P.js +0 -34
  384. package/dist/chunk-IUAAXXNO.js +0 -58
  385. package/dist/chunk-JCMUVZIK.js +0 -133
  386. package/dist/chunk-JSM6JFZR.js +0 -709
  387. package/dist/chunk-K5NJBTE2.js +0 -18
  388. package/dist/chunk-KR6JF3BF.js +0 -14
  389. package/dist/chunk-KSTV7J2U.js +0 -112
  390. package/dist/chunk-KU3YLF6D.js +0 -106
  391. package/dist/chunk-LBEXLN6I.js +0 -91
  392. package/dist/chunk-LF5AGJA4.js +0 -81
  393. package/dist/chunk-LHZXYFBU.js +0 -94
  394. package/dist/chunk-LSLSG67V.js +0 -31
  395. package/dist/chunk-LVQLWRCU.js +0 -15
  396. package/dist/chunk-MBX25B6D.js +0 -18
  397. package/dist/chunk-MYY2C5MB.js +0 -233
  398. package/dist/chunk-OFCSP6MT.js +0 -23
  399. package/dist/chunk-ONTGZR5T.js +0 -1806
  400. package/dist/chunk-OOSRUJBI.js +0 -19
  401. package/dist/chunk-PDJSUH24.js +0 -110
  402. package/dist/chunk-PKX6TGRE.js +0 -93
  403. package/dist/chunk-PQZ4LM4Z.js +0 -19
  404. package/dist/chunk-PTXBIDG7.js +0 -63
  405. package/dist/chunk-PVCEA4HZ.js +0 -6
  406. package/dist/chunk-PXVNAY7T.js +0 -84
  407. package/dist/chunk-QH36K2PU.js +0 -158
  408. package/dist/chunk-QS5L5YTJ.js +0 -24
  409. package/dist/chunk-QYZV2MQA.js +0 -97
  410. package/dist/chunk-QZSWN2KT.js +0 -18
  411. package/dist/chunk-RLGQ5PZZ.js +0 -16
  412. package/dist/chunk-RYLXAYIQ.js +0 -18
  413. package/dist/chunk-S3YUXDSC.js +0 -278
  414. package/dist/chunk-S7REMWW4.js +0 -21
  415. package/dist/chunk-T6QIF5XR.js +0 -348
  416. package/dist/chunk-TOM66P2P.js +0 -38
  417. package/dist/chunk-TULQ4FFX.js +0 -353
  418. package/dist/chunk-UA5KS2PL.js +0 -26
  419. package/dist/chunk-UUBJCNQU.js +0 -187
  420. package/dist/chunk-UZXG6QSY.js +0 -58
  421. package/dist/chunk-VPYBK2MG.js +0 -18
  422. package/dist/chunk-VRV3NNTA.js +0 -161
  423. package/dist/chunk-VTTA2ALZ.js +0 -16
  424. package/dist/chunk-W6GC6OKK.js +0 -16
  425. package/dist/chunk-WELIKLZF.js +0 -256
  426. package/dist/chunk-WSVMLNTO.js +0 -31
  427. package/dist/chunk-WYGD2UGN.js +0 -14
  428. package/dist/chunk-XCFC7LGF.js +0 -122
  429. package/dist/chunk-XJ2F2WO6.js +0 -8
  430. package/dist/chunk-Y5VVP73C.js +0 -23
  431. package/dist/chunk-YBLDE5CG.js +0 -42
  432. package/dist/chunk-YD2VAHA6.js +0 -159
  433. package/dist/chunk-YDGMBMYI.js +0 -25
  434. package/dist/chunk-YHYTW5QA.js +0 -20
  435. package/dist/chunk-YKL6SHRJ.js +0 -23
  436. package/dist/chunk-ZCTUYGNV.js +0 -26
  437. package/dist/chunk-ZDAEGJH4.js +0 -102
  438. package/dist/chunk-ZJXSXVFP.js +0 -58
  439. package/dist/chunk-ZUQW5VBZ.js +0 -89
@@ -1,15 +1,9 @@
1
1
  import type { WeaponEntity } from "@archivist-gg/dnd5e/weapon/weapon.types";
2
2
  export interface QualifiedWeaponGrant {
3
3
  category: "simple" | "martial";
4
- /** Absent: melee and ranged alike. */
5
4
  range?: "melee" | "ranged";
6
- /** Weapon property keys as the weapon notes carry them (`two_handed`, `finesse`). */
7
5
  properties: string[];
8
- /** true: the weapon has NONE of `properties` ("that don't have"); false: it has ANY of them ("that have"). */
9
6
  without: boolean;
10
7
  }
11
- /** The grant a phrase states, or null when it is not a property-qualified category phrase (a weapon name, "simple"). */
12
8
  export declare function parseQualifiedWeaponGrant(text: string): QualifiedWeaponGrant | null;
13
- /** Does the qualified grant `text` cover `weapon`? False for any text that is not such a grant. Melee / ranged is the attack
14
- * mode the classifier reconstructs, not the category suffix (a thrown melee weapon may be filed `*-ranged`). */
15
9
  export declare function qualifiedGrantCovers(text: string, weapon: Pick<WeaponEntity, "category" | "properties" | "range" | "slug">): boolean;
@@ -1,54 +1,15 @@
1
1
  import type { EntryAffordance, PoolLayout } from "../types/selection-pool.js";
2
2
  import type { ResolvedPoolEntry } from "./pc.types.js";
3
- /** The ONE `rendering_hint` → `PoolLayout` table (R4-G4 §4.2.2, invariant 3): a DATA table in the
4
- * RESET_LABELS shape. Absent keys route to the default, and R4-G5 added NONE: `pool-selection` and
5
- * `stance` are a measured empty delta (spec §10) and `granted-die-to-ally` became a per-ROW affordance
6
- * in the table below, so this one still holds exactly the two G4 keys. */
7
3
  export declare const RENDERING_HINT_LAYOUT: Readonly<Record<string, PoolLayout>>;
8
- /** The majority mapped hint over the pool's members; members with an empty or unmapped hint do not
9
- * vote; no votes → undefined; a tie between two mapped values → undefined (Gate 0 Q8).
10
- * UNMAPPED is decided by OWN-property lookup, never by truthiness of a plain index (review M-2):
11
- * `rendering_hint` is a free `z.string().optional()` on converter data, so a member may carry any
12
- * string, and an object-literal table answers the `Object.prototype` keys through the prototype
13
- * chain. Measured 2026-09-06 on this table: `constructor`, `toString`, `hasOwnProperty` and
14
- * `valueOf` each index to a FUNCTION and each has `hasOwnProperty` false, while the two mapped
15
- * hints, `dice-pool` and `point-pool`, are the only keys that are both a string and own (review
16
- * M-1: the earlier wording named `dice-pool` alone). Without the guard a lone junk hint voted that
17
- * function as the layout, and one junk member beside genuine `dice-pool` members collapsed a
18
- * correct majority into a phantom tie. */
19
4
  export declare function derivePoolLayout(entries: ReadonlyArray<ResolvedPoolEntry>): PoolLayout | undefined;
20
5
  export type PoolHead = "dice" | "points";
21
6
  export interface PoolPresentation {
22
7
  head: PoolHead;
23
8
  }
24
- /** A pool tab's ONE data axis (PT spec §9; ART-D's rows axis is retired: every pool tab draws the table).
25
- * HEAD: an authored `dice-pool` / `point-pool` wins; otherwise the DERIVED layout decides (points for `point-pool`,
26
- * dice for anything else). An authored `blocks` or `spell-like` still parses and is ignored. */
27
9
  export declare function poolPresentation(authored?: PoolLayout, derived?: PoolLayout): PoolPresentation;
28
- /** The ONE `rendering_hint` to `EntryAffordance` table (R4-G5 §4.2.1, invariant 3): the PER-ENTRY sibling of
29
- * `RENDERING_HINT_LAYOUT`. `granted-die-to-ally` is its only key, and the four documents carrying it
30
- * (Commander's Strike x2, Rally x2) are field-identical to the other 39 maneuvers except that hint, so a
31
- * per-row affordance is the only place their meaning can land. `stance` gets NO key (its three hinted documents
32
- * are field-identical to three unhinted siblings: a measured empty delta) and `pool-selection` none. */
33
10
  export declare const RENDERING_HINT_AFFORDANCE: Readonly<Record<string, EntryAffordance>>;
34
- /** The entry's affordance, by OWN-property lookup (`derivePoolLayout`'s precedent, invariant 3): `rendering_hint`
35
- * is a free `z.string().optional()` on converter data, so a member may carry ANY string, and an object-literal
36
- * table answers `constructor` / `toString` / `hasOwnProperty` / `valueOf` through the prototype chain with a
37
- * FUNCTION. Absent, empty and unmapped hints all return undefined. */
38
11
  export declare function deriveEntryAffordance(entity: ResolvedPoolEntry["entity"]): EntryAffordance | undefined;
39
- /** Caption TEMPLATES per affordance, in the `RESET_LABELS` shape: the game sentence lives in DATA here, never in
40
- * a renderer (invariant 3). `{amount}` and `{die}` are filled by `formatAffordanceCaption`.
41
- *
42
- * The two placeholders ABUT (R4 {G5, G6} live rider N-1-12): the sheet read `1 d8 to an ally`, which is not how
43
- * a die is written. `{die}` is a FACE by contract · the caller passes what `resolveScalingDie` returns, which is
44
- * `base` or one of `scaling`'s entries, and every one of those in shipped data is face-shaped ("d6" throughout
45
- * the SRD runtime JSON and the compendium bundle) · so amount and face compose into one dice expression. */
46
12
  export declare const AFFORDANCE_CAPTIONS: Readonly<Record<EntryAffordance, string>>;
47
- /** Fill an affordance's caption template. PURE, and pure on purpose: the caller supplies values it has ALREADY
48
- * resolved (the plugin resolves the die through `resolveScalingDie` at the owner's class level, exactly as the
49
- * shipped spend control resolves its own "(d8)" label), so no renderer ever holds the sentence and no engine
50
- * module ever needs the character. A placeholder with no value is left VERBATIM rather than printed as
51
- * "undefined". */
52
13
  export declare function formatAffordanceCaption(affordance: EntryAffordance, values: {
53
14
  amount: number;
54
15
  die: string;
@@ -1,18 +1 @@
1
- import {
2
- AFFORDANCE_CAPTIONS,
3
- RENDERING_HINT_AFFORDANCE,
4
- RENDERING_HINT_LAYOUT,
5
- deriveEntryAffordance,
6
- derivePoolLayout,
7
- formatAffordanceCaption,
8
- poolPresentation
9
- } from "../chunk-B3DP42OM.js";
10
- export {
11
- AFFORDANCE_CAPTIONS,
12
- RENDERING_HINT_AFFORDANCE,
13
- RENDERING_HINT_LAYOUT,
14
- deriveEntryAffordance,
15
- derivePoolLayout,
16
- formatAffordanceCaption,
17
- poolPresentation
18
- };
1
+ import{AFFORDANCE_CAPTIONS,RENDERING_HINT_AFFORDANCE,RENDERING_HINT_LAYOUT,deriveEntryAffordance,derivePoolLayout,formatAffordanceCaption,poolPresentation}from"../chunk-O776WL7O.js";export{AFFORDANCE_CAPTIONS,RENDERING_HINT_AFFORDANCE,RENDERING_HINT_LAYOUT,deriveEntryAffordance,derivePoolLayout,formatAffordanceCaption,poolPresentation};
@@ -1,44 +1,6 @@
1
1
  import type { ResourceIndex } from "./pc.resources.js";
2
2
  import type { FeatureSource, ResolvedClass, ResolvedFeature } from "./pc.types.js";
3
- /**
4
- * H3b (spec `2026-09-28-h3b-resource-equivalents-design.md` §2): DECLARED equivalent resource ids. Each group says "these
5
- * ids name ONE resource": the books and the SRD data mint different ids for the same pool (edition twins such as
6
- * `fighter:superiority-dice` / `fighter-2024:superiority-dice`, book drift such as `monk:ki` / `monk:focus-point`,
7
- * singular / plural such as `sorcerer:sorcery-point(s)`). Nothing is ever derived from an id's shape: an id in no group
8
- * has no equivalent. The order inside a group is the fallback preference ({@link payingResourceId} step 4).
9
- *
10
- * The groups were measured over the installed vault (every class paired with every subclass of the same class, census in
11
- * `.superpowers/sdd/h3b-evidence/`) and each checked against its declaring notes. The bare `channel-divinity` is the SRD
12
- * 2024 id of BOTH the Cleric and the Paladin, so it sits in both Channel Divinity groups. Equivalence is read as "shares a
13
- * group with", never transitively: `cleric:` / `cleric-2024:` never answer for `paladin:` / `paladin-2024:`. The bare id
14
- * does answer for both, so a paladin consumer whose own class owns no Channel Divinity pays from a bare id another class
15
- * (an SRD 2024 Cleric) declares: the one Channel Divinity pool of the 2014 multiclass rule (review m1, H3b).
16
- */
17
- export interface ResourceEquivalentGroup {
18
- readonly name: string;
19
- readonly ids: readonly string[];
20
- }
21
- export declare const RESOURCE_EQUIVALENTS: readonly ResourceEquivalentGroup[];
22
- /** Every id that shares a group with `id`, in declared order (group order, then the order inside the group), `id` itself
23
- * excluded, each once. Empty for an id in no group. */
24
- export declare function equivalentResourceIds(id: string, groups?: readonly ResourceEquivalentGroup[]): string[];
25
- /**
26
- * THE rule (spec §3): which OWNED resource pays for a consumption naming `id`.
27
- * 1. the candidates are `id`, then its declared equivalents in declared order, kept only when the character owns them;
28
- * 2. none: `undefined` (the caller keeps the raw id: no control, never a spend from nothing);
29
- * 3. the first candidate the consumer's OWN class entry declares (`owner`, its class or subclass) pays, so a class's
30
- * feature or pool member spends its class's pool even when a feat owns a twin id (TCE Metamagic Adept on a 2014
31
- * Sorcerer declares `sorcerer-2024:sorcery-point`);
32
- * 4. else the first candidate: the named id itself when it is owned.
33
- * Exactly one id per consumer, so a spend writes one `feature_uses` key.
34
- */
35
- export declare function payingResourceId(id: string, index: ResourceIndex, owner?: ResolvedClass | null, groups?: readonly ResourceEquivalentGroup[]): string | undefined;
36
- /** The class entry a feature belongs to: a class feature's class, a subclass feature's class; none for a race,
37
- * background, feat or campaign feature. */
3
+ export declare function equivalentResourceIds(id: string, index: ResourceIndex): string[];
4
+ export declare function payingResourceId(id: string, index: ResourceIndex, owner?: ResolvedClass | null): string | undefined;
38
5
  export declare function classOfSource(source: FeatureSource, classes: readonly ResolvedClass[]): ResolvedClass | null;
39
- /**
40
- * Spec §4: every resolved feature whose `consumes.resource` has a different payer becomes a COPY (wrapper, feature and
41
- * consumes; only `resource` changes). The registry `Feature` is shared by every open sheet and is never written; a
42
- * feature with no `consumes.resource`, one paid by the id it names, or one with no owned candidate keeps its identity.
43
- */
44
6
  export declare function bindFeatureConsumers(features: ResolvedFeature[], index: ResourceIndex, classes: readonly ResolvedClass[]): ResolvedFeature[];
@@ -1,8 +1 @@
1
- import {
2
- normalizeRollScope
3
- } from "../chunk-TOM66P2P.js";
4
- import "../chunk-KU3YLF6D.js";
5
- import "../chunk-WELIKLZF.js";
6
- export {
7
- normalizeRollScope
8
- };
1
+ import{normalizeRollScope}from"../chunk-FOLHTMSC.js";import"../chunk-4JEF3CET.js";import"../chunk-EVT7MGAC.js";export{normalizeRollScope};
@@ -1,40 +1,8 @@
1
- /**
2
- * R4-G3a §5.2 · the tag mechanism's DATA tables: the single source of every roll/outcome tag
3
- * TEXT the plugin's three chip surfaces render.
4
- *
5
- * Invariant 3: captions and tag texts derive from the effect's own fields through ONE
6
- * data-shaped table per concern; a closed vocabulary `switch` on game data inside a component is
7
- * the smell this replaces (all three surfaces spelled `mode === "advantage" ? "ADV" : "DIS"`,
8
- * which renders "DIS" for a `reroll` the moment `mode` widens: a green tree with a false chip).
9
- *
10
- * `Record<RollModifierMode, …>` / `Record<RollKind, …>` are load-bearing: the aliases come from
11
- * `pc.types.ts`, so widening `RollModifierEntry.mode` without extending these tables is a COMPILE
12
- * error, not a silent misrender (§14 row 8i's control).
13
- *
14
- * `ROLL_MODE_WORD` and `ROLL_NOUN` are the PROSE halves (Task 3 consumes them for feature-card
15
- * captions); `ROLL_MODE_TAG` is the terse chip half.
16
- *
17
- * `ROLL_NOUN` is keyed `RollKind | "any"`, one member wider than the folded `RollModifierEntry`.
18
- * The fold FANS OUT `roll: "any"` into one entry per roll type (§6.2.1), so no chip surface ever
19
- * sees it; the RAW effect on a feature row still carries it, and Task 3 captions raw effects. Its
20
- * noun is "rolls" rather than a stand-in member: an `any` modifier covers checks, saves AND attacks
21
- * at once, so borrowing "ability checks" for it understates the scope in prose.
22
- *
23
- * Never an "EVA" literal for the outcome tag:
24
- * Evasion is only one of four bearers, and Spellfire Sorcery is not Evasion.
25
- */
26
1
  import type { RollModifierMode, RollKind, SaveOutcome } from "./pc.types.js";
27
2
  export declare const ROLL_MODE_TAG: Record<RollModifierMode, string>;
28
3
  export declare const ROLL_MODE_WORD: Record<RollModifierMode, string>;
29
4
  export declare const ROLL_NOUN: Record<RollKind | "any", string>;
30
5
  export declare const AUTO_FAIL_TAG = "AUTO-FAIL";
31
- /** R4-G7 T8 RIDER-20 (F-ADV) · the ONE glyph a CONDITIONAL tag appends to its text: a `roll-modifier` entry that carries a
32
- * `condition`, or a `scope` the normaliser could not map (the qualifier the converter left in `scope`), and a `save-outcome`
33
- * entry that carries a `condition`. `ADV` alone reads "always"; `ADV*` says "only sometimes, hover for when". The chip
34
- * carriers append it to the `ROLL_MODE_TAG` / `saveOutcomeTag` text, so the glyph is spelled here once. */
35
6
  export declare const CONDITIONAL_TAG_MARK = "*";
36
- /** The closed `save-outcome` result vocabulary as display glyphs: how much damage you still take.
37
- * `Record<SaveOutcome, string>` (the alias from pc.types.ts) so the union is spelled once. */
38
7
  export declare const OUTCOME: Record<SaveOutcome, string>;
39
- /** `{none, half}` → "0/½": success outcome over failure outcome. */
40
8
  export declare const saveOutcomeTag: (onSuccess: SaveOutcome, onFailure: SaveOutcome) => string;
@@ -1,17 +1 @@
1
- // src/pc/roll-tag-labels.ts
2
- var ROLL_MODE_TAG = { advantage: "ADV", disadvantage: "DIS", reroll: "RR", "add-d4": "+D4" };
3
- var ROLL_MODE_WORD = { advantage: "advantage", disadvantage: "disadvantage", reroll: "a reroll", "add-d4": "+1d4" };
4
- var ROLL_NOUN = { "ability-check": "ability checks", "saving-throw": "saving throws", attack: "attack rolls", any: "rolls" };
5
- var AUTO_FAIL_TAG = "AUTO-FAIL";
6
- var CONDITIONAL_TAG_MARK = "*";
7
- var OUTCOME = { none: "0", half: "\xBD", full: "1" };
8
- var saveOutcomeTag = (onSuccess, onFailure) => `${OUTCOME[onSuccess]}/${OUTCOME[onFailure]}`;
9
- export {
10
- AUTO_FAIL_TAG,
11
- CONDITIONAL_TAG_MARK,
12
- OUTCOME,
13
- ROLL_MODE_TAG,
14
- ROLL_MODE_WORD,
15
- ROLL_NOUN,
16
- saveOutcomeTag
17
- };
1
+ var ROLL_MODE_TAG={advantage:"ADV",disadvantage:"DIS",reroll:"RR","add-d4":"+D4"};var ROLL_MODE_WORD={advantage:"advantage",disadvantage:"disadvantage",reroll:"a reroll","add-d4":"+1d4"};var ROLL_NOUN={"ability-check":"ability checks","saving-throw":"saving throws",attack:"attack rolls",any:"rolls"};var AUTO_FAIL_TAG="AUTO-FAIL";var CONDITIONAL_TAG_MARK="*";var OUTCOME={none:"0",half:"\xBD",full:"1"};var saveOutcomeTag=(onSuccess,onFailure)=>`${OUTCOME[onSuccess]}/${OUTCOME[onFailure]}`;export{AUTO_FAIL_TAG,CONDITIONAL_TAG_MARK,OUTCOME,ROLL_MODE_TAG,ROLL_MODE_WORD,ROLL_NOUN,saveOutcomeTag};
@@ -1,20 +1,9 @@
1
1
  import type { ResolvedSpell } from "./pc.types.js";
2
- /** R4-G3b §6 · ONE data-shaped routing descriptor per ResolvedSpell.source, read by the plugin's Spells-tab components in
3
- * place of thirteen hardcoded `source ===` arms (the standing rule: policy from data, never a vocabulary switch in a
4
- * component). No `label` (nothing renders a source caption; a provenance caption is G8's) and no `removable` (that is
5
- * ResolvedSpell.persisted: membership in character.spells.known). `domain` is declared but NO grant producer
6
- * hardcodes it; the one thing that reaches a sheet carrying it is a hand-authored `spells.known[].source:
7
- * domain`, permitted by pc.schema.ts and passed through by normalizeKnownSpell (pc.spellcasting.ts). */
8
2
  export interface SpellSourceDescriptor {
9
- /** The row's DC / attack bonus come from its own `ability` when it carries one, not from a class. */
10
3
  ownAbility: boolean;
11
- /** Which surface the row belongs to: the class/grant spellbook sections, or Scrolls & Consumables. */
12
4
  section: "spellbook" | "consumable";
13
- /** A leveled row at a level the character owns no slot for gets its own free-cast block. */
14
5
  freeCastWhenNoSlot: boolean;
15
- /** The row is preparable/lockable in the Prepare list (and seeds its level filter chips). */
16
6
  showInPrepare: boolean;
17
- /** The row is a grant, so it lifts the Spells tab's "No Spellcasting" empty state on its own. */
18
7
  countsAsGranted: boolean;
19
8
  }
20
9
  export declare const SPELL_SOURCE: Record<ResolvedSpell["source"], SpellSourceDescriptor>;
@@ -1,8 +1 @@
1
- import {
2
- SPELL_SOURCE,
3
- spellSource
4
- } from "../chunk-KR6JF3BF.js";
5
- export {
6
- SPELL_SOURCE,
7
- spellSource
8
- };
1
+ import{SPELL_SOURCE,spellSource}from"../chunk-PZ3ZZ5H5.js";export{SPELL_SOURCE,spellSource};
@@ -1,9 +1,3 @@
1
1
  import type { DocCodec } from "@archivist-gg/core";
2
2
  import type { RaceEntity } from "./race.types.js";
3
- /**
4
- * Normalizing codec (0c.1a). `parse` delegates to `parseRace`, which seeds the
5
- * `edition: "2014"` default and validates against `raceEntitySchema`. `serialize`
6
- * stays `yaml.dump` (the edit-save path uses obsidian's separate serializer; gate
7
- * (d) verifies `yaml.dump` round-trips through `parseRace`).
8
- */
9
3
  export declare const raceCodec: DocCodec<RaceEntity>;
@@ -1,15 +1 @@
1
- import {
2
- raceCodec
3
- } from "../chunk-AZRGFUSR.js";
4
- import "../chunk-Y5VVP73C.js";
5
- import "../chunk-FANQVQ3D.js";
6
- import "../chunk-4U55VNC7.js";
7
- import "../chunk-YD2VAHA6.js";
8
- import "../chunk-WYGD2UGN.js";
9
- import "../chunk-ZJXSXVFP.js";
10
- import "../chunk-5MXFW4O3.js";
11
- import "../chunk-2JSQE3DD.js";
12
- import "../chunk-UA5KS2PL.js";
13
- export {
14
- raceCodec
15
- };
1
+ import{raceCodec}from"../chunk-HR5MKCP2.js";import"../chunk-BPKG6RZ7.js";import"../chunk-6LCNV26D.js";import"../chunk-S5UCI27C.js";import"../chunk-V6NQ547U.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{raceCodec};
@@ -1,14 +1 @@
1
- import {
2
- parseRace
3
- } from "../chunk-Y5VVP73C.js";
4
- import "../chunk-FANQVQ3D.js";
5
- import "../chunk-4U55VNC7.js";
6
- import "../chunk-YD2VAHA6.js";
7
- import "../chunk-WYGD2UGN.js";
8
- import "../chunk-ZJXSXVFP.js";
9
- import "../chunk-5MXFW4O3.js";
10
- import "../chunk-2JSQE3DD.js";
11
- import "../chunk-UA5KS2PL.js";
12
- export {
13
- parseRace
14
- };
1
+ import{parseRace}from"../chunk-BPKG6RZ7.js";import"../chunk-6LCNV26D.js";import"../chunk-S5UCI27C.js";import"../chunk-V6NQ547U.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{parseRace};
@@ -1,12 +1,4 @@
1
1
  import { z } from "zod";
2
- /** Exported so the SRD overlay validates AUTHORED fixed increases against the
3
- * FIXED ARM canonical output is validated against, derived from this one
4
- * definition so the two cannot drift. Note the precise relationship:
5
- * `raceEntitySchema` below validates `ability_score_increases` with `asiSchema`,
6
- * the UNION, of which this is one arm · `overlay.schema.ts` deliberately narrows
7
- * to this arm alone, because the choice-shaped arm folds nothing at runtime
8
- * (`flattenRaceAsi` reads only `"ability" in asi`), so rejecting it at authoring
9
- * time is a guard, not a limitation. */
10
2
  export declare const fixedAsiSchema: z.ZodObject<{
11
3
  ability: z.ZodEnum<{
12
4
  str: "str";
@@ -1,14 +1 @@
1
- import {
2
- fixedAsiSchema,
3
- raceEntitySchema
4
- } from "../chunk-FANQVQ3D.js";
5
- import "../chunk-YD2VAHA6.js";
6
- import "../chunk-WYGD2UGN.js";
7
- import "../chunk-ZJXSXVFP.js";
8
- import "../chunk-5MXFW4O3.js";
9
- import "../chunk-2JSQE3DD.js";
10
- import "../chunk-UA5KS2PL.js";
11
- export {
12
- fixedAsiSchema,
13
- raceEntitySchema
14
- };
1
+ import{fixedAsiSchema,raceEntitySchema}from"../chunk-6LCNV26D.js";import"../chunk-V6NQ547U.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{fixedAsiSchema,raceEntitySchema};
@@ -1,7 +1 @@
1
- /** R4-G3b §5.2.9 · the STRUCTURAL pseudo-choices of a race entry: Size / Speed / Darkvision are surfaced as glance tiles
2
- * and are not content. Shared by the plugin's two trait-name folds (keyed on TRAIT NAMES, lowercased) and by the
3
- * resolver's `additional_spells` race gate (keyed on select-inline CHOICE IDS; on the corpus only `size` occurs as an
4
- * id, 18 carriers, 17 saved by this exemption). A measured v1 exception to the schema-not-renderer rule: it must never
5
- * grow into an allowlist of lineage ids (the structural replacement is the NEXT-REGEN / G7 ask). NOT imported by any
6
- * schema, parser, codec or srd module (the T6/T12 grep guard keeps it out of the generators graph). */
7
1
  export declare const RACE_STRUCTURAL_PSEUDO: ReadonlySet<string>;
@@ -1,6 +1 @@
1
- import {
2
- RACE_STRUCTURAL_PSEUDO
3
- } from "../chunk-PVCEA4HZ.js";
4
- export {
5
- RACE_STRUCTURAL_PSEUDO
6
- };
1
+ import{RACE_STRUCTURAL_PSEUDO}from"../chunk-UBUKCRZ3.js";export{RACE_STRUCTURAL_PSEUDO};
@@ -42,23 +42,15 @@ export interface RaceEntity {
42
42
  traits: Feature[];
43
43
  choices?: Choice[];
44
44
  subspecies_of?: string;
45
- /** Converter/bundle extras declared by race.schema.ts §2.3. Every one is optional: none is
46
- * read by the pc pipeline today, and declaring them is what stops the parser silently
47
- * dropping them (the "declare or lose" rule). */
48
45
  rendering_hint?: string;
49
46
  has_fluff?: boolean;
50
47
  has_fluff_images?: boolean;
51
48
  creature_type?: string[];
52
49
  creature_type_tags?: string[];
53
- /** DUAL ARITY (§2.8): the converter emits an array on 109 docs, the shipped SRD bundle a bare
54
- * object on 3 (`SRD 2024/Races/{Elf,Tiefling}.md`, `SRD 5e/Races/Tiefling.md`). */
55
50
  additional_spells?: AdditionalSpellsEntry[] | AdditionalSpellsEntry;
56
- /** The four RAW 5etools passthroughs: `unknown` mirrors the schema's `z.unknown()`. Today's
57
- * variant set is a snapshot, not a contract, so the type stays maximally loose. */
58
51
  trait_tags?: unknown;
59
52
  lineage?: unknown;
60
53
  height_and_weight?: unknown;
61
54
  sound_clip?: unknown;
62
- /** One wikilink, or an array of them for the multi-fluff-image emit. */
63
55
  image?: string | string[];
64
56
  }
@@ -40,4 +40,9 @@ export declare const attackSchema: z.ZodObject<{
40
40
  dice: z.ZodString;
41
41
  type: z.ZodString;
42
42
  }, z.core.$strip>>;
43
+ weapon_category: z.ZodOptional<z.ZodEnum<{
44
+ simple: "simple";
45
+ martial: "martial";
46
+ }>>;
47
+ mastery: z.ZodOptional<z.ZodString>;
43
48
  }, z.core.$strip>;
@@ -1,14 +1,9 @@
1
1
  import { z } from "zod";
2
- /** THE caster-type vocabulary, declared once (R4-G1a D6a). "artificer" is a fifth progression (level-1 slots,
3
- * then the half-caster table; multiclass contributes half its levels rounded UP; prepared count is Int mod +
4
- * floor(level/2) when no table column supplies it). The XPHB Paladin and Ranger carry it in the converter's
5
- * emission. Imported by the class and subclass schemas, the class types, pc.types and the generator's overlay
6
- * schema and class merger: never redeclare it. */
7
2
  export declare const casterTypeEnum: z.ZodEnum<{
8
3
  half: "half";
9
4
  full: "full";
10
5
  pact: "pact";
11
6
  third: "third";
12
- artificer: "artificer";
7
+ "half-up": "half-up";
13
8
  }>;
14
9
  export type CasterType = z.infer<typeof casterTypeEnum>;
@@ -1,6 +1 @@
1
- import {
2
- casterTypeEnum
3
- } from "../chunk-CJYCVNW2.js";
4
- export {
5
- casterTypeEnum
6
- };
1
+ import{casterTypeEnum}from"../chunk-X22SISGM.js";export{casterTypeEnum};
@@ -1,7 +1 @@
1
- import {
2
- choiceSchema
3
- } from "../chunk-5MXFW4O3.js";
4
- import "../chunk-2JSQE3DD.js";
5
- export {
6
- choiceSchema
7
- };
1
+ import{choiceSchema}from"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";export{choiceSchema};
@@ -1,6 +1,4 @@
1
1
  import { z } from "zod";
2
- /** A buff/effect duration. Parsed in Phase 2 and rendered as a static label;
3
- * Phase 3's activatable-buff toggle consumes the structured form. */
4
2
  export declare const durationSchema: z.ZodUnion<readonly [z.ZodLiteral<"instantaneous">, z.ZodLiteral<"until-dispelled">, z.ZodObject<{
5
3
  amount: z.ZodNumber;
6
4
  unit: z.ZodEnum<{
@@ -1,6 +1 @@
1
- import {
2
- durationSchema
3
- } from "../chunk-WYGD2UGN.js";
4
- export {
5
- durationSchema
6
- };
1
+ import{durationSchema}from"../chunk-ZE46ADXS.js";export{durationSchema};
@@ -1,25 +1,5 @@
1
1
  import { z } from "zod";
2
- /**
3
- * Shared leaf schemas for the entity "extras" the converter and the SRD bundle
4
- * emit on more than one root. Six root schemas will import from here (race,
5
- * feat, optional-feature, background, class, subclass; the wiring lands in T2/T3)
6
- * so a shape is declared ONCE.
7
- *
8
- * Everything here is additive and `.optional()` at the point of use: no
9
- * `.default()`, no tightening, no new required field. A raw-blob leaf is always
10
- * `z.unknown().optional()` — a bare `z.unknown()` inside `z.object` is NOT
11
- * optional under zod v4 (`safeParse({})` fails `expected nonoptional`).
12
- */
13
- /** Images-ON emit (scripts/lib/image-format.ts): one wikilink string, or an array for ≥2 fluff
14
- * images; `thumbnail` monster-only. ZERO carriers on the frozen images-OFF tree — see §9.4.
15
- * NO .nonempty() on the array arm (gate1-r1 f13): the variant set is unestablished (Gate 0
16
- * finding 25) and the phase's own rule — a new declaration must be INCAPABLE of refusing —
17
- * outranks a speculative arity constraint on the one key a future convert:images run feeds. */
18
2
  export declare const imageField: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
19
- /** 5etools additionalSpells. Key-set measured COMPLETE over all 52 distinct sets on 5 roots:
20
- * {ability, expanded, innate, known, name, prepared, resourceName} (Gate 0 finding 5).
21
- * Loose leaves are deliberate: level keys are arbitrary strings ("1","s0","_","1e","pb","cha"…),
22
- * the known.'1' string-keying is converter-owned (A §7.2) and passes through VERBATIM. */
23
3
  export declare const additionalSpellsEntrySchema: z.ZodObject<{
24
4
  name: z.ZodOptional<z.ZodString>;
25
5
  ability: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
@@ -31,16 +11,6 @@ export declare const additionalSpellsEntrySchema: z.ZodObject<{
31
11
  expanded: z.ZodOptional<z.ZodUnknown>;
32
12
  resourceName: z.ZodOptional<z.ZodString>;
33
13
  }, z.core.$strip>;
34
- /** optionalfeature_progression / feat_progression containers. Measured distribution (finding 4):
35
- * `progression` is a record on 42 of 46 containers (keys numeric strings + "*", values number) and
36
- * an ARRAY (number[], len 20) on class.optionalfeature_progression ONLY (4 docs: both PHB Warlocks,
37
- * TCE + Eberron Artificer). `featureType` (camelCase) is the ONLY spelling on all 13 subclass
38
- * optionalfeature_progression containers; `feature_type` (snake) on class/feat/optional-feature —
39
- * true of their optionalfeature_progression containers; `class.feat_progression`'s 16 containers
40
- * carry neither spelling; `required` on 2 subclass docs ({"3": ["Elemental Attunement|PHB"]}).
41
- * Union order is SAFE
42
- * (executed: record.safeParse(array) fails invalid_type). Distribution recorded in T0's census
43
- * baseline — NO test asserts it; §9.3 characterises the SHAPES only. */
44
14
  export declare const progressionSchema: z.ZodObject<{
45
15
  name: z.ZodString;
46
16
  progression: z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodNumber>, z.ZodArray<z.ZodNumber>]>;
@@ -1,10 +1 @@
1
- import {
2
- additionalSpellsEntrySchema,
3
- imageField,
4
- progressionSchema
5
- } from "../chunk-UA5KS2PL.js";
6
- export {
7
- additionalSpellsEntrySchema,
8
- imageField,
9
- progressionSchema
10
- };
1
+ import{additionalSpellsEntrySchema,imageField,progressionSchema}from"../chunk-I26FHSI6.js";export{additionalSpellsEntrySchema,imageField,progressionSchema};
@@ -1,7 +1,5 @@
1
1
  import { z } from "zod";
2
2
  import type { EquipmentGrant, EquipmentOption, StartingEquipmentEntry, StartingGold } from "../types/equipment-grant.js";
3
- /** Every arm stays `.strict()`: one stray key refuses the whole document on purpose (the builder's render path
4
- * maps over grants). The three passthrough keys are DECLARED, not tolerated. */
5
3
  export declare const equipmentGrantSchema: z.ZodType<EquipmentGrant>;
6
4
  export declare const equipmentOptionSchema: z.ZodType<EquipmentOption>;
7
5
  export declare const startingEquipmentEntrySchema: z.ZodType<StartingEquipmentEntry>;
@@ -1,12 +1 @@
1
- import {
2
- equipmentGrantSchema,
3
- equipmentOptionSchema,
4
- startingEquipmentEntrySchema,
5
- startingGoldSchema
6
- } from "../chunk-IN4M4X7P.js";
7
- export {
8
- equipmentGrantSchema,
9
- equipmentOptionSchema,
10
- startingEquipmentEntrySchema,
11
- startingGoldSchema
12
- };
1
+ import{equipmentGrantSchema,equipmentOptionSchema,startingEquipmentEntrySchema,startingGoldSchema}from"../chunk-TKIEPC6F.js";export{equipmentGrantSchema,equipmentOptionSchema,startingEquipmentEntrySchema,startingGoldSchema};
@@ -1,33 +1,6 @@
1
- /** R4-G3a §10.2.1: the SRD bundle spells a race trait's action cost `action_cost`; the canonical key is
2
- * `action`. Alias fills a hole, declared wins, never deleted (the `armor.parser.ts` strength_required
3
- * precedent; the resolver's optional-feature grant alias is the in-repo precedent for the KEY).
4
- *
5
- * No `package.json` exports entry, because the plugin never imports this module: the sheet's resolver
6
- * applies the alias at resolve time through `withResolvedActionCost` (R4-G3a Task 12), and the ONE plugin
7
- * site that reads a race trait's action cost off the RAW registry entity (the race block's tracker gate,
8
- * R4-G3b §11) reads BOTH spellings with a nullish fallback rather than importing this helper. Not imported
9
- * is NOT the same as parser-internal, and the module is not parser-internal: MEASURED 2026-09-04, every
10
- * export here reaches the plugin's built `main.js`, `withResolvedActionCost` through `pc/pc.resolver.ts`
11
- * and the raw-YAML aliasers through the race / class / subclass parsers, which the plugin pulls in with
12
- * `dnd5ePack` (pack → entity types → codecs → parsers). What is parser-only is where the aliasers RUN:
13
- * their three call sites are `race.parser.ts`, `class.parser.ts` and `subclass.parser.ts`, so they fire on
14
- * the entity-note codec path and never on the sheet's, which reads RAW registry objects.
15
- *
16
- * This one is applied on the RAW YAML object before `safeParse`, so the aliased value goes through the
17
- * same enum validation as a declared one (an out-of-vocabulary `action_cost` refuses the document rather
18
- * than smuggling a bad `action` past the schema). */
19
1
  export declare function aliasFeatureActionCost(f: Record<string, unknown>): void;
20
- /** The list form: race `traits[]`, and one level's `features_by_level[lvl]` array. Non-arrays and
21
- * non-object members are left alone; a malformed document is the schema's business, not ours. */
22
2
  export declare function aliasFeatureListActionCost(list: unknown): void;
23
- /** The `features_by_level` record form, shared by the class and subclass parsers. Zero bundle
24
- * carriers live here today; it is aliased for symmetry so a future class-side `action_cost` is
25
- * not a second silent routing bug. */
26
3
  export declare function aliasFeaturesByLevelActionCost(byLevel: unknown): void;
27
- /** Resolve-time mirror of `aliasFeatureActionCost` (R4-G3a Task 12): the PC sheet resolves RAW registry entities
28
- * (never parsed by dnd5e), so the parser-side alias is invisible to it. Returns the same object when nothing applies
29
- * (registry entities are shared and must not be mutated), else a shallow copy with `action` filled from
30
- * `action_cost`. Declared `action` wins. */
31
4
  export declare function withResolvedActionCost<T extends {
32
5
  action?: unknown;
33
6
  action_cost?: unknown;
@@ -1,7 +1,8 @@
1
1
  import { z } from "zod";
2
2
  export declare const featureEffectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
3
  kind: z.ZodLiteral<"initiative-bonus">;
4
- value: z.ZodNumber;
4
+ value: z.ZodOptional<z.ZodNumber>;
5
+ amount: z.ZodOptional<z.ZodString>;
5
6
  condition: z.ZodOptional<z.ZodString>;
6
7
  subject: z.ZodOptional<z.ZodString>;
7
8
  }, z.core.$strip>, z.ZodObject<{
@@ -128,6 +129,7 @@ export declare const featureEffectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
128
129
  unarmed: "unarmed";
129
130
  finesse: "finesse";
130
131
  thrown: "thrown";
132
+ "pact-weapon": "pact-weapon";
131
133
  }>, z.ZodArray<z.ZodEnum<{
132
134
  weapon: "weapon";
133
135
  melee: "melee";
@@ -135,7 +137,17 @@ export declare const featureEffectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
135
137
  unarmed: "unarmed";
136
138
  finesse: "finesse";
137
139
  thrown: "thrown";
140
+ "pact-weapon": "pact-weapon";
138
141
  }>>]>>;
142
+ spell_scope: z.ZodOptional<z.ZodObject<{
143
+ list: z.ZodOptional<z.ZodString>;
144
+ level: z.ZodOptional<z.ZodNumber>;
145
+ school: z.ZodOptional<z.ZodString>;
146
+ damage_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
147
+ damage_type_pick: z.ZodOptional<z.ZodString>;
148
+ spells: z.ZodOptional<z.ZodArray<z.ZodString>>;
149
+ once: z.ZodOptional<z.ZodBoolean>;
150
+ }, z.core.$strict>>;
139
151
  condition: z.ZodOptional<z.ZodString>;
140
152
  subject: z.ZodOptional<z.ZodString>;
141
153
  }, z.core.$strip>, z.ZodObject<{
@@ -224,6 +236,23 @@ export declare const featureEffectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
224
236
  level: z.ZodNumber;
225
237
  count: z.ZodNumber;
226
238
  }, z.core.$strip>>>;
239
+ applies_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
240
+ weapon: "weapon";
241
+ melee: "melee";
242
+ ranged: "ranged";
243
+ unarmed: "unarmed";
244
+ finesse: "finesse";
245
+ thrown: "thrown";
246
+ "pact-weapon": "pact-weapon";
247
+ }>, z.ZodArray<z.ZodEnum<{
248
+ weapon: "weapon";
249
+ melee: "melee";
250
+ ranged: "ranged";
251
+ unarmed: "unarmed";
252
+ finesse: "finesse";
253
+ thrown: "thrown";
254
+ "pact-weapon": "pact-weapon";
255
+ }>>]>>;
227
256
  condition: z.ZodOptional<z.ZodString>;
228
257
  subject: z.ZodOptional<z.ZodString>;
229
258
  }, z.core.$strip>, z.ZodObject<{
@@ -1,6 +1 @@
1
- import {
2
- featureEffectSchema
3
- } from "../chunk-2JSQE3DD.js";
4
- export {
5
- featureEffectSchema
6
- };
1
+ import{featureEffectSchema}from"../chunk-6IC53O3Q.js";export{featureEffectSchema};
@@ -1,10 +1,4 @@
1
1
  import { z } from "zod";
2
2
  import type { Feature } from "../types/feature.js";
3
- /**
4
- * The feature OBJECT, declared once (R4-G6 §4.2). Typed against the `Feature` interface so a wrong leaf fails
5
- * `tsc`; exported UN-REFINED for the monster schema, whose name-only authored traits the hand parser accepted.
6
- * The recursion runs through the REFINED schema so a nested class sub_feature keeps the description-or-entries
7
- * rule; the refined `featureSchema` below keeps its exported `z.ZodType<unknown>` for every other root.
8
- */
9
3
  export declare const featureObjectSchema: z.ZodType<Feature>;
10
4
  export declare const featureSchema: z.ZodType<unknown>;