@archivist-gg/dnd5e 0.3.19 → 0.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) 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-2NUDWOFG.js +1 -0
  16. package/dist/chunk-3LWOVRLA.js +1 -0
  17. package/dist/chunk-3QQOATV3.js +1 -0
  18. package/dist/chunk-4E2GIWJE.js +1 -0
  19. package/dist/chunk-4GN3GYMP.js +1 -0
  20. package/dist/chunk-4IAMSRHD.js +1 -0
  21. package/dist/chunk-4JEF3CET.js +1 -0
  22. package/dist/chunk-4KVVAENP.js +1 -0
  23. package/dist/chunk-4SYAKWY4.js +1 -0
  24. package/dist/chunk-56JK6VCL.js +1 -0
  25. package/dist/chunk-5XDCM6YK.js +1 -0
  26. package/dist/chunk-63YJPWTM.js +1 -0
  27. package/dist/chunk-6R46KYGU.js +1 -0
  28. package/dist/chunk-6W253VHH.js +1 -0
  29. package/dist/chunk-72PRMZRD.js +1 -0
  30. package/dist/chunk-757KM22B.js +1 -0
  31. package/dist/chunk-7EL3GWWJ.js +1 -0
  32. package/dist/chunk-7FPQJDFD.js +1 -0
  33. package/dist/chunk-AINRPPLH.js +1 -0
  34. package/dist/chunk-BC52J4LA.js +1 -0
  35. package/dist/chunk-BCXGB4HP.js +1 -0
  36. package/dist/chunk-BREHZNTL.js +1 -0
  37. package/dist/chunk-BZ6BGGZS.js +1 -0
  38. package/dist/chunk-CAPYNIGK.js +1 -0
  39. package/dist/chunk-CCAVZANF.js +1 -0
  40. package/dist/chunk-CCFIINBA.js +1 -0
  41. package/dist/chunk-CEHL7PPC.js +1 -0
  42. package/dist/chunk-CMIEZQL4.js +1 -0
  43. package/dist/chunk-CNMHADNV.js +1 -0
  44. package/dist/chunk-CSTAQQGX.js +1 -0
  45. package/dist/chunk-DTB7YBMZ.js +1 -0
  46. package/dist/chunk-DVUXUIPV.js +1 -0
  47. package/dist/chunk-DZITM5AG.js +1 -0
  48. package/dist/chunk-E3MS4M3N.js +1 -0
  49. package/dist/chunk-E7KFJLDR.js +1 -0
  50. package/dist/chunk-EAARMPCW.js +1 -0
  51. package/dist/chunk-EPA24PVZ.js +1 -0
  52. package/dist/chunk-ETDMOGFO.js +1 -0
  53. package/dist/chunk-EVT7MGAC.js +1 -0
  54. package/dist/chunk-FOLHTMSC.js +1 -0
  55. package/dist/chunk-GCYUCIDN.js +1 -0
  56. package/dist/chunk-GD7WRCNH.js +1 -0
  57. package/dist/chunk-GGQDQSIF.js +1 -0
  58. package/dist/chunk-GIQLIBC7.js +1 -0
  59. package/dist/chunk-HX7WBOKR.js +1 -0
  60. package/dist/chunk-I26FHSI6.js +1 -0
  61. package/dist/chunk-IHPLT2ZT.js +1 -0
  62. package/dist/chunk-J3RP5C7L.js +1 -0
  63. package/dist/chunk-J5GL6FLP.js +1 -0
  64. package/dist/chunk-JXDX2DKF.js +1 -0
  65. package/dist/chunk-KEXSF3CH.js +1 -0
  66. package/dist/chunk-KM75CC6Q.js +1 -0
  67. package/dist/chunk-L2DXF7YS.js +1 -0
  68. package/dist/chunk-LHH5XSEA.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-MGGKZGLG.js +1 -0
  73. package/dist/chunk-NEMX7QGG.js +1 -0
  74. package/dist/chunk-NIWLD33X.js +1 -0
  75. package/dist/chunk-NU2Z7MTS.js +1 -0
  76. package/dist/chunk-NYPH7RQN.js +1 -0
  77. package/dist/chunk-NYTR6NJS.js +1 -0
  78. package/dist/chunk-O2QZ73GA.js +1 -0
  79. package/dist/chunk-O776WL7O.js +1 -0
  80. package/dist/chunk-ONCXJMJM.js +1 -0
  81. package/dist/chunk-OTRH62HY.js +1 -0
  82. package/dist/chunk-PFQPP77Q.js +1 -0
  83. package/dist/chunk-PKIMOVQG.js +1 -0
  84. package/dist/chunk-PZ3ZZ5H5.js +1 -0
  85. package/dist/chunk-PZ4L2EEG.js +1 -0
  86. package/dist/chunk-QMEKQTUT.js +1 -0
  87. package/dist/chunk-QVWT67WA.js +1 -0
  88. package/dist/chunk-RE5Z5RNK.js +1 -0
  89. package/dist/chunk-RHIEOYDX.js +1 -0
  90. package/dist/chunk-RQZCGXUZ.js +1 -0
  91. package/dist/chunk-S5UCI27C.js +1 -0
  92. package/dist/chunk-SEOASDO4.js +1 -0
  93. package/dist/chunk-SFK57JAA.js +1 -0
  94. package/dist/chunk-SU4MEZ5P.js +1 -0
  95. package/dist/chunk-T55DELVL.js +1 -0
  96. package/dist/chunk-TKIEPC6F.js +1 -0
  97. package/dist/chunk-UBUKCRZ3.js +1 -0
  98. package/dist/chunk-VA3ZWV7C.js +1 -0
  99. package/dist/chunk-VIP3FH2O.js +1 -0
  100. package/dist/chunk-VTQ4RWEG.js +1 -0
  101. package/dist/chunk-VVJXZZ4Z.js +1 -0
  102. package/dist/chunk-WAUNLUFQ.js +1 -0
  103. package/dist/chunk-X22SISGM.js +1 -0
  104. package/dist/chunk-XKJXT2PN.js +1 -0
  105. package/dist/chunk-XPF53K54.js +1 -0
  106. package/dist/chunk-YGH7S5ZF.js +1 -0
  107. package/dist/chunk-ZE46ADXS.js +1 -0
  108. package/dist/chunk-ZI3FEUX3.js +1 -0
  109. package/dist/chunk-ZS5BMNXC.js +1 -0
  110. package/dist/chunk-ZVL5FXXO.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 +4 -3
  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 +3 -30
  128. package/dist/dnd/amount-text.js +1 -15
  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 +0 -15
  151. package/dist/entities/registry-revision.js +1 -10
  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 +46 -4
  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 -141495
  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 +5 -0
  182. package/dist/item/item.schema.js +1 -11
  183. package/dist/item/item.types.d.ts +5 -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 +44 -3
  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 +0 -24
  205. package/dist/pc/pc.additional-spells.js +1 -26
  206. package/dist/pc/pc.amount-bindings.d.ts +3 -28
  207. package/dist/pc/pc.amount-bindings.js +1 -28
  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 +6 -145
  215. package/dist/pc/pc.decision-engine.js +1 -55
  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 +19 -58
  219. package/dist/pc/pc.entry-overrides.js +1 -41
  220. package/dist/pc/pc.equipment.d.ts +2 -22
  221. package/dist/pc/pc.equipment.js +1 -34
  222. package/dist/pc/pc.feature-effects.d.ts +27 -281
  223. package/dist/pc/pc.feature-effects.js +1 -39
  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 -65
  227. package/dist/pc/pc.item-effects.d.ts +19 -0
  228. package/dist/pc/pc.item-effects.js +1 -0
  229. package/dist/pc/pc.member-choices.d.ts +3 -66
  230. package/dist/pc/pc.member-choices.js +1 -39
  231. package/dist/pc/pc.parser.js +1 -58
  232. package/dist/pc/pc.pools.d.ts +7 -10
  233. package/dist/pc/pc.pools.js +1 -27
  234. package/dist/pc/pc.proficiencies.d.ts +0 -40
  235. package/dist/pc/pc.proficiencies.js +1 -156
  236. package/dist/pc/pc.proficiency-grants.d.ts +3 -27
  237. package/dist/pc/pc.proficiency-normalize.d.ts +0 -35
  238. package/dist/pc/pc.proficiency-normalize.js +1 -18
  239. package/dist/pc/pc.proficiency-query.d.ts +0 -13
  240. package/dist/pc/pc.proficiency-query.js +1 -27
  241. package/dist/pc/pc.recalc.d.ts +8 -131
  242. package/dist/pc/pc.recalc.js +1 -1042
  243. package/dist/pc/pc.resolver.d.ts +9 -107
  244. package/dist/pc/pc.resolver.js +1 -60
  245. package/dist/pc/pc.resource-seed.d.ts +0 -8
  246. package/dist/pc/pc.resource-seed.js +1 -42
  247. package/dist/pc/pc.resources.d.ts +1 -59
  248. package/dist/pc/pc.resources.js +1 -23
  249. package/dist/pc/pc.rest.d.ts +1 -20
  250. package/dist/pc/pc.rest.js +1 -231
  251. package/dist/pc/pc.schema.d.ts +20 -2
  252. package/dist/pc/pc.schema.js +1 -9
  253. package/dist/pc/pc.slotting.d.ts +0 -29
  254. package/dist/pc/pc.slotting.js +1 -28
  255. package/dist/pc/pc.speeds.d.ts +36 -0
  256. package/dist/pc/pc.spell-scope.d.ts +0 -16
  257. package/dist/pc/pc.spellcasting.d.ts +0 -70
  258. package/dist/pc/pc.spellcasting.js +1 -28
  259. package/dist/pc/pc.table-column.d.ts +3 -22
  260. package/dist/pc/pc.table-column.js +1 -18
  261. package/dist/pc/pc.tool-picks.d.ts +0 -27
  262. package/dist/pc/pc.tool-picks.js +1 -18
  263. package/dist/pc/pc.types.d.ts +59 -374
  264. package/dist/pc/pc.weapon-grant.d.ts +0 -6
  265. package/dist/pc/pool-layout.d.ts +0 -39
  266. package/dist/pc/pool-layout.js +1 -18
  267. package/dist/pc/resource-equivalents.d.ts +2 -40
  268. package/dist/pc/roll-scope.js +1 -8
  269. package/dist/pc/roll-tag-labels.d.ts +0 -32
  270. package/dist/pc/roll-tag-labels.js +1 -17
  271. package/dist/pc/spell-source.d.ts +0 -11
  272. package/dist/pc/spell-source.js +1 -8
  273. package/dist/race/race.codec.d.ts +0 -6
  274. package/dist/race/race.codec.js +1 -15
  275. package/dist/race/race.parser.js +1 -14
  276. package/dist/race/race.schema.d.ts +0 -8
  277. package/dist/race/race.schema.js +1 -14
  278. package/dist/race/race.structural.d.ts +0 -6
  279. package/dist/race/race.structural.js +1 -6
  280. package/dist/race/race.types.d.ts +0 -8
  281. package/dist/schemas/attack-schema.d.ts +5 -0
  282. package/dist/schemas/caster-type-schema.d.ts +1 -6
  283. package/dist/schemas/caster-type-schema.js +1 -6
  284. package/dist/schemas/choice-schema.js +1 -7
  285. package/dist/schemas/duration-schema.d.ts +0 -2
  286. package/dist/schemas/duration-schema.js +1 -6
  287. package/dist/schemas/entity-extras-schema.d.ts +0 -30
  288. package/dist/schemas/entity-extras-schema.js +1 -10
  289. package/dist/schemas/equipment-grant-schema.d.ts +0 -2
  290. package/dist/schemas/equipment-grant-schema.js +1 -12
  291. package/dist/schemas/feature-alias.d.ts +0 -27
  292. package/dist/schemas/feature-effect-schema.d.ts +44 -3
  293. package/dist/schemas/feature-effect-schema.js +1 -6
  294. package/dist/schemas/feature-schema.d.ts +0 -6
  295. package/dist/schemas/feature-schema.js +1 -12
  296. package/dist/schemas/resource-schema.d.ts +1 -34
  297. package/dist/schemas/resource-schema.js +1 -12
  298. package/dist/schemas/selection-pool-schema.js +1 -10
  299. package/dist/spell/casting-time.d.ts +0 -15
  300. package/dist/spell/casting-time.js +1 -6
  301. package/dist/spell/spell.access.d.ts +0 -6
  302. package/dist/spell/spell.access.js +1 -45
  303. package/dist/spell/spell.ai-schema.js +1 -6
  304. package/dist/spell/spell.codec.js +1 -9
  305. package/dist/spell/spell.enrichment.js +1 -9
  306. package/dist/spell/spell.filter.d.ts +0 -5
  307. package/dist/spell/spell.filter.js +1 -75
  308. package/dist/spell/spell.parser.d.ts +0 -31
  309. package/dist/spell/spell.parser.js +1 -16
  310. package/dist/spell/spell.scaling.d.ts +0 -46
  311. package/dist/spell/spell.scaling.js +1 -79
  312. package/dist/spell/spell.schema.js +1 -7
  313. package/dist/spell/spell.types.d.ts +0 -7
  314. package/dist/srd/retired-items.d.ts +0 -4
  315. package/dist/srd/retired-items.js +1 -11
  316. package/dist/srd-store.d.ts +0 -33
  317. package/dist/subclass/subclass.codec.d.ts +0 -8
  318. package/dist/subclass/subclass.codec.js +1 -17
  319. package/dist/subclass/subclass.parser.js +1 -16
  320. package/dist/subclass/subclass.schema.d.ts +2 -1
  321. package/dist/subclass/subclass.schema.js +1 -14
  322. package/dist/subclass/subclass.types.d.ts +0 -3
  323. package/dist/types/attack.d.ts +2 -0
  324. package/dist/types/casting-option.d.ts +0 -4
  325. package/dist/types/choice.d.ts +1 -72
  326. package/dist/types/choice.js +1 -24
  327. package/dist/types/edition.d.ts +0 -3
  328. package/dist/types/equipment-grant.d.ts +1 -27
  329. package/dist/types/equipment-grant.js +1 -12
  330. package/dist/types/feature-effect.d.ts +11 -23
  331. package/dist/types/feature.d.ts +0 -22
  332. package/dist/types/optional-feature.types.d.ts +1 -31
  333. package/dist/types/resource.d.ts +1 -21
  334. package/dist/types/selection-pool.d.ts +0 -24
  335. package/dist/weapon/weapon-mastery.d.ts +0 -1
  336. package/dist/weapon/weapon.classify.d.ts +0 -11
  337. package/dist/weapon/weapon.classify.js +1 -7
  338. package/dist/weapon/weapon.codec.d.ts +0 -9
  339. package/dist/weapon/weapon.codec.js +1 -9
  340. package/dist/weapon/weapon.parser.js +1 -8
  341. package/dist/weapon/weapon.schema.js +1 -7
  342. package/dist/weapon/weapon.types.d.ts +0 -3
  343. package/package.json +3 -3
  344. package/src/data-srd/ATTRIBUTION.md +1 -1
  345. package/dist/chunk-2FRUSVZS.js +0 -489
  346. package/dist/chunk-2LULMQTF.js +0 -14
  347. package/dist/chunk-3LWMFYKS.js +0 -57
  348. package/dist/chunk-3SFGWFVQ.js +0 -19
  349. package/dist/chunk-3SIUAFDQ.js +0 -18
  350. package/dist/chunk-3TM34RSJ.js +0 -23
  351. package/dist/chunk-4J6DS3EJ.js +0 -30
  352. package/dist/chunk-4U55VNC7.js +0 -22
  353. package/dist/chunk-5GKJAUMX.js +0 -59
  354. package/dist/chunk-5JXFJ5AU.js +0 -26
  355. package/dist/chunk-64VNLMSG.js +0 -375
  356. package/dist/chunk-656QCX4U.js +0 -22
  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-7Q2VPKCD.js +0 -181
  361. package/dist/chunk-7XJHI5H5.js +0 -709
  362. package/dist/chunk-A54HHCWW.js +0 -67
  363. package/dist/chunk-B2QHP6UF.js +0 -159
  364. package/dist/chunk-B3DP42OM.js +0 -55
  365. package/dist/chunk-BJGOSM76.js +0 -18
  366. package/dist/chunk-BJWSOQUC.js +0 -133
  367. package/dist/chunk-CJYCVNW2.js +0 -7
  368. package/dist/chunk-CM5CWO4K.js +0 -735
  369. package/dist/chunk-DEEHHLAP.js +0 -271
  370. package/dist/chunk-DPUJDOKV.js +0 -365
  371. package/dist/chunk-EJD47JHL.js +0 -1838
  372. package/dist/chunk-EJP263OP.js +0 -186
  373. package/dist/chunk-EVMUJYUD.js +0 -195
  374. package/dist/chunk-EYX4JMAU.js +0 -101
  375. package/dist/chunk-FC4IGH5Y.js +0 -18
  376. package/dist/chunk-FJYBLXV7.js +0 -89
  377. package/dist/chunk-FMUD3LDV.js +0 -19
  378. package/dist/chunk-FMYWORTP.js +0 -93
  379. package/dist/chunk-FVXLP7P3.js +0 -18
  380. package/dist/chunk-G6MHJDVT.js +0 -41
  381. package/dist/chunk-GVWEFECG.js +0 -18
  382. package/dist/chunk-HHBD4SQ6.js +0 -24
  383. package/dist/chunk-HS6FIOLP.js +0 -52
  384. package/dist/chunk-HY2SRSVM.js +0 -23
  385. package/dist/chunk-IHE6KVC3.js +0 -13
  386. package/dist/chunk-IN4M4X7P.js +0 -34
  387. package/dist/chunk-IUAAXXNO.js +0 -58
  388. package/dist/chunk-JXWNXIIZ.js +0 -219
  389. package/dist/chunk-K5NJBTE2.js +0 -18
  390. package/dist/chunk-KR6JF3BF.js +0 -14
  391. package/dist/chunk-KSTV7J2U.js +0 -112
  392. package/dist/chunk-KU3YLF6D.js +0 -106
  393. package/dist/chunk-LBEXLN6I.js +0 -91
  394. package/dist/chunk-LHZXYFBU.js +0 -94
  395. package/dist/chunk-LICYHPI3.js +0 -237
  396. package/dist/chunk-LNT64X7C.js +0 -81
  397. package/dist/chunk-LSLSG67V.js +0 -31
  398. package/dist/chunk-LVQLWRCU.js +0 -15
  399. package/dist/chunk-MYY2C5MB.js +0 -233
  400. package/dist/chunk-NKZMQV2C.js +0 -19
  401. package/dist/chunk-NTU2DXNG.js +0 -355
  402. package/dist/chunk-NXUY5XQN.js +0 -1062
  403. package/dist/chunk-NZO7M5GV.js +0 -18
  404. package/dist/chunk-OOL4KMG2.js +0 -71
  405. package/dist/chunk-OOSRUJBI.js +0 -19
  406. package/dist/chunk-PDJSUH24.js +0 -110
  407. package/dist/chunk-PTXBIDG7.js +0 -63
  408. package/dist/chunk-PVCEA4HZ.js +0 -6
  409. package/dist/chunk-QA3YCOML.js +0 -101
  410. package/dist/chunk-QFWQKS3M.js +0 -110
  411. package/dist/chunk-QS5L5YTJ.js +0 -24
  412. package/dist/chunk-QYZV2MQA.js +0 -97
  413. package/dist/chunk-RD2MID3M.js +0 -292
  414. package/dist/chunk-S3YUXDSC.js +0 -278
  415. package/dist/chunk-S7REMWW4.js +0 -21
  416. package/dist/chunk-TOM66P2P.js +0 -38
  417. package/dist/chunk-TRBGC4ZG.js +0 -112
  418. package/dist/chunk-UA5KS2PL.js +0 -26
  419. package/dist/chunk-UJCK5IW4.js +0 -187
  420. package/dist/chunk-UNYR5GLI.js +0 -23
  421. package/dist/chunk-UZXG6QSY.js +0 -58
  422. package/dist/chunk-VN5DLURA.js +0 -158
  423. package/dist/chunk-VP5TIXDK.js +0 -178
  424. package/dist/chunk-VPYBK2MG.js +0 -18
  425. package/dist/chunk-VTTA2ALZ.js +0 -16
  426. package/dist/chunk-W6GC6OKK.js +0 -16
  427. package/dist/chunk-WELIKLZF.js +0 -256
  428. package/dist/chunk-WOHX7YTH.js +0 -165
  429. package/dist/chunk-WSVMLNTO.js +0 -31
  430. package/dist/chunk-WYGD2UGN.js +0 -14
  431. package/dist/chunk-XCFC7LGF.js +0 -122
  432. package/dist/chunk-XJ2F2WO6.js +0 -8
  433. package/dist/chunk-XTEFPUSN.js +0 -23
  434. package/dist/chunk-YBLDE5CG.js +0 -42
  435. package/dist/chunk-YDGMBMYI.js +0 -25
  436. package/dist/chunk-YHYTW5QA.js +0 -20
  437. package/dist/chunk-ZCTUYGNV.js +0 -26
  438. package/dist/chunk-ZDAEGJH4.js +0 -102
  439. package/dist/chunk-ZJXSXVFP.js +0 -58
  440. package/dist/chunk-ZOWKWMD2.js +0 -18
  441. package/dist/chunk-ZUQW5VBZ.js +0 -89
