optolith-database-schema 0.10.0 → 0.11.0

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 (428) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/config.d.ts +156 -5
  3. package/lib/config.js +154 -154
  4. package/lib/errors.d.ts +20 -0
  5. package/lib/errors.js +33 -0
  6. package/lib/helpers/array.d.ts +14 -0
  7. package/lib/helpers/array.js +15 -0
  8. package/lib/helpers/i18n.d.ts +1 -0
  9. package/lib/helpers/i18n.js +1 -0
  10. package/lib/helpers/io.d.ts +29 -0
  11. package/lib/helpers/io.js +51 -0
  12. package/lib/helpers/objectPath.d.ts +13 -0
  13. package/lib/helpers/objectPath.js +3 -0
  14. package/lib/helpers/pair.d.ts +20 -0
  15. package/lib/helpers/pair.js +20 -0
  16. package/lib/helpers/result.d.ts +57 -0
  17. package/lib/helpers/result.js +45 -0
  18. package/lib/helpers/typeSafety.d.ts +6 -0
  19. package/lib/helpers/typeSafety.js +8 -0
  20. package/lib/main.d.ts +50 -15
  21. package/lib/main.js +46 -133
  22. package/lib/typeConfig.d.ts +10 -0
  23. package/lib/typeConfig.js +1 -0
  24. package/lib/types/Advantage.d.ts +4 -3
  25. package/lib/types/Advantage.js +9 -2
  26. package/lib/types/AnimalDisease.d.ts +4 -3
  27. package/lib/types/AnimalDisease.js +9 -2
  28. package/lib/types/AnimalType.d.ts +4 -3
  29. package/lib/types/AnimalType.js +9 -2
  30. package/lib/types/ArcaneBardTradition.d.ts +3 -2
  31. package/lib/types/ArcaneBardTradition.js +9 -2
  32. package/lib/types/ArcaneDancerTradition.d.ts +3 -2
  33. package/lib/types/ArcaneDancerTradition.js +9 -2
  34. package/lib/types/Aspect.d.ts +4 -3
  35. package/lib/types/Aspect.js +9 -2
  36. package/lib/types/Attribute.d.ts +4 -5
  37. package/lib/types/Attribute.js +9 -4
  38. package/lib/types/Blessing.d.ts +12 -11
  39. package/lib/types/Blessing.js +9 -2
  40. package/lib/types/Cantrip.d.ts +18 -17
  41. package/lib/types/Cantrip.js +9 -2
  42. package/lib/types/Ceremony.d.ts +6 -5
  43. package/lib/types/Ceremony.js +9 -2
  44. package/lib/types/CombatTechnique_Close.d.ts +7 -6
  45. package/lib/types/CombatTechnique_Close.js +9 -2
  46. package/lib/types/CombatTechnique_Ranged.d.ts +7 -6
  47. package/lib/types/CombatTechnique_Ranged.js +9 -2
  48. package/lib/types/Condition.d.ts +6 -5
  49. package/lib/types/Condition.js +9 -2
  50. package/lib/types/Continent.d.ts +4 -3
  51. package/lib/types/Continent.js +9 -2
  52. package/lib/types/Culture.d.ts +25 -24
  53. package/lib/types/Culture.js +13 -6
  54. package/lib/types/DerivedCharacteristic.d.ts +6 -5
  55. package/lib/types/DerivedCharacteristic.js +9 -2
  56. package/lib/types/Disadvantage.d.ts +4 -3
  57. package/lib/types/Disadvantage.js +9 -2
  58. package/lib/types/Disease.d.ts +4 -3
  59. package/lib/types/Disease.js +9 -2
  60. package/lib/types/Element.d.ts +4 -3
  61. package/lib/types/Element.js +9 -2
  62. package/lib/types/ExperienceLevel.d.ts +4 -3
  63. package/lib/types/ExperienceLevel.js +9 -2
  64. package/lib/types/EyeColor.d.ts +4 -3
  65. package/lib/types/EyeColor.js +9 -2
  66. package/lib/types/FamiliarsTrick.d.ts +26 -25
  67. package/lib/types/FamiliarsTrick.js +9 -2
  68. package/lib/types/HairColor.d.ts +4 -3
  69. package/lib/types/HairColor.js +9 -2
  70. package/lib/types/Kirchenpraegung.d.ts +3 -2
  71. package/lib/types/Kirchenpraegung.js +9 -2
  72. package/lib/types/Lessons_Curriculum.d.ts +22 -21
  73. package/lib/types/Lessons_Curriculum.js +9 -2
  74. package/lib/types/Lessons_Guideline.d.ts +4 -3
  75. package/lib/types/Lessons_Guideline.js +9 -2
  76. package/lib/types/LiturgicalChant.d.ts +6 -5
  77. package/lib/types/LiturgicalChant.js +9 -2
  78. package/lib/types/Locale.d.ts +4 -7
  79. package/lib/types/Locale.js +10 -3
  80. package/lib/types/MetaCondition.d.ts +6 -5
  81. package/lib/types/MetaCondition.js +9 -2
  82. package/lib/types/PactCategory.d.ts +10 -9
  83. package/lib/types/PactCategory.js +9 -2
  84. package/lib/types/Patron.d.ts +15 -14
  85. package/lib/types/Patron.js +11 -4
  86. package/lib/types/PatronCategory.d.ts +4 -3
  87. package/lib/types/PatronCategory.js +9 -2
  88. package/lib/types/PersonalityTrait.d.ts +7 -6
  89. package/lib/types/PersonalityTrait.js +9 -2
  90. package/lib/types/Profession.d.ts +43 -42
  91. package/lib/types/Profession.js +10 -3
  92. package/lib/types/Property.d.ts +4 -3
  93. package/lib/types/Property.js +9 -2
  94. package/lib/types/Race.d.ts +18 -17
  95. package/lib/types/Race.js +10 -3
  96. package/lib/types/Region.d.ts +4 -3
  97. package/lib/types/Region.js +9 -2
  98. package/lib/types/Ritual.d.ts +6 -5
  99. package/lib/types/Ritual.js +9 -2
  100. package/lib/types/Service.d.ts +6 -5
  101. package/lib/types/Service.js +10 -3
  102. package/lib/types/SexPractice.d.ts +5 -4
  103. package/lib/types/SexPractice.js +9 -2
  104. package/lib/types/Skill.d.ts +10 -9
  105. package/lib/types/Skill.js +11 -4
  106. package/lib/types/SkillGroup.d.ts +4 -3
  107. package/lib/types/SkillGroup.js +9 -2
  108. package/lib/types/SkillModificationLevel.d.ts +8 -7
  109. package/lib/types/SkillModificationLevel.js +10 -3
  110. package/lib/types/SocialStatus.d.ts +4 -3
  111. package/lib/types/SocialStatus.js +9 -2
  112. package/lib/types/Spell.d.ts +6 -5
  113. package/lib/types/Spell.js +9 -2
  114. package/lib/types/State.d.ts +6 -5
  115. package/lib/types/State.js +9 -2
  116. package/lib/types/Talisman.d.ts +5 -4
  117. package/lib/types/Talisman.js +10 -3
  118. package/lib/types/TargetCategory.d.ts +5 -4
  119. package/lib/types/TargetCategory.js +9 -2
  120. package/lib/types/UI.d.ts +3 -2
  121. package/lib/types/UI.js +9 -2
  122. package/lib/types/_Activatable.d.ts +109 -109
  123. package/lib/types/_Activatable.js +5 -5
  124. package/lib/types/_ActivatableSelectOptionCategory.d.ts +27 -27
  125. package/lib/types/_ActivatableSelectOptionCategory.js +1 -1
  126. package/lib/types/_ActivatableSkill.d.ts +8 -8
  127. package/lib/types/_ActivatableSkillCastingTime.d.ts +8 -8
  128. package/lib/types/_ActivatableSkillCastingTime.js +1 -1
  129. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +2 -2
  130. package/lib/types/_ActivatableSkillCheckResultBased.js +2 -2
  131. package/lib/types/_ActivatableSkillCost.d.ts +20 -20
  132. package/lib/types/_ActivatableSkillDuration.d.ts +13 -13
  133. package/lib/types/_ActivatableSkillDuration.js +1 -1
  134. package/lib/types/_ActivatableSkillEffect.d.ts +4 -4
  135. package/lib/types/_ActivatableSkillRange.d.ts +6 -6
  136. package/lib/types/_ActivatableSkillRange.js +1 -1
  137. package/lib/types/_ActivatableSkillTargetCategory.d.ts +4 -4
  138. package/lib/types/_AlternativeNames.d.ts +1 -1
  139. package/lib/types/_ArcaneTradition.d.ts +2 -2
  140. package/lib/types/_Blessed.d.ts +2 -2
  141. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +1 -1
  142. package/lib/types/_Dice.d.ts +1 -1
  143. package/lib/types/_Dice.js +1 -1
  144. package/lib/types/_DiseasePoison.d.ts +4 -4
  145. package/lib/types/_DiseasePoison.js +1 -1
  146. package/lib/types/_Enhancements.d.ts +3 -3
  147. package/lib/types/_I18n.d.ts +1 -1
  148. package/lib/types/_Identifier.d.ts +132 -132
  149. package/lib/types/_IdentifierGroup.d.ts +20 -20
  150. package/lib/types/_ImprovementCost.js +1 -1
  151. package/lib/types/_Influence.d.ts +3 -3
  152. package/lib/types/_LocaleMap.d.ts +1 -1
  153. package/lib/types/_NonEmptyString.d.ts +2 -2
  154. package/lib/types/_Prerequisite.d.ts +21 -21
  155. package/lib/types/_ResponsiveText.d.ts +3 -3
  156. package/lib/types/_Sex.js +1 -1
  157. package/lib/types/_SimpleReferences.d.ts +44 -44
  158. package/lib/types/_SkillCheck.d.ts +1 -1
  159. package/lib/types/_SkillCheck.js +1 -1
  160. package/lib/types/_Spellwork.d.ts +2 -2
  161. package/lib/types/equipment/EquipmentPackage.d.ts +6 -5
  162. package/lib/types/equipment/EquipmentPackage.js +9 -2
  163. package/lib/types/equipment/item/Alchemicum.d.ts +3 -2
  164. package/lib/types/equipment/item/Alchemicum.js +9 -2
  165. package/lib/types/equipment/item/Ammunition.d.ts +6 -5
  166. package/lib/types/equipment/item/Ammunition.js +9 -2
  167. package/lib/types/equipment/item/Animal.d.ts +4 -3
  168. package/lib/types/equipment/item/Animal.js +9 -2
  169. package/lib/types/equipment/item/AnimalCare.d.ts +8 -7
  170. package/lib/types/equipment/item/AnimalCare.js +9 -2
  171. package/lib/types/equipment/item/Armor.d.ts +15 -14
  172. package/lib/types/equipment/item/Armor.js +9 -2
  173. package/lib/types/equipment/item/BandageOrRemedy.d.ts +4 -3
  174. package/lib/types/equipment/item/BandageOrRemedy.js +9 -2
  175. package/lib/types/equipment/item/Book.d.ts +6 -5
  176. package/lib/types/equipment/item/Book.js +9 -2
  177. package/lib/types/equipment/item/CeremonialItem.d.ts +4 -3
  178. package/lib/types/equipment/item/CeremonialItem.js +9 -2
  179. package/lib/types/equipment/item/Clothes.d.ts +3 -2
  180. package/lib/types/equipment/item/Clothes.js +9 -2
  181. package/lib/types/equipment/item/Container.d.ts +3 -2
  182. package/lib/types/equipment/item/Container.js +9 -2
  183. package/lib/types/equipment/item/Elixir.d.ts +6 -5
  184. package/lib/types/equipment/item/Elixir.js +9 -2
  185. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +4 -3
  186. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +9 -2
  187. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +6 -5
  188. package/lib/types/equipment/item/GemOrPreciousStone.js +9 -2
  189. package/lib/types/equipment/item/IlluminationLightSource.d.ts +6 -5
  190. package/lib/types/equipment/item/IlluminationLightSource.js +10 -3
  191. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +3 -2
  192. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +9 -2
  193. package/lib/types/equipment/item/Jewelry.d.ts +7 -6
  194. package/lib/types/equipment/item/Jewelry.js +9 -2
  195. package/lib/types/equipment/item/Liebesspielzeug.d.ts +3 -2
  196. package/lib/types/equipment/item/Liebesspielzeug.js +9 -2
  197. package/lib/types/equipment/item/LuxuryGood.d.ts +4 -3
  198. package/lib/types/equipment/item/LuxuryGood.js +9 -2
  199. package/lib/types/equipment/item/MagicalArtifact.d.ts +6 -5
  200. package/lib/types/equipment/item/MagicalArtifact.js +9 -2
  201. package/lib/types/equipment/item/MusicalInstrument.d.ts +4 -3
  202. package/lib/types/equipment/item/MusicalInstrument.js +9 -2
  203. package/lib/types/equipment/item/OrienteeringAid.d.ts +3 -2
  204. package/lib/types/equipment/item/OrienteeringAid.js +9 -2
  205. package/lib/types/equipment/item/Poison.d.ts +30 -29
  206. package/lib/types/equipment/item/Poison.js +12 -5
  207. package/lib/types/equipment/item/RopeOrChain.d.ts +3 -2
  208. package/lib/types/equipment/item/RopeOrChain.js +9 -2
  209. package/lib/types/equipment/item/Stationary.d.ts +3 -2
  210. package/lib/types/equipment/item/Stationary.js +9 -2
  211. package/lib/types/equipment/item/ThievesTool.d.ts +3 -2
  212. package/lib/types/equipment/item/ThievesTool.js +9 -2
  213. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +7 -6
  214. package/lib/types/equipment/item/ToolOfTheTrade.js +9 -2
  215. package/lib/types/equipment/item/TravelGearOrTool.d.ts +3 -2
  216. package/lib/types/equipment/item/TravelGearOrTool.js +9 -2
  217. package/lib/types/equipment/item/Vehicle.d.ts +4 -3
  218. package/lib/types/equipment/item/Vehicle.js +9 -2
  219. package/lib/types/equipment/item/Weapon.d.ts +11 -10
  220. package/lib/types/equipment/item/Weapon.js +9 -2
  221. package/lib/types/equipment/item/WeaponAccessory.d.ts +3 -2
  222. package/lib/types/equipment/item/WeaponAccessory.js +9 -2
  223. package/lib/types/equipment/item/_Herbary.d.ts +1 -1
  224. package/lib/types/equipment/item/_Herbary.js +2 -2
  225. package/lib/types/equipment/item/_Item.d.ts +12 -12
  226. package/lib/types/equipment/item/_MeleeWeapon.d.ts +7 -7
  227. package/lib/types/equipment/item/_RangedWeapon.d.ts +6 -6
  228. package/lib/types/equipment/item/_Weapon.d.ts +5 -5
  229. package/lib/types/equipment/item/sub/ArmorType.d.ts +4 -3
  230. package/lib/types/equipment/item/sub/ArmorType.js +9 -2
  231. package/lib/types/equipment/item/sub/Reach.d.ts +4 -3
  232. package/lib/types/equipment/item/sub/Reach.js +9 -2
  233. package/lib/types/magicalActions/AnimistPower.d.ts +20 -19
  234. package/lib/types/magicalActions/AnimistPower.js +9 -2
  235. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +4 -3
  236. package/lib/types/magicalActions/AnimistPower_Tribe.js +9 -2
  237. package/lib/types/magicalActions/Curse.d.ts +14 -13
  238. package/lib/types/magicalActions/Curse.js +9 -2
  239. package/lib/types/magicalActions/DominationRitual.d.ts +13 -12
  240. package/lib/types/magicalActions/DominationRitual.js +9 -2
  241. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +11 -10
  242. package/lib/types/magicalActions/ElvenMagicalSong.js +9 -2
  243. package/lib/types/magicalActions/GeodeRitual.d.ts +14 -13
  244. package/lib/types/magicalActions/GeodeRitual.js +9 -2
  245. package/lib/types/magicalActions/JesterTrick.d.ts +13 -12
  246. package/lib/types/magicalActions/JesterTrick.js +9 -2
  247. package/lib/types/magicalActions/MagicalDance.d.ts +10 -9
  248. package/lib/types/magicalActions/MagicalDance.js +9 -2
  249. package/lib/types/magicalActions/MagicalMelody.d.ts +10 -9
  250. package/lib/types/magicalActions/MagicalMelody.js +9 -2
  251. package/lib/types/magicalActions/MagicalRune.d.ts +26 -25
  252. package/lib/types/magicalActions/MagicalRune.js +9 -2
  253. package/lib/types/magicalActions/ZibiljaRitual.d.ts +7 -6
  254. package/lib/types/magicalActions/ZibiljaRitual.js +9 -2
  255. package/lib/types/magicalActions/_MusicTradition.d.ts +3 -3
  256. package/lib/types/magicalActions/_MusicTradition.js +2 -2
  257. package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
  258. package/lib/types/magicalActions/_SkillReference.js +1 -1
  259. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +1 -1
  260. package/lib/types/prerequisites/DisplayOption.d.ts +2 -2
  261. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +15 -15
  262. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +1 -1
  263. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +1 -1
  264. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +1 -1
  265. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +1 -1
  266. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +4 -4
  267. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +1 -1
  268. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +1 -1
  269. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +1 -1
  270. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -1
  271. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +1 -1
  272. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +1 -1
  273. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +6 -6
  274. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +1 -1
  275. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +1 -1
  276. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +1 -1
  277. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +1 -1
  278. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +1 -1
  279. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +1 -1
  280. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +1 -1
  281. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +1 -1
  282. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +1 -1
  283. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +2 -2
  284. package/lib/types/prerequisites/single/TextPrerequisite.js +2 -2
  285. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +2 -2
  286. package/lib/types/prerequisites/single/TraditionPrerequisite.js +2 -2
  287. package/lib/types/rule/CoreRule.d.ts +15 -14
  288. package/lib/types/rule/CoreRule.js +10 -3
  289. package/lib/types/rule/FocusRule.d.ts +6 -5
  290. package/lib/types/rule/FocusRule.js +9 -2
  291. package/lib/types/rule/FocusRule_Subject.d.ts +4 -3
  292. package/lib/types/rule/FocusRule_Subject.js +9 -2
  293. package/lib/types/rule/OptionalRule.d.ts +6 -5
  294. package/lib/types/rule/OptionalRule.js +9 -2
  295. package/lib/types/source/Publication.d.ts +4 -3
  296. package/lib/types/source/Publication.js +10 -3
  297. package/lib/types/source/_Erratum.d.ts +2 -2
  298. package/lib/types/source/_PublicationRef.d.ts +13 -13
  299. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +6 -5
  300. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +9 -2
  301. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +6 -5
  302. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +9 -2
  303. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +6 -5
  304. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +9 -2
  305. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +6 -5
  306. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +9 -2
  307. package/lib/types/specialAbility/AncestorGlyph.d.ts +6 -5
  308. package/lib/types/specialAbility/AncestorGlyph.js +9 -2
  309. package/lib/types/specialAbility/BlessedTradition.d.ts +12 -11
  310. package/lib/types/specialAbility/BlessedTradition.js +9 -2
  311. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +6 -5
  312. package/lib/types/specialAbility/BrawlingSpecialAbility.js +9 -2
  313. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +4 -3
  314. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +9 -2
  315. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +4 -3
  316. package/lib/types/specialAbility/CombatSpecialAbility.js +9 -2
  317. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +6 -5
  318. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +9 -2
  319. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +5 -4
  320. package/lib/types/specialAbility/CommandSpecialAbility.js +9 -2
  321. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +6 -5
  322. package/lib/types/specialAbility/FamiliarSpecialAbility.js +9 -2
  323. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +6 -5
  324. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +9 -2
  325. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +6 -5
  326. package/lib/types/specialAbility/FatePointSpecialAbility.js +9 -2
  327. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +4 -3
  328. package/lib/types/specialAbility/GeneralSpecialAbility.js +9 -2
  329. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +4 -3
  330. package/lib/types/specialAbility/KarmaSpecialAbility.js +9 -2
  331. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +6 -5
  332. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +9 -2
  333. package/lib/types/specialAbility/LycantropicGift.d.ts +6 -5
  334. package/lib/types/specialAbility/LycantropicGift.js +9 -2
  335. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +6 -5
  336. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +9 -2
  337. package/lib/types/specialAbility/MagicalSign.d.ts +6 -5
  338. package/lib/types/specialAbility/MagicalSign.js +9 -2
  339. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +4 -3
  340. package/lib/types/specialAbility/MagicalSpecialAbility.js +9 -2
  341. package/lib/types/specialAbility/MagicalTradition.d.ts +7 -6
  342. package/lib/types/specialAbility/MagicalTradition.js +9 -2
  343. package/lib/types/specialAbility/PactGift.d.ts +13 -12
  344. package/lib/types/specialAbility/PactGift.js +11 -4
  345. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -5
  346. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +9 -2
  347. package/lib/types/specialAbility/Sermon.d.ts +6 -5
  348. package/lib/types/specialAbility/Sermon.js +9 -2
  349. package/lib/types/specialAbility/SexSpecialAbility.d.ts +6 -5
  350. package/lib/types/specialAbility/SexSpecialAbility.js +9 -2
  351. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +6 -5
  352. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +9 -2
  353. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +6 -5
  354. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +9 -2
  355. package/lib/types/specialAbility/VampiricGift.d.ts +4 -3
  356. package/lib/types/specialAbility/VampiricGift.js +9 -2
  357. package/lib/types/specialAbility/Vision.d.ts +6 -5
  358. package/lib/types/specialAbility/Vision.js +9 -2
  359. package/lib/types/specialAbility/_Tradition.d.ts +1 -1
  360. package/lib/types/specialAbility/sub/Language.d.ts +12 -11
  361. package/lib/types/specialAbility/sub/Language.js +9 -2
  362. package/lib/types/specialAbility/sub/Script.d.ts +6 -5
  363. package/lib/types/specialAbility/sub/Script.js +9 -2
  364. package/lib/types/specialAbility/sub/TradeSecret.d.ts +6 -5
  365. package/lib/types/specialAbility/sub/TradeSecret.js +9 -2
  366. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +1 -1
  367. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +4 -3
  368. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +9 -2
  369. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +4 -3
  370. package/lib/types/traditionArtifacts/AttireEnchantment.js +9 -2
  371. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +4 -3
  372. package/lib/types/traditionArtifacts/BowlEnchantment.js +9 -2
  373. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +5 -4
  374. package/lib/types/traditionArtifacts/CauldronEnchantment.js +9 -2
  375. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +4 -3
  376. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +9 -2
  377. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +8 -7
  378. package/lib/types/traditionArtifacts/DaggerRitual.js +9 -2
  379. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +4 -3
  380. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +9 -2
  381. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +4 -3
  382. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +9 -2
  383. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +4 -3
  384. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +9 -2
  385. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +4 -3
  386. package/lib/types/traditionArtifacts/OrbEnchantment.js +9 -2
  387. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +4 -3
  388. package/lib/types/traditionArtifacts/RingEnchantment.js +9 -2
  389. package/lib/types/traditionArtifacts/SickleRitual.d.ts +4 -3
  390. package/lib/types/traditionArtifacts/SickleRitual.js +9 -2
  391. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +4 -3
  392. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +9 -2
  393. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +4 -3
  394. package/lib/types/traditionArtifacts/StaffEnchantment.js +9 -2
  395. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +4 -3
  396. package/lib/types/traditionArtifacts/ToyEnchantment.js +9 -2
  397. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +4 -3
  398. package/lib/types/traditionArtifacts/Trinkhornzauber.js +9 -2
  399. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +4 -3
  400. package/lib/types/traditionArtifacts/WandEnchantment.js +9 -2
  401. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +4 -3
  402. package/lib/types/traditionArtifacts/WeaponEnchantment.js +9 -2
  403. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +6 -5
  404. package/lib/types/traditionArtifacts/sub/AnimalShape.js +9 -2
  405. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +4 -3
  406. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +9 -2
  407. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +4 -3
  408. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +9 -2
  409. package/lib/types/traditionArtifacts/sub/Brew.d.ts +4 -3
  410. package/lib/types/traditionArtifacts/sub/Brew.js +9 -2
  411. package/lib/validation/builders/integrity.d.ts +57 -0
  412. package/lib/validation/builders/integrity.js +44 -0
  413. package/lib/validation/builders/naming.d.ts +13 -0
  414. package/lib/validation/builders/naming.js +14 -0
  415. package/lib/validation/builders/schema.d.ts +31 -0
  416. package/lib/validation/builders/schema.js +32 -0
  417. package/lib/validation/filename.d.ts +9 -0
  418. package/lib/validation/filename.js +10 -0
  419. package/lib/validation/raw.d.ts +9 -0
  420. package/lib/validation/raw.js +55 -0
  421. package/lib/validation/schema.d.ts +6 -22
  422. package/lib/validation/schema.js +31 -32
  423. package/package.json +11 -6
  424. package/schema/Locale.schema.json +1 -8
  425. package/config/directories.d.ts +0 -4
  426. package/config/directories.js +0 -14
  427. package/lib/validation/integrity.d.ts +0 -16
  428. package/lib/validation/integrity.js +0 -3
