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,439 @@
1
+ /**
2
+ * D&D 5e data constants
3
+ */
4
+ import type { Race, Class, Ability, Skill } from '../core/types/Character.js';
5
+ import type { Spell, SpellPrerequisite } from '../core/spells/SpellTypes.js';
6
+ import type { EquipmentType, EquipmentRarity, EquipmentProperty, EquipmentMiniFeature, BoxContents } from '../core/types/Equipment.js';
7
+ export type { Spell, SpellPrerequisite };
8
+ export type { RaceDataEntry, CustomRaceDataEntry } from '../constants/DefaultRaces.js';
9
+ export type { ClassSpellListData } from '../constants/DefaultSpells.js';
10
+ /**
11
+ * Class data entry interface
12
+ *
13
+ * Defines the structure for class data including primary ability, hit die,
14
+ * saving throws, spellcasting, skills, expertise, and optional audio preferences.
15
+ *
16
+ * ## Template-Based Class System
17
+ *
18
+ * This interface supports creating custom classes that extend (inherit from) existing
19
+ * D&D 5e base classes through the `baseClass` property. This enables rapid creation
20
+ * of specialized classes (e.g., "Necromancer" extending "Wizard") without duplicating
21
+ * all base class properties.
22
+ *
23
+ * ### How Template Inheritance Works
24
+ *
25
+ * When `baseClass` is specified in a custom class registration:
26
+ *
27
+ * 1. **Base class lookup**: The system retrieves the base class data from CLASS_DATA
28
+ * 2. **Property merging**: Base class properties are merged with custom class properties
29
+ * 3. **Override behavior**: Custom properties take precedence over base class properties
30
+ * 4. **Special handling for available_skills**: Custom skill list replaces base skill list
31
+ * (not merged), allowing complete customization of class skills
32
+ *
33
+ * ### Example Usage
34
+ *
35
+ * ```typescript
36
+ * import { ExtensionManager } from './core/extensions/ExtensionManager.js';
37
+ *
38
+ * const manager = ExtensionManager.getInstance();
39
+ *
40
+ * // Register a custom "Necromancer" class based on Wizard
41
+ * manager.register('classes.data', [{
42
+ * name: 'Necromancer',
43
+ * baseClass: 'Wizard', // Inherits from Wizard by default
44
+ * primary_ability: 'INT', // Same as Wizard (could omit to inherit)
45
+ * hit_die: 8, // Same as Wizard (could omit to inherit)
46
+ * saving_throws: ['INT', 'WIS'], // Same as Wizard (could omit to inherit)
47
+ * is_spellcaster: true, // Same as Wizard (could omit to inherit)
48
+ * skill_count: 2, // Same as Wizard (could omit to inherit)
49
+ * // Override available_skills to include custom skill
50
+ * available_skills: ['arcana', 'medicine', 'religion', 'necromancy'],
51
+ * has_expertise: false // Same as Wizard (could omit to inherit)
52
+ * }]);
53
+ * ```
54
+ *
55
+ * ### Complete Custom Classes
56
+ *
57
+ * Classes without `baseClass` are standalone and must specify all required properties:
58
+ *
59
+ * ```typescript
60
+ * manager.register('classes.data', [{
61
+ * name: 'Runecaster',
62
+ * // No baseClass - must specify all properties
63
+ * primary_ability: 'WIS',
64
+ * hit_die: 8,
65
+ * saving_throws: ['WIS', 'CON'],
66
+ * is_spellcaster: true,
67
+ * skill_count: 3,
68
+ * available_skills: ['arcana', 'nature', 'religion', 'insight', 'medicine'],
69
+ * has_expertise: false
70
+ * }]);
71
+ * ```
72
+ *
73
+ * ### Integration with Other Extension Categories
74
+ *
75
+ * Custom classes can be further customized with:
76
+ *
77
+ * - **Custom skills**: Register via `skills.${ABILITY}` categories
78
+ * - **Custom features**: Register via `classFeatures.${ClassName}` categories
79
+ * - **Custom spell lists**: Register via `classSpellLists.${ClassName}` categories
80
+ * - **Custom spell slots**: Register via `classSpellSlots` category
81
+ * - **Custom equipment**: Register via `classStartingEquipment.${ClassName}` categories
82
+ *
83
+ */
84
+ export interface ClassDataEntry {
85
+ /** Class name (required for custom classes, optional for built-in classes where the key serves as the name) */
86
+ name?: string;
87
+ /** Primary ability score for this class */
88
+ primary_ability: Ability;
89
+ /** Hit die size for this class */
90
+ hit_die: number;
91
+ /** Saving throw proficiencies */
92
+ saving_throws: Ability[];
93
+ /** Whether this class can cast spells */
94
+ is_spellcaster: boolean;
95
+ /** Number of skills to choose from */
96
+ skill_count: number;
97
+ /** Available skills for this class (includes custom skills) */
98
+ available_skills: string[];
99
+ /** Whether this class has expertise */
100
+ has_expertise: boolean;
101
+ /** Number of expertise choices (if has_expertise is true) */
102
+ expertise_count?: number;
103
+ /**
104
+ * For template-based classes: the base class to inherit from
105
+ *
106
+ * When specified, the custom class will inherit properties from the base class,
107
+ * with custom properties overriding inherited ones. This enables rapid creation
108
+ * of specialized classes (e.g., "Necromancer" extending "Wizard").
109
+ *
110
+ * The base class must be a valid D&D 5e class name (one of: Barbarian, Bard,
111
+ * Cleric, Druid, Fighter, Monk, Paladin, Ranger, Rogue, Sorcerer, Warlock, Wizard).
112
+ *
113
+ * @example
114
+ * // Necromancer extends Wizard
115
+ * baseClass: 'Wizard'
116
+ */
117
+ baseClass?: Class;
118
+ /** Optional: Audio preferences for class affinity calculation */
119
+ audio_preferences?: {
120
+ primary: 'bass' | 'treble' | 'mid' | 'amplitude' | 'chaos';
121
+ secondary?: 'bass' | 'treble' | 'mid' | 'amplitude' | 'chaos';
122
+ tertiary?: 'bass' | 'treble' | 'mid' | 'amplitude' | 'chaos';
123
+ bass?: number;
124
+ treble?: number;
125
+ mid?: number;
126
+ amplitude?: number;
127
+ };
128
+ /** Optional: User-facing description of this class */
129
+ description?: string;
130
+ /** Optional icon URL for small UI display */
131
+ icon?: string;
132
+ /** Optional image URL for larger display */
133
+ image?: string;
134
+ }
135
+ /**
136
+ * Get class data (default or custom)
137
+ *
138
+ * This helper function retrieves class data from either:
139
+ * 1. The default CLASS_DATA constant (for built-in classes)
140
+ * 2. The ExtensionManager (for custom classes registered via 'classes.data')
141
+ *
142
+ * For template-based custom classes (those with a baseClass property),
143
+ * the base class data is merged with custom data, with custom properties
144
+ * taking precedence.
145
+ *
146
+ * @param className - The class name to look up
147
+ * @returns Class data entry or undefined if not found
148
+ *
149
+ * @example
150
+ * // Get default class data
151
+ * const wizardData = getClassData('Wizard');
152
+ * console.log(wizardData.hit_die); // 6
153
+ *
154
+ * // Get custom class data (if registered via ExtensionManager)
155
+ * const necromancerData = getClassData('Necromancer');
156
+ * if (necromancerData) {
157
+ * console.log(necromancerData.baseClass); // 'Wizard'
158
+ * console.log(necromancerData.primary_ability); // 'INT'
159
+ * }
160
+ */
161
+ /**
162
+ * Get class data (default or custom) - asynchronous version
163
+ *
164
+ * This helper function retrieves class data from either:
165
+ * 1. The default CLASS_DATA constant (for built-in classes)
166
+ * 2. The ExtensionManager (for custom classes registered via 'classes.data')
167
+ *
168
+ * ## Template-Based Class Inheritance
169
+ *
170
+ * For template-based custom classes (those with a baseClass property),
171
+ * the base class data is merged with custom data following these rules:
172
+ *
173
+ * 1. **Base class lookup**: Retrieves the base class data from CLASS_DATA
174
+ * 2. **Shallow merge**: Base properties are spread first, then custom properties
175
+ * 3. **Override behavior**: Custom properties take precedence over base properties
176
+ * 4. **Special handling for available_skills**: The custom skill list completely replaces
177
+ * the base skill list (not merged), allowing complete customization
178
+ *
179
+ * The merge logic is:
180
+ * ```typescript
181
+ * {
182
+ * ...baseData, // Base class properties first
183
+ * ...classEntry, // Custom properties override base
184
+ * available_skills: classEntry.available_skills || baseData.available_skills
185
+ * }
186
+ * ```
187
+ *
188
+ * ### Usage Flow for Custom Classes
189
+ *
190
+ * 1. Register class data via `ExtensionManager.register('classes.data', [...])`
191
+ * 2. Register class name via `ExtensionManager.register('classes', [asClass('Necromancer')])`
192
+ * 3. Optionally register custom features, skills, spells, equipment
193
+ * 4. Use `CharacterGenerator.generate()` with `forceClass: asClass('Necromancer')`
194
+ *
195
+ * @param className - The class name to look up
196
+ * @returns Class data entry or undefined if not found
197
+ *
198
+ * @example
199
+ * // Get default class data
200
+ * const wizardData = await getClassDataAsync('Wizard');
201
+ * console.log(wizardData.hit_die); // 6
202
+ *
203
+ * // Get custom class data (if registered via ExtensionManager)
204
+ * const necromancerData = await getClassDataAsync('Necromancer');
205
+ * if (necromancerData) {
206
+ * console.log(necromancerData.baseClass); // 'Wizard'
207
+ * console.log(necromancerData.primary_ability); // 'INT' (inherited from Wizard)
208
+ * console.log(necromancerData.available_skills); // ['arcana', 'medicine', 'religion', 'necromancy'] (custom)
209
+ * }
210
+ */
211
+ export declare function getClassDataAsync(className: string): Promise<ClassDataEntry | undefined>;
212
+ /**
213
+ * Get class data (default or custom)
214
+ *
215
+ * This helper function retrieves class data from either:
216
+ * 1. The default CLASS_DATA constant (for built-in classes)
217
+ * 2. The ExtensionManager (for custom classes registered via 'classes.data')
218
+ *
219
+ * ## Template-Based Class Inheritance
220
+ *
221
+ * For template-based custom classes (those with a baseClass property),
222
+ * the base class data is merged with custom data following these rules:
223
+ *
224
+ * 1. **Base class lookup**: Retrieves the base class data from CLASS_DATA
225
+ * 2. **Shallow merge**: Base properties are spread first, then custom properties
226
+ * 3. **Override behavior**: Custom properties take precedence over base properties
227
+ * 4. **Special handling for available_skills**: The custom skill list completely replaces
228
+ * the base skill list (not merged), allowing complete customization
229
+ *
230
+ * The merge logic is:
231
+ * ```typescript
232
+ * {
233
+ * ...baseData, // Base class properties first
234
+ * ...classEntry, // Custom properties override base
235
+ * available_skills: classEntry.available_skills || baseData.available_skills
236
+ * }
237
+ * ```
238
+ *
239
+ * ### Usage Flow for Custom Classes
240
+ *
241
+ * 1. Register class data via `ExtensionManager.register('classes.data', [...])`
242
+ * 2. Register class name via `ExtensionManager.register('classes', [asClass('Necromancer')])`
243
+ * 3. Optionally register custom features, skills, spells, equipment
244
+ * 4. Use `CharacterGenerator.generate()` with `forceClass: asClass('Necromancer')`
245
+ *
246
+ * @param className - The class name to look up
247
+ * @returns Class data entry or undefined if not found
248
+ *
249
+ * @example
250
+ * // Get default class data
251
+ * const wizardData = getClassData('Wizard');
252
+ * console.log(wizardData.hit_die); // 6
253
+ *
254
+ * // Get custom class data (if registered via ExtensionManager)
255
+ * const necromancerData = getClassData('Necromancer');
256
+ * if (necromancerData) {
257
+ * console.log(necromancerData.baseClass); // 'Wizard'
258
+ * console.log(necromancerData.primary_ability); // 'INT' (inherited from Wizard)
259
+ * console.log(necromancerData.available_skills); // ['arcana', 'medicine', 'religion', 'necromancy'] (custom)
260
+ * }
261
+ */
262
+ export declare function getClassData(className: string): ClassDataEntry | undefined;
263
+ export declare const XP_THRESHOLDS: Record<number, number>;
264
+ export declare const PROFICIENCY_BONUS: Record<number, number>;
265
+ export declare const ALL_RACES: Race[];
266
+ /**
267
+ * Centralized naming data for character name generation
268
+ * Contains adjectives, descriptors, and word pools for various naming formats
269
+ */
270
+ export declare const NAMING_DATA: {
271
+ adjectives: {
272
+ techno: {
273
+ bass: string[];
274
+ treble: string[];
275
+ mid: string[];
276
+ quiet: string[];
277
+ loud: string[];
278
+ };
279
+ rock: {
280
+ bass: string[];
281
+ treble: string[];
282
+ mid: string[];
283
+ quiet: string[];
284
+ loud: string[];
285
+ };
286
+ metal: {
287
+ bass: string[];
288
+ treble: string[];
289
+ mid: string[];
290
+ quiet: string[];
291
+ loud: string[];
292
+ };
293
+ ambient: {
294
+ bass: string[];
295
+ treble: string[];
296
+ mid: string[];
297
+ quiet: string[];
298
+ loud: string[];
299
+ };
300
+ classical: {
301
+ bass: string[];
302
+ treble: string[];
303
+ mid: string[];
304
+ quiet: string[];
305
+ loud: string[];
306
+ };
307
+ jazz: {
308
+ bass: string[];
309
+ treble: string[];
310
+ mid: string[];
311
+ quiet: string[];
312
+ loud: string[];
313
+ };
314
+ 'hip hop': {
315
+ bass: string[];
316
+ treble: string[];
317
+ mid: string[];
318
+ quiet: string[];
319
+ loud: string[];
320
+ };
321
+ pop: {
322
+ bass: string[];
323
+ treble: string[];
324
+ mid: string[];
325
+ quiet: string[];
326
+ loud: string[];
327
+ };
328
+ electronic: {
329
+ bass: string[];
330
+ treble: string[];
331
+ mid: string[];
332
+ quiet: string[];
333
+ loud: string[];
334
+ };
335
+ default: {
336
+ bass: string[];
337
+ treble: string[];
338
+ mid: string[];
339
+ quiet: string[];
340
+ loud: string[];
341
+ };
342
+ };
343
+ descriptors: string[];
344
+ classAspects: Record<Class, string[]>;
345
+ prefixes: string[];
346
+ suffixes: string[];
347
+ occupations: string[];
348
+ realms: string[];
349
+ subtitlePrefixes: string[];
350
+ };
351
+ export declare const SKILL_ABILITY_MAP: Record<Skill, Ability>;
352
+ /**
353
+ * Equipment data structure
354
+ *
355
+ * This interface now uses the same types as EnhancedEquipment for consistency.
356
+ * The 'source' field is optional for backward compatibility but defaults to 'default'.
357
+ */
358
+ export interface Equipment {
359
+ name: string;
360
+ type: EquipmentType;
361
+ rarity: EquipmentRarity;
362
+ weight: number;
363
+ properties?: EquipmentProperty[];
364
+ grantsFeatures?: Array<string | EquipmentMiniFeature>;
365
+ grantsSkills?: Array<{
366
+ skillId: string;
367
+ level: 'proficient' | 'expertise';
368
+ }>;
369
+ grantsSpells?: Array<{
370
+ spellId: string;
371
+ level?: number;
372
+ uses?: number;
373
+ recharge?: string;
374
+ }>;
375
+ damage?: {
376
+ dice: string;
377
+ damageType: string;
378
+ versatile?: string;
379
+ };
380
+ acBonus?: number;
381
+ weaponProperties?: string[];
382
+ spawnWeight?: number;
383
+ templateId?: string;
384
+ source?: 'default' | 'custom';
385
+ tags?: string[];
386
+ /** Optional: User-facing description of this equipment */
387
+ description?: string;
388
+ /** Optional icon URL for small UI display */
389
+ icon?: string;
390
+ /** Optional image URL for larger display */
391
+ image?: string;
392
+ /** Box contents (only for type: 'box') */
393
+ boxContents?: BoxContents;
394
+ }
395
+ /**
396
+ * Get spell list for a class (default or custom)
397
+ *
398
+ * First checks the default CLASS_SPELL_LISTS constant, then checks
399
+ * the ExtensionManager for custom spell lists registered via 'classSpellLists.${ClassName}'.
400
+ *
401
+ * @param className - The class name to get spell list for
402
+ * @returns The spell list with cantrips and spells_by_level, or undefined if not found
403
+ */
404
+ export declare function getClassSpellList(className: string): {
405
+ cantrips: string[];
406
+ spells_by_level: Record<number, string[]>;
407
+ } | undefined;
408
+ /**
409
+ * Get spell slots for a class at a specific level (default or custom)
410
+ *
411
+ * First checks the default SPELL_SLOTS_BY_CLASS constant, then checks
412
+ * the ExtensionManager for custom spell slot progressions registered via 'classSpellSlots'.
413
+ *
414
+ * The 'classSpellSlots' category expects an array of ClassSpellSlotsData objects,
415
+ * each containing a class name and a slots_by_level record mapping character levels
416
+ * to spell slot counts per spell level.
417
+ *
418
+ * @param className - The class name to get spell slots for
419
+ * @param characterLevel - The character level (1-20)
420
+ * @returns Record mapping spell level (1-9) to slot count, or undefined if not found
421
+ *
422
+ * @example
423
+ * // Register custom spell slots for a "Necromancer" class
424
+ * manager.register('classSpellSlots', [{
425
+ * class: 'Necromancer',
426
+ * slots_by_level: {
427
+ * 1: { 1: 2 },
428
+ * 2: { 1: 3 },
429
+ * 3: { 1: 4, 2: 2 },
430
+ * // ... more levels
431
+ * }
432
+ * }]);
433
+ */
434
+ export declare function getSpellSlotsForClass(className: string, characterLevel: number): Record<number, number> | undefined;
435
+ /** Minimum listen count to achieve track mastery */
436
+ export declare const MASTERY_THRESHOLD = 10;
437
+ /** Bonus XP awarded for mastered tracks */
438
+ export declare const MASTERY_BONUS_XP = 50;
439
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Equipment Constants Library
3
+ *
4
+ * This file consolidates all equipment-related constants into a single location,
5
+ * providing a single source of truth for equipment data throughout the Playlist Data Engine.
6
+ *
7
+ * Contents:
8
+ * - DEFAULT_EQUIPMENT: Base equipment database (re-exported from src/constants/DefaultEquipment.ts)
9
+ * - CLASS_STARTING_EQUIPMENT: Starting equipment by class (D&D 5e standard)
10
+ * - ITEM_CREATION_TEMPLATES: Templates for enchanting base equipment (9 templates)
11
+ * - ENCHANTMENT_LIBRARY: All enchantments and curses organized by category
12
+ *
13
+ * Access Patterns:
14
+ * - Direct access: Import specific constants (e.g., `DEFAULT_EQUIPMENT`, `CLASS_STARTING_EQUIPMENT`)
15
+ * - Enchantment categories: `ENCHANTMENT_LIBRARY.WEAPON_ENCHANTMENTS.plusOne`
16
+ * - Flat enchantments: `ENCHANTMENT_LIBRARY.ALL_ENCHANTMENTS.plusOne`
17
+ * - Helper function: `getClassStartingEquipment('Fighter')` - checks both default and custom
18
+ *
19
+ * @module utils/equipmentConstants
20
+ */
21
+ import type { Equipment } from './constants.js';
22
+ import type { EquipmentModification, EquipmentMiniFeature, EquipmentType, EquipmentRarity, EquipmentProperty, EquipmentPropertyType, EquipmentCondition, EnhancedEquipment } from '../core/types/Equipment.js';
23
+ export type { Equipment, EquipmentModification, EquipmentMiniFeature, EquipmentType, EquipmentRarity, EquipmentProperty, EquipmentPropertyType, EquipmentCondition, EnhancedEquipment };
24
+ /**
25
+ * Starting equipment by class - D&D 5e standard
26
+ */
27
+ export declare const CLASS_STARTING_EQUIPMENT: Record<string, {
28
+ weapons: string[];
29
+ armor: string[];
30
+ items: string[];
31
+ }>;
32
+ /**
33
+ * Get starting equipment for a class (default or custom)
34
+ *
35
+ * First checks the default CLASS_STARTING_EQUIPMENT constant, then checks
36
+ * the ExtensionManager for custom equipment registered via 'classStartingEquipment.${ClassName}'.
37
+ *
38
+ * The 'classStartingEquipment.${ClassName}' category expects an array of ClassStartingEquipmentData objects,
39
+ * each containing a class name and the equipment (weapons, armor, items).
40
+ *
41
+ * This function is used by EquipmentGenerator during character creation.
42
+ *
43
+ * @param className - The class name to get starting equipment for
44
+ * @returns Object with weapons, armor, and items arrays, or undefined if not found
45
+ *
46
+ * @example
47
+ * // Register custom starting equipment for a "Necromancer" class
48
+ * manager.register('classStartingEquipment.Necromancer', [{
49
+ * class: 'Necromancer',
50
+ * weapons: ['Bone Staff', 'Dagger'],
51
+ * armor: ['No Armor'],
52
+ * items: ['Arcane Focus', 'Skeleton Key', 'Dark Robes']
53
+ * }]);
54
+ */
55
+ export declare function getClassStartingEquipment(className: string): {
56
+ weapons: string[];
57
+ armor: string[];
58
+ items: string[];
59
+ } | undefined;
60
+ //# sourceMappingURL=equipmentConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equipmentConstants.d.ts","sourceRoot":"","sources":["../../src/utils/equipmentConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMhD,OAAO,KAAK,EACR,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AAMpC,YAAY,EACR,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACpB,CAAC;AAYF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB,CA6DA,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB,GAAG,SAAS,CA2BZ"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Deterministic seed generation using MurmurHash
3
+ */
4
+ /**
5
+ * Generate a deterministic seed from blockchain data
6
+ * @param chainName - Blockchain name (e.g., "ethereum", "polygon")
7
+ * @param tokenAddress - Contract address
8
+ * @param tokenId - Token ID
9
+ * @returns Deterministic seed string
10
+ */
11
+ export declare function generateSeed(chainName: string, tokenAddress: string, tokenId: string): string;
12
+ /**
13
+ * Hash a seed string to a float between 0.0 and 1.0
14
+ * @param seed - Seed string
15
+ * @returns Float between 0.0 and 1.0
16
+ */
17
+ export declare function hashSeedToFloat(seed: string): number;
18
+ /**
19
+ * Hash a seed string to an integer within a range
20
+ * @param seed - Seed string
21
+ * @param min - Minimum value (inclusive)
22
+ * @param max - Maximum value (exclusive)
23
+ * @returns Integer in range [min, max)
24
+ */
25
+ export declare function hashSeedToInt(seed: string, min: number, max: number): number;
26
+ /**
27
+ * Create a derived seed by appending a suffix
28
+ * @param baseSeed - Base seed string
29
+ * @param suffix - Suffix to append
30
+ * @returns New seed string
31
+ */
32
+ export declare function deriveSeed(baseSeed: string, suffix: string): string;
33
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE"}