optolith-database-schema 0.11.3 → 0.11.4
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 +2 -0
- package/build/config.js +5 -3
- package/lib/build/config.d.ts +8 -0
- package/lib/build/config.js +16 -0
- package/package.json +2 -2
- package/build/config.d.ts +0 -11
- package/lib/config.d.ts +0 -463
- package/lib/config.js +0 -308
- package/lib/errors.d.ts +0 -20
- package/lib/errors.js +0 -33
- package/lib/helpers/array.d.ts +0 -14
- package/lib/helpers/array.js +0 -15
- package/lib/helpers/i18n.d.ts +0 -1
- package/lib/helpers/i18n.js +0 -1
- package/lib/helpers/io.d.ts +0 -29
- package/lib/helpers/io.js +0 -51
- package/lib/helpers/objectPath.d.ts +0 -13
- package/lib/helpers/objectPath.js +0 -3
- package/lib/helpers/pair.d.ts +0 -20
- package/lib/helpers/pair.js +0 -20
- package/lib/helpers/result.d.ts +0 -57
- package/lib/helpers/result.js +0 -45
- package/lib/helpers/typeSafety.d.ts +0 -6
- package/lib/helpers/typeSafety.js +0 -8
- package/lib/main.d.ts +0 -55
- package/lib/main.js +0 -55
- package/lib/typeConfig.d.ts +0 -10
- package/lib/typeConfig.js +0 -1
- package/lib/types/Advantage.d.ts +0 -63
- package/lib/types/Advantage.js +0 -12
- package/lib/types/AnimalDisease.d.ts +0 -59
- package/lib/types/AnimalDisease.js +0 -12
- package/lib/types/AnimalType.d.ts +0 -28
- package/lib/types/AnimalType.js +0 -12
- package/lib/types/ArcaneBardTradition.d.ts +0 -10
- package/lib/types/ArcaneBardTradition.js +0 -12
- package/lib/types/ArcaneDancerTradition.d.ts +0 -10
- package/lib/types/ArcaneDancerTradition.js +0 -12
- package/lib/types/Aspect.d.ts +0 -33
- package/lib/types/Aspect.js +0 -12
- package/lib/types/Attribute.d.ts +0 -36
- package/lib/types/Attribute.js +0 -12
- package/lib/types/Blessing.d.ts +0 -113
- package/lib/types/Blessing.js +0 -12
- package/lib/types/Cantrip.d.ts +0 -183
- package/lib/types/Cantrip.js +0 -12
- package/lib/types/Ceremony.d.ts +0 -113
- package/lib/types/Ceremony.js +0 -12
- package/lib/types/CombatTechnique_Close.d.ts +0 -73
- package/lib/types/CombatTechnique_Close.js +0 -12
- package/lib/types/CombatTechnique_Ranged.d.ts +0 -66
- package/lib/types/CombatTechnique_Ranged.js +0 -12
- package/lib/types/Condition.d.ts +0 -40
- package/lib/types/Condition.js +0 -12
- package/lib/types/Continent.d.ts +0 -30
- package/lib/types/Continent.js +0 -12
- package/lib/types/Culture.d.ts +0 -382
- package/lib/types/Culture.js +0 -50
- package/lib/types/DerivedCharacteristic.d.ts +0 -61
- package/lib/types/DerivedCharacteristic.js +0 -12
- package/lib/types/Disadvantage.d.ts +0 -58
- package/lib/types/Disadvantage.js +0 -12
- package/lib/types/Disease.d.ts +0 -43
- package/lib/types/Disease.js +0 -12
- package/lib/types/Element.d.ts +0 -28
- package/lib/types/Element.js +0 -12
- package/lib/types/ExperienceLevel.d.ts +0 -64
- package/lib/types/ExperienceLevel.js +0 -12
- package/lib/types/EyeColor.d.ts +0 -28
- package/lib/types/EyeColor.js +0 -12
- package/lib/types/FamiliarsTrick.d.ts +0 -266
- package/lib/types/FamiliarsTrick.js +0 -12
- package/lib/types/HairColor.d.ts +0 -28
- package/lib/types/HairColor.js +0 -12
- package/lib/types/Kirchenpraegung.d.ts +0 -10
- package/lib/types/Kirchenpraegung.js +0 -12
- package/lib/types/Lessons_Curriculum.d.ts +0 -236
- package/lib/types/Lessons_Curriculum.js +0 -12
- package/lib/types/Lessons_Guideline.d.ts +0 -34
- package/lib/types/Lessons_Guideline.js +0 -12
- package/lib/types/LiturgicalChant.d.ts +0 -113
- package/lib/types/LiturgicalChant.js +0 -12
- package/lib/types/Locale.d.ts +0 -36
- package/lib/types/Locale.js +0 -12
- package/lib/types/MetaCondition.d.ts +0 -43
- package/lib/types/MetaCondition.js +0 -12
- package/lib/types/PactCategory.d.ts +0 -78
- package/lib/types/PactCategory.js +0 -12
- package/lib/types/Patron.d.ts +0 -207
- package/lib/types/Patron.js +0 -32
- package/lib/types/PatronCategory.d.ts +0 -36
- package/lib/types/PatronCategory.js +0 -12
- package/lib/types/PersonalityTrait.d.ts +0 -67
- package/lib/types/PersonalityTrait.js +0 -12
- package/lib/types/Profession.d.ts +0 -653
- package/lib/types/Profession.js +0 -18
- package/lib/types/Property.d.ts +0 -34
- package/lib/types/Property.js +0 -12
- package/lib/types/Race.d.ts +0 -405
- package/lib/types/Race.js +0 -23
- package/lib/types/Region.d.ts +0 -28
- package/lib/types/Region.js +0 -12
- package/lib/types/Ritual.d.ts +0 -111
- package/lib/types/Ritual.js +0 -12
- package/lib/types/Service.d.ts +0 -46
- package/lib/types/Service.js +0 -17
- package/lib/types/SexPractice.d.ts +0 -47
- package/lib/types/SexPractice.js +0 -12
- package/lib/types/Skill.d.ts +0 -142
- package/lib/types/Skill.js +0 -31
- package/lib/types/SkillGroup.d.ts +0 -37
- package/lib/types/SkillGroup.js +0 -12
- package/lib/types/SkillModificationLevel.d.ts +0 -107
- package/lib/types/SkillModificationLevel.js +0 -17
- package/lib/types/SocialStatus.d.ts +0 -28
- package/lib/types/SocialStatus.js +0 -12
- package/lib/types/Spell.d.ts +0 -111
- package/lib/types/Spell.js +0 -12
- package/lib/types/State.d.ts +0 -36
- package/lib/types/State.js +0 -12
- package/lib/types/Talisman.d.ts +0 -76
- package/lib/types/Talisman.js +0 -20
- package/lib/types/TargetCategory.d.ts +0 -42
- package/lib/types/TargetCategory.js +0 -12
- package/lib/types/UI.d.ts +0 -1062
- package/lib/types/UI.js +0 -12
- package/lib/types/_Activatable.d.ts +0 -1383
- package/lib/types/_Activatable.js +0 -44
- package/lib/types/_ActivatableSelectOptionCategory.d.ts +0 -389
- package/lib/types/_ActivatableSelectOptionCategory.js +0 -8
- package/lib/types/_ActivatableSkill.d.ts +0 -37
- package/lib/types/_ActivatableSkill.js +0 -4
- package/lib/types/_ActivatableSkillCastingTime.d.ts +0 -77
- package/lib/types/_ActivatableSkillCastingTime.js +0 -5
- package/lib/types/_ActivatableSkillCheckResultBased.d.ts +0 -39
- package/lib/types/_ActivatableSkillCheckResultBased.js +0 -16
- package/lib/types/_ActivatableSkillCost.d.ts +0 -255
- package/lib/types/_ActivatableSkillCost.js +0 -1
- package/lib/types/_ActivatableSkillDuration.d.ts +0 -138
- package/lib/types/_ActivatableSkillDuration.js +0 -13
- package/lib/types/_ActivatableSkillEffect.d.ts +0 -68
- package/lib/types/_ActivatableSkillEffect.js +0 -1
- package/lib/types/_ActivatableSkillRange.d.ts +0 -110
- package/lib/types/_ActivatableSkillRange.js +0 -5
- package/lib/types/_ActivatableSkillTargetCategory.d.ts +0 -39
- package/lib/types/_ActivatableSkillTargetCategory.js +0 -1
- package/lib/types/_AlternativeNames.d.ts +0 -11
- package/lib/types/_AlternativeNames.js +0 -1
- package/lib/types/_ArcaneTradition.d.ts +0 -28
- package/lib/types/_ArcaneTradition.js +0 -4
- package/lib/types/_Blessed.d.ts +0 -22
- package/lib/types/_Blessed.js +0 -1
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +0 -10
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +0 -1
- package/lib/types/_Dice.d.ts +0 -23
- package/lib/types/_Dice.js +0 -9
- package/lib/types/_DiseasePoison.d.ts +0 -114
- package/lib/types/_DiseasePoison.js +0 -15
- package/lib/types/_Enhancements.d.ts +0 -62
- package/lib/types/_Enhancements.js +0 -4
- package/lib/types/_I18n.d.ts +0 -34
- package/lib/types/_I18n.js +0 -1
- package/lib/types/_Identifier.d.ts +0 -1193
- package/lib/types/_Identifier.js +0 -1
- package/lib/types/_IdentifierGroup.d.ts +0 -28
- package/lib/types/_IdentifierGroup.js +0 -1
- package/lib/types/_ImprovementCost.d.ts +0 -9
- package/lib/types/_ImprovementCost.js +0 -10
- package/lib/types/_Influence.d.ts +0 -49
- package/lib/types/_Influence.js +0 -4
- package/lib/types/_LocaleMap.d.ts +0 -10
- package/lib/types/_LocaleMap.js +0 -1
- package/lib/types/_NonEmptyString.d.ts +0 -9
- package/lib/types/_NonEmptyString.js +0 -1
- package/lib/types/_Prerequisite.d.ts +0 -109
- package/lib/types/_Prerequisite.js +0 -4
- package/lib/types/_ResponsiveText.d.ts +0 -54
- package/lib/types/_ResponsiveText.js +0 -1
- package/lib/types/_Sex.d.ts +0 -10
- package/lib/types/_Sex.js +0 -11
- package/lib/types/_SimpleReferences.d.ts +0 -134
- package/lib/types/_SimpleReferences.js +0 -1
- package/lib/types/_SkillCheck.d.ts +0 -22
- package/lib/types/_SkillCheck.js +0 -13
- package/lib/types/_Spellwork.d.ts +0 -18
- package/lib/types/_Spellwork.js +0 -1
- package/lib/types/equipment/EquipmentPackage.d.ts +0 -51
- package/lib/types/equipment/EquipmentPackage.js +0 -12
- package/lib/types/equipment/item/Alchemicum.d.ts +0 -7
- package/lib/types/equipment/item/Alchemicum.js +0 -12
- package/lib/types/equipment/item/Ammunition.d.ts +0 -32
- package/lib/types/equipment/item/Ammunition.js +0 -12
- package/lib/types/equipment/item/Animal.d.ts +0 -19
- package/lib/types/equipment/item/Animal.js +0 -12
- package/lib/types/equipment/item/AnimalCare.d.ts +0 -49
- package/lib/types/equipment/item/AnimalCare.js +0 -12
- package/lib/types/equipment/item/Armor.d.ts +0 -186
- package/lib/types/equipment/item/Armor.js +0 -12
- package/lib/types/equipment/item/BandageOrRemedy.d.ts +0 -37
- package/lib/types/equipment/item/BandageOrRemedy.js +0 -12
- package/lib/types/equipment/item/Book.d.ts +0 -61
- package/lib/types/equipment/item/Book.js +0 -12
- package/lib/types/equipment/item/CeremonialItem.d.ts +0 -42
- package/lib/types/equipment/item/CeremonialItem.js +0 -12
- package/lib/types/equipment/item/Clothes.d.ts +0 -7
- package/lib/types/equipment/item/Clothes.js +0 -12
- package/lib/types/equipment/item/Container.d.ts +0 -7
- package/lib/types/equipment/item/Container.js +0 -12
- package/lib/types/equipment/item/Elixir.d.ts +0 -76
- package/lib/types/equipment/item/Elixir.js +0 -12
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +0 -29
- package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +0 -12
- package/lib/types/equipment/item/GemOrPreciousStone.d.ts +0 -44
- package/lib/types/equipment/item/GemOrPreciousStone.js +0 -12
- package/lib/types/equipment/item/IlluminationLightSource.d.ts +0 -63
- package/lib/types/equipment/item/IlluminationLightSource.js +0 -16
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +0 -7
- package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +0 -12
- package/lib/types/equipment/item/Jewelry.d.ts +0 -61
- package/lib/types/equipment/item/Jewelry.js +0 -12
- package/lib/types/equipment/item/Liebesspielzeug.d.ts +0 -7
- package/lib/types/equipment/item/Liebesspielzeug.js +0 -12
- package/lib/types/equipment/item/LuxuryGood.d.ts +0 -37
- package/lib/types/equipment/item/LuxuryGood.js +0 -12
- package/lib/types/equipment/item/MagicalArtifact.d.ts +0 -40
- package/lib/types/equipment/item/MagicalArtifact.js +0 -12
- package/lib/types/equipment/item/MusicalInstrument.d.ts +0 -23
- package/lib/types/equipment/item/MusicalInstrument.js +0 -12
- package/lib/types/equipment/item/OrienteeringAid.d.ts +0 -7
- package/lib/types/equipment/item/OrienteeringAid.js +0 -12
- package/lib/types/equipment/item/Poison.d.ts +0 -359
- package/lib/types/equipment/item/Poison.js +0 -30
- package/lib/types/equipment/item/RopeOrChain.d.ts +0 -7
- package/lib/types/equipment/item/RopeOrChain.js +0 -12
- package/lib/types/equipment/item/Stationary.d.ts +0 -7
- package/lib/types/equipment/item/Stationary.js +0 -12
- package/lib/types/equipment/item/ThievesTool.d.ts +0 -7
- package/lib/types/equipment/item/ThievesTool.js +0 -12
- package/lib/types/equipment/item/ToolOfTheTrade.d.ts +0 -61
- package/lib/types/equipment/item/ToolOfTheTrade.js +0 -12
- package/lib/types/equipment/item/TravelGearOrTool.d.ts +0 -7
- package/lib/types/equipment/item/TravelGearOrTool.js +0 -12
- package/lib/types/equipment/item/Vehicle.d.ts +0 -19
- package/lib/types/equipment/item/Vehicle.js +0 -12
- package/lib/types/equipment/item/Weapon.d.ts +0 -166
- package/lib/types/equipment/item/Weapon.js +0 -12
- package/lib/types/equipment/item/WeaponAccessory.d.ts +0 -7
- package/lib/types/equipment/item/WeaponAccessory.js +0 -12
- package/lib/types/equipment/item/_Herbary.d.ts +0 -31
- package/lib/types/equipment/item/_Herbary.js +0 -22
- package/lib/types/equipment/item/_Item.d.ts +0 -160
- package/lib/types/equipment/item/_Item.js +0 -1
- package/lib/types/equipment/item/_MeleeWeapon.d.ts +0 -108
- package/lib/types/equipment/item/_MeleeWeapon.js +0 -4
- package/lib/types/equipment/item/_RangedWeapon.d.ts +0 -109
- package/lib/types/equipment/item/_RangedWeapon.js +0 -4
- package/lib/types/equipment/item/_Weapon.d.ts +0 -57
- package/lib/types/equipment/item/_Weapon.js +0 -1
- package/lib/types/equipment/item/sub/ArmorType.d.ts +0 -37
- package/lib/types/equipment/item/sub/ArmorType.js +0 -12
- package/lib/types/equipment/item/sub/Reach.d.ts +0 -28
- package/lib/types/equipment/item/sub/Reach.js +0 -12
- package/lib/types/magicalActions/AnimistPower.d.ts +0 -238
- package/lib/types/magicalActions/AnimistPower.js +0 -12
- package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +0 -28
- package/lib/types/magicalActions/AnimistPower_Tribe.js +0 -12
- package/lib/types/magicalActions/Curse.d.ts +0 -162
- package/lib/types/magicalActions/Curse.js +0 -12
- package/lib/types/magicalActions/DominationRitual.d.ts +0 -145
- package/lib/types/magicalActions/DominationRitual.js +0 -12
- package/lib/types/magicalActions/ElvenMagicalSong.d.ts +0 -135
- package/lib/types/magicalActions/ElvenMagicalSong.js +0 -12
- package/lib/types/magicalActions/GeodeRitual.d.ts +0 -180
- package/lib/types/magicalActions/GeodeRitual.js +0 -12
- package/lib/types/magicalActions/JesterTrick.d.ts +0 -177
- package/lib/types/magicalActions/JesterTrick.js +0 -12
- package/lib/types/magicalActions/MagicalDance.d.ts +0 -119
- package/lib/types/magicalActions/MagicalDance.js +0 -12
- package/lib/types/magicalActions/MagicalMelody.d.ts +0 -124
- package/lib/types/magicalActions/MagicalMelody.js +0 -12
- package/lib/types/magicalActions/MagicalRune.d.ts +0 -294
- package/lib/types/magicalActions/MagicalRune.js +0 -12
- package/lib/types/magicalActions/ZibiljaRitual.d.ts +0 -102
- package/lib/types/magicalActions/ZibiljaRitual.js +0 -12
- package/lib/types/magicalActions/_MusicTradition.d.ts +0 -36
- package/lib/types/magicalActions/_MusicTradition.js +0 -10
- package/lib/types/magicalActions/_SkillReference.d.ts +0 -14
- package/lib/types/magicalActions/_SkillReference.js +0 -5
- package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +0 -10
- package/lib/types/prerequisites/ConditionalPrerequisites.js +0 -1
- package/lib/types/prerequisites/DisplayOption.d.ts +0 -32
- package/lib/types/prerequisites/DisplayOption.js +0 -1
- package/lib/types/prerequisites/PrerequisiteGroups.d.ts +0 -215
- package/lib/types/prerequisites/PrerequisiteGroups.js +0 -1
- package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +0 -31
- package/lib/types/prerequisites/single/ActivatablePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +0 -5
- package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +0 -26
- package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +0 -13
- package/lib/types/prerequisites/single/CulturePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +0 -39
- package/lib/types/prerequisites/single/EnhancementPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +0 -16
- package/lib/types/prerequisites/single/InfluencePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/PactPrerequisite.d.ts +0 -23
- package/lib/types/prerequisites/single/PactPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +0 -21
- package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +0 -5
- package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +0 -12
- package/lib/types/prerequisites/single/PublicationPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/RacePrerequisite.d.ts +0 -16
- package/lib/types/prerequisites/single/RacePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +0 -67
- package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +0 -6
- package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +0 -18
- package/lib/types/prerequisites/single/RatedPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +0 -19
- package/lib/types/prerequisites/single/RatedSumPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/RulePrerequisite.d.ts +0 -9
- package/lib/types/prerequisites/single/RulePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/SexPrerequisite.d.ts +0 -10
- package/lib/types/prerequisites/single/SexPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +0 -11
- package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +0 -5
- package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +0 -13
- package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +0 -1
- package/lib/types/prerequisites/single/StatePrerequisite.d.ts +0 -10
- package/lib/types/prerequisites/single/StatePrerequisite.js +0 -1
- package/lib/types/prerequisites/single/TextPrerequisite.d.ts +0 -55
- package/lib/types/prerequisites/single/TextPrerequisite.js +0 -10
- package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +0 -39
- package/lib/types/prerequisites/single/TraditionPrerequisite.js +0 -18
- package/lib/types/rule/CoreRule.d.ts +0 -312
- package/lib/types/rule/CoreRule.js +0 -17
- package/lib/types/rule/FocusRule.d.ts +0 -53
- package/lib/types/rule/FocusRule.js +0 -12
- package/lib/types/rule/FocusRule_Subject.d.ts +0 -29
- package/lib/types/rule/FocusRule_Subject.js +0 -12
- package/lib/types/rule/OptionalRule.d.ts +0 -41
- package/lib/types/rule/OptionalRule.js +0 -12
- package/lib/types/source/Publication.d.ts +0 -75
- package/lib/types/source/Publication.js +0 -22
- package/lib/types/source/_Erratum.d.ts +0 -26
- package/lib/types/source/_Erratum.js +0 -4
- package/lib/types/source/_PublicationRef.d.ts +0 -151
- package/lib/types/source/_PublicationRef.js +0 -4
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +0 -52
- package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +0 -12
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +0 -12
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +0 -12
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +0 -12
- package/lib/types/specialAbility/AncestorGlyph.d.ts +0 -38
- package/lib/types/specialAbility/AncestorGlyph.js +0 -12
- package/lib/types/specialAbility/BlessedTradition.d.ts +0 -147
- package/lib/types/specialAbility/BlessedTradition.js +0 -12
- package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/BrawlingSpecialAbility.js +0 -12
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +0 -40
- package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +0 -12
- package/lib/types/specialAbility/CombatSpecialAbility.d.ts +0 -45
- package/lib/types/specialAbility/CombatSpecialAbility.js +0 -12
- package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +0 -42
- package/lib/types/specialAbility/CombatStyleSpecialAbility.js +0 -12
- package/lib/types/specialAbility/CommandSpecialAbility.d.ts +0 -38
- package/lib/types/specialAbility/CommandSpecialAbility.js +0 -12
- package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +0 -32
- package/lib/types/specialAbility/FamiliarSpecialAbility.js +0 -12
- package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +0 -32
- package/lib/types/specialAbility/FatePointSexSpecialAbility.js +0 -12
- package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +0 -39
- package/lib/types/specialAbility/FatePointSpecialAbility.js +0 -12
- package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +0 -44
- package/lib/types/specialAbility/GeneralSpecialAbility.js +0 -12
- package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +0 -37
- package/lib/types/specialAbility/KarmaSpecialAbility.js +0 -12
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +0 -36
- package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +0 -12
- package/lib/types/specialAbility/LycantropicGift.d.ts +0 -32
- package/lib/types/specialAbility/LycantropicGift.js +0 -12
- package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +0 -36
- package/lib/types/specialAbility/MagicStyleSpecialAbility.js +0 -12
- package/lib/types/specialAbility/MagicalSign.d.ts +0 -39
- package/lib/types/specialAbility/MagicalSign.js +0 -12
- package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +0 -43
- package/lib/types/specialAbility/MagicalSpecialAbility.js +0 -12
- package/lib/types/specialAbility/MagicalTradition.d.ts +0 -114
- package/lib/types/specialAbility/MagicalTradition.js +0 -12
- package/lib/types/specialAbility/PactGift.d.ts +0 -103
- package/lib/types/specialAbility/PactGift.js +0 -22
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +0 -46
- package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +0 -12
- package/lib/types/specialAbility/Sermon.d.ts +0 -32
- package/lib/types/specialAbility/Sermon.js +0 -12
- package/lib/types/specialAbility/SexSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/SexSpecialAbility.js +0 -12
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +0 -37
- package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +0 -12
- package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +0 -34
- package/lib/types/specialAbility/SkillStyleSpecialAbility.js +0 -12
- package/lib/types/specialAbility/VampiricGift.d.ts +0 -37
- package/lib/types/specialAbility/VampiricGift.js +0 -12
- package/lib/types/specialAbility/Vision.d.ts +0 -32
- package/lib/types/specialAbility/Vision.js +0 -12
- package/lib/types/specialAbility/_Tradition.d.ts +0 -12
- package/lib/types/specialAbility/_Tradition.js +0 -1
- package/lib/types/specialAbility/sub/Language.d.ts +0 -117
- package/lib/types/specialAbility/sub/Language.js +0 -12
- package/lib/types/specialAbility/sub/Script.d.ts +0 -60
- package/lib/types/specialAbility/sub/Script.js +0 -12
- package/lib/types/specialAbility/sub/TradeSecret.d.ts +0 -48
- package/lib/types/specialAbility/sub/TradeSecret.js +0 -12
- package/lib/types/specialAbility/sub/_LanguageScript.d.ts +0 -11
- package/lib/types/specialAbility/sub/_LanguageScript.js +0 -1
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/AttireEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/BowlEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +0 -61
- package/lib/types/traditionArtifacts/CauldronEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/ChronicleEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/DaggerRitual.d.ts +0 -71
- package/lib/types/traditionArtifacts/DaggerRitual.js +0 -12
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/InstrumentEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +0 -47
- package/lib/types/traditionArtifacts/Krallenkettenzauber.js +0 -12
- package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/OrbEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/RingEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/RingEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/SickleRitual.d.ts +0 -47
- package/lib/types/traditionArtifacts/SickleRitual.js +0 -12
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +0 -52
- package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +0 -57
- package/lib/types/traditionArtifacts/StaffEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/ToyEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +0 -47
- package/lib/types/traditionArtifacts/Trinkhornzauber.js +0 -12
- package/lib/types/traditionArtifacts/WandEnchantment.d.ts +0 -42
- package/lib/types/traditionArtifacts/WandEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +0 -47
- package/lib/types/traditionArtifacts/WeaponEnchantment.js +0 -12
- package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +0 -52
- package/lib/types/traditionArtifacts/sub/AnimalShape.js +0 -12
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +0 -28
- package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +0 -12
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +0 -40
- package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +0 -12
- package/lib/types/traditionArtifacts/sub/Brew.d.ts +0 -28
- package/lib/types/traditionArtifacts/sub/Brew.js +0 -12
- package/lib/validation/builders/integrity.d.ts +0 -57
- package/lib/validation/builders/integrity.js +0 -44
- package/lib/validation/builders/naming.d.ts +0 -13
- package/lib/validation/builders/naming.js +0 -14
- package/lib/validation/builders/schema.d.ts +0 -31
- package/lib/validation/builders/schema.js +0 -32
- package/lib/validation/filename.d.ts +0 -9
- package/lib/validation/filename.js +0 -10
- package/lib/validation/raw.d.ts +0 -9
- package/lib/validation/raw.js +0 -55
- package/lib/validation/schema.d.ts +0 -6
- package/lib/validation/schema.js +0 -33
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { printPathDescriptor } from "../../helpers/objectPath.js";
|
|
2
|
-
import { Result } from "../../helpers/result.js";
|
|
3
|
-
import { config } from "../../types/Locale.js";
|
|
4
|
-
const integrityError = (instancePath, message) => ({
|
|
5
|
-
keyword: "integrity",
|
|
6
|
-
instancePath: printPathDescriptor(instancePath),
|
|
7
|
-
message
|
|
8
|
-
});
|
|
9
|
-
/**
|
|
10
|
-
* Returns an error if the condition evaluates to `false`.
|
|
11
|
-
*/
|
|
12
|
-
const conditionalError = (condition, instancePath, message) => condition ? Result.ok(undefined) : Result.error([integrityError(instancePath, message)]);
|
|
13
|
-
export const getReferencialIntegrityErrors = (ids, typeName, existsId, pathToData) => {
|
|
14
|
-
const errors = ids
|
|
15
|
-
.filter(id => !existsId(id))
|
|
16
|
-
.map(id => integrityError(pathToData, `The identifier "${id}" for type ${typeName} does not exist.`));
|
|
17
|
-
if (errors.length > 0) {
|
|
18
|
-
return Result.error(errors);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
return Result.ok(undefined);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
export const getReferencialIntegrityErrorsForTranslatable = (validators, data, pathToData = []) => getReferencialIntegrityErrors(Object.keys(data.translations), config.name, validators.identity.locales.exists, [...pathToData, { k: "translations" }]);
|
|
25
|
-
/**
|
|
26
|
-
* Validates that a given identifier is unique. If the identifier is present in
|
|
27
|
-
* both the file name and the file contents, their equality is validated as
|
|
28
|
-
* well. The `pathToId` parameter is used to identify the location of the
|
|
29
|
-
* identifier in the file contents.
|
|
30
|
-
*/
|
|
31
|
-
export const validateEntityIntegrity = (isUnique, filenameId, dataId, pathToId = [{ k: "id" }]) => reduceIntegrityValidationResults(conditionalError(isUnique(filenameId), [], `The identifier "${filenameId}" is not unique.`), conditionalError(dataId === undefined || filenameId === dataId, pathToId, `The identifier in the filename (${JSON.stringify(filenameId)}) and the identifier (${JSON.stringify(dataId)}) in the file itself are not equal.`));
|
|
32
|
-
/**
|
|
33
|
-
* Warns about missing integrity validation, but returns no errors.
|
|
34
|
-
* @param typeName The name of the type that is not being validated.
|
|
35
|
-
* @returns An empty list of errors.
|
|
36
|
-
*/
|
|
37
|
-
export const todo = (typeName) => {
|
|
38
|
-
console.warn(`The type ${typeName} has no integrity validation yet.`);
|
|
39
|
-
return () => Result.ok(undefined);
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Combines multiple integrity validation results into one.
|
|
43
|
-
*/
|
|
44
|
-
export const reduceIntegrityValidationResults = (...results) => results.reduce((acc, result) => Result.combine(acc, result, () => undefined, (a, b) => [...a, ...b]), Result.ok(undefined));
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Result } from "../../helpers/result.js";
|
|
2
|
-
/**
|
|
3
|
-
* An error in the shape of an `Ajv` error, with `keyword` being the
|
|
4
|
-
* discriminating property.
|
|
5
|
-
*/
|
|
6
|
-
export type FileNameError = {
|
|
7
|
-
keyword: "filename";
|
|
8
|
-
instancePath: string;
|
|
9
|
-
message: string;
|
|
10
|
-
};
|
|
11
|
-
export type FileNameValidationResult = Result<void, FileNameError[]>;
|
|
12
|
-
export type FileNameValidator = (filePath: string) => FileNameValidationResult;
|
|
13
|
-
export declare const validateFileName: FileNameValidator;
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { default as AjvModule, DefinedError } from "ajv";
|
|
2
|
-
import { Result } from "../../helpers/result.js";
|
|
3
|
-
type Ajv = AjvModule.default;
|
|
4
|
-
export type SchemaError = DefinedError;
|
|
5
|
-
/**
|
|
6
|
-
* The result of validating a single file. Either the valid data or validation
|
|
7
|
-
* errors.
|
|
8
|
-
*/
|
|
9
|
-
export type SchemaValidationResult<T> = Result<T, SchemaError[]>;
|
|
10
|
-
/**
|
|
11
|
-
* A function that validates `data` at a specific `filePath` to be of type `T`
|
|
12
|
-
* using a specified `validator`.
|
|
13
|
-
*/
|
|
14
|
-
export type SchemaValidator<T> = (validator: Ajv, data: unknown, filePath: string) => SchemaValidationResult<T>;
|
|
15
|
-
/**
|
|
16
|
-
* Options for creating a `TypeValidator`.
|
|
17
|
-
*/
|
|
18
|
-
export type SchemaValidatorOptions = {
|
|
19
|
-
ignoreFileNamePattern?: boolean;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Creates a type validator based on the URL of the type definition source file
|
|
23
|
-
* and options. The source file URL is used to derive it’s corresponding schema
|
|
24
|
-
* location.
|
|
25
|
-
* @param importMetaUrl The `import.meta.url` value of the type definition
|
|
26
|
-
* source file.
|
|
27
|
-
* @param options
|
|
28
|
-
* @returns
|
|
29
|
-
*/
|
|
30
|
-
export declare const createSchemaValidator: <T>(importMetaUrl: string, options?: SchemaValidatorOptions) => SchemaValidator<T>;
|
|
31
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { basename, relative, sep } from "path";
|
|
2
|
-
import { fileURLToPath } from "url";
|
|
3
|
-
import { libDir } from "../../../build/config.js";
|
|
4
|
-
import { changeFileExtension } from "../../helpers/io.js";
|
|
5
|
-
import { error, ok } from "../../helpers/result.js";
|
|
6
|
-
const schemaIdFromSourcePath = (sourcePath) => {
|
|
7
|
-
const relativePathOfType = relative(libDir, fileURLToPath(sourcePath));
|
|
8
|
-
const relativePathOfSchema = changeFileExtension(relativePathOfType, ".schema.json");
|
|
9
|
-
return "/" + relativePathOfSchema.split(sep).join("/");
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Creates a type validator based on the URL of the type definition source file
|
|
13
|
-
* and options. The source file URL is used to derive it’s corresponding schema
|
|
14
|
-
* location.
|
|
15
|
-
* @param importMetaUrl The `import.meta.url` value of the type definition
|
|
16
|
-
* source file.
|
|
17
|
-
* @param options
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
export const createSchemaValidator = (importMetaUrl, options = {}) => {
|
|
21
|
-
const { ignoreFileNamePattern = false } = options;
|
|
22
|
-
const schemaId = schemaIdFromSourcePath(importMetaUrl);
|
|
23
|
-
return (validator, data, filePath) => {
|
|
24
|
-
const fileName = basename(filePath);
|
|
25
|
-
if (validator.validate(schemaId, data)) {
|
|
26
|
-
return ok(data);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
return error(validator.errors ?? []);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the numeric prefix of a filename, that is, the part before the first
|
|
3
|
-
* underscore.
|
|
4
|
-
*/
|
|
5
|
-
export declare const getFIlenamePrefixAsNumericId: (_data: {}, filepath: string) => number;
|
|
6
|
-
/**
|
|
7
|
-
* Returns the filename without the extension.
|
|
8
|
-
*/
|
|
9
|
-
export declare const getFilenameAsStringId: (_data: {}, filepath: string) => string;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { basename, extname } from "node:path";
|
|
2
|
-
/**
|
|
3
|
-
* Returns the numeric prefix of a filename, that is, the part before the first
|
|
4
|
-
* underscore.
|
|
5
|
-
*/
|
|
6
|
-
export const getFIlenamePrefixAsNumericId = (_data, filepath) => Number.parseInt(/^(\d+?)_/.exec(basename(filepath))?.[1] ?? "", 10);
|
|
7
|
-
/**
|
|
8
|
-
* Returns the filename without the extension.
|
|
9
|
-
*/
|
|
10
|
-
export const getFilenameAsStringId = (_data, filepath) => basename(filepath, extname(filepath));
|
package/lib/validation/raw.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TypeMap } from "../config.js";
|
|
2
|
-
import "../helpers/array.js";
|
|
3
|
-
import { Result } from "../helpers/result.js";
|
|
4
|
-
import { EntityDirectoryPaths, TypeValidationError, ValidationOptions } from "../main.js";
|
|
5
|
-
import { TypeId } from "../typeConfig.js";
|
|
6
|
-
export type TypeIdPair<K extends keyof TypeMap> = [id: TypeId<K>, data: TypeMap[K]];
|
|
7
|
-
export type TypeValidationResult<K extends keyof TypeMap> = Result<TypeIdPair<K>, TypeValidationError[]>;
|
|
8
|
-
export type TypeValidationResultsByType = [keyof TypeMap, [filePath: string, result: TypeValidationResult<keyof TypeMap>][]][];
|
|
9
|
-
export declare const getRawValidationResults: (entityDirectoryPaths: EntityDirectoryPaths, options?: ValidationOptions) => Promise<TypeValidationResultsByType>;
|
package/lib/validation/raw.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { readdir } from "fs/promises";
|
|
2
|
-
import { join } from "path";
|
|
3
|
-
import { jsonSchemaDir, jsonSchemaSpec } from "../../build/config.js";
|
|
4
|
-
import { configMap } from "../config.js";
|
|
5
|
-
import "../helpers/array.js";
|
|
6
|
-
import { collator } from "../helpers/i18n.js";
|
|
7
|
-
import { isHiddenFileName, readYamlFile } from "../helpers/io.js";
|
|
8
|
-
import { mapSecond, mapSecondAsync, mapToSecondAsync } from "../helpers/pair.js";
|
|
9
|
-
import { Result, isOk } from "../helpers/result.js";
|
|
10
|
-
import { validateFileName } from "./builders/naming.js";
|
|
11
|
-
import { getPreparedSchemaValidator } from "./schema.js";
|
|
12
|
-
const getFiles = async (path) => (await readdir(path))
|
|
13
|
-
.sort(collator.compare)
|
|
14
|
-
.filter(isHiddenFileName)
|
|
15
|
-
.map(fileName => join(path, fileName))
|
|
16
|
-
.map(mapToSecondAsync(async (filePath) => {
|
|
17
|
-
try {
|
|
18
|
-
return await readYamlFile(filePath);
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
if (error instanceof Error) {
|
|
22
|
-
error.message = `in "${filePath}":\n ${error.message}`;
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
}))
|
|
27
|
-
.promiseAll();
|
|
28
|
-
const validateStructuralIntegrityOfFiles = (validator, typeConfig, validateFileName, files) => files.map(mapSecond((data, path) => {
|
|
29
|
-
const schemaValidationResult = typeConfig.schemaValidator(validator, data, path);
|
|
30
|
-
const fileNameValidationResult = validateFileName(path);
|
|
31
|
-
return Result.map(Result.combine(schemaValidationResult, fileNameValidationResult, (data, _) => data, (schemaErrors, fileNameErrors) => [...schemaErrors, ...fileNameErrors]), data => [typeConfig.id(data, path), data]);
|
|
32
|
-
}));
|
|
33
|
-
const validateSemanticAndReferencialIntegrityOfFiles = (validators, typeConfig, results) => results.map(mapSecond((res, path) => Result.reduce(res, ([id, data]) => Result.map(typeConfig.integrityValidator(validators, data, path), () => [id, data]), errors => Result.error(errors))));
|
|
34
|
-
export const getRawValidationResults = async (entityDirectoryPaths, options = {}) => {
|
|
35
|
-
const { checkIntegrity = false } = options;
|
|
36
|
-
const validator = await getPreparedSchemaValidator(jsonSchemaSpec, {}, jsonSchemaDir);
|
|
37
|
-
const entityDirectoryPathEntries = Object.entries(entityDirectoryPaths);
|
|
38
|
-
const structuralIntegrityResults = await Promise.all(entityDirectoryPathEntries.map(mapSecondAsync(async (path, typeName) => {
|
|
39
|
-
const files = await getFiles(path);
|
|
40
|
-
return validateStructuralIntegrityOfFiles(validator, configMap[typeName], validateFileName, files);
|
|
41
|
-
})));
|
|
42
|
-
if (checkIntegrity) {
|
|
43
|
-
const identityIntegrityValidators = Object.fromEntries(structuralIntegrityResults.map(mapSecond(results => {
|
|
44
|
-
const idCount = results.reduce((mp, [_, result]) => isOk(result) ? mp.set(result.value[0], (mp.get(result.value[0]) ?? 0) + 1) : mp, new Map());
|
|
45
|
-
return {
|
|
46
|
-
isUnique: (id) => (idCount.get(id) ?? 0) === 1,
|
|
47
|
-
exists: (id) => idCount.has(id),
|
|
48
|
-
};
|
|
49
|
-
})));
|
|
50
|
-
return structuralIntegrityResults.map(mapSecond((results, typeName) => validateSemanticAndReferencialIntegrityOfFiles({ identity: identityIntegrityValidators }, configMap[typeName], results)));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return structuralIntegrityResults;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import AjvModule from "ajv";
|
|
2
|
-
import Ajv2019Module from "ajv/dist/2019.js";
|
|
3
|
-
import Ajv2020Module from "ajv/dist/2020.js";
|
|
4
|
-
import { JsonSchemaSpec } from "optolith-tsjsonschemamd/renderers";
|
|
5
|
-
import "../helpers/array.js";
|
|
6
|
-
export declare const getPreparedSchemaValidator: (jsonSchemaSpec: JsonSchemaSpec, validatorOptions: AjvModule.Options | undefined, jsonSchemaDir: string) => Promise<Ajv2019Module.default | Ajv2020Module.default>;
|
package/lib/validation/schema.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import addFormatsModule from "ajv-formats";
|
|
2
|
-
import Ajv2019Module from "ajv/dist/2019.js";
|
|
3
|
-
import Ajv2020Module from "ajv/dist/2020.js";
|
|
4
|
-
import { JsonSchemaSpec } from "optolith-tsjsonschemamd/renderers";
|
|
5
|
-
import "../helpers/array.js";
|
|
6
|
-
import { isHiddenFileName, readDirectoryRec, readJsonFile } from "../helpers/io.js";
|
|
7
|
-
import { assertExhaustive } from "../helpers/typeSafety.js";
|
|
8
|
-
const Ajv2019 = Ajv2019Module.default;
|
|
9
|
-
const Ajv2020 = Ajv2020Module.default;
|
|
10
|
-
const addFormats = addFormatsModule.default;
|
|
11
|
-
const createSchemaValidator = (jsonSchemaSpec, validatorOptions = {}) => {
|
|
12
|
-
switch (jsonSchemaSpec) {
|
|
13
|
-
case JsonSchemaSpec.Draft_07:
|
|
14
|
-
case JsonSchemaSpec.Draft_2019_09:
|
|
15
|
-
return new Ajv2019(validatorOptions);
|
|
16
|
-
case JsonSchemaSpec.Draft_2020_12:
|
|
17
|
-
return new Ajv2020(validatorOptions);
|
|
18
|
-
default:
|
|
19
|
-
assertExhaustive(jsonSchemaSpec);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const registerAllJsonSchemaDocuments = async (jsonSchemaDir, validator) => {
|
|
23
|
-
for await (const jsonSchemaPath of readDirectoryRec(jsonSchemaDir, isHiddenFileName)) {
|
|
24
|
-
const jsonSchema = await readJsonFile(jsonSchemaPath);
|
|
25
|
-
validator.addSchema(jsonSchema);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
export const getPreparedSchemaValidator = async (jsonSchemaSpec, validatorOptions = {}, jsonSchemaDir) => {
|
|
29
|
-
const validator = createSchemaValidator(jsonSchemaSpec, validatorOptions);
|
|
30
|
-
await registerAllJsonSchemaDocuments(jsonSchemaDir, validator);
|
|
31
|
-
addFormats(validator);
|
|
32
|
-
return validator;
|
|
33
|
-
};
|