@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,19 +1 @@
1
- import {
2
- CR_TO_XP,
3
- convertMonsterEntries,
4
- enrichMonster,
5
- getChallengeRatingXP,
6
- getProficiencyBonus,
7
- parseCR
8
- } from "../chunk-6PXTNCBP.js";
9
- import "../chunk-DEEHHLAP.js";
10
- import "../chunk-PDJSUH24.js";
11
- import "../chunk-WELIKLZF.js";
12
- export {
13
- CR_TO_XP,
14
- convertMonsterEntries,
15
- enrichMonster,
16
- getChallengeRatingXP,
17
- getProficiencyBonus,
18
- parseCR
19
- };
1
+ import{CR_TO_XP,convertMonsterEntries,enrichMonster,getChallengeRatingXP,getProficiencyBonus,parseCR}from"../chunk-JXDX2DKF.js";import"../chunk-MGGKZGLG.js";import"../chunk-7FPQJDFD.js";import"../chunk-EVT7MGAC.js";export{CR_TO_XP,convertMonsterEntries,enrichMonster,getChallengeRatingXP,getProficiencyBonus,parseCR};
@@ -1,26 +1,13 @@
1
- /**
2
- * R4-G6 §6 · READ-time decoding of the converter's 5etools-shaped monster leaves. Pure functions; every table is
3
- * DATA in this module (memory: rendering policy from the schema / data, never a switch on game vocabulary in a
4
- * renderer). Every function accepts the authored string / number shape AND the structured shape, and on the
5
- * string / number arms reproduces the plugin renderer's historical output byte for byte (invariant 5: the SRD
6
- * render pins are the proof).
7
- */
8
1
  import type { Abilities } from "../types/index.js";
9
2
  import type { AlignmentEntry, DamageQualifier, MonsterAC, MonsterCRStructured, MonsterGearEntry, MonsterHP, MonsterInitiative, MonsterSectionHeader, MonsterSpeed, MonsterSpellcasting, MonsterTypeStructured } from "./monster.types.js";
10
- /** The plugin renderer's historical helper, byte for byte (`/\b\w/g`), so `player's` becomes `Player'S`. */
11
3
  export declare function capitalizeWords(str: string): string;
12
- /** `capitalizeWords` applied OUTSIDE wikilink targets: the plain text and the ALIAS of `[[target|alias]]` are
13
- * title-cased, the target never is (1,202 `ac[].from` links carry an apostrophe the plain helper mangles). */
14
4
  export declare function capitalizeOutsideLinks(str: string): string;
15
5
  export declare const SIZE_CODES: Readonly<Record<string, string>>;
16
6
  export declare function formatSize(size: string | string[] | undefined, note?: string): string;
17
- /** The FIRST decoded size word, lower-cased: the hit-die table and the edit-mode size select key on it. */
18
7
  export declare function sizeWord(size: string | string[] | undefined): string;
19
8
  export declare const ALIGNMENT_CODES: Readonly<Record<string, string>>;
20
- /** The multi-code SETS 5etools prints as a phrase, keyed by the sorted code set (the measured combos). */
21
9
  export declare const ALIGNMENT_SETS: Readonly<Record<string, string>>;
22
10
  export declare function formatAlignment(alignment: string | (string | AlignmentEntry)[] | undefined, prefix?: string): string;
23
- /** The decoded text lower-cased: the edit-mode alignment selects match on it. */
24
11
  export declare function alignmentWords(alignment: string | (string | AlignmentEntry)[] | undefined): string;
25
12
  export declare const IRREGULAR_PLURALS: Readonly<Record<string, string>>;
26
13
  export declare function formatType(type: string | MonsterTypeStructured | undefined, level?: number): string;
@@ -35,17 +22,9 @@ export interface FormattedCR {
35
22
  xpOverride?: number;
36
23
  }
37
24
  export declare function formatCR(cr: string | MonsterCRStructured | undefined): FormattedCR | undefined;
38
- /** Thousands-separated without `toLocaleString` (ICU-independent, deterministic across Node and Electron). */
39
25
  export declare function formatXP(xp: number): string;
40
- /** The bare `cr` text (today's Challenge value; `formatCR` normalises it before the PB / XP table reads). */
41
26
  export declare function crString(cr: string | MonsterCRStructured | undefined): string | undefined;
42
27
  export declare function challengeLine(cr: string | MonsterCRStructured | undefined, pbNote?: string): string | undefined;
43
- /** R4 {G5, G6} live rider N-3-3: a BRACED entry joins with a SPACE, every other with ", ". The braces
44
- * flag marks an entry that reads as a parenthetical on the one before it ("15 (17 with mage armor)"),
45
- * so emitting the list comma as well gave the Archmage and the converter's Feonor
46
- * `Armor Class. 12, (15 with mage armor)`. The separator therefore belongs to the entry that FOLLOWS
47
- * it, not to the list, which is why this joins by hand rather than with `Array.join`. A braced entry
48
- * that opens the line still stands alone, and two unbraced entries still take the comma. */
49
28
  export declare function formatAC(ac: MonsterAC[] | undefined): string;
