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,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PartyAnalyzer - Analyzes party strength for encounter generation
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to calculate party level, XP budget, and combat stats
|
|
5
|
+
* for generating balanced encounters based on D&D 5e encounter building rules.
|
|
6
|
+
*
|
|
7
|
+
* All methods are static for convenient access without instantiation.
|
|
8
|
+
*/
|
|
9
|
+
import type { CharacterSheet } from '../types/Character.js';
|
|
10
|
+
import type { EncounterDifficulty } from '../types/Enemy.js';
|
|
11
|
+
/**
|
|
12
|
+
* Analysis result for a party's combat capabilities
|
|
13
|
+
*
|
|
14
|
+
* Provides comprehensive view of party strength for encounter generation.
|
|
15
|
+
* Used internally by encounter generation system to balance enemies.
|
|
16
|
+
*/
|
|
17
|
+
export interface PartyAnalysis {
|
|
18
|
+
/** Average party level (rounded down) */
|
|
19
|
+
averageLevel: number;
|
|
20
|
+
/** Number of party members */
|
|
21
|
+
partySize: number;
|
|
22
|
+
/** Average armor class across all party members */
|
|
23
|
+
averageAC: number;
|
|
24
|
+
/** Average hit points across all party members */
|
|
25
|
+
averageHP: number;
|
|
26
|
+
/** Average damage output (estimated) */
|
|
27
|
+
averageDamage: number;
|
|
28
|
+
/** Total party strength score (abstract value) */
|
|
29
|
+
totalStrength: number;
|
|
30
|
+
/** XP budget for easy difficulty */
|
|
31
|
+
easyXP: number;
|
|
32
|
+
/** XP budget for medium difficulty */
|
|
33
|
+
mediumXP: number;
|
|
34
|
+
/** XP budget for hard difficulty */
|
|
35
|
+
hardXP: number;
|
|
36
|
+
/** XP budget for deadly difficulty */
|
|
37
|
+
deadlyXP: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* PartyAnalyzer - Static class for party strength analysis
|
|
41
|
+
*
|
|
42
|
+
* Analyzes CharacterSheet instances to determine combat capabilities
|
|
43
|
+
* and calculate appropriate encounter XP budgets using D&D 5e rules.
|
|
44
|
+
*
|
|
45
|
+
* All methods handle edge cases:
|
|
46
|
+
* - Empty party arrays return safe defaults
|
|
47
|
+
* - Invalid character sheets are skipped
|
|
48
|
+
* - Levels are clamped to valid D&D range (1-20)
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const party = [character1, character2, character3];
|
|
53
|
+
* const budget = PartyAnalyzer.getXPBudget(party, 'medium');
|
|
54
|
+
* const avgLevel = PartyAnalyzer.calculatePartyLevel(party);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare class PartyAnalyzer {
|
|
58
|
+
/**
|
|
59
|
+
* Calculate average party level
|
|
60
|
+
*
|
|
61
|
+
* Returns the average level of all party members, rounded down.
|
|
62
|
+
* Empty party returns level 1 as safe default.
|
|
63
|
+
*
|
|
64
|
+
* @param party - Array of CharacterSheet objects
|
|
65
|
+
* @returns Average level (1-20), or 1 for empty party
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const party = [level3Char, level5Char, level4Char];
|
|
70
|
+
* PartyAnalyzer.calculatePartyLevel(party); // 4 (12 / 3 = 4)
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
static calculatePartyLevel(party: CharacterSheet[]): number;
|
|
74
|
+
/**
|
|
75
|
+
* Calculate overall party strength score
|
|
76
|
+
*
|
|
77
|
+
* Combines multiple factors into a single strength value:
|
|
78
|
+
* - HP pool (total hit points)
|
|
79
|
+
* - Average AC (defense)
|
|
80
|
+
* - Average damage output (offense)
|
|
81
|
+
* - Party size (action economy)
|
|
82
|
+
*
|
|
83
|
+
* This is an abstract score useful for comparing parties
|
|
84
|
+
* and tuning encounter difficulty.
|
|
85
|
+
*
|
|
86
|
+
* @param party - Array of CharacterSheet objects
|
|
87
|
+
* @returns Strength score (higher = stronger party)
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const strength = PartyAnalyzer.calculatePartyStrength(party);
|
|
92
|
+
* // Returns ~500-2000 for typical level 1-10 parties
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
static calculatePartyStrength(party: CharacterSheet[]): number;
|
|
96
|
+
/**
|
|
97
|
+
* Get XP budget for desired encounter difficulty
|
|
98
|
+
*
|
|
99
|
+
* Calculates total XP budget for the entire party based on
|
|
100
|
+
* D&D 5e encounter building tables. Sum of individual budgets.
|
|
101
|
+
*
|
|
102
|
+
* @param party - Array of CharacterSheet objects
|
|
103
|
+
* @param difficulty - Desired encounter difficulty
|
|
104
|
+
* @returns Total XP budget for encounter
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* // Level 5 party of 4, medium difficulty
|
|
109
|
+
* const budget = PartyAnalyzer.getXPBudget(party, 'medium');
|
|
110
|
+
* // Returns: 2000 (500 × 4)
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
static getXPBudget(party: CharacterSheet[], difficulty: EncounterDifficulty): number;
|
|
114
|
+
/**
|
|
115
|
+
* Get average armor class across party
|
|
116
|
+
*
|
|
117
|
+
* Calculates mean AC for all party members.
|
|
118
|
+
* Used for tuning enemy attack bonuses to match party defense.
|
|
119
|
+
*
|
|
120
|
+
* @param party - Array of CharacterSheet objects
|
|
121
|
+
* @returns Average AC (typically 10-20), or 10 for empty party
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const avgAC = PartyAnalyzer.getAverageAC(party);
|
|
126
|
+
* // Returns ~15 for typical level 5 party
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
static getAverageAC(party: CharacterSheet[]): number;
|
|
130
|
+
/**
|
|
131
|
+
* Get average hit points across party
|
|
132
|
+
*
|
|
133
|
+
* Calculates mean maximum HP for all party members.
|
|
134
|
+
* Used for tuning enemy damage output to match party durability.
|
|
135
|
+
*
|
|
136
|
+
* @param party - Array of CharacterSheet objects
|
|
137
|
+
* @returns Average HP, or 10 for empty party
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const avgHP = PartyAnalyzer.getAverageHP(party);
|
|
142
|
+
* // Returns ~35-45 for level 5 party
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
static getAverageHP(party: CharacterSheet[]): number;
|
|
146
|
+
/**
|
|
147
|
+
* Get party size (number of members)
|
|
148
|
+
*
|
|
149
|
+
* Utility method for encounter scaling calculations.
|
|
150
|
+
* Returns count of valid CharacterSheet objects.
|
|
151
|
+
*
|
|
152
|
+
* @param party - Array of CharacterSheet objects
|
|
153
|
+
* @returns Number of party members
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* PartyAnalyzer.getPartySize([pc1, pc2, pc3]); // 3
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
static getPartySize(party: CharacterSheet[]): number;
|
|
161
|
+
/**
|
|
162
|
+
* Get estimated average damage per party member
|
|
163
|
+
*
|
|
164
|
+
* Estimates damage output based on:
|
|
165
|
+
* - Primary attack stat (STR or DEX)
|
|
166
|
+
* - Proficiency bonus (scales with level)
|
|
167
|
+
* - Assumed weapon damage (d8 for martial, d6 for casters)
|
|
168
|
+
*
|
|
169
|
+
* This is a rough estimate used for encounter balancing.
|
|
170
|
+
* Actual damage varies greatly based on equipment and class features.
|
|
171
|
+
*
|
|
172
|
+
* @param party - Array of CharacterSheet objects
|
|
173
|
+
* @returns Average damage per round per character
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* const avgDamage = PartyAnalyzer.getAverageDamage(party);
|
|
178
|
+
* // Returns ~10-15 for level 5 party
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
static getAverageDamage(party: CharacterSheet[]): number;
|
|
182
|
+
/**
|
|
183
|
+
* Estimate damage output for a single character
|
|
184
|
+
*
|
|
185
|
+
* Reads the character's actually equipped weapon to compute average damage
|
|
186
|
+
* per hit. Falls back to unarmed strike (1 + STR mod) if no weapon equipped.
|
|
187
|
+
*
|
|
188
|
+
* Private helper used by getAverageDamage().
|
|
189
|
+
*
|
|
190
|
+
* @param character - CharacterSheet to estimate
|
|
191
|
+
* @returns Estimated average damage per hit
|
|
192
|
+
*/
|
|
193
|
+
private static estimateCharacterDamage;
|
|
194
|
+
/**
|
|
195
|
+
* Get comprehensive party analysis
|
|
196
|
+
*
|
|
197
|
+
* Returns complete analysis of party capabilities including
|
|
198
|
+
* level, size, defensive stats, offensive stats, and
|
|
199
|
+
* XP budgets for all difficulty levels.
|
|
200
|
+
*
|
|
201
|
+
* Useful for encounter generation UI and debugging.
|
|
202
|
+
*
|
|
203
|
+
* @param party - Array of CharacterSheet objects
|
|
204
|
+
* @returns Complete PartyAnalysis object
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* const analysis = PartyAnalyzer.analyzeParty(party);
|
|
209
|
+
* console.log(`Party level: ${analysis.averageLevel}`);
|
|
210
|
+
* console.log(`Medium budget: ${analysis.mediumXP} XP`);
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
static analyzeParty(party: CharacterSheet[]): PartyAnalysis;
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=PartyAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartyAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/core/combat/PartyAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQ7D;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IAEtB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IACtB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IAS3D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IAmB9D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CACd,KAAK,EAAE,cAAc,EAAE,EACvB,UAAU,EAAE,mBAAmB,GAChC,MAAM;IAST;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IASpD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IASpD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IAIpD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM;IAYxD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAkCtC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa;CA2B9D"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SeededDiceRoller - Deterministic D&D-style dice rolling for reproducible combat simulations
|
|
3
|
+
*
|
|
4
|
+
* Implements the same API as DiceRoller but uses SeededRNG internally,
|
|
5
|
+
* producing deterministic results given the same seed and call sequence.
|
|
6
|
+
*
|
|
7
|
+
* Instance-based (not static) so each simulation run gets its own roller
|
|
8
|
+
* with its own RNG state.
|
|
9
|
+
*/
|
|
10
|
+
import { SeededRNG } from '../../utils/random.js';
|
|
11
|
+
/**
|
|
12
|
+
* Factory: create a SeededDiceRoller from a seed string.
|
|
13
|
+
* Each call produces a fresh roller with its own RNG state —
|
|
14
|
+
* this is what CombatSimulator will call per simulation run.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createSeededRoller(seed: string): SeededDiceRoller;
|
|
17
|
+
export declare class SeededDiceRoller {
|
|
18
|
+
private rng;
|
|
19
|
+
constructor(seedOrRng: string | SeededRNG);
|
|
20
|
+
/**
|
|
21
|
+
* Roll a single die
|
|
22
|
+
* @param sides Number of sides on the die (4, 6, 8, 10, 12, 20, 100)
|
|
23
|
+
* @returns Roll result (1 to sides)
|
|
24
|
+
*/
|
|
25
|
+
rollDie(sides: number): number;
|
|
26
|
+
/**
|
|
27
|
+
* Roll multiple dice and sum results
|
|
28
|
+
* @param count Number of dice to roll
|
|
29
|
+
* @param sides Sides per die
|
|
30
|
+
* @returns Array of individual rolls
|
|
31
|
+
*/
|
|
32
|
+
rollMultipleDice(count: number, sides: number): number[];
|
|
33
|
+
/**
|
|
34
|
+
* Parse and roll a dice formula like "2d6+3"
|
|
35
|
+
* @param formula Dice formula (e.g., "1d20", "2d6+3", "3d8-1")
|
|
36
|
+
* @returns Object with parsed formula and results
|
|
37
|
+
*/
|
|
38
|
+
parseDiceFormula(formula: string): {
|
|
39
|
+
diceCount: number;
|
|
40
|
+
diceSides: number;
|
|
41
|
+
modifier: number;
|
|
42
|
+
rolls: number[];
|
|
43
|
+
total: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Roll a d20 (common for attacks and ability checks)
|
|
47
|
+
* @returns Roll result (1-20)
|
|
48
|
+
*/
|
|
49
|
+
rollD20(): number;
|
|
50
|
+
/**
|
|
51
|
+
* Roll with advantage (roll twice, take higher)
|
|
52
|
+
* @returns Object with both rolls and final result
|
|
53
|
+
*/
|
|
54
|
+
rollWithAdvantage(): {
|
|
55
|
+
roll1: number;
|
|
56
|
+
roll2: number;
|
|
57
|
+
result: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Roll with disadvantage (roll twice, take lower)
|
|
61
|
+
* @returns Object with both rolls and final result
|
|
62
|
+
*/
|
|
63
|
+
rollWithDisadvantage(): {
|
|
64
|
+
roll1: number;
|
|
65
|
+
roll2: number;
|
|
66
|
+
result: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Roll initiative (d20 + DEX modifier)
|
|
70
|
+
* @param dexModifier Character's dexterity modifier
|
|
71
|
+
* @returns Initiative value
|
|
72
|
+
*/
|
|
73
|
+
rollInitiative(dexModifier: number): number;
|
|
74
|
+
/**
|
|
75
|
+
* Check if a roll is a critical hit (natural 20)
|
|
76
|
+
*/
|
|
77
|
+
isCriticalHit(d20Roll: number): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a roll is a critical miss (natural 1)
|
|
80
|
+
*/
|
|
81
|
+
isCriticalMiss(d20Roll: number): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Double the damage from a critical hit
|
|
84
|
+
*/
|
|
85
|
+
doubleDamage(rolls: number[]): number[];
|
|
86
|
+
/**
|
|
87
|
+
* Calculate total damage from a damage formula with modifier
|
|
88
|
+
* @param formula Dice formula (e.g., "1d8")
|
|
89
|
+
* @param modifier Ability modifier to add
|
|
90
|
+
* @param isCritical Whether this is a critical hit
|
|
91
|
+
* @returns Total damage
|
|
92
|
+
*/
|
|
93
|
+
calculateDamage(formula: string, modifier: number, isCritical?: boolean): {
|
|
94
|
+
diceFormula: string;
|
|
95
|
+
rolls: number[];
|
|
96
|
+
modifier: number;
|
|
97
|
+
total: number;
|
|
98
|
+
isCritical: boolean;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Roll a saving throw (d20 + ability modifier + proficiency bonus)
|
|
102
|
+
* @param abilityModifier Modifier from the ability being saved
|
|
103
|
+
* @param proficiencyBonus Optional proficiency bonus if character is proficient
|
|
104
|
+
* @returns Save result
|
|
105
|
+
*/
|
|
106
|
+
rollSavingThrow(abilityModifier: number, proficiencyBonus?: number): number;
|
|
107
|
+
/**
|
|
108
|
+
* Roll an ability check (d20 + ability modifier + proficiency if applicable)
|
|
109
|
+
* @param abilityModifier The ability modifier
|
|
110
|
+
* @param proficiencyBonus Proficiency bonus if character is proficient (default 0)
|
|
111
|
+
* @returns Check result
|
|
112
|
+
*/
|
|
113
|
+
rollAbilityCheck(abilityModifier: number, proficiencyBonus?: number): number;
|
|
114
|
+
/**
|
|
115
|
+
* Roll percentiles (d100)
|
|
116
|
+
* @returns Roll result (1-100)
|
|
117
|
+
*/
|
|
118
|
+
rollPercentile(): number;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=SeededDiceRoller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SeededDiceRoller.d.ts","sourceRoot":"","sources":["../../../src/core/combat/SeededDiceRoller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEjE;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAY;gBAEX,SAAS,EAAE,MAAM,GAAG,SAAS;IAIzC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK9B;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAQxD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf;IAgBD;;;OAGG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,iBAAiB,IAAI;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAMD;;;OAGG;IACH,oBAAoB,IAAI;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB;IAMD;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAIvC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG;QAC/E,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;KACrB;IAaD;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAU,GAAG,MAAM;IAI9E;;;;;OAKG;IACH,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAU,GAAG,MAAM;IAI/E;;;OAGG;IACH,cAAc,IAAI,MAAM;CAGzB"}
|