@drop-ai/core 0.2.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 (747) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +316 -0
  3. package/dist/actions/ActionRegistry.d.ts +33 -0
  4. package/dist/actions/ActionRegistry.d.ts.map +1 -0
  5. package/dist/actions/ActionRegistry.js +96 -0
  6. package/dist/actions/ActionRegistry.js.map +1 -0
  7. package/dist/actions/types.d.ts +31 -0
  8. package/dist/actions/types.d.ts.map +1 -0
  9. package/dist/actions/types.js +11 -0
  10. package/dist/actions/types.js.map +1 -0
  11. package/dist/analysis/TransientDetector.d.ts +28 -0
  12. package/dist/analysis/TransientDetector.d.ts.map +1 -0
  13. package/dist/analysis/TransientDetector.js +109 -0
  14. package/dist/analysis/TransientDetector.js.map +1 -0
  15. package/dist/audio/AudioEngine.d.ts +107 -0
  16. package/dist/audio/AudioEngine.d.ts.map +1 -0
  17. package/dist/audio/AudioEngine.js +798 -0
  18. package/dist/audio/AudioEngine.js.map +1 -0
  19. package/dist/audio/AudioProvider.d.ts +96 -0
  20. package/dist/audio/AudioProvider.d.ts.map +1 -0
  21. package/dist/audio/AudioProvider.js +2 -0
  22. package/dist/audio/AudioProvider.js.map +1 -0
  23. package/dist/audio/BufferPool.d.ts +92 -0
  24. package/dist/audio/BufferPool.d.ts.map +1 -0
  25. package/dist/audio/BufferPool.js +172 -0
  26. package/dist/audio/BufferPool.js.map +1 -0
  27. package/dist/audio/LoudnessUtils.d.ts +18 -0
  28. package/dist/audio/LoudnessUtils.d.ts.map +1 -0
  29. package/dist/audio/LoudnessUtils.js +91 -0
  30. package/dist/audio/LoudnessUtils.js.map +1 -0
  31. package/dist/audio/MeterUtils.d.ts +37 -0
  32. package/dist/audio/MeterUtils.d.ts.map +1 -0
  33. package/dist/audio/MeterUtils.js +71 -0
  34. package/dist/audio/MeterUtils.js.map +1 -0
  35. package/dist/audio/OfflineExporter.d.ts +48 -0
  36. package/dist/audio/OfflineExporter.d.ts.map +1 -0
  37. package/dist/audio/OfflineExporter.js +202 -0
  38. package/dist/audio/OfflineExporter.js.map +1 -0
  39. package/dist/audio/ProcessingGraph.d.ts +152 -0
  40. package/dist/audio/ProcessingGraph.d.ts.map +1 -0
  41. package/dist/audio/ProcessingGraph.js +360 -0
  42. package/dist/audio/ProcessingGraph.js.map +1 -0
  43. package/dist/audio/SourceCache.d.ts +124 -0
  44. package/dist/audio/SourceCache.d.ts.map +1 -0
  45. package/dist/audio/SourceCache.js +205 -0
  46. package/dist/audio/SourceCache.js.map +1 -0
  47. package/dist/audio/dto.d.ts +50 -0
  48. package/dist/audio/dto.d.ts.map +1 -0
  49. package/dist/audio/dto.js +2 -0
  50. package/dist/audio/dto.js.map +1 -0
  51. package/dist/audio/engine/PlaylistEngine.d.ts +19 -0
  52. package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -0
  53. package/dist/audio/engine/PlaylistEngine.js +83 -0
  54. package/dist/audio/engine/PlaylistEngine.js.map +1 -0
  55. package/dist/automation/AutomationCurve.d.ts +61 -0
  56. package/dist/automation/AutomationCurve.d.ts.map +1 -0
  57. package/dist/automation/AutomationCurve.js +198 -0
  58. package/dist/automation/AutomationCurve.js.map +1 -0
  59. package/dist/automation/AutomationList.d.ts +185 -0
  60. package/dist/automation/AutomationList.d.ts.map +1 -0
  61. package/dist/automation/AutomationList.js +459 -0
  62. package/dist/automation/AutomationList.js.map +1 -0
  63. package/dist/automation/AutomationMode.d.ts +17 -0
  64. package/dist/automation/AutomationMode.d.ts.map +1 -0
  65. package/dist/automation/AutomationMode.js +18 -0
  66. package/dist/automation/AutomationMode.js.map +1 -0
  67. package/dist/automation/ParameterDescriptor.d.ts +65 -0
  68. package/dist/automation/ParameterDescriptor.d.ts.map +1 -0
  69. package/dist/automation/ParameterDescriptor.js +113 -0
  70. package/dist/automation/ParameterDescriptor.js.map +1 -0
  71. package/dist/automation/PointThinning.d.ts +14 -0
  72. package/dist/automation/PointThinning.d.ts.map +1 -0
  73. package/dist/automation/PointThinning.js +52 -0
  74. package/dist/automation/PointThinning.js.map +1 -0
  75. package/dist/automation/types.d.ts +14 -0
  76. package/dist/automation/types.d.ts.map +1 -0
  77. package/dist/automation/types.js +9 -0
  78. package/dist/automation/types.js.map +1 -0
  79. package/dist/commands/Command.d.ts +8 -0
  80. package/dist/commands/Command.d.ts.map +1 -0
  81. package/dist/commands/Command.js +2 -0
  82. package/dist/commands/Command.js.map +1 -0
  83. package/dist/commands/CommandExecutor.d.ts +36 -0
  84. package/dist/commands/CommandExecutor.d.ts.map +1 -0
  85. package/dist/commands/CommandExecutor.js +108 -0
  86. package/dist/commands/CommandExecutor.js.map +1 -0
  87. package/dist/commands/CommandHistory.d.ts +155 -0
  88. package/dist/commands/CommandHistory.d.ts.map +1 -0
  89. package/dist/commands/CommandHistory.js +316 -0
  90. package/dist/commands/CommandHistory.js.map +1 -0
  91. package/dist/commands/CommandRegistry.d.ts +110 -0
  92. package/dist/commands/CommandRegistry.d.ts.map +1 -0
  93. package/dist/commands/CommandRegistry.js +91 -0
  94. package/dist/commands/CommandRegistry.js.map +1 -0
  95. package/dist/commands/UndoTransaction.d.ts +54 -0
  96. package/dist/commands/UndoTransaction.d.ts.map +1 -0
  97. package/dist/commands/UndoTransaction.js +77 -0
  98. package/dist/commands/UndoTransaction.js.map +1 -0
  99. package/dist/commands/handlers/AutomationHandler.d.ts +14 -0
  100. package/dist/commands/handlers/AutomationHandler.d.ts.map +1 -0
  101. package/dist/commands/handlers/AutomationHandler.js +84 -0
  102. package/dist/commands/handlers/AutomationHandler.js.map +1 -0
  103. package/dist/commands/handlers/CommandHandler.d.ts +57 -0
  104. package/dist/commands/handlers/CommandHandler.d.ts.map +1 -0
  105. package/dist/commands/handlers/CommandHandler.js +22 -0
  106. package/dist/commands/handlers/CommandHandler.js.map +1 -0
  107. package/dist/commands/handlers/ExportHandler.d.ts +14 -0
  108. package/dist/commands/handlers/ExportHandler.d.ts.map +1 -0
  109. package/dist/commands/handlers/ExportHandler.js +166 -0
  110. package/dist/commands/handlers/ExportHandler.js.map +1 -0
  111. package/dist/commands/handlers/HistoryHandler.d.ts +29 -0
  112. package/dist/commands/handlers/HistoryHandler.d.ts.map +1 -0
  113. package/dist/commands/handlers/HistoryHandler.js +124 -0
  114. package/dist/commands/handlers/HistoryHandler.js.map +1 -0
  115. package/dist/commands/handlers/IOHandler.d.ts +14 -0
  116. package/dist/commands/handlers/IOHandler.d.ts.map +1 -0
  117. package/dist/commands/handlers/IOHandler.js +59 -0
  118. package/dist/commands/handlers/IOHandler.js.map +1 -0
  119. package/dist/commands/handlers/MarkerHandler.d.ts +13 -0
  120. package/dist/commands/handlers/MarkerHandler.d.ts.map +1 -0
  121. package/dist/commands/handlers/MarkerHandler.js +95 -0
  122. package/dist/commands/handlers/MarkerHandler.js.map +1 -0
  123. package/dist/commands/handlers/MidiHandler.d.ts +14 -0
  124. package/dist/commands/handlers/MidiHandler.d.ts.map +1 -0
  125. package/dist/commands/handlers/MidiHandler.js +153 -0
  126. package/dist/commands/handlers/MidiHandler.js.map +1 -0
  127. package/dist/commands/handlers/MixerSceneHandler.d.ts +12 -0
  128. package/dist/commands/handlers/MixerSceneHandler.d.ts.map +1 -0
  129. package/dist/commands/handlers/MixerSceneHandler.js +113 -0
  130. package/dist/commands/handlers/MixerSceneHandler.js.map +1 -0
  131. package/dist/commands/handlers/RangeHandler.d.ts +14 -0
  132. package/dist/commands/handlers/RangeHandler.d.ts.map +1 -0
  133. package/dist/commands/handlers/RangeHandler.js +108 -0
  134. package/dist/commands/handlers/RangeHandler.js.map +1 -0
  135. package/dist/commands/handlers/RegionHandler.d.ts +14 -0
  136. package/dist/commands/handlers/RegionHandler.d.ts.map +1 -0
  137. package/dist/commands/handlers/RegionHandler.js +313 -0
  138. package/dist/commands/handlers/RegionHandler.js.map +1 -0
  139. package/dist/commands/handlers/SendBusHandler.d.ts +14 -0
  140. package/dist/commands/handlers/SendBusHandler.d.ts.map +1 -0
  141. package/dist/commands/handlers/SendBusHandler.js +55 -0
  142. package/dist/commands/handlers/SendBusHandler.js.map +1 -0
  143. package/dist/commands/handlers/SessionHandler.d.ts +14 -0
  144. package/dist/commands/handlers/SessionHandler.d.ts.map +1 -0
  145. package/dist/commands/handlers/SessionHandler.js +80 -0
  146. package/dist/commands/handlers/SessionHandler.js.map +1 -0
  147. package/dist/commands/handlers/TrackGroupHandler.d.ts +18 -0
  148. package/dist/commands/handlers/TrackGroupHandler.d.ts.map +1 -0
  149. package/dist/commands/handlers/TrackGroupHandler.js +210 -0
  150. package/dist/commands/handlers/TrackGroupHandler.js.map +1 -0
  151. package/dist/commands/handlers/TrackHandler.d.ts +14 -0
  152. package/dist/commands/handlers/TrackHandler.d.ts.map +1 -0
  153. package/dist/commands/handlers/TrackHandler.js +241 -0
  154. package/dist/commands/handlers/TrackHandler.js.map +1 -0
  155. package/dist/commands/handlers/TransportHandler.d.ts +14 -0
  156. package/dist/commands/handlers/TransportHandler.d.ts.map +1 -0
  157. package/dist/commands/handlers/TransportHandler.js +117 -0
  158. package/dist/commands/handlers/TransportHandler.js.map +1 -0
  159. package/dist/commands/handlers/index.d.ts +18 -0
  160. package/dist/commands/handlers/index.d.ts.map +1 -0
  161. package/dist/commands/handlers/index.js +17 -0
  162. package/dist/commands/handlers/index.js.map +1 -0
  163. package/dist/commands/impl/AddAutomationPointCommand.d.ts +20 -0
  164. package/dist/commands/impl/AddAutomationPointCommand.d.ts.map +1 -0
  165. package/dist/commands/impl/AddAutomationPointCommand.js +45 -0
  166. package/dist/commands/impl/AddAutomationPointCommand.js.map +1 -0
  167. package/dist/commands/impl/AddAuxTrackCommand.d.ts +11 -0
  168. package/dist/commands/impl/AddAuxTrackCommand.d.ts.map +1 -0
  169. package/dist/commands/impl/AddAuxTrackCommand.js +23 -0
  170. package/dist/commands/impl/AddAuxTrackCommand.js.map +1 -0
  171. package/dist/commands/impl/AddBusTrackCommand.d.ts +11 -0
  172. package/dist/commands/impl/AddBusTrackCommand.d.ts.map +1 -0
  173. package/dist/commands/impl/AddBusTrackCommand.js +23 -0
  174. package/dist/commands/impl/AddBusTrackCommand.js.map +1 -0
  175. package/dist/commands/impl/AddMarkerCommand.d.ts +13 -0
  176. package/dist/commands/impl/AddMarkerCommand.d.ts.map +1 -0
  177. package/dist/commands/impl/AddMarkerCommand.js +25 -0
  178. package/dist/commands/impl/AddMarkerCommand.js.map +1 -0
  179. package/dist/commands/impl/AddMidiNoteCommand.d.ts +22 -0
  180. package/dist/commands/impl/AddMidiNoteCommand.d.ts.map +1 -0
  181. package/dist/commands/impl/AddMidiNoteCommand.js +45 -0
  182. package/dist/commands/impl/AddMidiNoteCommand.js.map +1 -0
  183. package/dist/commands/impl/AddPluginCommand.d.ts +19 -0
  184. package/dist/commands/impl/AddPluginCommand.d.ts.map +1 -0
  185. package/dist/commands/impl/AddPluginCommand.js +43 -0
  186. package/dist/commands/impl/AddPluginCommand.js.map +1 -0
  187. package/dist/commands/impl/AddRangeCommand.d.ts +19 -0
  188. package/dist/commands/impl/AddRangeCommand.d.ts.map +1 -0
  189. package/dist/commands/impl/AddRangeCommand.js +32 -0
  190. package/dist/commands/impl/AddRangeCommand.js.map +1 -0
  191. package/dist/commands/impl/AddRegionCommand.d.ts +19 -0
  192. package/dist/commands/impl/AddRegionCommand.d.ts.map +1 -0
  193. package/dist/commands/impl/AddRegionCommand.js +58 -0
  194. package/dist/commands/impl/AddRegionCommand.js.map +1 -0
  195. package/dist/commands/impl/AddSendBusCommand.d.ts +23 -0
  196. package/dist/commands/impl/AddSendBusCommand.d.ts.map +1 -0
  197. package/dist/commands/impl/AddSendBusCommand.js +30 -0
  198. package/dist/commands/impl/AddSendBusCommand.js.map +1 -0
  199. package/dist/commands/impl/AddSourceCommand.d.ts +12 -0
  200. package/dist/commands/impl/AddSourceCommand.d.ts.map +1 -0
  201. package/dist/commands/impl/AddSourceCommand.js +16 -0
  202. package/dist/commands/impl/AddSourceCommand.js.map +1 -0
  203. package/dist/commands/impl/AddTempoChangeCommand.d.ts +15 -0
  204. package/dist/commands/impl/AddTempoChangeCommand.d.ts.map +1 -0
  205. package/dist/commands/impl/AddTempoChangeCommand.js +45 -0
  206. package/dist/commands/impl/AddTempoChangeCommand.js.map +1 -0
  207. package/dist/commands/impl/AddTrackCommand.d.ts +13 -0
  208. package/dist/commands/impl/AddTrackCommand.d.ts.map +1 -0
  209. package/dist/commands/impl/AddTrackCommand.js +26 -0
  210. package/dist/commands/impl/AddTrackCommand.js.map +1 -0
  211. package/dist/commands/impl/ConnectIOCommand.d.ts +13 -0
  212. package/dist/commands/impl/ConnectIOCommand.d.ts.map +1 -0
  213. package/dist/commands/impl/ConnectIOCommand.js +31 -0
  214. package/dist/commands/impl/ConnectIOCommand.js.map +1 -0
  215. package/dist/commands/impl/CopyRegionCommand.d.ts +12 -0
  216. package/dist/commands/impl/CopyRegionCommand.d.ts.map +1 -0
  217. package/dist/commands/impl/CopyRegionCommand.js +42 -0
  218. package/dist/commands/impl/CopyRegionCommand.js.map +1 -0
  219. package/dist/commands/impl/DisconnectIOCommand.d.ts +13 -0
  220. package/dist/commands/impl/DisconnectIOCommand.d.ts.map +1 -0
  221. package/dist/commands/impl/DisconnectIOCommand.js +24 -0
  222. package/dist/commands/impl/DisconnectIOCommand.js.map +1 -0
  223. package/dist/commands/impl/DuplicateRegionCommand.d.ts +15 -0
  224. package/dist/commands/impl/DuplicateRegionCommand.d.ts.map +1 -0
  225. package/dist/commands/impl/DuplicateRegionCommand.js +49 -0
  226. package/dist/commands/impl/DuplicateRegionCommand.js.map +1 -0
  227. package/dist/commands/impl/ExportCommand.d.ts +17 -0
  228. package/dist/commands/impl/ExportCommand.d.ts.map +1 -0
  229. package/dist/commands/impl/ExportCommand.js +92 -0
  230. package/dist/commands/impl/ExportCommand.js.map +1 -0
  231. package/dist/commands/impl/FreezeTrackCommand.d.ts +25 -0
  232. package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -0
  233. package/dist/commands/impl/FreezeTrackCommand.js +94 -0
  234. package/dist/commands/impl/FreezeTrackCommand.js.map +1 -0
  235. package/dist/commands/impl/GroupRegionsCommand.d.ts +15 -0
  236. package/dist/commands/impl/GroupRegionsCommand.d.ts.map +1 -0
  237. package/dist/commands/impl/GroupRegionsCommand.js +28 -0
  238. package/dist/commands/impl/GroupRegionsCommand.js.map +1 -0
  239. package/dist/commands/impl/LoadSessionCommand.d.ts +24 -0
  240. package/dist/commands/impl/LoadSessionCommand.d.ts.map +1 -0
  241. package/dist/commands/impl/LoadSessionCommand.js +77 -0
  242. package/dist/commands/impl/LoadSessionCommand.js.map +1 -0
  243. package/dist/commands/impl/LockRegionCommand.d.ts +16 -0
  244. package/dist/commands/impl/LockRegionCommand.d.ts.map +1 -0
  245. package/dist/commands/impl/LockRegionCommand.js +37 -0
  246. package/dist/commands/impl/LockRegionCommand.js.map +1 -0
  247. package/dist/commands/impl/MergeRegionsCommand.d.ts +19 -0
  248. package/dist/commands/impl/MergeRegionsCommand.d.ts.map +1 -0
  249. package/dist/commands/impl/MergeRegionsCommand.js +85 -0
  250. package/dist/commands/impl/MergeRegionsCommand.js.map +1 -0
  251. package/dist/commands/impl/MoveAutomationPointCommand.d.ts +20 -0
  252. package/dist/commands/impl/MoveAutomationPointCommand.d.ts.map +1 -0
  253. package/dist/commands/impl/MoveAutomationPointCommand.js +73 -0
  254. package/dist/commands/impl/MoveAutomationPointCommand.js.map +1 -0
  255. package/dist/commands/impl/MoveMarkerCommand.d.ts +13 -0
  256. package/dist/commands/impl/MoveMarkerCommand.d.ts.map +1 -0
  257. package/dist/commands/impl/MoveMarkerCommand.js +29 -0
  258. package/dist/commands/impl/MoveMarkerCommand.js.map +1 -0
  259. package/dist/commands/impl/MoveMidiNoteCommand.d.ts +20 -0
  260. package/dist/commands/impl/MoveMidiNoteCommand.d.ts.map +1 -0
  261. package/dist/commands/impl/MoveMidiNoteCommand.js +55 -0
  262. package/dist/commands/impl/MoveMidiNoteCommand.js.map +1 -0
  263. package/dist/commands/impl/MoveRegionCommand.d.ts +22 -0
  264. package/dist/commands/impl/MoveRegionCommand.d.ts.map +1 -0
  265. package/dist/commands/impl/MoveRegionCommand.js +148 -0
  266. package/dist/commands/impl/MoveRegionCommand.js.map +1 -0
  267. package/dist/commands/impl/NewSessionCommand.d.ts +17 -0
  268. package/dist/commands/impl/NewSessionCommand.d.ts.map +1 -0
  269. package/dist/commands/impl/NewSessionCommand.js +88 -0
  270. package/dist/commands/impl/NewSessionCommand.js.map +1 -0
  271. package/dist/commands/impl/NormalizeRegionCommand.d.ts +24 -0
  272. package/dist/commands/impl/NormalizeRegionCommand.d.ts.map +1 -0
  273. package/dist/commands/impl/NormalizeRegionCommand.js +60 -0
  274. package/dist/commands/impl/NormalizeRegionCommand.js.map +1 -0
  275. package/dist/commands/impl/PasteRegionCommand.d.ts +18 -0
  276. package/dist/commands/impl/PasteRegionCommand.d.ts.map +1 -0
  277. package/dist/commands/impl/PasteRegionCommand.js +66 -0
  278. package/dist/commands/impl/PasteRegionCommand.js.map +1 -0
  279. package/dist/commands/impl/RemoveAutomationPointCommand.d.ts +17 -0
  280. package/dist/commands/impl/RemoveAutomationPointCommand.d.ts.map +1 -0
  281. package/dist/commands/impl/RemoveAutomationPointCommand.js +69 -0
  282. package/dist/commands/impl/RemoveAutomationPointCommand.js.map +1 -0
  283. package/dist/commands/impl/RemoveMarkerCommand.d.ts +14 -0
  284. package/dist/commands/impl/RemoveMarkerCommand.d.ts.map +1 -0
  285. package/dist/commands/impl/RemoveMarkerCommand.js +32 -0
  286. package/dist/commands/impl/RemoveMarkerCommand.js.map +1 -0
  287. package/dist/commands/impl/RemoveMidiNoteCommand.d.ts +16 -0
  288. package/dist/commands/impl/RemoveMidiNoteCommand.d.ts.map +1 -0
  289. package/dist/commands/impl/RemoveMidiNoteCommand.js +38 -0
  290. package/dist/commands/impl/RemoveMidiNoteCommand.js.map +1 -0
  291. package/dist/commands/impl/RemovePluginCommand.d.ts +17 -0
  292. package/dist/commands/impl/RemovePluginCommand.d.ts.map +1 -0
  293. package/dist/commands/impl/RemovePluginCommand.js +55 -0
  294. package/dist/commands/impl/RemovePluginCommand.js.map +1 -0
  295. package/dist/commands/impl/RemoveRangeCommand.d.ts +15 -0
  296. package/dist/commands/impl/RemoveRangeCommand.d.ts.map +1 -0
  297. package/dist/commands/impl/RemoveRangeCommand.js +34 -0
  298. package/dist/commands/impl/RemoveRangeCommand.js.map +1 -0
  299. package/dist/commands/impl/RemoveRegionCommand.d.ts +17 -0
  300. package/dist/commands/impl/RemoveRegionCommand.d.ts.map +1 -0
  301. package/dist/commands/impl/RemoveRegionCommand.js +58 -0
  302. package/dist/commands/impl/RemoveRegionCommand.js.map +1 -0
  303. package/dist/commands/impl/RemoveSendBusCommand.d.ts +17 -0
  304. package/dist/commands/impl/RemoveSendBusCommand.d.ts.map +1 -0
  305. package/dist/commands/impl/RemoveSendBusCommand.js +34 -0
  306. package/dist/commands/impl/RemoveSendBusCommand.js.map +1 -0
  307. package/dist/commands/impl/RemoveTempoChangeCommand.d.ts +11 -0
  308. package/dist/commands/impl/RemoveTempoChangeCommand.d.ts.map +1 -0
  309. package/dist/commands/impl/RemoveTempoChangeCommand.js +32 -0
  310. package/dist/commands/impl/RemoveTempoChangeCommand.js.map +1 -0
  311. package/dist/commands/impl/RemoveTrackCommand.d.ts +11 -0
  312. package/dist/commands/impl/RemoveTrackCommand.d.ts.map +1 -0
  313. package/dist/commands/impl/RemoveTrackCommand.js +28 -0
  314. package/dist/commands/impl/RemoveTrackCommand.js.map +1 -0
  315. package/dist/commands/impl/ReorderTrackCommand.d.ts +15 -0
  316. package/dist/commands/impl/ReorderTrackCommand.d.ts.map +1 -0
  317. package/dist/commands/impl/ReorderTrackCommand.js +25 -0
  318. package/dist/commands/impl/ReorderTrackCommand.js.map +1 -0
  319. package/dist/commands/impl/ResizeRegionCommand.d.ts +18 -0
  320. package/dist/commands/impl/ResizeRegionCommand.d.ts.map +1 -0
  321. package/dist/commands/impl/ResizeRegionCommand.js +65 -0
  322. package/dist/commands/impl/ResizeRegionCommand.js.map +1 -0
  323. package/dist/commands/impl/ReverseRegionCommand.d.ts +22 -0
  324. package/dist/commands/impl/ReverseRegionCommand.d.ts.map +1 -0
  325. package/dist/commands/impl/ReverseRegionCommand.js +50 -0
  326. package/dist/commands/impl/ReverseRegionCommand.js.map +1 -0
  327. package/dist/commands/impl/SaveSessionCommand.d.ts +11 -0
  328. package/dist/commands/impl/SaveSessionCommand.d.ts.map +1 -0
  329. package/dist/commands/impl/SaveSessionCommand.js +33 -0
  330. package/dist/commands/impl/SaveSessionCommand.js.map +1 -0
  331. package/dist/commands/impl/SaveSnapshotCommand.d.ts +15 -0
  332. package/dist/commands/impl/SaveSnapshotCommand.d.ts.map +1 -0
  333. package/dist/commands/impl/SaveSnapshotCommand.js +34 -0
  334. package/dist/commands/impl/SaveSnapshotCommand.js.map +1 -0
  335. package/dist/commands/impl/SetGridCommand.d.ts +20 -0
  336. package/dist/commands/impl/SetGridCommand.d.ts.map +1 -0
  337. package/dist/commands/impl/SetGridCommand.js +35 -0
  338. package/dist/commands/impl/SetGridCommand.js.map +1 -0
  339. package/dist/commands/impl/SetLoopRangeCommand.d.ts +18 -0
  340. package/dist/commands/impl/SetLoopRangeCommand.d.ts.map +1 -0
  341. package/dist/commands/impl/SetLoopRangeCommand.js +44 -0
  342. package/dist/commands/impl/SetLoopRangeCommand.js.map +1 -0
  343. package/dist/commands/impl/SetPluginParameterCommand.d.ts +16 -0
  344. package/dist/commands/impl/SetPluginParameterCommand.d.ts.map +1 -0
  345. package/dist/commands/impl/SetPluginParameterCommand.js +49 -0
  346. package/dist/commands/impl/SetPluginParameterCommand.js.map +1 -0
  347. package/dist/commands/impl/SetPunchRangeCommand.d.ts +18 -0
  348. package/dist/commands/impl/SetPunchRangeCommand.d.ts.map +1 -0
  349. package/dist/commands/impl/SetPunchRangeCommand.js +42 -0
  350. package/dist/commands/impl/SetPunchRangeCommand.js.map +1 -0
  351. package/dist/commands/impl/SetRangeCommand.d.ts +27 -0
  352. package/dist/commands/impl/SetRangeCommand.d.ts.map +1 -0
  353. package/dist/commands/impl/SetRangeCommand.js +66 -0
  354. package/dist/commands/impl/SetRangeCommand.js.map +1 -0
  355. package/dist/commands/impl/SetRegionFadesCommand.d.ts +16 -0
  356. package/dist/commands/impl/SetRegionFadesCommand.d.ts.map +1 -0
  357. package/dist/commands/impl/SetRegionFadesCommand.js +46 -0
  358. package/dist/commands/impl/SetRegionFadesCommand.js.map +1 -0
  359. package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts +23 -0
  360. package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts.map +1 -0
  361. package/dist/commands/impl/SetRegionPlaybackRateCommand.js +46 -0
  362. package/dist/commands/impl/SetRegionPlaybackRateCommand.js.map +1 -0
  363. package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts +16 -0
  364. package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -0
  365. package/dist/commands/impl/SetRegionTimeDomainCommand.js +42 -0
  366. package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -0
  367. package/dist/commands/impl/SetSendLevelCommand.d.ts +18 -0
  368. package/dist/commands/impl/SetSendLevelCommand.d.ts.map +1 -0
  369. package/dist/commands/impl/SetSendLevelCommand.js +35 -0
  370. package/dist/commands/impl/SetSendLevelCommand.js.map +1 -0
  371. package/dist/commands/impl/SetTrackMuteCommand.d.ts +15 -0
  372. package/dist/commands/impl/SetTrackMuteCommand.d.ts.map +1 -0
  373. package/dist/commands/impl/SetTrackMuteCommand.js +29 -0
  374. package/dist/commands/impl/SetTrackMuteCommand.js.map +1 -0
  375. package/dist/commands/impl/SetTrackPanCommand.d.ts +15 -0
  376. package/dist/commands/impl/SetTrackPanCommand.d.ts.map +1 -0
  377. package/dist/commands/impl/SetTrackPanCommand.js +29 -0
  378. package/dist/commands/impl/SetTrackPanCommand.js.map +1 -0
  379. package/dist/commands/impl/SetTrackSoloCommand.d.ts +15 -0
  380. package/dist/commands/impl/SetTrackSoloCommand.d.ts.map +1 -0
  381. package/dist/commands/impl/SetTrackSoloCommand.js +29 -0
  382. package/dist/commands/impl/SetTrackSoloCommand.js.map +1 -0
  383. package/dist/commands/impl/SetTrackVolumeCommand.d.ts +15 -0
  384. package/dist/commands/impl/SetTrackVolumeCommand.d.ts.map +1 -0
  385. package/dist/commands/impl/SetTrackVolumeCommand.js +29 -0
  386. package/dist/commands/impl/SetTrackVolumeCommand.js.map +1 -0
  387. package/dist/commands/impl/SplitAtPlayheadCommand.d.ts +32 -0
  388. package/dist/commands/impl/SplitAtPlayheadCommand.d.ts.map +1 -0
  389. package/dist/commands/impl/SplitAtPlayheadCommand.js +100 -0
  390. package/dist/commands/impl/SplitAtPlayheadCommand.js.map +1 -0
  391. package/dist/commands/impl/SplitRegionCommand.d.ts +22 -0
  392. package/dist/commands/impl/SplitRegionCommand.d.ts.map +1 -0
  393. package/dist/commands/impl/SplitRegionCommand.js +69 -0
  394. package/dist/commands/impl/SplitRegionCommand.js.map +1 -0
  395. package/dist/commands/impl/StripSilenceCommand.d.ts +26 -0
  396. package/dist/commands/impl/StripSilenceCommand.d.ts.map +1 -0
  397. package/dist/commands/impl/StripSilenceCommand.js +83 -0
  398. package/dist/commands/impl/StripSilenceCommand.js.map +1 -0
  399. package/dist/commands/impl/TimeStretchRegionCommand.d.ts +28 -0
  400. package/dist/commands/impl/TimeStretchRegionCommand.d.ts.map +1 -0
  401. package/dist/commands/impl/TimeStretchRegionCommand.js +55 -0
  402. package/dist/commands/impl/TimeStretchRegionCommand.js.map +1 -0
  403. package/dist/commands/impl/ToggleLoopCommand.d.ts +12 -0
  404. package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -0
  405. package/dist/commands/impl/ToggleLoopCommand.js +27 -0
  406. package/dist/commands/impl/ToggleLoopCommand.js.map +1 -0
  407. package/dist/commands/impl/TrimRegionCommand.d.ts +22 -0
  408. package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -0
  409. package/dist/commands/impl/TrimRegionCommand.js +92 -0
  410. package/dist/commands/impl/TrimRegionCommand.js.map +1 -0
  411. package/dist/commands/impl/UngroupRegionsCommand.d.ts +14 -0
  412. package/dist/commands/impl/UngroupRegionsCommand.d.ts.map +1 -0
  413. package/dist/commands/impl/UngroupRegionsCommand.js +28 -0
  414. package/dist/commands/impl/UngroupRegionsCommand.js.map +1 -0
  415. package/dist/commands/types.d.ts +1895 -0
  416. package/dist/commands/types.d.ts.map +1 -0
  417. package/dist/commands/types.js +1338 -0
  418. package/dist/commands/types.js.map +1 -0
  419. package/dist/domain/ABComparison.d.ts +33 -0
  420. package/dist/domain/ABComparison.d.ts.map +1 -0
  421. package/dist/domain/ABComparison.js +78 -0
  422. package/dist/domain/ABComparison.js.map +1 -0
  423. package/dist/domain/CDMarker.d.ts +36 -0
  424. package/dist/domain/CDMarker.d.ts.map +1 -0
  425. package/dist/domain/CDMarker.js +78 -0
  426. package/dist/domain/CDMarker.js.map +1 -0
  427. package/dist/domain/ClockMode.d.ts +19 -0
  428. package/dist/domain/ClockMode.d.ts.map +1 -0
  429. package/dist/domain/ClockMode.js +65 -0
  430. package/dist/domain/ClockMode.js.map +1 -0
  431. package/dist/domain/CrossfadeEngine.d.ts +27 -0
  432. package/dist/domain/CrossfadeEngine.d.ts.map +1 -0
  433. package/dist/domain/CrossfadeEngine.js +47 -0
  434. package/dist/domain/CrossfadeEngine.js.map +1 -0
  435. package/dist/domain/DragManager.d.ts +21 -0
  436. package/dist/domain/DragManager.d.ts.map +1 -0
  437. package/dist/domain/DragManager.js +37 -0
  438. package/dist/domain/DragManager.js.map +1 -0
  439. package/dist/domain/EditMode.d.ts +15 -0
  440. package/dist/domain/EditMode.d.ts.map +1 -0
  441. package/dist/domain/EditMode.js +16 -0
  442. package/dist/domain/EditMode.js.map +1 -0
  443. package/dist/domain/ExportConfig.d.ts +55 -0
  444. package/dist/domain/ExportConfig.d.ts.map +1 -0
  445. package/dist/domain/ExportConfig.js +115 -0
  446. package/dist/domain/ExportConfig.js.map +1 -0
  447. package/dist/domain/ExportStatus.d.ts +46 -0
  448. package/dist/domain/ExportStatus.d.ts.map +1 -0
  449. package/dist/domain/ExportStatus.js +113 -0
  450. package/dist/domain/ExportStatus.js.map +1 -0
  451. package/dist/domain/FadeEnvelope.d.ts +31 -0
  452. package/dist/domain/FadeEnvelope.d.ts.map +1 -0
  453. package/dist/domain/FadeEnvelope.js +44 -0
  454. package/dist/domain/FadeEnvelope.js.map +1 -0
  455. package/dist/domain/GridSettings.d.ts +99 -0
  456. package/dist/domain/GridSettings.d.ts.map +1 -0
  457. package/dist/domain/GridSettings.js +213 -0
  458. package/dist/domain/GridSettings.js.map +1 -0
  459. package/dist/domain/Marker.d.ts +31 -0
  460. package/dist/domain/Marker.d.ts.map +1 -0
  461. package/dist/domain/Marker.js +56 -0
  462. package/dist/domain/Marker.js.map +1 -0
  463. package/dist/domain/MeterData.d.ts +26 -0
  464. package/dist/domain/MeterData.d.ts.map +1 -0
  465. package/dist/domain/MeterData.js +2 -0
  466. package/dist/domain/MeterData.js.map +1 -0
  467. package/dist/domain/MeterType.d.ts +22 -0
  468. package/dist/domain/MeterType.d.ts.map +1 -0
  469. package/dist/domain/MeterType.js +24 -0
  470. package/dist/domain/MeterType.js.map +1 -0
  471. package/dist/domain/MidiClip.d.ts +56 -0
  472. package/dist/domain/MidiClip.d.ts.map +1 -0
  473. package/dist/domain/MidiClip.js +119 -0
  474. package/dist/domain/MidiClip.js.map +1 -0
  475. package/dist/domain/MidiNote.d.ts +38 -0
  476. package/dist/domain/MidiNote.d.ts.map +1 -0
  477. package/dist/domain/MidiNote.js +82 -0
  478. package/dist/domain/MidiNote.js.map +1 -0
  479. package/dist/domain/MidiRegion.d.ts +65 -0
  480. package/dist/domain/MidiRegion.d.ts.map +1 -0
  481. package/dist/domain/MidiRegion.js +123 -0
  482. package/dist/domain/MidiRegion.js.map +1 -0
  483. package/dist/domain/MixerScene.d.ts +62 -0
  484. package/dist/domain/MixerScene.d.ts.map +1 -0
  485. package/dist/domain/MixerScene.js +131 -0
  486. package/dist/domain/MixerScene.js.map +1 -0
  487. package/dist/domain/MonitorMode.d.ts +15 -0
  488. package/dist/domain/MonitorMode.d.ts.map +1 -0
  489. package/dist/domain/MonitorMode.js +16 -0
  490. package/dist/domain/MonitorMode.js.map +1 -0
  491. package/dist/domain/MouseMode.d.ts +25 -0
  492. package/dist/domain/MouseMode.d.ts.map +1 -0
  493. package/dist/domain/MouseMode.js +26 -0
  494. package/dist/domain/MouseMode.js.map +1 -0
  495. package/dist/domain/OverlapType.d.ts +18 -0
  496. package/dist/domain/OverlapType.d.ts.map +1 -0
  497. package/dist/domain/OverlapType.js +19 -0
  498. package/dist/domain/OverlapType.js.map +1 -0
  499. package/dist/domain/Playlist.d.ts +83 -0
  500. package/dist/domain/Playlist.d.ts.map +1 -0
  501. package/dist/domain/Playlist.js +205 -0
  502. package/dist/domain/Playlist.js.map +1 -0
  503. package/dist/domain/Range.d.ts +35 -0
  504. package/dist/domain/Range.d.ts.map +1 -0
  505. package/dist/domain/Range.js +59 -0
  506. package/dist/domain/Range.js.map +1 -0
  507. package/dist/domain/RecordMode.d.ts +13 -0
  508. package/dist/domain/RecordMode.d.ts.map +1 -0
  509. package/dist/domain/RecordMode.js +14 -0
  510. package/dist/domain/RecordMode.js.map +1 -0
  511. package/dist/domain/Region.d.ts +96 -0
  512. package/dist/domain/Region.d.ts.map +1 -0
  513. package/dist/domain/Region.js +219 -0
  514. package/dist/domain/Region.js.map +1 -0
  515. package/dist/domain/RegionClipboard.d.ts +56 -0
  516. package/dist/domain/RegionClipboard.d.ts.map +1 -0
  517. package/dist/domain/RegionClipboard.js +70 -0
  518. package/dist/domain/RegionClipboard.js.map +1 -0
  519. package/dist/domain/RegionGroup.d.ts +16 -0
  520. package/dist/domain/RegionGroup.d.ts.map +1 -0
  521. package/dist/domain/RegionGroup.js +36 -0
  522. package/dist/domain/RegionGroup.js.map +1 -0
  523. package/dist/domain/Route.d.ts +104 -0
  524. package/dist/domain/Route.d.ts.map +1 -0
  525. package/dist/domain/Route.js +192 -0
  526. package/dist/domain/Route.js.map +1 -0
  527. package/dist/domain/RulerType.d.ts +21 -0
  528. package/dist/domain/RulerType.d.ts.map +1 -0
  529. package/dist/domain/RulerType.js +22 -0
  530. package/dist/domain/RulerType.js.map +1 -0
  531. package/dist/domain/SelectionHistory.d.ts +38 -0
  532. package/dist/domain/SelectionHistory.d.ts.map +1 -0
  533. package/dist/domain/SelectionHistory.js +70 -0
  534. package/dist/domain/SelectionHistory.js.map +1 -0
  535. package/dist/domain/SendBus.d.ts +28 -0
  536. package/dist/domain/SendBus.d.ts.map +1 -0
  537. package/dist/domain/SendBus.js +43 -0
  538. package/dist/domain/SendBus.js.map +1 -0
  539. package/dist/domain/Session.d.ts +347 -0
  540. package/dist/domain/Session.d.ts.map +1 -0
  541. package/dist/domain/Session.js +965 -0
  542. package/dist/domain/Session.js.map +1 -0
  543. package/dist/domain/SidechainConfig.d.ts +51 -0
  544. package/dist/domain/SidechainConfig.d.ts.map +1 -0
  545. package/dist/domain/SidechainConfig.js +84 -0
  546. package/dist/domain/SidechainConfig.js.map +1 -0
  547. package/dist/domain/Source.d.ts +11 -0
  548. package/dist/domain/Source.d.ts.map +1 -0
  549. package/dist/domain/Source.js +11 -0
  550. package/dist/domain/Source.js.map +1 -0
  551. package/dist/domain/Take.d.ts +66 -0
  552. package/dist/domain/Take.d.ts.map +1 -0
  553. package/dist/domain/Take.js +106 -0
  554. package/dist/domain/Take.js.map +1 -0
  555. package/dist/domain/Track.d.ts +58 -0
  556. package/dist/domain/Track.d.ts.map +1 -0
  557. package/dist/domain/Track.js +124 -0
  558. package/dist/domain/Track.js.map +1 -0
  559. package/dist/domain/TrackGroup.d.ts +39 -0
  560. package/dist/domain/TrackGroup.d.ts.map +1 -0
  561. package/dist/domain/TrackGroup.js +86 -0
  562. package/dist/domain/TrackGroup.js.map +1 -0
  563. package/dist/domain/TransportFSM.d.ts +188 -0
  564. package/dist/domain/TransportFSM.d.ts.map +1 -0
  565. package/dist/domain/TransportFSM.js +412 -0
  566. package/dist/domain/TransportFSM.js.map +1 -0
  567. package/dist/domain/TransportMode.d.ts +23 -0
  568. package/dist/domain/TransportMode.d.ts.map +1 -0
  569. package/dist/domain/TransportMode.js +38 -0
  570. package/dist/domain/TransportMode.js.map +1 -0
  571. package/dist/domain/VCATrack.d.ts +48 -0
  572. package/dist/domain/VCATrack.d.ts.map +1 -0
  573. package/dist/domain/VCATrack.js +85 -0
  574. package/dist/domain/VCATrack.js.map +1 -0
  575. package/dist/domain/ZoomFocus.d.ts +21 -0
  576. package/dist/domain/ZoomFocus.d.ts.map +1 -0
  577. package/dist/domain/ZoomFocus.js +22 -0
  578. package/dist/domain/ZoomFocus.js.map +1 -0
  579. package/dist/domain/index.d.ts +11 -0
  580. package/dist/domain/index.d.ts.map +1 -0
  581. package/dist/domain/index.js +12 -0
  582. package/dist/domain/index.js.map +1 -0
  583. package/dist/domain/temporal/TempoMap.d.ts +68 -0
  584. package/dist/domain/temporal/TempoMap.d.ts.map +1 -0
  585. package/dist/domain/temporal/TempoMap.js +151 -0
  586. package/dist/domain/temporal/TempoMap.js.map +1 -0
  587. package/dist/domain/temporal/types.d.ts +34 -0
  588. package/dist/domain/temporal/types.d.ts.map +1 -0
  589. package/dist/domain/temporal/types.js +54 -0
  590. package/dist/domain/temporal/types.js.map +1 -0
  591. package/dist/domain/types.d.ts +26 -0
  592. package/dist/domain/types.d.ts.map +1 -0
  593. package/dist/domain/types.js +11 -0
  594. package/dist/domain/types.js.map +1 -0
  595. package/dist/errors/DAWErrors.d.ts +107 -0
  596. package/dist/errors/DAWErrors.d.ts.map +1 -0
  597. package/dist/errors/DAWErrors.js +159 -0
  598. package/dist/errors/DAWErrors.js.map +1 -0
  599. package/dist/index.d.ts +56 -0
  600. package/dist/index.d.ts.map +1 -0
  601. package/dist/index.js +59 -0
  602. package/dist/index.js.map +1 -0
  603. package/dist/lib/Signal.d.ts +28 -0
  604. package/dist/lib/Signal.d.ts.map +1 -0
  605. package/dist/lib/Signal.js +34 -0
  606. package/dist/lib/Signal.js.map +1 -0
  607. package/dist/midi/MidiInput.d.ts +61 -0
  608. package/dist/midi/MidiInput.d.ts.map +1 -0
  609. package/dist/midi/MidiInput.js +153 -0
  610. package/dist/midi/MidiInput.js.map +1 -0
  611. package/dist/plugins/AutomatableParameter.d.ts +28 -0
  612. package/dist/plugins/AutomatableParameter.d.ts.map +1 -0
  613. package/dist/plugins/AutomatableParameter.js +89 -0
  614. package/dist/plugins/AutomatableParameter.js.map +1 -0
  615. package/dist/plugins/Plugin.d.ts +31 -0
  616. package/dist/plugins/Plugin.d.ts.map +1 -0
  617. package/dist/plugins/Plugin.js +7 -0
  618. package/dist/plugins/Plugin.js.map +1 -0
  619. package/dist/plugins/PluginManager.d.ts +15 -0
  620. package/dist/plugins/PluginManager.d.ts.map +1 -0
  621. package/dist/plugins/PluginManager.js +199 -0
  622. package/dist/plugins/PluginManager.js.map +1 -0
  623. package/dist/plugins/PluginPreset.d.ts +50 -0
  624. package/dist/plugins/PluginPreset.d.ts.map +1 -0
  625. package/dist/plugins/PluginPreset.js +292 -0
  626. package/dist/plugins/PluginPreset.js.map +1 -0
  627. package/dist/plugins/impl/AutoPanPlugin.d.ts +28 -0
  628. package/dist/plugins/impl/AutoPanPlugin.d.ts.map +1 -0
  629. package/dist/plugins/impl/AutoPanPlugin.js +48 -0
  630. package/dist/plugins/impl/AutoPanPlugin.js.map +1 -0
  631. package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts +35 -0
  632. package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts.map +1 -0
  633. package/dist/plugins/impl/ConvolutionReverbPlugin.js +65 -0
  634. package/dist/plugins/impl/ConvolutionReverbPlugin.js.map +1 -0
  635. package/dist/plugins/impl/DeEsserPlugin.d.ts +35 -0
  636. package/dist/plugins/impl/DeEsserPlugin.d.ts.map +1 -0
  637. package/dist/plugins/impl/DeEsserPlugin.js +87 -0
  638. package/dist/plugins/impl/DeEsserPlugin.js.map +1 -0
  639. package/dist/plugins/impl/ExpanderPlugin.d.ts +42 -0
  640. package/dist/plugins/impl/ExpanderPlugin.d.ts.map +1 -0
  641. package/dist/plugins/impl/ExpanderPlugin.js +105 -0
  642. package/dist/plugins/impl/ExpanderPlugin.js.map +1 -0
  643. package/dist/plugins/impl/GenericPlugin.d.ts +20 -0
  644. package/dist/plugins/impl/GenericPlugin.d.ts.map +1 -0
  645. package/dist/plugins/impl/GenericPlugin.js +37 -0
  646. package/dist/plugins/impl/GenericPlugin.js.map +1 -0
  647. package/dist/plugins/impl/MultibandCompressorPlugin.d.ts +33 -0
  648. package/dist/plugins/impl/MultibandCompressorPlugin.d.ts.map +1 -0
  649. package/dist/plugins/impl/MultibandCompressorPlugin.js +169 -0
  650. package/dist/plugins/impl/MultibandCompressorPlugin.js.map +1 -0
  651. package/dist/plugins/impl/ParametricEQPlugin.d.ts +25 -0
  652. package/dist/plugins/impl/ParametricEQPlugin.d.ts.map +1 -0
  653. package/dist/plugins/impl/ParametricEQPlugin.js +79 -0
  654. package/dist/plugins/impl/ParametricEQPlugin.js.map +1 -0
  655. package/dist/plugins/impl/PhaserPlugin.d.ts +29 -0
  656. package/dist/plugins/impl/PhaserPlugin.d.ts.map +1 -0
  657. package/dist/plugins/impl/PhaserPlugin.js +50 -0
  658. package/dist/plugins/impl/PhaserPlugin.js.map +1 -0
  659. package/dist/plugins/impl/SyncDelayPlugin.d.ts +52 -0
  660. package/dist/plugins/impl/SyncDelayPlugin.d.ts.map +1 -0
  661. package/dist/plugins/impl/SyncDelayPlugin.js +95 -0
  662. package/dist/plugins/impl/SyncDelayPlugin.js.map +1 -0
  663. package/dist/plugins/impl/TapeSaturationPlugin.d.ts +35 -0
  664. package/dist/plugins/impl/TapeSaturationPlugin.d.ts.map +1 -0
  665. package/dist/plugins/impl/TapeSaturationPlugin.js +87 -0
  666. package/dist/plugins/impl/TapeSaturationPlugin.js.map +1 -0
  667. package/dist/plugins/impl/TremoloPlugin.d.ts +29 -0
  668. package/dist/plugins/impl/TremoloPlugin.d.ts.map +1 -0
  669. package/dist/plugins/impl/TremoloPlugin.js +50 -0
  670. package/dist/plugins/impl/TremoloPlugin.js.map +1 -0
  671. package/dist/plugins/impl/VibratoPlugin.d.ts +28 -0
  672. package/dist/plugins/impl/VibratoPlugin.d.ts.map +1 -0
  673. package/dist/plugins/impl/VibratoPlugin.js +48 -0
  674. package/dist/plugins/impl/VibratoPlugin.js.map +1 -0
  675. package/dist/preferences/KeyBindings.d.ts +38 -0
  676. package/dist/preferences/KeyBindings.d.ts.map +1 -0
  677. package/dist/preferences/KeyBindings.js +83 -0
  678. package/dist/preferences/KeyBindings.js.map +1 -0
  679. package/dist/preferences/Preferences.d.ts +49 -0
  680. package/dist/preferences/Preferences.d.ts.map +1 -0
  681. package/dist/preferences/Preferences.js +93 -0
  682. package/dist/preferences/Preferences.js.map +1 -0
  683. package/dist/preferences/index.d.ts +4 -0
  684. package/dist/preferences/index.d.ts.map +1 -0
  685. package/dist/preferences/index.js +3 -0
  686. package/dist/preferences/index.js.map +1 -0
  687. package/dist/processing/GainProcessor.d.ts +10 -0
  688. package/dist/processing/GainProcessor.d.ts.map +1 -0
  689. package/dist/processing/GainProcessor.js +21 -0
  690. package/dist/processing/GainProcessor.js.map +1 -0
  691. package/dist/processing/IO.d.ts +15 -0
  692. package/dist/processing/IO.d.ts.map +1 -0
  693. package/dist/processing/IO.js +34 -0
  694. package/dist/processing/IO.js.map +1 -0
  695. package/dist/processing/MeterProcessor.d.ts +101 -0
  696. package/dist/processing/MeterProcessor.d.ts.map +1 -0
  697. package/dist/processing/MeterProcessor.js +195 -0
  698. package/dist/processing/MeterProcessor.js.map +1 -0
  699. package/dist/processing/PanProcessor.d.ts +15 -0
  700. package/dist/processing/PanProcessor.d.ts.map +1 -0
  701. package/dist/processing/PanProcessor.js +35 -0
  702. package/dist/processing/PanProcessor.js.map +1 -0
  703. package/dist/processing/PluginInsert.d.ts +9 -0
  704. package/dist/processing/PluginInsert.d.ts.map +1 -0
  705. package/dist/processing/PluginInsert.js +16 -0
  706. package/dist/processing/PluginInsert.js.map +1 -0
  707. package/dist/processing/PolarityProcessor.d.ts +25 -0
  708. package/dist/processing/PolarityProcessor.d.ts.map +1 -0
  709. package/dist/processing/PolarityProcessor.js +35 -0
  710. package/dist/processing/PolarityProcessor.js.map +1 -0
  711. package/dist/processing/Processor.d.ts +31 -0
  712. package/dist/processing/Processor.d.ts.map +1 -0
  713. package/dist/processing/Processor.js +45 -0
  714. package/dist/processing/Processor.js.map +1 -0
  715. package/dist/processing/SendProcessor.d.ts +55 -0
  716. package/dist/processing/SendProcessor.d.ts.map +1 -0
  717. package/dist/processing/SendProcessor.js +97 -0
  718. package/dist/processing/SendProcessor.js.map +1 -0
  719. package/dist/storage/AutoSave.d.ts +48 -0
  720. package/dist/storage/AutoSave.d.ts.map +1 -0
  721. package/dist/storage/AutoSave.js +108 -0
  722. package/dist/storage/AutoSave.js.map +1 -0
  723. package/dist/storage/SessionStorage.d.ts +74 -0
  724. package/dist/storage/SessionStorage.d.ts.map +1 -0
  725. package/dist/storage/SessionStorage.js +192 -0
  726. package/dist/storage/SessionStorage.js.map +1 -0
  727. package/dist/storage/SessionTemplate.d.ts +22 -0
  728. package/dist/storage/SessionTemplate.d.ts.map +1 -0
  729. package/dist/storage/SessionTemplate.js +77 -0
  730. package/dist/storage/SessionTemplate.js.map +1 -0
  731. package/dist/utils/AudioBufferToWav.d.ts +28 -0
  732. package/dist/utils/AudioBufferToWav.d.ts.map +1 -0
  733. package/dist/utils/AudioBufferToWav.js +110 -0
  734. package/dist/utils/AudioBufferToWav.js.map +1 -0
  735. package/dist/utils/DitherProcessor.d.ts +41 -0
  736. package/dist/utils/DitherProcessor.d.ts.map +1 -0
  737. package/dist/utils/DitherProcessor.js +78 -0
  738. package/dist/utils/DitherProcessor.js.map +1 -0
  739. package/dist/utils/FlacEncoder.d.ts +22 -0
  740. package/dist/utils/FlacEncoder.d.ts.map +1 -0
  741. package/dist/utils/FlacEncoder.js +196 -0
  742. package/dist/utils/FlacEncoder.js.map +1 -0
  743. package/dist/utils/OggEncoder.d.ts +40 -0
  744. package/dist/utils/OggEncoder.d.ts.map +1 -0
  745. package/dist/utils/OggEncoder.js +183 -0
  746. package/dist/utils/OggEncoder.js.map +1 -0
  747. package/package.json +67 -0