@@ -1,14 +1,4 @@
1
1
  import type { DocCodec } from "@archivist-gg/core";
2
2
  import type { Monster } from "./monster.types.js";
3
- /** Deprecated alias kept for the barrel re-export (`index.ts:7`) + `monster.resolve.ts:2`. */
4
3
  export type MonsterRaw = Monster;
5
- /**
6
- * Normalizing codec (0c.1a B8). `parse` delegates to `parseMonster`, which runs the legacy migrations of R4-G6 §4.1
7
- * (the `legendary` alias, scalar `ac` / `hp`, numeric-string coercion, the non-finite scrub, the null step, the
8
- * `senses` / `languages` string lift, `desc`, a malformed `recharge`), validates against `monsterSchema`, relocates
9
- * undeclared top-level keys into `raw`, and extracts Legendary-Resistance from trait text into the canonical
10
- * `legendary_resistance` field. All of it is intended and persists on save (B3); resolve-derived PB/XP are NOT added
11
- * here. `serialize` stays `yaml.dump` (the edit-save path uses obsidian's separate `editableToYaml`: that
12
- * two-serializer split is documented here; gate (d) Step 6 verifies `yaml.dump` round-trips).
13
- */
14
4
  export declare const monsterCodec: DocCodec<Monster>;
@@ -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-BJWSOQUC.js";
5
- import "../chunk-VP5TIXDK.js";
6
- import "../chunk-B2QHP6UF.js";
7
- import "../chunk-WYGD2UGN.js";
8
- import "../chunk-ZJXSXVFP.js";
9
- import "../chunk-OOL4KMG2.js";
10
- import "../chunk-JXWNXIIZ.js";
11
- import "../chunk-UA5KS2PL.js";
12
- export {
13
- migrateLegacy,
14
- parseMonster
15
- };
1
+ import{migrateLegacy,parseMonster}from"../chunk-ZS5BMNXC.js";import"../chunk-HX7WBOKR.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{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-VP5TIXDK.js";
15
- import "../chunk-B2QHP6UF.js";
16
- import "../chunk-WYGD2UGN.js";
17
- import "../chunk-ZJXSXVFP.js";
18
- import "../chunk-OOL4KMG2.js";
19
- import "../chunk-JXWNXIIZ.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-HX7WBOKR.js";import"../chunk-NIWLD33X.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{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-FVXLP7P3.js";
4
- import "../chunk-FMUD3LDV.js";
5
- import "../chunk-VN5DLURA.js";
6
- import "../chunk-WYGD2UGN.js";
7
- import "../chunk-ZJXSXVFP.js";
8
- import "../chunk-OOL4KMG2.js";
9
- import "../chunk-JXWNXIIZ.js";
10
- import "../chunk-UA5KS2PL.js";
11
- export {
12
- optionalFeatureCodec
13
- };
1
+ import{optionalFeatureCodec}from"../chunk-GGQDQSIF.js";import"../chunk-SFK57JAA.js";import"../chunk-NYPH7RQN.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.js";import"../chunk-I26FHSI6.js";export{optionalFeatureCodec};
@@ -1,12 +1 @@
1
- import {
2
- parseOptionalFeature
3
- } from "../chunk-FMUD3LDV.js";
4
- import "../chunk-VN5DLURA.js";
5
- import "../chunk-WYGD2UGN.js";
6
- import "../chunk-ZJXSXVFP.js";
7
- import "../chunk-OOL4KMG2.js";
8
- import "../chunk-JXWNXIIZ.js";
9
- import "../chunk-UA5KS2PL.js";
10
- export {
11
- parseOptionalFeature
12
- };
1
+ import{parseOptionalFeature}from"../chunk-SFK57JAA.js";import"../chunk-NYPH7RQN.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.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<{
@@ -241,12 +242,29 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
241
242
  climb: "climb";
