optolith-database-schema 0.10.1 → 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.
- package/CHANGELOG.md +17 -0
- package/lib/config.d.ts +155 -4
- package/lib/config.js +154 -154
- package/lib/errors.d.ts +20 -0
- package/lib/errors.js +33 -0
- package/lib/helpers/array.d.ts +14 -0
- package/lib/helpers/array.js +15 -0
- package/lib/helpers/i18n.d.ts +1 -0
- package/lib/helpers/i18n.js +1 -0
- package/lib/helpers/io.d.ts +29 -0
- package/lib/helpers/io.js +51 -0
- package/lib/helpers/objectPath.d.ts +13 -0
- package/lib/helpers/objectPath.js +3 -0
- package/lib/helpers/pair.d.ts +20 -0
- package/lib/helpers/pair.js +20 -0
- package/lib/helpers/result.d.ts +57 -0
- package/lib/helpers/result.js +45 -0
- package/lib/helpers/typeSafety.d.ts +6 -0
- package/lib/helpers/typeSafety.js +8 -0
- package/lib/main.d.ts +49 -14
- package/lib/main.js +46 -133
- package/lib/typeConfig.d.ts +10 -0
- package/lib/typeConfig.js +1 -0
- package/lib/types/Advantage.d.ts +2 -1
- package/lib/types/Advantage.js +9 -2
- package/lib/types/AnimalDisease.d.ts +3 -2
- package/lib/types/AnimalDisease.js +9 -2
- package/lib/types/AnimalType.d.ts +2 -1
- package/lib/types/AnimalType.js +9 -2
- package/lib/types/ArcaneBardTradition.d.ts +2 -1
- package/lib/types/ArcaneBardTradition.js +9 -2
- package/lib/types/ArcaneDancerTradition.d.ts +2 -1
- package/lib/types/ArcaneDancerTradition.js +9 -2
- package/lib/types/Aspect.d.ts +2 -1
- package/lib/types/Aspect.js +9 -2
- package/lib/types/Attribute.d.ts +2 -3
- package/lib/types/Attribute.js +9 -4
- package/lib/types/Blessing.d.ts +4 -3
- package/lib/types/Blessing.js +9 -2
- package/lib/types/Cantrip.d.ts +4 -3
- package/lib/types/Cantrip.js +9 -2
- package/lib/types/Ceremony.d.ts +4 -3
- package/lib/types/Ceremony.js +9 -2
- package/lib/types/CombatTechnique_Close.d.ts +4 -3
- package/lib/types/CombatTechnique_Close.js +9 -2
- package/lib/types/CombatTechnique_Ranged.d.ts +4 -3
- package/lib/types/CombatTechnique_Ranged.js +9 -2
- package/lib/types/Condition.d.ts +4 -3
- package/lib/types/Condition.js +9 -2
- package/lib/types/Continent.d.ts +2 -1
- package/lib/types/Continent.js +9 -2
- package/lib/types/Culture.d.ts +4 -3
- package/lib/types/Culture.js +13 -6
- package/lib/types/DerivedCharacteristic.d.ts +3 -2
- package/lib/types/DerivedCharacteristic.js +9 -2
- package/lib/types/Disadvantage.d.ts +2 -1
- package/lib/types/Disadvantage.js +9 -2
- package/lib/types/Disease.d.ts +3 -2
- package/lib/types/Disease.js +9 -2
- package/lib/types/Element.d.ts +2 -1
- package/lib/types/Element.js +9 -2
- package/lib/types/ExperienceLevel.d.ts +2 -1
- package/lib/types/ExperienceLevel.js +9 -2
- package/lib/types/EyeColor.d.ts +2 -1
- package/lib/types/EyeColor.js +9 -2
- package/lib/types/FamiliarsTrick.d.ts +4 -3
- package/lib/types/FamiliarsTrick.js +9 -2
- package/lib/types/HairColor.d.ts +2 -1
- package/lib/types/HairColor.js +9 -2
- package/lib/types/Kirchenpraegung.d.ts +2 -1
- package/lib/types/Kirchenpraegung.js +9 -2
- package/lib/types/Lessons_Curriculum.d.ts +4 -3
- package/lib/types/Lessons_Curriculum.js +9 -2
- package/lib/types/Lessons_Guideline.d.ts +2 -1
- package/lib/types/Lessons_Guideline.js +9 -2
- package/lib/types/LiturgicalChant.d.ts +4 -3
- package/lib/types/LiturgicalChant.js +9 -2
- package/lib/types/Locale.d.ts +3 -6
- package/lib/types/Locale.js +10 -3
- package/lib/types/MetaCondition.d.ts +4 -3
- package/lib/types/MetaCondition.js +9 -2
- package/lib/types/PactCategory.d.ts +4 -3
- package/lib/types/PactCategory.js +9 -2
- package/lib/types/Patron.d.ts +2 -1
- package/lib/types/Patron.js +11 -4
- package/lib/types/PatronCategory.d.ts +2 -1
- package/lib/types/PatronCategory.js +9 -2
- package/lib/types/PersonalityTrait.d.ts +4 -3
- package/lib/types/PersonalityTrait.js +9 -2
- package/lib/types/Profession.d.ts +2 -1
- package/lib/types/Profession.js +10 -3
- package/lib/types/Property.d.ts +2 -1
- package/lib/types/Property.js +9 -2
- package/lib/types/Race.d.ts +4 -3
- package/lib/types/Race.js +10 -3
- package/lib/types/Region.d.ts +2 -1
- package/lib/types/Region.js +9 -2
- package/lib/types/Ritual.d.ts +4 -3
- package/lib/types/Ritual.js +9 -2
- package/lib/types/Service.d.ts +4 -3
- package/lib/types/Service.js +10 -3
- package/lib/types/SexPractice.d.ts +3 -2
- package/lib/types/SexPractice.js +9 -2
- package/lib/types/Skill.d.ts +4 -3
- package/lib/types/Skill.js +11 -4
- package/lib/types/SkillGroup.d.ts +2 -1
- package/lib/types/SkillGroup.js +9 -2
- package/lib/types/SkillModificationLevel.d.ts +2 -1
- package/lib/types/SkillModificationLevel.js +10 -3
- package/lib/types/SocialStatus.d.ts +2 -1
- package/lib/types/SocialStatus.js +9 -2
- package/lib/types/Spell.d.ts +4 -3
- package/lib/types/Spell.js +9 -2
- package/lib/types/State.d.ts +4 -3
- package/lib/types/State.js +9 -2
- package/lib/types/Talisman.d.ts +2 -1
- package/lib/types/Talisman.js +10 -3
- package/lib/types/TargetCategory.d.ts +2 -1
- package/lib/types/TargetCategory.js +9 -2
- package/lib/types/UI.d.ts +2 -1
- package/lib/types/UI.js +9 -2
- package/lib/types/_Activatable.js +5 -5
- package/lib/types/_ActivatableSelectOptionCategory.js +1 -1
- package/lib/types/_ActivatableSkillCastingTime.js +1 -1
- package/lib/types/_ActivatableSkillCheckResultBased.js +2 -2
- package/lib/types/_ActivatableSkillDuration.js +1 -1
- package/lib/types/_ActivatableSkillRange.js +1 -1
- package/lib/types/_Dice.js +1 -1
- package/lib/types/_DiseasePoison.js +1 -1
- package/lib/types/_ImprovementCost.js +1 -1
- package/lib/types/_Sex.js +1 -1
- package/lib/types/_SkillCheck.js +1 -1
- package/lib/types/equipment/EquipmentPackage.d.ts +3 -2
- package/lib/types/equipment/EquipmentPackage.js +9 -2
- package/lib/types/equipment/item/Alchemicum.d.ts +2 -1
- package/lib/types/equipment/item/Alchemicum.js +9 -2
- package/lib/types/equipment/item/Ammunition.d.ts +4 -3
- package/lib/types/equipment/item/Ammunition.js +9 -2
- package/lib/types/equipment/item/Animal.d.ts +3 -2
- package/lib/types/equipment/item/Animal.js +9 -2
- package/lib/types/equipment/item/AnimalCare.d.ts +3 -2
- package/lib/types/equipment/item/AnimalCare.js +9 -2
- package/lib/types/equipment/item/Armor.d.ts +4 -3
- package/lib/types/equipment/item/Armor.js +9 -2
- package/lib/types/equipment/item/BandageOrRemedy.d.ts +3 -2
- package/lib/types/equipment/item/BandageOrRemedy.js +9 -2
- package/lib/types/equipment/item/Book.d.ts +4 -3
- package/lib/types/equipment/item/Book.js +9 -2
- package/lib/types/equipment/item/CeremonialItem.d.ts +3 -2
- package/lib/types/equipment/item/CeremonialItem.js +9 -2
- package/lib/types/equipment/item/Clothes.d.ts +2 -1
- package/lib/types/equipment/item/Clothes.js +9 -2
- package/lib/types/equipment/item/Container.d.ts +2 -1
- package/lib/types/equipment/item/Container.js +9 -2
- package/lib/types/equipment/item/Elixir.d.ts +4 -3
- package/lib/types/equipment/item/Elixir.js +9 -2
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +3 -2
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +9 -2
- package/lib/types/equipment/item/GemOrPreciousStone.d.ts +4 -3
- package/lib/types/equipment/item/GemOrPreciousStone.js +9 -2
- package/lib/types/equipment/item/IlluminationLightSource.d.ts +3 -2
- package/lib/types/equipment/item/IlluminationLightSource.js +10 -3
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +2 -1
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +9 -2
- package/lib/types/equipment/item/Jewelry.d.ts +4 -3
- package/lib/types/equipment/item/Jewelry.js +9 -2
- package/lib/types/equipment/item/Liebesspielzeug.d.ts +2 -1
- package/lib/types/equipment/item/Liebesspielzeug.js +9 -2
- package/lib/types/equipment/item/LuxuryGood.d.ts +3 -2
- package/lib/types/equipment/item/LuxuryGood.js +9 -2
- package/lib/types/equipment/item/MagicalArtifact.d.ts +4 -3
- package/lib/types/equipment/item/MagicalArtifact.js +9 -2
- package/lib/types/equipment/item/MusicalInstrument.d.ts +3 -2
- package/lib/types/equipment/item/MusicalInstrument.js +9 -2
- package/lib/types/equipment/item/OrienteeringAid.d.ts +2 -1
- package/lib/types/equipment/item/OrienteeringAid.js +9 -2
- package/lib/types/equipment/item/Poison.d.ts +4 -3
- package/lib/types/equipment/item/Poison.js +12 -5
- package/lib/types/equipment/item/RopeOrChain.d.ts +2 -1
- package/lib/types/equipment/item/RopeOrChain.js +9 -2
- package/lib/types/equipment/item/Stationary.d.ts +2 -1
- package/lib/types/equipment/item/Stationary.js +9 -2
- package/lib/types/equipment/item/ThievesTool.d.ts +2 -1
- package/lib/types/equipment/item/ThievesTool.js +9 -2
- package/lib/types/equipment/item/ToolOfTheTrade.d.ts +4 -3
- package/lib/types/equipment/item/ToolOfTheTrade.js +9 -2
- package/lib/types/equipment/item/TravelGearOrTool.d.ts +2 -1
- package/lib/types/equipment/item/TravelGearOrTool.js +9 -2
- package/lib/types/equipment/item/Vehicle.d.ts +3 -2
- package/lib/types/equipment/item/Vehicle.js +9 -2
- package/lib/types/equipment/item/Weapon.d.ts +2 -1
- package/lib/types/equipment/item/Weapon.js +9 -2
- package/lib/types/equipment/item/WeaponAccessory.d.ts +2 -1
- package/lib/types/equipment/item/WeaponAccessory.js +9 -2
- package/lib/types/equipment/item/_Herbary.js +2 -2
- package/lib/types/equipment/item/sub/ArmorType.d.ts +2 -1
- package/lib/types/equipment/item/sub/ArmorType.js +9 -2
- package/lib/types/equipment/item/sub/Reach.d.ts +2 -1
- package/lib/types/equipment/item/sub/Reach.js +9 -2
- package/lib/types/magicalActions/AnimistPower.d.ts +4 -3
- package/lib/types/magicalActions/AnimistPower.js +9 -2
- package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +2 -1
- package/lib/types/magicalActions/AnimistPower_Tribe.js +9 -2
- package/lib/types/magicalActions/Curse.d.ts +4 -3
- package/lib/types/magicalActions/Curse.js +9 -2
- package/lib/types/magicalActions/DominationRitual.d.ts +4 -3
- package/lib/types/magicalActions/DominationRitual.js +9 -2
- package/lib/types/magicalActions/ElvenMagicalSong.d.ts +4 -3
- package/lib/types/magicalActions/ElvenMagicalSong.js +9 -2
- package/lib/types/magicalActions/GeodeRitual.d.ts +4 -3
- package/lib/types/magicalActions/GeodeRitual.js +9 -2
- package/lib/types/magicalActions/JesterTrick.d.ts +4 -3
- package/lib/types/magicalActions/JesterTrick.js +9 -2
- package/lib/types/magicalActions/MagicalDance.d.ts +4 -3
- package/lib/types/magicalActions/MagicalDance.js +9 -2
- package/lib/types/magicalActions/MagicalMelody.d.ts +4 -3
- package/lib/types/magicalActions/MagicalMelody.js +9 -2
- package/lib/types/magicalActions/MagicalRune.d.ts +4 -3
- package/lib/types/magicalActions/MagicalRune.js +9 -2
- package/lib/types/magicalActions/ZibiljaRitual.d.ts +4 -3
- package/lib/types/magicalActions/ZibiljaRitual.js +9 -2
- package/lib/types/magicalActions/_MusicTradition.js +2 -2
- package/lib/types/magicalActions/_SkillReference.js +1 -1
- package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -1
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +1 -1
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +1 -1
- package/lib/types/prerequisites/single/TextPrerequisite.js +2 -2
- package/lib/types/prerequisites/single/TraditionPrerequisite.js +2 -2
- package/lib/types/rule/CoreRule.d.ts +4 -3
- package/lib/types/rule/CoreRule.js +10 -3
- package/lib/types/rule/FocusRule.d.ts +4 -3
- package/lib/types/rule/FocusRule.js +9 -2
- package/lib/types/rule/FocusRule_Subject.d.ts +2 -1
- package/lib/types/rule/FocusRule_Subject.js +9 -2
- package/lib/types/rule/OptionalRule.d.ts +4 -3
- package/lib/types/rule/OptionalRule.js +9 -2
- package/lib/types/source/Publication.d.ts +2 -1
- package/lib/types/source/Publication.js +10 -3
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AncestorGlyph.d.ts +4 -3
- package/lib/types/specialAbility/AncestorGlyph.js +9 -2
- package/lib/types/specialAbility/BlessedTradition.d.ts +4 -3
- package/lib/types/specialAbility/BlessedTradition.js +9 -2
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +2 -1
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +2 -1
- package/lib/types/specialAbility/CombatSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/CommandSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/FatePointSpecialAbility.js +9 -2
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +2 -1
- package/lib/types/specialAbility/GeneralSpecialAbility.js +9 -2
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +2 -1
- package/lib/types/specialAbility/KarmaSpecialAbility.js +9 -2
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/LycantropicGift.d.ts +4 -3
- package/lib/types/specialAbility/LycantropicGift.js +9 -2
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/MagicalSign.d.ts +4 -3
- package/lib/types/specialAbility/MagicalSign.js +9 -2
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +2 -1
- package/lib/types/specialAbility/MagicalSpecialAbility.js +9 -2
- package/lib/types/specialAbility/MagicalTradition.d.ts +4 -3
- package/lib/types/specialAbility/MagicalTradition.js +9 -2
- package/lib/types/specialAbility/PactGift.d.ts +4 -3
- package/lib/types/specialAbility/PactGift.js +11 -4
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/Sermon.d.ts +4 -3
- package/lib/types/specialAbility/Sermon.js +9 -2
- package/lib/types/specialAbility/SexSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/SexSpecialAbility.js +9 -2
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +9 -2
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/VampiricGift.d.ts +2 -1
- package/lib/types/specialAbility/VampiricGift.js +9 -2
- package/lib/types/specialAbility/Vision.d.ts +4 -3
- package/lib/types/specialAbility/Vision.js +9 -2
- package/lib/types/specialAbility/sub/Language.d.ts +4 -3
- package/lib/types/specialAbility/sub/Language.js +9 -2
- package/lib/types/specialAbility/sub/Script.d.ts +4 -3
- package/lib/types/specialAbility/sub/Script.js +9 -2
- package/lib/types/specialAbility/sub/TradeSecret.d.ts +4 -3
- package/lib/types/specialAbility/sub/TradeSecret.js +9 -2
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/AttireEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/BowlEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +2 -1
- package/lib/types/traditionArtifacts/DaggerRitual.js +9 -2
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +2 -1
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +9 -2
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/OrbEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/RingEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +2 -1
- package/lib/types/traditionArtifacts/SickleRitual.js +9 -2
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/StaffEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/ToyEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +2 -1
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +9 -2
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/WandEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +2 -1
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +2 -1
- package/lib/types/traditionArtifacts/sub/AnimalShape.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +2 -1
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +2 -1
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +9 -2
- package/lib/types/traditionArtifacts/sub/Brew.d.ts +2 -1
- package/lib/types/traditionArtifacts/sub/Brew.js +9 -2
- package/lib/validation/builders/integrity.d.ts +57 -0
- package/lib/validation/builders/integrity.js +44 -0
- package/lib/validation/builders/naming.d.ts +13 -0
- package/lib/validation/builders/naming.js +14 -0
- package/lib/validation/builders/schema.d.ts +31 -0
- package/lib/validation/builders/schema.js +32 -0
- package/lib/validation/filename.d.ts +9 -0
- package/lib/validation/filename.js +10 -0
- package/lib/validation/raw.d.ts +9 -0
- package/lib/validation/raw.js +55 -0
- package/lib/validation/schema.d.ts +6 -22
- package/lib/validation/schema.js +31 -32
- package/package.json +8 -3
- package/schema/Locale.schema.json +1 -8
- package/config/directories.d.ts +0 -4
- package/config/directories.js +0 -14
- package/lib/validation/integrity.d.ts +0 -16
- package/lib/validation/integrity.js +0 -3
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main DaggerRitual
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "DaggerRitual",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("DaggerRitual"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main FoolsHatEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type FoolsHatEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<FoolsHatEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main FoolsHatEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "FoolsHatEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("FoolsHatEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main InstrumentEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type InstrumentEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<InstrumentEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main InstrumentEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "InstrumentEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("InstrumentEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Krallenkettenzauber
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type KrallenkettenzauberTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<Krallenkettenzauber>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Krallenkettenzauber
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "Krallenkettenzauber",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("Krallenkettenzauber"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main OrbEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type OrbEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<OrbEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main OrbEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "OrbEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("OrbEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main RingEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type RingEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<RingEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main RingEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "RingEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("RingEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main SickleRitual
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type SickleRitualTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<SickleRitual>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main SickleRitual
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "SickleRitual",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("SickleRitual"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main SpellSwordEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -48,4 +49,4 @@ export type SpellSwordEnchantmentTranslation = {
|
|
|
48
49
|
ap_value?: Activatable.AdventurePointsValueReplacement;
|
|
49
50
|
errata?: Errata;
|
|
50
51
|
};
|
|
51
|
-
export declare const
|
|
52
|
+
export declare const config: TypeConfig<SpellSwordEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main SpellSwordEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "SpellSwordEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("SpellSwordEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main StaffEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -53,4 +54,4 @@ export type StaffEnchantmentTranslation = {
|
|
|
53
54
|
ap_value?: Activatable.AdventurePointsValueReplacement;
|
|
54
55
|
errata?: Errata;
|
|
55
56
|
};
|
|
56
|
-
export declare const
|
|
57
|
+
export declare const config: TypeConfig<StaffEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main StaffEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "StaffEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("StaffEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main ToyEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type ToyEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<ToyEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main ToyEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "ToyEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("ToyEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Trinkhornzauber
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type TrinkhornzauberTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<Trinkhornzauber>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Trinkhornzauber
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "Trinkhornzauber",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("Trinkhornzauber"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main WandEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -38,4 +39,4 @@ export type WandEnchantmentTranslation = {
|
|
|
38
39
|
bindingCost?: string;
|
|
39
40
|
errata?: Errata;
|
|
40
41
|
};
|
|
41
|
-
export declare const
|
|
42
|
+
export declare const config: TypeConfig<WandEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main WandEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "WandEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("WandEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main WeaponEnchantment
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../typeConfig.js";
|
|
4
5
|
import * as Activatable from "../_Activatable.js";
|
|
5
6
|
import { LocaleMap } from "../_LocaleMap.js";
|
|
6
7
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
@@ -43,4 +44,4 @@ export type WeaponEnchantmentTranslation = {
|
|
|
43
44
|
bindingCost?: string;
|
|
44
45
|
errata?: Errata;
|
|
45
46
|
};
|
|
46
|
-
export declare const
|
|
47
|
+
export declare const config: TypeConfig<WeaponEnchantment>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main WeaponEnchantment
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "WeaponEnchantment",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("WeaponEnchantment"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShape
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../../typeConfig.js";
|
|
4
5
|
import { LocaleMap } from "../../_LocaleMap.js";
|
|
5
6
|
import { NonEmptyString } from "../../_NonEmptyString.js";
|
|
6
7
|
/**
|
|
@@ -48,4 +49,4 @@ export type AnimalShapeTranslation = {
|
|
|
48
49
|
*/
|
|
49
50
|
name: NonEmptyString;
|
|
50
51
|
};
|
|
51
|
-
export declare const
|
|
52
|
+
export declare const config: TypeConfig<AnimalShape>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShape
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "AnimalShape",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("AnimalShape"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShapePath
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../../typeConfig.js";
|
|
4
5
|
import { LocaleMap } from "../../_LocaleMap.js";
|
|
5
6
|
import { NonEmptyString } from "../../_NonEmptyString.js";
|
|
6
7
|
/**
|
|
@@ -24,4 +25,4 @@ export type AnimalShapePathTranslation = {
|
|
|
24
25
|
*/
|
|
25
26
|
name: NonEmptyString;
|
|
26
27
|
};
|
|
27
|
-
export declare const
|
|
28
|
+
export declare const config: TypeConfig<AnimalShapePath>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShapePath
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "AnimalShapePath",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("AnimalShapePath"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShapeSize
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../../typeConfig.js";
|
|
4
5
|
import { LocaleMap } from "../../_LocaleMap.js";
|
|
5
6
|
import { NonEmptyString } from "../../_NonEmptyString.js";
|
|
6
7
|
/**
|
|
@@ -36,4 +37,4 @@ export type AnimalShapeSizeTranslation = {
|
|
|
36
37
|
*/
|
|
37
38
|
name: NonEmptyString;
|
|
38
39
|
};
|
|
39
|
-
export declare const
|
|
40
|
+
export declare const config: TypeConfig<AnimalShapeSize>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main AnimalShapeSize
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "AnimalShapeSize",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("AnimalShapeSize"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Brew
|
|
3
3
|
*/
|
|
4
|
+
import { TypeConfig } from "../../../typeConfig.js";
|
|
4
5
|
import { LocaleMap } from "../../_LocaleMap.js";
|
|
5
6
|
import { NonEmptyString } from "../../_NonEmptyString.js";
|
|
6
7
|
/**
|
|
@@ -24,4 +25,4 @@ export type BrewTranslation = {
|
|
|
24
25
|
*/
|
|
25
26
|
name: NonEmptyString;
|
|
26
27
|
};
|
|
27
|
-
export declare const
|
|
28
|
+
export declare const config: TypeConfig<Brew>;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @main Brew
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
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: "Brew",
|
|
9
|
+
id: getFIlenamePrefixAsNumericId,
|
|
10
|
+
integrityValidator: todo("Brew"),
|
|
11
|
+
schemaValidator: createSchemaValidator(import.meta.url),
|
|
12
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TypeMap } from "../../config.js";
|
|
2
|
+
import { PathDescriptor } from "../../helpers/objectPath.js";
|
|
3
|
+
import { Result } from "../../helpers/result.js";
|
|
4
|
+
import { TypeId } from "../../typeConfig.js";
|
|
5
|
+
/**
|
|
6
|
+
* An error in the shape of an `Ajv` error, with `keyword` being the
|
|
7
|
+
* discriminating property.
|
|
8
|
+
*/
|
|
9
|
+
export type IntegrityError = {
|
|
10
|
+
keyword: "integrity";
|
|
11
|
+
instancePath: string;
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
export type IntegrityValidationResult = Result<void, IntegrityError[]>;
|
|
15
|
+
/**
|
|
16
|
+
* A function that validates `data` at a specific `filePath` to be of type `T`
|
|
17
|
+
* using a specified `validator`.
|
|
18
|
+
*/
|
|
19
|
+
export type IntegrityValidator<T> = (validators: IntegrityValidators, data: T, filepath: string) => IntegrityValidationResult;
|
|
20
|
+
export type IntegrityValidators = {
|
|
21
|
+
identity: IdentityIntegrityValidators;
|
|
22
|
+
};
|
|
23
|
+
export type IdentityIntegrityValidators = {
|
|
24
|
+
[K in keyof TypeMap]: {
|
|
25
|
+
isUnique: (id: TypeId<K>) => boolean;
|
|
26
|
+
exists: (id: TypeId<K>) => boolean;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const getReferencialIntegrityErrors: <T>(ids: T[], typeName: string, existsId: (id: T) => boolean, pathToData: PathDescriptor) => IntegrityValidationResult;
|
|
30
|
+
interface Translatable<T> {
|
|
31
|
+
/**
|
|
32
|
+
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
33
|
+
* @minProperties 1
|
|
34
|
+
*/
|
|
35
|
+
translations: {
|
|
36
|
+
[localeId: string]: T;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare const getReferencialIntegrityErrorsForTranslatable: <T>(validators: IntegrityValidators, data: Translatable<T>, pathToData?: PathDescriptor) => IntegrityValidationResult;
|
|
40
|
+
/**
|
|
41
|
+
* Validates that a given identifier is unique. If the identifier is present in
|
|
42
|
+
* both the file name and the file contents, their equality is validated as
|
|
43
|
+
* well. The `pathToId` parameter is used to identify the location of the
|
|
44
|
+
* identifier in the file contents.
|
|
45
|
+
*/
|
|
46
|
+
export declare const validateEntityIntegrity: <ID extends string | number>(isUnique: (id: ID) => boolean, filenameId: ID, dataId?: ID | undefined, pathToId?: PathDescriptor) => IntegrityValidationResult;
|
|
47
|
+
/**
|
|
48
|
+
* Warns about missing integrity validation, but returns no errors.
|
|
49
|
+
* @param typeName The name of the type that is not being validated.
|
|
50
|
+
* @returns An empty list of errors.
|
|
51
|
+
*/
|
|
52
|
+
export declare const todo: (typeName: string) => () => IntegrityValidationResult;
|
|
53
|
+
/**
|
|
54
|
+
* Combines multiple integrity validation results into one.
|
|
55
|
+
*/
|
|
56
|
+
export declare const reduceIntegrityValidationResults: (...results: IntegrityValidationResult[]) => IntegrityValidationResult;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
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));
|
|
@@ -0,0 +1,13 @@
|
|
|
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 validateFileName: FileNameValidator;
|