optolith-database-schema 0.17.0 → 0.18.1

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 (636) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/lib/main.d.ts +2 -101
  3. package/lib/main.js +361 -106
  4. package/lib/test.d.ts +1 -0
  5. package/lib/test.js +2 -0
  6. package/lib/types/Advantage.d.ts +921 -63
  7. package/lib/types/Advantage.js +42 -13
  8. package/lib/types/AnimalDisease.d.ts +90 -59
  9. package/lib/types/AnimalDisease.js +28 -13
  10. package/lib/types/AnimalType.d.ts +6 -28
  11. package/lib/types/AnimalType.js +14 -13
  12. package/lib/types/ArcaneBardTradition.d.ts +30 -10
  13. package/lib/types/ArcaneBardTradition.js +7 -13
  14. package/lib/types/ArcaneDancerTradition.d.ts +30 -10
  15. package/lib/types/ArcaneDancerTradition.js +7 -13
  16. package/lib/types/Aspect.d.ts +7 -33
  17. package/lib/types/Aspect.js +20 -13
  18. package/lib/types/Attribute.d.ts +8 -36
  19. package/lib/types/Attribute.js +23 -13
  20. package/lib/types/Blessing.d.ts +96 -113
  21. package/lib/types/Blessing.js +94 -13
  22. package/lib/types/Cantrip.d.ts +132 -183
  23. package/lib/types/Cantrip.js +159 -13
  24. package/lib/types/Ceremony.d.ts +630 -113
  25. package/lib/types/Ceremony.js +87 -13
  26. package/lib/types/CombatTechnique.d.ts +127 -0
  27. package/lib/types/CombatTechnique.js +101 -0
  28. package/lib/types/Condition.d.ts +52 -40
  29. package/lib/types/Condition.js +31 -13
  30. package/lib/types/Continent.d.ts +6 -30
  31. package/lib/types/Continent.js +15 -13
  32. package/lib/types/Culture.d.ts +142 -369
  33. package/lib/types/Culture.js +355 -13
  34. package/lib/types/DerivedCharacteristic.d.ts +76 -61
  35. package/lib/types/DerivedCharacteristic.js +45 -13
  36. package/lib/types/Disadvantage.d.ts +921 -58
  37. package/lib/types/Disadvantage.js +45 -13
  38. package/lib/types/Disease.d.ts +81 -43
  39. package/lib/types/Disease.js +15 -13
  40. package/lib/types/Element.d.ts +6 -28
  41. package/lib/types/Element.js +14 -13
  42. package/lib/types/ExperienceLevel.d.ts +13 -64
  43. package/lib/types/ExperienceLevel.js +43 -13
  44. package/lib/types/EyeColor.d.ts +6 -28
  45. package/lib/types/EyeColor.js +14 -13
  46. package/lib/types/FamiliarsTrick.d.ts +189 -266
  47. package/lib/types/FamiliarsTrick.js +193 -13
  48. package/lib/types/HairColor.d.ts +6 -28
  49. package/lib/types/HairColor.js +14 -13
  50. package/lib/types/Lessons.d.ts +180 -0
  51. package/lib/types/Lessons.js +212 -0
  52. package/lib/types/LiturgicalChant.d.ts +630 -113
  53. package/lib/types/LiturgicalChant.js +87 -13
  54. package/lib/types/Locale.d.ts +11 -36
  55. package/lib/types/Locale.js +1316 -13
  56. package/lib/types/MetaCondition.d.ts +52 -43
  57. package/lib/types/MetaCondition.js +32 -13
  58. package/lib/types/PactCategory.d.ts +74 -78
  59. package/lib/types/PactCategory.js +65 -13
  60. package/lib/types/Patron.d.ts +100 -197
  61. package/lib/types/Patron.js +195 -13
  62. package/lib/types/PatronCategory.d.ts +7 -36
  63. package/lib/types/PatronCategory.js +19 -13
  64. package/lib/types/PersonalityTrait.d.ts +80 -67
  65. package/lib/types/PersonalityTrait.js +51 -13
  66. package/lib/types/Profession.d.ts +1911 -665
  67. package/lib/types/Profession.js +593 -13
  68. package/lib/types/Property.d.ts +7 -34
  69. package/lib/types/Property.js +19 -13
  70. package/lib/types/Race.d.ts +163 -349
  71. package/lib/types/Race.js +287 -13
  72. package/lib/types/Region.d.ts +6 -28
  73. package/lib/types/Region.js +14 -13
  74. package/lib/types/Ritual.d.ts +627 -111
  75. package/lib/types/Ritual.js +88 -13
  76. package/lib/types/Service.d.ts +55 -43
  77. package/lib/types/Service.js +38 -13
  78. package/lib/types/SexPractice.d.ts +50 -47
  79. package/lib/types/SexPractice.js +32 -13
  80. package/lib/types/Skill.d.ts +112 -131
  81. package/lib/types/Skill.js +120 -10
  82. package/lib/types/SkillGroup.d.ts +8 -37
  83. package/lib/types/SkillGroup.js +23 -13
  84. package/lib/types/SkillModificationLevel.d.ts +31 -101
  85. package/lib/types/SkillModificationLevel.js +95 -10
  86. package/lib/types/SocialStatus.d.ts +7 -28
  87. package/lib/types/SocialStatus.js +18 -13
  88. package/lib/types/Spell.d.ts +627 -111
  89. package/lib/types/Spell.js +88 -13
  90. package/lib/types/State.d.ts +51 -36
  91. package/lib/types/State.js +24 -13
  92. package/lib/types/Talisman.d.ts +64 -70
  93. package/lib/types/Talisman.js +64 -13
  94. package/lib/types/TargetCategory.d.ts +7 -42
  95. package/lib/types/TargetCategory.js +19 -13
  96. package/lib/types/_Activatable.d.ts +1587 -1366
  97. package/lib/types/_Activatable.js +1392 -2
  98. package/lib/types/_ActivatableSelectOptionCategory.d.ts +657 -386
  99. package/lib/types/_ActivatableSelectOptionCategory.js +381 -1
  100. package/lib/types/_ActivatableSkill.d.ts +1105 -34
  101. package/lib/types/_ActivatableSkill.js +82 -1
  102. package/lib/types/_ActivatableSkillCastingTime.d.ts +66 -74
  103. package/lib/types/_ActivatableSkillCastingTime.js +92 -1
  104. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +25 -33
  105. package/lib/types/_ActivatableSkillCheckResultBased.js +44 -1
  106. package/lib/types/_ActivatableSkillCost.d.ts +209 -255
  107. package/lib/types/_ActivatableSkillCost.js +224 -1
  108. package/lib/types/_ActivatableSkillDuration.d.ts +202 -135
  109. package/lib/types/_ActivatableSkillDuration.js +138 -1
  110. package/lib/types/_ActivatableSkillEffect.d.ts +16 -68
  111. package/lib/types/_ActivatableSkillEffect.js +65 -1
  112. package/lib/types/_ActivatableSkillRange.d.ts +61 -115
  113. package/lib/types/_ActivatableSkillRange.js +106 -1
  114. package/lib/types/_ActivatableSkillTargetCategory.d.ts +13 -39
  115. package/lib/types/_ActivatableSkillTargetCategory.js +29 -1
  116. package/lib/types/_AlternativeNames.d.ts +5 -11
  117. package/lib/types/_AlternativeNames.js +14 -1
  118. package/lib/types/_ArcaneTradition.d.ts +30 -28
  119. package/lib/types/_ArcaneTradition.js +14 -4
  120. package/lib/types/_Blessed.d.ts +8 -22
  121. package/lib/types/_Blessed.js +22 -1
  122. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +4 -10
  123. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +12 -1
  124. package/lib/types/_Dice.d.ts +6 -19
  125. package/lib/types/_Dice.js +23 -1
  126. package/lib/types/_DiseasePoison.d.ts +56 -107
  127. package/lib/types/_DiseasePoison.js +107 -2
  128. package/lib/types/_Enhancements.d.ts +165 -59
  129. package/lib/types/_Enhancements.js +66 -1
  130. package/lib/types/_I18n.d.ts +14 -42
  131. package/lib/types/_I18n.js +55 -1
  132. package/lib/types/_Identifier.d.ts +158 -1274
  133. package/lib/types/_Identifier.js +300 -1
  134. package/lib/types/_IdentifierGroup.d.ts +278 -29
  135. package/lib/types/_IdentifierGroup.js +340 -1
  136. package/lib/types/_ImprovementCost.d.ts +7 -4
  137. package/lib/types/_ImprovementCost.js +10 -1
  138. package/lib/types/_Influence.d.ts +78 -49
  139. package/lib/types/_Influence.js +42 -4
  140. package/lib/types/_Prerequisite.d.ts +370 -106
  141. package/lib/types/_Prerequisite.js +136 -1
  142. package/lib/types/_ResponsiveText.d.ts +13 -54
  143. package/lib/types/_ResponsiveText.js +37 -1
  144. package/lib/types/_Sex.d.ts +5 -7
  145. package/lib/types/_Sex.js +8 -4
  146. package/lib/types/_SkillCheck.d.ts +10 -15
  147. package/lib/types/_SkillCheck.js +34 -1
  148. package/lib/types/_Spellwork.d.ts +5 -18
  149. package/lib/types/_Spellwork.js +13 -1
  150. package/lib/types/equipment/EquipmentPackage.d.ts +80 -51
  151. package/lib/types/equipment/EquipmentPackage.js +34 -13
  152. package/lib/types/equipment/item/Ammunition.d.ts +69 -32
  153. package/lib/types/equipment/item/Ammunition.js +29 -13
  154. package/lib/types/equipment/item/Animal.d.ts +71 -19
  155. package/lib/types/equipment/item/Animal.js +15 -13
  156. package/lib/types/equipment/item/AnimalCare.d.ts +86 -49
  157. package/lib/types/equipment/item/AnimalCare.js +51 -13
  158. package/lib/types/equipment/item/Armor.d.ts +120 -186
  159. package/lib/types/equipment/item/Armor.js +156 -13
  160. package/lib/types/equipment/item/BandageOrRemedy.d.ts +176 -37
  161. package/lib/types/equipment/item/BandageOrRemedy.js +2 -14
  162. package/lib/types/equipment/item/Book.d.ts +84 -61
  163. package/lib/types/equipment/item/Book.js +57 -13
  164. package/lib/types/equipment/item/CeremonialItem.d.ts +178 -42
  165. package/lib/types/equipment/item/CeremonialItem.js +36 -13
  166. package/lib/types/equipment/item/Clothes.d.ts +176 -7
  167. package/lib/types/equipment/item/Clothes.js +2 -14
  168. package/lib/types/equipment/item/Container.d.ts +176 -7
  169. package/lib/types/equipment/item/Container.js +2 -14
  170. package/lib/types/equipment/item/Elixir.d.ts +91 -76
  171. package/lib/types/equipment/item/Elixir.js +54 -13
  172. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +170 -29
  173. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +28 -13
  174. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +72 -44
  175. package/lib/types/equipment/item/GemOrPreciousStone.js +41 -13
  176. package/lib/types/equipment/item/IlluminationLightSource.d.ts +186 -61
  177. package/lib/types/equipment/item/IlluminationLightSource.js +61 -13
  178. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +176 -0
  179. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +2 -0
  180. package/lib/types/equipment/item/Jewelry.d.ts +73 -61
  181. package/lib/types/equipment/item/Jewelry.js +37 -13
  182. package/lib/types/equipment/item/Liebesspielzeug.d.ts +176 -7
  183. package/lib/types/equipment/item/Liebesspielzeug.js +2 -14
  184. package/lib/types/equipment/item/LuxuryGood.d.ts +176 -37
  185. package/lib/types/equipment/item/LuxuryGood.js +2 -14
  186. package/lib/types/equipment/item/MagicalArtifact.d.ts +71 -40
  187. package/lib/types/equipment/item/MagicalArtifact.js +15 -13
  188. package/lib/types/equipment/item/MusicalInstrument.d.ts +174 -32
  189. package/lib/types/equipment/item/MusicalInstrument.js +27 -13
  190. package/lib/types/equipment/item/OrienteeringAid.d.ts +176 -7
  191. package/lib/types/equipment/item/OrienteeringAid.js +2 -14
  192. package/lib/types/equipment/item/Poison.d.ts +483 -354
  193. package/lib/types/equipment/item/Poison.js +386 -13
  194. package/lib/types/equipment/item/RopeOrChain.d.ts +176 -7
  195. package/lib/types/equipment/item/RopeOrChain.js +2 -14
  196. package/lib/types/equipment/item/Stationery.d.ts +176 -0
  197. package/lib/types/equipment/item/Stationery.js +2 -0
  198. package/lib/types/equipment/item/ThievesTool.d.ts +176 -7
  199. package/lib/types/equipment/item/ThievesTool.js +2 -14
  200. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +89 -61
  201. package/lib/types/equipment/item/ToolOfTheTrade.js +40 -13
  202. package/lib/types/equipment/item/TravelGearOrTool.d.ts +176 -7
  203. package/lib/types/equipment/item/TravelGearOrTool.js +2 -14
  204. package/lib/types/equipment/item/Vehicle.d.ts +71 -19
  205. package/lib/types/equipment/item/Vehicle.js +15 -13
  206. package/lib/types/equipment/item/Weapon.d.ts +223 -166
  207. package/lib/types/equipment/item/Weapon.js +153 -13
  208. package/lib/types/equipment/item/WeaponAccessory.d.ts +176 -7
  209. package/lib/types/equipment/item/WeaponAccessory.js +2 -14
  210. package/lib/types/equipment/item/_Herbary.d.ts +42 -16
  211. package/lib/types/equipment/item/_Herbary.js +36 -1
  212. package/lib/types/equipment/item/_Item.d.ts +317 -160
  213. package/lib/types/equipment/item/_Item.js +144 -1
  214. package/lib/types/equipment/item/_MeleeWeapon.d.ts +37 -105
  215. package/lib/types/equipment/item/_MeleeWeapon.js +92 -1
  216. package/lib/types/equipment/item/_RangedWeapon.d.ts +25 -106
  217. package/lib/types/equipment/item/_RangedWeapon.js +85 -1
  218. package/lib/types/equipment/item/_Weapon.d.ts +13 -57
  219. package/lib/types/equipment/item/_Weapon.js +49 -1
  220. package/lib/types/equipment/item/sub/ArmorType.d.ts +7 -37
  221. package/lib/types/equipment/item/sub/ArmorType.js +18 -13
  222. package/lib/types/equipment/item/sub/Reach.d.ts +6 -28
  223. package/lib/types/equipment/item/sub/Reach.js +14 -13
  224. package/lib/types/index.d.ts +148 -0
  225. package/lib/types/index.js +148 -0
  226. package/lib/types/magicalActions/AnimistPower.d.ts +299 -238
  227. package/lib/types/magicalActions/AnimistPower.js +182 -13
  228. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +6 -28
  229. package/lib/types/magicalActions/AnimistPower_Tribe.js +14 -13
  230. package/lib/types/magicalActions/Curse.d.ts +215 -162
  231. package/lib/types/magicalActions/Curse.js +126 -13
  232. package/lib/types/magicalActions/DominationRitual.d.ts +200 -145
  233. package/lib/types/magicalActions/DominationRitual.js +126 -13
  234. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +121 -135
  235. package/lib/types/magicalActions/ElvenMagicalSong.js +111 -13
  236. package/lib/types/magicalActions/GeodeRitual.d.ts +205 -180
  237. package/lib/types/magicalActions/GeodeRitual.js +135 -13
  238. package/lib/types/magicalActions/JesterTrick.d.ts +299 -177
  239. package/lib/types/magicalActions/JesterTrick.js +153 -13
  240. package/lib/types/magicalActions/MagicalDance.d.ts +125 -119
  241. package/lib/types/magicalActions/MagicalDance.js +113 -13
  242. package/lib/types/magicalActions/MagicalMelody.d.ts +116 -124
  243. package/lib/types/magicalActions/MagicalMelody.js +111 -13
  244. package/lib/types/magicalActions/MagicalRune.d.ts +300 -294
  245. package/lib/types/magicalActions/MagicalRune.js +278 -13
  246. package/lib/types/magicalActions/ZibiljaRitual.d.ts +396 -102
  247. package/lib/types/magicalActions/ZibiljaRitual.js +81 -13
  248. package/lib/types/magicalActions/_MusicTradition.d.ts +17 -30
  249. package/lib/types/magicalActions/_MusicTradition.js +43 -1
  250. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +24 -10
  251. package/lib/types/prerequisites/ConditionalPrerequisites.js +9 -1
  252. package/lib/types/prerequisites/DisplayOption.d.ts +13 -32
  253. package/lib/types/prerequisites/DisplayOption.js +27 -1
  254. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +1338 -215
  255. package/lib/types/prerequisites/PrerequisiteGroups.js +160 -1
  256. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +107 -31
  257. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +32 -1
  258. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +1 -2
  259. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +4 -1
  260. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +18 -26
  261. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +24 -1
  262. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +16 -13
  263. package/lib/types/prerequisites/single/CulturePrerequisite.js +16 -1
  264. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +4 -39
  265. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +12 -1
  266. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +17 -16
  267. package/lib/types/prerequisites/single/InfluencePrerequisite.js +19 -1
  268. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +18 -23
  269. package/lib/types/prerequisites/single/PactPrerequisite.js +24 -1
  270. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +20 -18
  271. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +25 -1
  272. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +16 -12
  273. package/lib/types/prerequisites/single/PublicationPrerequisite.js +15 -1
  274. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +17 -16
  275. package/lib/types/prerequisites/single/RacePrerequisite.js +19 -1
  276. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +51 -63
  277. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +80 -1
  278. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +26 -18
  279. package/lib/types/prerequisites/single/RatedPrerequisite.js +19 -1
  280. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +17 -19
  281. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +19 -1
  282. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +19 -9
  283. package/lib/types/prerequisites/single/RulePrerequisite.js +15 -1
  284. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +19 -10
  285. package/lib/types/prerequisites/single/SexPrerequisite.js +15 -1
  286. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +7 -8
  287. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +17 -1
  288. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -13
  289. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +16 -1
  290. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +16 -10
  291. package/lib/types/prerequisites/single/StatePrerequisite.js +15 -1
  292. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +19 -49
  293. package/lib/types/prerequisites/single/TextPrerequisite.js +53 -1
  294. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +37 -33
  295. package/lib/types/prerequisites/single/TraditionPrerequisite.js +42 -1
  296. package/lib/types/rule/CoreRule.d.ts +142 -310
  297. package/lib/types/rule/CoreRule.js +172 -13
  298. package/lib/types/rule/FocusRule.d.ts +54 -53
  299. package/lib/types/rule/FocusRule.js +37 -13
  300. package/lib/types/rule/FocusRule_Subject.d.ts +6 -29
  301. package/lib/types/rule/FocusRule_Subject.js +15 -13
  302. package/lib/types/rule/OptionalRule.d.ts +52 -41
  303. package/lib/types/rule/OptionalRule.js +28 -13
  304. package/lib/types/source/Publication.d.ts +50 -70
  305. package/lib/types/source/Publication.js +57 -13
  306. package/lib/types/source/_Erratum.d.ts +9 -23
  307. package/lib/types/source/_Erratum.js +19 -1
  308. package/lib/types/source/_PublicationRef.d.ts +161 -148
  309. package/lib/types/source/_PublicationRef.js +98 -1
  310. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +1034 -52
  311. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +36 -13
  312. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +917 -34
  313. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +33 -13
  314. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +917 -34
  315. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +33 -13
  316. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +917 -34
  317. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +33 -13
  318. package/lib/types/specialAbility/AncestorGlyph.d.ts +916 -38
  319. package/lib/types/specialAbility/AncestorGlyph.js +35 -13
  320. package/lib/types/specialAbility/BlessedTradition.d.ts +948 -147
  321. package/lib/types/specialAbility/BlessedTradition.js +131 -13
  322. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +980 -34
  323. package/lib/types/specialAbility/BrawlingSpecialAbility.js +32 -13
  324. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +918 -40
  325. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +33 -13
  326. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +1036 -45
  327. package/lib/types/specialAbility/CombatSpecialAbility.js +37 -13
  328. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +1035 -42
  329. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +37 -13
  330. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +980 -38
  331. package/lib/types/specialAbility/CommandSpecialAbility.js +32 -13
  332. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +915 -32
  333. package/lib/types/specialAbility/FamiliarSpecialAbility.js +30 -13
  334. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +915 -32
  335. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +30 -13
  336. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +917 -39
  337. package/lib/types/specialAbility/FatePointSpecialAbility.js +32 -13
  338. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +918 -44
  339. package/lib/types/specialAbility/GeneralSpecialAbility.js +33 -13
  340. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +915 -37
  341. package/lib/types/specialAbility/KarmaSpecialAbility.js +30 -13
  342. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +966 -36
  343. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +34 -13
  344. package/lib/types/specialAbility/LycantropicGift.d.ts +915 -32
  345. package/lib/types/specialAbility/LycantropicGift.js +30 -13
  346. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +966 -36
  347. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +34 -13
  348. package/lib/types/specialAbility/MagicalSign.d.ts +86 -39
  349. package/lib/types/specialAbility/MagicalSign.js +31 -13
  350. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +918 -43
  351. package/lib/types/specialAbility/MagicalSpecialAbility.js +33 -13
  352. package/lib/types/specialAbility/MagicalTradition.d.ts +938 -114
  353. package/lib/types/specialAbility/MagicalTradition.js +97 -13
  354. package/lib/types/specialAbility/PactGift.d.ts +992 -97
  355. package/lib/types/specialAbility/PactGift.js +118 -13
  356. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +917 -46
  357. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +41 -13
  358. package/lib/types/specialAbility/Sermon.d.ts +915 -32
  359. package/lib/types/specialAbility/Sermon.js +30 -13
  360. package/lib/types/specialAbility/SexSpecialAbility.d.ts +917 -34
  361. package/lib/types/specialAbility/SexSpecialAbility.js +32 -13
  362. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +915 -37
  363. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +30 -13
  364. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +964 -34
  365. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +32 -13
  366. package/lib/types/specialAbility/VampiricGift.d.ts +915 -37
  367. package/lib/types/specialAbility/VampiricGift.js +30 -13
  368. package/lib/types/specialAbility/Vision.d.ts +915 -32
  369. package/lib/types/specialAbility/Vision.js +30 -13
  370. package/lib/types/specialAbility/_Tradition.d.ts +5 -12
  371. package/lib/types/specialAbility/_Tradition.js +14 -1
  372. package/lib/types/specialAbility/sub/Language.d.ts +107 -117
  373. package/lib/types/specialAbility/sub/Language.js +87 -13
  374. package/lib/types/specialAbility/sub/Script.d.ts +61 -60
  375. package/lib/types/specialAbility/sub/Script.js +43 -13
  376. package/lib/types/specialAbility/sub/TradeSecret.d.ts +77 -48
  377. package/lib/types/specialAbility/sub/TradeSecret.js +36 -13
  378. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +5 -11
  379. package/lib/types/specialAbility/sub/_LanguageScript.js +15 -1
  380. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1135 -47
  381. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +36 -13
  382. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1135 -47
  383. package/lib/types/traditionArtifacts/AttireEnchantment.js +36 -13
  384. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1135 -47
  385. package/lib/types/traditionArtifacts/BowlEnchantment.js +36 -13
  386. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1136 -61
  387. package/lib/types/traditionArtifacts/CauldronEnchantment.js +41 -13
  388. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1135 -47
  389. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +36 -13
  390. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1147 -71
  391. package/lib/types/traditionArtifacts/DaggerRitual.js +71 -13
  392. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1135 -47
  393. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +36 -13
  394. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1135 -47
  395. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +36 -13
  396. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1135 -47
  397. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +36 -13
  398. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1135 -47
  399. package/lib/types/traditionArtifacts/OrbEnchantment.js +36 -13
  400. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1135 -47
  401. package/lib/types/traditionArtifacts/RingEnchantment.js +36 -13
  402. package/lib/types/traditionArtifacts/SickleRitual.d.ts +1135 -47
  403. package/lib/types/traditionArtifacts/SickleRitual.js +36 -13
  404. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1135 -52
  405. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +36 -13
  406. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1139 -57
  407. package/lib/types/traditionArtifacts/StaffEnchantment.js +41 -13
  408. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1135 -47
  409. package/lib/types/traditionArtifacts/ToyEnchantment.js +36 -13
  410. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1135 -47
  411. package/lib/types/traditionArtifacts/Trinkhornzauber.js +36 -13
  412. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1084 -42
  413. package/lib/types/traditionArtifacts/WandEnchantment.js +35 -13
  414. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1135 -47
  415. package/lib/types/traditionArtifacts/WeaponEnchantment.js +36 -13
  416. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +8 -52
  417. package/lib/types/traditionArtifacts/sub/AnimalShape.js +23 -13
  418. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +6 -28
  419. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +14 -13
  420. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +8 -40
  421. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +22 -13
  422. package/lib/types/traditionArtifacts/sub/Brew.d.ts +6 -28
  423. package/lib/types/traditionArtifacts/sub/Brew.js +14 -13
  424. package/package.json +20 -15
  425. package/schema/Advantage.schema.json +3 -3
  426. package/schema/AnimalDisease.schema.json +4 -4
  427. package/schema/Aspect.schema.json +1 -1
  428. package/schema/Blessing.schema.json +3 -3
  429. package/schema/Cantrip.schema.json +4 -4
  430. package/schema/Ceremony.schema.json +9 -61
  431. package/schema/CombatTechnique_Close.schema.json +2 -2
  432. package/schema/CombatTechnique_Ranged.schema.json +2 -2
  433. package/schema/Condition.schema.json +4 -16
  434. package/schema/Continent.schema.json +1 -1
  435. package/schema/Culture.schema.json +46 -50
  436. package/schema/Disadvantage.schema.json +3 -3
  437. package/schema/Disease.schema.json +2 -2
  438. package/schema/FamiliarsTrick.schema.json +45 -71
  439. package/schema/Lessons_Curriculum.schema.json +26 -36
  440. package/schema/LiturgicalChant.schema.json +9 -61
  441. package/schema/Locale.schema.json +1 -1
  442. package/schema/MetaCondition.schema.json +5 -17
  443. package/schema/Patron.schema.json +60 -71
  444. package/schema/PatronCategory.schema.json +1 -1
  445. package/schema/PersonalityTrait.schema.json +2 -2
  446. package/schema/Profession.schema.json +68 -62
  447. package/schema/Property.schema.json +1 -1
  448. package/schema/Race.schema.json +17 -17
  449. package/schema/Ritual.schema.json +8 -60
  450. package/schema/SexPractice.schema.json +1 -1
  451. package/schema/Skill.schema.json +7 -7
  452. package/schema/SkillModificationLevel.schema.json +3 -3
  453. package/schema/Spell.schema.json +8 -60
  454. package/schema/UI.schema.json +288 -0
  455. package/schema/_Activatable.schema.json +52 -60
  456. package/schema/_ActivatableSelectOptionCategory.schema.json +31 -35
  457. package/schema/_ActivatableSkill.schema.json +16 -0
  458. package/schema/_ActivatableSkillCastingTime.schema.json +5 -5
  459. package/schema/_ActivatableSkillCost.schema.json +7 -7
  460. package/schema/_ActivatableSkillEffect.schema.json +20 -51
  461. package/schema/_ActivatableSkillRange.schema.json +2 -2
  462. package/schema/_ActivatableSkillTargetCategory.schema.json +8 -8
  463. package/schema/_Blessed.schema.json +1 -1
  464. package/schema/_DiseasePoison.schema.json +31 -23
  465. package/schema/_Enhancements.schema.json +1 -1
  466. package/schema/_I18n.schema.json +1 -1
  467. package/schema/_Identifier.schema.json +31 -1
  468. package/schema/_IdentifierGroup.schema.json +4 -1
  469. package/schema/_Influence.schema.json +2 -2
  470. package/schema/_Prerequisite.schema.json +15 -15
  471. package/schema/_ResponsiveText.schema.json +6 -6
  472. package/schema/_SkillCheck.schema.json +3 -14
  473. package/schema/_Spellwork.schema.json +1 -1
  474. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  475. package/schema/equipment/item/Armor.schema.json +5 -5
  476. package/schema/equipment/item/BandageOrRemedy.schema.json +2 -2
  477. package/schema/equipment/item/Book.schema.json +1 -1
  478. package/schema/equipment/item/CeremonialItem.schema.json +2 -2
  479. package/schema/equipment/item/Elixir.schema.json +5 -25
  480. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +1 -1
  481. package/schema/equipment/item/IlluminationLightSource.schema.json +4 -8
  482. package/schema/equipment/item/Jewelry.schema.json +1 -1
  483. package/schema/equipment/item/LuxuryGood.schema.json +2 -2
  484. package/schema/equipment/item/MusicalInstrument.schema.json +1 -1
  485. package/schema/equipment/item/Poison.schema.json +25 -17
  486. package/schema/equipment/item/ToolOfTheTrade.schema.json +1 -1
  487. package/schema/equipment/item/Weapon.schema.json +11 -11
  488. package/schema/equipment/item/_Item.schema.json +4 -4
  489. package/schema/equipment/item/_MeleeWeapon.schema.json +3 -7
  490. package/schema/equipment/item/_RangedWeapon.schema.json +5 -5
  491. package/schema/equipment/item/_Weapon.schema.json +2 -2
  492. package/schema/equipment/item/sub/ArmorType.schema.json +1 -1
  493. package/schema/magicalActions/AnimistPower.schema.json +10 -36
  494. package/schema/magicalActions/Curse.schema.json +5 -31
  495. package/schema/magicalActions/DominationRitual.schema.json +6 -32
  496. package/schema/magicalActions/ElvenMagicalSong.schema.json +4 -17
  497. package/schema/magicalActions/GeodeRitual.schema.json +7 -59
  498. package/schema/magicalActions/JesterTrick.schema.json +7 -59
  499. package/schema/magicalActions/MagicalDance.schema.json +7 -33
  500. package/schema/magicalActions/MagicalMelody.schema.json +7 -33
  501. package/schema/magicalActions/MagicalRune.schema.json +53 -146
  502. package/schema/magicalActions/ZibiljaRitual.schema.json +7 -59
  503. package/schema/magicalActions/_MusicTradition.schema.json +1 -1
  504. package/schema/magicalActions/_SkillReference.schema.json +2 -24
  505. package/schema/prerequisites/ConditionalPrerequisites.schema.json +1 -1
  506. package/schema/prerequisites/DisplayOption.schema.json +1 -1
  507. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +1 -1
  508. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +2 -2
  509. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +1 -2
  510. package/schema/prerequisites/single/RacePrerequisite.schema.json +1 -1
  511. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +2 -2
  512. package/schema/prerequisites/single/TextPrerequisite.schema.json +4 -4
  513. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +4 -4
  514. package/schema/rule/CoreRule.schema.json +5 -5
  515. package/schema/rule/FocusRule.schema.json +1 -1
  516. package/schema/rule/OptionalRule.schema.json +1 -1
  517. package/schema/source/Publication.schema.json +2 -2
  518. package/schema/source/_PublicationRef.schema.json +9 -9
  519. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +2 -2
  520. package/schema/specialAbility/BlessedTradition.schema.json +74 -52
  521. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +2 -2
  522. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +155 -504
  523. package/schema/specialAbility/CommandSpecialAbility.schema.json +23 -20
  524. package/schema/specialAbility/FatePointSpecialAbility.schema.json +1 -1
  525. package/schema/specialAbility/GeneralSpecialAbility.schema.json +1 -1
  526. package/schema/specialAbility/KarmaSpecialAbility.schema.json +1 -1
  527. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +155 -504
  528. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +155 -504
  529. package/schema/specialAbility/MagicalSign.schema.json +2 -2
  530. package/schema/specialAbility/MagicalSpecialAbility.schema.json +1 -1
  531. package/schema/specialAbility/MagicalTradition.schema.json +8 -8
  532. package/schema/specialAbility/PactGift.schema.json +4 -4
  533. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +1 -1
  534. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +155 -504
  535. package/schema/specialAbility/VampiricGift.schema.json +1 -1
  536. package/schema/specialAbility/_Tradition.schema.json +1 -1
  537. package/schema/specialAbility/sub/Language.schema.json +4 -4
  538. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +1 -1
  539. package/schema/traditionArtifacts/AttireEnchantment.schema.json +1 -1
  540. package/schema/traditionArtifacts/BowlEnchantment.schema.json +1 -1
  541. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +2 -2
  542. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +1 -1
  543. package/schema/traditionArtifacts/DaggerRitual.schema.json +14 -18
  544. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +1 -1
  545. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +1 -1
  546. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +1 -1
  547. package/schema/traditionArtifacts/OrbEnchantment.schema.json +1 -1
  548. package/schema/traditionArtifacts/RingEnchantment.schema.json +1 -1
  549. package/schema/traditionArtifacts/SickleRitual.schema.json +1 -1
  550. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +2 -2
  551. package/schema/traditionArtifacts/StaffEnchantment.schema.json +2 -2
  552. package/schema/traditionArtifacts/ToyEnchantment.schema.json +1 -1
  553. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +1 -1
  554. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -1
  555. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +1 -1
  556. package/.prettierrc.yml +0 -3
  557. package/lib/cache/activatableSelectOptions.d.ts +0 -80
  558. package/lib/cache/activatableSelectOptions.js +0 -935
  559. package/lib/cache/ancestorBloodAdvantages.d.ts +0 -5
  560. package/lib/cache/ancestorBloodAdvantages.js +0 -18
  561. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.d.ts +0 -20
  562. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +0 -164
  563. package/lib/cache/newApplicationsAndUses.d.ts +0 -20
  564. package/lib/cache/newApplicationsAndUses.js +0 -126
  565. package/lib/cacheConfig.d.ts +0 -4
  566. package/lib/cacheConfig.js +0 -1
  567. package/lib/config/build.d.ts +0 -6
  568. package/lib/config/build.js +0 -8
  569. package/lib/config/cache.d.ts +0 -16
  570. package/lib/config/cache.js +0 -10
  571. package/lib/config/types.d.ts +0 -462
  572. package/lib/config/types.js +0 -306
  573. package/lib/errors.d.ts +0 -20
  574. package/lib/errors.js +0 -33
  575. package/lib/helpers/array.d.ts +0 -14
  576. package/lib/helpers/array.js +0 -15
  577. package/lib/helpers/i18n.d.ts +0 -1
  578. package/lib/helpers/i18n.js +0 -1
  579. package/lib/helpers/io.d.ts +0 -29
  580. package/lib/helpers/io.js +0 -51
  581. package/lib/helpers/nullable.d.ts +0 -35
  582. package/lib/helpers/nullable.js +0 -31
  583. package/lib/helpers/nullable.test.d.ts +0 -1
  584. package/lib/helpers/nullable.test.js +0 -46
  585. package/lib/helpers/object.d.ts +0 -5
  586. package/lib/helpers/object.js +0 -16
  587. package/lib/helpers/object.test.d.ts +0 -1
  588. package/lib/helpers/object.test.js +0 -15
  589. package/lib/helpers/objectPath.d.ts +0 -13
  590. package/lib/helpers/objectPath.js +0 -3
  591. package/lib/helpers/pair.d.ts +0 -20
  592. package/lib/helpers/pair.js +0 -20
  593. package/lib/helpers/result.d.ts +0 -57
  594. package/lib/helpers/result.js +0 -45
  595. package/lib/helpers/typeSafety.d.ts +0 -14
  596. package/lib/helpers/typeSafety.js +0 -16
  597. package/lib/helpers/typeSafety.test.d.ts +0 -1
  598. package/lib/helpers/typeSafety.test.js +0 -10
  599. package/lib/typeConfig.d.ts +0 -10
  600. package/lib/typeConfig.js +0 -1
  601. package/lib/types/CombatTechnique_Close.d.ts +0 -73
  602. package/lib/types/CombatTechnique_Close.js +0 -14
  603. package/lib/types/CombatTechnique_Ranged.d.ts +0 -66
  604. package/lib/types/CombatTechnique_Ranged.js +0 -14
  605. package/lib/types/Kirchenpraegung.d.ts +0 -10
  606. package/lib/types/Kirchenpraegung.js +0 -14
  607. package/lib/types/Lessons_Curriculum.d.ts +0 -236
  608. package/lib/types/Lessons_Curriculum.js +0 -14
  609. package/lib/types/Lessons_Guideline.d.ts +0 -34
  610. package/lib/types/Lessons_Guideline.js +0 -14
  611. package/lib/types/UI.d.ts +0 -1212
  612. package/lib/types/UI.js +0 -14
  613. package/lib/types/_LocaleMap.d.ts +0 -10
  614. package/lib/types/_LocaleMap.js +0 -1
  615. package/lib/types/_NonEmptyString.d.ts +0 -9
  616. package/lib/types/_NonEmptyString.js +0 -1
  617. package/lib/types/_SimpleReferences.d.ts +0 -134
  618. package/lib/types/_SimpleReferences.js +0 -1
  619. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +0 -7
  620. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +0 -14
  621. package/lib/types/equipment/item/Stationary.d.ts +0 -7
  622. package/lib/types/equipment/item/Stationary.js +0 -14
  623. package/lib/types/magicalActions/_SkillReference.d.ts +0 -11
  624. package/lib/types/magicalActions/_SkillReference.js +0 -1
  625. package/lib/validation/builders/integrity.d.ts +0 -56
  626. package/lib/validation/builders/integrity.js +0 -44
  627. package/lib/validation/builders/naming.d.ts +0 -15
  628. package/lib/validation/builders/naming.js +0 -17
  629. package/lib/validation/builders/schema.d.ts +0 -31
  630. package/lib/validation/builders/schema.js +0 -32
  631. package/lib/validation/filename.d.ts +0 -9
  632. package/lib/validation/filename.js +0 -10
  633. package/lib/validation/raw.d.ts +0 -8
  634. package/lib/validation/raw.js +0 -54
  635. package/lib/validation/schema.d.ts +0 -6
  636. package/lib/validation/schema.js +0 -32