242
243
  burrow: "burrow";
243
244
  }>;
244
- value: z.ZodNumber;
245
+ value: z.ZodOptional<z.ZodNumber>;
246
+ equal_to: z.ZodOptional<z.ZodLiteral<"walk">>;
245
247
  set: z.ZodOptional<z.ZodBoolean>;
246
248
  scales_at: z.ZodOptional<z.ZodArray<z.ZodObject<{
247
249
  level: z.ZodNumber;
248
250
  value: z.ZodNumber;
249
251
  }, z.core.$strip>>>;
252
+ inactive_while: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
253
+ "heavy-armor": "heavy-armor";
254
+ armor: "armor";
255
+ shield: "shield";
256
+ }>, z.ZodArray<z.ZodEnum<{
257
+ "heavy-armor": "heavy-armor";
258
+ armor: "armor";
259
+ shield: "shield";
260
+ }>>]>>;
261
+ condition: z.ZodOptional<z.ZodString>;
262
+ subject: z.ZodOptional<z.ZodString>;
263
+ }, z.core.$strip>, z.ZodObject<{
264
+ kind: z.ZodLiteral<"speed-rule">;
265
+ flag: z.ZodEnum<{
266
+ "ignore-armor-strength": "ignore-armor-strength";
267
+ }>;
250
268
  condition: z.ZodOptional<z.ZodString>;
251
269
  subject: z.ZodOptional<z.ZodString>;
252
270
  }, z.core.$strip>, z.ZodObject<{
@@ -293,6 +311,8 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
293
311
  unarmed: "unarmed";
294
312
  finesse: "finesse";
295
313
  thrown: "thrown";
314
+ heavy: "heavy";
315
+ "pact-weapon": "pact-weapon";
296
316
  }>, z.ZodArray<z.ZodEnum<{
297
317
  weapon: "weapon";
298
318
  melee: "melee";
@@ -300,6 +320,8 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
300
320
  unarmed: "unarmed";
301
321
  finesse: "finesse";
302
322
  thrown: "thrown";
323
+ heavy: "heavy";
324
+ "pact-weapon": "pact-weapon";
303
325
  }>>]>>;