@@ -0,0 +1,31 @@
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 {};
@@ -0,0 +1,32 @@
1
+ import { basename, relative, sep } from "path";
2
+ import { fileURLToPath } from "url";
3
+ import { libDir } from "../../../build/config.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
+ };
@@ -0,0 +1,9 @@
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: {}, filepath: string) => number;
6
+ /**
7
+ * Returns the filename without the extension.
8
+ */
9
+ export declare const getFilenameAsStringId: (_data: {}, filepath: string) => string;
@@ -0,0 +1,10 @@
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));
@@ -0,0 +1,9 @@
1
+ import { TypeMap } from "../config.js";
2
+ import "../helpers/array.js";
3
+ import { Result } from "../helpers/result.js";
4
+ import { EntityDirectoryPaths, TypeValidationError, ValidationOptions } from "../main.js";
5
+ import { TypeId } from "../typeConfig.js";
6
+ export type TypeIdPair<K extends keyof TypeMap> = [id: TypeId<K>, data: TypeMap[K]];
7
+ export type TypeValidationResult<K extends keyof TypeMap> = Result<TypeIdPair<K>, TypeValidationError[]>;
8
+ export type TypeValidationResultsByType = [keyof TypeMap, [filePath: string, result: TypeValidationResult<keyof TypeMap>][]][];
9
+ export declare const getRawValidationResults: (entityDirectoryPaths: EntityDirectoryPaths, options?: ValidationOptions) => Promise<TypeValidationResultsByType>;
@@ -0,0 +1,55 @@
1
+ import { readdir } from "fs/promises";
2
+ import { join } from "path";
3
+ import { jsonSchemaDir, jsonSchemaSpec } from "../../build/config.js";
4
+ import { configMap } from "../config.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 { validateFileName } from "./builders/naming.js";
11
+ import { getPreparedSchemaValidator } from "./schema.js";
12
+ const getFiles = async (path) => (await readdir(path))
13
+ .sort(collator.compare)
14
+ .filter(isHiddenFileName)
15
+ .map(fileName => join(path, fileName))
16
+ .map(mapToSecondAsync(async (filePath) => {
17
+ try {
18
+ return await readYamlFile(filePath);
19
+ }
20
+ catch (error) {
21
+ if (error instanceof Error) {
22
+ error.message = `in "${filePath}":\n ${error.message}`;
23
+ }
24
+ return null;
25
+ }
26
+ }))
27
+ .promiseAll();
28
+ const validateStructuralIntegrityOfFiles = (validator, typeConfig, validateFileName, files) => files.map(mapSecond((data, path) => {
29
+ const schemaValidationResult = typeConfig.schemaValidator(validator, data, path);
30
+ const fileNameValidationResult = validateFileName(path);
31
+ return Result.map(Result.combine(schemaValidationResult, fileNameValidationResult, (data, _) => data, (schemaErrors, fileNameErrors) => [...schemaErrors, ...fileNameErrors]), data => [typeConfig.id(data, path), data]);
32
+ }));
33
+ 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))));
34
+ export const getRawValidationResults = async (entityDirectoryPaths, options = {}) => {
35
+ const { checkIntegrity = false } = options;
36
+ const validator = await getPreparedSchemaValidator(jsonSchemaSpec, {}, jsonSchemaDir);
37
+ const entityDirectoryPathEntries = Object.entries(entityDirectoryPaths);
38
+ const structuralIntegrityResults = await Promise.all(entityDirectoryPathEntries.map(mapSecondAsync(async (path, typeName) => {
39
+ const files = await getFiles(path);
40
+ return validateStructuralIntegrityOfFiles(validator, configMap[typeName], validateFileName, files);
41
+ })));
42
+ if (checkIntegrity) {
43
+ const identityIntegrityValidators = Object.fromEntries(structuralIntegrityResults.map(mapSecond(results => {
44
+ const idCount = results.reduce((mp, [_, result]) => isOk(result) ? mp.set(result.value[0], (mp.get(result.value[0]) ?? 0) + 1) : mp, new Map());
45
+ return {
46
+ isUnique: (id) => (idCount.get(id) ?? 0) === 1,
47
+ exists: (id) => idCount.has(id),
48
+ };
49
+ })));
50
+ return structuralIntegrityResults.map(mapSecond((results, typeName) => validateSemanticAndReferencialIntegrityOfFiles({ identity: identityIntegrityValidators }, configMap[typeName], results)));
51
+ }
52
+ else {
53
+ return structuralIntegrityResults;
54
+ }
55
+ };
@@ -1,22 +1,6 @@
1
- import Ajv, { DefinedError } from "ajv";
2
- export declare type FileNameError = {
3
- keyword: "filename";
4
- instancePath: string;
5
- message: string;
6
- };
7
- export declare type TypeValidationResult<T> = {
8
- tag: "Ok";
9
- value: T;
10
- } | {
11
- tag: "Error";
12
- errors: TypeValidationResultErrors;
13
- };
14
- export declare type TypeValidationResultErrors = {
15
- fileNameError?: FileNameError;
16
- schemaErrors: DefinedError[];
17
- };
18
- export declare type TypeValidator<T> = (validator: Ajv, data: unknown, filePath: string) => TypeValidationResult<T>;
19
- export declare type TypeValidatorOptions = {
20
- ignoreFileNamePattern?: boolean;
21
- };
22
- export declare const validateSchemaCreator: <T>(importMetaUrl: string, { ignoreFileNamePattern }?: TypeValidatorOptions) => TypeValidator<T>;
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";
5
+ import "../helpers/array.js";
6
+ export declare const getPreparedSchemaValidator: (jsonSchemaSpec: JsonSchemaSpec, validatorOptions: AjvModule.Options | undefined, jsonSchemaDir: string) => Promise<Ajv2019Module.default | Ajv2020Module.default>;
@@ -1,34 +1,33 @@
1
- import { basename, dirname, extname, join, relative, sep } from "path";
2
- import { fileURLToPath } from "url";
3
- import { libDir } from "../../config/directories.js";
4
- const baseNamePattern = /^(?:0|[1-9][0-9]*)_(?:[A-Z][a-zA-Z]*|[1-9][0-9]*)(?:-(?:[a-zA-Z]+|[1-9][0-9]*))*\.yml$/;
5
- const fileNameError = (fileName) => ({
6
- keyword: "filename",
7
- instancePath: "",
8
- message: `the file name "${fileName}" does not match the pattern ${baseNamePattern.source}`
9
- });
10
- const changeFileExtension = (path, ext) => join(dirname(path), basename(path, extname(path)) + ext);
11
- const schemaIdFromSourcePath = (sourcePath) => {
12
- const relativePathOfType = relative(libDir, fileURLToPath(sourcePath));
13
- const relativePathOfSchema = changeFileExtension(relativePathOfType, ".schema.json");
14
- return "/" + relativePathOfSchema.split(sep).join("/");
1
+ import addFormatsModule from "ajv-formats";
2
+ import Ajv2019Module from "ajv/dist/2019.js";
3
+ import Ajv2020Module from "ajv/dist/2020.js";
4
+ import { JsonSchemaSpec } from "optolith-tsjsonschemamd/renderers";
5
+ import "../helpers/array.js";
6
+ import { isHiddenFileName, readDirectoryRec, readJsonFile } from "../helpers/io.js";
7
+ import { assertExhaustive } from "../helpers/typeSafety.js";
8
+ const Ajv2019 = Ajv2019Module.default;
9
+ const Ajv2020 = Ajv2020Module.default;
10
+ const addFormats = addFormatsModule.default;
11
+ const createSchemaValidator = (jsonSchemaSpec, validatorOptions = {}) => {
12
+ switch (jsonSchemaSpec) {
13
+ case JsonSchemaSpec.Draft_07:
14
+ case JsonSchemaSpec.Draft_2019_09:
15
+ return new Ajv2019(validatorOptions);
16
+ case JsonSchemaSpec.Draft_2020_12:
17
+ return new Ajv2020(validatorOptions);
18
+ default:
19
+ assertExhaustive(jsonSchemaSpec);
20
+ }
15
21
  };
16
- export const validateSchemaCreator = (importMetaUrl, { ignoreFileNamePattern = false } = {}) => {
17
- const schemaId = schemaIdFromSourcePath(importMetaUrl);
18
- return (validator, data, filePath) => {
19
- const fileName = basename(filePath);
20
- const correctFileName = ignoreFileNamePattern || baseNamePattern.test(fileName);
21
- if (validator.validate(schemaId, data) && correctFileName) {
22
- return { tag: "Ok", value: data };
23
- }
24
- else {
25
- return {
26
- tag: "Error",
27
- errors: {
28
- fileNameError: correctFileName ? undefined : fileNameError(fileName),
29
- schemaErrors: validator.errors ?? [],
30
- }
31
- };
32
- }
33
- };
22
+ const registerAllJsonSchemaDocuments = async (jsonSchemaDir, validator) => {
23
+ for await (const jsonSchemaPath of readDirectoryRec(jsonSchemaDir, isHiddenFileName)) {
24
+ const jsonSchema = await readJsonFile(jsonSchemaPath);
25
+ validator.addSchema(jsonSchema);
26
+ }
27
+ };
28
+ export const getPreparedSchemaValidator = async (jsonSchemaSpec, validatorOptions = {}, jsonSchemaDir) => {
29
+ const validator = createSchemaValidator(jsonSchemaSpec, validatorOptions);
30
+ await registerAllJsonSchemaDocuments(jsonSchemaDir, validator);
31
+ addFormats(validator);
32
+ return validator;
34
33
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -9,7 +9,12 @@
9
9
  "dasschwarzeauge"
10
10
  ],
11
11
  "main": "./lib/main.js",
12
- "types": "./lib/main.d.ts",
12
+ "exports": {
13
+ ".": "./lib/main.js",
14
+ "./errors": "./lib/errors.js",
15
+ "./config": "./lib/config.js",
16
+ "./types/*": "./lib/types/*.js"
17
+ },
13
18
  "scripts": {
14
19
  "build:ts": "tsc",
15
20
  "watch:ts": "tsc -w",
@@ -22,15 +27,15 @@
22
27
  "author": "Lukas Obermann",
23
28
  "license": "MPL-2.0",
24
29
  "dependencies": {
25
- "ajv": "^8.11.0",
30
+ "ajv": "^8.12.0",
26
31
  "ajv-formats": "^2.1.1",
27
- "yaml": "^2.1.1"
32
+ "yaml": "^2.2.2"
28
33
  },
29
34
  "devDependencies": {
30
- "@types/node": "^18.0.0",
35
+ "@types/node": "^20.2.3",
31
36
  "optolith-tsjsonschemamd": "^0.5.20",
32
37
  "standard-version": "^9.5.0",
33
- "typescript": "^4.7.4"
38
+ "typescript": "^5.0.4"
34
39
  },
35
40
  "repository": "github:elyukai/optolith-database-schema",
36
41
  "bugs": {
@@ -1,15 +1,8 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2019-09/schema",
3
3
  "$id": "/Locale.schema.json",
4
- "$ref": "#/$defs/Locales",
4
+ "$ref": "#/$defs/Locale",
5
5
  "$defs": {
6
- "Locales": {
7
- "title": "Supported locales",
8
- "type": "array",
9
- "items": {
10
- "$ref": "#/$defs/Locale"
11
- }
12
- },
13
6
  "Locale": {
14
7
  "title": "Supported locale",
15
8
  "type": "object",
@@ -1,4 +0,0 @@
1
- export const sourceDir: string
2
- export const libDir: string
3
- export const jsonSchemaDir: string
4
- export const markdownDir: string
@@ -1,14 +0,0 @@
1
- // @ts-check
2
-
3
- import { dirname, join } from "path";
4
- import { fileURLToPath } from "url";
5
-
6
- // @ts-ignore
7
- const root = join(dirname(fileURLToPath(import.meta.url)), "..")
8
-
9
- const typesDir = main => join(root, main, "types")
10
-
11
- export const sourceDir = typesDir("src")
12
- export const libDir = typesDir("lib")
13
- export const jsonSchemaDir = join(root, "schema")
14
- export const markdownDir = join(root, "docs", "reference")
@@ -1,16 +0,0 @@
1
- export interface ReferencialIntegrityValidators {
2
- checkLocaleId: (localeId: string) => boolean;
3
- }
4
- export declare const getReferencialIntegrityErrors: <T extends string | number>(ids: T[], check: (id: T) => boolean) => T[];
5
- export declare const getReferencialIntegrityErrorsWith: <T, U extends string | number>(elements: T[], transform: (element: T) => U, check: (id: U) => boolean) => T[];
6
- interface Translatable<T> {
7
- /**
8
- * All translations for the entry, identified by IETF language tag (BCP47).
9
- * @minProperties 1
10
- */
11
- translations: {
12
- [localeId: string]: T;
13
- };
14
- }
15
- export declare const getReferencialIntegrityErrorsForTranslatable: <T>(translatable: Translatable<T>, checkLocaleId: (id: string) => boolean) => string[];
16
- export {};
@@ -1,3 +0,0 @@
1
- export const getReferencialIntegrityErrors = (ids, check) => ids.filter(id => !check(id));
2
- export const getReferencialIntegrityErrorsWith = (elements, transform, check) => elements.filter(element => !check(transform(element)));
3
- export const getReferencialIntegrityErrorsForTranslatable = (translatable, checkLocaleId) => getReferencialIntegrityErrors(Object.keys(translatable.translations), checkLocaleId);