@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.
- package/LICENSE +21 -0
- package/README.md +316 -0
- package/dist/actions/ActionRegistry.d.ts +33 -0
- package/dist/actions/ActionRegistry.d.ts.map +1 -0
- package/dist/actions/ActionRegistry.js +96 -0
- package/dist/actions/ActionRegistry.js.map +1 -0
- package/dist/actions/types.d.ts +31 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +11 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/analysis/TransientDetector.d.ts +28 -0
- package/dist/analysis/TransientDetector.d.ts.map +1 -0
- package/dist/analysis/TransientDetector.js +109 -0
- package/dist/analysis/TransientDetector.js.map +1 -0
- package/dist/audio/AudioEngine.d.ts +107 -0
- package/dist/audio/AudioEngine.d.ts.map +1 -0
- package/dist/audio/AudioEngine.js +798 -0
- package/dist/audio/AudioEngine.js.map +1 -0
- package/dist/audio/AudioProvider.d.ts +96 -0
- package/dist/audio/AudioProvider.d.ts.map +1 -0
- package/dist/audio/AudioProvider.js +2 -0
- package/dist/audio/AudioProvider.js.map +1 -0
- package/dist/audio/BufferPool.d.ts +92 -0
- package/dist/audio/BufferPool.d.ts.map +1 -0
- package/dist/audio/BufferPool.js +172 -0
- package/dist/audio/BufferPool.js.map +1 -0
- package/dist/audio/LoudnessUtils.d.ts +18 -0
- package/dist/audio/LoudnessUtils.d.ts.map +1 -0
- package/dist/audio/LoudnessUtils.js +91 -0
- package/dist/audio/LoudnessUtils.js.map +1 -0
- package/dist/audio/MeterUtils.d.ts +37 -0
- package/dist/audio/MeterUtils.d.ts.map +1 -0
- package/dist/audio/MeterUtils.js +71 -0
- package/dist/audio/MeterUtils.js.map +1 -0
- package/dist/audio/OfflineExporter.d.ts +48 -0
- package/dist/audio/OfflineExporter.d.ts.map +1 -0
- package/dist/audio/OfflineExporter.js +202 -0
- package/dist/audio/OfflineExporter.js.map +1 -0
- package/dist/audio/ProcessingGraph.d.ts +152 -0
- package/dist/audio/ProcessingGraph.d.ts.map +1 -0
- package/dist/audio/ProcessingGraph.js +360 -0
- package/dist/audio/ProcessingGraph.js.map +1 -0
- package/dist/audio/SourceCache.d.ts +124 -0
- package/dist/audio/SourceCache.d.ts.map +1 -0
- package/dist/audio/SourceCache.js +205 -0
- package/dist/audio/SourceCache.js.map +1 -0
- package/dist/audio/dto.d.ts +50 -0
- package/dist/audio/dto.d.ts.map +1 -0
- package/dist/audio/dto.js +2 -0
- package/dist/audio/dto.js.map +1 -0
- package/dist/audio/engine/PlaylistEngine.d.ts +19 -0
- package/dist/audio/engine/PlaylistEngine.d.ts.map +1 -0
- package/dist/audio/engine/PlaylistEngine.js +83 -0
- package/dist/audio/engine/PlaylistEngine.js.map +1 -0
- package/dist/automation/AutomationCurve.d.ts +61 -0
- package/dist/automation/AutomationCurve.d.ts.map +1 -0
- package/dist/automation/AutomationCurve.js +198 -0
- package/dist/automation/AutomationCurve.js.map +1 -0
- package/dist/automation/AutomationList.d.ts +185 -0
- package/dist/automation/AutomationList.d.ts.map +1 -0
- package/dist/automation/AutomationList.js +459 -0
- package/dist/automation/AutomationList.js.map +1 -0
- package/dist/automation/AutomationMode.d.ts +17 -0
- package/dist/automation/AutomationMode.d.ts.map +1 -0
- package/dist/automation/AutomationMode.js +18 -0
- package/dist/automation/AutomationMode.js.map +1 -0
- package/dist/automation/ParameterDescriptor.d.ts +65 -0
- package/dist/automation/ParameterDescriptor.d.ts.map +1 -0
- package/dist/automation/ParameterDescriptor.js +113 -0
- package/dist/automation/ParameterDescriptor.js.map +1 -0
- package/dist/automation/PointThinning.d.ts +14 -0
- package/dist/automation/PointThinning.d.ts.map +1 -0
- package/dist/automation/PointThinning.js +52 -0
- package/dist/automation/PointThinning.js.map +1 -0
- package/dist/automation/types.d.ts +14 -0
- package/dist/automation/types.d.ts.map +1 -0
- package/dist/automation/types.js +9 -0
- package/dist/automation/types.js.map +1 -0
- package/dist/commands/Command.d.ts +8 -0
- package/dist/commands/Command.d.ts.map +1 -0
- package/dist/commands/Command.js +2 -0
- package/dist/commands/Command.js.map +1 -0
- package/dist/commands/CommandExecutor.d.ts +36 -0
- package/dist/commands/CommandExecutor.d.ts.map +1 -0
- package/dist/commands/CommandExecutor.js +108 -0
- package/dist/commands/CommandExecutor.js.map +1 -0
- package/dist/commands/CommandHistory.d.ts +155 -0
- package/dist/commands/CommandHistory.d.ts.map +1 -0
- package/dist/commands/CommandHistory.js +316 -0
- package/dist/commands/CommandHistory.js.map +1 -0
- package/dist/commands/CommandRegistry.d.ts +110 -0
- package/dist/commands/CommandRegistry.d.ts.map +1 -0
- package/dist/commands/CommandRegistry.js +91 -0
- package/dist/commands/CommandRegistry.js.map +1 -0
- package/dist/commands/UndoTransaction.d.ts +54 -0
- package/dist/commands/UndoTransaction.d.ts.map +1 -0
- package/dist/commands/UndoTransaction.js +77 -0
- package/dist/commands/UndoTransaction.js.map +1 -0
- package/dist/commands/handlers/AutomationHandler.d.ts +14 -0
- package/dist/commands/handlers/AutomationHandler.d.ts.map +1 -0
- package/dist/commands/handlers/AutomationHandler.js +84 -0
- package/dist/commands/handlers/AutomationHandler.js.map +1 -0
- package/dist/commands/handlers/CommandHandler.d.ts +57 -0
- package/dist/commands/handlers/CommandHandler.d.ts.map +1 -0
- package/dist/commands/handlers/CommandHandler.js +22 -0
- package/dist/commands/handlers/CommandHandler.js.map +1 -0
- package/dist/commands/handlers/ExportHandler.d.ts +14 -0
- package/dist/commands/handlers/ExportHandler.d.ts.map +1 -0
- package/dist/commands/handlers/ExportHandler.js +166 -0
- package/dist/commands/handlers/ExportHandler.js.map +1 -0
- package/dist/commands/handlers/HistoryHandler.d.ts +29 -0
- package/dist/commands/handlers/HistoryHandler.d.ts.map +1 -0
- package/dist/commands/handlers/HistoryHandler.js +124 -0
- package/dist/commands/handlers/HistoryHandler.js.map +1 -0
- package/dist/commands/handlers/IOHandler.d.ts +14 -0
- package/dist/commands/handlers/IOHandler.d.ts.map +1 -0
- package/dist/commands/handlers/IOHandler.js +59 -0
- package/dist/commands/handlers/IOHandler.js.map +1 -0
- package/dist/commands/handlers/MarkerHandler.d.ts +13 -0
- package/dist/commands/handlers/MarkerHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MarkerHandler.js +95 -0
- package/dist/commands/handlers/MarkerHandler.js.map +1 -0
- package/dist/commands/handlers/MidiHandler.d.ts +14 -0
- package/dist/commands/handlers/MidiHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MidiHandler.js +153 -0
- package/dist/commands/handlers/MidiHandler.js.map +1 -0
- package/dist/commands/handlers/MixerSceneHandler.d.ts +12 -0
- package/dist/commands/handlers/MixerSceneHandler.d.ts.map +1 -0
- package/dist/commands/handlers/MixerSceneHandler.js +113 -0
- package/dist/commands/handlers/MixerSceneHandler.js.map +1 -0
- package/dist/commands/handlers/RangeHandler.d.ts +14 -0
- package/dist/commands/handlers/RangeHandler.d.ts.map +1 -0
- package/dist/commands/handlers/RangeHandler.js +108 -0
- package/dist/commands/handlers/RangeHandler.js.map +1 -0
- package/dist/commands/handlers/RegionHandler.d.ts +14 -0
- package/dist/commands/handlers/RegionHandler.d.ts.map +1 -0
- package/dist/commands/handlers/RegionHandler.js +313 -0
- package/dist/commands/handlers/RegionHandler.js.map +1 -0
- package/dist/commands/handlers/SendBusHandler.d.ts +14 -0
- package/dist/commands/handlers/SendBusHandler.d.ts.map +1 -0
- package/dist/commands/handlers/SendBusHandler.js +55 -0
- package/dist/commands/handlers/SendBusHandler.js.map +1 -0
- package/dist/commands/handlers/SessionHandler.d.ts +14 -0
- package/dist/commands/handlers/SessionHandler.d.ts.map +1 -0
- package/dist/commands/handlers/SessionHandler.js +80 -0
- package/dist/commands/handlers/SessionHandler.js.map +1 -0
- package/dist/commands/handlers/TrackGroupHandler.d.ts +18 -0
- package/dist/commands/handlers/TrackGroupHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TrackGroupHandler.js +210 -0
- package/dist/commands/handlers/TrackGroupHandler.js.map +1 -0
- package/dist/commands/handlers/TrackHandler.d.ts +14 -0
- package/dist/commands/handlers/TrackHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TrackHandler.js +241 -0
- package/dist/commands/handlers/TrackHandler.js.map +1 -0
- package/dist/commands/handlers/TransportHandler.d.ts +14 -0
- package/dist/commands/handlers/TransportHandler.d.ts.map +1 -0
- package/dist/commands/handlers/TransportHandler.js +117 -0
- package/dist/commands/handlers/TransportHandler.js.map +1 -0
- package/dist/commands/handlers/index.d.ts +18 -0
- package/dist/commands/handlers/index.d.ts.map +1 -0
- package/dist/commands/handlers/index.js +17 -0
- package/dist/commands/handlers/index.js.map +1 -0
- package/dist/commands/impl/AddAutomationPointCommand.d.ts +20 -0
- package/dist/commands/impl/AddAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddAutomationPointCommand.js +45 -0
- package/dist/commands/impl/AddAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/AddAuxTrackCommand.d.ts +11 -0
- package/dist/commands/impl/AddAuxTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddAuxTrackCommand.js +23 -0
- package/dist/commands/impl/AddAuxTrackCommand.js.map +1 -0
- package/dist/commands/impl/AddBusTrackCommand.d.ts +11 -0
- package/dist/commands/impl/AddBusTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddBusTrackCommand.js +23 -0
- package/dist/commands/impl/AddBusTrackCommand.js.map +1 -0
- package/dist/commands/impl/AddMarkerCommand.d.ts +13 -0
- package/dist/commands/impl/AddMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddMarkerCommand.js +25 -0
- package/dist/commands/impl/AddMarkerCommand.js.map +1 -0
- package/dist/commands/impl/AddMidiNoteCommand.d.ts +22 -0
- package/dist/commands/impl/AddMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddMidiNoteCommand.js +45 -0
- package/dist/commands/impl/AddMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/AddPluginCommand.d.ts +19 -0
- package/dist/commands/impl/AddPluginCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddPluginCommand.js +43 -0
- package/dist/commands/impl/AddPluginCommand.js.map +1 -0
- package/dist/commands/impl/AddRangeCommand.d.ts +19 -0
- package/dist/commands/impl/AddRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddRangeCommand.js +32 -0
- package/dist/commands/impl/AddRangeCommand.js.map +1 -0
- package/dist/commands/impl/AddRegionCommand.d.ts +19 -0
- package/dist/commands/impl/AddRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddRegionCommand.js +58 -0
- package/dist/commands/impl/AddRegionCommand.js.map +1 -0
- package/dist/commands/impl/AddSendBusCommand.d.ts +23 -0
- package/dist/commands/impl/AddSendBusCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddSendBusCommand.js +30 -0
- package/dist/commands/impl/AddSendBusCommand.js.map +1 -0
- package/dist/commands/impl/AddSourceCommand.d.ts +12 -0
- package/dist/commands/impl/AddSourceCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddSourceCommand.js +16 -0
- package/dist/commands/impl/AddSourceCommand.js.map +1 -0
- package/dist/commands/impl/AddTempoChangeCommand.d.ts +15 -0
- package/dist/commands/impl/AddTempoChangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddTempoChangeCommand.js +45 -0
- package/dist/commands/impl/AddTempoChangeCommand.js.map +1 -0
- package/dist/commands/impl/AddTrackCommand.d.ts +13 -0
- package/dist/commands/impl/AddTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/AddTrackCommand.js +26 -0
- package/dist/commands/impl/AddTrackCommand.js.map +1 -0
- package/dist/commands/impl/ConnectIOCommand.d.ts +13 -0
- package/dist/commands/impl/ConnectIOCommand.d.ts.map +1 -0
- package/dist/commands/impl/ConnectIOCommand.js +31 -0
- package/dist/commands/impl/ConnectIOCommand.js.map +1 -0
- package/dist/commands/impl/CopyRegionCommand.d.ts +12 -0
- package/dist/commands/impl/CopyRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/CopyRegionCommand.js +42 -0
- package/dist/commands/impl/CopyRegionCommand.js.map +1 -0
- package/dist/commands/impl/DisconnectIOCommand.d.ts +13 -0
- package/dist/commands/impl/DisconnectIOCommand.d.ts.map +1 -0
- package/dist/commands/impl/DisconnectIOCommand.js +24 -0
- package/dist/commands/impl/DisconnectIOCommand.js.map +1 -0
- package/dist/commands/impl/DuplicateRegionCommand.d.ts +15 -0
- package/dist/commands/impl/DuplicateRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/DuplicateRegionCommand.js +49 -0
- package/dist/commands/impl/DuplicateRegionCommand.js.map +1 -0
- package/dist/commands/impl/ExportCommand.d.ts +17 -0
- package/dist/commands/impl/ExportCommand.d.ts.map +1 -0
- package/dist/commands/impl/ExportCommand.js +92 -0
- package/dist/commands/impl/ExportCommand.js.map +1 -0
- package/dist/commands/impl/FreezeTrackCommand.d.ts +25 -0
- package/dist/commands/impl/FreezeTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/FreezeTrackCommand.js +94 -0
- package/dist/commands/impl/FreezeTrackCommand.js.map +1 -0
- package/dist/commands/impl/GroupRegionsCommand.d.ts +15 -0
- package/dist/commands/impl/GroupRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/GroupRegionsCommand.js +28 -0
- package/dist/commands/impl/GroupRegionsCommand.js.map +1 -0
- package/dist/commands/impl/LoadSessionCommand.d.ts +24 -0
- package/dist/commands/impl/LoadSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/LoadSessionCommand.js +77 -0
- package/dist/commands/impl/LoadSessionCommand.js.map +1 -0
- package/dist/commands/impl/LockRegionCommand.d.ts +16 -0
- package/dist/commands/impl/LockRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/LockRegionCommand.js +37 -0
- package/dist/commands/impl/LockRegionCommand.js.map +1 -0
- package/dist/commands/impl/MergeRegionsCommand.d.ts +19 -0
- package/dist/commands/impl/MergeRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/MergeRegionsCommand.js +85 -0
- package/dist/commands/impl/MergeRegionsCommand.js.map +1 -0
- package/dist/commands/impl/MoveAutomationPointCommand.d.ts +20 -0
- package/dist/commands/impl/MoveAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveAutomationPointCommand.js +73 -0
- package/dist/commands/impl/MoveAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/MoveMarkerCommand.d.ts +13 -0
- package/dist/commands/impl/MoveMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveMarkerCommand.js +29 -0
- package/dist/commands/impl/MoveMarkerCommand.js.map +1 -0
- package/dist/commands/impl/MoveMidiNoteCommand.d.ts +20 -0
- package/dist/commands/impl/MoveMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveMidiNoteCommand.js +55 -0
- package/dist/commands/impl/MoveMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/MoveRegionCommand.d.ts +22 -0
- package/dist/commands/impl/MoveRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/MoveRegionCommand.js +148 -0
- package/dist/commands/impl/MoveRegionCommand.js.map +1 -0
- package/dist/commands/impl/NewSessionCommand.d.ts +17 -0
- package/dist/commands/impl/NewSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/NewSessionCommand.js +88 -0
- package/dist/commands/impl/NewSessionCommand.js.map +1 -0
- package/dist/commands/impl/NormalizeRegionCommand.d.ts +24 -0
- package/dist/commands/impl/NormalizeRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/NormalizeRegionCommand.js +60 -0
- package/dist/commands/impl/NormalizeRegionCommand.js.map +1 -0
- package/dist/commands/impl/PasteRegionCommand.d.ts +18 -0
- package/dist/commands/impl/PasteRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/PasteRegionCommand.js +66 -0
- package/dist/commands/impl/PasteRegionCommand.js.map +1 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.js +69 -0
- package/dist/commands/impl/RemoveAutomationPointCommand.js.map +1 -0
- package/dist/commands/impl/RemoveMarkerCommand.d.ts +14 -0
- package/dist/commands/impl/RemoveMarkerCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveMarkerCommand.js +32 -0
- package/dist/commands/impl/RemoveMarkerCommand.js.map +1 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.d.ts +16 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.js +38 -0
- package/dist/commands/impl/RemoveMidiNoteCommand.js.map +1 -0
- package/dist/commands/impl/RemovePluginCommand.d.ts +17 -0
- package/dist/commands/impl/RemovePluginCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemovePluginCommand.js +55 -0
- package/dist/commands/impl/RemovePluginCommand.js.map +1 -0
- package/dist/commands/impl/RemoveRangeCommand.d.ts +15 -0
- package/dist/commands/impl/RemoveRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveRangeCommand.js +34 -0
- package/dist/commands/impl/RemoveRangeCommand.js.map +1 -0
- package/dist/commands/impl/RemoveRegionCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveRegionCommand.js +58 -0
- package/dist/commands/impl/RemoveRegionCommand.js.map +1 -0
- package/dist/commands/impl/RemoveSendBusCommand.d.ts +17 -0
- package/dist/commands/impl/RemoveSendBusCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveSendBusCommand.js +34 -0
- package/dist/commands/impl/RemoveSendBusCommand.js.map +1 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.d.ts +11 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.js +32 -0
- package/dist/commands/impl/RemoveTempoChangeCommand.js.map +1 -0
- package/dist/commands/impl/RemoveTrackCommand.d.ts +11 -0
- package/dist/commands/impl/RemoveTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/RemoveTrackCommand.js +28 -0
- package/dist/commands/impl/RemoveTrackCommand.js.map +1 -0
- package/dist/commands/impl/ReorderTrackCommand.d.ts +15 -0
- package/dist/commands/impl/ReorderTrackCommand.d.ts.map +1 -0
- package/dist/commands/impl/ReorderTrackCommand.js +25 -0
- package/dist/commands/impl/ReorderTrackCommand.js.map +1 -0
- package/dist/commands/impl/ResizeRegionCommand.d.ts +18 -0
- package/dist/commands/impl/ResizeRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/ResizeRegionCommand.js +65 -0
- package/dist/commands/impl/ResizeRegionCommand.js.map +1 -0
- package/dist/commands/impl/ReverseRegionCommand.d.ts +22 -0
- package/dist/commands/impl/ReverseRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/ReverseRegionCommand.js +50 -0
- package/dist/commands/impl/ReverseRegionCommand.js.map +1 -0
- package/dist/commands/impl/SaveSessionCommand.d.ts +11 -0
- package/dist/commands/impl/SaveSessionCommand.d.ts.map +1 -0
- package/dist/commands/impl/SaveSessionCommand.js +33 -0
- package/dist/commands/impl/SaveSessionCommand.js.map +1 -0
- package/dist/commands/impl/SaveSnapshotCommand.d.ts +15 -0
- package/dist/commands/impl/SaveSnapshotCommand.d.ts.map +1 -0
- package/dist/commands/impl/SaveSnapshotCommand.js +34 -0
- package/dist/commands/impl/SaveSnapshotCommand.js.map +1 -0
- package/dist/commands/impl/SetGridCommand.d.ts +20 -0
- package/dist/commands/impl/SetGridCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetGridCommand.js +35 -0
- package/dist/commands/impl/SetGridCommand.js.map +1 -0
- package/dist/commands/impl/SetLoopRangeCommand.d.ts +18 -0
- package/dist/commands/impl/SetLoopRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetLoopRangeCommand.js +44 -0
- package/dist/commands/impl/SetLoopRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetPluginParameterCommand.d.ts +16 -0
- package/dist/commands/impl/SetPluginParameterCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetPluginParameterCommand.js +49 -0
- package/dist/commands/impl/SetPluginParameterCommand.js.map +1 -0
- package/dist/commands/impl/SetPunchRangeCommand.d.ts +18 -0
- package/dist/commands/impl/SetPunchRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetPunchRangeCommand.js +42 -0
- package/dist/commands/impl/SetPunchRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetRangeCommand.d.ts +27 -0
- package/dist/commands/impl/SetRangeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRangeCommand.js +66 -0
- package/dist/commands/impl/SetRangeCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionFadesCommand.d.ts +16 -0
- package/dist/commands/impl/SetRegionFadesCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionFadesCommand.js +46 -0
- package/dist/commands/impl/SetRegionFadesCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts +23 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.js +46 -0
- package/dist/commands/impl/SetRegionPlaybackRateCommand.js.map +1 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts +16 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.js +42 -0
- package/dist/commands/impl/SetRegionTimeDomainCommand.js.map +1 -0
- package/dist/commands/impl/SetSendLevelCommand.d.ts +18 -0
- package/dist/commands/impl/SetSendLevelCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetSendLevelCommand.js +35 -0
- package/dist/commands/impl/SetSendLevelCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackMuteCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackMuteCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackMuteCommand.js +29 -0
- package/dist/commands/impl/SetTrackMuteCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackPanCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackPanCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackPanCommand.js +29 -0
- package/dist/commands/impl/SetTrackPanCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackSoloCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackSoloCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackSoloCommand.js +29 -0
- package/dist/commands/impl/SetTrackSoloCommand.js.map +1 -0
- package/dist/commands/impl/SetTrackVolumeCommand.d.ts +15 -0
- package/dist/commands/impl/SetTrackVolumeCommand.d.ts.map +1 -0
- package/dist/commands/impl/SetTrackVolumeCommand.js +29 -0
- package/dist/commands/impl/SetTrackVolumeCommand.js.map +1 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts +32 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.d.ts.map +1 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.js +100 -0
- package/dist/commands/impl/SplitAtPlayheadCommand.js.map +1 -0
- package/dist/commands/impl/SplitRegionCommand.d.ts +22 -0
- package/dist/commands/impl/SplitRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/SplitRegionCommand.js +69 -0
- package/dist/commands/impl/SplitRegionCommand.js.map +1 -0
- package/dist/commands/impl/StripSilenceCommand.d.ts +26 -0
- package/dist/commands/impl/StripSilenceCommand.d.ts.map +1 -0
- package/dist/commands/impl/StripSilenceCommand.js +83 -0
- package/dist/commands/impl/StripSilenceCommand.js.map +1 -0
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts +28 -0
- package/dist/commands/impl/TimeStretchRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TimeStretchRegionCommand.js +55 -0
- package/dist/commands/impl/TimeStretchRegionCommand.js.map +1 -0
- package/dist/commands/impl/ToggleLoopCommand.d.ts +12 -0
- package/dist/commands/impl/ToggleLoopCommand.d.ts.map +1 -0
- package/dist/commands/impl/ToggleLoopCommand.js +27 -0
- package/dist/commands/impl/ToggleLoopCommand.js.map +1 -0
- package/dist/commands/impl/TrimRegionCommand.d.ts +22 -0
- package/dist/commands/impl/TrimRegionCommand.d.ts.map +1 -0
- package/dist/commands/impl/TrimRegionCommand.js +92 -0
- package/dist/commands/impl/TrimRegionCommand.js.map +1 -0
- package/dist/commands/impl/UngroupRegionsCommand.d.ts +14 -0
- package/dist/commands/impl/UngroupRegionsCommand.d.ts.map +1 -0
- package/dist/commands/impl/UngroupRegionsCommand.js +28 -0
- package/dist/commands/impl/UngroupRegionsCommand.js.map +1 -0
- package/dist/commands/types.d.ts +1895 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +1338 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/domain/ABComparison.d.ts +33 -0
- package/dist/domain/ABComparison.d.ts.map +1 -0
- package/dist/domain/ABComparison.js +78 -0
- package/dist/domain/ABComparison.js.map +1 -0
- package/dist/domain/CDMarker.d.ts +36 -0
- package/dist/domain/CDMarker.d.ts.map +1 -0
- package/dist/domain/CDMarker.js +78 -0
- package/dist/domain/CDMarker.js.map +1 -0
- package/dist/domain/ClockMode.d.ts +19 -0
- package/dist/domain/ClockMode.d.ts.map +1 -0
- package/dist/domain/ClockMode.js +65 -0
- package/dist/domain/ClockMode.js.map +1 -0
- package/dist/domain/CrossfadeEngine.d.ts +27 -0
- package/dist/domain/CrossfadeEngine.d.ts.map +1 -0
- package/dist/domain/CrossfadeEngine.js +47 -0
- package/dist/domain/CrossfadeEngine.js.map +1 -0
- package/dist/domain/DragManager.d.ts +21 -0
- package/dist/domain/DragManager.d.ts.map +1 -0
- package/dist/domain/DragManager.js +37 -0
- package/dist/domain/DragManager.js.map +1 -0
- package/dist/domain/EditMode.d.ts +15 -0
- package/dist/domain/EditMode.d.ts.map +1 -0
- package/dist/domain/EditMode.js +16 -0
- package/dist/domain/EditMode.js.map +1 -0
- package/dist/domain/ExportConfig.d.ts +55 -0
- package/dist/domain/ExportConfig.d.ts.map +1 -0
- package/dist/domain/ExportConfig.js +115 -0
- package/dist/domain/ExportConfig.js.map +1 -0
- package/dist/domain/ExportStatus.d.ts +46 -0
- package/dist/domain/ExportStatus.d.ts.map +1 -0
- package/dist/domain/ExportStatus.js +113 -0
- package/dist/domain/ExportStatus.js.map +1 -0
- package/dist/domain/FadeEnvelope.d.ts +31 -0
- package/dist/domain/FadeEnvelope.d.ts.map +1 -0
- package/dist/domain/FadeEnvelope.js +44 -0
- package/dist/domain/FadeEnvelope.js.map +1 -0
- package/dist/domain/GridSettings.d.ts +99 -0
- package/dist/domain/GridSettings.d.ts.map +1 -0
- package/dist/domain/GridSettings.js +213 -0
- package/dist/domain/GridSettings.js.map +1 -0
- package/dist/domain/Marker.d.ts +31 -0
- package/dist/domain/Marker.d.ts.map +1 -0
- package/dist/domain/Marker.js +56 -0
- package/dist/domain/Marker.js.map +1 -0
- package/dist/domain/MeterData.d.ts +26 -0
- package/dist/domain/MeterData.d.ts.map +1 -0
- package/dist/domain/MeterData.js +2 -0
- package/dist/domain/MeterData.js.map +1 -0
- package/dist/domain/MeterType.d.ts +22 -0
- package/dist/domain/MeterType.d.ts.map +1 -0
- package/dist/domain/MeterType.js +24 -0
- package/dist/domain/MeterType.js.map +1 -0
- package/dist/domain/MidiClip.d.ts +56 -0
- package/dist/domain/MidiClip.d.ts.map +1 -0
- package/dist/domain/MidiClip.js +119 -0
- package/dist/domain/MidiClip.js.map +1 -0
- package/dist/domain/MidiNote.d.ts +38 -0
- package/dist/domain/MidiNote.d.ts.map +1 -0
- package/dist/domain/MidiNote.js +82 -0
- package/dist/domain/MidiNote.js.map +1 -0
- package/dist/domain/MidiRegion.d.ts +65 -0
- package/dist/domain/MidiRegion.d.ts.map +1 -0
- package/dist/domain/MidiRegion.js +123 -0
- package/dist/domain/MidiRegion.js.map +1 -0
- package/dist/domain/MixerScene.d.ts +62 -0
- package/dist/domain/MixerScene.d.ts.map +1 -0
- package/dist/domain/MixerScene.js +131 -0
- package/dist/domain/MixerScene.js.map +1 -0
- package/dist/domain/MonitorMode.d.ts +15 -0
- package/dist/domain/MonitorMode.d.ts.map +1 -0
- package/dist/domain/MonitorMode.js +16 -0
- package/dist/domain/MonitorMode.js.map +1 -0
- package/dist/domain/MouseMode.d.ts +25 -0
- package/dist/domain/MouseMode.d.ts.map +1 -0
- package/dist/domain/MouseMode.js +26 -0
- package/dist/domain/MouseMode.js.map +1 -0
- package/dist/domain/OverlapType.d.ts +18 -0
- package/dist/domain/OverlapType.d.ts.map +1 -0
- package/dist/domain/OverlapType.js +19 -0
- package/dist/domain/OverlapType.js.map +1 -0
- package/dist/domain/Playlist.d.ts +83 -0
- package/dist/domain/Playlist.d.ts.map +1 -0
- package/dist/domain/Playlist.js +205 -0
- package/dist/domain/Playlist.js.map +1 -0
- package/dist/domain/Range.d.ts +35 -0
- package/dist/domain/Range.d.ts.map +1 -0
- package/dist/domain/Range.js +59 -0
- package/dist/domain/Range.js.map +1 -0
- package/dist/domain/RecordMode.d.ts +13 -0
- package/dist/domain/RecordMode.d.ts.map +1 -0
- package/dist/domain/RecordMode.js +14 -0
- package/dist/domain/RecordMode.js.map +1 -0
- package/dist/domain/Region.d.ts +96 -0
- package/dist/domain/Region.d.ts.map +1 -0
- package/dist/domain/Region.js +219 -0
- package/dist/domain/Region.js.map +1 -0
- package/dist/domain/RegionClipboard.d.ts +56 -0
- package/dist/domain/RegionClipboard.d.ts.map +1 -0
- package/dist/domain/RegionClipboard.js +70 -0
- package/dist/domain/RegionClipboard.js.map +1 -0
- package/dist/domain/RegionGroup.d.ts +16 -0
- package/dist/domain/RegionGroup.d.ts.map +1 -0
- package/dist/domain/RegionGroup.js +36 -0
- package/dist/domain/RegionGroup.js.map +1 -0
- package/dist/domain/Route.d.ts +104 -0
- package/dist/domain/Route.d.ts.map +1 -0
- package/dist/domain/Route.js +192 -0
- package/dist/domain/Route.js.map +1 -0
- package/dist/domain/RulerType.d.ts +21 -0
- package/dist/domain/RulerType.d.ts.map +1 -0
- package/dist/domain/RulerType.js +22 -0
- package/dist/domain/RulerType.js.map +1 -0
- package/dist/domain/SelectionHistory.d.ts +38 -0
- package/dist/domain/SelectionHistory.d.ts.map +1 -0
- package/dist/domain/SelectionHistory.js +70 -0
- package/dist/domain/SelectionHistory.js.map +1 -0
- package/dist/domain/SendBus.d.ts +28 -0
- package/dist/domain/SendBus.d.ts.map +1 -0
- package/dist/domain/SendBus.js +43 -0
- package/dist/domain/SendBus.js.map +1 -0
- package/dist/domain/Session.d.ts +347 -0
- package/dist/domain/Session.d.ts.map +1 -0
- package/dist/domain/Session.js +965 -0
- package/dist/domain/Session.js.map +1 -0
- package/dist/domain/SidechainConfig.d.ts +51 -0
- package/dist/domain/SidechainConfig.d.ts.map +1 -0
- package/dist/domain/SidechainConfig.js +84 -0
- package/dist/domain/SidechainConfig.js.map +1 -0
- package/dist/domain/Source.d.ts +11 -0
- package/dist/domain/Source.d.ts.map +1 -0
- package/dist/domain/Source.js +11 -0
- package/dist/domain/Source.js.map +1 -0
- package/dist/domain/Take.d.ts +66 -0
- package/dist/domain/Take.d.ts.map +1 -0
- package/dist/domain/Take.js +106 -0
- package/dist/domain/Take.js.map +1 -0
- package/dist/domain/Track.d.ts +58 -0
- package/dist/domain/Track.d.ts.map +1 -0
- package/dist/domain/Track.js +124 -0
- package/dist/domain/Track.js.map +1 -0
- package/dist/domain/TrackGroup.d.ts +39 -0
- package/dist/domain/TrackGroup.d.ts.map +1 -0
- package/dist/domain/TrackGroup.js +86 -0
- package/dist/domain/TrackGroup.js.map +1 -0
- package/dist/domain/TransportFSM.d.ts +188 -0
- package/dist/domain/TransportFSM.d.ts.map +1 -0
- package/dist/domain/TransportFSM.js +412 -0
- package/dist/domain/TransportFSM.js.map +1 -0
- package/dist/domain/TransportMode.d.ts +23 -0
- package/dist/domain/TransportMode.d.ts.map +1 -0
- package/dist/domain/TransportMode.js +38 -0
- package/dist/domain/TransportMode.js.map +1 -0
- package/dist/domain/VCATrack.d.ts +48 -0
- package/dist/domain/VCATrack.d.ts.map +1 -0
- package/dist/domain/VCATrack.js +85 -0
- package/dist/domain/VCATrack.js.map +1 -0
- package/dist/domain/ZoomFocus.d.ts +21 -0
- package/dist/domain/ZoomFocus.d.ts.map +1 -0
- package/dist/domain/ZoomFocus.js +22 -0
- package/dist/domain/ZoomFocus.js.map +1 -0
- package/dist/domain/index.d.ts +11 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +12 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/temporal/TempoMap.d.ts +68 -0
- package/dist/domain/temporal/TempoMap.d.ts.map +1 -0
- package/dist/domain/temporal/TempoMap.js +151 -0
- package/dist/domain/temporal/TempoMap.js.map +1 -0
- package/dist/domain/temporal/types.d.ts +34 -0
- package/dist/domain/temporal/types.d.ts.map +1 -0
- package/dist/domain/temporal/types.js +54 -0
- package/dist/domain/temporal/types.js.map +1 -0
- package/dist/domain/types.d.ts +26 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +11 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/errors/DAWErrors.d.ts +107 -0
- package/dist/errors/DAWErrors.d.ts.map +1 -0
- package/dist/errors/DAWErrors.js +159 -0
- package/dist/errors/DAWErrors.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/Signal.d.ts +28 -0
- package/dist/lib/Signal.d.ts.map +1 -0
- package/dist/lib/Signal.js +34 -0
- package/dist/lib/Signal.js.map +1 -0
- package/dist/midi/MidiInput.d.ts +61 -0
- package/dist/midi/MidiInput.d.ts.map +1 -0
- package/dist/midi/MidiInput.js +153 -0
- package/dist/midi/MidiInput.js.map +1 -0
- package/dist/plugins/AutomatableParameter.d.ts +28 -0
- package/dist/plugins/AutomatableParameter.d.ts.map +1 -0
- package/dist/plugins/AutomatableParameter.js +89 -0
- package/dist/plugins/AutomatableParameter.js.map +1 -0
- package/dist/plugins/Plugin.d.ts +31 -0
- package/dist/plugins/Plugin.d.ts.map +1 -0
- package/dist/plugins/Plugin.js +7 -0
- package/dist/plugins/Plugin.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +15 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +199 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/PluginPreset.d.ts +50 -0
- package/dist/plugins/PluginPreset.d.ts.map +1 -0
- package/dist/plugins/PluginPreset.js +292 -0
- package/dist/plugins/PluginPreset.js.map +1 -0
- package/dist/plugins/impl/AutoPanPlugin.d.ts +28 -0
- package/dist/plugins/impl/AutoPanPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/AutoPanPlugin.js +48 -0
- package/dist/plugins/impl/AutoPanPlugin.js.map +1 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts +35 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.js +65 -0
- package/dist/plugins/impl/ConvolutionReverbPlugin.js.map +1 -0
- package/dist/plugins/impl/DeEsserPlugin.d.ts +35 -0
- package/dist/plugins/impl/DeEsserPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/DeEsserPlugin.js +87 -0
- package/dist/plugins/impl/DeEsserPlugin.js.map +1 -0
- package/dist/plugins/impl/ExpanderPlugin.d.ts +42 -0
- package/dist/plugins/impl/ExpanderPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ExpanderPlugin.js +105 -0
- package/dist/plugins/impl/ExpanderPlugin.js.map +1 -0
- package/dist/plugins/impl/GenericPlugin.d.ts +20 -0
- package/dist/plugins/impl/GenericPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/GenericPlugin.js +37 -0
- package/dist/plugins/impl/GenericPlugin.js.map +1 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.d.ts +33 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.js +169 -0
- package/dist/plugins/impl/MultibandCompressorPlugin.js.map +1 -0
- package/dist/plugins/impl/ParametricEQPlugin.d.ts +25 -0
- package/dist/plugins/impl/ParametricEQPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/ParametricEQPlugin.js +79 -0
- package/dist/plugins/impl/ParametricEQPlugin.js.map +1 -0
- package/dist/plugins/impl/PhaserPlugin.d.ts +29 -0
- package/dist/plugins/impl/PhaserPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/PhaserPlugin.js +50 -0
- package/dist/plugins/impl/PhaserPlugin.js.map +1 -0
- package/dist/plugins/impl/SyncDelayPlugin.d.ts +52 -0
- package/dist/plugins/impl/SyncDelayPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/SyncDelayPlugin.js +95 -0
- package/dist/plugins/impl/SyncDelayPlugin.js.map +1 -0
- package/dist/plugins/impl/TapeSaturationPlugin.d.ts +35 -0
- package/dist/plugins/impl/TapeSaturationPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/TapeSaturationPlugin.js +87 -0
- package/dist/plugins/impl/TapeSaturationPlugin.js.map +1 -0
- package/dist/plugins/impl/TremoloPlugin.d.ts +29 -0
- package/dist/plugins/impl/TremoloPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/TremoloPlugin.js +50 -0
- package/dist/plugins/impl/TremoloPlugin.js.map +1 -0
- package/dist/plugins/impl/VibratoPlugin.d.ts +28 -0
- package/dist/plugins/impl/VibratoPlugin.d.ts.map +1 -0
- package/dist/plugins/impl/VibratoPlugin.js +48 -0
- package/dist/plugins/impl/VibratoPlugin.js.map +1 -0
- package/dist/preferences/KeyBindings.d.ts +38 -0
- package/dist/preferences/KeyBindings.d.ts.map +1 -0
- package/dist/preferences/KeyBindings.js +83 -0
- package/dist/preferences/KeyBindings.js.map +1 -0
- package/dist/preferences/Preferences.d.ts +49 -0
- package/dist/preferences/Preferences.d.ts.map +1 -0
- package/dist/preferences/Preferences.js +93 -0
- package/dist/preferences/Preferences.js.map +1 -0
- package/dist/preferences/index.d.ts +4 -0
- package/dist/preferences/index.d.ts.map +1 -0
- package/dist/preferences/index.js +3 -0
- package/dist/preferences/index.js.map +1 -0
- package/dist/processing/GainProcessor.d.ts +10 -0
- package/dist/processing/GainProcessor.d.ts.map +1 -0
- package/dist/processing/GainProcessor.js +21 -0
- package/dist/processing/GainProcessor.js.map +1 -0
- package/dist/processing/IO.d.ts +15 -0
- package/dist/processing/IO.d.ts.map +1 -0
- package/dist/processing/IO.js +34 -0
- package/dist/processing/IO.js.map +1 -0
- package/dist/processing/MeterProcessor.d.ts +101 -0
- package/dist/processing/MeterProcessor.d.ts.map +1 -0
- package/dist/processing/MeterProcessor.js +195 -0
- package/dist/processing/MeterProcessor.js.map +1 -0
- package/dist/processing/PanProcessor.d.ts +15 -0
- package/dist/processing/PanProcessor.d.ts.map +1 -0
- package/dist/processing/PanProcessor.js +35 -0
- package/dist/processing/PanProcessor.js.map +1 -0
- package/dist/processing/PluginInsert.d.ts +9 -0
- package/dist/processing/PluginInsert.d.ts.map +1 -0
- package/dist/processing/PluginInsert.js +16 -0
- package/dist/processing/PluginInsert.js.map +1 -0
- package/dist/processing/PolarityProcessor.d.ts +25 -0
- package/dist/processing/PolarityProcessor.d.ts.map +1 -0
- package/dist/processing/PolarityProcessor.js +35 -0
- package/dist/processing/PolarityProcessor.js.map +1 -0
- package/dist/processing/Processor.d.ts +31 -0
- package/dist/processing/Processor.d.ts.map +1 -0
- package/dist/processing/Processor.js +45 -0
- package/dist/processing/Processor.js.map +1 -0
- package/dist/processing/SendProcessor.d.ts +55 -0
- package/dist/processing/SendProcessor.d.ts.map +1 -0
- package/dist/processing/SendProcessor.js +97 -0
- package/dist/processing/SendProcessor.js.map +1 -0
- package/dist/storage/AutoSave.d.ts +48 -0
- package/dist/storage/AutoSave.d.ts.map +1 -0
- package/dist/storage/AutoSave.js +108 -0
- package/dist/storage/AutoSave.js.map +1 -0
- package/dist/storage/SessionStorage.d.ts +74 -0
- package/dist/storage/SessionStorage.d.ts.map +1 -0
- package/dist/storage/SessionStorage.js +192 -0
- package/dist/storage/SessionStorage.js.map +1 -0
- package/dist/storage/SessionTemplate.d.ts +22 -0
- package/dist/storage/SessionTemplate.d.ts.map +1 -0
- package/dist/storage/SessionTemplate.js +77 -0
- package/dist/storage/SessionTemplate.js.map +1 -0
- package/dist/utils/AudioBufferToWav.d.ts +28 -0
- package/dist/utils/AudioBufferToWav.d.ts.map +1 -0
- package/dist/utils/AudioBufferToWav.js +110 -0
- package/dist/utils/AudioBufferToWav.js.map +1 -0
- package/dist/utils/DitherProcessor.d.ts +41 -0
- package/dist/utils/DitherProcessor.d.ts.map +1 -0
- package/dist/utils/DitherProcessor.js +78 -0
- package/dist/utils/DitherProcessor.js.map +1 -0
- package/dist/utils/FlacEncoder.d.ts +22 -0
- package/dist/utils/FlacEncoder.d.ts.map +1 -0
- package/dist/utils/FlacEncoder.js +196 -0
- package/dist/utils/FlacEncoder.js.map +1 -0
- package/dist/utils/OggEncoder.d.ts +40 -0
- package/dist/utils/OggEncoder.d.ts.map +1 -0
- package/dist/utils/OggEncoder.js +183 -0
- package/dist/utils/OggEncoder.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { UndoableCommand } from './Command';
|
|
2
|
+
import { Signal } from '../lib/Signal';
|
|
3
|
+
export interface HistoryEntry {
|
|
4
|
+
command: UndoableCommand;
|
|
5
|
+
label: string;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Serializable snapshot of the history (metadata only).
|
|
10
|
+
* Full command re-execution is not supported after reload;
|
|
11
|
+
* the snapshot is informational (labels + timestamps).
|
|
12
|
+
*/
|
|
13
|
+
export interface HistorySnapshot {
|
|
14
|
+
undoEntries: Array<{
|
|
15
|
+
label: string;
|
|
16
|
+
timestamp: number;
|
|
17
|
+
}>;
|
|
18
|
+
redoEntries: Array<{
|
|
19
|
+
label: string;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Extended snapshot that includes serialized command data for entries whose
|
|
25
|
+
* commands implement {@link SerializableCommand}.
|
|
26
|
+
*/
|
|
27
|
+
export interface SerializedHistorySnapshot {
|
|
28
|
+
undoStack: string[];
|
|
29
|
+
redoStack: string[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* CommandHistory — manages undo/redo stacks with Ardour-aligned features:
|
|
33
|
+
*
|
|
34
|
+
* - Configurable depth limit (0 = unlimited, max 512)
|
|
35
|
+
* - Transaction grouping (beginTransaction / commitTransaction / abortTransaction)
|
|
36
|
+
* - Begin/End signals for UI synchronization
|
|
37
|
+
* - Granular clear methods (clearUndo / clearRedo / clear)
|
|
38
|
+
* - Dynamic labels (nextUndoLabel / nextRedoLabel)
|
|
39
|
+
* - History snapshot serialization for persistence
|
|
40
|
+
* - Batch undo/redo (undoMultiple / redoMultiple)
|
|
41
|
+
* - Serialization support via CommandRegistry
|
|
42
|
+
*
|
|
43
|
+
* Reference: Ardour libs/pbd/undo.h, libs/pbd/undo.cc
|
|
44
|
+
*/
|
|
45
|
+
export declare class CommandHistory {
|
|
46
|
+
private undoStack;
|
|
47
|
+
private redoStack;
|
|
48
|
+
private _depth;
|
|
49
|
+
private _activeTransaction;
|
|
50
|
+
readonly historyChanged: Signal<void>;
|
|
51
|
+
readonly beginUndoRedo: Signal<void>;
|
|
52
|
+
readonly endUndoRedo: Signal<void>;
|
|
53
|
+
get depth(): number;
|
|
54
|
+
setDepth(d: number): void;
|
|
55
|
+
get undoDepth(): number;
|
|
56
|
+
get redoDepth(): number;
|
|
57
|
+
private trimUndoStack;
|
|
58
|
+
execute(command: UndoableCommand, label?: string): Promise<void>;
|
|
59
|
+
beginTransaction(name: string): void;
|
|
60
|
+
addCommandToTransaction(cmd: UndoableCommand): void;
|
|
61
|
+
commitTransaction(): Promise<void>;
|
|
62
|
+
abortTransaction(): Promise<void>;
|
|
63
|
+
get hasActiveTransaction(): boolean;
|
|
64
|
+
undo(): Promise<void>;
|
|
65
|
+
redo(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Undo multiple transactions at once.
|
|
68
|
+
*
|
|
69
|
+
* This is more efficient than calling {@link undo} in a loop because it
|
|
70
|
+
* emits `beginUndoRedo` / `endUndoRedo` and `historyChanged` only once
|
|
71
|
+
* for the entire batch.
|
|
72
|
+
*
|
|
73
|
+
* @param count - Number of undo steps to perform. Clamped to the
|
|
74
|
+
* available undo depth.
|
|
75
|
+
*/
|
|
76
|
+
undoMultiple(count: number): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Redo multiple transactions at once.
|
|
79
|
+
*
|
|
80
|
+
* This is more efficient than calling {@link redo} in a loop because it
|
|
81
|
+
* emits `beginUndoRedo` / `endUndoRedo` and `historyChanged` only once
|
|
82
|
+
* for the entire batch.
|
|
83
|
+
*
|
|
84
|
+
* @param count - Number of redo steps to perform. Clamped to the
|
|
85
|
+
* available redo depth.
|
|
86
|
+
*/
|
|
87
|
+
redoMultiple(count: number): Promise<void>;
|
|
88
|
+
get canUndo(): boolean;
|
|
89
|
+
get canRedo(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Dynamic label for next undo action.
|
|
92
|
+
* Ardour: UndoHistory::next_undo()
|
|
93
|
+
*/
|
|
94
|
+
get nextUndoLabel(): string;
|
|
95
|
+
/**
|
|
96
|
+
* Dynamic label for next redo action.
|
|
97
|
+
* Ardour: UndoHistory::next_redo()
|
|
98
|
+
*/
|
|
99
|
+
get nextRedoLabel(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Get the undo history stack (for UI display).
|
|
102
|
+
* Returns entries in execution order (oldest first).
|
|
103
|
+
*/
|
|
104
|
+
getUndoHistory(): ReadonlyArray<HistoryEntry>;
|
|
105
|
+
/**
|
|
106
|
+
* Get the redo history stack.
|
|
107
|
+
* Returns entries in redo order (next to redo first).
|
|
108
|
+
*/
|
|
109
|
+
getRedoHistory(): ReadonlyArray<HistoryEntry>;
|
|
110
|
+
/**
|
|
111
|
+
* Undo to a specific point in history (undo multiple steps).
|
|
112
|
+
*/
|
|
113
|
+
undoTo(index: number): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Get the current position in history (number of executed commands).
|
|
116
|
+
*/
|
|
117
|
+
get currentIndex(): number;
|
|
118
|
+
/**
|
|
119
|
+
* Get total history size (undo + redo).
|
|
120
|
+
*/
|
|
121
|
+
get totalSize(): number;
|
|
122
|
+
clearUndo(): void;
|
|
123
|
+
clearRedo(): void;
|
|
124
|
+
clear(): void;
|
|
125
|
+
/**
|
|
126
|
+
* Serialize history metadata for persistence.
|
|
127
|
+
* @param depth Number of entries to save (0 = all, negative = all)
|
|
128
|
+
*/
|
|
129
|
+
getState(depth?: number): HistorySnapshot;
|
|
130
|
+
/**
|
|
131
|
+
* Return a lightweight snapshot containing the transaction/command names
|
|
132
|
+
* from both stacks.
|
|
133
|
+
*
|
|
134
|
+
* This is useful for persisting history metadata (e.g. to show the user
|
|
135
|
+
* what operations were performed) without needing to serialize full
|
|
136
|
+
* command state.
|
|
137
|
+
*
|
|
138
|
+
* @returns An object with `undoStack` and `redoStack` arrays of label
|
|
139
|
+
* strings.
|
|
140
|
+
*/
|
|
141
|
+
getSnapshot(): SerializedHistorySnapshot;
|
|
142
|
+
/**
|
|
143
|
+
* Check whether all commands in the history implement
|
|
144
|
+
* {@link SerializableCommand}, meaning the full history could be
|
|
145
|
+
* serialized and later re-hydrated.
|
|
146
|
+
*
|
|
147
|
+
* @returns `true` if every entry's command has a `toJSON` method.
|
|
148
|
+
*/
|
|
149
|
+
canSerialize(): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Type guard for checking if a command implements SerializableCommand.
|
|
152
|
+
*/
|
|
153
|
+
private isSerializable;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=CommandHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandHistory.d.ts","sourceRoot":"","sources":["../../src/commands/CommandHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAa;IAG3B,OAAO,CAAC,kBAAkB,CAAgC;IAG1D,SAAgB,cAAc,eAAsB;IACpD,SAAgB,aAAa,eAAsB;IACnD,SAAgB,WAAW,eAAsB;IAIjD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAEM,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhC,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,OAAO,CAAC,aAAa;IAUR,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM;IAetD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAM7C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9C,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAIY,IAAI;IAcJ,IAAI;IAiBjB;;;;;;;;;OASG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD;;;;;;;;;OASG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,CAGjC;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,CAGjC;IAED;;;OAGG;IACI,cAAc,IAAI,aAAa,CAAC,YAAY,CAAC;IAIpD;;;OAGG;IACI,cAAc,IAAI,aAAa,CAAC,YAAY,CAAC;IAIpD;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAIM,SAAS,IAAI,IAAI;IAKjB,SAAS,IAAI,IAAI;IAKjB,KAAK,IAAI,IAAI;IAQpB;;;OAGG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,GAAG,eAAe;IAgBnD;;;;;;;;;;OAUG;IACI,WAAW,IAAI,yBAAyB;IAO/C;;;;;;OAMG;IACI,YAAY,IAAI,OAAO;IAK9B;;OAEG;IACH,OAAO,CAAC,cAAc;CAQzB"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { UndoTransaction } from './UndoTransaction';
|
|
2
|
+
import { Signal } from '../lib/Signal';
|
|
3
|
+
/**
|
|
4
|
+
* CommandHistory — manages undo/redo stacks with Ardour-aligned features:
|
|
5
|
+
*
|
|
6
|
+
* - Configurable depth limit (0 = unlimited, max 512)
|
|
7
|
+
* - Transaction grouping (beginTransaction / commitTransaction / abortTransaction)
|
|
8
|
+
* - Begin/End signals for UI synchronization
|
|
9
|
+
* - Granular clear methods (clearUndo / clearRedo / clear)
|
|
10
|
+
* - Dynamic labels (nextUndoLabel / nextRedoLabel)
|
|
11
|
+
* - History snapshot serialization for persistence
|
|
12
|
+
* - Batch undo/redo (undoMultiple / redoMultiple)
|
|
13
|
+
* - Serialization support via CommandRegistry
|
|
14
|
+
*
|
|
15
|
+
* Reference: Ardour libs/pbd/undo.h, libs/pbd/undo.cc
|
|
16
|
+
*/
|
|
17
|
+
export class CommandHistory {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.undoStack = [];
|
|
20
|
+
this.redoStack = [];
|
|
21
|
+
this._depth = 0; // 0 = unlimited
|
|
22
|
+
// Active transaction (Ardour: UndoTransaction)
|
|
23
|
+
this._activeTransaction = null;
|
|
24
|
+
// Signals
|
|
25
|
+
this.historyChanged = new Signal();
|
|
26
|
+
this.beginUndoRedo = new Signal();
|
|
27
|
+
this.endUndoRedo = new Signal();
|
|
28
|
+
}
|
|
29
|
+
// --- Depth management (Ardour: UndoHistory::set_depth) ---
|
|
30
|
+
get depth() {
|
|
31
|
+
return this._depth;
|
|
32
|
+
}
|
|
33
|
+
setDepth(d) {
|
|
34
|
+
this._depth = Math.max(0, Math.min(512, d));
|
|
35
|
+
this.trimUndoStack();
|
|
36
|
+
}
|
|
37
|
+
get undoDepth() {
|
|
38
|
+
return this.undoStack.length;
|
|
39
|
+
}
|
|
40
|
+
get redoDepth() {
|
|
41
|
+
return this.redoStack.length;
|
|
42
|
+
}
|
|
43
|
+
trimUndoStack() {
|
|
44
|
+
if (this._depth > 0) {
|
|
45
|
+
while (this.undoStack.length > this._depth) {
|
|
46
|
+
this.undoStack.shift(); // Remove oldest entry
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// --- Execute ---
|
|
51
|
+
async execute(command, label) {
|
|
52
|
+
await command.execute();
|
|
53
|
+
const entryLabel = label || command.constructor.name.replace('Command', '');
|
|
54
|
+
this.undoStack.push({
|
|
55
|
+
command,
|
|
56
|
+
label: entryLabel,
|
|
57
|
+
timestamp: Date.now(),
|
|
58
|
+
});
|
|
59
|
+
this.trimUndoStack();
|
|
60
|
+
this.redoStack = []; // Clear redo stack on new action
|
|
61
|
+
this.historyChanged.emit();
|
|
62
|
+
}
|
|
63
|
+
// --- Transaction grouping (Ardour: UndoTransaction) ---
|
|
64
|
+
beginTransaction(name) {
|
|
65
|
+
this._activeTransaction = new UndoTransaction(name);
|
|
66
|
+
}
|
|
67
|
+
addCommandToTransaction(cmd) {
|
|
68
|
+
if (this._activeTransaction) {
|
|
69
|
+
this._activeTransaction.addCommand(cmd);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async commitTransaction() {
|
|
73
|
+
if (!this._activeTransaction || this._activeTransaction.empty) {
|
|
74
|
+
this._activeTransaction = null;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const txn = this._activeTransaction;
|
|
78
|
+
this._activeTransaction = null;
|
|
79
|
+
this.undoStack.push({
|
|
80
|
+
command: txn,
|
|
81
|
+
label: txn.name,
|
|
82
|
+
timestamp: txn.timestamp,
|
|
83
|
+
});
|
|
84
|
+
this.trimUndoStack();
|
|
85
|
+
this.redoStack = [];
|
|
86
|
+
this.historyChanged.emit();
|
|
87
|
+
}
|
|
88
|
+
async abortTransaction() {
|
|
89
|
+
if (!this._activeTransaction)
|
|
90
|
+
return;
|
|
91
|
+
const txn = this._activeTransaction;
|
|
92
|
+
this._activeTransaction = null;
|
|
93
|
+
// Undo everything in the active transaction
|
|
94
|
+
await txn.undo();
|
|
95
|
+
}
|
|
96
|
+
get hasActiveTransaction() {
|
|
97
|
+
return this._activeTransaction !== null;
|
|
98
|
+
}
|
|
99
|
+
// --- Undo / Redo with begin/end signals ---
|
|
100
|
+
async undo() {
|
|
101
|
+
const entry = this.undoStack.pop();
|
|
102
|
+
if (entry) {
|
|
103
|
+
this.beginUndoRedo.emit();
|
|
104
|
+
try {
|
|
105
|
+
await entry.command.undo();
|
|
106
|
+
this.redoStack.push(entry);
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
this.endUndoRedo.emit();
|
|
110
|
+
}
|
|
111
|
+
this.historyChanged.emit();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async redo() {
|
|
115
|
+
const entry = this.redoStack.pop();
|
|
116
|
+
if (entry) {
|
|
117
|
+
this.beginUndoRedo.emit();
|
|
118
|
+
try {
|
|
119
|
+
await entry.command.redo();
|
|
120
|
+
this.undoStack.push(entry);
|
|
121
|
+
this.trimUndoStack();
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
this.endUndoRedo.emit();
|
|
125
|
+
}
|
|
126
|
+
this.historyChanged.emit();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// --- Batch undo / redo ---
|
|
130
|
+
/**
|
|
131
|
+
* Undo multiple transactions at once.
|
|
132
|
+
*
|
|
133
|
+
* This is more efficient than calling {@link undo} in a loop because it
|
|
134
|
+
* emits `beginUndoRedo` / `endUndoRedo` and `historyChanged` only once
|
|
135
|
+
* for the entire batch.
|
|
136
|
+
*
|
|
137
|
+
* @param count - Number of undo steps to perform. Clamped to the
|
|
138
|
+
* available undo depth.
|
|
139
|
+
*/
|
|
140
|
+
async undoMultiple(count) {
|
|
141
|
+
const steps = Math.min(Math.max(0, count), this.undoStack.length);
|
|
142
|
+
if (steps === 0)
|
|
143
|
+
return;
|
|
144
|
+
this.beginUndoRedo.emit();
|
|
145
|
+
try {
|
|
146
|
+
for (let i = 0; i < steps; i++) {
|
|
147
|
+
const entry = this.undoStack.pop();
|
|
148
|
+
if (entry) {
|
|
149
|
+
await entry.command.undo();
|
|
150
|
+
this.redoStack.push(entry);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
this.endUndoRedo.emit();
|
|
156
|
+
}
|
|
157
|
+
this.historyChanged.emit();
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Redo multiple transactions at once.
|
|
161
|
+
*
|
|
162
|
+
* This is more efficient than calling {@link redo} in a loop because it
|
|
163
|
+
* emits `beginUndoRedo` / `endUndoRedo` and `historyChanged` only once
|
|
164
|
+
* for the entire batch.
|
|
165
|
+
*
|
|
166
|
+
* @param count - Number of redo steps to perform. Clamped to the
|
|
167
|
+
* available redo depth.
|
|
168
|
+
*/
|
|
169
|
+
async redoMultiple(count) {
|
|
170
|
+
const steps = Math.min(Math.max(0, count), this.redoStack.length);
|
|
171
|
+
if (steps === 0)
|
|
172
|
+
return;
|
|
173
|
+
this.beginUndoRedo.emit();
|
|
174
|
+
try {
|
|
175
|
+
for (let i = 0; i < steps; i++) {
|
|
176
|
+
const entry = this.redoStack.pop();
|
|
177
|
+
if (entry) {
|
|
178
|
+
await entry.command.redo();
|
|
179
|
+
this.undoStack.push(entry);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
this.trimUndoStack();
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
this.endUndoRedo.emit();
|
|
186
|
+
}
|
|
187
|
+
this.historyChanged.emit();
|
|
188
|
+
}
|
|
189
|
+
// --- State queries ---
|
|
190
|
+
get canUndo() {
|
|
191
|
+
return this.undoStack.length > 0;
|
|
192
|
+
}
|
|
193
|
+
get canRedo() {
|
|
194
|
+
return this.redoStack.length > 0;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Dynamic label for next undo action.
|
|
198
|
+
* Ardour: UndoHistory::next_undo()
|
|
199
|
+
*/
|
|
200
|
+
get nextUndoLabel() {
|
|
201
|
+
if (this.undoStack.length === 0)
|
|
202
|
+
return '';
|
|
203
|
+
return this.undoStack[this.undoStack.length - 1].label;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Dynamic label for next redo action.
|
|
207
|
+
* Ardour: UndoHistory::next_redo()
|
|
208
|
+
*/
|
|
209
|
+
get nextRedoLabel() {
|
|
210
|
+
if (this.redoStack.length === 0)
|
|
211
|
+
return '';
|
|
212
|
+
return this.redoStack[this.redoStack.length - 1].label;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get the undo history stack (for UI display).
|
|
216
|
+
* Returns entries in execution order (oldest first).
|
|
217
|
+
*/
|
|
218
|
+
getUndoHistory() {
|
|
219
|
+
return [...this.undoStack];
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get the redo history stack.
|
|
223
|
+
* Returns entries in redo order (next to redo first).
|
|
224
|
+
*/
|
|
225
|
+
getRedoHistory() {
|
|
226
|
+
return [...this.redoStack].reverse();
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Undo to a specific point in history (undo multiple steps).
|
|
230
|
+
*/
|
|
231
|
+
async undoTo(index) {
|
|
232
|
+
const stepsToUndo = this.undoStack.length - index;
|
|
233
|
+
for (let i = 0; i < stepsToUndo; i++) {
|
|
234
|
+
await this.undo();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get the current position in history (number of executed commands).
|
|
239
|
+
*/
|
|
240
|
+
get currentIndex() {
|
|
241
|
+
return this.undoStack.length;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get total history size (undo + redo).
|
|
245
|
+
*/
|
|
246
|
+
get totalSize() {
|
|
247
|
+
return this.undoStack.length + this.redoStack.length;
|
|
248
|
+
}
|
|
249
|
+
// --- Clear methods (Ardour: clear / clear_undo / clear_redo) ---
|
|
250
|
+
clearUndo() {
|
|
251
|
+
this.undoStack = [];
|
|
252
|
+
this.historyChanged.emit();
|
|
253
|
+
}
|
|
254
|
+
clearRedo() {
|
|
255
|
+
this.redoStack = [];
|
|
256
|
+
this.historyChanged.emit();
|
|
257
|
+
}
|
|
258
|
+
clear() {
|
|
259
|
+
this.undoStack = [];
|
|
260
|
+
this.redoStack = [];
|
|
261
|
+
this.historyChanged.emit();
|
|
262
|
+
}
|
|
263
|
+
// --- Persistence (Ardour: get_state / save_state) ---
|
|
264
|
+
/**
|
|
265
|
+
* Serialize history metadata for persistence.
|
|
266
|
+
* @param depth Number of entries to save (0 = all, negative = all)
|
|
267
|
+
*/
|
|
268
|
+
getState(depth = 0) {
|
|
269
|
+
const undoEntries = (depth > 0
|
|
270
|
+
? this.undoStack.slice(-depth)
|
|
271
|
+
: this.undoStack).map(e => ({ label: e.label, timestamp: e.timestamp }));
|
|
272
|
+
const redoEntries = (depth > 0
|
|
273
|
+
? this.redoStack.slice(-depth)
|
|
274
|
+
: this.redoStack).map(e => ({ label: e.label, timestamp: e.timestamp }));
|
|
275
|
+
return { undoEntries, redoEntries };
|
|
276
|
+
}
|
|
277
|
+
// --- Serialization support ---
|
|
278
|
+
/**
|
|
279
|
+
* Return a lightweight snapshot containing the transaction/command names
|
|
280
|
+
* from both stacks.
|
|
281
|
+
*
|
|
282
|
+
* This is useful for persisting history metadata (e.g. to show the user
|
|
283
|
+
* what operations were performed) without needing to serialize full
|
|
284
|
+
* command state.
|
|
285
|
+
*
|
|
286
|
+
* @returns An object with `undoStack` and `redoStack` arrays of label
|
|
287
|
+
* strings.
|
|
288
|
+
*/
|
|
289
|
+
getSnapshot() {
|
|
290
|
+
return {
|
|
291
|
+
undoStack: this.undoStack.map(e => e.label),
|
|
292
|
+
redoStack: this.redoStack.map(e => e.label),
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Check whether all commands in the history implement
|
|
297
|
+
* {@link SerializableCommand}, meaning the full history could be
|
|
298
|
+
* serialized and later re-hydrated.
|
|
299
|
+
*
|
|
300
|
+
* @returns `true` if every entry's command has a `toJSON` method.
|
|
301
|
+
*/
|
|
302
|
+
canSerialize() {
|
|
303
|
+
const allEntries = [...this.undoStack, ...this.redoStack];
|
|
304
|
+
return allEntries.every(entry => this.isSerializable(entry.command));
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Type guard for checking if a command implements SerializableCommand.
|
|
308
|
+
*/
|
|
309
|
+
isSerializable(cmd) {
|
|
310
|
+
return (typeof cmd === 'object' &&
|
|
311
|
+
cmd !== null &&
|
|
312
|
+
'toJSON' in cmd &&
|
|
313
|
+
typeof cmd.toJSON === 'function');
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=CommandHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandHistory.js","sourceRoot":"","sources":["../../src/commands/CommandHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CommandRegistry — a singleton registry that maps command type names to
|
|
3
|
+
* their constructors, enabling serialization and deserialization of commands.
|
|
4
|
+
*
|
|
5
|
+
* Inspired by Ardour's `StatefulDiffCommand` registration pattern and the
|
|
6
|
+
* general command-factory approach used in professional DAWs for session
|
|
7
|
+
* persistence.
|
|
8
|
+
*
|
|
9
|
+
* **Serialization flow:**
|
|
10
|
+
* 1. A command implements {@link SerializableCommand} and returns a
|
|
11
|
+
* {@link CommandSnapshot} from `toJSON()`.
|
|
12
|
+
* 2. The snapshot is persisted (e.g. to IndexedDB or a file).
|
|
13
|
+
* 3. On load, `CommandRegistry` resolves the `type` field back to a
|
|
14
|
+
* constructor, which the caller can use to re-hydrate the command.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* // Registration (typically at module load time)
|
|
19
|
+
* CommandRegistry.getInstance().register('MoveRegion', MoveRegionCommand);
|
|
20
|
+
*
|
|
21
|
+
* // Serialization
|
|
22
|
+
* const snapshot = (cmd as SerializableCommand).toJSON();
|
|
23
|
+
* const json = JSON.stringify(snapshot);
|
|
24
|
+
*
|
|
25
|
+
* // Deserialization
|
|
26
|
+
* const data = JSON.parse(json) as CommandSnapshot;
|
|
27
|
+
* const Ctor = CommandRegistry.getInstance().getConstructor(data.type);
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @module CommandRegistry
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* A JSON-safe snapshot of a command's state, suitable for persistence.
|
|
34
|
+
*/
|
|
35
|
+
export interface CommandSnapshot {
|
|
36
|
+
/** The registered type name (e.g. `'MoveRegion'`). */
|
|
37
|
+
type: string;
|
|
38
|
+
/** Arbitrary parameter bag capturing the command's state. */
|
|
39
|
+
params: Record<string, unknown>;
|
|
40
|
+
/** Unix-epoch millisecond timestamp of when the command was created. */
|
|
41
|
+
timestamp: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Interface that commands may implement to support serialization.
|
|
45
|
+
*
|
|
46
|
+
* This is intentionally separate from the base `Command` / `UndoableCommand`
|
|
47
|
+
* interfaces so that serialization support remains opt-in and does not break
|
|
48
|
+
* backwards compatibility.
|
|
49
|
+
*/
|
|
50
|
+
export interface SerializableCommand {
|
|
51
|
+
/** Serialize this command to a JSON-safe snapshot. */
|
|
52
|
+
toJSON(): CommandSnapshot;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A constructor type for command classes.
|
|
56
|
+
*
|
|
57
|
+
* The constructor signature is intentionally loose (`...args: unknown[]`) so
|
|
58
|
+
* that any command class can be registered regardless of its specific
|
|
59
|
+
* constructor parameters.
|
|
60
|
+
*/
|
|
61
|
+
type CommandConstructor = new (...args: unknown[]) => unknown;
|
|
62
|
+
/**
|
|
63
|
+
* CommandRegistry is a singleton that maintains a mapping from string type
|
|
64
|
+
* names to command constructors.
|
|
65
|
+
*
|
|
66
|
+
* It is the cornerstone of the command serialization/deserialization pipeline,
|
|
67
|
+
* allowing persisted {@link CommandSnapshot} objects to be re-hydrated into
|
|
68
|
+
* live command instances.
|
|
69
|
+
*/
|
|
70
|
+
export declare class CommandRegistry {
|
|
71
|
+
/** Singleton instance. */
|
|
72
|
+
private static instance;
|
|
73
|
+
/** Type name → constructor mapping. */
|
|
74
|
+
private registry;
|
|
75
|
+
/** Use {@link getInstance} instead. */
|
|
76
|
+
private constructor();
|
|
77
|
+
/**
|
|
78
|
+
* Return the singleton instance, creating it on first access.
|
|
79
|
+
*/
|
|
80
|
+
static getInstance(): CommandRegistry;
|
|
81
|
+
/**
|
|
82
|
+
* Register a command constructor under the given type name.
|
|
83
|
+
*
|
|
84
|
+
* If a constructor is already registered for `type` it will be
|
|
85
|
+
* silently replaced.
|
|
86
|
+
*
|
|
87
|
+
* @param type - A unique string identifier (e.g. `'MoveRegion'`).
|
|
88
|
+
* @param ctor - The command class constructor.
|
|
89
|
+
*/
|
|
90
|
+
register(type: string, ctor: CommandConstructor): void;
|
|
91
|
+
/**
|
|
92
|
+
* Look up the constructor for a given type name.
|
|
93
|
+
*
|
|
94
|
+
* @param type - The registered type name.
|
|
95
|
+
* @returns The constructor, or `undefined` if the type is not registered.
|
|
96
|
+
*/
|
|
97
|
+
getConstructor(type: string): CommandConstructor | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Check whether a type name is registered.
|
|
100
|
+
*
|
|
101
|
+
* @param type - The type name to look up.
|
|
102
|
+
*/
|
|
103
|
+
has(type: string): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Return a sorted list of all currently registered type names.
|
|
106
|
+
*/
|
|
107
|
+
getRegisteredTypes(): string[];
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=CommandRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandRegistry.d.ts","sourceRoot":"","sources":["../../src/commands/CommandRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,sDAAsD;IACtD,MAAM,IAAI,eAAe,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,KAAK,kBAAkB,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9D;;;;;;;GAOG;AACH,qBAAa,eAAe;IACxB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAA8C;IAE9D,uCAAuC;IACvC,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,eAAe;IAOrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAItD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI5D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;CAGjC"}
|