@@ -0,0 +1,360 @@
1
+ /**
2
+ * ProcessingGraph — a directed acyclic graph (DAG) for modeling signal-processing
3
+ * node execution order.
4
+ *
5
+ * Inspired by Ardour's internal graph scheduler (`libs/ardour/graph.cc`).
6
+ * The graph is a standalone utility with no audio-framework dependencies,
7
+ * making it suitable for unit testing and headless use.
8
+ *
9
+ * Key capabilities:
10
+ * - Add / remove nodes and directed edges (from → to means "from depends on to")
11
+ * - Topological sort via Kahn's algorithm — produces a valid execution order
12
+ * - Cycle detection via iterative DFS
13
+ * - Parallel-group extraction — nodes at the same "depth" can run concurrently
14
+ *
15
+ * @module ProcessingGraph
16
+ */
17
+ /**
18
+ * ProcessingGraph models a DAG of {@link GraphNode}s connected by directed
19
+ * dependency edges.
20
+ *
21
+ * An edge `from → to` means "node `from` depends on node `to`" — i.e. `to`
22
+ * must be processed **before** `from`.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const graph = new ProcessingGraph();
27
+ * graph.addNode({ id: 'input' });
28
+ * graph.addNode({ id: 'eq' });
29
+ * graph.addNode({ id: 'compressor' });
30
+ * graph.addNode({ id: 'output' });
31
+ *
32
+ * graph.addEdge('eq', 'input'); // eq depends on input
33
+ * graph.addEdge('compressor', 'eq'); // compressor depends on eq
34
+ * graph.addEdge('output', 'compressor'); // output depends on compressor
35
+ *
36
+ * const order = graph.topologicalSort(); // [input, eq, compressor, output]
37
+ * ```
38
+ */
39
+ export class ProcessingGraph {
40
+ constructor() {
41
+ /** All registered nodes keyed by id. */
42
+ this.nodes = new Map();
43
+ /**
44
+ * Adjacency list storing **dependencies** (incoming edges).
45
+ * `edges.get(nodeId)` → set of node ids that `nodeId` depends on.
46
+ */
47
+ this.edges = new Map();
48
+ }
49
+ // ---------------------------------------------------------------
50
+ // Node management
51
+ // ---------------------------------------------------------------
52
+ /**
53
+ * Register a node in the graph.
54
+ *
55
+ * If a node with the same `id` already exists it will be replaced,
56
+ * but its edges are preserved.
57
+ *
58
+ * @param node - The graph node to add.
59
+ */
60
+ addNode(node) {
61
+ this.nodes.set(node.id, node);
62
+ if (!this.edges.has(node.id)) {
63
+ this.edges.set(node.id, new Set());
64
+ }
65
+ }
66
+ /**
67
+ * Remove a node and all edges that reference it (both incoming and
68
+ * outgoing).
69
+ *
70
+ * @param nodeId - The id of the node to remove.
71
+ */
72
+ removeNode(nodeId) {
73
+ this.nodes.delete(nodeId);
74
+ this.edges.delete(nodeId);
75
+ // Remove references to this node from all other edge sets
76
+ for (const deps of this.edges.values()) {
77
+ deps.delete(nodeId);
78
+ }
79
+ }
80
+ /**
81
+ * Return the node with the given id, or `undefined` if it does not exist.
82
+ *
83
+ * @param nodeId - The id to look up.
84
+ */
85
+ getNode(nodeId) {
86
+ return this.nodes.get(nodeId);
87
+ }
88
+ /**
89
+ * The total number of nodes currently in the graph.
90
+ */
91
+ get nodeCount() {
92
+ return this.nodes.size;
93
+ }
94
+ // ---------------------------------------------------------------
95
+ // Edge management
96
+ // ---------------------------------------------------------------
97
+ /**
98
+ * Add a directed dependency edge: `from` depends on `to`.
99
+ *
100
+ * Both node ids must already exist in the graph; otherwise the call is a
101
+ * no-op.
102
+ *
103
+ * @param from - The node that has the dependency.
104
+ * @param to - The node that must be processed first.
105
+ */
106
+ addEdge(from, to) {
107
+ if (!this.nodes.has(from) || !this.nodes.has(to)) {
108
+ return;
109
+ }
110
+ const deps = this.edges.get(from);
111
+ if (deps) {
112
+ deps.add(to);
113
+ }
114
+ }
115
+ /**
116
+ * Remove a directed dependency edge.
117
+ *
118
+ * @param from - The dependent node.
119
+ * @param to - The dependency to remove.
120
+ */
121
+ removeEdge(from, to) {
122
+ const deps = this.edges.get(from);
123
+ if (deps) {
124
+ deps.delete(to);
125
+ }
126
+ }
127
+ // ---------------------------------------------------------------
128
+ // Topological sort (Kahn's algorithm)
129
+ // ---------------------------------------------------------------
130
+ /**
131
+ * Return the nodes in a valid execution order (dependencies first) using
132
+ * Kahn's algorithm.
133
+ *
134
+ * @throws {Error} If the graph contains a cycle (not all nodes can be
135
+ * sorted).
136
+ * @returns An array of {@link GraphNode} in topological order.
137
+ */
138
+ topologicalSort() {
139
+ var _a, _b, _c;
140
+ if (this.nodes.size === 0) {
141
+ return [];
142
+ }
143
+ // Build in-degree map (number of dependencies each node has)
144
+ const inDegree = new Map();
145
+ for (const id of this.nodes.keys()) {
146
+ inDegree.set(id, 0);
147
+ }
148
+ // For Kahn's algorithm we need the *forward* adjacency: for each node,
149
+ // which other nodes depend on it. We also need the in-degree — the
150
+ // number of dependencies each node has.
151
+ const forwardAdj = new Map();
152
+ for (const id of this.nodes.keys()) {
153
+ forwardAdj.set(id, []);
154
+ }
155
+ for (const [nodeId, deps] of this.edges) {
156
+ inDegree.set(nodeId, deps.size);
157
+ for (const depId of deps) {
158
+ (_a = forwardAdj.get(depId)) === null || _a === void 0 ? void 0 : _a.push(nodeId);
159
+ }
160
+ }
161
+ // Seed the queue with nodes that have zero in-degree
162
+ const queue = [];
163
+ for (const [id, deg] of inDegree) {
164
+ if (deg === 0) {
165
+ queue.push(id);
166
+ }
167
+ }
168
+ const sorted = [];
169
+ while (queue.length > 0) {
170
+ // Sort the queue for deterministic output (alphabetical by id)
171
+ queue.sort();
172
+ const id = queue.shift();
173
+ const node = this.nodes.get(id);
174
+ if (node) {
175
+ sorted.push(node);
176
+ }
177
+ const dependents = (_b = forwardAdj.get(id)) !== null && _b !== void 0 ? _b : [];
178
+ for (const depId of dependents) {
179
+ const newDeg = ((_c = inDegree.get(depId)) !== null && _c !== void 0 ? _c : 1) - 1;
180
+ inDegree.set(depId, newDeg);
181
+ if (newDeg === 0) {
182
+ queue.push(depId);
183
+ }
184
+ }
185
+ }
186
+ if (sorted.length !== this.nodes.size) {
187
+ throw new Error('ProcessingGraph contains a cycle — topological sort is not possible');
188
+ }
189
+ return sorted;
190
+ }
191
+ // ---------------------------------------------------------------
192
+ // Parallel groups
193
+ // ---------------------------------------------------------------
194
+ /**
195
+ * Partition the graph into groups of nodes that can be executed in
196
+ * parallel.
197
+ *
198
+ * Each group contains nodes whose dependencies have all been satisfied by
199
+ * earlier groups. Within a group the nodes are independent and can run
200
+ * concurrently.
201
+ *
202
+ * @throws {Error} If the graph contains a cycle.
203
+ * @returns An array of arrays — each inner array is a parallel group
204
+ * ordered from first-to-execute to last.
205
+ */
206
+ getParallelGroups() {
207
+ var _a, _b, _c;
208
+ if (this.nodes.size === 0) {
209
+ return [];
210
+ }
211
+ // Build in-degree and forward adjacency (same as topologicalSort)
212
+ const inDegree = new Map();
213
+ const forwardAdj = new Map();
214
+ for (const id of this.nodes.keys()) {
215
+ inDegree.set(id, 0);
216
+ forwardAdj.set(id, []);
217
+ }
218
+ for (const [nodeId, deps] of this.edges) {
219
+ inDegree.set(nodeId, deps.size);
220
+ for (const depId of deps) {
221
+ (_a = forwardAdj.get(depId)) === null || _a === void 0 ? void 0 : _a.push(nodeId);
222
+ }
223
+ }
224
+ // BFS by levels
225
+ let currentLevel = [];
226
+ for (const [id, deg] of inDegree) {
227
+ if (deg === 0) {
228
+ currentLevel.push(id);
229
+ }
230
+ }
231
+ const groups = [];
232
+ let processed = 0;
233
+ while (currentLevel.length > 0) {
234
+ // Sort for deterministic ordering
235
+ currentLevel.sort();
236
+ const group = [];
237
+ const nextLevel = [];
238
+ for (const id of currentLevel) {
239
+ const node = this.nodes.get(id);
240
+ if (node) {
241
+ group.push(node);
242
+ processed++;
243
+ }
244
+ const dependents = (_b = forwardAdj.get(id)) !== null && _b !== void 0 ? _b : [];
245
+ for (const depId of dependents) {
246
+ const newDeg = ((_c = inDegree.get(depId)) !== null && _c !== void 0 ? _c : 1) - 1;
247
+ inDegree.set(depId, newDeg);
248
+ if (newDeg === 0) {
249
+ nextLevel.push(depId);
250
+ }
251
+ }
252
+ }
253
+ if (group.length > 0) {
254
+ groups.push(group);
255
+ }
256
+ currentLevel = nextLevel;
257
+ }
258
+ if (processed !== this.nodes.size) {
259
+ throw new Error('ProcessingGraph contains a cycle — parallel grouping is not possible');
260
+ }
261
+ return groups;
262
+ }
263
+ // ---------------------------------------------------------------
264
+ // Cycle detection (iterative DFS)
265
+ // ---------------------------------------------------------------
266
+ /**
267
+ * Detect whether the graph contains any cycles using iterative DFS.
268
+ *
269
+ * @returns `true` if a cycle exists, `false` otherwise.
270
+ */
271
+ detectCycles() {
272
+ var _a;
273
+ const WHITE = 0; // unvisited
274
+ const GRAY = 1; // in current DFS path
275
+ const BLACK = 2; // fully processed
276
+ const color = new Map();
277
+ for (const id of this.nodes.keys()) {
278
+ color.set(id, WHITE);
279
+ }
280
+ for (const startId of this.nodes.keys()) {
281
+ if (color.get(startId) !== WHITE) {
282
+ continue;
283
+ }
284
+ // Iterative DFS using an explicit stack.
285
+ // Each stack entry is [nodeId, isBacktrack].
286
+ const stack = [[startId, false]];
287
+ while (stack.length > 0) {
288
+ const [nodeId, isBacktrack] = stack.pop();
289
+ if (isBacktrack) {
290
+ color.set(nodeId, BLACK);
291
+ continue;
292
+ }
293
+ if (color.get(nodeId) === GRAY) {
294
+ // Already being visited in this path — cycle detected
295
+ return true;
296
+ }
297
+ if (color.get(nodeId) === BLACK) {
298
+ continue;
299
+ }
300
+ color.set(nodeId, GRAY);
301
+ // Push a backtrack marker so we set BLACK when we unwind
302
+ stack.push([nodeId, true]);
303
+ // Push all dependencies (neighbors in the dependency direction)
304
+ const deps = (_a = this.edges.get(nodeId)) !== null && _a !== void 0 ? _a : new Set();
305
+ for (const depId of deps) {
306
+ const depColor = color.get(depId);
307
+ if (depColor === GRAY) {
308
+ return true; // back edge → cycle
309
+ }
310
+ if (depColor === WHITE) {
311
+ stack.push([depId, false]);
312
+ }
313
+ }
314
+ }
315
+ }
316
+ return false;
317
+ }
318
+ // ---------------------------------------------------------------
319
+ // Dependency queries
320
+ // ---------------------------------------------------------------
321
+ /**
322
+ * Return the ids of all nodes that `nodeId` directly depends on
323
+ * (its prerequisites).
324
+ *
325
+ * @param nodeId - The node to query.
326
+ * @returns An array of dependency node ids, or an empty array if the node
327
+ * has no dependencies or does not exist.
328
+ */
329
+ getDependencies(nodeId) {
330
+ const deps = this.edges.get(nodeId);
331
+ return deps ? [...deps] : [];
332
+ }
333
+ /**
334
+ * Return the ids of all nodes that directly depend on `nodeId`
335
+ * (its consumers / dependents).
336
+ *
337
+ * @param nodeId - The node to query.
338
+ * @returns An array of dependent node ids.
339
+ */
340
+ getDependents(nodeId) {
341
+ const result = [];
342
+ for (const [id, deps] of this.edges) {
343
+ if (deps.has(nodeId)) {
344
+ result.push(id);
345
+ }
346
+ }
347
+ return result;
348
+ }
349
+ // ---------------------------------------------------------------
350
+ // Housekeeping
351
+ // ---------------------------------------------------------------
352
+ /**
353
+ * Remove all nodes and edges from the graph.
354
+ */
355
+ clear() {
356
+ this.nodes.clear();
357
+ this.edges.clear();
358
+ }
359
+ }
360
+ //# sourceMappingURL=ProcessingGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessingGraph.js","sourceRoot":"","sources":["../../src/audio/ProcessingGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * SourceCache — an LRU cache for decoded audio buffers keyed by source id.
3
+ *
4
+ * Inspired by Ardour's `SourceFactory` / `Source::DecodeCache`
5
+ * (`libs/ardour/source_factory.cc`).
6
+ *
7
+ * Large sessions can reference hundreds of audio files. Decoding them on
8
+ * demand is expensive, but keeping *every* decoded buffer in memory is not
9
+ * always feasible. `SourceCache` strikes a balance by caching up to a
10
+ * configurable memory limit and evicting least-recently-used entries when
11
+ * the limit is exceeded.
12
+ *
13
+ * This class has **no** external dependencies (no audio framework imports)
14
+ * and can be unit-tested in isolation.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const cache = new SourceCache(256); // 256 MB limit
19
+ *
20
+ * cache.set('kick.wav', decodedBuffer);
21
+ *
22
+ * const buf = cache.get('kick.wav'); // cache hit
23
+ * console.log(cache.getCacheHitRate()); // 1.0
24
+ * ```
25
+ *
26
+ * @module SourceCache
27
+ */
28
+ /**
29
+ * SourceCache provides an LRU (least-recently-used) cache for
30
+ * {@link AudioBuffer} instances, bounded by a configurable memory limit.
31
+ */
32
+ export declare class SourceCache {
33
+ /** Map of source id to cache entry. */
34
+ private cache;
35
+ /** Maximum allowed memory usage in bytes. */
36
+ private maxMemoryBytes;
37
+ /** Running total of cached memory in bytes. */
38
+ private currentMemoryBytes;
39
+ /** Number of successful cache lookups. */
40
+ private hits;
41
+ /** Number of cache misses. */
42
+ private misses;
43
+ /**
44
+ * @param maxMemoryMB - Maximum cache size in megabytes. Defaults to
45
+ * 512 MB.
46
+ */
47
+ constructor(maxMemoryMB?: number);
48
+ /**
49
+ * Retrieve a cached {@link AudioBuffer} by source id.
50
+ *
51
+ * On a hit the entry's `lastAccess` timestamp is refreshed so it is less
52
+ * likely to be evicted.
53
+ *
54
+ * @param sourceId - Unique identifier for the audio source.
55
+ * @returns The cached buffer, or `null` on a miss.
56
+ */
57
+ get(sourceId: string): AudioBuffer | null;
58
+ /**
59
+ * Add or replace an {@link AudioBuffer} in the cache.
60
+ *
61
+ * If inserting the buffer would exceed the memory limit, LRU entries are
62
+ * evicted first. If the buffer itself is larger than the entire cache
63
+ * limit it is still stored (after evicting everything), allowing
64
+ * single-buffer lookups to work.
65
+ *
66
+ * @param sourceId - Unique identifier for the audio source.
67
+ * @param buffer - The decoded audio data to cache.
68
+ */
69
+ set(sourceId: string, buffer: AudioBuffer): void;
70
+ /**
71
+ * Check whether a source id is present in the cache without affecting
72
+ * access statistics or the LRU order.
73
+ *
74
+ * @param sourceId - The source id to look up.
75
+ */
76
+ has(sourceId: string): boolean;
77
+ /**
78
+ * Explicitly remove a source from the cache.
79
+ *
80
+ * @param sourceId - The source id to remove.
81
+ */
82
+ remove(sourceId: string): void;
83
+ /**
84
+ * Evict entries using LRU policy until the current memory usage is at or
85
+ * below the configured limit.
86
+ *
87
+ * This is called automatically by {@link set}, but can also be invoked
88
+ * manually (e.g. after reducing the memory limit at runtime).
89
+ */
90
+ evict(): void;
91
+ /**
92
+ * Evict the single least-recently-used entry.
93
+ */
94
+ private evictOne;
95
+ /**
96
+ * Current memory usage in bytes.
97
+ */
98
+ getMemoryUsage(): number;
99
+ /**
100
+ * Current memory usage in megabytes.
101
+ */
102
+ getMemoryUsageMB(): number;
103
+ /**
104
+ * Cache hit rate as a ratio `[0, 1]`.
105
+ *
106
+ * Returns `0` if no lookups have been performed yet.
107
+ */
108
+ getCacheHitRate(): number;
109
+ /**
110
+ * Number of entries currently in the cache.
111
+ */
112
+ get size(): number;
113
+ /**
114
+ * Remove all entries from the cache and reset statistics.
115
+ */
116
+ clear(): void;
117
+ /**
118
+ * Estimate the memory footprint of a decoded {@link AudioBuffer}.
119
+ *
120
+ * Each channel is a `Float32Array` (4 bytes per sample).
121
+ */
122
+ private estimateBufferSize;
123
+ }
124
+ //# sourceMappingURL=SourceCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceCache.d.ts","sourceRoot":"","sources":["../../src/audio/SourceCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAcH;;;GAGG;AACH,qBAAa,WAAW;IACpB,uCAAuC;IACvC,OAAO,CAAC,KAAK,CAAsC;IAEnD,6CAA6C;IAC7C,OAAO,CAAC,cAAc,CAAS;IAE/B,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAK;IAI/B,0CAA0C;IAC1C,OAAO,CAAC,IAAI,CAAK;IACjB,8BAA8B;IAC9B,OAAO,CAAC,MAAM,CAAK;IAEnB;;;OAGG;gBACS,WAAW,GAAE,MAAY;IAQrC;;;;;;;;OAQG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAWzC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IA0BhD;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY9B;;;;;;OAMG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAKzB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAG7B"}