package/lib/types/UI.js DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * @main UI
3
- */
4
- import { Result } from "../helpers/result.js";
5
- import { validateLanguageFileName } from "../validation/builders/naming.js";
6
- import { createSchemaValidator } from "../validation/builders/schema.js";
7
- import { getFilenameAsStringId } from "../validation/filename.js";
8
- export const config = {
9
- name: "UI",
10
- id: getFilenameAsStringId,
11
- integrityValidator: () => Result.ok(undefined),
12
- schemaValidator: createSchemaValidator(import.meta.url),
13
- fileNameValidator: validateLanguageFileName,
14
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * All translations for the entry, identified by IETF language tag (BCP47).
3
- * @minProperties 1
4
- */
5
- export type LocaleMap<T> = {
6
- /**
7
- * @patternProperties ^[a-z]{2}-[A-Z]{2}$
8
- */
9
- [localeId: string]: T;
10
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,9 +0,0 @@
1
- /**
2
- * @minLength 1
3
- */
4
- export type NonEmptyString = string;
5
- /**
6
- * @markdown
7
- * @minLength 1
8
- */
9
- export type NonEmptyMarkdown = string;
@@ -1 +0,0 @@
1
- export {};
@@ -1,134 +0,0 @@
1
- import { AdvantageIdentifier, AnimalTypeIdentifier, AnimistTribeIdentifier, ArmorIdentifier, AspectIdentifier, AttributeIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, CantripIdentifier, CeremonyIdentifier, CloseCombatTechniqueIdentifier, CultureIdentifier, CurriculumIdentifier, DisadvantageIdentifier, ElementIdentifier, EyeColorIdentifier, GuidelineIdentifier, HairColorIdentifier, LanguageIdentifier, LiturgicalChantIdentifier, MagicalTraditionIdentifier, PactCategoryIdentifier, PactDomainIdentifier, PatronCategoryIdentifier, PatronIdentifier, PersonalityTraitIdentifier, ProfessionIdentifier, ProfessionVariantIdentifier, PropertyIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RitualIdentifier, ScriptIdentifier, SkillGroupIdentifier, SkillIdentifier, SocialStatusIdentifier, SpellIdentifier, SubjectIdentifier, TargetCategoryIdentifier, WeaponIdentifier } from "./_Identifier.js";
2
- import { CombatTechniqueIdentifier, SpellworkIdentifier, TraditionIdentifier } from "./_IdentifierGroup.js";
3
- export type FocusRuleSubjectReference = {
4
- id: SubjectIdentifier;
5
- };
6
- export type RaceReference = {
7
- id: RaceIdentifier;
8
- };
9
- export type CultureReference = {
10
- id: CultureIdentifier;
11
- };
12
- export type ProfessionReference = {
13
- id: ProfessionIdentifier;
14
- };
15
- export type ProfessionVariantReference = {
16
- id: ProfessionVariantIdentifier;
17
- };
18
- export type AttributeReference = {
19
- id: AttributeIdentifier;
20
- };
21
- export type SkillReference = {
22
- id: SkillIdentifier;
23
- };
24
- export type SkillGroupReference = {
25
- id: SkillGroupIdentifier;
26
- };
27
- export type CombatTechniqueReference = {
28
- id: CombatTechniqueIdentifier;
29
- };
30
- export type CloseCombatTechniqueReference = {
31
- id: CloseCombatTechniqueIdentifier;
32
- };
33
- export type RangedCombatTechniqueReference = {
34
- id: RangedCombatTechniqueIdentifier;
35
- };
36
- export type MagicalTraditionReference = {
37
- id: MagicalTraditionIdentifier;
38
- };
39
- export type CantripReference = {
40
- id: CantripIdentifier;
41
- };
42
- export type SpellReference = {
43
- id: SpellIdentifier;
44
- };
45
- export type RitualReference = {
46
- id: RitualIdentifier;
47
- };
48
- export type SpellworkReference = {
49
- id: SpellworkIdentifier;
50
- };
51
- export type PropertyReference = {
52
- id: PropertyIdentifier;
53
- };
54
- export type BlessedTraditionReference = {
55
- id: BlessedTraditionIdentifier;
56
- };
57
- export type BlessingReference = {
58
- id: BlessingIdentifier;
59
- };
60
- export type LiturgicalChantReference = {
61
- id: LiturgicalChantIdentifier;
62
- };
63
- export type CeremonyReference = {
64
- id: CeremonyIdentifier;
65
- };
66
- export type AspectReference = {
67
- id: AspectIdentifier;
68
- };
69
- export type AdvantageReference = {
70
- id: AdvantageIdentifier;
71
- };
72
- export type DisadvantageReference = {
73
- id: DisadvantageIdentifier;
74
- };
75
- export type AdvancedSpecialAbilityReference<Identifier> = {
76
- id: Identifier;
77
- };
78
- export type LanguageReference = {
79
- id: LanguageIdentifier;
80
- };
81
- export type ScriptReference = {
82
- id: ScriptIdentifier;
83
- };
84
- export type SocialStatusReference = {
85
- id: SocialStatusIdentifier;
86
- };
87
- export type CurriculumReference = {
88
- id: CurriculumIdentifier;
89
- };
90
- export type GuidelineReference = {
91
- id: GuidelineIdentifier;
92
- };
93
- export type AnimalTypeReference = {
94
- id: AnimalTypeIdentifier;
95
- };
96
- export type TargetCategoryReference = {
97
- id: TargetCategoryIdentifier;
98
- };
99
- export type PatronCategoryReference = {
100
- id: PatronCategoryIdentifier;
101
- };
102
- export type PersonalityTraitReference = {
103
- id: PersonalityTraitIdentifier;
104
- };
105
- export type HairColorReference = {
106
- id: HairColorIdentifier;
107
- };
108
- export type EyeColorReference = {
109
- id: EyeColorIdentifier;
110
- };
111
- export type PactCategoryReference = {
112
- id: PactCategoryIdentifier;
113
- };
114
- export type PactDomainReference = {
115
- id: PactDomainIdentifier;
116
- };
117
- export type PatronReference = {
118
- id: PatronIdentifier;
119
- };
120
- export type AnimistTribeReference = {
121
- id: AnimistTribeIdentifier;
122
- };
123
- export type ElementReference = {
124
- id: ElementIdentifier;
125
- };
126
- export type WeaponReference = {
127
- id: WeaponIdentifier;
128
- };
129
- export type ArmorReference = {
130
- id: ArmorIdentifier;
131
- };
132
- export type TraditionReference = {
133
- id: TraditionIdentifier;
134
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,7 +0,0 @@
1
- /**
2
- * @main IlluminationRefillsOrSupplies
3
- */
4
- import { TypeConfig } from "../../../typeConfig.js";
5
- import { DefaultItem } from "./_Item.js";
6
- export type IlluminationRefillsOrSupplies = DefaultItem;
7
- export declare const config: TypeConfig<IlluminationRefillsOrSupplies, number, "IlluminationRefillsOrSupplies">;
@@ -1,14 +0,0 @@
1
- /**
2
- * @main IlluminationRefillsOrSupplies
3
- */
4
- import { todo } from "../../../validation/builders/integrity.js";
5
- import { validateEntityFileName } from "../../../validation/builders/naming.js";
6
- import { createSchemaValidator } from "../../../validation/builders/schema.js";
7
- import { getFilenamePrefixAsNumericId } from "../../../validation/filename.js";
8
- export const config = {
9
- name: "IlluminationRefillsOrSupplies",
10
- id: getFilenamePrefixAsNumericId,
11
- integrityValidator: todo("IlluminationRefillsOrSupplies"),
12
- schemaValidator: createSchemaValidator(import.meta.url),
13
- fileNameValidator: validateEntityFileName,
14
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * @main Stationary
3
- */
4
- import { TypeConfig } from "../../../typeConfig.js";
5
- import { DefaultItem } from "./_Item.js";
6
- export type Stationary = DefaultItem;
7
- export declare const config: TypeConfig<Stationary, number, "Stationary">;
@@ -1,14 +0,0 @@
1
- /**
2
- * @main Stationary
3
- */
4
- import { todo } from "../../../validation/builders/integrity.js";
5
- import { validateEntityFileName } from "../../../validation/builders/naming.js";
6
- import { createSchemaValidator } from "../../../validation/builders/schema.js";
7
- import { getFilenamePrefixAsNumericId } from "../../../validation/filename.js";
8
- export const config = {
9
- name: "Stationary",
10
- id: getFilenamePrefixAsNumericId,
11
- integrityValidator: todo("Stationary"),
12
- schemaValidator: createSchemaValidator(import.meta.url),
13
- fileNameValidator: validateEntityFileName,
14
- };
@@ -1,11 +0,0 @@
1
- import { SkillIdentifier } from "../_Identifier.js";
2
- /**
3
- * A reference to a skill used for performing melodies.
4
- */
5
- export type MusicalSkillReference = {
6
- /**
7
- * The skill's identifier.
8
- */
9
- id: SkillIdentifier<SkillIdentifierValue>;
10
- };
11
- export type SkillIdentifierValue = 9 | 56;
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- import { TypeId, TypeMap } from "../../config/types.js";
2
- import { PathDescriptor } from "../../helpers/objectPath.js";
3
- import { Result } from "../../helpers/result.js";
4
- /**
5
- * An error in the shape of an `Ajv` error, with `keyword` being the
6
- * discriminating property.
7
- */
8
- export type IntegrityError = {
9
- keyword: "integrity";
10
- instancePath: string;
11
- message: string;
12
- };
13
- export type IntegrityValidationResult = Result<void, IntegrityError[]>;
14
- /**
15
- * A function that validates `data` at a specific `filePath` to be of type `T`
16
- * using a specified `validator`.
17
- */
18
- export type IntegrityValidator<T> = (validators: IntegrityValidators, data: T, filepath: string) => IntegrityValidationResult;
19
- export type IntegrityValidators = {
20
- identity: IdentityIntegrityValidators;
21
- };
22
- export type IdentityIntegrityValidators = {
23
- [K in keyof TypeMap]: {
24
- isUnique: (id: TypeId<K>) => boolean;
25
- exists: (id: TypeId<K>) => boolean;
26
- };
27
- };
28
- export declare const getReferencialIntegrityErrors: <T>(ids: T[], typeName: string, existsId: (id: T) => boolean, pathToData: PathDescriptor) => IntegrityValidationResult;
29
- interface Translatable<T> {
30
- /**
31
- * All translations for the entry, identified by IETF language tag (BCP47).
32
- * @minProperties 1
33
- */
34
- translations: {
35
- [localeId: string]: T;
36
- };
37
- }
38
- export declare const getReferencialIntegrityErrorsForTranslatable: <T>(validators: IntegrityValidators, data: Translatable<T>, pathToData?: PathDescriptor) => IntegrityValidationResult;
39
- /**
40
- * Validates that a given identifier is unique. If the identifier is present in
41
- * both the file name and the file contents, their equality is validated as
42
- * well. The `pathToId` parameter is used to identify the location of the
43
- * identifier in the file contents.
44
- */
45
- export declare const validateEntityIntegrity: <ID extends string | number>(isUnique: (id: ID) => boolean, filenameId: ID, dataId?: ID | undefined, pathToId?: PathDescriptor) => IntegrityValidationResult;
46
- /**
47
- * Warns about missing integrity validation, but returns no errors.
48
- * @param typeName The name of the type that is not being validated.
49
- * @returns An empty list of errors.
50
- */
51
- export declare const todo: (typeName: string) => () => IntegrityValidationResult;
52
- /**
53
- * Combines multiple integrity validation results into one.
54
- */
55
- export declare const reduceIntegrityValidationResults: (...results: IntegrityValidationResult[]) => IntegrityValidationResult;
56
- export {};
@@ -1,44 +0,0 @@
1
- import { printPathDescriptor } from "../../helpers/objectPath.js";
2
- import { Result } from "../../helpers/result.js";
3
- import { config } from "../../types/Locale.js";
4
- const integrityError = (instancePath, message) => ({
5
- keyword: "integrity",
6
- instancePath: printPathDescriptor(instancePath),
7
- message
8
- });
9
- /**
10
- * Returns an error if the condition evaluates to `false`.
11
- */
12
- const conditionalError = (condition, instancePath, message) => condition ? Result.ok(undefined) : Result.error([integrityError(instancePath, message)]);
13
- export const getReferencialIntegrityErrors = (ids, typeName, existsId, pathToData) => {
14
- const errors = ids
15
- .filter(id => !existsId(id))
16
- .map(id => integrityError(pathToData, `The identifier "${id}" for type ${typeName} does not exist.`));
17
- if (errors.length > 0) {
18
- return Result.error(errors);
19
- }
20
- else {
21
- return Result.ok(undefined);
22
- }
23
- };
24
- export const getReferencialIntegrityErrorsForTranslatable = (validators, data, pathToData = []) => getReferencialIntegrityErrors(Object.keys(data.translations), config.name, validators.identity.locales.exists, [...pathToData, { k: "translations" }]);
25
- /**
26
- * Validates that a given identifier is unique. If the identifier is present in
27
- * both the file name and the file contents, their equality is validated as
28
- * well. The `pathToId` parameter is used to identify the location of the
29
- * identifier in the file contents.
30
- */
31
- export const validateEntityIntegrity = (isUnique, filenameId, dataId, pathToId = [{ k: "id" }]) => reduceIntegrityValidationResults(conditionalError(isUnique(filenameId), [], `The identifier "${filenameId}" is not unique.`), conditionalError(dataId === undefined || filenameId === dataId, pathToId, `The identifier in the filename (${JSON.stringify(filenameId)}) and the identifier (${JSON.stringify(dataId)}) in the file itself are not equal.`));
32
- /**
33
- * Warns about missing integrity validation, but returns no errors.
34
- * @param typeName The name of the type that is not being validated.
35
- * @returns An empty list of errors.
36
- */
37
- export const todo = (typeName) => {
38
- console.warn(`The type ${typeName} has no integrity validation yet.`);
39
- return () => Result.ok(undefined);
40
- };
41
- /**
42
- * Combines multiple integrity validation results into one.
43
- */
44
- export const reduceIntegrityValidationResults = (...results) => results.reduce((acc, result) => Result.combine(acc, result, () => undefined, (a, b) => [...a, ...b]), Result.ok(undefined));
@@ -1,15 +0,0 @@
1
- import { Result } from "../../helpers/result.js";
2
- /**
3
- * An error in the shape of an `Ajv` error, with `keyword` being the
4
- * discriminating property.
5
- */
6
- export type FileNameError = {
7
- keyword: "filename";
8
- instancePath: string;
9
- message: string;
10
- };
11
- export type FileNameValidationResult = Result<void, FileNameError[]>;
12
- export type FileNameValidator = (filePath: string) => FileNameValidationResult;
13
- export declare const createFileNameValidator: (pattern: RegExp) => FileNameValidator;
14
- export declare const validateEntityFileName: FileNameValidator;
15
- export declare const validateLanguageFileName: FileNameValidator;
@@ -1,17 +0,0 @@
1
- import { basename } from "node:path";
2
- import { error, ok } from "../../helpers/result.js";
3
- const ENTITY_FILENAME_PATTERN = /^(?:0|[1-9][0-9]*)_(?:[A-Z][a-zA-Z]*|[1-9][0-9]*)(?:-(?:[a-zA-Z]+|[1-9][0-9]*))*\.yml$/;
4
- const LANGUAGE_FILENAME_PATTERN = /^[a-z]{2}-[A-Z]{2}\.yml$/;
5
- const fileNameError = (pattern, fileName) => ({
6
- keyword: "filename",
7
- instancePath: "",
8
- message: `the file name "${fileName}" does not match the pattern ${pattern.source}`
9
- });
10
- export const createFileNameValidator = (pattern) => (filePath) => {
11
- const fileName = basename(filePath);
12
- return pattern.test(fileName)
13
- ? ok(undefined)
14
- : error([fileNameError(pattern, fileName)]);
15
- };
16
- export const validateEntityFileName = createFileNameValidator(ENTITY_FILENAME_PATTERN);
17
- export const validateLanguageFileName = createFileNameValidator(LANGUAGE_FILENAME_PATTERN);
@@ -1,31 +0,0 @@
1
- import type { default as AjvModule, DefinedError } from "ajv";
2
- import { Result } from "../../helpers/result.js";
3
- type Ajv = AjvModule.default;
4
- export type SchemaError = DefinedError;
5
- /**
6
- * The result of validating a single file. Either the valid data or validation
7
- * errors.
8
- */
9
- export type SchemaValidationResult<T> = Result<T, SchemaError[]>;
10
- /**
11
- * A function that validates `data` at a specific `filePath` to be of type `T`
12
- * using a specified `validator`.
13
- */
14
- export type SchemaValidator<T> = (validator: Ajv, data: unknown, filePath: string) => SchemaValidationResult<T>;
15
- /**
16
- * Options for creating a `TypeValidator`.
17
- */
18
- export type SchemaValidatorOptions = {
19
- ignoreFileNamePattern?: boolean;
20
- };
21
- /**
22
- * Creates a type validator based on the URL of the type definition source file
23
- * and options. The source file URL is used to derive it’s corresponding schema
24
- * location.
25
- * @param importMetaUrl The `import.meta.url` value of the type definition
26
- * source file.
27
- * @param options
28
- * @returns
29
- */
30
- export declare const createSchemaValidator: <T>(importMetaUrl: string, options?: SchemaValidatorOptions) => SchemaValidator<T>;
31
- export {};
@@ -1,32 +0,0 @@
1
- import { basename, relative, sep } from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- import { libDir } from "../../config/build.js";
4
- import { changeFileExtension } from "../../helpers/io.js";
5
- import { error, ok } from "../../helpers/result.js";
6
- const schemaIdFromSourcePath = (sourcePath) => {
7
- const relativePathOfType = relative(libDir, fileURLToPath(sourcePath));
8
- const relativePathOfSchema = changeFileExtension(relativePathOfType, ".schema.json");
9
- return "/" + relativePathOfSchema.split(sep).join("/");
10
- };
11
- /**
12
- * Creates a type validator based on the URL of the type definition source file
13
- * and options. The source file URL is used to derive it’s corresponding schema
14
- * location.
15
- * @param importMetaUrl The `import.meta.url` value of the type definition
16
- * source file.
17
- * @param options
18
- * @returns
19
- */
20
- export const createSchemaValidator = (importMetaUrl, options = {}) => {
21
- const { ignoreFileNamePattern = false } = options;
22
- const schemaId = schemaIdFromSourcePath(importMetaUrl);
23
- return (validator, data, filePath) => {
24
- const fileName = basename(filePath);
25
- if (validator.validate(schemaId, data)) {
26
- return ok(data);
27
- }
28
- else {
29
- return error(validator.errors ?? []);
30
- }
31
- };
32
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * Returns the numeric prefix of a filename, that is, the part before the first
3
- * underscore.
4
- */
5
- export declare const getFilenamePrefixAsNumericId: (_data: unknown, filepath: string) => number;
6
- /**
7
- * Returns the filename without the extension.
8
- */
9
- export declare const getFilenameAsStringId: (_data: unknown, filepath: string) => string;
@@ -1,10 +0,0 @@
1
- import { basename, extname } from "node:path";
2
- /**
3
- * Returns the numeric prefix of a filename, that is, the part before the first
4
- * underscore.
5
- */
6
- export const getFilenamePrefixAsNumericId = (_data, filepath) => Number.parseInt(/^(\d+?)_/.exec(basename(filepath))?.[1] ?? "", 10);
7
- /**
8
- * Returns the filename without the extension.
9
- */
10
- export const getFilenameAsStringId = (_data, filepath) => basename(filepath, extname(filepath));
@@ -1,8 +0,0 @@
1
- import { TypeId, TypeMap } from "../config/types.js";
2
- import "../helpers/array.js";
3
- import { Result } from "../helpers/result.js";
4
- import { EntityDirectoryPaths, TypeValidationError, ValidationOptions } from "../main.js";
5
- export type TypeIdPair<K extends keyof TypeMap> = [id: TypeId<K>, data: TypeMap[K]];
6
- export type TypeValidationResult<K extends keyof TypeMap> = Result<TypeIdPair<K>, TypeValidationError[]>;
7
- export type TypeValidationResultsByType = [keyof TypeMap, [filePath: string, result: TypeValidationResult<keyof TypeMap>][]][];
8
- export declare const getRawValidationResults: (entityDirPaths: EntityDirectoryPaths, options?: ValidationOptions) => Promise<TypeValidationResultsByType>;
@@ -1,54 +0,0 @@
1
- import { readdir } from "node:fs/promises";
2
- import { join } from "node:path";
3
- import { jsonSchemaDir, jsonSchemaSpec } from "../config/build.js";
4
- import { configMap } from "../config/types.js";
5
- import "../helpers/array.js";
6
- import { collator } from "../helpers/i18n.js";
7
- import { isHiddenFileName, readYamlFile } from "../helpers/io.js";
8
- import { mapSecond, mapSecondAsync, mapToSecondAsync } from "../helpers/pair.js";
9
- import { Result, isOk } from "../helpers/result.js";
10
- import { getPreparedSchemaValidator } from "./schema.js";
11
- const getFiles = async (path) => (await readdir(path))
12
- .sort(collator.compare)
13
- .filter(isHiddenFileName)
14
- .map(fileName => join(path, fileName))
15
- .map(mapToSecondAsync(async (filePath) => {
16
- try {
17
- return await readYamlFile(filePath);
18
- }
19
- catch (error) {
20
- if (error instanceof Error) {
21
- error.message = `in "${filePath}":\n ${error.message}`;
22
- }
23
- return null;
24
- }
25
- }))
26
- .promiseAll();
27
- const validateStructuralIntegrityOfFiles = (validator, typeConfig, validateFileName, files) => files.map(mapSecond((data, path) => {
28
- const schemaValidationResult = typeConfig.schemaValidator(validator, data, path);
29
- const fileNameValidationResult = validateFileName(path);
30
- return Result.map(Result.combine(schemaValidationResult, fileNameValidationResult, (data, _) => data, (schemaErrors, fileNameErrors) => [...schemaErrors, ...fileNameErrors]), data => [typeConfig.id(data, path), data]);
31
- }));
32
- const validateSemanticAndReferencialIntegrityOfFiles = (validators, typeConfig, results) => results.map(mapSecond((res, path) => Result.reduce(res, ([id, data]) => Result.map(typeConfig.integrityValidator(validators, data, path), () => [id, data]), errors => Result.error(errors))));
33
- export const getRawValidationResults = async (entityDirPaths, options = {}) => {
34
- const { checkIntegrity = false, ajvOptions = {} } = options;
35
- const validator = await getPreparedSchemaValidator(jsonSchemaSpec, ajvOptions, jsonSchemaDir);
36
- const entityDirectoryPathEntries = Object.entries(entityDirPaths);
37
- const structuralIntegrityResults = await Promise.all(entityDirectoryPathEntries.map(mapSecondAsync(async (path, typeName) => {
38
- const files = await getFiles(path);
39
- return validateStructuralIntegrityOfFiles(validator, configMap[typeName], configMap[typeName].fileNameValidator, files);
40
- })));
41
- if (checkIntegrity) {
42
- const identityIntegrityValidators = Object.fromEntries(structuralIntegrityResults.map(mapSecond(results => {
43
- const idCount = results.reduce((mp, [_, result]) => isOk(result) ? mp.set(result.value[0], (mp.get(result.value[0]) ?? 0) + 1) : mp, new Map());
44
- return {
45
- isUnique: (id) => (idCount.get(id) ?? 0) === 1,
46
- exists: (id) => idCount.has(id),
47
- };
48
- })));
49
- return structuralIntegrityResults.map(mapSecond((results, typeName) => validateSemanticAndReferencialIntegrityOfFiles({ identity: identityIntegrityValidators }, configMap[typeName], results)));
50
- }
51
- else {
52
- return structuralIntegrityResults;
53
- }
54
- };
@@ -1,6 +0,0 @@
1
- import AjvModule from "ajv";
2
- import Ajv2019Module from "ajv/dist/2019.js";
3
- import Ajv2020Module from "ajv/dist/2020.js";
4
- import { JsonSchemaSpec } from "optolith-tsjsonschemamd/renderers/jsonSchema";
5
- import "../helpers/array.js";
6
- export declare const getPreparedSchemaValidator: (jsonSchemaSpec: JsonSchemaSpec, validatorOptions: AjvModule.Options | undefined, jsonSchemaDir: string) => Promise<Ajv2019Module.default | Ajv2020Module.default>;
@@ -1,32 +0,0 @@
1
- import addFormatsModule from "ajv-formats";
2
- import Ajv2019Module from "ajv/dist/2019.js";
3
- import Ajv2020Module from "ajv/dist/2020.js";
4
- import "../helpers/array.js";
5
- import { isHiddenFileName, readDirectoryRec, readJsonFile } from "../helpers/io.js";
6
- import { assertExhaustive } from "../helpers/typeSafety.js";
7
- const Ajv2019 = Ajv2019Module.default;
8
- const Ajv2020 = Ajv2020Module.default;
9
- const addFormats = addFormatsModule.default;
10
- const createSchemaValidator = (jsonSchemaSpec, validatorOptions = {}) => {
11
- switch (jsonSchemaSpec) {
12
- case "Draft_07":
13
- case "Draft_2019_09":
14
- return new Ajv2019(validatorOptions);
15
- case "Draft_2020_12":
16
- return new Ajv2020(validatorOptions);
17
- default:
18
- assertExhaustive(jsonSchemaSpec);
19
- }
20
- };
21
- const registerAllJsonSchemaDocuments = async (jsonSchemaDir, validator) => {
22
- for await (const jsonSchemaPath of readDirectoryRec(jsonSchemaDir, isHiddenFileName)) {
23
- const jsonSchema = await readJsonFile(jsonSchemaPath);
24
- validator.addSchema(jsonSchema);
25
- }
26
- };
27
- export const getPreparedSchemaValidator = async (jsonSchemaSpec, validatorOptions = {}, jsonSchemaDir) => {
28
- const validator = createSchemaValidator(jsonSchemaSpec, validatorOptions);
29
- await registerAllJsonSchemaDocuments(jsonSchemaDir, validator);
30
- addFormats(validator);
31
- return validator;
32
- };