@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,206 +0,0 @@
1
- // src/schemas/feature-effect-schema.ts
2
- import { z } from "zod";
3
- var abilityEnum = z.enum(["str", "dex", "con", "int", "wis", "cha"]);
4
- var subjectField = z.string().min(1).optional();
5
- var conditionField = z.string().optional();
6
- var weaponScopeEnum = z.enum(["weapon", "melee", "ranged", "unarmed", "finesse", "thrown"]);
7
- var featureEffectSchema = z.discriminatedUnion("kind", [
8
- z.object({ kind: z.literal("initiative-bonus"), value: z.number().int(), condition: conditionField, subject: subjectField }),
9
- z.object({ kind: z.literal("skill-bonus"), skills: z.array(z.string().min(1)).nonempty(), ability: abilityEnum, minimum: z.number().int().optional(), condition: conditionField, subject: subjectField }),
10
- // SL (2026-09-27): the `skill-bonus` twin for saving throws (Aura of Protection). `saves` absent = every save; `inactive_while` turns
11
- // the bonus off while the character is incapacitated (any condition that disables actions) or unconscious.
12
- z.object({
13
- kind: z.literal("save-bonus"),
14
- ability: abilityEnum,
15
- minimum: z.number().int().optional(),
16
- saves: z.array(abilityEnum).nonempty().optional(),
17
- inactive_while: z.enum(["incapacitated", "unconscious"]).optional(),
18
- condition: conditionField,
19
- subject: subjectField
20
- }),
21
- // Jack of All Trades / Remarkable Athlete: half the proficiency bonus, and ONLY on a skill the character is
22
- // not already proficient in — the "doesn't otherwise use your Proficiency Bonus" clause is the whole mechanic,
23
- // so it is the kind's semantics, not a field. `skills` omitted = every skill (Jack of All Trades); a list
24
- // narrows it (Remarkable Athlete). `round` is authored because the two printed features disagree: Jack of All
25
- // Trades rounds down, Remarkable Athlete rounds up.
26
- z.object({ kind: z.literal("half-proficiency"), skills: z.array(z.string().min(1)).nonempty().optional(), round: z.enum(["down", "up"]).optional(), condition: conditionField, subject: subjectField }),
27
- // `condition` here is the condition NAME (frightened, poisoned); the qualifier is `while`.
28
- z.object({ kind: z.literal("immune-condition"), condition: z.string().min(1), while: z.string().optional(), subject: subjectField }),
29
- z.object({ kind: z.literal("resistance"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
30
- z.object({ kind: z.literal("hp-per-level-bonus"), value: z.number().int(), condition: conditionField, subject: subjectField }),
31
- z.object({
32
- kind: z.literal("speed-bonus"),
33
- mode: z.enum(["walk", "fly", "swim", "climb", "burrow"]),
34
- value: z.number().int(),
35
- // when true, value is an absolute floor (Math.max), not additive; currently
36
- // only surfaced for mode:"walk" · other modes have no derived speed yet.
37
- set: z.boolean().optional(),
38
- // R4-G7 §7.3: the WHOLE progression lives inside the effect, because the overlay's `class_features`
39
- // map is keyed `<class>:<feature-slug>` with no level component and, after §7.1's fold, the sheet
40
- // reads exactly ONE copy of a repeated feature. The engine takes the highest entry at or below the
41
- // effect's OWN source level (`levelFor`), and applies it to the additive bonus and to a `set` floor
42
- // alike. The Monk's Unarmored Movement is the shipped carrier shape.
43
- scales_at: z.array(z.object({ level: z.number().int().min(1).max(20), value: z.number().int() })).optional(),
44
- condition: conditionField,
45
- subject: subjectField
46
- }),
47
- z.object({
48
- // The attunement CAP, as data. `value` is an absolute cap ("you can now attune to up to four"),
49
- // never an increment, so two grants MAX rather than sum and a grant can never lower the cap:
50
- // recalc folds it as Math.max(3, granted). `scales_at` carries a whole progression on ONE effect —
51
- // the `speed-bonus` / `extra-attack` shape (R4-G7 §7.3) — because the overlay has no level axis and
52
- // the Artificer's three steps (10 -> 4, 14 -> 5, 18 -> 6) would otherwise need three separate
53
- // features, one of which is embedded prose inside another feature's description.
54
- kind: z.literal("attunement-limit"),
55
- value: z.number().int().positive(),
56
- scales_at: z.array(z.object({ level: z.number().int().min(1).max(20), value: z.number().int().positive() })).optional(),
57
- condition: conditionField,
58
- subject: subjectField
59
- }),
60
- z.object({
61
- kind: z.literal("sense"),
62
- type: z.enum(["darkvision", "blindsight", "tremorsense", "truesight"]),
63
- range: z.number().int().nonnegative(),
64
- condition: conditionField,
65
- subject: subjectField
66
- }),
67
- // `condition` here is the condition NAME being applied.
68
- z.object({
69
- kind: z.literal("apply-condition"),
70
- condition: z.string().min(1),
71
- duration: z.string().optional(),
72
- ends_on: z.array(z.string()).optional(),
73
- save_repeat: z.object({ ability: z.string().min(1), timing: z.string().min(1) }).optional(),
74
- subject: subjectField
75
- }),
76
- z.object({
77
- kind: z.literal("damage-bonus"),
78
- // intentionally an open string, NOT a damage-type enum: must accept the
79
- // literal "chosen" (player-selected damage type at action time) alongside
80
- // canonical damage types. Do not tighten to an enum.
81
- damage_type: z.string().min(1),
82
- amount: z.string().min(1),
83
- // ART-c1 Task 9b: `spell` and `all` as before, or a weapon scope, one word or an any-of list, which the engine
84
- // evaluates per attack row (pc.recalc.ts `riderReachesRow`). `weapon`, like an absent value, reaches every row.
85
- applies_to: z.union([z.enum(["spell", "all"]), weaponScopeEnum, z.array(weaponScopeEnum).min(1)]).optional(),
86
- condition: conditionField,
87
- subject: subjectField
88
- }),
89
- z.object({
90
- kind: z.literal("proficiency"),
91
- proficiency_type: z.enum(["skill", "tool", "language", "saving-throw", "armor", "weapon"]),
92
- value: z.string().min(1),
93
- expertise: z.boolean().optional(),
94
- condition: conditionField,
95
- subject: subjectField
96
- }),
97
- z.object({ kind: z.literal("ac-bonus"), value: z.number().int(), requires_armor: z.boolean().optional(), condition: conditionField, subject: subjectField }),
98
- z.object({
99
- kind: z.literal("unarmored-ac"),
100
- abilities: z.array(abilityEnum),
101
- base: z.number().int().optional(),
102
- allow_shield: z.boolean().optional(),
103
- condition: conditionField,
104
- subject: subjectField
105
- }),
106
- z.object({
107
- kind: z.literal("unarmed-strike"),
108
- // R4-G7 §7.2: a bare die expression, `<count>d<faces>`. `resolveUnarmedStrike` averages the flat arm with
109
- // /^(\d+)d(\d+)$/ and silently averages anything else as 1, so a modifier tail ("1d6+1") or a missing
110
- // half ("d6", "1d") must refuse here rather than mis-average there. The `i` arm keeps an authored `1D6`.
111
- dice: z.union([z.string().regex(/^\d+d\d+$/i), z.object({ column: z.string().min(1) })]).optional(),
112
- abilities: z.array(abilityEnum).nonempty().optional(),
113
- condition: conditionField,
114
- subject: subjectField
115
- }),
116
- z.object({
117
- kind: z.literal("weapon-ability"),
118
- ability: z.union([abilityEnum, z.literal("spellcasting")]),
119
- weapons: z.union([z.literal("chosen"), z.string(), z.array(z.string())]).optional(),
120
- condition: conditionField,
121
- subject: subjectField
122
- }),
123
- z.object({
124
- kind: z.literal("roll-modifier"),
125
- mode: z.enum(["advantage", "disadvantage", "reroll", "add-d4"]),
126
- roll: z.enum(["ability-check", "saving-throw", "attack", "any"]),
127
- scope: z.string().optional(),
128
- condition: conditionField,
129
- subject: subjectField
130
- }),
131
- z.object({
132
- kind: z.literal("extra-attack"),
133
- // `count` is EXTRA attacks, never total attacks: the engine renders `1 + count`.
134
- count: z.number().int().positive(),
135
- // R4-G7 §7.3, the `speed-bonus` twin: the SRD 5e Fighter's one Extra Attack feature carries its whole
136
- // 5 / 11 / 20 progression here, because `bucketFeaturesByLevel` emits one overlay record into every
137
- // `gained_at` bucket and a per-copy count cannot be authored.
138
- scales_at: z.array(z.object({ level: z.number().int().min(1).max(20), count: z.number().int().positive() })).optional(),
139
- condition: conditionField,
140
- subject: subjectField
141
- }),
142
- z.object({
143
- kind: z.literal("crit-range"),
144
- min_roll: z.number().int().min(2).max(20),
145
- applies_to: z.enum(["weapon", "spell", "all"]).optional(),
146
- condition: conditionField,
147
- subject: subjectField
148
- }),
149
- z.object({
150
- kind: z.literal("reroll-damage"),
151
- max_reroll: z.number().int().positive(),
152
- applies_to: z.enum(["weapon", "spell", "all"]).optional(),
153
- once_per_die: z.boolean().optional(),
154
- condition: conditionField,
155
- subject: subjectField
156
- }),
157
- z.object({ kind: z.literal("attack-rule"), flag: z.enum(["no-ranged-in-melee-disadvantage"]), condition: conditionField, subject: subjectField }),
158
- // R4-G1a declared these seven converter-emitted arms with the engine folding NOTHING for them
159
- // (spec D3). R4-G3a §3-§7 gives SIX of them semantics: immunity / vulnerability FOLD (defenses
160
- // pane); temp-hp / heal / extra-action are still NOT folded, the plugin reads them raw as
161
- // row-local captions; save-outcome FOLDS (save-chip tag rail).
162
- // `ability-score-increase` folds FLAT at the fold since R4-G3b §4 (fixed-list arms only; `chosen` arms
163
- // are the ASI slot's second encoding; `max` is unread by user ruling).
164
- // Damage immunity / vulnerability. NOT `immune-condition`, which is condition immunity.
165
- z.object({ kind: z.literal("immunity"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
166
- z.object({ kind: z.literal("vulnerability"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
167
- // `amount` is the open non-empty STRING `damage-bonus.amount` already uses: "2d6", "5", "your Artificer level".
168
- z.object({ kind: z.literal("temp-hp"), amount: z.string().min(1), condition: conditionField, subject: subjectField }),
169
- z.object({ kind: z.literal("heal"), amount: z.string().min(1), condition: conditionField, subject: subjectField }),
170
- z.object({
171
- kind: z.literal("ability-score-increase"),
172
- // "chosen" follows `weapon-ability.weapons`; the list follows `unarmored-ac.abilities`.
173
- abilities: z.union([z.literal("chosen"), z.array(abilityEnum).min(1)]),
174
- amount: z.number().int().positive(),
175
- // Required-WITH-NULL, never optional: "the prose stated no cap" and "the extractor forgot" must not look alike.
176
- choose: z.number().int().positive().nullable(),
177
- max: z.number().int().positive().nullable(),
178
- condition: conditionField,
179
- subject: subjectField
180
- }).refine((e) => e.abilities === "chosen" === (e.choose !== null), {
181
- path: ["choose"],
182
- message: 'choose is required IFF abilities is "chosen": a fixed LIST is its own count'
183
- }),
184
- // `extra-action` is an additional ACTION on your turn; `extra-attack` is attacks WITHIN the Attack action.
185
- z.object({
186
- kind: z.literal("extra-action"),
187
- count: z.number().int().positive(),
188
- action_type: z.enum(["action", "bonus-action", "reaction"]),
189
- condition: conditionField,
190
- subject: subjectField
191
- }),
192
- // `save-outcome` remaps the OUTCOME; `roll-modifier` modifies the ROLL.
193
- z.object({
194
- kind: z.literal("save-outcome"),
195
- ability: z.union([abilityEnum, z.literal("any")]),
196
- on_success: z.enum(["none", "half", "full"]),
197
- on_failure: z.enum(["none", "half", "full"]),
198
- applies_to: z.string().nullable(),
199
- condition: conditionField,
200
- subject: subjectField
201
- })
202
- ]);
203
-
204
- export {
205
- featureEffectSchema
206
- };
@@ -1,14 +0,0 @@
1
- // src/types/equipment-grant.ts
2
- function isCategoryGrant(g) {
3
- return !!g && typeof g === "object" && typeof g.category === "string" && g.category.length > 0;
4
- }
5
- var equipmentCategoryKey = (i, j, k) => `equipment-${i}-opt-${j}-cat-${k}`;
6
- var equipmentCategoryKeys = (grants, i, j) => grants.flatMap((g, k) => isCategoryGrant(g) ? [equipmentCategoryKey(i, j, k)] : []);
7
- var isStartingEquipmentKey = (key) => key.startsWith("equipment-");
8
-
9
- export {
10
- isCategoryGrant,
11
- equipmentCategoryKey,
12
- equipmentCategoryKeys,
13
- isStartingEquipmentKey
14
- };
@@ -1,18 +0,0 @@
1
- import {
2
- parseBackground
3
- } from "./chunk-6EI737IO.js";
4
-
5
- // src/background/background.codec.ts
6
- import yaml from "js-yaml";
7
- var backgroundCodec = {
8
- parse(doc) {
9
- return parseBackground(doc.body);
10
- },
11
- serialize(entity) {
12
- return yaml.dump(entity, { lineWidth: -1, sortKeys: false });
13
- }
14
- };
15
-
16
- export {
17
- backgroundCodec
18
- };
@@ -1,57 +0,0 @@
1
- import {
2
- classifyWeaponRange
3
- } from "./chunk-YDGMBMYI.js";
4
-
5
- // src/pc/pc.weapon-grant.ts
6
- var PROPERTY_KEY = {
7
- "2h": "two_handed",
8
- "two-handed": "two_handed",
9
- "two handed": "two_handed",
10
- h: "heavy",
11
- l: "light",
12
- f: "finesse",
13
- t: "thrown",
14
- v: "versatile",
15
- r: "reach",
16
- a: "ammunition",
17
- ld: "loading",
18
- s: "special"
19
- };
20
- var propertyKey = (word) => {
21
- var _a;
22
- const w = word.trim().toLowerCase();
23
- return (_a = PROPERTY_KEY[w]) != null ? _a : w.replace(/[\s-]+/g, "_");
24
- };
25
- var GRANT_RE = new RegExp(
26
- "^(?:all\\s+)?(?:(melee|ranged)\\s+)?(simple|martial)(?:\\s+(melee|ranged))?\\s+weapons?\\s+(?:that|which)\\s+(have|has|don'?t\\s+have|do\\s+not\\s+have|doesn'?t\\s+have|does\\s+not\\s+have)\\s+the\\s+(.+?)\\s+propert(?:y|ies)\\.?$",
27
- "i"
28
- );
29
- function parseQualifiedWeaponGrant(text) {
30
- var _a, _b;
31
- const m = GRANT_RE.exec(text.replace(/’/g, "'").trim().replace(/\s+/g, " "));
32
- if (!m) return null;
33
- const range = (_b = (_a = m[1]) != null ? _a : m[3]) == null ? void 0 : _b.toLowerCase();
34
- const properties = m[5].split(/\s*,\s*|\s+or\s+|\s+and\s+/i).map((w) => w.trim()).filter(Boolean).map(propertyKey);
35
- if (properties.length === 0) return null;
36
- return {
37
- category: m[2].toLowerCase(),
38
- ...range ? { range } : {},
39
- properties,
40
- without: /n'?t|not/i.test(m[4])
41
- };
42
- }
43
- function qualifiedGrantCovers(text, weapon) {
44
- const g = parseQualifiedWeaponGrant(text);
45
- if (!g || typeof weapon.category !== "string") return false;
46
- if (!new RegExp(`^${g.category}\\b`).test(weapon.category)) return false;
47
- if (g.range) {
48
- const melee = classifyWeaponRange(weapon).melee !== null;
49
- if (g.range === "melee" !== melee) return false;
50
- }
51
- const has = g.properties.some((p) => weapon.properties.some((x) => x === p));
52
- return g.without ? !has : has;
53
- }
54
-
55
- export {
56
- qualifiedGrantCovers
57
- };
@@ -1,110 +0,0 @@
1
- import {
2
- startingEquipmentEntrySchema
3
- } from "./chunk-IN4M4X7P.js";
4
- import {
5
- choiceSchema
6
- } from "./chunk-5MXFW4O3.js";
7
- import {
8
- additionalSpellsEntrySchema,
9
- imageField
10
- } from "./chunk-UA5KS2PL.js";
11
-
12
- // src/background/background.schema.ts
13
- import { z } from "zod";
14
- var abilityEnum = z.enum(["str", "dex", "con", "int", "wis", "cha"]);
15
- var editionEnum = z.enum(["2014", "2024"]);
16
- var skillEnum = z.enum([
17
- "acrobatics",
18
- "animal-handling",
19
- "arcana",
20
- "athletics",
21
- "deception",
22
- "history",
23
- "insight",
24
- "intimidation",
25
- "investigation",
26
- "medicine",
27
- "nature",
28
- "perception",
29
- "performance",
30
- "persuasion",
31
- "religion",
32
- "sleight-of-hand",
33
- "stealth",
34
- "survival"
35
- ]);
36
- var wikilinkRegex = /^\[\[[^[\]]+\]\]$/;
37
- var toolProfSchema = z.discriminatedUnion("kind", [
38
- z.object({ kind: z.literal("fixed"), items: z.array(z.string()).nonempty() }),
39
- z.object({
40
- kind: z.literal("choice"),
41
- count: z.number().int().positive(),
42
- from: z.array(z.string()).nonempty()
43
- })
44
- ]);
45
- var langProfSchema = z.discriminatedUnion("kind", [
46
- z.object({ kind: z.literal("fixed"), languages: z.array(z.string()).nonempty() }),
47
- z.object({
48
- kind: z.literal("choice"),
49
- count: z.number().int().positive(),
50
- from: z.union([z.string(), z.array(z.string())])
51
- })
52
- ]);
53
- var suggestedCharSchema = z.object({
54
- personality_traits: z.record(z.string(), z.string()).optional(),
55
- ideals: z.record(z.string(), z.object({
56
- name: z.string().optional(),
57
- desc: z.string(),
58
- alignment: z.string().optional()
59
- })).optional(),
60
- bonds: z.record(z.string(), z.string()).optional(),
61
- flaws: z.record(z.string(), z.string()).optional()
62
- });
63
- var backgroundEntitySchema = z.object({
64
- slug: z.string().min(1),
65
- name: z.string().min(1),
66
- edition: editionEnum,
67
- source: z.string().min(1),
68
- description: z.string(),
69
- skill_proficiencies: z.array(skillEnum),
70
- tool_proficiencies: z.array(toolProfSchema),
71
- language_proficiencies: z.array(langProfSchema),
72
- equipment: z.array(startingEquipmentEntrySchema),
73
- feature: z.object({
74
- name: z.string().min(1),
75
- description: z.string().min(1)
76
- }),
77
- ability_score_increases: z.object({
78
- pool: z.array(abilityEnum).length(3)
79
- }).nullable(),
80
- origin_feat: z.string().regex(wikilinkRegex).nullable(),
81
- suggested_characteristics: suggestedCharSchema.nullable(),
82
- choices: z.array(choiceSchema).optional(),
83
- rendering_hint: z.string().optional(),
84
- // 175
85
- has_fluff_images: z.boolean().optional(),
86
- // 87
87
- tables: z.array(z.object({
88
- // 88 tables / 67 docs; key-sets EXACT (finding 6)
89
- name: z.string().min(1),
90
- dice: z.string().min(1),
91
- rows: z.array(z.object({ roll: z.string(), text: z.string() }))
92
- })).optional(),
93
- additional_spells: z.array(additionalSpellsEntrySchema).optional(),
94
- // 15
95
- prerequisites: z.array(z.object({
96
- // 4 docs; kind CLOSED AT THE EMITTER
97
- kind: z.literal("campaign"),
98
- slug: z.string().min(1)
99
- // (background-mapper.ts pushes
100
- })).optional(),
101
- // {kind:"campaign", slug} literally — finding 24)
102
- // The one-arm union STAYS (§2.6 adjudication): it is closed by CONSTRUCTION at the converter's
103
- // only push site, and a future kind turns into a visible census REFUSAL — the correct loud failure.
104
- image: imageField
105
- });
106
-
107
- export {
108
- langProfSchema,
109
- backgroundEntitySchema
110
- };
@@ -1,23 +0,0 @@
1
- // src/inline-tag-parser.ts
2
- var VALID_PREFIXES = ["dice", "damage", "dc", "atk", "mod", "check"];
3
- var PREFIX_ALIASES = {
4
- roll: "dice",
5
- d: "dice",
6
- attack: "atk",
7
- dmg: "damage"
8
- };
9
- function parseInlineTag(text) {
10
- var _a;
11
- const colonIndex = text.indexOf(":");
12
- if (colonIndex === -1) return null;
13
- const prefix = text.slice(0, colonIndex).trim().toLowerCase();
14
- const resolved = (_a = PREFIX_ALIASES[prefix]) != null ? _a : prefix;
15
- if (!VALID_PREFIXES.includes(resolved)) return null;
16
- const content = text.slice(colonIndex + 1).trim();
17
- if (content.length === 0) return null;
18
- return { type: resolved, content, formula: null };
19
- }
20
-
21
- export {
22
- parseInlineTag
23
- };