playlist-data-engine 1.1.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/LICENSE +21 -0
- package/README.md +352 -0
- package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
- package/dist/constants/DefaultClasses.d.ts +46 -0
- package/dist/constants/DefaultClasses.d.ts.map +1 -0
- package/dist/constants/DefaultEnchantments.d.ts +337 -0
- package/dist/constants/DefaultEnchantments.d.ts.map +1 -0
- package/dist/constants/DefaultEnemies.d.ts +83 -0
- package/dist/constants/DefaultEnemies.d.ts.map +1 -0
- package/dist/constants/DefaultEquipment.d.ts +23 -0
- package/dist/constants/DefaultEquipment.d.ts.map +1 -0
- package/dist/constants/DefaultFeatures.d.ts +22 -0
- package/dist/constants/DefaultFeatures.d.ts.map +1 -0
- package/dist/constants/DefaultRaces.d.ts +102 -0
- package/dist/constants/DefaultRaces.d.ts.map +1 -0
- package/dist/constants/DefaultSkills.d.ts +26 -0
- package/dist/constants/DefaultSkills.d.ts.map +1 -0
- package/dist/constants/DefaultSpells.d.ts +41 -0
- package/dist/constants/DefaultSpells.d.ts.map +1 -0
- package/dist/constants/EncounterBalance.d.ts +208 -0
- package/dist/constants/EncounterBalance.d.ts.map +1 -0
- package/dist/constants/EnemyEquipment.d.ts +71 -0
- package/dist/constants/EnemyEquipment.d.ts.map +1 -0
- package/dist/constants/EnemyRarity.d.ts +79 -0
- package/dist/constants/EnemyRarity.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Construct.d.ts +63 -0
- package/dist/constants/EnemyTemplates/Construct.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Dragon.d.ts +68 -0
- package/dist/constants/EnemyTemplates/Dragon.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Elemental.d.ts +64 -0
- package/dist/constants/EnemyTemplates/Elemental.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Fiend.d.ts +62 -0
- package/dist/constants/EnemyTemplates/Fiend.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Monstrosity.d.ts +63 -0
- package/dist/constants/EnemyTemplates/Monstrosity.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Undead.d.ts +61 -0
- package/dist/constants/EnemyTemplates/Undead.d.ts.map +1 -0
- package/dist/constants/ItemTemplates.d.ts +40 -0
- package/dist/constants/ItemTemplates.d.ts.map +1 -0
- package/dist/constants/MagicItems.d.ts +30 -0
- package/dist/constants/MagicItems.d.ts.map +1 -0
- package/dist/constants/SpellSlots.d.ts +30 -0
- package/dist/constants/SpellSlots.d.ts.map +1 -0
- package/dist/constants/StatScaling.d.ts +113 -0
- package/dist/constants/StatScaling.d.ts.map +1 -0
- package/dist/core/analysis/AudioAnalyzer.d.ts +599 -0
- package/dist/core/analysis/AudioAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/ColorExtractor.d.ts +64 -0
- package/dist/core/analysis/ColorExtractor.d.ts.map +1 -0
- package/dist/core/analysis/EssentiaPitchDetector.d.ts +282 -0
- package/dist/core/analysis/EssentiaPitchDetector.d.ts.map +1 -0
- package/dist/core/analysis/LevelSerializer.d.ts +265 -0
- package/dist/core/analysis/LevelSerializer.d.ts.map +1 -0
- package/dist/core/analysis/MelodyContourAnalyzer.d.ts +283 -0
- package/dist/core/analysis/MelodyContourAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/MultiBandAnalyzer.d.ts +214 -0
- package/dist/core/analysis/MultiBandAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/MusicClassifier.d.ts +524 -0
- package/dist/core/analysis/MusicClassifier.d.ts.map +1 -0
- package/dist/core/analysis/PitchAnalyzer.d.ts +266 -0
- package/dist/core/analysis/PitchAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/PitchDetector.d.ts +251 -0
- package/dist/core/analysis/PitchDetector.d.ts.map +1 -0
- package/dist/core/analysis/SpectrumScanner.d.ts +52 -0
- package/dist/core/analysis/SpectrumScanner.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatInterpolator.d.ts +477 -0
- package/dist/core/analysis/beat/BeatInterpolator.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatMapGenerator.d.ts +170 -0
- package/dist/core/analysis/beat/BeatMapGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatStream.d.ts +316 -0
- package/dist/core/analysis/beat/BeatStream.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatSubdivider.d.ts +205 -0
- package/dist/core/analysis/beat/BeatSubdivider.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatTracker.d.ts +137 -0
- package/dist/core/analysis/beat/BeatTracker.d.ts.map +1 -0
- package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts +180 -0
- package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/DensityAnalyzer.d.ts +246 -0
- package/dist/core/analysis/beat/DensityAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts +1082 -0
- package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/GrooveAnalyzer.d.ts +192 -0
- package/dist/core/analysis/beat/GrooveAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts +133 -0
- package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts.map +1 -0
- package/dist/core/analysis/beat/PhraseAnalyzer.d.ts +230 -0
- package/dist/core/analysis/beat/PhraseAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/RhythmQuantizer.d.ts +399 -0
- package/dist/core/analysis/beat/RhythmQuantizer.d.ts.map +1 -0
- package/dist/core/analysis/beat/RhythmicBalancer.d.ts +262 -0
- package/dist/core/analysis/beat/RhythmicBalancer.d.ts.map +1 -0
- package/dist/core/analysis/beat/StreamScorer.d.ts +275 -0
- package/dist/core/analysis/beat/StreamScorer.d.ts.map +1 -0
- package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts +256 -0
- package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts.map +1 -0
- package/dist/core/analysis/beat/TempoDetector.d.ts +220 -0
- package/dist/core/analysis/beat/TempoDetector.d.ts.map +1 -0
- package/dist/core/analysis/beat/TransientDetector.d.ts +303 -0
- package/dist/core/analysis/beat/TransientDetector.d.ts.map +1 -0
- package/dist/core/analysis/beat/beatKeyHelpers.d.ts +180 -0
- package/dist/core/analysis/beat/beatKeyHelpers.d.ts.map +1 -0
- package/dist/core/analysis/beat/index.d.ts +41 -0
- package/dist/core/analysis/beat/index.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/audioUtils.d.ts +204 -0
- package/dist/core/analysis/beat/utils/audioUtils.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts +404 -0
- package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts +61 -0
- package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts +33 -0
- package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts.map +1 -0
- package/dist/core/analysis/index.d.ts +18 -0
- package/dist/core/analysis/index.d.ts.map +1 -0
- package/dist/core/combat/AI/AICombatRunner.d.ts +108 -0
- package/dist/core/combat/AI/AICombatRunner.d.ts.map +1 -0
- package/dist/core/combat/AI/CombatAI.d.ts +179 -0
- package/dist/core/combat/AI/CombatAI.d.ts.map +1 -0
- package/dist/core/combat/AI/CombatMetricsTracker.d.ts +30 -0
- package/dist/core/combat/AI/CombatMetricsTracker.d.ts.map +1 -0
- package/dist/core/combat/Analysis/BalanceValidator.d.ts +170 -0
- package/dist/core/combat/Analysis/BalanceValidator.d.ts.map +1 -0
- package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts +231 -0
- package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts.map +1 -0
- package/dist/core/combat/Analysis/DifficultyCalculator.d.ts +203 -0
- package/dist/core/combat/Analysis/DifficultyCalculator.d.ts.map +1 -0
- package/dist/core/combat/Analysis/ParameterSweep.d.ts +201 -0
- package/dist/core/combat/Analysis/ParameterSweep.d.ts.map +1 -0
- package/dist/core/combat/AttackResolver.d.ts +220 -0
- package/dist/core/combat/AttackResolver.d.ts.map +1 -0
- package/dist/core/combat/CombatEngine.d.ts +388 -0
- package/dist/core/combat/CombatEngine.d.ts.map +1 -0
- package/dist/core/combat/DiceRoller.d.ts +115 -0
- package/dist/core/combat/DiceRoller.d.ts.map +1 -0
- package/dist/core/combat/InitiativeRoller.d.ts +62 -0
- package/dist/core/combat/InitiativeRoller.d.ts.map +1 -0
- package/dist/core/combat/PartyAnalyzer.d.ts +215 -0
- package/dist/core/combat/PartyAnalyzer.d.ts.map +1 -0
- package/dist/core/combat/SeededDiceRoller.d.ts +120 -0
- package/dist/core/combat/SeededDiceRoller.d.ts.map +1 -0
- package/dist/core/combat/Simulation/CombatSimulator.d.ts +366 -0
- package/dist/core/combat/Simulation/CombatSimulator.d.ts.map +1 -0
- package/dist/core/combat/SpellCaster.d.ts +113 -0
- package/dist/core/combat/SpellCaster.d.ts.map +1 -0
- package/dist/core/config/index.d.ts +24 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/progressionConfig.d.ts +73 -0
- package/dist/core/config/progressionConfig.d.ts.map +1 -0
- package/dist/core/config/sensorConfig.d.ts +134 -0
- package/dist/core/config/sensorConfig.d.ts.map +1 -0
- package/dist/core/equipment/BoxOpener.d.ts +175 -0
- package/dist/core/equipment/BoxOpener.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentEffectApplier.d.ts +189 -0
- package/dist/core/equipment/EquipmentEffectApplier.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentModifier.d.ts +327 -0
- package/dist/core/equipment/EquipmentModifier.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentSpawnHelper.d.ts +246 -0
- package/dist/core/equipment/EquipmentSpawnHelper.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentValidator.d.ts +173 -0
- package/dist/core/equipment/EquipmentValidator.d.ts.map +1 -0
- package/dist/core/extensions/ExtensionManager.d.ts +517 -0
- package/dist/core/extensions/ExtensionManager.d.ts.map +1 -0
- package/dist/core/extensions/WeightedSelector.d.ts +156 -0
- package/dist/core/extensions/WeightedSelector.d.ts.map +1 -0
- package/dist/core/extensions/index.d.ts +11 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/initializeDefaults.d.ts +170 -0
- package/dist/core/extensions/initializeDefaults.d.ts.map +1 -0
- package/dist/core/features/FeatureEffectApplier.d.ts +102 -0
- package/dist/core/features/FeatureEffectApplier.d.ts.map +1 -0
- package/dist/core/features/FeatureQuery.d.ts +368 -0
- package/dist/core/features/FeatureQuery.d.ts.map +1 -0
- package/dist/core/features/FeatureTypes.d.ts +199 -0
- package/dist/core/features/FeatureTypes.d.ts.map +1 -0
- package/dist/core/features/FeatureValidator.d.ts +149 -0
- package/dist/core/features/FeatureValidator.d.ts.map +1 -0
- package/dist/core/features/index.d.ts +12 -0
- package/dist/core/features/index.d.ts.map +1 -0
- package/dist/core/generation/AbilityScoreCalculator.d.ts +83 -0
- package/dist/core/generation/AbilityScoreCalculator.d.ts.map +1 -0
- package/dist/core/generation/AppearanceGenerator.d.ts +32 -0
- package/dist/core/generation/AppearanceGenerator.d.ts.map +1 -0
- package/dist/core/generation/BeatConverter.d.ts +127 -0
- package/dist/core/generation/BeatConverter.d.ts.map +1 -0
- package/dist/core/generation/ButtonMapper.d.ts +346 -0
- package/dist/core/generation/ButtonMapper.d.ts.map +1 -0
- package/dist/core/generation/ButtonPatternLibrary.d.ts +92 -0
- package/dist/core/generation/ButtonPatternLibrary.d.ts.map +1 -0
- package/dist/core/generation/CRLevelConverter.d.ts +242 -0
- package/dist/core/generation/CRLevelConverter.d.ts.map +1 -0
- package/dist/core/generation/CharacterGenerator.d.ts +194 -0
- package/dist/core/generation/CharacterGenerator.d.ts.map +1 -0
- package/dist/core/generation/ClassSuggester.d.ts +184 -0
- package/dist/core/generation/ClassSuggester.d.ts.map +1 -0
- package/dist/core/generation/EnemyEquipmentGenerator.d.ts +151 -0
- package/dist/core/generation/EnemyEquipmentGenerator.d.ts.map +1 -0
- package/dist/core/generation/EnemyGenerator.d.ts +595 -0
- package/dist/core/generation/EnemyGenerator.d.ts.map +1 -0
- package/dist/core/generation/EquipmentGenerator.d.ts +204 -0
- package/dist/core/generation/EquipmentGenerator.d.ts.map +1 -0
- package/dist/core/generation/LegendaryGenerator.d.ts +213 -0
- package/dist/core/generation/LegendaryGenerator.d.ts.map +1 -0
- package/dist/core/generation/LevelGenerator.d.ts +390 -0
- package/dist/core/generation/LevelGenerator.d.ts.map +1 -0
- package/dist/core/generation/NamingEngine.d.ts +136 -0
- package/dist/core/generation/NamingEngine.d.ts.map +1 -0
- package/dist/core/generation/PitchBeatLinker.d.ts +150 -0
- package/dist/core/generation/PitchBeatLinker.d.ts.map +1 -0
- package/dist/core/generation/RaceSelector.d.ts +58 -0
- package/dist/core/generation/RaceSelector.d.ts.map +1 -0
- package/dist/core/generation/RhythmGenerator.d.ts +597 -0
- package/dist/core/generation/RhythmGenerator.d.ts.map +1 -0
- package/dist/core/generation/SkillAssigner.d.ts +78 -0
- package/dist/core/generation/SkillAssigner.d.ts.map +1 -0
- package/dist/core/generation/SpellManager.d.ts +132 -0
- package/dist/core/generation/SpellManager.d.ts.map +1 -0
- package/dist/core/generation/SpellcastingGenerator.d.ts +255 -0
- package/dist/core/generation/SpellcastingGenerator.d.ts.map +1 -0
- package/dist/core/generation/index.d.ts +41 -0
- package/dist/core/generation/index.d.ts.map +1 -0
- package/dist/core/parser/MetadataExtractor.d.ts +66 -0
- package/dist/core/parser/MetadataExtractor.d.ts.map +1 -0
- package/dist/core/parser/PlaylistParser.d.ts +45 -0
- package/dist/core/parser/PlaylistParser.d.ts.map +1 -0
- package/dist/core/playback/SubdivisionPlaybackController.d.ts +333 -0
- package/dist/core/playback/SubdivisionPlaybackController.d.ts.map +1 -0
- package/dist/core/playback/index.d.ts +5 -0
- package/dist/core/playback/index.d.ts.map +1 -0
- package/dist/core/progression/CharacterUpdater.d.ts +203 -0
- package/dist/core/progression/CharacterUpdater.d.ts.map +1 -0
- package/dist/core/progression/LevelUpProcessor.d.ts +234 -0
- package/dist/core/progression/LevelUpProcessor.d.ts.map +1 -0
- package/dist/core/progression/PrestigeSystem.d.ts +217 -0
- package/dist/core/progression/PrestigeSystem.d.ts.map +1 -0
- package/dist/core/progression/RhythmXPCalculator.d.ts +182 -0
- package/dist/core/progression/RhythmXPCalculator.d.ts.map +1 -0
- package/dist/core/progression/SessionTracker.d.ts +169 -0
- package/dist/core/progression/SessionTracker.d.ts.map +1 -0
- package/dist/core/progression/XPCalculator.d.ts +128 -0
- package/dist/core/progression/XPCalculator.d.ts.map +1 -0
- package/dist/core/progression/stat/StatIncreaseStrategy.d.ts +97 -0
- package/dist/core/progression/stat/StatIncreaseStrategy.d.ts.map +1 -0
- package/dist/core/progression/stat/StatManager.d.ts +179 -0
- package/dist/core/progression/stat/StatManager.d.ts.map +1 -0
- package/dist/core/sensors/EnvironmentalSensors.d.ts +301 -0
- package/dist/core/sensors/EnvironmentalSensors.d.ts.map +1 -0
- package/dist/core/sensors/GamingPlatformSensors.d.ts +162 -0
- package/dist/core/sensors/GamingPlatformSensors.d.ts.map +1 -0
- package/dist/core/sensors/GeolocationProvider.d.ts +156 -0
- package/dist/core/sensors/GeolocationProvider.d.ts.map +1 -0
- package/dist/core/sensors/MotionDetector.d.ts +58 -0
- package/dist/core/sensors/MotionDetector.d.ts.map +1 -0
- package/dist/core/sensors/SteamAPIClient.d.ts +108 -0
- package/dist/core/sensors/SteamAPIClient.d.ts.map +1 -0
- package/dist/core/sensors/WeatherAPIClient.d.ts +360 -0
- package/dist/core/sensors/WeatherAPIClient.d.ts.map +1 -0
- package/dist/core/sensors/schemas/weather.schema.d.ts +144 -0
- package/dist/core/sensors/schemas/weather.schema.d.ts.map +1 -0
- package/dist/core/skills/SkillQuery.d.ts +159 -0
- package/dist/core/skills/SkillQuery.d.ts.map +1 -0
- package/dist/core/skills/SkillTypes.d.ts +233 -0
- package/dist/core/skills/SkillTypes.d.ts.map +1 -0
- package/dist/core/skills/SkillValidator.d.ts +146 -0
- package/dist/core/skills/SkillValidator.d.ts.map +1 -0
- package/dist/core/skills/index.d.ts +11 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/spells/SpellQuery.d.ts +194 -0
- package/dist/core/spells/SpellQuery.d.ts.map +1 -0
- package/dist/core/spells/SpellTypes.d.ts +71 -0
- package/dist/core/spells/SpellTypes.d.ts.map +1 -0
- package/dist/core/spells/SpellValidator.d.ts +129 -0
- package/dist/core/spells/SpellValidator.d.ts.map +1 -0
- package/dist/core/spells/index.d.ts +11 -0
- package/dist/core/spells/index.d.ts.map +1 -0
- package/dist/core/types/AudioProfile.d.ts +143 -0
- package/dist/core/types/AudioProfile.d.ts.map +1 -0
- package/dist/core/types/BeatMap.d.ts +1825 -0
- package/dist/core/types/BeatMap.d.ts.map +1 -0
- package/dist/core/types/ButtonMapping.d.ts +345 -0
- package/dist/core/types/ButtonMapping.d.ts.map +1 -0
- package/dist/core/types/Character.d.ts +397 -0
- package/dist/core/types/Character.d.ts.map +1 -0
- package/dist/core/types/ChartedBeatMap.d.ts +169 -0
- package/dist/core/types/ChartedBeatMap.d.ts.map +1 -0
- package/dist/core/types/Combat.d.ts +268 -0
- package/dist/core/types/Combat.d.ts.map +1 -0
- package/dist/core/types/CombatAI.d.ts +143 -0
- package/dist/core/types/CombatAI.d.ts.map +1 -0
- package/dist/core/types/Enemy.d.ts +447 -0
- package/dist/core/types/Enemy.d.ts.map +1 -0
- package/dist/core/types/Environmental.d.ts +213 -0
- package/dist/core/types/Environmental.d.ts.map +1 -0
- package/dist/core/types/Equipment.d.ts +309 -0
- package/dist/core/types/Equipment.d.ts.map +1 -0
- package/dist/core/types/ISessionTracker.d.ts +48 -0
- package/dist/core/types/ISessionTracker.d.ts.map +1 -0
- package/dist/core/types/LevelExport.d.ts +366 -0
- package/dist/core/types/LevelExport.d.ts.map +1 -0
- package/dist/core/types/Playlist.d.ts +70 -0
- package/dist/core/types/Playlist.d.ts.map +1 -0
- package/dist/core/types/Prestige.d.ts +94 -0
- package/dist/core/types/Prestige.d.ts.map +1 -0
- package/dist/core/types/Progression.d.ts +214 -0
- package/dist/core/types/Progression.d.ts.map +1 -0
- package/dist/core/types/RhythmXP.d.ts +398 -0
- package/dist/core/types/RhythmXP.d.ts.map +1 -0
- package/dist/core/utils/AbilityConstants.d.ts +31 -0
- package/dist/core/utils/AbilityConstants.d.ts.map +1 -0
- package/dist/core/utils/EffectApplierUtils.d.ts +56 -0
- package/dist/core/utils/EffectApplierUtils.d.ts.map +1 -0
- package/dist/core/utils/ImageValidator.d.ts +66 -0
- package/dist/core/utils/ImageValidator.d.ts.map +1 -0
- package/dist/core/utils/PrerequisiteValidator.d.ts +88 -0
- package/dist/core/utils/PrerequisiteValidator.d.ts.map +1 -0
- package/dist/essentia-wasm.es-BUEnKUts.js +2990 -0
- package/dist/essentia.js-model.es-CGA0xotH.js +306 -0
- package/dist/index.d.ts +176 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/playlist-data-engine.js +124 -0
- package/dist/playlist-data-engine.mjs +49251 -0
- package/dist/utils/EnchantmentLibrary.d.ts +378 -0
- package/dist/utils/EnchantmentLibrary.d.ts.map +1 -0
- package/dist/utils/arweaveGatewayManager.d.ts +485 -0
- package/dist/utils/arweaveGatewayManager.d.ts.map +1 -0
- package/dist/utils/arweaveUtils.d.ts +118 -0
- package/dist/utils/arweaveUtils.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +439 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/equipmentConstants.d.ts +60 -0
- package/dist/utils/equipmentConstants.d.ts.map +1 -0
- package/dist/utils/hash.d.ts +33 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +192 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/magicItemExamples.d.ts +46 -0
- package/dist/utils/magicItemExamples.d.ts.map +1 -0
- package/dist/utils/playlistUtils.d.ts +149 -0
- package/dist/utils/playlistUtils.d.ts.map +1 -0
- package/dist/utils/random.d.ts +34 -0
- package/dist/utils/random.d.ts.map +1 -0
- package/dist/utils/sensorDashboard.d.ts +60 -0
- package/dist/utils/sensorDashboard.d.ts.map +1 -0
- package/dist/utils/validators.d.ts +189 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SkillQuery
|
|
3
|
+
*
|
|
4
|
+
* Central query interface for all skills (default D&D 5e and custom).
|
|
5
|
+
* Provides skill lookup, validation, and categorization.
|
|
6
|
+
*
|
|
7
|
+
* **Design:** This is a query layer on top of ExtensionManager.
|
|
8
|
+
* All skills are stored in ExtensionManager; SkillQuery provides:
|
|
9
|
+
* - Query methods with caching for performance
|
|
10
|
+
* - Skill-related helper methods and validation
|
|
11
|
+
*
|
|
12
|
+
* **Registration:** Use ExtensionManager.register('skills', [...]) to add custom skills.
|
|
13
|
+
*
|
|
14
|
+
* No duplicate storage - all data lives in ExtensionManager.
|
|
15
|
+
*/
|
|
16
|
+
import type { CustomSkill, SkillQueryStats, SkillValidationResult } from './SkillTypes.js';
|
|
17
|
+
import type { Ability, CharacterSheet } from '../types/Character.js';
|
|
18
|
+
/**
|
|
19
|
+
* SkillQuery - Singleton class for querying skills
|
|
20
|
+
*
|
|
21
|
+
* This is a query layer on top of ExtensionManager.
|
|
22
|
+
* All skills are stored in ExtensionManager; SkillQuery provides:
|
|
23
|
+
* - Query methods with caching for performance
|
|
24
|
+
* - Skill-related helper methods and validation
|
|
25
|
+
*
|
|
26
|
+
* **Registration:** Use ExtensionManager.register('skills', [...]) to add custom skills.
|
|
27
|
+
*
|
|
28
|
+
* Design principle: No duplicate storage. All data lives in ExtensionManager.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SkillQuery {
|
|
31
|
+
private static instance;
|
|
32
|
+
private manager;
|
|
33
|
+
private allSkillsCache;
|
|
34
|
+
private abilityCache;
|
|
35
|
+
private categoryCache;
|
|
36
|
+
private constructor();
|
|
37
|
+
/**
|
|
38
|
+
* Get the singleton instance
|
|
39
|
+
*/
|
|
40
|
+
static getInstance(): SkillQuery;
|
|
41
|
+
/**
|
|
42
|
+
* Invalidate all caches
|
|
43
|
+
*
|
|
44
|
+
* This method is primarily for internal use and advanced scenarios.
|
|
45
|
+
*
|
|
46
|
+
* Call this method after directly manipulating ExtensionManager's skill data
|
|
47
|
+
* (e.g., after calling ExtensionManager.resetAll()).
|
|
48
|
+
*
|
|
49
|
+
* This ensures that SkillQuery's cached data is refreshed to reflect
|
|
50
|
+
* the current state of ExtensionManager.
|
|
51
|
+
*/
|
|
52
|
+
invalidateCache(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Get a skill by ID
|
|
55
|
+
*
|
|
56
|
+
* @param id - Skill ID to look up
|
|
57
|
+
* @returns Skill or undefined if not found
|
|
58
|
+
*/
|
|
59
|
+
getSkill(id: string): CustomSkill | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Get all registered skills
|
|
62
|
+
*
|
|
63
|
+
* Reads from ExtensionManager with caching.
|
|
64
|
+
*
|
|
65
|
+
* @returns Array of all skills
|
|
66
|
+
*/
|
|
67
|
+
getAllSkills(): CustomSkill[];
|
|
68
|
+
/**
|
|
69
|
+
* Get skills by ability score
|
|
70
|
+
*
|
|
71
|
+
* Builds index from ExtensionManager data with caching.
|
|
72
|
+
*
|
|
73
|
+
* @param ability - Ability score to filter by
|
|
74
|
+
* @returns Array of skills that use this ability
|
|
75
|
+
*/
|
|
76
|
+
getSkillsByAbility(ability: Ability): CustomSkill[];
|
|
77
|
+
/**
|
|
78
|
+
* Get skills by category
|
|
79
|
+
*
|
|
80
|
+
* Builds index from ExtensionManager data with caching.
|
|
81
|
+
*
|
|
82
|
+
* @param category - Category to filter by
|
|
83
|
+
* @returns Array of skills in this category
|
|
84
|
+
*/
|
|
85
|
+
getSkillsByCategory(category: string): CustomSkill[];
|
|
86
|
+
/**
|
|
87
|
+
* Get all categories in use
|
|
88
|
+
*
|
|
89
|
+
* @returns Array of category names
|
|
90
|
+
*/
|
|
91
|
+
getCategories(): string[];
|
|
92
|
+
/**
|
|
93
|
+
* Get skills by source
|
|
94
|
+
*
|
|
95
|
+
* @param source - 'default' or 'custom'
|
|
96
|
+
* @returns Array of skills from this source
|
|
97
|
+
*/
|
|
98
|
+
getSkillsBySource(source: 'default' | 'custom'): CustomSkill[];
|
|
99
|
+
/**
|
|
100
|
+
* Validate if a skill ID exists
|
|
101
|
+
*
|
|
102
|
+
* @param id - Skill ID to validate
|
|
103
|
+
* @returns True if skill exists
|
|
104
|
+
*/
|
|
105
|
+
isValidSkill(id: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Validate skill data structure
|
|
108
|
+
*
|
|
109
|
+
* Delegates to SkillValidator.
|
|
110
|
+
*
|
|
111
|
+
* @param skill - Skill object to validate
|
|
112
|
+
* @returns Validation result with any errors
|
|
113
|
+
*/
|
|
114
|
+
validateSkill(skill: CustomSkill): SkillValidationResult;
|
|
115
|
+
/**
|
|
116
|
+
* Validate skill prerequisites against a character
|
|
117
|
+
*
|
|
118
|
+
* Checks if a character meets all prerequisite requirements for a skill.
|
|
119
|
+
* This is a convenience method that delegates to SkillValidator.
|
|
120
|
+
*
|
|
121
|
+
* @param skill - The skill whose prerequisites to validate
|
|
122
|
+
* @param character - The character sheet to validate against
|
|
123
|
+
* @returns Validation result with unmet prerequisites if any
|
|
124
|
+
*/
|
|
125
|
+
validatePrerequisites(skill: CustomSkill, character: CharacterSheet): SkillValidationResult;
|
|
126
|
+
/**
|
|
127
|
+
* Get query statistics
|
|
128
|
+
*
|
|
129
|
+
* @returns Statistics about registered skills
|
|
130
|
+
*/
|
|
131
|
+
getQueryStats(): SkillQueryStats;
|
|
132
|
+
/**
|
|
133
|
+
* Get the total count of registered skills
|
|
134
|
+
*
|
|
135
|
+
* Returns the total number of skills in the registry.
|
|
136
|
+
*
|
|
137
|
+
* @returns Total skill count
|
|
138
|
+
*/
|
|
139
|
+
getSkillCount(): number;
|
|
140
|
+
/**
|
|
141
|
+
* Get skills available to a character based on prerequisites
|
|
142
|
+
*
|
|
143
|
+
* Returns all skills whose prerequisites are met by the character.
|
|
144
|
+
* Skills without prerequisites are always available.
|
|
145
|
+
*
|
|
146
|
+
* @param character - The character sheet to validate prerequisites against
|
|
147
|
+
* @returns Array of skills the character can learn
|
|
148
|
+
*/
|
|
149
|
+
getAvailableSkills(character: CharacterSheet): CustomSkill[];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get the global SkillQuery instance
|
|
153
|
+
*
|
|
154
|
+
* Convenience function for accessing the singleton.
|
|
155
|
+
*
|
|
156
|
+
* @returns SkillQuery instance
|
|
157
|
+
*/
|
|
158
|
+
export declare function getSkillQuery(): SkillQuery;
|
|
159
|
+
//# sourceMappingURL=SkillQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillQuery.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,qBAAqB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIrE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,aAAa,CAA2C;IAEhE,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,UAAU;IAOhC;;;;;;;;;;OAUG;IACH,eAAe,IAAI,IAAI;IAMvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK7C;;;;;;OAMG;IACH,YAAY,IAAI,WAAW,EAAE;IAQ7B;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE;IAcnD;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAkBpD;;;;OAIG;IACH,aAAa,IAAI,MAAM,EAAE;IAazB;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE;IAI9D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,qBAAqB;IAIxD;;;;;;;;;OASG;IACH,qBAAqB,CACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,GAC1B,qBAAqB;IAIxB;;;;OAIG;IACH,aAAa,IAAI,eAAe;IA+BhC;;;;;;OAMG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,WAAW,EAAE;CAY/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAE1C"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the extensible skill system.
|
|
5
|
+
* Supports default D&D 5e skills plus custom skills with metadata.
|
|
6
|
+
*/
|
|
7
|
+
import type { Ability, Class, Race } from '../types/Character.js';
|
|
8
|
+
/**
|
|
9
|
+
* Prerequisites for learning or using a skill
|
|
10
|
+
*
|
|
11
|
+
* Follows the same pattern as FeaturePrerequisite for consistency.
|
|
12
|
+
* Skills can require:
|
|
13
|
+
* - A minimum character level
|
|
14
|
+
* - Other skills to be proficient first
|
|
15
|
+
* - Features to be learned first
|
|
16
|
+
* - Spells to be known first
|
|
17
|
+
* - Minimum ability scores
|
|
18
|
+
* - Specific class or race
|
|
19
|
+
* - Custom conditions
|
|
20
|
+
*/
|
|
21
|
+
export interface SkillPrerequisite {
|
|
22
|
+
/** Minimum character level required */
|
|
23
|
+
level?: number;
|
|
24
|
+
/** Minimum ability scores required */
|
|
25
|
+
abilities?: Partial<Record<'STR' | 'DEX' | 'CON' | 'INT' | 'WIS' | 'CHA', number>>;
|
|
26
|
+
/** Specific class required */
|
|
27
|
+
class?: Class;
|
|
28
|
+
/** Specific race required */
|
|
29
|
+
race?: Race;
|
|
30
|
+
/** Skills that must be proficient first (by skill ID) */
|
|
31
|
+
skills?: string[];
|
|
32
|
+
/** Features that must be learned first (by feature ID) */
|
|
33
|
+
features?: string[];
|
|
34
|
+
/** Spells that must be known first (by spell name) */
|
|
35
|
+
spells?: string[];
|
|
36
|
+
/** Custom condition description */
|
|
37
|
+
custom?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Custom Skill Interface
|
|
41
|
+
*
|
|
42
|
+
* Defines a skill that can be used by characters. Includes all 18 default D&D 5e skills
|
|
43
|
+
* plus any custom skills added by users or expansion packs.
|
|
44
|
+
*/
|
|
45
|
+
export interface CustomSkill {
|
|
46
|
+
/**
|
|
47
|
+
* Unique identifier for the skill (e.g., 'athletics', 'survival_cold')
|
|
48
|
+
* - Must be lowercase_with_underscores format
|
|
49
|
+
* - Must be unique across all skills (default + custom)
|
|
50
|
+
*/
|
|
51
|
+
id: string;
|
|
52
|
+
/**
|
|
53
|
+
* Display name for the skill (e.g., 'Athletics', 'Survival (Cold Environments)')
|
|
54
|
+
*/
|
|
55
|
+
name: string;
|
|
56
|
+
/**
|
|
57
|
+
* Optional description of what the skill covers
|
|
58
|
+
*/
|
|
59
|
+
description?: string;
|
|
60
|
+
/**
|
|
61
|
+
* The ability score used for this skill (STR, DEX, CON, INT, WIS, CHA)
|
|
62
|
+
*/
|
|
63
|
+
ability: Ability;
|
|
64
|
+
/**
|
|
65
|
+
* Whether this skill is affected by armor disadvantage
|
|
66
|
+
* - true: Skills like Athletics, Acrobatics, Sleight of Hand, Stealth have armor penalty
|
|
67
|
+
* - false: Most knowledge and social skills don't have armor penalty
|
|
68
|
+
*/
|
|
69
|
+
armorPenalty?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Optional custom properties for advanced skill mechanics
|
|
72
|
+
* - Can contain any game-specific data
|
|
73
|
+
* - Examples: { toolType: 'musical', requiresTraining: true, synergy: ['nature'] }
|
|
74
|
+
*/
|
|
75
|
+
customProperties?: Record<string, string | number | boolean | string[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Optional categories for grouping and filtering skills
|
|
78
|
+
* - Examples: 'exploration', 'social', 'knowledge', 'combat', 'environmental'
|
|
79
|
+
* - Used for background skill preferences and skill list filtering
|
|
80
|
+
*/
|
|
81
|
+
categories?: string[];
|
|
82
|
+
/**
|
|
83
|
+
* Where this skill comes from
|
|
84
|
+
* - 'default': One of the 18 core D&D 5e skills
|
|
85
|
+
* - 'custom': Added by user or expansion pack
|
|
86
|
+
*/
|
|
87
|
+
source: 'default' | 'custom';
|
|
88
|
+
/**
|
|
89
|
+
* Optional tags for additional categorization
|
|
90
|
+
* - Examples: ['secret', 'advanced', 'requires_tool']
|
|
91
|
+
* - Can be used for filtering or prerequisites
|
|
92
|
+
*/
|
|
93
|
+
tags?: string[];
|
|
94
|
+
/**
|
|
95
|
+
* Optional flavor text or lore about the skill
|
|
96
|
+
*/
|
|
97
|
+
lore?: string;
|
|
98
|
+
/** Optional icon URL for small UI display */
|
|
99
|
+
icon?: string;
|
|
100
|
+
/** Optional image URL for larger display */
|
|
101
|
+
image?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Prerequisites for learning this skill
|
|
104
|
+
*
|
|
105
|
+
* If specified, the skill can only be gained by characters who meet
|
|
106
|
+
* all the prerequisite requirements. This allows for:
|
|
107
|
+
* - Advanced skills that require base skills
|
|
108
|
+
* - Class-specific or race-specific skills
|
|
109
|
+
* - Skills that require certain features (e.g., Draconic Bloodline)
|
|
110
|
+
* - Skills that require certain spells (e.g., must know fireball)
|
|
111
|
+
*/
|
|
112
|
+
prerequisites?: SkillPrerequisite;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Skill Proficiency Interface
|
|
116
|
+
*
|
|
117
|
+
* Represents a character's proficiency level in a specific skill.
|
|
118
|
+
* Used for tracking proficiencies from various sources.
|
|
119
|
+
*/
|
|
120
|
+
export interface SkillProficiency {
|
|
121
|
+
/**
|
|
122
|
+
* The skill ID (references CustomSkill.id)
|
|
123
|
+
*/
|
|
124
|
+
skillId: string;
|
|
125
|
+
/**
|
|
126
|
+
* Proficiency level
|
|
127
|
+
* - 'none': No proficiency (ability modifier only)
|
|
128
|
+
* - 'proficient': Proficiency bonus added
|
|
129
|
+
* - 'expertise': Double proficiency bonus
|
|
130
|
+
*/
|
|
131
|
+
level: 'none' | 'proficient' | 'expertise';
|
|
132
|
+
/**
|
|
133
|
+
* Where this proficiency came from
|
|
134
|
+
* - 'class': Gained from class at level 1
|
|
135
|
+
* - 'background': Gained from background
|
|
136
|
+
* - 'feat': Gained from a feat
|
|
137
|
+
* - 'custom': Gained from custom feature or homebrew
|
|
138
|
+
* - 'racial': Gained from racial trait
|
|
139
|
+
* - 'other': Any other source
|
|
140
|
+
*/
|
|
141
|
+
source: 'class' | 'background' | 'feat' | 'custom' | 'racial' | 'other';
|
|
142
|
+
/**
|
|
143
|
+
* Optional feature ID that granted this proficiency
|
|
144
|
+
* - Links back to the feature in FeatureQuery
|
|
145
|
+
* - Example: 'rogue_expertise', 'bard_jack_of_all_trades'
|
|
146
|
+
*/
|
|
147
|
+
grantedBy?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Skill Selection Weights
|
|
151
|
+
*
|
|
152
|
+
* Used for controlling spawn rates when selecting skills for a character.
|
|
153
|
+
* Allows custom skills to be more or less likely to be selected.
|
|
154
|
+
*/
|
|
155
|
+
export interface SkillSelectionWeights {
|
|
156
|
+
/**
|
|
157
|
+
* Map of skill IDs to their selection weights
|
|
158
|
+
* - Higher weight = more likely to be selected
|
|
159
|
+
* - Weight of 0 = never selected
|
|
160
|
+
* - Unspecified skills use default weight of 1.0
|
|
161
|
+
*/
|
|
162
|
+
weights: Record<string, number>;
|
|
163
|
+
/**
|
|
164
|
+
* Selection mode for applying weights
|
|
165
|
+
* - 'relative': Custom weights added to pool, normalized (default)
|
|
166
|
+
* - 'absolute': Custom weights replace distribution entirely
|
|
167
|
+
* - 'default': Equal weights for all skills (ignore weights)
|
|
168
|
+
*/
|
|
169
|
+
mode?: 'relative' | 'absolute' | 'default';
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Skill List Definition
|
|
173
|
+
*
|
|
174
|
+
* Defines available skills and selection parameters for a class.
|
|
175
|
+
*/
|
|
176
|
+
export interface SkillListDefinition {
|
|
177
|
+
/**
|
|
178
|
+
* The class this skill list belongs to
|
|
179
|
+
*/
|
|
180
|
+
class: string;
|
|
181
|
+
/**
|
|
182
|
+
* Number of skills to select from the list
|
|
183
|
+
*/
|
|
184
|
+
skillCount: number;
|
|
185
|
+
/**
|
|
186
|
+
* Array of skill IDs available for this class
|
|
187
|
+
* - Can include default skills or custom skills
|
|
188
|
+
*/
|
|
189
|
+
availableSkills: string[];
|
|
190
|
+
/**
|
|
191
|
+
* Optional weights for skill selection
|
|
192
|
+
* - Controls which skills are more likely to be selected
|
|
193
|
+
*/
|
|
194
|
+
selectionWeights?: SkillSelectionWeights;
|
|
195
|
+
/**
|
|
196
|
+
* Whether this class grants expertise
|
|
197
|
+
* - Classes like Bard and Rogue grant expertise at level 1
|
|
198
|
+
*/
|
|
199
|
+
hasExpertise?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Number of expertise selections if hasExpertise is true
|
|
202
|
+
*/
|
|
203
|
+
expertiseCount?: number;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Validation Result
|
|
207
|
+
*
|
|
208
|
+
* Standard result type for skill validation operations.
|
|
209
|
+
*/
|
|
210
|
+
export interface SkillValidationResult {
|
|
211
|
+
/** Whether the skill is valid */
|
|
212
|
+
valid: boolean;
|
|
213
|
+
/** Array of error messages (empty if valid) */
|
|
214
|
+
errors: string[];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Skill Query Statistics
|
|
218
|
+
*
|
|
219
|
+
* Statistical information about registered skills.
|
|
220
|
+
*/
|
|
221
|
+
export interface SkillQueryStats {
|
|
222
|
+
/** Total number of registered skills */
|
|
223
|
+
totalSkills: number;
|
|
224
|
+
/** Number of default skills */
|
|
225
|
+
defaultSkills: number;
|
|
226
|
+
/** Number of custom skills */
|
|
227
|
+
customSkills: number;
|
|
228
|
+
/** Skills per ability */
|
|
229
|
+
skillsByAbility: Record<Ability, number>;
|
|
230
|
+
/** All categories in use */
|
|
231
|
+
categories: string[];
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=SkillTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillTypes.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates custom skills against strict schemas.
|
|
5
|
+
* Provides comprehensive validation for all skill properties including:
|
|
6
|
+
* - Required fields (id, name, ability, source)
|
|
7
|
+
* - Valid enum values (ability, source)
|
|
8
|
+
* - ID format validation (lowercase_with_underscores)
|
|
9
|
+
* - Optional fields (description, categories, tags, customProperties)
|
|
10
|
+
* Uses shared AbilityConstants for code deduplication.
|
|
11
|
+
*/
|
|
12
|
+
import type { SkillValidationResult, SkillPrerequisite } from './SkillTypes.js';
|
|
13
|
+
import type { CharacterSheet, Ability } from '../types/Character.js';
|
|
14
|
+
export type { SkillValidationResult };
|
|
15
|
+
/**
|
|
16
|
+
* SkillValidator - Validates custom skills
|
|
17
|
+
*
|
|
18
|
+
* Provides strict validation to ensure custom skills
|
|
19
|
+
* meet all requirements before being registered with SkillQuery.
|
|
20
|
+
*/
|
|
21
|
+
export declare class SkillValidator {
|
|
22
|
+
/**
|
|
23
|
+
* Validate a custom skill
|
|
24
|
+
*
|
|
25
|
+
* Checks all required fields, enum values, and data constraints.
|
|
26
|
+
*
|
|
27
|
+
* @param skill - The custom skill to validate
|
|
28
|
+
* @returns Validation result with errors if any
|
|
29
|
+
*/
|
|
30
|
+
static validateSkill(skill: unknown): SkillValidationResult;
|
|
31
|
+
/**
|
|
32
|
+
* Validate an array of custom skills
|
|
33
|
+
*
|
|
34
|
+
* @param skills - Array of custom skills to validate
|
|
35
|
+
* @returns Validation result with combined errors
|
|
36
|
+
*/
|
|
37
|
+
static validateSkills(skills: unknown[]): SkillValidationResult;
|
|
38
|
+
/**
|
|
39
|
+
* Validate a skill proficiency
|
|
40
|
+
*
|
|
41
|
+
* @param proficiency - The skill proficiency to validate
|
|
42
|
+
* @returns Validation result with errors if any
|
|
43
|
+
*/
|
|
44
|
+
static validateSkillProficiency(proficiency: unknown): SkillValidationResult;
|
|
45
|
+
/**
|
|
46
|
+
* Validate an array of skill proficiencies
|
|
47
|
+
*
|
|
48
|
+
* @param proficiencies - Array of skill proficiencies to validate
|
|
49
|
+
* @returns Validation result with combined errors
|
|
50
|
+
*/
|
|
51
|
+
static validateSkillProficiencies(proficiencies: unknown[]): SkillValidationResult;
|
|
52
|
+
/**
|
|
53
|
+
* Validate a skill list definition
|
|
54
|
+
*
|
|
55
|
+
* @param skillList - The skill list definition to validate
|
|
56
|
+
* @returns Validation result with errors if any
|
|
57
|
+
*/
|
|
58
|
+
static validateSkillListDefinition(skillList: unknown): SkillValidationResult;
|
|
59
|
+
/**
|
|
60
|
+
* Check if a skill ID follows the correct naming convention
|
|
61
|
+
*
|
|
62
|
+
* Skill IDs should use lowercase_with_underscores format.
|
|
63
|
+
* Examples: 'athletics', 'survival_cold', 'arcana_planar'
|
|
64
|
+
*
|
|
65
|
+
* @param id - The skill ID to check
|
|
66
|
+
* @returns True if the ID format is valid
|
|
67
|
+
*/
|
|
68
|
+
static isValidSkillId(id: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Check if a value is a valid ability score
|
|
71
|
+
*
|
|
72
|
+
* Re-exports the shared isValidAbility function for convenience.
|
|
73
|
+
* Uses the same validation as all other systems for consistency.
|
|
74
|
+
*
|
|
75
|
+
* @param ability - The ability value to check
|
|
76
|
+
* @returns True if the value is a valid ability (STR, DEX, CON, INT, WIS, CHA)
|
|
77
|
+
*/
|
|
78
|
+
static isValidAbility(ability: string): ability is Ability;
|
|
79
|
+
/**
|
|
80
|
+
* Validate skill prerequisites against a character
|
|
81
|
+
*
|
|
82
|
+
* Checks if a character meets all prerequisite requirements for a skill.
|
|
83
|
+
* Uses the shared PrerequisiteValidator for consistency across all systems.
|
|
84
|
+
*
|
|
85
|
+
* @param prerequisites - The skill prerequisites to validate
|
|
86
|
+
* @param character - The character sheet to validate against
|
|
87
|
+
* @returns Validation result with unmet prerequisites if any
|
|
88
|
+
*/
|
|
89
|
+
static validateSkillPrerequisites(prerequisites: SkillPrerequisite | undefined, character: CharacterSheet): SkillValidationResult;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Helper function to validate a single skill
|
|
93
|
+
*
|
|
94
|
+
* Convenience function for quick validation.
|
|
95
|
+
*
|
|
96
|
+
* @param skill - The custom skill to validate
|
|
97
|
+
* @returns Validation result with errors if any
|
|
98
|
+
*/
|
|
99
|
+
export declare function validateSkill(skill: unknown): SkillValidationResult;
|
|
100
|
+
/**
|
|
101
|
+
* Helper function to validate an array of skills
|
|
102
|
+
*
|
|
103
|
+
* Convenience function for batch validation.
|
|
104
|
+
*
|
|
105
|
+
* @param skills - Array of custom skills to validate
|
|
106
|
+
* @returns Validation result with combined errors
|
|
107
|
+
*/
|
|
108
|
+
export declare function validateSkills(skills: unknown[]): SkillValidationResult;
|
|
109
|
+
/**
|
|
110
|
+
* Helper function to validate a skill proficiency
|
|
111
|
+
*
|
|
112
|
+
* Convenience function for quick validation.
|
|
113
|
+
*
|
|
114
|
+
* @param proficiency - The skill proficiency to validate
|
|
115
|
+
* @returns Validation result with errors if any
|
|
116
|
+
*/
|
|
117
|
+
export declare function validateSkillProficiency(proficiency: unknown): SkillValidationResult;
|
|
118
|
+
/**
|
|
119
|
+
* Helper function to validate an array of skill proficiencies
|
|
120
|
+
*
|
|
121
|
+
* Convenience function for batch validation.
|
|
122
|
+
*
|
|
123
|
+
* @param proficiencies - Array of skill proficiencies to validate
|
|
124
|
+
* @returns Validation result with combined errors
|
|
125
|
+
*/
|
|
126
|
+
export declare function validateSkillProficiencies(proficiencies: unknown[]): SkillValidationResult;
|
|
127
|
+
/**
|
|
128
|
+
* Helper function to validate a skill list definition
|
|
129
|
+
*
|
|
130
|
+
* Convenience function for quick validation.
|
|
131
|
+
*
|
|
132
|
+
* @param skillList - The skill list definition to validate
|
|
133
|
+
* @returns Validation result with errors if any
|
|
134
|
+
*/
|
|
135
|
+
export declare function validateSkillListDefinition(skillList: unknown): SkillValidationResult;
|
|
136
|
+
/**
|
|
137
|
+
* Helper function to validate skill prerequisites against a character
|
|
138
|
+
*
|
|
139
|
+
* Convenience function for quick validation.
|
|
140
|
+
*
|
|
141
|
+
* @param prerequisites - The skill prerequisites to validate
|
|
142
|
+
* @param character - The character sheet to validate against
|
|
143
|
+
* @returns Validation result with unmet prerequisites if any
|
|
144
|
+
*/
|
|
145
|
+
export declare function validateSkillPrerequisites(prerequisites: SkillPrerequisite | undefined, character: CharacterSheet): SkillValidationResult;
|
|
146
|
+
//# sourceMappingURL=SkillValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillValidator.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMrE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAiBtC;;;;;GAKG;AACH,qBAAa,cAAc;IACvB;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB;IA2G3D;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB;IAuB/D;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,qBAAqB;IA2C5E;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,qBAAqB;IAuBlF;;;;;OAKG;IACH,MAAM,CAAC,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,qBAAqB;IA+D7E;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO1C;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,OAAO;IAI1D;;;;;;;;;OASG;IACH,MAAM,CAAC,0BAA0B,CAC7B,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,SAAS,EAAE,cAAc,GAC1B,qBAAqB;CAG3B;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,qBAAqB,CAEpF;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAE1F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,qBAAqB,CAErF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,SAAS,EAAE,cAAc,GAC1B,qBAAqB,CAEvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Module Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all skill-related types and utilities.
|
|
5
|
+
*/
|
|
6
|
+
export type { CustomSkill, SkillPrerequisite, SkillProficiency, SkillSelectionWeights, SkillListDefinition, SkillQueryStats, } from './SkillTypes.js';
|
|
7
|
+
export type { SkillValidationResult } from './SkillValidator.js';
|
|
8
|
+
export { SkillQuery, getSkillQuery } from './SkillQuery.js';
|
|
9
|
+
export { DEFAULT_SKILLS, DEFAULT_SKILL_CATEGORIES } from '../../constants/DefaultSkills.js';
|
|
10
|
+
export { SkillValidator, validateSkill, validateSkills, validateSkillProficiency, validateSkillProficiencies, validateSkillListDefinition, validateSkillPrerequisites } from './SkillValidator.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACR,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAClB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAG5F,OAAO,EACH,cAAc,EACd,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC7B,MAAM,qBAAqB,CAAC"}
|