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.
Files changed (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +352 -0
  3. package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
  4. package/dist/constants/DefaultClasses.d.ts +46 -0
  5. package/dist/constants/DefaultClasses.d.ts.map +1 -0
  6. package/dist/constants/DefaultEnchantments.d.ts +337 -0
  7. package/dist/constants/DefaultEnchantments.d.ts.map +1 -0
  8. package/dist/constants/DefaultEnemies.d.ts +83 -0
  9. package/dist/constants/DefaultEnemies.d.ts.map +1 -0
  10. package/dist/constants/DefaultEquipment.d.ts +23 -0
  11. package/dist/constants/DefaultEquipment.d.ts.map +1 -0
  12. package/dist/constants/DefaultFeatures.d.ts +22 -0
  13. package/dist/constants/DefaultFeatures.d.ts.map +1 -0
  14. package/dist/constants/DefaultRaces.d.ts +102 -0
  15. package/dist/constants/DefaultRaces.d.ts.map +1 -0
  16. package/dist/constants/DefaultSkills.d.ts +26 -0
  17. package/dist/constants/DefaultSkills.d.ts.map +1 -0
  18. package/dist/constants/DefaultSpells.d.ts +41 -0
  19. package/dist/constants/DefaultSpells.d.ts.map +1 -0
  20. package/dist/constants/EncounterBalance.d.ts +208 -0
  21. package/dist/constants/EncounterBalance.d.ts.map +1 -0
  22. package/dist/constants/EnemyEquipment.d.ts +71 -0
  23. package/dist/constants/EnemyEquipment.d.ts.map +1 -0
  24. package/dist/constants/EnemyRarity.d.ts +79 -0
  25. package/dist/constants/EnemyRarity.d.ts.map +1 -0
  26. package/dist/constants/EnemyTemplates/Construct.d.ts +63 -0
  27. package/dist/constants/EnemyTemplates/Construct.d.ts.map +1 -0
  28. package/dist/constants/EnemyTemplates/Dragon.d.ts +68 -0
  29. package/dist/constants/EnemyTemplates/Dragon.d.ts.map +1 -0
  30. package/dist/constants/EnemyTemplates/Elemental.d.ts +64 -0
  31. package/dist/constants/EnemyTemplates/Elemental.d.ts.map +1 -0
  32. package/dist/constants/EnemyTemplates/Fiend.d.ts +62 -0
  33. package/dist/constants/EnemyTemplates/Fiend.d.ts.map +1 -0
  34. package/dist/constants/EnemyTemplates/Monstrosity.d.ts +63 -0
  35. package/dist/constants/EnemyTemplates/Monstrosity.d.ts.map +1 -0
  36. package/dist/constants/EnemyTemplates/Undead.d.ts +61 -0
  37. package/dist/constants/EnemyTemplates/Undead.d.ts.map +1 -0
  38. package/dist/constants/ItemTemplates.d.ts +40 -0
  39. package/dist/constants/ItemTemplates.d.ts.map +1 -0
  40. package/dist/constants/MagicItems.d.ts +30 -0
  41. package/dist/constants/MagicItems.d.ts.map +1 -0
  42. package/dist/constants/SpellSlots.d.ts +30 -0
  43. package/dist/constants/SpellSlots.d.ts.map +1 -0
  44. package/dist/constants/StatScaling.d.ts +113 -0
  45. package/dist/constants/StatScaling.d.ts.map +1 -0
  46. package/dist/core/analysis/AudioAnalyzer.d.ts +599 -0
  47. package/dist/core/analysis/AudioAnalyzer.d.ts.map +1 -0
  48. package/dist/core/analysis/ColorExtractor.d.ts +64 -0
  49. package/dist/core/analysis/ColorExtractor.d.ts.map +1 -0
  50. package/dist/core/analysis/EssentiaPitchDetector.d.ts +282 -0
  51. package/dist/core/analysis/EssentiaPitchDetector.d.ts.map +1 -0
  52. package/dist/core/analysis/LevelSerializer.d.ts +265 -0
  53. package/dist/core/analysis/LevelSerializer.d.ts.map +1 -0
  54. package/dist/core/analysis/MelodyContourAnalyzer.d.ts +283 -0
  55. package/dist/core/analysis/MelodyContourAnalyzer.d.ts.map +1 -0
  56. package/dist/core/analysis/MultiBandAnalyzer.d.ts +214 -0
  57. package/dist/core/analysis/MultiBandAnalyzer.d.ts.map +1 -0
  58. package/dist/core/analysis/MusicClassifier.d.ts +524 -0
  59. package/dist/core/analysis/MusicClassifier.d.ts.map +1 -0
  60. package/dist/core/analysis/PitchAnalyzer.d.ts +266 -0
  61. package/dist/core/analysis/PitchAnalyzer.d.ts.map +1 -0
  62. package/dist/core/analysis/PitchDetector.d.ts +251 -0
  63. package/dist/core/analysis/PitchDetector.d.ts.map +1 -0
  64. package/dist/core/analysis/SpectrumScanner.d.ts +52 -0
  65. package/dist/core/analysis/SpectrumScanner.d.ts.map +1 -0
  66. package/dist/core/analysis/beat/BeatInterpolator.d.ts +477 -0
  67. package/dist/core/analysis/beat/BeatInterpolator.d.ts.map +1 -0
  68. package/dist/core/analysis/beat/BeatMapGenerator.d.ts +170 -0
  69. package/dist/core/analysis/beat/BeatMapGenerator.d.ts.map +1 -0
  70. package/dist/core/analysis/beat/BeatStream.d.ts +316 -0
  71. package/dist/core/analysis/beat/BeatStream.d.ts.map +1 -0
  72. package/dist/core/analysis/beat/BeatSubdivider.d.ts +205 -0
  73. package/dist/core/analysis/beat/BeatSubdivider.d.ts.map +1 -0
  74. package/dist/core/analysis/beat/BeatTracker.d.ts +137 -0
  75. package/dist/core/analysis/beat/BeatTracker.d.ts.map +1 -0
  76. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts +180 -0
  77. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts.map +1 -0
  78. package/dist/core/analysis/beat/DensityAnalyzer.d.ts +246 -0
  79. package/dist/core/analysis/beat/DensityAnalyzer.d.ts.map +1 -0
  80. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts +1082 -0
  81. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts.map +1 -0
  82. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts +192 -0
  83. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts.map +1 -0
  84. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts +133 -0
  85. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts.map +1 -0
  86. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts +230 -0
  87. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts.map +1 -0
  88. package/dist/core/analysis/beat/RhythmQuantizer.d.ts +399 -0
  89. package/dist/core/analysis/beat/RhythmQuantizer.d.ts.map +1 -0
  90. package/dist/core/analysis/beat/RhythmicBalancer.d.ts +262 -0
  91. package/dist/core/analysis/beat/RhythmicBalancer.d.ts.map +1 -0
  92. package/dist/core/analysis/beat/StreamScorer.d.ts +275 -0
  93. package/dist/core/analysis/beat/StreamScorer.d.ts.map +1 -0
  94. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts +256 -0
  95. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts.map +1 -0
  96. package/dist/core/analysis/beat/TempoDetector.d.ts +220 -0
  97. package/dist/core/analysis/beat/TempoDetector.d.ts.map +1 -0
  98. package/dist/core/analysis/beat/TransientDetector.d.ts +303 -0
  99. package/dist/core/analysis/beat/TransientDetector.d.ts.map +1 -0
  100. package/dist/core/analysis/beat/beatKeyHelpers.d.ts +180 -0
  101. package/dist/core/analysis/beat/beatKeyHelpers.d.ts.map +1 -0
  102. package/dist/core/analysis/beat/index.d.ts +41 -0
  103. package/dist/core/analysis/beat/index.d.ts.map +1 -0
  104. package/dist/core/analysis/beat/utils/audioUtils.d.ts +204 -0
  105. package/dist/core/analysis/beat/utils/audioUtils.d.ts.map +1 -0
  106. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts +404 -0
  107. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts.map +1 -0
  108. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts +61 -0
  109. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts.map +1 -0
  110. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts +33 -0
  111. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts.map +1 -0
  112. package/dist/core/analysis/index.d.ts +18 -0
  113. package/dist/core/analysis/index.d.ts.map +1 -0
  114. package/dist/core/combat/AI/AICombatRunner.d.ts +108 -0
  115. package/dist/core/combat/AI/AICombatRunner.d.ts.map +1 -0
  116. package/dist/core/combat/AI/CombatAI.d.ts +179 -0
  117. package/dist/core/combat/AI/CombatAI.d.ts.map +1 -0
  118. package/dist/core/combat/AI/CombatMetricsTracker.d.ts +30 -0
  119. package/dist/core/combat/AI/CombatMetricsTracker.d.ts.map +1 -0
  120. package/dist/core/combat/Analysis/BalanceValidator.d.ts +170 -0
  121. package/dist/core/combat/Analysis/BalanceValidator.d.ts.map +1 -0
  122. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts +231 -0
  123. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts.map +1 -0
  124. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts +203 -0
  125. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts.map +1 -0
  126. package/dist/core/combat/Analysis/ParameterSweep.d.ts +201 -0
  127. package/dist/core/combat/Analysis/ParameterSweep.d.ts.map +1 -0
  128. package/dist/core/combat/AttackResolver.d.ts +220 -0
  129. package/dist/core/combat/AttackResolver.d.ts.map +1 -0
  130. package/dist/core/combat/CombatEngine.d.ts +388 -0
  131. package/dist/core/combat/CombatEngine.d.ts.map +1 -0
  132. package/dist/core/combat/DiceRoller.d.ts +115 -0
  133. package/dist/core/combat/DiceRoller.d.ts.map +1 -0
  134. package/dist/core/combat/InitiativeRoller.d.ts +62 -0
  135. package/dist/core/combat/InitiativeRoller.d.ts.map +1 -0
  136. package/dist/core/combat/PartyAnalyzer.d.ts +215 -0
  137. package/dist/core/combat/PartyAnalyzer.d.ts.map +1 -0
  138. package/dist/core/combat/SeededDiceRoller.d.ts +120 -0
  139. package/dist/core/combat/SeededDiceRoller.d.ts.map +1 -0
  140. package/dist/core/combat/Simulation/CombatSimulator.d.ts +366 -0
  141. package/dist/core/combat/Simulation/CombatSimulator.d.ts.map +1 -0
  142. package/dist/core/combat/SpellCaster.d.ts +113 -0
  143. package/dist/core/combat/SpellCaster.d.ts.map +1 -0
  144. package/dist/core/config/index.d.ts +24 -0
  145. package/dist/core/config/index.d.ts.map +1 -0
  146. package/dist/core/config/progressionConfig.d.ts +73 -0
  147. package/dist/core/config/progressionConfig.d.ts.map +1 -0
  148. package/dist/core/config/sensorConfig.d.ts +134 -0
  149. package/dist/core/config/sensorConfig.d.ts.map +1 -0
  150. package/dist/core/equipment/BoxOpener.d.ts +175 -0
  151. package/dist/core/equipment/BoxOpener.d.ts.map +1 -0
  152. package/dist/core/equipment/EquipmentEffectApplier.d.ts +189 -0
  153. package/dist/core/equipment/EquipmentEffectApplier.d.ts.map +1 -0
  154. package/dist/core/equipment/EquipmentModifier.d.ts +327 -0
  155. package/dist/core/equipment/EquipmentModifier.d.ts.map +1 -0
  156. package/dist/core/equipment/EquipmentSpawnHelper.d.ts +246 -0
  157. package/dist/core/equipment/EquipmentSpawnHelper.d.ts.map +1 -0
  158. package/dist/core/equipment/EquipmentValidator.d.ts +173 -0
  159. package/dist/core/equipment/EquipmentValidator.d.ts.map +1 -0
  160. package/dist/core/extensions/ExtensionManager.d.ts +517 -0
  161. package/dist/core/extensions/ExtensionManager.d.ts.map +1 -0
  162. package/dist/core/extensions/WeightedSelector.d.ts +156 -0
  163. package/dist/core/extensions/WeightedSelector.d.ts.map +1 -0
  164. package/dist/core/extensions/index.d.ts +11 -0
  165. package/dist/core/extensions/index.d.ts.map +1 -0
  166. package/dist/core/extensions/initializeDefaults.d.ts +170 -0
  167. package/dist/core/extensions/initializeDefaults.d.ts.map +1 -0
  168. package/dist/core/features/FeatureEffectApplier.d.ts +102 -0
  169. package/dist/core/features/FeatureEffectApplier.d.ts.map +1 -0
  170. package/dist/core/features/FeatureQuery.d.ts +368 -0
  171. package/dist/core/features/FeatureQuery.d.ts.map +1 -0
  172. package/dist/core/features/FeatureTypes.d.ts +199 -0
  173. package/dist/core/features/FeatureTypes.d.ts.map +1 -0
  174. package/dist/core/features/FeatureValidator.d.ts +149 -0
  175. package/dist/core/features/FeatureValidator.d.ts.map +1 -0
  176. package/dist/core/features/index.d.ts +12 -0
  177. package/dist/core/features/index.d.ts.map +1 -0
  178. package/dist/core/generation/AbilityScoreCalculator.d.ts +83 -0
  179. package/dist/core/generation/AbilityScoreCalculator.d.ts.map +1 -0
  180. package/dist/core/generation/AppearanceGenerator.d.ts +32 -0
  181. package/dist/core/generation/AppearanceGenerator.d.ts.map +1 -0
  182. package/dist/core/generation/BeatConverter.d.ts +127 -0
  183. package/dist/core/generation/BeatConverter.d.ts.map +1 -0
  184. package/dist/core/generation/ButtonMapper.d.ts +346 -0
  185. package/dist/core/generation/ButtonMapper.d.ts.map +1 -0
  186. package/dist/core/generation/ButtonPatternLibrary.d.ts +92 -0
  187. package/dist/core/generation/ButtonPatternLibrary.d.ts.map +1 -0
  188. package/dist/core/generation/CRLevelConverter.d.ts +242 -0
  189. package/dist/core/generation/CRLevelConverter.d.ts.map +1 -0
  190. package/dist/core/generation/CharacterGenerator.d.ts +194 -0
  191. package/dist/core/generation/CharacterGenerator.d.ts.map +1 -0
  192. package/dist/core/generation/ClassSuggester.d.ts +184 -0
  193. package/dist/core/generation/ClassSuggester.d.ts.map +1 -0
  194. package/dist/core/generation/EnemyEquipmentGenerator.d.ts +151 -0
  195. package/dist/core/generation/EnemyEquipmentGenerator.d.ts.map +1 -0
  196. package/dist/core/generation/EnemyGenerator.d.ts +595 -0
  197. package/dist/core/generation/EnemyGenerator.d.ts.map +1 -0
  198. package/dist/core/generation/EquipmentGenerator.d.ts +204 -0
  199. package/dist/core/generation/EquipmentGenerator.d.ts.map +1 -0
  200. package/dist/core/generation/LegendaryGenerator.d.ts +213 -0
  201. package/dist/core/generation/LegendaryGenerator.d.ts.map +1 -0
  202. package/dist/core/generation/LevelGenerator.d.ts +390 -0
  203. package/dist/core/generation/LevelGenerator.d.ts.map +1 -0
  204. package/dist/core/generation/NamingEngine.d.ts +136 -0
  205. package/dist/core/generation/NamingEngine.d.ts.map +1 -0
  206. package/dist/core/generation/PitchBeatLinker.d.ts +150 -0
  207. package/dist/core/generation/PitchBeatLinker.d.ts.map +1 -0
  208. package/dist/core/generation/RaceSelector.d.ts +58 -0
  209. package/dist/core/generation/RaceSelector.d.ts.map +1 -0
  210. package/dist/core/generation/RhythmGenerator.d.ts +597 -0
  211. package/dist/core/generation/RhythmGenerator.d.ts.map +1 -0
  212. package/dist/core/generation/SkillAssigner.d.ts +78 -0
  213. package/dist/core/generation/SkillAssigner.d.ts.map +1 -0
  214. package/dist/core/generation/SpellManager.d.ts +132 -0
  215. package/dist/core/generation/SpellManager.d.ts.map +1 -0
  216. package/dist/core/generation/SpellcastingGenerator.d.ts +255 -0
  217. package/dist/core/generation/SpellcastingGenerator.d.ts.map +1 -0
  218. package/dist/core/generation/index.d.ts +41 -0
  219. package/dist/core/generation/index.d.ts.map +1 -0
  220. package/dist/core/parser/MetadataExtractor.d.ts +66 -0
  221. package/dist/core/parser/MetadataExtractor.d.ts.map +1 -0
  222. package/dist/core/parser/PlaylistParser.d.ts +45 -0
  223. package/dist/core/parser/PlaylistParser.d.ts.map +1 -0
  224. package/dist/core/playback/SubdivisionPlaybackController.d.ts +333 -0
  225. package/dist/core/playback/SubdivisionPlaybackController.d.ts.map +1 -0
  226. package/dist/core/playback/index.d.ts +5 -0
  227. package/dist/core/playback/index.d.ts.map +1 -0
  228. package/dist/core/progression/CharacterUpdater.d.ts +203 -0
  229. package/dist/core/progression/CharacterUpdater.d.ts.map +1 -0
  230. package/dist/core/progression/LevelUpProcessor.d.ts +234 -0
  231. package/dist/core/progression/LevelUpProcessor.d.ts.map +1 -0
  232. package/dist/core/progression/PrestigeSystem.d.ts +217 -0
  233. package/dist/core/progression/PrestigeSystem.d.ts.map +1 -0
  234. package/dist/core/progression/RhythmXPCalculator.d.ts +182 -0
  235. package/dist/core/progression/RhythmXPCalculator.d.ts.map +1 -0
  236. package/dist/core/progression/SessionTracker.d.ts +169 -0
  237. package/dist/core/progression/SessionTracker.d.ts.map +1 -0
  238. package/dist/core/progression/XPCalculator.d.ts +128 -0
  239. package/dist/core/progression/XPCalculator.d.ts.map +1 -0
  240. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts +97 -0
  241. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts.map +1 -0
  242. package/dist/core/progression/stat/StatManager.d.ts +179 -0
  243. package/dist/core/progression/stat/StatManager.d.ts.map +1 -0
  244. package/dist/core/sensors/EnvironmentalSensors.d.ts +301 -0
  245. package/dist/core/sensors/EnvironmentalSensors.d.ts.map +1 -0
  246. package/dist/core/sensors/GamingPlatformSensors.d.ts +162 -0
  247. package/dist/core/sensors/GamingPlatformSensors.d.ts.map +1 -0
  248. package/dist/core/sensors/GeolocationProvider.d.ts +156 -0
  249. package/dist/core/sensors/GeolocationProvider.d.ts.map +1 -0
  250. package/dist/core/sensors/MotionDetector.d.ts +58 -0
  251. package/dist/core/sensors/MotionDetector.d.ts.map +1 -0
  252. package/dist/core/sensors/SteamAPIClient.d.ts +108 -0
  253. package/dist/core/sensors/SteamAPIClient.d.ts.map +1 -0
  254. package/dist/core/sensors/WeatherAPIClient.d.ts +360 -0
  255. package/dist/core/sensors/WeatherAPIClient.d.ts.map +1 -0
  256. package/dist/core/sensors/schemas/weather.schema.d.ts +144 -0
  257. package/dist/core/sensors/schemas/weather.schema.d.ts.map +1 -0
  258. package/dist/core/skills/SkillQuery.d.ts +159 -0
  259. package/dist/core/skills/SkillQuery.d.ts.map +1 -0
  260. package/dist/core/skills/SkillTypes.d.ts +233 -0
  261. package/dist/core/skills/SkillTypes.d.ts.map +1 -0
  262. package/dist/core/skills/SkillValidator.d.ts +146 -0
  263. package/dist/core/skills/SkillValidator.d.ts.map +1 -0
  264. package/dist/core/skills/index.d.ts +11 -0
  265. package/dist/core/skills/index.d.ts.map +1 -0
  266. package/dist/core/spells/SpellQuery.d.ts +194 -0
  267. package/dist/core/spells/SpellQuery.d.ts.map +1 -0
  268. package/dist/core/spells/SpellTypes.d.ts +71 -0
  269. package/dist/core/spells/SpellTypes.d.ts.map +1 -0
  270. package/dist/core/spells/SpellValidator.d.ts +129 -0
  271. package/dist/core/spells/SpellValidator.d.ts.map +1 -0
  272. package/dist/core/spells/index.d.ts +11 -0
  273. package/dist/core/spells/index.d.ts.map +1 -0
  274. package/dist/core/types/AudioProfile.d.ts +143 -0
  275. package/dist/core/types/AudioProfile.d.ts.map +1 -0
  276. package/dist/core/types/BeatMap.d.ts +1825 -0
  277. package/dist/core/types/BeatMap.d.ts.map +1 -0
  278. package/dist/core/types/ButtonMapping.d.ts +345 -0
  279. package/dist/core/types/ButtonMapping.d.ts.map +1 -0
  280. package/dist/core/types/Character.d.ts +397 -0
  281. package/dist/core/types/Character.d.ts.map +1 -0
  282. package/dist/core/types/ChartedBeatMap.d.ts +169 -0
  283. package/dist/core/types/ChartedBeatMap.d.ts.map +1 -0
  284. package/dist/core/types/Combat.d.ts +268 -0
  285. package/dist/core/types/Combat.d.ts.map +1 -0
  286. package/dist/core/types/CombatAI.d.ts +143 -0
  287. package/dist/core/types/CombatAI.d.ts.map +1 -0
  288. package/dist/core/types/Enemy.d.ts +447 -0
  289. package/dist/core/types/Enemy.d.ts.map +1 -0
  290. package/dist/core/types/Environmental.d.ts +213 -0
  291. package/dist/core/types/Environmental.d.ts.map +1 -0
  292. package/dist/core/types/Equipment.d.ts +309 -0
  293. package/dist/core/types/Equipment.d.ts.map +1 -0
  294. package/dist/core/types/ISessionTracker.d.ts +48 -0
  295. package/dist/core/types/ISessionTracker.d.ts.map +1 -0
  296. package/dist/core/types/LevelExport.d.ts +366 -0
  297. package/dist/core/types/LevelExport.d.ts.map +1 -0
  298. package/dist/core/types/Playlist.d.ts +70 -0
  299. package/dist/core/types/Playlist.d.ts.map +1 -0
  300. package/dist/core/types/Prestige.d.ts +94 -0
  301. package/dist/core/types/Prestige.d.ts.map +1 -0
  302. package/dist/core/types/Progression.d.ts +214 -0
  303. package/dist/core/types/Progression.d.ts.map +1 -0
  304. package/dist/core/types/RhythmXP.d.ts +398 -0
  305. package/dist/core/types/RhythmXP.d.ts.map +1 -0
  306. package/dist/core/utils/AbilityConstants.d.ts +31 -0
  307. package/dist/core/utils/AbilityConstants.d.ts.map +1 -0
  308. package/dist/core/utils/EffectApplierUtils.d.ts +56 -0
  309. package/dist/core/utils/EffectApplierUtils.d.ts.map +1 -0
  310. package/dist/core/utils/ImageValidator.d.ts +66 -0
  311. package/dist/core/utils/ImageValidator.d.ts.map +1 -0
  312. package/dist/core/utils/PrerequisiteValidator.d.ts +88 -0
  313. package/dist/core/utils/PrerequisiteValidator.d.ts.map +1 -0
  314. package/dist/essentia-wasm.es-BUEnKUts.js +2990 -0
  315. package/dist/essentia.js-model.es-CGA0xotH.js +306 -0
  316. package/dist/index.d.ts +176 -0
  317. package/dist/index.d.ts.map +1 -0
  318. package/dist/playlist-data-engine.js +124 -0
  319. package/dist/playlist-data-engine.mjs +49251 -0
  320. package/dist/utils/EnchantmentLibrary.d.ts +378 -0
  321. package/dist/utils/EnchantmentLibrary.d.ts.map +1 -0
  322. package/dist/utils/arweaveGatewayManager.d.ts +485 -0
  323. package/dist/utils/arweaveGatewayManager.d.ts.map +1 -0
  324. package/dist/utils/arweaveUtils.d.ts +118 -0
  325. package/dist/utils/arweaveUtils.d.ts.map +1 -0
  326. package/dist/utils/constants.d.ts +439 -0
  327. package/dist/utils/constants.d.ts.map +1 -0
  328. package/dist/utils/equipmentConstants.d.ts +60 -0
  329. package/dist/utils/equipmentConstants.d.ts.map +1 -0
  330. package/dist/utils/hash.d.ts +33 -0
  331. package/dist/utils/hash.d.ts.map +1 -0
  332. package/dist/utils/logger.d.ts +192 -0
  333. package/dist/utils/logger.d.ts.map +1 -0
  334. package/dist/utils/magicItemExamples.d.ts +46 -0
  335. package/dist/utils/magicItemExamples.d.ts.map +1 -0
  336. package/dist/utils/playlistUtils.d.ts +149 -0
  337. package/dist/utils/playlistUtils.d.ts.map +1 -0
  338. package/dist/utils/random.d.ts +34 -0
  339. package/dist/utils/random.d.ts.map +1 -0
  340. package/dist/utils/sensorDashboard.d.ts +60 -0
  341. package/dist/utils/sensorDashboard.d.ts.map +1 -0
  342. package/dist/utils/validators.d.ts +189 -0
  343. package/dist/utils/validators.d.ts.map +1 -0
  344. package/dist/vite.svg +1 -0
  345. package/package.json +82 -0
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Monstrosity Enemy Templates
3
+ *
4
+ * Contains monstrosity enemy templates with varied traits.
5
+ * Monstrosities are bizarre creatures that defy normal classification.
6
+ * Unlike other categories, monstrosities have no universal category traits -
7
+ * each creature has its own unique abilities and characteristics.
8
+ *
9
+ * Monstrosities are often found in wild places, dungeons, or as
10
+ * guardians of cursed locations. They include hybrids of multiple
11
+ * creatures and bizarre magical creations.
12
+ */
13
+ import type { EnemyTemplate } from '../../core/types/Enemy.js';
14
+ /**
15
+ * Monstrosity enemy templates
16
+ *
17
+ * These 4 templates provide monstrosity enemies with:
18
+ * - Varied resistances (no universal category trait)
19
+ * - Unique abilities per creature
20
+ * - Varied archetypes: Brute (Owlbear, Mimic), Archer (Griffin), Support (Basilisk)
21
+ */
22
+ export declare const MONSTROSITY_TEMPLATES: EnemyTemplate[];
23
+ /**
24
+ * Helper function to get a monstrosity template by ID
25
+ *
26
+ * @param id - The template ID (e.g., 'owlbear', 'griffin', 'mimic', 'basilisk')
27
+ * @returns The matching template, or undefined if not found
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const owlbear = getMonstrosityTemplateById('owlbear');
32
+ * if (owlbear) {
33
+ * console.log(owlbear.name); // 'Owlbear'
34
+ * }
35
+ * ```
36
+ */
37
+ export declare function getMonstrosityTemplateById(id: string): EnemyTemplate | undefined;
38
+ /**
39
+ * Get all monstrosity templates
40
+ *
41
+ * @returns Array of all monstrosity templates
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const monstrosities = getMonstrosityTemplates();
46
+ * console.log(monstrosities.length); // 4 (Owlbear, Griffin, Mimic, Basilisk)
47
+ * ```
48
+ */
49
+ export declare function getMonstrosityTemplates(): EnemyTemplate[];
50
+ /**
51
+ * Get monstrosity templates by archetype
52
+ *
53
+ * @param archetype - The enemy archetype ('brute', 'archer', 'support')
54
+ * @returns Array of monstrosity templates with the specified archetype
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const monstrosityBrutes = getMonstrosityTemplatesByArchetype('brute');
59
+ * console.log(monstrosityBrutes.length); // 2 (Owlbear, Mimic)
60
+ * ```
61
+ */
62
+ export declare function getMonstrosityTemplatesByArchetype(archetype: string): EnemyTemplate[];
63
+ //# sourceMappingURL=Monstrosity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Monstrosity.d.ts","sourceRoot":"","sources":["../../../src/constants/EnemyTemplates/Monstrosity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAkLhD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,EAAE,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAErF"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Undead Enemy Templates
3
+ *
4
+ * Contains undead enemy templates with category-specific traits:
5
+ * - Necrotic resistance (half damage from necrotic attacks)
6
+ * - Poison immunity (immune to poison damage and poisoned condition)
7
+ *
8
+ * Undead are animated corpses or spirits, often found in graveyards,
9
+ * tombs, and cursed locations. They typically have dark, eerie audio preferences.
10
+ */
11
+ import type { EnemyTemplate } from '../../core/types/Enemy.js';
12
+ /**
13
+ * Undead enemy templates
14
+ *
15
+ * These 4 templates provide undead enemies with:
16
+ * - Necrotic resistance (elite+ rarity scaling)
17
+ * - Poison immunity (all rarities)
18
+ * - Varied archetypes: Archer (Skeleton), Brute (Zombie, Wight), Support (Ghost)
19
+ */
20
+ export declare const UNDEAD_TEMPLATES: EnemyTemplate[];
21
+ /**
22
+ * Helper function to get an undead template by ID
23
+ *
24
+ * @param id - The template ID (e.g., 'skeleton', 'zombie', 'wight', 'ghost')
25
+ * @returns The matching template, or undefined if not found
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const skeleton = getUndeadTemplateById('skeleton');
30
+ * if (skeleton) {
31
+ * console.log(skeleton.name); // 'Skeleton'
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function getUndeadTemplateById(id: string): EnemyTemplate | undefined;
36
+ /**
37
+ * Get all undead templates
38
+ *
39
+ * @returns Array of all undead templates
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const undead = getUndeadTemplates();
44
+ * console.log(undead.length); // 4 (Skeleton, Zombie, Wight, Ghost)
45
+ * ```
46
+ */
47
+ export declare function getUndeadTemplates(): EnemyTemplate[];
48
+ /**
49
+ * Get undead templates by archetype
50
+ *
51
+ * @param archetype - The enemy archetype ('brute', 'archer', 'support')
52
+ * @returns Array of undead templates with the specified archetype
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const undeadBrutes = getUndeadTemplatesByArchetype('brute');
57
+ * console.log(undeadBrutes.length); // 2 (Zombie, Wight)
58
+ * ```
59
+ */
60
+ export declare function getUndeadTemplatesByArchetype(archetype: string): EnemyTemplate[];
61
+ //# sourceMappingURL=Undead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Undead.d.ts","sourceRoot":"","sources":["../../../src/constants/EnemyTemplates/Undead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAkL3C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,EAAE,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAEhF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Item Creation Templates for enchantment
3
+ *
4
+ * These templates can be applied to base equipment to create magic variants.
5
+ * Templates define reusable enchantment patterns that add properties, tags,
6
+ * and effects to base items.
7
+ *
8
+ * Usage: Import `ITEM_CREATION_TEMPLATES` and use template IDs to enchant items.
9
+ * Templates are applied by the EquipmentModifier and can be extended via ExtensionManager.
10
+ *
11
+ * Template types:
12
+ * - Enhancement bonuses: +1, +2, +3 to weapons and armor
13
+ * - Elemental weapons: Flaming, Frost, Shocking
14
+ * - Special effects: Vicious, and other combat enhancements
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { applyTemplate } from '../utils/magicItemExamples.js';
19
+ * import { DEFAULT_EQUIPMENT } from './DefaultEquipment.js';
20
+ * import { ITEM_CREATION_TEMPLATES } from './ItemTemplates.js';
21
+ *
22
+ * const baseSword = DEFAULT_EQUIPMENT['Longsword'];
23
+ * const flamingSword = applyTemplate(baseSword, 'flaming_weapon_template');
24
+ * ```
25
+ */
26
+ import type { EnhancedEquipment } from '../core/types/Equipment.js';
27
+ /**
28
+ * Item Creation Templates for enchantment
29
+ *
30
+ * These templates can be applied to base equipment to create magic variants.
31
+ * Templates define reusable enchantment patterns that add properties, tags,
32
+ * and effects to base items.
33
+ *
34
+ * Template types:
35
+ * - Enhancement bonuses: +1, +2, +3 to weapons and armor
36
+ * - Elemental weapons: Flaming, Frost, Shocking
37
+ * - Special effects: Vicious, and other combat enhancements
38
+ */
39
+ export declare const ITEM_CREATION_TEMPLATES: Record<string, Partial<EnhancedEquipment>>;
40
+ //# sourceMappingURL=ItemTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemTemplates.d.ts","sourceRoot":"","sources":["../../src/constants/ItemTemplates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CA8K9E,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Magic Items Database
3
+ *
4
+ * Example Magic Items demonstrating all equipment system capabilities.
5
+ *
6
+ * This collection demonstrates all capabilities of the Advanced Equipment System:
7
+ * - Equipment properties (stat bonuses, skill proficiencies, ability unlocks, etc.)
8
+ * - Equipment-granted features (registry features and inline mini-features)
9
+ * - Equipment-granted skills and spells
10
+ * - D&D 5e standard stats (damage dice, AC, properties)
11
+ * - Runtime equipment modification (templates + per-instance)
12
+ * - Spawn weight system for generation control
13
+ * - Cursed items with negative effects
14
+ * - Conditional effects
15
+ *
16
+ * These examples can be used as:
17
+ * 1. Reference for creating custom magic items
18
+ * 2. Test fixtures for the equipment system
19
+ * 3. Starting point for ExtensionManager registration
20
+ *
21
+ * Previously located in src/utils/equipmentConstants.ts.
22
+ *
23
+ * @module constants/MagicItems
24
+ */
25
+ import type { EnhancedEquipment } from '../core/types/Equipment.js';
26
+ /**
27
+ * Example Magic Items demonstrating all equipment system capabilities
28
+ */
29
+ export declare const MAGIC_ITEMS: EnhancedEquipment[];
30
+ //# sourceMappingURL=MagicItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MagicItems.d.ts","sourceRoot":"","sources":["../../src/constants/MagicItems.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,iBAAiB,EA2pC1C,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Spell Slot Constants
3
+ *
4
+ * D&D 5e spell slot progression tables for combat use.
5
+ * Based on Player's Handbook (2014) full caster progression.
6
+ *
7
+ * The FULL_CASTER_SLOTS table maps character level (1-20) to an array
8
+ * of spell slot counts per spell level (index 0 unused, indices 1-9
9
+ * represent spell levels 1-9).
10
+ *
11
+ * This table is the canonical source used by CombatEngine and SpellCaster.
12
+ * For per-class spell slot data (including half-casters like Paladin/Ranger
13
+ * and pact-magic casters like Warlock), see SPELL_SLOTS_BY_CLASS in
14
+ * DefaultSpells.ts.
15
+ */
16
+ /**
17
+ * D&D 5e full caster spell slot progression by character level.
18
+ *
19
+ * Each entry maps character level → [_, level1, level2, ..., level9].
20
+ * Index 0 is unused padding to align array indices with spell levels.
21
+ */
22
+ export declare const FULL_CASTER_SLOTS: Record<number, number[]>;
23
+ /**
24
+ * Convert FULL_CASTER_SLOTS entry into the flat `{ [level]: number }` format
25
+ * used by Combatant.spellSlots.
26
+ */
27
+ export declare function getFullCasterSlotsForLevel(characterLevel: number): {
28
+ [level: number]: number;
29
+ };
30
+ //# sourceMappingURL=SpellSlots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpellSlots.d.ts","sourceRoot":"","sources":["../../src/constants/SpellSlots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAqBtD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,GACrB;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAa7B"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Stat Level Scaling — Level-based stat scaling functions for enemy generation
3
+ *
4
+ * Enables HP, attack, and defense to scale independently at different effective
5
+ * levels, allowing creative encounter designs (e.g., tanky low-damage enemy or
6
+ * glass cannon). The AI and simulator don't need to know about this — they read
7
+ * the final CharacterSheet stats. This is purely a generation-layer concern.
8
+ *
9
+ * Design principle: When all three levels match CR, output must be identical
10
+ * to current generation (backward compatible). The scaling functions compute
11
+ * what the stats *would be* at a given level, and the generator uses those values.
12
+ */
13
+ import type { AbilityScores } from '../core/types/Character.js';
14
+ import type { EnemyRarity, EnemyArchetype, EquipmentConfig } from '../core/types/Enemy.js';
15
+ /**
16
+ * Returns a multiplier for how much a stat increases at a given level vs level 1.
17
+ *
18
+ * Uses a logarithmic curve that provides noticeable growth at low levels
19
+ * but tapers off at high levels, preventing exponential scaling:
20
+ * - Level 1: 1.0x
21
+ * - Level 5: 1.24x
22
+ * - Level 10: 1.44x
23
+ * - Level 15: 1.59x
24
+ * - Level 20: 1.70x
25
+ * - Level 25: 1.84x
26
+ * - Level 30: 2.015x
27
+ *
28
+ * @param level - Effective level (1-30+, supports fractional)
29
+ * @returns Multiplier where level 1 = 1.0
30
+ */
31
+ export declare function getLevelScalingFactor(level: number): number;
32
+ /**
33
+ * Scale HP for a given effective level and rarity.
34
+ *
35
+ * Current system: HP = baseHP * rarityMultiplier * fractionalCRMultiplier
36
+ * New system adds level-based scaling: HP = baseHP * levelFactor * rarityMultiplier * fractionalCRMultiplier
37
+ *
38
+ * When level = CR-derived level and no overrides, the levelFactor provides
39
+ * the missing CR-based HP scaling that the current system lacks.
40
+ *
41
+ * @param baseHP - Base HP from enemy template (e.g., 15 for orc)
42
+ * @param level - Effective HP level (1-30+)
43
+ * @param rarity - Enemy rarity tier (affects stat multiplier)
44
+ * @returns Scaled HP value
45
+ */
46
+ export declare function getHPAtLevel(baseHP: number, level: number, rarity: EnemyRarity): number;
47
+ /**
48
+ * Get stat multiplier for fractional CR (sub-level enemies).
49
+ *
50
+ * Uses a continuous linear ramp from 0.5x at CR 0 to 1.0x at CR 1:
51
+ * - CR 0.125: ~0.56x
52
+ * - CR 0.25: ~0.63x
53
+ * - CR 0.5: ~0.75x
54
+ * - CR 1.0: 1.0x
55
+ *
56
+ * Exported so EnemyGenerator can use the same formula.
57
+ */
58
+ export declare function getFractionalCRStatMultiplier(level: number): number;
59
+ /**
60
+ * Compute attack stats (damage die, damage modifier, attack bonus) at a given level.
61
+ *
62
+ * Current system:
63
+ * - Damage die: purely rarity-based (d6/d8/d10/d12)
64
+ * - Damage modifier: hardcoded per rarity (+2/+3/+4/+6)
65
+ * - Attack bonus: proficiency + ability modifier (but ability modifier is ignored)
66
+ *
67
+ * New system:
68
+ * - Damage die: level-based (d6 → d8 → d10 → d12 → 2d6 → 2d8)
69
+ * - Damage modifier: actual ability modifier from primary stat + base level bonus
70
+ * - Attack bonus: proficiency + ability modifier + extra level bonus
71
+ *
72
+ * @param baseStats - The scaled ability scores for the enemy
73
+ * @param level - Effective attack level (1-30+)
74
+ * @param rarity - Enemy rarity tier
75
+ * @param archetype - Enemy combat archetype (determines primary stat)
76
+ * @returns Object with damageDie, damageModifier, and attackBonus
77
+ */
78
+ export declare function getAttackAtLevel(baseStats: AbilityScores, level: number, rarity: EnemyRarity, archetype: EnemyArchetype): {
79
+ damageDie: string;
80
+ damageModifier: number;
81
+ attackBonus: number;
82
+ };
83
+ /**
84
+ * Compute AC (defense) at a given level.
85
+ *
86
+ * Current system: AC = baseAC + DEX_modifier + equipment_modifier
87
+ * New system adds level-based AC scaling: AC = baseAC + DEX_modifier + equipment_modifier + levelBonus
88
+ *
89
+ * @param baseStats - The scaled ability scores for the enemy
90
+ * @param level - Effective defense level (1-30+)
91
+ * @param baseAC - Base AC from enemy template (e.g., 13 for orc)
92
+ * @param equipment - Equipment configuration (armor, shield)
93
+ * @returns Computed AC value
94
+ */
95
+ export declare function getDefenseAtLevel(baseStats: AbilityScores, level: number, baseAC: number, equipment: EquipmentConfig): number;
96
+ /**
97
+ * Compute the ability modifier that should be used for damage,
98
+ * replacing the hardcoded rarity-based modifier.
99
+ *
100
+ * Uses the actual primary ability score for the archetype:
101
+ * - Brute: STR modifier
102
+ * - Archer: DEX modifier
103
+ * - Support: CHA modifier
104
+ *
105
+ * Plus a small base bonus from level scaling.
106
+ *
107
+ * @param baseStats - Scaled ability scores
108
+ * @param level - Effective level
109
+ * @param archetype - Enemy archetype
110
+ * @returns Damage modifier to use
111
+ */
112
+ export declare function getDamageModifierForStats(baseStats: AbilityScores, level: number, archetype: EnemyArchetype): number;
113
+ //# sourceMappingURL=StatScaling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatScaling.d.ts","sourceRoot":"","sources":["../../src/constants/StatScaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAsH3F;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GACpB,MAAM,CAWR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,cAAc,GAC1B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAmBpE;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,GAC3B,MAAM,CAmBR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACrC,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,GAC1B,MAAM,CAKR"}