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,159 @@
1
+ /**
2
+ * SkillQuery
3
+ *
4
+ * Central query interface for all skills (default D&D 5e and custom).
5
+ * Provides skill lookup, validation, and categorization.
6
+ *
7
+ * **Design:** This is a query layer on top of ExtensionManager.
8
+ * All skills are stored in ExtensionManager; SkillQuery provides:
9
+ * - Query methods with caching for performance
10
+ * - Skill-related helper methods and validation
11
+ *
12
+ * **Registration:** Use ExtensionManager.register('skills', [...]) to add custom skills.
13
+ *
14
+ * No duplicate storage - all data lives in ExtensionManager.
15
+ */
16
+ import type { CustomSkill, SkillQueryStats, SkillValidationResult } from './SkillTypes.js';
17
+ import type { Ability, CharacterSheet } from '../types/Character.js';
18
+ /**
19
+ * SkillQuery - Singleton class for querying skills
20
+ *
21
+ * This is a query layer on top of ExtensionManager.
22
+ * All skills are stored in ExtensionManager; SkillQuery provides:
23
+ * - Query methods with caching for performance
24
+ * - Skill-related helper methods and validation
25
+ *
26
+ * **Registration:** Use ExtensionManager.register('skills', [...]) to add custom skills.
27
+ *
28
+ * Design principle: No duplicate storage. All data lives in ExtensionManager.
29
+ */
30
+ export declare class SkillQuery {
31
+ private static instance;
32
+ private manager;
33
+ private allSkillsCache;
34
+ private abilityCache;
35
+ private categoryCache;
36
+ private constructor();
37
+ /**
38
+ * Get the singleton instance
39
+ */
40
+ static getInstance(): SkillQuery;
41
+ /**
42
+ * Invalidate all caches
43
+ *
44
+ * This method is primarily for internal use and advanced scenarios.
45
+ *
46
+ * Call this method after directly manipulating ExtensionManager's skill data
47
+ * (e.g., after calling ExtensionManager.resetAll()).
48
+ *
49
+ * This ensures that SkillQuery's cached data is refreshed to reflect
50
+ * the current state of ExtensionManager.
51
+ */
52
+ invalidateCache(): void;
53
+ /**
54
+ * Get a skill by ID
55
+ *
56
+ * @param id - Skill ID to look up
57
+ * @returns Skill or undefined if not found
58
+ */
59
+ getSkill(id: string): CustomSkill | undefined;
60
+ /**
61
+ * Get all registered skills
62
+ *
63
+ * Reads from ExtensionManager with caching.
64
+ *
65
+ * @returns Array of all skills
66
+ */
67
+ getAllSkills(): CustomSkill[];
68
+ /**
69
+ * Get skills by ability score
70
+ *
71
+ * Builds index from ExtensionManager data with caching.
72
+ *
73
+ * @param ability - Ability score to filter by
74
+ * @returns Array of skills that use this ability
75
+ */
76
+ getSkillsByAbility(ability: Ability): CustomSkill[];
77
+ /**
78
+ * Get skills by category
79
+ *
80
+ * Builds index from ExtensionManager data with caching.
81
+ *
82
+ * @param category - Category to filter by
83
+ * @returns Array of skills in this category
84
+ */
85
+ getSkillsByCategory(category: string): CustomSkill[];
86
+ /**
87
+ * Get all categories in use
88
+ *
89
+ * @returns Array of category names
90
+ */
91
+ getCategories(): string[];
92
+ /**
93
+ * Get skills by source
94
+ *
95
+ * @param source - 'default' or 'custom'
96
+ * @returns Array of skills from this source
97
+ */
98
+ getSkillsBySource(source: 'default' | 'custom'): CustomSkill[];
99
+ /**
100
+ * Validate if a skill ID exists
101
+ *
102
+ * @param id - Skill ID to validate
103
+ * @returns True if skill exists
104
+ */
105
+ isValidSkill(id: string): boolean;
106
+ /**
107
+ * Validate skill data structure
108
+ *
109
+ * Delegates to SkillValidator.
110
+ *
111
+ * @param skill - Skill object to validate
112
+ * @returns Validation result with any errors
113
+ */
114
+ validateSkill(skill: CustomSkill): SkillValidationResult;
115
+ /**
116
+ * Validate skill prerequisites against a character
117
+ *
118
+ * Checks if a character meets all prerequisite requirements for a skill.
119
+ * This is a convenience method that delegates to SkillValidator.
120
+ *
121
+ * @param skill - The skill whose prerequisites to validate
122
+ * @param character - The character sheet to validate against
123
+ * @returns Validation result with unmet prerequisites if any
124
+ */
125
+ validatePrerequisites(skill: CustomSkill, character: CharacterSheet): SkillValidationResult;
126
+ /**
127
+ * Get query statistics
128
+ *
129
+ * @returns Statistics about registered skills
130
+ */
131
+ getQueryStats(): SkillQueryStats;
132
+ /**
133
+ * Get the total count of registered skills
134
+ *
135
+ * Returns the total number of skills in the registry.
136
+ *
137
+ * @returns Total skill count
138
+ */
139
+ getSkillCount(): number;
140
+ /**
141
+ * Get skills available to a character based on prerequisites
142
+ *
143
+ * Returns all skills whose prerequisites are met by the character.
144
+ * Skills without prerequisites are always available.
145
+ *
146
+ * @param character - The character sheet to validate prerequisites against
147
+ * @returns Array of skills the character can learn
148
+ */
149
+ getAvailableSkills(character: CharacterSheet): CustomSkill[];
150
+ }
151
+ /**
152
+ * Get the global SkillQuery instance
153
+ *
154
+ * Convenience function for accessing the singleton.
155
+ *
156
+ * @returns SkillQuery instance
157
+ */
158
+ export declare function getSkillQuery(): SkillQuery;
159
+ //# sourceMappingURL=SkillQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillQuery.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,qBAAqB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIrE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,aAAa,CAA2C;IAEhE,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,UAAU;IAOhC;;;;;;;;;;OAUG;IACH,eAAe,IAAI,IAAI;IAMvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK7C;;;;;;OAMG;IACH,YAAY,IAAI,WAAW,EAAE;IAQ7B;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE;IAcnD;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAkBpD;;;;OAIG;IACH,aAAa,IAAI,MAAM,EAAE;IAazB;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE;IAI9D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,qBAAqB;IAIxD;;;;;;;;;OASG;IACH,qBAAqB,CACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,GAC1B,qBAAqB;IAIxB;;;;OAIG;IACH,aAAa,IAAI,eAAe;IA+BhC;;;;;;OAMG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,WAAW,EAAE;CAY/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAE1C"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Skill Types
3
+ *
4
+ * Type definitions for the extensible skill system.
5
+ * Supports default D&D 5e skills plus custom skills with metadata.
6
+ */
7
+ import type { Ability, Class, Race } from '../types/Character.js';
8
+ /**
9
+ * Prerequisites for learning or using a skill
10
+ *
11
+ * Follows the same pattern as FeaturePrerequisite for consistency.
12
+ * Skills can require:
13
+ * - A minimum character level
14
+ * - Other skills to be proficient first
15
+ * - Features to be learned first
16
+ * - Spells to be known first
17
+ * - Minimum ability scores
18
+ * - Specific class or race
19
+ * - Custom conditions
20
+ */
21
+ export interface SkillPrerequisite {
22
+ /** Minimum character level required */
23
+ level?: number;
24
+ /** Minimum ability scores required */
25
+ abilities?: Partial<Record<'STR' | 'DEX' | 'CON' | 'INT' | 'WIS' | 'CHA', number>>;
26
+ /** Specific class required */
27
+ class?: Class;
28
+ /** Specific race required */
29
+ race?: Race;
30
+ /** Skills that must be proficient first (by skill ID) */
31
+ skills?: string[];
32
+ /** Features that must be learned first (by feature ID) */
33
+ features?: string[];
34
+ /** Spells that must be known first (by spell name) */
35
+ spells?: string[];
36
+ /** Custom condition description */
37
+ custom?: string;
38
+ }
39
+ /**
40
+ * Custom Skill Interface
41
+ *
42
+ * Defines a skill that can be used by characters. Includes all 18 default D&D 5e skills
43
+ * plus any custom skills added by users or expansion packs.
44
+ */
45
+ export interface CustomSkill {
46
+ /**
47
+ * Unique identifier for the skill (e.g., 'athletics', 'survival_cold')
48
+ * - Must be lowercase_with_underscores format
49
+ * - Must be unique across all skills (default + custom)
50
+ */
51
+ id: string;
52
+ /**
53
+ * Display name for the skill (e.g., 'Athletics', 'Survival (Cold Environments)')
54
+ */
55
+ name: string;
56
+ /**
57
+ * Optional description of what the skill covers
58
+ */
59
+ description?: string;
60
+ /**
61
+ * The ability score used for this skill (STR, DEX, CON, INT, WIS, CHA)
62
+ */
63
+ ability: Ability;
64
+ /**
65
+ * Whether this skill is affected by armor disadvantage
66
+ * - true: Skills like Athletics, Acrobatics, Sleight of Hand, Stealth have armor penalty
67
+ * - false: Most knowledge and social skills don't have armor penalty
68
+ */
69
+ armorPenalty?: boolean;
70
+ /**
71
+ * Optional custom properties for advanced skill mechanics
72
+ * - Can contain any game-specific data
73
+ * - Examples: { toolType: 'musical', requiresTraining: true, synergy: ['nature'] }
74
+ */
75
+ customProperties?: Record<string, string | number | boolean | string[]>;
76
+ /**
77
+ * Optional categories for grouping and filtering skills
78
+ * - Examples: 'exploration', 'social', 'knowledge', 'combat', 'environmental'
79
+ * - Used for background skill preferences and skill list filtering
80
+ */
81
+ categories?: string[];
82
+ /**
83
+ * Where this skill comes from
84
+ * - 'default': One of the 18 core D&D 5e skills
85
+ * - 'custom': Added by user or expansion pack
86
+ */
87
+ source: 'default' | 'custom';
88
+ /**
89
+ * Optional tags for additional categorization
90
+ * - Examples: ['secret', 'advanced', 'requires_tool']
91
+ * - Can be used for filtering or prerequisites
92
+ */
93
+ tags?: string[];
94
+ /**
95
+ * Optional flavor text or lore about the skill
96
+ */
97
+ lore?: string;
98
+ /** Optional icon URL for small UI display */
99
+ icon?: string;
100
+ /** Optional image URL for larger display */
101
+ image?: string;
102
+ /**
103
+ * Prerequisites for learning this skill
104
+ *
105
+ * If specified, the skill can only be gained by characters who meet
106
+ * all the prerequisite requirements. This allows for:
107
+ * - Advanced skills that require base skills
108
+ * - Class-specific or race-specific skills
109
+ * - Skills that require certain features (e.g., Draconic Bloodline)
110
+ * - Skills that require certain spells (e.g., must know fireball)
111
+ */
112
+ prerequisites?: SkillPrerequisite;
113
+ }
114
+ /**
115
+ * Skill Proficiency Interface
116
+ *
117
+ * Represents a character's proficiency level in a specific skill.
118
+ * Used for tracking proficiencies from various sources.
119
+ */
120
+ export interface SkillProficiency {
121
+ /**
122
+ * The skill ID (references CustomSkill.id)
123
+ */
124
+ skillId: string;
125
+ /**
126
+ * Proficiency level
127
+ * - 'none': No proficiency (ability modifier only)
128
+ * - 'proficient': Proficiency bonus added
129
+ * - 'expertise': Double proficiency bonus
130
+ */
131
+ level: 'none' | 'proficient' | 'expertise';
132
+ /**
133
+ * Where this proficiency came from
134
+ * - 'class': Gained from class at level 1
135
+ * - 'background': Gained from background
136
+ * - 'feat': Gained from a feat
137
+ * - 'custom': Gained from custom feature or homebrew
138
+ * - 'racial': Gained from racial trait
139
+ * - 'other': Any other source
140
+ */
141
+ source: 'class' | 'background' | 'feat' | 'custom' | 'racial' | 'other';
142
+ /**
143
+ * Optional feature ID that granted this proficiency
144
+ * - Links back to the feature in FeatureQuery
145
+ * - Example: 'rogue_expertise', 'bard_jack_of_all_trades'
146
+ */
147
+ grantedBy?: string;
148
+ }
149
+ /**
150
+ * Skill Selection Weights
151
+ *
152
+ * Used for controlling spawn rates when selecting skills for a character.
153
+ * Allows custom skills to be more or less likely to be selected.
154
+ */
155
+ export interface SkillSelectionWeights {
156
+ /**
157
+ * Map of skill IDs to their selection weights
158
+ * - Higher weight = more likely to be selected
159
+ * - Weight of 0 = never selected
160
+ * - Unspecified skills use default weight of 1.0
161
+ */
162
+ weights: Record<string, number>;
163
+ /**
164
+ * Selection mode for applying weights
165
+ * - 'relative': Custom weights added to pool, normalized (default)
166
+ * - 'absolute': Custom weights replace distribution entirely
167
+ * - 'default': Equal weights for all skills (ignore weights)
168
+ */
169
+ mode?: 'relative' | 'absolute' | 'default';
170
+ }
171
+ /**
172
+ * Skill List Definition
173
+ *
174
+ * Defines available skills and selection parameters for a class.
175
+ */
176
+ export interface SkillListDefinition {
177
+ /**
178
+ * The class this skill list belongs to
179
+ */
180
+ class: string;
181
+ /**
182
+ * Number of skills to select from the list
183
+ */
184
+ skillCount: number;
185
+ /**
186
+ * Array of skill IDs available for this class
187
+ * - Can include default skills or custom skills
188
+ */
189
+ availableSkills: string[];
190
+ /**
191
+ * Optional weights for skill selection
192
+ * - Controls which skills are more likely to be selected
193
+ */
194
+ selectionWeights?: SkillSelectionWeights;
195
+ /**
196
+ * Whether this class grants expertise
197
+ * - Classes like Bard and Rogue grant expertise at level 1
198
+ */
199
+ hasExpertise?: boolean;
200
+ /**
201
+ * Number of expertise selections if hasExpertise is true
202
+ */
203
+ expertiseCount?: number;
204
+ }
205
+ /**
206
+ * Validation Result
207
+ *
208
+ * Standard result type for skill validation operations.
209
+ */
210
+ export interface SkillValidationResult {
211
+ /** Whether the skill is valid */
212
+ valid: boolean;
213
+ /** Array of error messages (empty if valid) */
214
+ errors: string[];
215
+ }
216
+ /**
217
+ * Skill Query Statistics
218
+ *
219
+ * Statistical information about registered skills.
220
+ */
221
+ export interface SkillQueryStats {
222
+ /** Total number of registered skills */
223
+ totalSkills: number;
224
+ /** Number of default skills */
225
+ defaultSkills: number;
226
+ /** Number of custom skills */
227
+ customSkills: number;
228
+ /** Skills per ability */
229
+ skillsByAbility: Record<Ability, number>;
230
+ /** All categories in use */
231
+ categories: string[];
232
+ }
233
+ //# sourceMappingURL=SkillTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillTypes.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Skill Validator
3
+ *
4
+ * Validates custom skills against strict schemas.
5
+ * Provides comprehensive validation for all skill properties including:
6
+ * - Required fields (id, name, ability, source)
7
+ * - Valid enum values (ability, source)
8
+ * - ID format validation (lowercase_with_underscores)
9
+ * - Optional fields (description, categories, tags, customProperties)
10
+ * Uses shared AbilityConstants for code deduplication.
11
+ */
12
+ import type { SkillValidationResult, SkillPrerequisite } from './SkillTypes.js';
13
+ import type { CharacterSheet, Ability } from '../types/Character.js';
14
+ export type { SkillValidationResult };
15
+ /**
16
+ * SkillValidator - Validates custom skills
17
+ *
18
+ * Provides strict validation to ensure custom skills
19
+ * meet all requirements before being registered with SkillQuery.
20
+ */
21
+ export declare class SkillValidator {
22
+ /**
23
+ * Validate a custom skill
24
+ *
25
+ * Checks all required fields, enum values, and data constraints.
26
+ *
27
+ * @param skill - The custom skill to validate
28
+ * @returns Validation result with errors if any
29
+ */
30
+ static validateSkill(skill: unknown): SkillValidationResult;
31
+ /**
32
+ * Validate an array of custom skills
33
+ *
34
+ * @param skills - Array of custom skills to validate
35
+ * @returns Validation result with combined errors
36
+ */
37
+ static validateSkills(skills: unknown[]): SkillValidationResult;
38
+ /**
39
+ * Validate a skill proficiency
40
+ *
41
+ * @param proficiency - The skill proficiency to validate
42
+ * @returns Validation result with errors if any
43
+ */
44
+ static validateSkillProficiency(proficiency: unknown): SkillValidationResult;
45
+ /**
46
+ * Validate an array of skill proficiencies
47
+ *
48
+ * @param proficiencies - Array of skill proficiencies to validate
49
+ * @returns Validation result with combined errors
50
+ */
51
+ static validateSkillProficiencies(proficiencies: unknown[]): SkillValidationResult;
52
+ /**
53
+ * Validate a skill list definition
54
+ *
55
+ * @param skillList - The skill list definition to validate
56
+ * @returns Validation result with errors if any
57
+ */
58
+ static validateSkillListDefinition(skillList: unknown): SkillValidationResult;
59
+ /**
60
+ * Check if a skill ID follows the correct naming convention
61
+ *
62
+ * Skill IDs should use lowercase_with_underscores format.
63
+ * Examples: 'athletics', 'survival_cold', 'arcana_planar'
64
+ *
65
+ * @param id - The skill ID to check
66
+ * @returns True if the ID format is valid
67
+ */
68
+ static isValidSkillId(id: string): boolean;
69
+ /**
70
+ * Check if a value is a valid ability score
71
+ *
72
+ * Re-exports the shared isValidAbility function for convenience.
73
+ * Uses the same validation as all other systems for consistency.
74
+ *
75
+ * @param ability - The ability value to check
76
+ * @returns True if the value is a valid ability (STR, DEX, CON, INT, WIS, CHA)
77
+ */
78
+ static isValidAbility(ability: string): ability is Ability;
79
+ /**
80
+ * Validate skill prerequisites against a character
81
+ *
82
+ * Checks if a character meets all prerequisite requirements for a skill.
83
+ * Uses the shared PrerequisiteValidator for consistency across all systems.
84
+ *
85
+ * @param prerequisites - The skill prerequisites to validate
86
+ * @param character - The character sheet to validate against
87
+ * @returns Validation result with unmet prerequisites if any
88
+ */
89
+ static validateSkillPrerequisites(prerequisites: SkillPrerequisite | undefined, character: CharacterSheet): SkillValidationResult;
90
+ }
91
+ /**
92
+ * Helper function to validate a single skill
93
+ *
94
+ * Convenience function for quick validation.
95
+ *
96
+ * @param skill - The custom skill to validate
97
+ * @returns Validation result with errors if any
98
+ */
99
+ export declare function validateSkill(skill: unknown): SkillValidationResult;
100
+ /**
101
+ * Helper function to validate an array of skills
102
+ *
103
+ * Convenience function for batch validation.
104
+ *
105
+ * @param skills - Array of custom skills to validate
106
+ * @returns Validation result with combined errors
107
+ */
108
+ export declare function validateSkills(skills: unknown[]): SkillValidationResult;
109
+ /**
110
+ * Helper function to validate a skill proficiency
111
+ *
112
+ * Convenience function for quick validation.
113
+ *
114
+ * @param proficiency - The skill proficiency to validate
115
+ * @returns Validation result with errors if any
116
+ */
117
+ export declare function validateSkillProficiency(proficiency: unknown): SkillValidationResult;
118
+ /**
119
+ * Helper function to validate an array of skill proficiencies
120
+ *
121
+ * Convenience function for batch validation.
122
+ *
123
+ * @param proficiencies - Array of skill proficiencies to validate
124
+ * @returns Validation result with combined errors
125
+ */
126
+ export declare function validateSkillProficiencies(proficiencies: unknown[]): SkillValidationResult;
127
+ /**
128
+ * Helper function to validate a skill list definition
129
+ *
130
+ * Convenience function for quick validation.
131
+ *
132
+ * @param skillList - The skill list definition to validate
133
+ * @returns Validation result with errors if any
134
+ */
135
+ export declare function validateSkillListDefinition(skillList: unknown): SkillValidationResult;
136
+ /**
137
+ * Helper function to validate skill prerequisites against a character
138
+ *
139
+ * Convenience function for quick validation.
140
+ *
141
+ * @param prerequisites - The skill prerequisites to validate
142
+ * @param character - The character sheet to validate against
143
+ * @returns Validation result with unmet prerequisites if any
144
+ */
145
+ export declare function validateSkillPrerequisites(prerequisites: SkillPrerequisite | undefined, character: CharacterSheet): SkillValidationResult;
146
+ //# sourceMappingURL=SkillValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillValidator.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMrE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAiBtC;;;;;GAKG;AACH,qBAAa,cAAc;IACvB;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB;IA2G3D;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB;IAuB/D;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,qBAAqB;IA2C5E;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,qBAAqB;IAuBlF;;;;;OAKG;IACH,MAAM,CAAC,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,qBAAqB;IA+D7E;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO1C;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,OAAO;IAI1D;;;;;;;;;OASG;IACH,MAAM,CAAC,0BAA0B,CAC7B,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,SAAS,EAAE,cAAc,GAC1B,qBAAqB;CAG3B;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAEvE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,qBAAqB,CAEpF;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAE1F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,qBAAqB,CAErF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,SAAS,EAAE,cAAc,GAC1B,qBAAqB,CAEvB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Skills Module Index
3
+ *
4
+ * Exports all skill-related types and utilities.
5
+ */
6
+ export type { CustomSkill, SkillPrerequisite, SkillProficiency, SkillSelectionWeights, SkillListDefinition, SkillQueryStats, } from './SkillTypes.js';
7
+ export type { SkillValidationResult } from './SkillValidator.js';
8
+ export { SkillQuery, getSkillQuery } from './SkillQuery.js';
9
+ export { DEFAULT_SKILLS, DEFAULT_SKILL_CATEGORIES } from '../../constants/DefaultSkills.js';
10
+ export { SkillValidator, validateSkill, validateSkills, validateSkillProficiency, validateSkillProficiencies, validateSkillListDefinition, validateSkillPrerequisites } from './SkillValidator.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/skills/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACR,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAClB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAG5F,OAAO,EACH,cAAc,EACd,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC7B,MAAM,qBAAqB,CAAC"}