304
326
  spell_scope: z.ZodOptional<z.ZodObject<{
305
327
  list: z.ZodOptional<z.ZodString>;
@@ -316,11 +338,11 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
316
338
  kind: z.ZodLiteral<"proficiency">;
317
339
  proficiency_type: z.ZodEnum<{
318
340
  weapon: "weapon";
341
+ armor: "armor";
319
342
  skill: "skill";
320
343
  tool: "tool";
321
344
  language: "language";
322
345
  "saving-throw": "saving-throw";
323
- armor: "armor";
324
346
  }>;
325
347
  value: z.ZodString;
326
348
  expertise: z.ZodOptional<z.ZodBoolean>;
@@ -398,6 +420,25 @@ export declare const optionalFeatureEntitySchema: z.ZodObject<{
398
420
  level: z.ZodNumber;
399
421
  count: z.ZodNumber;
400
422
  }, z.core.$strip>>>;
423
+ applies_to: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
424
+ weapon: "weapon";
425
+ melee: "melee";
426
+ ranged: "ranged";
427
+ unarmed: "unarmed";
428
+ finesse: "finesse";
429
+ thrown: "thrown";
430
+ heavy: "heavy";
431
+ "pact-weapon": "pact-weapon";
432
+ }>, z.ZodArray<z.ZodEnum<{
433
+ weapon: "weapon";
434
+ melee: "melee";
435
+ ranged: "ranged";
436
+ unarmed: "unarmed";
437
+ finesse: "finesse";
438
+ thrown: "thrown";
439
+ heavy: "heavy";
440
+ "pact-weapon": "pact-weapon";
441
+ }>>]>>;
401
442
  condition: z.ZodOptional<z.ZodString>;
