optolith-database-schema 0.11.4 → 0.11.6

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 (475) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/config/build.d.ts +6 -0
  3. package/lib/config/build.js +8 -0
  4. package/lib/config/types.d.ts +463 -0
  5. package/lib/config/types.js +308 -0
  6. package/lib/errors.d.ts +20 -0
  7. package/lib/errors.js +33 -0
  8. package/lib/helpers/array.d.ts +14 -0
  9. package/lib/helpers/array.js +15 -0
  10. package/lib/helpers/i18n.d.ts +1 -0
  11. package/lib/helpers/i18n.js +1 -0
  12. package/lib/helpers/io.d.ts +29 -0
  13. package/lib/helpers/io.js +51 -0
  14. package/lib/helpers/objectPath.d.ts +13 -0
  15. package/lib/helpers/objectPath.js +3 -0
  16. package/lib/helpers/pair.d.ts +20 -0
  17. package/lib/helpers/pair.js +20 -0
  18. package/lib/helpers/result.d.ts +57 -0
  19. package/lib/helpers/result.js +45 -0
  20. package/lib/helpers/typeSafety.d.ts +6 -0
  21. package/lib/helpers/typeSafety.js +8 -0
  22. package/lib/main.d.ts +55 -0
  23. package/lib/main.js +55 -0
  24. package/lib/typeConfig.d.ts +10 -0
  25. package/lib/typeConfig.js +1 -0
  26. package/lib/types/Advantage.d.ts +63 -0
  27. package/lib/types/Advantage.js +12 -0
  28. package/lib/types/AnimalDisease.d.ts +59 -0
  29. package/lib/types/AnimalDisease.js +12 -0
  30. package/lib/types/AnimalType.d.ts +28 -0
  31. package/lib/types/AnimalType.js +12 -0
  32. package/lib/types/ArcaneBardTradition.d.ts +10 -0
  33. package/lib/types/ArcaneBardTradition.js +12 -0
  34. package/lib/types/ArcaneDancerTradition.d.ts +10 -0
  35. package/lib/types/ArcaneDancerTradition.js +12 -0
  36. package/lib/types/Aspect.d.ts +33 -0
  37. package/lib/types/Aspect.js +12 -0
  38. package/lib/types/Attribute.d.ts +36 -0
  39. package/lib/types/Attribute.js +12 -0
  40. package/lib/types/Blessing.d.ts +113 -0
  41. package/lib/types/Blessing.js +12 -0
  42. package/lib/types/Cantrip.d.ts +183 -0
  43. package/lib/types/Cantrip.js +12 -0
  44. package/lib/types/Ceremony.d.ts +113 -0
  45. package/lib/types/Ceremony.js +12 -0
  46. package/lib/types/CombatTechnique_Close.d.ts +73 -0
  47. package/lib/types/CombatTechnique_Close.js +12 -0
  48. package/lib/types/CombatTechnique_Ranged.d.ts +66 -0
  49. package/lib/types/CombatTechnique_Ranged.js +12 -0
  50. package/lib/types/Condition.d.ts +40 -0
  51. package/lib/types/Condition.js +12 -0
  52. package/lib/types/Continent.d.ts +30 -0
  53. package/lib/types/Continent.js +12 -0
  54. package/lib/types/Culture.d.ts +382 -0
  55. package/lib/types/Culture.js +50 -0
  56. package/lib/types/DerivedCharacteristic.d.ts +61 -0
  57. package/lib/types/DerivedCharacteristic.js +12 -0
  58. package/lib/types/Disadvantage.d.ts +58 -0
  59. package/lib/types/Disadvantage.js +12 -0
  60. package/lib/types/Disease.d.ts +43 -0
  61. package/lib/types/Disease.js +12 -0
  62. package/lib/types/Element.d.ts +28 -0
  63. package/lib/types/Element.js +12 -0
  64. package/lib/types/ExperienceLevel.d.ts +64 -0
  65. package/lib/types/ExperienceLevel.js +12 -0
  66. package/lib/types/EyeColor.d.ts +28 -0
  67. package/lib/types/EyeColor.js +12 -0
  68. package/lib/types/FamiliarsTrick.d.ts +266 -0
  69. package/lib/types/FamiliarsTrick.js +12 -0
  70. package/lib/types/HairColor.d.ts +28 -0
  71. package/lib/types/HairColor.js +12 -0
  72. package/lib/types/Kirchenpraegung.d.ts +10 -0
  73. package/lib/types/Kirchenpraegung.js +12 -0
  74. package/lib/types/Lessons_Curriculum.d.ts +236 -0
  75. package/lib/types/Lessons_Curriculum.js +12 -0
  76. package/lib/types/Lessons_Guideline.d.ts +34 -0
  77. package/lib/types/Lessons_Guideline.js +12 -0
  78. package/lib/types/LiturgicalChant.d.ts +113 -0
  79. package/lib/types/LiturgicalChant.js +12 -0
  80. package/lib/types/Locale.d.ts +36 -0
  81. package/lib/types/Locale.js +12 -0
  82. package/lib/types/MetaCondition.d.ts +43 -0
  83. package/lib/types/MetaCondition.js +12 -0
  84. package/lib/types/PactCategory.d.ts +78 -0
  85. package/lib/types/PactCategory.js +12 -0
  86. package/lib/types/Patron.d.ts +207 -0
  87. package/lib/types/Patron.js +32 -0
  88. package/lib/types/PatronCategory.d.ts +36 -0
  89. package/lib/types/PatronCategory.js +12 -0
  90. package/lib/types/PersonalityTrait.d.ts +67 -0
  91. package/lib/types/PersonalityTrait.js +12 -0
  92. package/lib/types/Profession.d.ts +653 -0
  93. package/lib/types/Profession.js +18 -0
  94. package/lib/types/Property.d.ts +34 -0
  95. package/lib/types/Property.js +12 -0
  96. package/lib/types/Race.d.ts +405 -0
  97. package/lib/types/Race.js +23 -0
  98. package/lib/types/Region.d.ts +28 -0
  99. package/lib/types/Region.js +12 -0
  100. package/lib/types/Ritual.d.ts +111 -0
  101. package/lib/types/Ritual.js +12 -0
  102. package/lib/types/Service.d.ts +46 -0
  103. package/lib/types/Service.js +17 -0
  104. package/lib/types/SexPractice.d.ts +47 -0
  105. package/lib/types/SexPractice.js +12 -0
  106. package/lib/types/Skill.d.ts +142 -0
  107. package/lib/types/Skill.js +31 -0
  108. package/lib/types/SkillGroup.d.ts +37 -0
  109. package/lib/types/SkillGroup.js +12 -0
  110. package/lib/types/SkillModificationLevel.d.ts +107 -0
  111. package/lib/types/SkillModificationLevel.js +17 -0
  112. package/lib/types/SocialStatus.d.ts +28 -0
  113. package/lib/types/SocialStatus.js +12 -0
  114. package/lib/types/Spell.d.ts +111 -0
  115. package/lib/types/Spell.js +12 -0
  116. package/lib/types/State.d.ts +36 -0
  117. package/lib/types/State.js +12 -0
  118. package/lib/types/Talisman.d.ts +76 -0
  119. package/lib/types/Talisman.js +20 -0
  120. package/lib/types/TargetCategory.d.ts +42 -0
  121. package/lib/types/TargetCategory.js +12 -0
  122. package/lib/types/UI.d.ts +1062 -0
  123. package/lib/types/UI.js +12 -0
  124. package/lib/types/_Activatable.d.ts +1383 -0
  125. package/lib/types/_Activatable.js +44 -0
  126. package/lib/types/_ActivatableSelectOptionCategory.d.ts +389 -0
  127. package/lib/types/_ActivatableSelectOptionCategory.js +8 -0
  128. package/lib/types/_ActivatableSkill.d.ts +37 -0
  129. package/lib/types/_ActivatableSkill.js +4 -0
  130. package/lib/types/_ActivatableSkillCastingTime.d.ts +77 -0
  131. package/lib/types/_ActivatableSkillCastingTime.js +5 -0
  132. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +39 -0
  133. package/lib/types/_ActivatableSkillCheckResultBased.js +16 -0
  134. package/lib/types/_ActivatableSkillCost.d.ts +255 -0
  135. package/lib/types/_ActivatableSkillCost.js +1 -0
  136. package/lib/types/_ActivatableSkillDuration.d.ts +138 -0
  137. package/lib/types/_ActivatableSkillDuration.js +13 -0
  138. package/lib/types/_ActivatableSkillEffect.d.ts +68 -0
  139. package/lib/types/_ActivatableSkillEffect.js +1 -0
  140. package/lib/types/_ActivatableSkillRange.d.ts +110 -0
  141. package/lib/types/_ActivatableSkillRange.js +5 -0
  142. package/lib/types/_ActivatableSkillTargetCategory.d.ts +39 -0
  143. package/lib/types/_ActivatableSkillTargetCategory.js +1 -0
  144. package/lib/types/_AlternativeNames.d.ts +11 -0
  145. package/lib/types/_AlternativeNames.js +1 -0
  146. package/lib/types/_ArcaneTradition.d.ts +28 -0
  147. package/lib/types/_ArcaneTradition.js +4 -0
  148. package/lib/types/_Blessed.d.ts +22 -0
  149. package/lib/types/_Blessed.js +1 -0
  150. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +10 -0
  151. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +1 -0
  152. package/lib/types/_Dice.d.ts +23 -0
  153. package/lib/types/_Dice.js +9 -0
  154. package/lib/types/_DiseasePoison.d.ts +114 -0
  155. package/lib/types/_DiseasePoison.js +15 -0
  156. package/lib/types/_Enhancements.d.ts +62 -0
  157. package/lib/types/_Enhancements.js +4 -0
  158. package/lib/types/_I18n.d.ts +34 -0
  159. package/lib/types/_I18n.js +1 -0
  160. package/lib/types/_Identifier.d.ts +1193 -0
  161. package/lib/types/_Identifier.js +1 -0
  162. package/lib/types/_IdentifierGroup.d.ts +28 -0
  163. package/lib/types/_IdentifierGroup.js +1 -0
  164. package/lib/types/_ImprovementCost.d.ts +9 -0
  165. package/lib/types/_ImprovementCost.js +10 -0
  166. package/lib/types/_Influence.d.ts +49 -0
  167. package/lib/types/_Influence.js +4 -0
  168. package/lib/types/_LocaleMap.d.ts +10 -0
  169. package/lib/types/_LocaleMap.js +1 -0
  170. package/lib/types/_NonEmptyString.d.ts +9 -0
  171. package/lib/types/_NonEmptyString.js +1 -0
  172. package/lib/types/_Prerequisite.d.ts +109 -0
  173. package/lib/types/_Prerequisite.js +4 -0
  174. package/lib/types/_ResponsiveText.d.ts +54 -0
  175. package/lib/types/_ResponsiveText.js +1 -0
  176. package/lib/types/_Sex.d.ts +10 -0
  177. package/lib/types/_Sex.js +11 -0
  178. package/lib/types/_SimpleReferences.d.ts +134 -0
  179. package/lib/types/_SimpleReferences.js +1 -0
  180. package/lib/types/_SkillCheck.d.ts +22 -0
  181. package/lib/types/_SkillCheck.js +13 -0
  182. package/lib/types/_Spellwork.d.ts +18 -0
  183. package/lib/types/_Spellwork.js +1 -0
  184. package/lib/types/equipment/EquipmentPackage.d.ts +51 -0
  185. package/lib/types/equipment/EquipmentPackage.js +12 -0
  186. package/lib/types/equipment/item/Alchemicum.d.ts +7 -0
  187. package/lib/types/equipment/item/Alchemicum.js +12 -0
  188. package/lib/types/equipment/item/Ammunition.d.ts +32 -0
  189. package/lib/types/equipment/item/Ammunition.js +12 -0
  190. package/lib/types/equipment/item/Animal.d.ts +19 -0
  191. package/lib/types/equipment/item/Animal.js +12 -0
  192. package/lib/types/equipment/item/AnimalCare.d.ts +49 -0
  193. package/lib/types/equipment/item/AnimalCare.js +12 -0
  194. package/lib/types/equipment/item/Armor.d.ts +186 -0
  195. package/lib/types/equipment/item/Armor.js +12 -0
  196. package/lib/types/equipment/item/BandageOrRemedy.d.ts +37 -0
  197. package/lib/types/equipment/item/BandageOrRemedy.js +12 -0
  198. package/lib/types/equipment/item/Book.d.ts +61 -0
  199. package/lib/types/equipment/item/Book.js +12 -0
  200. package/lib/types/equipment/item/CeremonialItem.d.ts +42 -0
  201. package/lib/types/equipment/item/CeremonialItem.js +12 -0
  202. package/lib/types/equipment/item/Clothes.d.ts +7 -0
  203. package/lib/types/equipment/item/Clothes.js +12 -0
  204. package/lib/types/equipment/item/Container.d.ts +7 -0
  205. package/lib/types/equipment/item/Container.js +12 -0
  206. package/lib/types/equipment/item/Elixir.d.ts +76 -0
  207. package/lib/types/equipment/item/Elixir.js +12 -0
  208. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +29 -0
  209. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +12 -0
  210. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +44 -0
  211. package/lib/types/equipment/item/GemOrPreciousStone.js +12 -0
  212. package/lib/types/equipment/item/IlluminationLightSource.d.ts +63 -0
  213. package/lib/types/equipment/item/IlluminationLightSource.js +16 -0
  214. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +7 -0
  215. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +12 -0
  216. package/lib/types/equipment/item/Jewelry.d.ts +61 -0
  217. package/lib/types/equipment/item/Jewelry.js +12 -0
  218. package/lib/types/equipment/item/Liebesspielzeug.d.ts +7 -0
  219. package/lib/types/equipment/item/Liebesspielzeug.js +12 -0
  220. package/lib/types/equipment/item/LuxuryGood.d.ts +37 -0
  221. package/lib/types/equipment/item/LuxuryGood.js +12 -0
  222. package/lib/types/equipment/item/MagicalArtifact.d.ts +40 -0
  223. package/lib/types/equipment/item/MagicalArtifact.js +12 -0
  224. package/lib/types/equipment/item/MusicalInstrument.d.ts +23 -0
  225. package/lib/types/equipment/item/MusicalInstrument.js +12 -0
  226. package/lib/types/equipment/item/OrienteeringAid.d.ts +7 -0
  227. package/lib/types/equipment/item/OrienteeringAid.js +12 -0
  228. package/lib/types/equipment/item/Poison.d.ts +359 -0
  229. package/lib/types/equipment/item/Poison.js +30 -0
  230. package/lib/types/equipment/item/RopeOrChain.d.ts +7 -0
  231. package/lib/types/equipment/item/RopeOrChain.js +12 -0
  232. package/lib/types/equipment/item/Stationary.d.ts +7 -0
  233. package/lib/types/equipment/item/Stationary.js +12 -0
  234. package/lib/types/equipment/item/ThievesTool.d.ts +7 -0
  235. package/lib/types/equipment/item/ThievesTool.js +12 -0
  236. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +61 -0
  237. package/lib/types/equipment/item/ToolOfTheTrade.js +12 -0
  238. package/lib/types/equipment/item/TravelGearOrTool.d.ts +7 -0
  239. package/lib/types/equipment/item/TravelGearOrTool.js +12 -0
  240. package/lib/types/equipment/item/Vehicle.d.ts +19 -0
  241. package/lib/types/equipment/item/Vehicle.js +12 -0
  242. package/lib/types/equipment/item/Weapon.d.ts +166 -0
  243. package/lib/types/equipment/item/Weapon.js +12 -0
  244. package/lib/types/equipment/item/WeaponAccessory.d.ts +7 -0
  245. package/lib/types/equipment/item/WeaponAccessory.js +12 -0
  246. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  247. package/lib/types/equipment/item/_Herbary.js +22 -0
  248. package/lib/types/equipment/item/_Item.d.ts +160 -0
  249. package/lib/types/equipment/item/_Item.js +1 -0
  250. package/lib/types/equipment/item/_MeleeWeapon.d.ts +108 -0
  251. package/lib/types/equipment/item/_MeleeWeapon.js +4 -0
  252. package/lib/types/equipment/item/_RangedWeapon.d.ts +109 -0
  253. package/lib/types/equipment/item/_RangedWeapon.js +4 -0
  254. package/lib/types/equipment/item/_Weapon.d.ts +57 -0
  255. package/lib/types/equipment/item/_Weapon.js +1 -0
  256. package/lib/types/equipment/item/sub/ArmorType.d.ts +37 -0
  257. package/lib/types/equipment/item/sub/ArmorType.js +12 -0
  258. package/lib/types/equipment/item/sub/Reach.d.ts +28 -0
  259. package/lib/types/equipment/item/sub/Reach.js +12 -0
  260. package/lib/types/magicalActions/AnimistPower.d.ts +238 -0
  261. package/lib/types/magicalActions/AnimistPower.js +12 -0
  262. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +28 -0
  263. package/lib/types/magicalActions/AnimistPower_Tribe.js +12 -0
  264. package/lib/types/magicalActions/Curse.d.ts +162 -0
  265. package/lib/types/magicalActions/Curse.js +12 -0
  266. package/lib/types/magicalActions/DominationRitual.d.ts +145 -0
  267. package/lib/types/magicalActions/DominationRitual.js +12 -0
  268. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +135 -0
  269. package/lib/types/magicalActions/ElvenMagicalSong.js +12 -0
  270. package/lib/types/magicalActions/GeodeRitual.d.ts +180 -0
  271. package/lib/types/magicalActions/GeodeRitual.js +12 -0
  272. package/lib/types/magicalActions/JesterTrick.d.ts +177 -0
  273. package/lib/types/magicalActions/JesterTrick.js +12 -0
  274. package/lib/types/magicalActions/MagicalDance.d.ts +119 -0
  275. package/lib/types/magicalActions/MagicalDance.js +12 -0
  276. package/lib/types/magicalActions/MagicalMelody.d.ts +124 -0
  277. package/lib/types/magicalActions/MagicalMelody.js +12 -0
  278. package/lib/types/magicalActions/MagicalRune.d.ts +294 -0
  279. package/lib/types/magicalActions/MagicalRune.js +12 -0
  280. package/lib/types/magicalActions/ZibiljaRitual.d.ts +102 -0
  281. package/lib/types/magicalActions/ZibiljaRitual.js +12 -0
  282. package/lib/types/magicalActions/_MusicTradition.d.ts +36 -0
  283. package/lib/types/magicalActions/_MusicTradition.js +10 -0
  284. package/lib/types/magicalActions/_SkillReference.d.ts +14 -0
  285. package/lib/types/magicalActions/_SkillReference.js +5 -0
  286. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +10 -0
  287. package/lib/types/prerequisites/ConditionalPrerequisites.js +1 -0
  288. package/lib/types/prerequisites/DisplayOption.d.ts +32 -0
  289. package/lib/types/prerequisites/DisplayOption.js +1 -0
  290. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +215 -0
  291. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  292. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +31 -0
  293. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +1 -0
  294. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +5 -0
  295. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +1 -0
  296. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +26 -0
  297. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +1 -0
  298. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +13 -0
  299. package/lib/types/prerequisites/single/CulturePrerequisite.js +1 -0
  300. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +39 -0
  301. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +1 -0
  302. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +16 -0
  303. package/lib/types/prerequisites/single/InfluencePrerequisite.js +1 -0
  304. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +23 -0
  305. package/lib/types/prerequisites/single/PactPrerequisite.js +1 -0
  306. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +21 -0
  307. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +5 -0
  308. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +12 -0
  309. package/lib/types/prerequisites/single/PublicationPrerequisite.js +1 -0
  310. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +16 -0
  311. package/lib/types/prerequisites/single/RacePrerequisite.js +1 -0
  312. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +67 -0
  313. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +6 -0
  314. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +18 -0
  315. package/lib/types/prerequisites/single/RatedPrerequisite.js +1 -0
  316. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +19 -0
  317. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +1 -0
  318. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +9 -0
  319. package/lib/types/prerequisites/single/RulePrerequisite.js +1 -0
  320. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +10 -0
  321. package/lib/types/prerequisites/single/SexPrerequisite.js +1 -0
  322. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +11 -0
  323. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +5 -0
  324. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +13 -0
  325. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +1 -0
  326. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +10 -0
  327. package/lib/types/prerequisites/single/StatePrerequisite.js +1 -0
  328. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +55 -0
  329. package/lib/types/prerequisites/single/TextPrerequisite.js +10 -0
  330. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +39 -0
  331. package/lib/types/prerequisites/single/TraditionPrerequisite.js +18 -0
  332. package/lib/types/rule/CoreRule.d.ts +312 -0
  333. package/lib/types/rule/CoreRule.js +17 -0
  334. package/lib/types/rule/FocusRule.d.ts +53 -0
  335. package/lib/types/rule/FocusRule.js +12 -0
  336. package/lib/types/rule/FocusRule_Subject.d.ts +29 -0
  337. package/lib/types/rule/FocusRule_Subject.js +12 -0
  338. package/lib/types/rule/OptionalRule.d.ts +41 -0
  339. package/lib/types/rule/OptionalRule.js +12 -0
  340. package/lib/types/source/Publication.d.ts +75 -0
  341. package/lib/types/source/Publication.js +22 -0
  342. package/lib/types/source/_Erratum.d.ts +26 -0
  343. package/lib/types/source/_Erratum.js +4 -0
  344. package/lib/types/source/_PublicationRef.d.ts +151 -0
  345. package/lib/types/source/_PublicationRef.js +4 -0
  346. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +52 -0
  347. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +12 -0
  348. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +34 -0
  349. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +12 -0
  350. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +34 -0
  351. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +12 -0
  352. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +34 -0
  353. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +12 -0
  354. package/lib/types/specialAbility/AncestorGlyph.d.ts +38 -0
  355. package/lib/types/specialAbility/AncestorGlyph.js +12 -0
  356. package/lib/types/specialAbility/BlessedTradition.d.ts +147 -0
  357. package/lib/types/specialAbility/BlessedTradition.js +12 -0
  358. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +34 -0
  359. package/lib/types/specialAbility/BrawlingSpecialAbility.js +12 -0
  360. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +40 -0
  361. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +12 -0
  362. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +45 -0
  363. package/lib/types/specialAbility/CombatSpecialAbility.js +12 -0
  364. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +42 -0
  365. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +12 -0
  366. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +38 -0
  367. package/lib/types/specialAbility/CommandSpecialAbility.js +12 -0
  368. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +32 -0
  369. package/lib/types/specialAbility/FamiliarSpecialAbility.js +12 -0
  370. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +32 -0
  371. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +12 -0
  372. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +39 -0
  373. package/lib/types/specialAbility/FatePointSpecialAbility.js +12 -0
  374. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +44 -0
  375. package/lib/types/specialAbility/GeneralSpecialAbility.js +12 -0
  376. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +37 -0
  377. package/lib/types/specialAbility/KarmaSpecialAbility.js +12 -0
  378. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +36 -0
  379. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +12 -0
  380. package/lib/types/specialAbility/LycantropicGift.d.ts +32 -0
  381. package/lib/types/specialAbility/LycantropicGift.js +12 -0
  382. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +36 -0
  383. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +12 -0
  384. package/lib/types/specialAbility/MagicalSign.d.ts +39 -0
  385. package/lib/types/specialAbility/MagicalSign.js +12 -0
  386. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +43 -0
  387. package/lib/types/specialAbility/MagicalSpecialAbility.js +12 -0
  388. package/lib/types/specialAbility/MagicalTradition.d.ts +114 -0
  389. package/lib/types/specialAbility/MagicalTradition.js +12 -0
  390. package/lib/types/specialAbility/PactGift.d.ts +103 -0
  391. package/lib/types/specialAbility/PactGift.js +22 -0
  392. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +46 -0
  393. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +12 -0
  394. package/lib/types/specialAbility/Sermon.d.ts +32 -0
  395. package/lib/types/specialAbility/Sermon.js +12 -0
  396. package/lib/types/specialAbility/SexSpecialAbility.d.ts +34 -0
  397. package/lib/types/specialAbility/SexSpecialAbility.js +12 -0
  398. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +37 -0
  399. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +12 -0
  400. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +34 -0
  401. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +12 -0
  402. package/lib/types/specialAbility/VampiricGift.d.ts +37 -0
  403. package/lib/types/specialAbility/VampiricGift.js +12 -0
  404. package/lib/types/specialAbility/Vision.d.ts +32 -0
  405. package/lib/types/specialAbility/Vision.js +12 -0
  406. package/lib/types/specialAbility/_Tradition.d.ts +12 -0
  407. package/lib/types/specialAbility/_Tradition.js +1 -0
  408. package/lib/types/specialAbility/sub/Language.d.ts +117 -0
  409. package/lib/types/specialAbility/sub/Language.js +12 -0
  410. package/lib/types/specialAbility/sub/Script.d.ts +60 -0
  411. package/lib/types/specialAbility/sub/Script.js +12 -0
  412. package/lib/types/specialAbility/sub/TradeSecret.d.ts +48 -0
  413. package/lib/types/specialAbility/sub/TradeSecret.js +12 -0
  414. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +11 -0
  415. package/lib/types/specialAbility/sub/_LanguageScript.js +1 -0
  416. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +47 -0
  417. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +12 -0
  418. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +47 -0
  419. package/lib/types/traditionArtifacts/AttireEnchantment.js +12 -0
  420. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +47 -0
  421. package/lib/types/traditionArtifacts/BowlEnchantment.js +12 -0
  422. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +61 -0
  423. package/lib/types/traditionArtifacts/CauldronEnchantment.js +12 -0
  424. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +47 -0
  425. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +12 -0
  426. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +71 -0
  427. package/lib/types/traditionArtifacts/DaggerRitual.js +12 -0
  428. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +47 -0
  429. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +12 -0
  430. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +47 -0
  431. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +12 -0
  432. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +47 -0
  433. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +12 -0
  434. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +47 -0
  435. package/lib/types/traditionArtifacts/OrbEnchantment.js +12 -0
  436. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +47 -0
  437. package/lib/types/traditionArtifacts/RingEnchantment.js +12 -0
  438. package/lib/types/traditionArtifacts/SickleRitual.d.ts +47 -0
  439. package/lib/types/traditionArtifacts/SickleRitual.js +12 -0
  440. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +52 -0
  441. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +12 -0
  442. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +57 -0
  443. package/lib/types/traditionArtifacts/StaffEnchantment.js +12 -0
  444. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +47 -0
  445. package/lib/types/traditionArtifacts/ToyEnchantment.js +12 -0
  446. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +47 -0
  447. package/lib/types/traditionArtifacts/Trinkhornzauber.js +12 -0
  448. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +42 -0
  449. package/lib/types/traditionArtifacts/WandEnchantment.js +12 -0
  450. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +47 -0
  451. package/lib/types/traditionArtifacts/WeaponEnchantment.js +12 -0
  452. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +52 -0
  453. package/lib/types/traditionArtifacts/sub/AnimalShape.js +12 -0
  454. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +28 -0
  455. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +12 -0
  456. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +40 -0
  457. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +12 -0
  458. package/lib/types/traditionArtifacts/sub/Brew.d.ts +28 -0
  459. package/lib/types/traditionArtifacts/sub/Brew.js +12 -0
  460. package/lib/validation/builders/integrity.d.ts +57 -0
  461. package/lib/validation/builders/integrity.js +44 -0
  462. package/lib/validation/builders/naming.d.ts +13 -0
  463. package/lib/validation/builders/naming.js +14 -0
  464. package/lib/validation/builders/schema.d.ts +31 -0
  465. package/lib/validation/builders/schema.js +32 -0
  466. package/lib/validation/filename.d.ts +9 -0
  467. package/lib/validation/filename.js +10 -0
  468. package/lib/validation/raw.d.ts +9 -0
  469. package/lib/validation/raw.js +55 -0
  470. package/lib/validation/schema.d.ts +6 -0
  471. package/lib/validation/schema.js +32 -0
  472. package/package.json +4 -4
  473. package/build/config.js +0 -21
  474. package/lib/build/config.d.ts +0 -8
  475. package/lib/build/config.js +0 -16
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This function is used to make sure that the `switch` is exhaustive. Place it
3
+ * in the `default` case of the `switch`.
4
+ * @param x The value that is used in the `switch`.
5
+ */
6
+ export function assertExhaustive(x) {
7
+ throw new Error("The switch is not exhaustive.");
8
+ }
package/lib/main.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ import { TypeMap } from "./config/types.js";
2
+ import "./helpers/array.js";
3
+ import { Result } from "./helpers/result.js";
4
+ import { TypeId } from "./typeConfig.js";
5
+ import { IntegrityError } from "./validation/builders/integrity.js";
6
+ import { FileNameError } from "./validation/builders/naming.js";
7
+ import { SchemaError } from "./validation/builders/schema.js";
8
+ /**
9
+ * Options for validating data files.
10
+ */
11
+ export type ValidationOptions = {
12
+ /**
13
+ * Whether to check the integrity of the data files. This includes checking
14
+ * for referencial integrity (i.e. whether all referenced entities exist).
15
+ * @default false
16
+ */
17
+ checkIntegrity?: boolean;
18
+ };
19
+ /**
20
+ * A type validation may fail because of the data not matching the schema, the
21
+ * file name not matching a pattern, or integrity issues.
22
+ */
23
+ export type TypeValidationError = IntegrityError | FileNameError | SchemaError;
24
+ /**
25
+ * A map of all valid entries, grouped by entity type.
26
+ */
27
+ export type ValidResults = {
28
+ [K in keyof TypeMap]: [id: TypeId<keyof TypeMap>, data: TypeMap[keyof TypeMap]][];
29
+ };
30
+ /**
31
+ * A dictionary of entity types and their data’s associated locations.
32
+ */
33
+ export type EntityDirectoryPaths = {
34
+ [K in keyof TypeMap]: string;
35
+ };
36
+ type StrictResults = Result<ValidResults, Record<string, TypeValidationError[]>>;
37
+ /**
38
+ * If the database has no validation issues, returns the whole data set as a map
39
+ * of entity types to their data. If there are any errors, only the errors will
40
+ * be returned instead.
41
+ * @param entityDirPaths THe paths to the directories containing the data to be
42
+ * validated.
43
+ * @param options Configuration options for the validation.
44
+ * @returns Either the whole data set or the errors.
45
+ */
46
+ export declare const getAllValidDataOrErrors: (entityDirPaths: EntityDirectoryPaths, options?: ValidationOptions) => Promise<StrictResults>;
47
+ /**
48
+ * Returns all valid data as a map of entity types to their data.
49
+ * @param entityDirPaths THe paths to the directories containing the data to be
50
+ * validated.
51
+ * @param options Configuration options for the validation.
52
+ * @returns The valid data.
53
+ */
54
+ export declare const getAllValidData: (entityDirPaths: EntityDirectoryPaths, options?: ValidationOptions) => Promise<ValidResults>;
55
+ export {};
package/lib/main.js ADDED
@@ -0,0 +1,55 @@
1
+ import "./helpers/array.js";
2
+ import { mapSecond } from "./helpers/pair.js";
3
+ import { Result, error, isError, isOk, ok } from "./helpers/result.js";
4
+ import { getRawValidationResults } from "./validation/raw.js";
5
+ const rawResultMapToResult = (rawResultMap) => rawResultMap.reduce((result, [typeName, typeResults]) => typeResults.reduce((outerResult, [filePath, fileResult]) => {
6
+ if (isOk(outerResult) && isOk(fileResult)) {
7
+ return ok({
8
+ ...outerResult.value,
9
+ [typeName]: [...(outerResult.value[typeName] ?? []), fileResult.value]
10
+ });
11
+ }
12
+ else if (isOk(outerResult) && isError(fileResult)) {
13
+ return error({
14
+ [filePath]: fileResult.error
15
+ });
16
+ }
17
+ else if (isError(outerResult) && isError(fileResult)) {
18
+ return error({
19
+ ...outerResult.error,
20
+ [filePath]: fileResult.error
21
+ });
22
+ }
23
+ else {
24
+ return outerResult;
25
+ }
26
+ }, result), ok({}));
27
+ const filterResultMapByValidData = (rawResultMap) => rawResultMap
28
+ .map(mapSecond((typeResults) => typeResults
29
+ .filter((typeResult) => Result.isOk(typeResult[1]))
30
+ .map(fileResult => fileResult[1].value)))
31
+ .objectFromEntries();
32
+ /**
33
+ * If the database has no validation issues, returns the whole data set as a map
34
+ * of entity types to their data. If there are any errors, only the errors will
35
+ * be returned instead.
36
+ * @param entityDirPaths THe paths to the directories containing the data to be
37
+ * validated.
38
+ * @param options Configuration options for the validation.
39
+ * @returns Either the whole data set or the errors.
40
+ */
41
+ export const getAllValidDataOrErrors = async (entityDirPaths, options = {}) => {
42
+ const rawResultMap = await getRawValidationResults(entityDirPaths, options);
43
+ return rawResultMapToResult(rawResultMap);
44
+ };
45
+ /**
46
+ * Returns all valid data as a map of entity types to their data.
47
+ * @param entityDirPaths THe paths to the directories containing the data to be
48
+ * validated.
49
+ * @param options Configuration options for the validation.
50
+ * @returns The valid data.
51
+ */
52
+ export const getAllValidData = async (entityDirPaths, options = {}) => {
53
+ const rawResultMap = await getRawValidationResults(entityDirPaths, options);
54
+ return filterResultMapByValidData(rawResultMap);
55
+ };
@@ -0,0 +1,10 @@
1
+ import { TypeMap, configMap } from "./config/types.js";
2
+ import { IntegrityValidator } from "./validation/builders/integrity.js";
3
+ import { SchemaValidator } from "./validation/builders/schema.js";
4
+ export type TypeId<K extends keyof TypeMap> = ReturnType<(typeof configMap)[K]["id"]>;
5
+ export type TypeConfig<T, ID extends string | number = number> = {
6
+ name: string;
7
+ id: (data: T, filepath: string) => ID;
8
+ integrityValidator: IntegrityValidator<T>;
9
+ schemaValidator: SchemaValidator<T>;
10
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @main Advantage
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import * as Activatable from "./_Activatable.js";
6
+ import { LocaleMap } from "./_LocaleMap.js";
7
+ import { AdvantageDisadvantagePrerequisites } from "./_Prerequisite.js";
8
+ import { Errata } from "./source/_Erratum.js";
9
+ import { PublicationRefs } from "./source/_PublicationRef.js";
10
+ /**
11
+ * @title Advantage
12
+ */
13
+ export type Advantage = {
14
+ id: Activatable.Id;
15
+ levels?: Activatable.Levels;
16
+ select_options?: Activatable.SelectOptions;
17
+ skill_applications?: Activatable.SkillApplications;
18
+ skill_uses?: Activatable.SkillUses;
19
+ maximum?: Activatable.Maximum;
20
+ prerequisites?: AdvantageDisadvantagePrerequisites;
21
+ ap_value: Activatable.AdventurePointsValue;
22
+ /**
23
+ * Does this advantage count towards the maximum of AP to be spent on
24
+ * advantages?
25
+ * @default true
26
+ */
27
+ has_maximum_spent_influence: boolean;
28
+ /**
29
+ * Does this advantage exclusively applies to arcane spellworks and not
30
+ * to magical actions and magical applications?
31
+ * @default false
32
+ */
33
+ is_exclusive_to_arcane_spellworks: boolean;
34
+ src: PublicationRefs;
35
+ /**
36
+ * All translations for the entry, identified by IETF language tag (BCP47).
37
+ */
38
+ translations: LocaleMap<AdvantageTranslation>;
39
+ };
40
+ export type AdvantageTranslation = {
41
+ name: Activatable.Name;
42
+ name_in_library?: Activatable.NameInLibrary;
43
+ /**
44
+ * A string that is used as a label for an input field.
45
+ */
46
+ input?: Activatable.Input;
47
+ rules: Activatable.Rules;
48
+ /**
49
+ * The range.
50
+ * @markdown
51
+ * @minLength 1
52
+ */
53
+ range?: string;
54
+ ap_value?: Activatable.AdventurePointsValueReplacement;
55
+ /**
56
+ * A string that gets appended to the default AP Value text with a preceding
57
+ * space. This always happens if present, even if the generated AP Value text
58
+ * is replaced.
59
+ */
60
+ ap_value_append?: Activatable.AdventurePointsValueAppend;
61
+ errata?: Errata;
62
+ };
63
+ export declare const config: TypeConfig<Advantage>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Advantage
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "Advantage",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("Advantage"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @main AnimalDisease
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { Cause, DiseaseTranslation, Resistance } from "./_DiseasePoison.js";
6
+ import { LocaleMap } from "./_LocaleMap.js";
7
+ import { AnimalTypeReference } from "./_SimpleReferences.js";
8
+ import { PublicationRefs } from "./source/_PublicationRef.js";
9
+ /**
10
+ * @title Animal Disease
11
+ */
12
+ export type AnimalDisease = {
13
+ /**
14
+ * The animal disease's identifier. An unique, increasing integer.
15
+ * @integer
16
+ * @minimum 1
17
+ */
18
+ id: number;
19
+ /**
20
+ * The animal disease's level.
21
+ * @integer
22
+ * @minimum 1
23
+ */
24
+ level: number;
25
+ /**
26
+ * Depending on the disease, apply Spirit or Toughness as a penalty to the
27
+ * disease roll. It may also happen that the lower of both is applied as a
28
+ * penalty.
29
+ */
30
+ resistance: Resistance;
31
+ /**
32
+ * What causes the disease? The GM rolls 1D20 to see if a character gets
33
+ * infected. If the infection check succeeds, the GM makes a disease check to
34
+ * determine the severity of the infection.
35
+ * @minItems 1
36
+ */
37
+ cause: Cause[];
38
+ /**
39
+ * The animal types this disease applies to.
40
+ *
41
+ * If no animal types are given, the animal disease applies to all animal
42
+ * types.
43
+ */
44
+ animal_types: AnimalTypeReference[];
45
+ /**
46
+ * If and at which chance the disease can be communicated to intelligent
47
+ * creatures.
48
+ *
49
+ * If no causes are given, the disease is not communicable to intelligent
50
+ * creatures.
51
+ */
52
+ communicability_to_intelligent_creatures: Cause[];
53
+ src: PublicationRefs;
54
+ /**
55
+ * All translations for the entry, identified by IETF language tag (BCP47).
56
+ */
57
+ translations: LocaleMap<DiseaseTranslation>;
58
+ };
59
+ export declare const config: TypeConfig<AnimalDisease>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main AnimalDisease
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "AnimalDisease",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("AnimalDisease"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @main AnimalType
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ /**
8
+ * @title Animal Type
9
+ */
10
+ export type AnimalType = {
11
+ /**
12
+ * The animal type's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * All translations for the entry, identified by IETF language tag (BCP47).
19
+ */
20
+ translations: LocaleMap<AnimalTypeTranslation>;
21
+ };
22
+ export type AnimalTypeTranslation = {
23
+ /**
24
+ * The animal type name.
25
+ */
26
+ name: NonEmptyString;
27
+ };
28
+ export declare const config: TypeConfig<AnimalType>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main AnimalType
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "AnimalType",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("AnimalType"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @main ArcaneBardTradition
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { ArcaneTradition } from "./_ArcaneTradition.js";
6
+ /**
7
+ * @title Arcane Bard Tradition
8
+ */
9
+ export type ArcaneBardTradition = ArcaneTradition;
10
+ export declare const config: TypeConfig<ArcaneBardTradition>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main ArcaneBardTradition
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "ArcaneBardTradition",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("ArcaneBardTradition"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @main ArcaneDancerTradition
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { ArcaneTradition } from "./_ArcaneTradition.js";
6
+ /**
7
+ * @title Arcane Dancer Tradition
8
+ */
9
+ export type ArcaneDancerTradition = ArcaneTradition;
10
+ export declare const config: TypeConfig<ArcaneDancerTradition>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main ArcaneDancerTradition
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "ArcaneDancerTradition",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("ArcaneDancerTradition"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @main Aspect
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ /**
8
+ * @title Aspect
9
+ */
10
+ export type Aspect = {
11
+ /**
12
+ * The aspect's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * All translations for the entry, identified by IETF language tag (BCP47).
19
+ */
20
+ translations: LocaleMap<AspectTranslation>;
21
+ };
22
+ export type AspectTranslation = {
23
+ /**
24
+ * The aspect name.
25
+ */
26
+ name: NonEmptyString;
27
+ /**
28
+ * The aspect's name appended to the simple name (not `name_in_library`)
29
+ * of the special ability *Master of (Aspect)*.
30
+ */
31
+ master_of_aspect_suffix?: NonEmptyString;
32
+ };
33
+ export declare const config: TypeConfig<Aspect>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Aspect
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "Aspect",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("Aspect"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @main Attribute
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { LocaleMap } from "./_LocaleMap.js";
6
+ import { NonEmptyString } from "./_NonEmptyString.js";
7
+ /**
8
+ * @title Attribute
9
+ */
10
+ export type Attribute = {
11
+ /**
12
+ * The attribute's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * All translations for the entry, identified by IETF language tag (BCP47).
19
+ */
20
+ translations: LocaleMap<AttributeTranslation>;
21
+ };
22
+ export type AttributeTranslation = {
23
+ /**
24
+ * The attribute's name.
25
+ */
26
+ name: NonEmptyString;
27
+ /**
28
+ * The abbreviation of the attribute's name.
29
+ */
30
+ abbreviation: NonEmptyString;
31
+ /**
32
+ * The description of the attribute.
33
+ */
34
+ description: NonEmptyString;
35
+ };
36
+ export declare const config: TypeConfig<Attribute>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Attribute
3
+ */
4
+ import { getReferencialIntegrityErrorsForTranslatable, reduceIntegrityValidationResults, validateEntityIntegrity } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "Attribute",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: (validators, data, filepath) => reduceIntegrityValidationResults(validateEntityIntegrity(validators.identity.attributes.exists, getFIlenamePrefixAsNumericId(data, filepath), data.id, [{ k: "id" }]), getReferencialIntegrityErrorsForTranslatable(validators, data)),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @main Blessing
3
+ */
4
+ import { TypeConfig } from "../typeConfig.js";
5
+ import { DurationUnit } from "./_ActivatableSkillDuration.js";
6
+ import { FixedRange } from "./_ActivatableSkillRange.js";
7
+ import { TargetCategory } from "./_ActivatableSkillTargetCategory.js";
8
+ import { LocaleMap } from "./_LocaleMap.js";
9
+ import { Errata } from "./source/_Erratum.js";
10
+ import { PublicationRefs } from "./source/_PublicationRef.js";
11
+ /**
12
+ * @title Blessing
13
+ */
14
+ export type Blessing = {
15
+ /**
16
+ * The blessing's identifier. An unique, increasing integer.
17
+ * @integer
18
+ * @minimum 1
19
+ */
20
+ id: number;
21
+ /**
22
+ * Measurable parameters of a blessing.
23
+ */
24
+ parameters: BlessingPerformanceParameters;
25
+ /**
26
+ * The target category – the kind of creature or object – the skill affects.
27
+ */
28
+ target: TargetCategory;
29
+ src: PublicationRefs;
30
+ /**
31
+ * All translations for the entry, identified by IETF language tag (BCP47).
32
+ */
33
+ translations: LocaleMap<BlessingTranslation>;
34
+ };
35
+ export type BlessingTranslation = {
36
+ /**
37
+ * The name of the blessing.
38
+ * @minLength 1
39
+ */
40
+ name: string;
41
+ /**
42
+ * The effect description.
43
+ * @markdown
44
+ * @minLength 1
45
+ */
46
+ effect: string;
47
+ /**
48
+ * @deprecated
49
+ */
50
+ range: string;
51
+ /**
52
+ * @deprecated
53
+ */
54
+ duration: string;
55
+ /**
56
+ * @deprecated
57
+ */
58
+ target: string;
59
+ errata?: Errata;
60
+ };
61
+ /**
62
+ * Measurable parameters of a blessing.
63
+ */
64
+ export type BlessingPerformanceParameters = {
65
+ range: BlessingRange;
66
+ duration: BlessingDuration;
67
+ };
68
+ export type BlessingRange = {
69
+ tag: "Self";
70
+ self: {};
71
+ } | {
72
+ tag: "Touch";
73
+ touch: {};
74
+ } | {
75
+ tag: "Fixed";
76
+ fixed: FixedRange;
77
+ };
78
+ export type BlessingDuration = {
79
+ tag: "Immediate";
80
+ immediate: {};
81
+ } | {
82
+ tag: "Fixed";
83
+ fixed: FixedBlessingDuration;
84
+ } | {
85
+ tag: "Indefinite";
86
+ indefinite: IndefiniteBlessingDuration;
87
+ };
88
+ export type FixedBlessingDuration = {
89
+ /**
90
+ * The (unitless) duration.
91
+ * @integer
92
+ * @minimum 1
93
+ */
94
+ value: number;
95
+ /**
96
+ * The duration unit.
97
+ */
98
+ unit: DurationUnit;
99
+ };
100
+ export type IndefiniteBlessingDuration = {
101
+ /**
102
+ * All translations for the entry, identified by IETF language tag (BCP47).
103
+ */
104
+ translations: LocaleMap<IndefiniteDurationTranslation>;
105
+ };
106
+ export type IndefiniteDurationTranslation = {
107
+ /**
108
+ * A description of the duration.
109
+ * @minLength 1
110
+ */
111
+ description: string;
112
+ };
113
+ export declare const config: TypeConfig<Blessing>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @main Blessing
3
+ */
4
+ import { todo } from "../validation/builders/integrity.js";
5
+ import { createSchemaValidator } from "../validation/builders/schema.js";
6
+ import { getFIlenamePrefixAsNumericId } from "../validation/filename.js";
7
+ export const config = {
8
+ name: "Blessing",
9
+ id: getFIlenamePrefixAsNumericId,
10
+ integrityValidator: todo("Blessing"),
11
+ schemaValidator: createSchemaValidator(import.meta.url),
12
+ };