50
29
  export declare function formatHP(hp: MonsterHP | undefined): {
51
30
  text: string;
@@ -54,53 +33,15 @@ export declare function formatHP(hp: MonsterHP | undefined): {
54
33
  export declare const SPEED_MODES: readonly ["walk", "fly", "swim", "climb", "burrow"];
55
34
  export type SpeedMode = (typeof SPEED_MODES)[number];
56
35
  export declare function formatSpeed(speed: MonsterSpeed | undefined): string;
57
- /** The numeric part of a speed value, or 0 (the edit-mode number inputs and the `> 0` gates read this). */
58
36
  export declare function speedNumber(speed: MonsterSpeed | undefined, mode: SpeedMode): number;
59
37
  export declare function formatQualifiers(list: (string | DamageQualifier)[] | null | undefined): string[];
60
- /** The STRING entries only (the edit-mode multi-selects are `string[]`; structured entries are merged back on save). */
61
38
  export declare function qualifierStrings(list: (string | DamageQualifier)[] | null | undefined): string[];
62
39
  export declare const INITIATIVE_MODES: Readonly<Record<string, string>>;
63
40
  export declare function formatInitiative(initiative: number | MonsterInitiative | undefined, abilities: Abilities | undefined, pb: number): string | undefined;
64
41
  export declare function formatGear(gear: (string | MonsterGearEntry)[] | undefined): string;
65
- /**
66
- * The Languages line (R4 {G5, G6} live rider 3, Z-9-9). Each entry is title-cased, as this line has always
67
- * been, EXCEPT that the word immediately following an amount keeps the case it was authored in: that word is
68
- * the amount's unit. `capitalizeWords` reached it too, so a block read `Deep Speech; Telepathy 120 Ft.` while
69
- * the Senses line right above printed its own `darkvision 120 ft.` verbatim (Aboleth, Baphomet).
70
- *
71
- * The rule is a SHAPE, not a list of unit words: no vocabulary table enters this formatter. Measured over the
72
- * converter corpus' 4,042 monster notes that carry a `languages` block, the words that follow an amount there
73
- * are `ft` (527), `mile` (10), `miles` (7), `feet` (1), the conjunctions `and` (7) and `or` (2), and NINE
74
- * language names already authored with a capital (`Elvish`, `Common`, `Terran`, `Druidic`, `Ignan`, `Sylvan`,
75
- * `Celestial`, `Draconic`, `Auran`). Keeping the AUTHORED case rather than lower-casing is what leaves those
76
- * language names alone; the two conjunctions stop being title-cased, which is correct English and reaches no
77
- * SRD bundle document (there, `ft` is the only word that ever follows an amount).
78
- *
79
- * What this does NOT change: the rest of an entry's free prose is still title-cased, so
80
- * "understands Common and Deep Speech but can't speak" still renders with each word capitalised. That is the
81
- * line's shipped register and a separate copy question, recorded rather than changed here.
82
- */
83
42
  export declare function formatLanguages(list: string[] | undefined): string;
84
- /**
85
- * A monster's `skills` (and `skills_other.one_of`) KEY to the name a reader sees (R4 {G5, G6} live rider 3,
86
- * Z-9-8). Those keys are written with a separator · the SRD bundle's Donkey carries `animal_handling` and
87
- * `sleight_of_hand` · and `capitalizeWords` only upper-cases the first letter of each WORD, so the separator
88
- * survived and the line read `Animal_handling +0`. The separator is normalised and the CANONICAL list answers;
89
- * a key the list does not know keeps `capitalizeWords`, which is byte for byte what every key rendered before
90
- * (invariant 5: the sixteen one-word skills already agreed with the list, so only the two-word two move).
91
- */
92
43
  export declare function skillDisplayName(key: string): string;
93
44
  export declare function formatSkillsOther(list: unknown[] | undefined): string | undefined;
94
- /**
95
- * The generated legendary-action sentence (R4-G6 spec §6), used only when the document authors no
96
- * `section_headers` row for the section (plugin `monster.sections.ts`).
97
- *
98
- * `short_name` is read exactly as authored: a STRING is the subject verbatim; `true` and `false` both say "this
99
- * document has no separate short name", so the whole name prints; only an ABSENT key derives one through
100
- * `shortNameOfNamed`. Measured over the two shipped corpora (`g7-t8-wE-f1-d9-corpus.txt`): 24 monster documents carry
101
- * a `short_name` (11 `true`, 13 a string) and NONE carries `false`, so the false arm is a contract read from the type,
102
- * not an observed rendering.
103
- */
104
45
  export declare function legendaryIntro(m: {
105
46
  name: string;
106
47
  is_named_creature?: boolean;
@@ -112,24 +53,14 @@ export declare function sectionHeader(m: {
112
53
  mythic_header?: string[];
113
54
  }, section: "legendary_actions" | "mythic" | "reactions"): string[] | undefined;
114
55
  export type PlacedSection = "traits" | "actions" | "bonus_actions" | "reactions" | "legendary_actions";
115
- /** ONE object: the 5etools `displayAs` vocabulary to the stat-block section (the plugin never switches on it). */
116
56
  export declare const DISPLAY_AS_SECTION: Readonly<Record<string, Exclude<PlacedSection, "traits">>>;
117
57
  export declare function displayAsSection(displayAs: string | undefined): PlacedSection;
118
58
  declare const GROUP_ORDER: readonly ["will", "daily", "rest", "restLong", "recharge", "legendary", "charges", "ritual"];
119
- /** ONE label table: EVERY group of `GROUP_ORDER` owns its label text here, so the eight FREQUENCY-group labels are
120
- * DATA; the slot-table wording (`Cantrips (At Will):`, `N Level (N Slots):`) is generated in `spellcastingLines`
121
- * and deliberately outside this table. Title-cased to match the SRD 2024 statblock prose the vault already
122
- * shows beside these entries. `plain` is a plain sub-key's label, and the whole label of the two count-less groups
123
- * `will` and `ritual`; `each` is its `Ne` twin, absent where a group has no twin; `six` is `recharge`'s
124
- * already-at-6 form. `N` stands for the sub-key's count. `charges` alone ends without a colon: `spellcastingLines`
125
- * appends ` (chargesItem):` after it (§8.2). The KEY type is `GROUP_ORDER`'s union, so a ninth group without a row
126
- * is a compile error rather than a runtime `undefined`. */
127
59
  export declare const SPELLCASTING_LABELS: Readonly<Record<(typeof GROUP_ORDER)[number], {
128
60
  plain: string;
129
61
  each?: string;
130
62
  six?: string;
131
63
  }>>;
132
64
  export declare function spellcastingLines(block: MonsterSpellcasting): string[];
133
- /** The measured node vocabulary to markdown; never throws; an unknown type recurses into its children only. */
134
65
  export declare function entriesToMarkdown(tree: unknown): string;
135
66
  export {};
@@ -1,78 +1 @@
1
- import {
2
- ALIGNMENT_CODES,
3
- ALIGNMENT_SETS,
4
- DISPLAY_AS_SECTION,
5
- INITIATIVE_MODES,
6
- IRREGULAR_PLURALS,
7
- SIZE_CODES,
8
- SPEED_MODES,
9
- SPELLCASTING_LABELS,
10
- alignmentWords,
11
- capitalizeOutsideLinks,
12
- capitalizeWords,
13
- challengeLine,
14
- crString,
15
- displayAsSection,
16
- entriesToMarkdown,
17
- formatAC,
18
- formatAlignment,
19
- formatCR,
20
- formatGear,
21
- formatHP,
22
- formatInitiative,
23
- formatLanguages,
24
- formatQualifiers,
25
- formatSize,
26
- formatSkillsOther,
27
- formatSpeed,
28
- formatType,
29
- formatXP,
30
- legendaryIntro,
31
- qualifierStrings,
32
- sectionHeader,
33
- sizeWord,
34
- skillDisplayName,
35
- speedNumber,
36
- spellcastingLines
37
- } from "../chunk-2FRUSVZS.js";
38
- import "../chunk-6PXTNCBP.js";
39
- import "../chunk-DEEHHLAP.js";
40
- import "../chunk-PDJSUH24.js";
41
- import "../chunk-WELIKLZF.js";
42
- export {
43
- ALIGNMENT_CODES,
44
- ALIGNMENT_SETS,
45
- DISPLAY_AS_SECTION,
46
- INITIATIVE_MODES,
47
- IRREGULAR_PLURALS,
48
- SIZE_CODES,
49
- SPEED_MODES,
50
- SPELLCASTING_LABELS,
51
- alignmentWords,
52
- capitalizeOutsideLinks,
53
- capitalizeWords,
54
- challengeLine,
55
- crString,
56
- displayAsSection,
57
- entriesToMarkdown,
58
- formatAC,
59
- formatAlignment,
60
- formatCR,
61
- formatGear,
62
- formatHP,
63
- formatInitiative,
64
- formatLanguages,
65
- formatQualifiers,
66
- formatSize,
67
- formatSkillsOther,
68
- formatSpeed,
69
- formatType,
70
- formatXP,
71
- legendaryIntro,
72
- qualifierStrings,
73
- sectionHeader,
74
- sizeWord,
75
- skillDisplayName,
76
- speedNumber,
77
- spellcastingLines
78
- };
1
+ import{ALIGNMENT_CODES,ALIGNMENT_SETS,DISPLAY_AS_SECTION,INITIATIVE_MODES,IRREGULAR_PLURALS,SIZE_CODES,SPEED_MODES,SPELLCASTING_LABELS,alignmentWords,capitalizeOutsideLinks,capitalizeWords,challengeLine,crString,displayAsSection,entriesToMarkdown,formatAC,formatAlignment,formatCR,formatGear,formatHP,formatInitiative,formatLanguages,formatQualifiers,formatSize,formatSkillsOther,formatSpeed,formatType,formatXP,legendaryIntro,qualifierStrings,sectionHeader,sizeWord,skillDisplayName,speedNumber,spellcastingLines}from"../chunk-BCXGB4HP.js";import"../chunk-JXDX2DKF.js";import"../chunk-MGGKZGLG.js";import"../chunk-7FPQJDFD.js";import"../chunk-EVT7MGAC.js";export{ALIGNMENT_CODES,ALIGNMENT_SETS,DISPLAY_AS_SECTION,INITIATIVE_MODES,IRREGULAR_PLURALS,SIZE_CODES,SPEED_MODES,SPELLCASTING_LABELS,alignmentWords,capitalizeOutsideLinks,capitalizeWords,challengeLine,crString,displayAsSection,entriesToMarkdown,formatAC,formatAlignment,formatCR,formatGear,formatHP,formatInitiative,formatLanguages,formatQualifiers,formatSize,formatSkillsOther,formatSpeed,formatType,formatXP,legendaryIntro,qualifierStrings,sectionHeader,sizeWord,skillDisplayName,speedNumber,spellcastingLines};
@@ -1,8 +1,4 @@
1
1
  import type { Monster } from "./monster.types.js";
2
2
  import type { ParseResult } from "@archivist-gg/core";
3
- /**
4
- * R4-G6 §4.1 · the hand parser's tolerances made explicit, BEFORE `safeParse`. Each step rewrites only a shape the
5
- * old parser already rewrote, coerced or dropped; the converter corpora are untouched by it (0 / 0 / 0 measured).
6
- */
7
3
  export declare function migrateLegacy(raw: Record<string, unknown>): void;
8
4
  export declare function parseMonster(source: string): ParseResult<Monster>;
@@ -1,15 +1 @@
1
- import {
2
- migrateLegacy,
3
- parseMonster
4
- } from "../chunk-JCMUVZIK.js";
5
- import "../chunk-7ATNGKBS.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
- migrateLegacy,
14
- parseMonster
15
- };
1
+ import{migrateLegacy,parseMonster}from"../chunk-6ASJ3MVB.js";import"../chunk-QFIGPOFW.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{migrateLegacy,parseMonster};
@@ -1,9 +1,5 @@
1
1
  import type { ResolveContext } from "@archivist-gg/core";
2
2
  import type { MonsterRaw } from "./monster.codec.js";
3
- /**
4
- * Light, non-mutating derivation: computes proficiency bonus and XP from the
5
- * monster's challenge rating. Returns a new object; the input `raw` is untouched.
6
- */
7
3
  export declare function resolveMonster(raw: MonsterRaw, _ctx: ResolveContext): MonsterRaw & {
8
4
  proficiency_bonus: number;
9
5
  xp: number;
@@ -1,11 +1,3 @@
1
- /**
2
- * R4-G6 §3 · the monster schema. Every key the converter and the SRD bundle emit is DECLARED (79 converter keys +
3
- * `name`, `subtype`, `columns`, `slug` / `edition` / `source`, `image` / `thumbnail`, `raw`). An undeclared TOP-LEVEL key
4
- * relocates to `raw` (the parser's extras copy); an undeclared NESTED key is stripped and the converter census reports
5
- * it (plain `z.object` on every nested container: Gate 0 Q1). No `.default()`; no `.min(1)` on `rendering_hint`
6
- * (always `""`); one nullable spelling. `satisfies` (never an annotation) keeps `.shape`, which `MONSTER_KNOWN_KEYS`
7
- * and the parity test read.
8
- */
9
1
  import { z } from "zod";
10
2
  import type { DamageQualifier } from "./monster.types.js";
11
3
  export declare const damageQualifierSchema: z.ZodType<DamageQualifier>;
@@ -347,7 +339,6 @@ export declare const monsterSchema: z.ZodObject<{
347
339
  has_token: z.ZodOptional<z.ZodBoolean>;
348
340
  token_credit: z.ZodOptional<z.ZodString>;
349
341
  token_custom: z.ZodOptional<z.ZodBoolean>;
350
- foundry_token_scale: z.ZodOptional<z.ZodNumber>;
351
342
  sound_clip: z.ZodOptional<z.ZodObject<{
352
343
  type: z.ZodString;
353
344
  path: z.ZodString;
@@ -1,34 +1 @@
1
- import {
2
- MONSTER_KNOWN_KEYS,
3
- alignmentEntrySchema,
4
- damageQualifierSchema,
5
- gearEntrySchema,
6
- initiativeSchema,
7
- monsterACSchema,
8
- monsterCRSchema,
9
- monsterHPSchema,
10
- monsterSchema,
11
- monsterSpeedSchema,
12
- monsterSpellcastingSchema,
13
- monsterTypeSchema
14
- } from "../chunk-7ATNGKBS.js";
15
- import "../chunk-YD2VAHA6.js";
16
- import "../chunk-WYGD2UGN.js";
17
- import "../chunk-ZJXSXVFP.js";
18
- import "../chunk-5MXFW4O3.js";
19
- import "../chunk-2JSQE3DD.js";
20
- import "../chunk-UA5KS2PL.js";
21
- export {
22
- MONSTER_KNOWN_KEYS,
23
- alignmentEntrySchema,
24
- damageQualifierSchema,
25
- gearEntrySchema,
26
- initiativeSchema,
27
- monsterACSchema,
28
- monsterCRSchema,
29
- monsterHPSchema,
30
- monsterSchema,
31
- monsterSpeedSchema,
32
- monsterSpellcastingSchema,
33
- monsterTypeSchema
34
- };
1
+ import{MONSTER_KNOWN_KEYS,alignmentEntrySchema,damageQualifierSchema,gearEntrySchema,initiativeSchema,monsterACSchema,monsterCRSchema,monsterHPSchema,monsterSchema,monsterSpeedSchema,monsterSpellcastingSchema,monsterTypeSchema}from"../chunk-QFIGPOFW.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{MONSTER_KNOWN_KEYS,alignmentEntrySchema,damageQualifierSchema,gearEntrySchema,initiativeSchema,monsterACSchema,monsterCRSchema,monsterHPSchema,monsterSchema,monsterSpeedSchema,monsterSpellcastingSchema,monsterTypeSchema};
@@ -77,7 +77,6 @@ export interface Monster {
77
77
  has_token?: boolean;
78
78
  token_credit?: string;
79
79
  token_custom?: boolean;
80
- foundry_token_scale?: number;
81
80
  sound_clip?: MonsterSoundClip;
82
81
  alt_art?: MonsterAltArt[];
83
82
  image?: string | string[];
@@ -185,8 +184,6 @@ export interface MonsterSpellcasting {
185
184
  charges?: Record<string, MonsterSpellEntry[]>;
186
185
  chargesItem?: string;
187
186
  }
188
- /** `advantage_mode` is a STRING, decoded by `INITIATIVE_MODES` in monster.format.ts (never a closed enum: a hand-typed
189
- * 5etools `adv` must not refuse the document). */
190
187
  export interface MonsterInitiative {
191
188
  proficiency?: number;
192
189
  advantage_mode?: string;
@@ -1 +1 @@
1
- import "../chunk-IKSMX4TN.js";
1
+ import"../chunk-IKSMX4TN.js";
@@ -1,14 +1,3 @@
1
1
  import type { DocCodec } from "@archivist-gg/core";
2
2
  import type { OptionalFeatureEntity } from "@archivist-gg/dnd5e/types/optional-feature.types";
3
- /**
4
- * Normalizing codec (0c.1a). `parse` delegates to `parseOptionalFeature`, which
5
- * seeds the `edition: "2014"` default and validates against
6
- * `optionalFeatureEntitySchema`. `serialize` stays `yaml.dump` (the edit-save
7
- * path uses obsidian's separate serializer; gate (d) verifies `yaml.dump`
8
- * round-trips through `parseOptionalFeature`).
9
- *
10
- * SPECIAL (0c.1a Task 7): the entity type already lives at
11
- * `@archivist-gg/dnd5e/types/optional-feature.types` (moved in 0c.0), so the codec
12
- * imports it from there rather than a sibling `./optional-feature.types`.
13
- */
14
3
  export declare const optionalFeatureCodec: DocCodec<OptionalFeatureEntity>;
@@ -1,13 +1 @@
1
- import {
2
- optionalFeatureCodec
3
- } from "../chunk-G6PBI2BU.js";
4
- import "../chunk-PQZ4LM4Z.js";
5
- import "../chunk-DOXSFYLH.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
- optionalFeatureCodec
13
- };
1
+ import{optionalFeatureCodec}from"../chunk-GIOV6JW7.js";import"../chunk-DZKSXSJF.js";import"../chunk-I4O2FIDT.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{optionalFeatureCodec};
@@ -1,12 +1 @@
1
- import {
2
- parseOptionalFeature
3
- } from "../chunk-PQZ4LM4Z.js";
4
- import "../chunk-DOXSFYLH.js";
5
- import "../chunk-WYGD2UGN.js";
6
- import "../chunk-ZJXSXVFP.js";
7
- import "../chunk-5MXFW4O3.js";
8
- import "../chunk-2JSQE3DD.js";
9
- import "../chunk-UA5KS2PL.js";
10
- export {
11
- parseOptionalFeature
12
- };
1
+ import{parseOptionalFeature}from"../chunk-DZKSXSJF.js";import"../chunk-I4O2FIDT.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{parseOptionalFeature};
@@ -166,7 +166,8 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
166
166
  available_to: z.ZodArray<z.ZodString>;
167
167
  effects: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
168
168
  kind: z.ZodLiteral<"initiative-bonus">;
169
- value: z.ZodNumber;
169
+ value: z.ZodOptional<z.ZodNumber>;
170
+ amount: z.ZodOptional<z.ZodString>;
170
171
  condition: z.ZodOptional<z.ZodString>;
171
172
  subject: z.ZodOptional<z.ZodString>;
172
173
  }, z.core.$strip>, z.ZodObject<{
@@ -293,6 +294,7 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
293
294
  unarmed: "unarmed";
294
295
  finesse: "finesse";
295
296
  thrown: "thrown";
297
+ "pact-weapon": "pact-weapon";
296
298
  }>, z.ZodArray<z.ZodEnum<{
297
299
  weapon: "weapon";
298
300
  melee: "melee";
@@ -300,7 +302,17 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
300
302
  unarmed: "unarmed";
301
303
  finesse: "finesse";
302
304
  thrown: "thrown";
305
+ "pact-weapon": "pact-weapon";
303
306
  }>>]>>;
307
+ spell_scope: z.ZodOptional<z.ZodObject<{
308
+ list: z.ZodOptional<z.ZodString>;
309
+ level: z.ZodOptional<z.ZodNumber>;
310
+ school: z.ZodOptional<z.ZodString>;
311
+ damage_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
312
+ damage_type_pick: z.ZodOptional<z.ZodString>;
313
+ spells: z.ZodOptional<z.ZodArray<z.ZodString>>;
314
+ once: z.ZodOptional<z.ZodBoolean>;
315
+ }, z.core.$strict>>;
304
316
  condition: z.ZodOptional<z.ZodString>;
305
317
  subject: z.ZodOptional<z.ZodString>;
306
318
  }, z.core.$strip>, z.ZodObject<{
@@ -389,6 +401,23 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
389
401
  level: z.ZodNumber;
390
402
  count: z.ZodNumber;
391
403
  }, z.core.$strip>>>;
404
+ applies_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
405
+ weapon: "weapon";
406
+ melee: "melee";
407
+ ranged: "ranged";
408
+ unarmed: "unarmed";
409
+ finesse: "finesse";
410
+ thrown: "thrown";
411
+ "pact-weapon": "pact-weapon";
412
+ }>, z.ZodArray<z.ZodEnum<{
413
+ weapon: "weapon";
414
+ melee: "melee";
415
+ ranged: "ranged";
416
+ unarmed: "unarmed";
417
+ finesse: "finesse";
418
+ thrown: "thrown";
419
+ "pact-weapon": "pact-weapon";
420
+ }>>]>>;
392
421
  condition: z.ZodOptional<z.ZodString>;
393
422
  subject: z.ZodOptional<z.ZodString>;
394
423
  }, z.core.$strip>, z.ZodObject<{
@@ -1,15 +1 @@
1
- import {
2
- infuseBlockSchema,
3
- optionRowSchema,
4
- optionalFeatureEntitySchema
5
- } from "../chunk-DOXSFYLH.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
- infuseBlockSchema,
13
- optionRowSchema,
14
- optionalFeatureEntitySchema
15
- };
1
+ import{infuseBlockSchema,optionRowSchema,optionalFeatureEntitySchema}from"../chunk-I4O2FIDT.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-KBFSJ5WE.js";import"../chunk-6IC53O3Q.js";import"../chunk-I26FHSI6.js";export{infuseBlockSchema,optionRowSchema,optionalFeatureEntitySchema};
package/dist/pack.d.ts CHANGED
@@ -1,11 +1,2 @@
1
1
  import type { SystemPack } from "@archivist-gg/core";
2
- /**
3
- * The real `dnd5e` SystemPack. It owns the parse/resolve/generate contract for
4
- * D&D 5e entity types via their {@link EntityType} definitions; presentation
5
- * (renderer/edit/modal) stays in the obsidian package. It is the only pack the
6
- * kernel registers.
7
- *
8
- * All 12 authored types are ported, plus the two generate-only types (npc and
9
- * encounter); a new entity type joins by appending its EntityType here.
10
- */
11
2
  export declare const dnd5ePack: SystemPack;
@@ -1,6 +1 @@
1
- import {
2
- CONDITION_SLUGS
3
- } from "../chunk-S7REMWW4.js";
4
- export {
5
- CONDITION_SLUGS
6
- };
1
+ import{CONDITION_SLUGS}from"../chunk-KM75CC6Q.js";export{CONDITION_SLUGS};
@@ -1,8 +1 @@
1
- import {
2
- DECISION_SIGNAL,
3
- recognizeDecision
4
- } from "../chunk-YHYTW5QA.js";
5
- export {
6
- DECISION_SIGNAL,
7
- recognizeDecision
8
- };
1
+ import{DECISION_SIGNAL,recognizeDecision}from"../chunk-3LWOVRLA.js";export{DECISION_SIGNAL,recognizeDecision};
@@ -3,23 +3,13 @@ import type { RaceEntity } from "@archivist-gg/dnd5e/race/race.types";
3
3
  import type { FeatEntity } from "@archivist-gg/dnd5e/feat/feat.types";
4
4
  import type { Spell } from "@archivist-gg/dnd5e/spell/spell.types";
5
5
  import type { Ability } from "@archivist-gg/dnd5e";
6
- import type { ResolvedClass, ResolvedSpell } from "./pc.types.js";
6
+ import type { ChoiceValue, ResolvedClass, ResolvedPool, ResolvedSpell } from "./pc.types.js";
7
7
  export declare const prefixOf: (slug: string) => string;
8
- /** §5.2.2 · a raw 5etools / bundle spell ref → the bare NAME slug. The path tail is taken ONLY for a wikilink; a bare
9
- * name may legally contain "/" ("blindness/deafness" → "blindnessdeafness", the converter's own slug tail · Gate 0 B1).
10
- * The "|source" token is DISCARDED (no abbreviation table exists anywhere); "#c"/"#2" are redundant with entity.level. */
11
8
  export declare function normalizeSpellRef(ref: unknown): string | null;
12
9
  export interface SpellNameIndex {
13
10
  byName: Map<string, RegisteredEntity[]>;
14
11
  }
15
- /** At most ONE scan of the spell bucket per resolve(), keyed on slugify(entity name) · NEVER on the slug tail (Gate 0
16
- * B2: the generators hyphenate "/" where dnd5e's slugify deletes it, so three bundle spells differ). Built LAZILY by
17
- * its caller, on the first leaf that CALLS `resolveSpellByName` (the argument is evaluated whatever step then
18
- * resolves it), so a character with no `additional_spells` leaf pays nothing for it. */
19
12
  export declare function buildSpellNameIndex(entities: EntityRegistry): SpellNameIndex;
20
- /** §5.2.3 · deterministic, no minted vocabulary: (0) the character's own copy · (a) the carrier's compendium exactly ·
21
- * (b) same compendium → same edition (skipped when either side lacks one) → lowest full slug · (c) MISS → null + warnOnce ·
22
- * (d) ambiguity after (i)+(ii) → (iii) decides AND warnOnce (the decision-engine byBare precedent). */
23
13
  export declare function resolveSpellByName(opts: {
24
14
  entities: EntityRegistry;
25
15
  index: SpellNameIndex;
@@ -31,10 +21,8 @@ export declare function resolveSpellByName(opts: {
31
21
  entity: Spell;
32
22
  slug: string;
33
23
  } | null;
34
- /** §5.2.9 · fold a race's entries ONLY when no select-inline on race.choices[] / traits[].choices[] / nested option.choices[]
35
- * carries an id outside the structural set (nested: zero carriers, defensive). */
36
24
  export declare function raceIsUngated(race: RaceEntity): boolean;
37
- /** §5.2.1 · the reader. Every object it receives is the RAW registry entity; nothing is mutated. */
25
+ export declare function chosenRaceOptionKeys(race: RaceEntity, read: (id: string) => ChoiceValue | undefined): Set<string>;
38
26
  export declare function collectAdditionalSpells(args: {
39
27
  race: RaceEntity | null;
40
28
  feats: FeatEntity[];
@@ -44,4 +32,6 @@ export declare function collectAdditionalSpells(args: {
44
32
  alreadyCollected: ResolvedSpell[];
45
33
  entities: EntityRegistry;
46
34
  warnings: string[];
35
+ raceChoice?: (id: string) => ChoiceValue | undefined;
36
+ pools?: ReadonlyArray<ResolvedPool>;
47
37
  }): ResolvedSpell[];
@@ -1,23 +1 @@
1
- import {
2
- buildSpellNameIndex,
3
- collectAdditionalSpells,
4
- normalizeSpellRef,
5
- prefixOf,
6
- raceIsUngated,
7
- resolveSpellByName
8
- } from "../chunk-VRV3NNTA.js";
9
- import "../chunk-PVCEA4HZ.js";
10
- import "../chunk-LVQLWRCU.js";
11
- import "../chunk-ZCTUYGNV.js";
12
- import "../chunk-7Q2VPKCD.js";
13
- import "../chunk-ZDAEGJH4.js";
14
- import "../chunk-WELIKLZF.js";
15
- import "../chunk-UA5KS2PL.js";
16
- export {
17
- buildSpellNameIndex,
18
- collectAdditionalSpells,
19
- normalizeSpellRef,
20
- prefixOf,
21
- raceIsUngated,
22
- resolveSpellByName
23
- };
1
+ import{buildSpellNameIndex,chosenRaceOptionKeys,collectAdditionalSpells,normalizeSpellRef,prefixOf,raceIsUngated,resolveSpellByName}from"../chunk-A7H6LX47.js";import"../chunk-UBUKCRZ3.js";import"../chunk-DY6FVAGA.js";import"../chunk-CMIEZQL4.js";import"../chunk-BGX36NPE.js";import"../chunk-O776WL7O.js";import"../chunk-DVUXUIPV.js";import"../chunk-YGH7S5ZF.js";import"../chunk-4IAMSRHD.js";import"../chunk-DZITM5AG.js";import"../chunk-PZ4L2EEG.js";import"../chunk-QMEKQTUT.js";import"../chunk-63YJPWTM.js";import"../chunk-4KVVAENP.js";import"../chunk-7EL3GWWJ.js";import"../chunk-BREHZNTL.js";import"../chunk-7FPQJDFD.js";import"../chunk-EVT7MGAC.js";import"../chunk-I26FHSI6.js";export{buildSpellNameIndex,chosenRaceOptionKeys,collectAdditionalSpells,normalizeSpellRef,prefixOf,raceIsUngated,resolveSpellByName};
@@ -1,32 +1,16 @@
1
- /**
2
- * D2b-A · the numbers an amount resolves against (design §1.2 A). The modifier and the save DC are those of the class
3
- * that OWNS the feature or grants the spell (multiclass: the granting class, user ruling 2026-09-27).
4
- */
5
1
  import type { Ability } from "@archivist-gg/dnd5e/types/choice";
6
2
  import type { Spell } from "@archivist-gg/dnd5e/spell/spell.types";
7
- import type { AmountBindings } from "@archivist-gg/dnd5e/dnd/amount-text";
8
- import type { DerivedStats, FeatureSource, ResolvedCharacter, ResolvedSpell } from "./pc.types.js";
9
- /** The derived fields the bindings read (recalc builds them before its return; the sheet passes `ctx.derived`). */
3
+ import { type AmountBindings } from "@archivist-gg/dnd5e/dnd/amount-text";
4
+ import type { DerivedStats, FeatureSource, ResolvedCharacter, ResolvedSpell, SpellDamageRider } from "./pc.types.js";
10
5
  export type AmountDerived = Pick<DerivedStats, "proficiencyBonus" | "mods" | "spellcastingClasses"> & Partial<Pick<DerivedStats, "abilitySpellcasting">>;
11
- /** The class slug that owns `source`: a class by its slug, a subclass by the class that holds it, a feat through the
12
- * slot it was taken at (`via`), a pool member through its pool's class. Null for race, background and campaign. */
13
6
  export declare function ownerClassSlug(source: FeatureSource | undefined, resolved: Pick<ResolvedCharacter, "classes">): string | null;
14
- /** The bindings an amount owned by `owner` resolves against: `class_level` is the OWNING class's level (the total level
15
- * for a race, background or unowned source), `spell_mod` / `spell_dc` come from that class's spellcasting row, else
16
- * the first caster's, else they stay unbound (the amount prints its words or a label). */
17
7
  export declare function amountBindingsFor(owner: FeatureSource | undefined, resolved: Pick<ResolvedCharacter, "classes" | "totalLevel">, derived: AmountDerived): AmountBindings;
18
- /** How a spell is cast: its ability, save DC and attack bonus. A grant that carries its OWN ability (a feat's chosen
19
- * ability, a race grant, a class-less row) reads `abilitySpellcasting`; every other spell reads its class's row, else
20
- * the first caster's. The one lookup the Spells tab's DC, attack and effect cells share. */
21
8
  export declare function spellcastingFor(spell: Pick<ResolvedSpell, "source" | "classSlug" | "ability">, derived: AmountDerived): {
22
9
  ability: Ability;
23
10
  saveDC: number;
24
11
  attackBonus: number;
25
12
  } | null;
26
- /** The bindings a spell's effect resolves against: its caster's modifier and save DC (see {@link spellcastingFor}). */
27
13
  export declare function spellAmountBindings(spell: Pick<ResolvedSpell, "source" | "classSlug" | "ability">, resolved: Pick<ResolvedCharacter, "classes" | "totalLevel">, derived: AmountDerived): AmountBindings;
28
- /** What a spell adds to its base roll ONCE, in token form: `{spell_mod}` when its text reads "<the base roll> plus (or
29
- * +) your spellcasting (ability) modifier" (35 vault notes: Healing Word, Cure Wounds, Spiritual Weapon, ...), else
30
- * null. Read from the note's own words at read time; the roll must be the one the phrase follows, so a spell whose
31
- * modifier rides a different roll (a heal beside a damage roll) adds nothing. */
32
14
  export declare function spellRollBonus(spell: Pick<Spell, "damage_roll" | "description">): string | null;
15
+ export declare function addSpellDamageRiders(roll: string, spell: Pick<ResolvedSpell, "slug" | "entity">, derived: Partial<Pick<DerivedStats, "spellDamageRiders">>): string;
16
+ export declare function spellDamageRiderLines(spell: Pick<ResolvedSpell, "slug" | "entity">, derived: Partial<Pick<DerivedStats, "spellDamageRiders">>): Array<Pick<SpellDamageRider, "amount" | "damage_type" | "source" | "condition">>;
@@ -1,23 +1 @@
1
- import {
2
- amountBindingsFor,
3
- ownerClassSlug,
4
- spellAmountBindings,
5
- spellRollBonus,
6
- spellcastingFor
7
- } from "../chunk-PXVNAY7T.js";
8
- import "../chunk-KR6JF3BF.js";
9
- import "../chunk-KSTV7J2U.js";
10
- import "../chunk-DPUJDOKV.js";
11
- import "../chunk-IUAAXXNO.js";
12
- import "../chunk-LVQLWRCU.js";
13
- import "../chunk-EVMUJYUD.js";
14
- import "../chunk-VTTA2ALZ.js";
15
- import "../chunk-PDJSUH24.js";
16
- import "../chunk-WELIKLZF.js";
17
- export {
18
- amountBindingsFor,
19
- ownerClassSlug,
20
- spellAmountBindings,
21
- spellRollBonus,
22
- spellcastingFor
23
- };
1
+ import{addSpellDamageRiders,amountBindingsFor,ownerClassSlug,spellAmountBindings,spellDamageRiderLines,spellRollBonus,spellcastingFor}from"../chunk-MC6PLWRZ.js";import"../chunk-PZ3ZZ5H5.js";import"../chunk-PZUPZBTN.js";import"../chunk-NI364WV7.js";import"../chunk-DY6FVAGA.js";import"../chunk-CMIEZQL4.js";import"../chunk-BGX36NPE.js";import"../chunk-O776WL7O.js";import"../chunk-DVUXUIPV.js";import"../chunk-YGH7S5ZF.js";import"../chunk-4IAMSRHD.js";import"../chunk-DZITM5AG.js";import"../chunk-PZ4L2EEG.js";import"../chunk-QMEKQTUT.js";import"../chunk-VIP3FH2O.js";import"../chunk-EAARMPCW.js";import"../chunk-CAPYNIGK.js";import"../chunk-63YJPWTM.js";import"../chunk-BREHZNTL.js";import"../chunk-7FPQJDFD.js";import"../chunk-EVT7MGAC.js";export{addSpellDamageRiders,amountBindingsFor,ownerClassSlug,spellAmountBindings,spellDamageRiderLines,spellRollBonus,spellcastingFor};