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.
- package/CHANGELOG.md +19 -0
- package/lib/config.d.ts +156 -5
- 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 +50 -15
- 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 +4 -3
- package/lib/types/Advantage.js +9 -2
- package/lib/types/AnimalDisease.d.ts +4 -3
- package/lib/types/AnimalDisease.js +9 -2
- package/lib/types/AnimalType.d.ts +4 -3
- package/lib/types/AnimalType.js +9 -2
- package/lib/types/ArcaneBardTradition.d.ts +3 -2
- package/lib/types/ArcaneBardTradition.js +9 -2
- package/lib/types/ArcaneDancerTradition.d.ts +3 -2
- package/lib/types/ArcaneDancerTradition.js +9 -2
- package/lib/types/Aspect.d.ts +4 -3
- package/lib/types/Aspect.js +9 -2
- package/lib/types/Attribute.d.ts +4 -5
- package/lib/types/Attribute.js +9 -4
- package/lib/types/Blessing.d.ts +12 -11
- package/lib/types/Blessing.js +9 -2
- package/lib/types/Cantrip.d.ts +18 -17
- package/lib/types/Cantrip.js +9 -2
- package/lib/types/Ceremony.d.ts +6 -5
- package/lib/types/Ceremony.js +9 -2
- package/lib/types/CombatTechnique_Close.d.ts +7 -6
- package/lib/types/CombatTechnique_Close.js +9 -2
- package/lib/types/CombatTechnique_Ranged.d.ts +7 -6
- package/lib/types/CombatTechnique_Ranged.js +9 -2
- package/lib/types/Condition.d.ts +6 -5
- package/lib/types/Condition.js +9 -2
- package/lib/types/Continent.d.ts +4 -3
- package/lib/types/Continent.js +9 -2
- package/lib/types/Culture.d.ts +25 -24
- package/lib/types/Culture.js +13 -6
- package/lib/types/DerivedCharacteristic.d.ts +6 -5
- package/lib/types/DerivedCharacteristic.js +9 -2
- package/lib/types/Disadvantage.d.ts +4 -3
- package/lib/types/Disadvantage.js +9 -2
- package/lib/types/Disease.d.ts +4 -3
- package/lib/types/Disease.js +9 -2
- package/lib/types/Element.d.ts +4 -3
- package/lib/types/Element.js +9 -2
- package/lib/types/ExperienceLevel.d.ts +4 -3
- package/lib/types/ExperienceLevel.js +9 -2
- package/lib/types/EyeColor.d.ts +4 -3
- package/lib/types/EyeColor.js +9 -2
- package/lib/types/FamiliarsTrick.d.ts +26 -25
- package/lib/types/FamiliarsTrick.js +9 -2
- package/lib/types/HairColor.d.ts +4 -3
- package/lib/types/HairColor.js +9 -2
- package/lib/types/Kirchenpraegung.d.ts +3 -2
- package/lib/types/Kirchenpraegung.js +9 -2
- package/lib/types/Lessons_Curriculum.d.ts +22 -21
- package/lib/types/Lessons_Curriculum.js +9 -2
- package/lib/types/Lessons_Guideline.d.ts +4 -3
- package/lib/types/Lessons_Guideline.js +9 -2
- package/lib/types/LiturgicalChant.d.ts +6 -5
- package/lib/types/LiturgicalChant.js +9 -2
- package/lib/types/Locale.d.ts +4 -7
- package/lib/types/Locale.js +10 -3
- package/lib/types/MetaCondition.d.ts +6 -5
- package/lib/types/MetaCondition.js +9 -2
- package/lib/types/PactCategory.d.ts +10 -9
- package/lib/types/PactCategory.js +9 -2
- package/lib/types/Patron.d.ts +15 -14
- package/lib/types/Patron.js +11 -4
- package/lib/types/PatronCategory.d.ts +4 -3
- package/lib/types/PatronCategory.js +9 -2
- package/lib/types/PersonalityTrait.d.ts +7 -6
- package/lib/types/PersonalityTrait.js +9 -2
- package/lib/types/Profession.d.ts +43 -42
- package/lib/types/Profession.js +10 -3
- package/lib/types/Property.d.ts +4 -3
- package/lib/types/Property.js +9 -2
- package/lib/types/Race.d.ts +18 -17
- package/lib/types/Race.js +10 -3
- package/lib/types/Region.d.ts +4 -3
- package/lib/types/Region.js +9 -2
- package/lib/types/Ritual.d.ts +6 -5
- package/lib/types/Ritual.js +9 -2
- package/lib/types/Service.d.ts +6 -5
- package/lib/types/Service.js +10 -3
- package/lib/types/SexPractice.d.ts +5 -4
- package/lib/types/SexPractice.js +9 -2
- package/lib/types/Skill.d.ts +10 -9
- package/lib/types/Skill.js +11 -4
- package/lib/types/SkillGroup.d.ts +4 -3
- package/lib/types/SkillGroup.js +9 -2
- package/lib/types/SkillModificationLevel.d.ts +8 -7
- package/lib/types/SkillModificationLevel.js +10 -3
- package/lib/types/SocialStatus.d.ts +4 -3
- package/lib/types/SocialStatus.js +9 -2
- package/lib/types/Spell.d.ts +6 -5
- package/lib/types/Spell.js +9 -2
- package/lib/types/State.d.ts +6 -5
- package/lib/types/State.js +9 -2
- package/lib/types/Talisman.d.ts +5 -4
- package/lib/types/Talisman.js +10 -3
- package/lib/types/TargetCategory.d.ts +5 -4
- package/lib/types/TargetCategory.js +9 -2
- package/lib/types/UI.d.ts +3 -2
- package/lib/types/UI.js +9 -2
- package/lib/types/_Activatable.d.ts +109 -109
- package/lib/types/_Activatable.js +5 -5
- package/lib/types/_ActivatableSelectOptionCategory.d.ts +27 -27
- package/lib/types/_ActivatableSelectOptionCategory.js +1 -1
- package/lib/types/_ActivatableSkill.d.ts +8 -8
- package/lib/types/_ActivatableSkillCastingTime.d.ts +8 -8
- package/lib/types/_ActivatableSkillCastingTime.js +1 -1
- package/lib/types/_ActivatableSkillCheckResultBased.d.ts +2 -2
- package/lib/types/_ActivatableSkillCheckResultBased.js +2 -2
- package/lib/types/_ActivatableSkillCost.d.ts +20 -20
- package/lib/types/_ActivatableSkillDuration.d.ts +13 -13
- package/lib/types/_ActivatableSkillDuration.js +1 -1
- package/lib/types/_ActivatableSkillEffect.d.ts +4 -4
- package/lib/types/_ActivatableSkillRange.d.ts +6 -6
- package/lib/types/_ActivatableSkillRange.js +1 -1
- package/lib/types/_ActivatableSkillTargetCategory.d.ts +4 -4
- package/lib/types/_AlternativeNames.d.ts +1 -1
- package/lib/types/_ArcaneTradition.d.ts +2 -2
- package/lib/types/_Blessed.d.ts +2 -2
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +1 -1
- package/lib/types/_Dice.d.ts +1 -1
- package/lib/types/_Dice.js +1 -1
- package/lib/types/_DiseasePoison.d.ts +4 -4
- package/lib/types/_DiseasePoison.js +1 -1
- package/lib/types/_Enhancements.d.ts +3 -3
- package/lib/types/_I18n.d.ts +1 -1
- package/lib/types/_Identifier.d.ts +132 -132
- package/lib/types/_IdentifierGroup.d.ts +20 -20
- package/lib/types/_ImprovementCost.js +1 -1
- package/lib/types/_Influence.d.ts +3 -3
- package/lib/types/_LocaleMap.d.ts +1 -1
- package/lib/types/_NonEmptyString.d.ts +2 -2
- package/lib/types/_Prerequisite.d.ts +21 -21
- package/lib/types/_ResponsiveText.d.ts +3 -3
- package/lib/types/_Sex.js +1 -1
- package/lib/types/_SimpleReferences.d.ts +44 -44
- package/lib/types/_SkillCheck.d.ts +1 -1
- package/lib/types/_SkillCheck.js +1 -1
- package/lib/types/_Spellwork.d.ts +2 -2
- package/lib/types/equipment/EquipmentPackage.d.ts +6 -5
- package/lib/types/equipment/EquipmentPackage.js +9 -2
- package/lib/types/equipment/item/Alchemicum.d.ts +3 -2
- package/lib/types/equipment/item/Alchemicum.js +9 -2
- package/lib/types/equipment/item/Ammunition.d.ts +6 -5
- package/lib/types/equipment/item/Ammunition.js +9 -2
- package/lib/types/equipment/item/Animal.d.ts +4 -3
- package/lib/types/equipment/item/Animal.js +9 -2
- package/lib/types/equipment/item/AnimalCare.d.ts +8 -7
- package/lib/types/equipment/item/AnimalCare.js +9 -2
- package/lib/types/equipment/item/Armor.d.ts +15 -14
- package/lib/types/equipment/item/Armor.js +9 -2
- package/lib/types/equipment/item/BandageOrRemedy.d.ts +4 -3
- package/lib/types/equipment/item/BandageOrRemedy.js +9 -2
- package/lib/types/equipment/item/Book.d.ts +6 -5
- package/lib/types/equipment/item/Book.js +9 -2
- package/lib/types/equipment/item/CeremonialItem.d.ts +4 -3
- package/lib/types/equipment/item/CeremonialItem.js +9 -2
- package/lib/types/equipment/item/Clothes.d.ts +3 -2
- package/lib/types/equipment/item/Clothes.js +9 -2
- package/lib/types/equipment/item/Container.d.ts +3 -2
- package/lib/types/equipment/item/Container.js +9 -2
- package/lib/types/equipment/item/Elixir.d.ts +6 -5
- package/lib/types/equipment/item/Elixir.js +9 -2
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +4 -3
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +9 -2
- package/lib/types/equipment/item/GemOrPreciousStone.d.ts +6 -5
- package/lib/types/equipment/item/GemOrPreciousStone.js +9 -2
- package/lib/types/equipment/item/IlluminationLightSource.d.ts +6 -5
- package/lib/types/equipment/item/IlluminationLightSource.js +10 -3
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +3 -2
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +9 -2
- package/lib/types/equipment/item/Jewelry.d.ts +7 -6
- package/lib/types/equipment/item/Jewelry.js +9 -2
- package/lib/types/equipment/item/Liebesspielzeug.d.ts +3 -2
- package/lib/types/equipment/item/Liebesspielzeug.js +9 -2
- package/lib/types/equipment/item/LuxuryGood.d.ts +4 -3
- package/lib/types/equipment/item/LuxuryGood.js +9 -2
- package/lib/types/equipment/item/MagicalArtifact.d.ts +6 -5
- package/lib/types/equipment/item/MagicalArtifact.js +9 -2
- package/lib/types/equipment/item/MusicalInstrument.d.ts +4 -3
- package/lib/types/equipment/item/MusicalInstrument.js +9 -2
- package/lib/types/equipment/item/OrienteeringAid.d.ts +3 -2
- package/lib/types/equipment/item/OrienteeringAid.js +9 -2
- package/lib/types/equipment/item/Poison.d.ts +30 -29
- package/lib/types/equipment/item/Poison.js +12 -5
- package/lib/types/equipment/item/RopeOrChain.d.ts +3 -2
- package/lib/types/equipment/item/RopeOrChain.js +9 -2
- package/lib/types/equipment/item/Stationary.d.ts +3 -2
- package/lib/types/equipment/item/Stationary.js +9 -2
- package/lib/types/equipment/item/ThievesTool.d.ts +3 -2
- package/lib/types/equipment/item/ThievesTool.js +9 -2
- package/lib/types/equipment/item/ToolOfTheTrade.d.ts +7 -6
- package/lib/types/equipment/item/ToolOfTheTrade.js +9 -2
- package/lib/types/equipment/item/TravelGearOrTool.d.ts +3 -2
- package/lib/types/equipment/item/TravelGearOrTool.js +9 -2
- package/lib/types/equipment/item/Vehicle.d.ts +4 -3
- package/lib/types/equipment/item/Vehicle.js +9 -2
- package/lib/types/equipment/item/Weapon.d.ts +11 -10
- package/lib/types/equipment/item/Weapon.js +9 -2
- package/lib/types/equipment/item/WeaponAccessory.d.ts +3 -2
- package/lib/types/equipment/item/WeaponAccessory.js +9 -2
- package/lib/types/equipment/item/_Herbary.d.ts +1 -1
- package/lib/types/equipment/item/_Herbary.js +2 -2
- package/lib/types/equipment/item/_Item.d.ts +12 -12
- package/lib/types/equipment/item/_MeleeWeapon.d.ts +7 -7
- package/lib/types/equipment/item/_RangedWeapon.d.ts +6 -6
- package/lib/types/equipment/item/_Weapon.d.ts +5 -5
- package/lib/types/equipment/item/sub/ArmorType.d.ts +4 -3
- package/lib/types/equipment/item/sub/ArmorType.js +9 -2
- package/lib/types/equipment/item/sub/Reach.d.ts +4 -3
- package/lib/types/equipment/item/sub/Reach.js +9 -2
- package/lib/types/magicalActions/AnimistPower.d.ts +20 -19
- package/lib/types/magicalActions/AnimistPower.js +9 -2
- package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +4 -3
- package/lib/types/magicalActions/AnimistPower_Tribe.js +9 -2
- package/lib/types/magicalActions/Curse.d.ts +14 -13
- package/lib/types/magicalActions/Curse.js +9 -2
- package/lib/types/magicalActions/DominationRitual.d.ts +13 -12
- package/lib/types/magicalActions/DominationRitual.js +9 -2
- package/lib/types/magicalActions/ElvenMagicalSong.d.ts +11 -10
- package/lib/types/magicalActions/ElvenMagicalSong.js +9 -2
- package/lib/types/magicalActions/GeodeRitual.d.ts +14 -13
- package/lib/types/magicalActions/GeodeRitual.js +9 -2
- package/lib/types/magicalActions/JesterTrick.d.ts +13 -12
- package/lib/types/magicalActions/JesterTrick.js +9 -2
- package/lib/types/magicalActions/MagicalDance.d.ts +10 -9
- package/lib/types/magicalActions/MagicalDance.js +9 -2
- package/lib/types/magicalActions/MagicalMelody.d.ts +10 -9
- package/lib/types/magicalActions/MagicalMelody.js +9 -2
- package/lib/types/magicalActions/MagicalRune.d.ts +26 -25
- package/lib/types/magicalActions/MagicalRune.js +9 -2
- package/lib/types/magicalActions/ZibiljaRitual.d.ts +7 -6
- package/lib/types/magicalActions/ZibiljaRitual.js +9 -2
- package/lib/types/magicalActions/_MusicTradition.d.ts +3 -3
- package/lib/types/magicalActions/_MusicTradition.js +2 -2
- package/lib/types/magicalActions/_SkillReference.d.ts +1 -1
- package/lib/types/magicalActions/_SkillReference.js +1 -1
- package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +1 -1
- package/lib/types/prerequisites/DisplayOption.d.ts +2 -2
- package/lib/types/prerequisites/PrerequisiteGroups.d.ts +15 -15
- package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +4 -4
- package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/PactPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -1
- package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/RacePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +6 -6
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +1 -1
- package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/RulePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/SexPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +1 -1
- package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/StatePrerequisite.d.ts +1 -1
- package/lib/types/prerequisites/single/TextPrerequisite.d.ts +2 -2
- package/lib/types/prerequisites/single/TextPrerequisite.js +2 -2
- package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +2 -2
- package/lib/types/prerequisites/single/TraditionPrerequisite.js +2 -2
- package/lib/types/rule/CoreRule.d.ts +15 -14
- package/lib/types/rule/CoreRule.js +10 -3
- package/lib/types/rule/FocusRule.d.ts +6 -5
- package/lib/types/rule/FocusRule.js +9 -2
- package/lib/types/rule/FocusRule_Subject.d.ts +4 -3
- package/lib/types/rule/FocusRule_Subject.js +9 -2
- package/lib/types/rule/OptionalRule.d.ts +6 -5
- package/lib/types/rule/OptionalRule.js +9 -2
- package/lib/types/source/Publication.d.ts +4 -3
- package/lib/types/source/Publication.js +10 -3
- package/lib/types/source/_Erratum.d.ts +2 -2
- package/lib/types/source/_PublicationRef.d.ts +13 -13
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +9 -2
- package/lib/types/specialAbility/AncestorGlyph.d.ts +6 -5
- package/lib/types/specialAbility/AncestorGlyph.js +9 -2
- package/lib/types/specialAbility/BlessedTradition.d.ts +12 -11
- package/lib/types/specialAbility/BlessedTradition.js +9 -2
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/CombatSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +5 -4
- package/lib/types/specialAbility/CommandSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +9 -2
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/FatePointSpecialAbility.js +9 -2
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/GeneralSpecialAbility.js +9 -2
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/KarmaSpecialAbility.js +9 -2
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/LycantropicGift.d.ts +6 -5
- package/lib/types/specialAbility/LycantropicGift.js +9 -2
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/MagicalSign.d.ts +6 -5
- package/lib/types/specialAbility/MagicalSign.js +9 -2
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +4 -3
- package/lib/types/specialAbility/MagicalSpecialAbility.js +9 -2
- package/lib/types/specialAbility/MagicalTradition.d.ts +7 -6
- package/lib/types/specialAbility/MagicalTradition.js +9 -2
- package/lib/types/specialAbility/PactGift.d.ts +13 -12
- package/lib/types/specialAbility/PactGift.js +11 -4
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/Sermon.d.ts +6 -5
- package/lib/types/specialAbility/Sermon.js +9 -2
- package/lib/types/specialAbility/SexSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/SexSpecialAbility.js +9 -2
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +9 -2
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +6 -5
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +9 -2
- package/lib/types/specialAbility/VampiricGift.d.ts +4 -3
- package/lib/types/specialAbility/VampiricGift.js +9 -2
- package/lib/types/specialAbility/Vision.d.ts +6 -5
- package/lib/types/specialAbility/Vision.js +9 -2
- package/lib/types/specialAbility/_Tradition.d.ts +1 -1
- package/lib/types/specialAbility/sub/Language.d.ts +12 -11
- package/lib/types/specialAbility/sub/Language.js +9 -2
- package/lib/types/specialAbility/sub/Script.d.ts +6 -5
- package/lib/types/specialAbility/sub/Script.js +9 -2
- package/lib/types/specialAbility/sub/TradeSecret.d.ts +6 -5
- package/lib/types/specialAbility/sub/TradeSecret.js +9 -2
- package/lib/types/specialAbility/sub/_LanguageScript.d.ts +1 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/AttireEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/BowlEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +5 -4
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +8 -7
- package/lib/types/traditionArtifacts/DaggerRitual.js +9 -2
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +4 -3
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +9 -2
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/OrbEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/RingEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +4 -3
- package/lib/types/traditionArtifacts/SickleRitual.js +9 -2
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/StaffEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/ToyEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +4 -3
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +9 -2
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/WandEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +4 -3
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +6 -5
- package/lib/types/traditionArtifacts/sub/AnimalShape.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +4 -3
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +9 -2
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +4 -3
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +9 -2
- package/lib/types/traditionArtifacts/sub/Brew.d.ts +4 -3
- 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 +11 -6
- 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 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";
|
|
@@ -9,7 +10,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
9
10
|
/**
|
|
10
11
|
* @title Spell-Sword Enchantment
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export type SpellSwordEnchantment = {
|
|
13
14
|
id: Activatable.Id;
|
|
14
15
|
levels?: Activatable.Levels;
|
|
15
16
|
select_options?: Activatable.SelectOptions;
|
|
@@ -25,7 +26,7 @@ export declare type SpellSwordEnchantment = {
|
|
|
25
26
|
*/
|
|
26
27
|
translations: LocaleMap<SpellSwordEnchantmentTranslation>;
|
|
27
28
|
};
|
|
28
|
-
export
|
|
29
|
+
export type SpellSwordEnchantmentTranslation = {
|
|
29
30
|
name: Activatable.Name;
|
|
30
31
|
name_in_library?: Activatable.NameInLibrary;
|
|
31
32
|
effect: Activatable.Effect;
|
|
@@ -48,4 +49,4 @@ export declare 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";
|
|
@@ -10,7 +11,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
10
11
|
/**
|
|
11
12
|
* @title Staff Enchantment
|
|
12
13
|
*/
|
|
13
|
-
export
|
|
14
|
+
export type StaffEnchantment = {
|
|
14
15
|
id: Activatable.Id;
|
|
15
16
|
levels?: Activatable.Levels;
|
|
16
17
|
select_options?: Activatable.SelectOptions;
|
|
@@ -26,7 +27,7 @@ export declare type StaffEnchantment = {
|
|
|
26
27
|
*/
|
|
27
28
|
translations: LocaleMap<StaffEnchantmentTranslation>;
|
|
28
29
|
};
|
|
29
|
-
export
|
|
30
|
+
export type StaffEnchantmentTranslation = {
|
|
30
31
|
name: Activatable.Name;
|
|
31
32
|
name_in_library?: Activatable.NameInLibrary;
|
|
32
33
|
effect: Activatable.Effect;
|
|
@@ -53,4 +54,4 @@ export declare 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";
|
|
@@ -9,7 +10,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
9
10
|
/**
|
|
10
11
|
* @title Toy Enchantment
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export type ToyEnchantment = {
|
|
13
14
|
id: Activatable.Id;
|
|
14
15
|
levels?: Activatable.Levels;
|
|
15
16
|
select_options?: Activatable.SelectOptions;
|
|
@@ -25,7 +26,7 @@ export declare type ToyEnchantment = {
|
|
|
25
26
|
*/
|
|
26
27
|
translations: LocaleMap<ToyEnchantmentTranslation>;
|
|
27
28
|
};
|
|
28
|
-
export
|
|
29
|
+
export type ToyEnchantmentTranslation = {
|
|
29
30
|
name: Activatable.Name;
|
|
30
31
|
name_in_library?: Activatable.NameInLibrary;
|
|
31
32
|
effect: Activatable.Effect;
|
|
@@ -43,4 +44,4 @@ export declare 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";
|
|
@@ -9,7 +10,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
9
10
|
/**
|
|
10
11
|
* @title Trinkhornzauber
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export type Trinkhornzauber = {
|
|
13
14
|
id: Activatable.Id;
|
|
14
15
|
levels?: Activatable.Levels;
|
|
15
16
|
select_options?: Activatable.SelectOptions;
|
|
@@ -25,7 +26,7 @@ export declare type Trinkhornzauber = {
|
|
|
25
26
|
*/
|
|
26
27
|
translations: LocaleMap<TrinkhornzauberTranslation>;
|
|
27
28
|
};
|
|
28
|
-
export
|
|
29
|
+
export type TrinkhornzauberTranslation = {
|
|
29
30
|
name: Activatable.Name;
|
|
30
31
|
name_in_library?: Activatable.NameInLibrary;
|
|
31
32
|
effect: Activatable.Effect;
|
|
@@ -43,4 +44,4 @@ export declare 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";
|
|
@@ -9,7 +10,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
9
10
|
/**
|
|
10
11
|
* @title Wand Enchantment
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export type WandEnchantment = {
|
|
13
14
|
id: Activatable.Id;
|
|
14
15
|
levels?: Activatable.Levels;
|
|
15
16
|
select_options?: Activatable.SelectOptions;
|
|
@@ -24,7 +25,7 @@ export declare type WandEnchantment = {
|
|
|
24
25
|
*/
|
|
25
26
|
translations: LocaleMap<WandEnchantmentTranslation>;
|
|
26
27
|
};
|
|
27
|
-
export
|
|
28
|
+
export type WandEnchantmentTranslation = {
|
|
28
29
|
name: Activatable.Name;
|
|
29
30
|
name_in_library?: Activatable.NameInLibrary;
|
|
30
31
|
effect: Activatable.Effect;
|
|
@@ -38,4 +39,4 @@ export declare 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";
|
|
@@ -9,7 +10,7 @@ import { PublicationRefs } from "../source/_PublicationRef.js";
|
|
|
9
10
|
/**
|
|
10
11
|
* @title Weapon Enchantment
|
|
11
12
|
*/
|
|
12
|
-
export
|
|
13
|
+
export type WeaponEnchantment = {
|
|
13
14
|
id: Activatable.Id;
|
|
14
15
|
levels?: Activatable.Levels;
|
|
15
16
|
select_options?: Activatable.SelectOptions;
|
|
@@ -25,7 +26,7 @@ export declare type WeaponEnchantment = {
|
|
|
25
26
|
*/
|
|
26
27
|
translations: LocaleMap<WeaponEnchantmentTranslation>;
|
|
27
28
|
};
|
|
28
|
-
export
|
|
29
|
+
export type WeaponEnchantmentTranslation = {
|
|
29
30
|
name: Activatable.Name;
|
|
30
31
|
name_in_library?: Activatable.NameInLibrary;
|
|
31
32
|
effect: Activatable.Effect;
|
|
@@ -43,4 +44,4 @@ export declare 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,12 +1,13 @@
|
|
|
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
|
/**
|
|
7
8
|
* @title Animal Shape
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type AnimalShape = {
|
|
10
11
|
/**
|
|
11
12
|
* The animal shape's identifier. An unique, increasing integer.
|
|
12
13
|
* @integer
|
|
@@ -26,7 +27,7 @@ export declare type AnimalShape = {
|
|
|
26
27
|
*/
|
|
27
28
|
translations: LocaleMap<AnimalShapeTranslation>;
|
|
28
29
|
};
|
|
29
|
-
export
|
|
30
|
+
export type AnimalShapePathReference = {
|
|
30
31
|
/**
|
|
31
32
|
* The identifier of the animal shape's path.
|
|
32
33
|
* @integer
|
|
@@ -34,7 +35,7 @@ export declare type AnimalShapePathReference = {
|
|
|
34
35
|
*/
|
|
35
36
|
id: number;
|
|
36
37
|
};
|
|
37
|
-
export
|
|
38
|
+
export type AnimalShapeSizeReference = {
|
|
38
39
|
/**
|
|
39
40
|
* The identifier of the animal shape's size.
|
|
40
41
|
* @integer
|
|
@@ -42,10 +43,10 @@ export declare type AnimalShapeSizeReference = {
|
|
|
42
43
|
*/
|
|
43
44
|
id: number;
|
|
44
45
|
};
|
|
45
|
-
export
|
|
46
|
+
export type AnimalShapeTranslation = {
|
|
46
47
|
/**
|
|
47
48
|
* The animal shape name.
|
|
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,12 +1,13 @@
|
|
|
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
|
/**
|
|
7
8
|
* @title Animal Shape Path
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type AnimalShapePath = {
|
|
10
11
|
/**
|
|
11
12
|
* The animal shape path's identifier. An unique, increasing integer.
|
|
12
13
|
* @integer
|
|
@@ -18,10 +19,10 @@ export declare type AnimalShapePath = {
|
|
|
18
19
|
*/
|
|
19
20
|
translations: LocaleMap<AnimalShapePathTranslation>;
|
|
20
21
|
};
|
|
21
|
-
export
|
|
22
|
+
export type AnimalShapePathTranslation = {
|
|
22
23
|
/**
|
|
23
24
|
* The animal shape path's name.
|
|
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,12 +1,13 @@
|
|
|
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
|
/**
|
|
7
8
|
* @title Animal Shape Size
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type AnimalShapeSize = {
|
|
10
11
|
/**
|
|
11
12
|
* The animal shape's identifier. An unique, increasing integer.
|
|
12
13
|
* @integer
|
|
@@ -30,10 +31,10 @@ export declare type AnimalShapeSize = {
|
|
|
30
31
|
*/
|
|
31
32
|
translations: LocaleMap<AnimalShapeSizeTranslation>;
|
|
32
33
|
};
|
|
33
|
-
export
|
|
34
|
+
export type AnimalShapeSizeTranslation = {
|
|
34
35
|
/**
|
|
35
36
|
* The animal shape size name.
|
|
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,12 +1,13 @@
|
|
|
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
|
/**
|
|
7
8
|
* @title Brew
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type Brew = {
|
|
10
11
|
/**
|
|
11
12
|
* The brew's identifier. An unique, increasing integer.
|
|
12
13
|
* @integer
|
|
@@ -18,10 +19,10 @@ export declare type Brew = {
|
|
|
18
19
|
*/
|
|
19
20
|
translations: LocaleMap<BrewTranslation>;
|
|
20
21
|
};
|
|
21
|
-
export
|
|
22
|
+
export type BrewTranslation = {
|
|
22
23
|
/**
|
|
23
24
|
* The brew name.
|
|
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;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { basename } from "node:path";
|
|
2
|
+
import { error, ok } from "../../helpers/result.js";
|
|
3
|
+
const BASE_NAME_PATTERN = /^(?:0|[1-9][0-9]*)_(?:[A-Z][a-zA-Z]*|[1-9][0-9]*)(?:-(?:[a-zA-Z]+|[1-9][0-9]*))*\.yml$/;
|
|
4
|
+
const fileNameError = (fileName) => ({
|
|
5
|
+
keyword: "filename",
|
|
6
|
+
instancePath: "",
|
|
7
|
+
message: `the file name "${fileName}" does not match the pattern ${BASE_NAME_PATTERN.source}`
|
|
8
|
+
});
|
|
9
|
+
export const validateFileName = (filePath) => {
|
|
10
|
+
const fileName = basename(filePath);
|
|
11
|
+
return BASE_NAME_PATTERN.test(fileName)
|
|
12
|
+
? ok(undefined)
|
|
13
|
+
: error([fileNameError(fileName)]);
|
|
14
|
+
};
|