402
443
  subject: z.ZodOptional<z.ZodString>;
403
444
  }, z.core.$strip>, z.ZodObject<{
@@ -1,15 +1 @@
1
- import {
2
- infuseBlockSchema,
3
- optionRowSchema,
4
- optionalFeatureEntitySchema
5
- } from "../chunk-VN5DLURA.js";
6
- import "../chunk-WYGD2UGN.js";
7
- import "../chunk-ZJXSXVFP.js";
8
- import "../chunk-OOL4KMG2.js";
9
- import "../chunk-JXWNXIIZ.js";
10
- import "../chunk-UA5KS2PL.js";
11
- export {
12
- infuseBlockSchema,
13
- optionRowSchema,
14
- optionalFeatureEntitySchema
15
- };
1
+ import{infuseBlockSchema,optionRowSchema,optionalFeatureEntitySchema}from"../chunk-NYPH7RQN.js";import"../chunk-ZE46ADXS.js";import"../chunk-CCFIINBA.js";import"../chunk-LHH5XSEA.js";import"../chunk-ZVL5FXXO.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};
@@ -5,21 +5,11 @@ import type { Spell } from "@archivist-gg/dnd5e/spell/spell.types";
5
5
  import type { Ability } from "@archivist-gg/dnd5e";
6
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,19 +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
- /** SRD-G T4: the slugs (value and label) of every option the character CHOSE on a race's content select-inlines
38
- * (`race.choices[]` and `traits[].choices[]`, the structural set excluded), read through `read(<choice id>)`. */
39
25
  export declare function chosenRaceOptionKeys(race: RaceEntity, read: (id: string) => ChoiceValue | undefined): Set<string>;
40
- /** §5.2.1 · the reader. Every object it receives is the RAW registry entity; nothing is mutated.
41
- *
42
- * SRD-G T4 (audit §3a): the RACE root also reads (1) a race whose lineage select-inline GATES it: the entry NAMED like
43
- * the option the character chose folds (the SRD 5.2 Tiefling's legacy, the Elf's and Gnome's lineage); an unnamed
44
- * entry on a gated race still folds nothing (it may belong to any lineage); (2) an `ability: {choose}` entry, when
45
- * `raceChoice("spellcasting-ability")` answers one of its abilities (unanswered, the entry waits for the pick);
46
- * (3) the `innate` level spells (the level 3 / 5 once-per-Long-Rest spells), folded always prepared like `known`. */
47
26
  export declare function collectAdditionalSpells(args: {
48
27
  race: RaceEntity | null;
49
28
  feats: FeatEntity[];
@@ -53,9 +32,6 @@ export declare function collectAdditionalSpells(args: {
53
32
  alreadyCollected: ResolvedSpell[];
54
33
  entities: EntityRegistry;
55
34
  warnings: string[];
56
- /** SRD-G T4: the character's answer to a race choice, by choice id (`origin_choices["race:<id>"]`). */
57
35
  raceChoice?: (id: string) => ChoiceValue | undefined;
58
- /** User report 2026-09-28: the RESOLVED pools. Every member the character has (a pick or a grant; an item-bound one's
59
- * subject is its item) is a root, read at the owning class's level, its spells that class's. */
60
36
  pools?: ReadonlyArray<ResolvedPool>;
61
37
  }): ResolvedSpell[];
@@ -1,26 +1 @@
1
- import {
2
- buildSpellNameIndex,
3
- chosenRaceOptionKeys,
4
- collectAdditionalSpells,
5
- normalizeSpellRef,
6
- prefixOf,
7
- raceIsUngated,
8
- resolveSpellByName
9
- } from "../chunk-LICYHPI3.js";
10
- import "../chunk-PVCEA4HZ.js";
11
- import "../chunk-LVQLWRCU.js";
12
- import "../chunk-4J6DS3EJ.js";
13
- import "../chunk-ZCTUYGNV.js";
14
- import "../chunk-7Q2VPKCD.js";
15
- import "../chunk-ZDAEGJH4.js";
16
- import "../chunk-WELIKLZF.js";
17
- import "../chunk-UA5KS2PL.js";
18
- export {
19
- buildSpellNameIndex,
20
- chosenRaceOptionKeys,
21
- collectAdditionalSpells,
22
- normalizeSpellRef,
23
- prefixOf,
24
- raceIsUngated,
25
- resolveSpellByName
26
- };
1
+ import{buildSpellNameIndex,chosenRaceOptionKeys,collectAdditionalSpells,normalizeSpellRef,prefixOf,raceIsUngated,resolveSpellByName}from"../chunk-CEHL7PPC.js";import"../chunk-UBUKCRZ3.js";import"../chunk-PKIMOVQG.js";import"../chunk-CMIEZQL4.js";import"../chunk-CSTAQQGX.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};