@meframe/core 0.0.1
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/CHANGELOG.md +42 -0
- package/LICENSE +22 -0
- package/README.md +396 -0
- package/dist/Meframe.d.ts +82 -0
- package/dist/Meframe.d.ts.map +1 -0
- package/dist/Meframe.js +290 -0
- package/dist/Meframe.js.map +1 -0
- package/dist/_virtual/mp4box.all.js +5 -0
- package/dist/_virtual/mp4box.all.js.map +1 -0
- package/dist/cache/BatchWriter.d.ts +25 -0
- package/dist/cache/BatchWriter.d.ts.map +1 -0
- package/dist/cache/CacheManager.d.ts +115 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +388 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/CacheStatsDecorator.d.ts +27 -0
- package/dist/cache/CacheStatsDecorator.d.ts.map +1 -0
- package/dist/cache/L2Cache.d.ts +39 -0
- package/dist/cache/L2Cache.d.ts.map +1 -0
- package/dist/cache/L2Cache.js +282 -0
- package/dist/cache/L2Cache.js.map +1 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/l1/AudioL1Cache.d.ts +30 -0
- package/dist/cache/l1/AudioL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/AudioL1Cache.js +306 -0
- package/dist/cache/l1/AudioL1Cache.js.map +1 -0
- package/dist/cache/l1/MixedAudioL1Cache.d.ts +13 -0
- package/dist/cache/l1/MixedAudioL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/MixedAudioL1Cache.js +52 -0
- package/dist/cache/l1/MixedAudioL1Cache.js.map +1 -0
- package/dist/cache/l1/VideoL1Cache.d.ts +69 -0
- package/dist/cache/l1/VideoL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/VideoL1Cache.js +318 -0
- package/dist/cache/l1/VideoL1Cache.js.map +1 -0
- package/dist/cache/l1/gop-utils.d.ts +10 -0
- package/dist/cache/l1/gop-utils.d.ts.map +1 -0
- package/dist/cache/l1/gop-utils.js +78 -0
- package/dist/cache/l1/gop-utils.js.map +1 -0
- package/dist/cache/l1/index.d.ts +4 -0
- package/dist/cache/l1/index.d.ts.map +1 -0
- package/dist/cache/l1/types.d.ts +17 -0
- package/dist/cache/l1/types.d.ts.map +1 -0
- package/dist/cache/types.d.ts +93 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/config/ConfigLoader.d.ts +69 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +133 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/defaults.d.ts +125 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +191 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/presets.d.ts +32 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +11 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/types.d.ts +199 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/validation.d.ts +19 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +232 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/controllers/PlaybackController.d.ts +55 -0
- package/dist/controllers/PlaybackController.d.ts.map +1 -0
- package/dist/controllers/PlaybackController.js +369 -0
- package/dist/controllers/PlaybackController.js.map +1 -0
- package/dist/controllers/PreRenderService.d.ts +34 -0
- package/dist/controllers/PreRenderService.d.ts.map +1 -0
- package/dist/controllers/PreRenderService.js +83 -0
- package/dist/controllers/PreRenderService.js.map +1 -0
- package/dist/controllers/PreRenderTaskQueue.d.ts +21 -0
- package/dist/controllers/PreRenderTaskQueue.d.ts.map +1 -0
- package/dist/controllers/PreviewHandle.d.ts +23 -0
- package/dist/controllers/PreviewHandle.d.ts.map +1 -0
- package/dist/controllers/PreviewHandle.js +39 -0
- package/dist/controllers/PreviewHandle.js.map +1 -0
- package/dist/controllers/index.d.ts +8 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/types.d.ts +102 -0
- package/dist/controllers/types.d.ts.map +1 -0
- package/dist/event/EventBus.d.ts +42 -0
- package/dist/event/EventBus.d.ts.map +1 -0
- package/dist/event/EventBus.js +94 -0
- package/dist/event/EventBus.js.map +1 -0
- package/dist/event/events.d.ts +371 -0
- package/dist/event/events.d.ts.map +1 -0
- package/dist/event/events.js +71 -0
- package/dist/event/events.js.map +1 -0
- package/dist/event/index.d.ts +4 -0
- package/dist/event/index.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/model/CompositionModel.d.ts +48 -0
- package/dist/model/CompositionModel.d.ts.map +1 -0
- package/dist/model/CompositionModel.js +197 -0
- package/dist/model/CompositionModel.js.map +1 -0
- package/dist/model/RcFrame.d.ts +34 -0
- package/dist/model/RcFrame.d.ts.map +1 -0
- package/dist/model/RcFrame.js +97 -0
- package/dist/model/RcFrame.js.map +1 -0
- package/dist/model/dirty-range.d.ts +5 -0
- package/dist/model/dirty-range.d.ts.map +1 -0
- package/dist/model/dirty-range.js +220 -0
- package/dist/model/dirty-range.js.map +1 -0
- package/dist/model/index.d.ts +7 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/patch.d.ts +5 -0
- package/dist/model/patch.d.ts.map +1 -0
- package/dist/model/patch.js +250 -0
- package/dist/model/patch.js.map +1 -0
- package/dist/model/types.d.ts +135 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +5 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validation.d.ts +15 -0
- package/dist/model/validation.d.ts.map +1 -0
- package/dist/model/validation.js +74 -0
- package/dist/model/validation.js.map +1 -0
- package/dist/node_modules/.pnpm/mp4box@0.5.4/node_modules/mp4box/dist/mp4box.all.js +7046 -0
- package/dist/node_modules/.pnpm/mp4box@0.5.4/node_modules/mp4box/dist/mp4box.all.js.map +1 -0
- package/dist/orchestrator/ClipSessionManager.d.ts +75 -0
- package/dist/orchestrator/ClipSessionManager.d.ts.map +1 -0
- package/dist/orchestrator/ClipSessionManager.js +160 -0
- package/dist/orchestrator/ClipSessionManager.js.map +1 -0
- package/dist/orchestrator/CompositionPlanner.d.ts +55 -0
- package/dist/orchestrator/CompositionPlanner.d.ts.map +1 -0
- package/dist/orchestrator/CompositionPlanner.js +411 -0
- package/dist/orchestrator/CompositionPlanner.js.map +1 -0
- package/dist/orchestrator/Orchestrator.d.ts +59 -0
- package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/Orchestrator.js +390 -0
- package/dist/orchestrator/Orchestrator.js.map +1 -0
- package/dist/orchestrator/VideoClipSession.d.ts +64 -0
- package/dist/orchestrator/VideoClipSession.d.ts.map +1 -0
- package/dist/orchestrator/VideoClipSession.js +309 -0
- package/dist/orchestrator/VideoClipSession.js.map +1 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/types.d.ts +64 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/plugins/BackpressureMonitor.d.ts +33 -0
- package/dist/plugins/BackpressureMonitor.d.ts.map +1 -0
- package/dist/plugins/BackpressureMonitor.js +62 -0
- package/dist/plugins/BackpressureMonitor.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +37 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +66 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/types.d.ts +60 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/stages/compose/AudioDucker.d.ts +59 -0
- package/dist/stages/compose/AudioDucker.d.ts.map +1 -0
- package/dist/stages/compose/AudioDucker.js +161 -0
- package/dist/stages/compose/AudioDucker.js.map +1 -0
- package/dist/stages/compose/AudioMixer.d.ts +29 -0
- package/dist/stages/compose/AudioMixer.d.ts.map +1 -0
- package/dist/stages/compose/AudioMixer.js +373 -0
- package/dist/stages/compose/AudioMixer.js.map +1 -0
- package/dist/stages/compose/FilterProcessor.d.ts +41 -0
- package/dist/stages/compose/FilterProcessor.d.ts.map +1 -0
- package/dist/stages/compose/FilterProcessor.js +226 -0
- package/dist/stages/compose/FilterProcessor.js.map +1 -0
- package/dist/stages/compose/GlobalAudioSession.d.ts +38 -0
- package/dist/stages/compose/GlobalAudioSession.d.ts.map +1 -0
- package/dist/stages/compose/GlobalAudioSession.js +122 -0
- package/dist/stages/compose/GlobalAudioSession.js.map +1 -0
- package/dist/stages/compose/LayerRenderer.d.ts +30 -0
- package/dist/stages/compose/LayerRenderer.d.ts.map +1 -0
- package/dist/stages/compose/LayerRenderer.js +215 -0
- package/dist/stages/compose/LayerRenderer.js.map +1 -0
- package/dist/stages/compose/OfflineAudioMixer.d.ts +14 -0
- package/dist/stages/compose/OfflineAudioMixer.d.ts.map +1 -0
- package/dist/stages/compose/OfflineAudioMixer.js +68 -0
- package/dist/stages/compose/OfflineAudioMixer.js.map +1 -0
- package/dist/stages/compose/TransitionProcessor.d.ts +30 -0
- package/dist/stages/compose/TransitionProcessor.d.ts.map +1 -0
- package/dist/stages/compose/TransitionProcessor.js +189 -0
- package/dist/stages/compose/TransitionProcessor.js.map +1 -0
- package/dist/stages/compose/VideoComposer.d.ts +30 -0
- package/dist/stages/compose/VideoComposer.d.ts.map +1 -0
- package/dist/stages/compose/VideoComposer.js +186 -0
- package/dist/stages/compose/VideoComposer.js.map +1 -0
- package/dist/stages/compose/audio-compose.worker.d.ts +79 -0
- package/dist/stages/compose/audio-compose.worker.d.ts.map +1 -0
- package/dist/stages/compose/audio-compose.worker.js +541 -0
- package/dist/stages/compose/audio-compose.worker.js.map +1 -0
- package/dist/stages/compose/instructions.d.ts +95 -0
- package/dist/stages/compose/instructions.d.ts.map +1 -0
- package/dist/stages/compose/types.d.ts +245 -0
- package/dist/stages/compose/types.d.ts.map +1 -0
- package/dist/stages/compose/video-compose.worker.d.ts +60 -0
- package/dist/stages/compose/video-compose.worker.d.ts.map +1 -0
- package/dist/stages/compose/video-compose.worker.js +369 -0
- package/dist/stages/compose/video-compose.worker.js.map +1 -0
- package/dist/stages/decode/AudioChunkDecoder.d.ts +41 -0
- package/dist/stages/decode/AudioChunkDecoder.d.ts.map +1 -0
- package/dist/stages/decode/AudioChunkDecoder.js +83 -0
- package/dist/stages/decode/AudioChunkDecoder.js.map +1 -0
- package/dist/stages/decode/BaseDecoder.d.ts +35 -0
- package/dist/stages/decode/BaseDecoder.d.ts.map +1 -0
- package/dist/stages/decode/BaseDecoder.js +130 -0
- package/dist/stages/decode/BaseDecoder.js.map +1 -0
- package/dist/stages/decode/VideoChunkDecoder.d.ts +54 -0
- package/dist/stages/decode/VideoChunkDecoder.d.ts.map +1 -0
- package/dist/stages/decode/VideoChunkDecoder.js +209 -0
- package/dist/stages/decode/VideoChunkDecoder.js.map +1 -0
- package/dist/stages/decode/decode.worker.d.ts +70 -0
- package/dist/stages/decode/decode.worker.d.ts.map +1 -0
- package/dist/stages/decode/decode.worker.js +436 -0
- package/dist/stages/decode/decode.worker.js.map +1 -0
- package/dist/stages/decode/index.d.ts +5 -0
- package/dist/stages/decode/index.d.ts.map +1 -0
- package/dist/stages/decode/types.d.ts +108 -0
- package/dist/stages/decode/types.d.ts.map +1 -0
- package/dist/stages/demux/MP3FrameParser.d.ts +33 -0
- package/dist/stages/demux/MP3FrameParser.d.ts.map +1 -0
- package/dist/stages/demux/MP3FrameParser.js +186 -0
- package/dist/stages/demux/MP3FrameParser.js.map +1 -0
- package/dist/stages/demux/MP4Demuxer.d.ts +45 -0
- package/dist/stages/demux/MP4Demuxer.d.ts.map +1 -0
- package/dist/stages/demux/MP4Demuxer.js +227 -0
- package/dist/stages/demux/MP4Demuxer.js.map +1 -0
- package/dist/stages/demux/aac-esds-extractor.d.ts +7 -0
- package/dist/stages/demux/aac-esds-extractor.d.ts.map +1 -0
- package/dist/stages/demux/audio-demux.worker.d.ts +51 -0
- package/dist/stages/demux/audio-demux.worker.d.ts.map +1 -0
- package/dist/stages/demux/audio-demux.worker.js +312 -0
- package/dist/stages/demux/audio-demux.worker.js.map +1 -0
- package/dist/stages/demux/types.d.ts +77 -0
- package/dist/stages/demux/types.d.ts.map +1 -0
- package/dist/stages/demux/video-demux.worker.d.ts +48 -0
- package/dist/stages/demux/video-demux.worker.d.ts.map +1 -0
- package/dist/stages/demux/video-demux.worker.js +173 -0
- package/dist/stages/demux/video-demux.worker.js.map +1 -0
- package/dist/stages/encode/AudioChunkEncoder.d.ts +21 -0
- package/dist/stages/encode/AudioChunkEncoder.d.ts.map +1 -0
- package/dist/stages/encode/AudioChunkEncoder.js +37 -0
- package/dist/stages/encode/AudioChunkEncoder.js.map +1 -0
- package/dist/stages/encode/BaseEncoder.d.ts +44 -0
- package/dist/stages/encode/BaseEncoder.d.ts.map +1 -0
- package/dist/stages/encode/BaseEncoder.js +164 -0
- package/dist/stages/encode/BaseEncoder.js.map +1 -0
- package/dist/stages/encode/EncoderPool.d.ts +28 -0
- package/dist/stages/encode/EncoderPool.d.ts.map +1 -0
- package/dist/stages/encode/VideoChunkEncoder.d.ts +26 -0
- package/dist/stages/encode/VideoChunkEncoder.d.ts.map +1 -0
- package/dist/stages/encode/VideoChunkEncoder.js +50 -0
- package/dist/stages/encode/VideoChunkEncoder.js.map +1 -0
- package/dist/stages/encode/encode.worker.d.ts +3 -0
- package/dist/stages/encode/encode.worker.d.ts.map +1 -0
- package/dist/stages/encode/encode.worker.js +318 -0
- package/dist/stages/encode/encode.worker.js.map +1 -0
- package/dist/stages/encode/index.d.ts +6 -0
- package/dist/stages/encode/index.d.ts.map +1 -0
- package/dist/stages/encode/types.d.ts +127 -0
- package/dist/stages/encode/types.d.ts.map +1 -0
- package/dist/stages/load/EventHandlers.d.ts +35 -0
- package/dist/stages/load/EventHandlers.d.ts.map +1 -0
- package/dist/stages/load/EventHandlers.js +65 -0
- package/dist/stages/load/EventHandlers.js.map +1 -0
- package/dist/stages/load/ResourceLoader.d.ts +36 -0
- package/dist/stages/load/ResourceLoader.d.ts.map +1 -0
- package/dist/stages/load/ResourceLoader.js +184 -0
- package/dist/stages/load/ResourceLoader.js.map +1 -0
- package/dist/stages/load/StreamFactory.d.ts +42 -0
- package/dist/stages/load/StreamFactory.d.ts.map +1 -0
- package/dist/stages/load/StreamFactory.js +201 -0
- package/dist/stages/load/StreamFactory.js.map +1 -0
- package/dist/stages/load/TaskManager.d.ts +50 -0
- package/dist/stages/load/TaskManager.d.ts.map +1 -0
- package/dist/stages/load/TaskManager.js +103 -0
- package/dist/stages/load/TaskManager.js.map +1 -0
- package/dist/stages/load/WindowByteRangeResolver.d.ts +47 -0
- package/dist/stages/load/WindowByteRangeResolver.d.ts.map +1 -0
- package/dist/stages/load/WindowByteRangeResolver.js +270 -0
- package/dist/stages/load/WindowByteRangeResolver.js.map +1 -0
- package/dist/stages/load/index.d.ts +11 -0
- package/dist/stages/load/index.d.ts.map +1 -0
- package/dist/stages/load/types.d.ts +177 -0
- package/dist/stages/load/types.d.ts.map +1 -0
- package/dist/stages/mux/MP4Muxer.d.ts +44 -0
- package/dist/stages/mux/MP4Muxer.d.ts.map +1 -0
- package/dist/stages/mux/MP4Muxer.js +262 -0
- package/dist/stages/mux/MP4Muxer.js.map +1 -0
- package/dist/stages/mux/OPFSWriter.d.ts +46 -0
- package/dist/stages/mux/OPFSWriter.d.ts.map +1 -0
- package/dist/stages/mux/index.d.ts +5 -0
- package/dist/stages/mux/index.d.ts.map +1 -0
- package/dist/stages/mux/mux.worker.d.ts +65 -0
- package/dist/stages/mux/mux.worker.d.ts.map +1 -0
- package/dist/stages/mux/mux.worker.js +219 -0
- package/dist/stages/mux/mux.worker.js.map +1 -0
- package/dist/stages/mux/types.d.ts +95 -0
- package/dist/stages/mux/types.d.ts.map +1 -0
- package/dist/stages/mux/utils.d.ts +32 -0
- package/dist/stages/mux/utils.d.ts.map +1 -0
- package/dist/stages/mux/utils.js +34 -0
- package/dist/stages/mux/utils.js.map +1 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/BackpressureAdapter.d.ts +26 -0
- package/dist/utils/BackpressureAdapter.d.ts.map +1 -0
- package/dist/utils/binary-search.d.ts +33 -0
- package/dist/utils/binary-search.d.ts.map +1 -0
- package/dist/utils/binary-search.js +62 -0
- package/dist/utils/binary-search.js.map +1 -0
- package/dist/utils/canvas-utils.d.ts +96 -0
- package/dist/utils/canvas-utils.d.ts.map +1 -0
- package/dist/utils/canvas-utils.js +58 -0
- package/dist/utils/canvas-utils.js.map +1 -0
- package/dist/utils/object-utils.d.ts +34 -0
- package/dist/utils/object-utils.d.ts.map +1 -0
- package/dist/utils/object-utils.js +22 -0
- package/dist/utils/object-utils.js.map +1 -0
- package/dist/utils/time-utils.d.ts +10 -0
- package/dist/utils/time-utils.d.ts.map +1 -0
- package/dist/utils/time-utils.js +60 -0
- package/dist/utils/time-utils.js.map +1 -0
- package/dist/worker/BaseWorker.d.ts +44 -0
- package/dist/worker/BaseWorker.d.ts.map +1 -0
- package/dist/worker/BaseWorker.js +98 -0
- package/dist/worker/BaseWorker.js.map +1 -0
- package/dist/worker/WorkerChannel.d.ts +105 -0
- package/dist/worker/WorkerChannel.d.ts.map +1 -0
- package/dist/worker/WorkerChannel.js +355 -0
- package/dist/worker/WorkerChannel.js.map +1 -0
- package/dist/worker/WorkerPool.d.ts +52 -0
- package/dist/worker/WorkerPool.d.ts.map +1 -0
- package/dist/worker/WorkerPool.js +124 -0
- package/dist/worker/WorkerPool.js.map +1 -0
- package/dist/worker/index.d.ts +11 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/transferable-helper.d.ts +89 -0
- package/dist/worker/transferable-helper.d.ts.map +1 -0
- package/dist/worker/transferable-helper.js +44 -0
- package/dist/worker/transferable-helper.js.map +1 -0
- package/dist/worker/types.d.ts +179 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +50 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/worker-event-whitelist.d.ts +23 -0
- package/dist/worker/worker-event-whitelist.d.ts.map +1 -0
- package/dist/worker/worker-retry.d.ts +36 -0
- package/dist/worker/worker-retry.d.ts.map +1 -0
- package/dist/worker/worker-retry.js +55 -0
- package/dist/worker/worker-retry.js.map +1 -0
- package/package.json +105 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.0.1] - 2025-10-08
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Initial release of @meframe/core
|
|
15
|
+
- Six-stage processing pipeline: Load → Demux → Decode → Compose → Encode → Mux/Export
|
|
16
|
+
- Worker-based parallel architecture
|
|
17
|
+
- Dual-layer cache system (L1 VRAM + L2 IndexedDB)
|
|
18
|
+
- Streaming processing support
|
|
19
|
+
- Incremental update via patch system
|
|
20
|
+
- Plugin system foundation
|
|
21
|
+
- Basic composition model support
|
|
22
|
+
- Preview and export capabilities
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
- WebCodecs-based video/audio processing
|
|
27
|
+
- Multi-track composition
|
|
28
|
+
- Real-time preview with playback control
|
|
29
|
+
- Video export to MP4/WebM
|
|
30
|
+
- Performance monitoring plugin
|
|
31
|
+
- Resource loading and management
|
|
32
|
+
- Cache-aware rendering
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
|
|
36
|
+
- Architecture overview
|
|
37
|
+
- API reference
|
|
38
|
+
- Quick start guide
|
|
39
|
+
- Migration guide from v1
|
|
40
|
+
|
|
41
|
+
[Unreleased]: https://github.com/one2x-ai/meframe/compare/v0.0.1...HEAD
|
|
42
|
+
[0.0.1]: https://github.com/one2x-ai/meframe/releases/tag/v0.0.1
|
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Sheepy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
# MEFrame Core
|
|
2
|
+
|
|
3
|
+
> 新一代高性能浏览器端视频合成引擎
|
|
4
|
+
|
|
5
|
+
## 概述
|
|
6
|
+
|
|
7
|
+
MEFrame Core 是完全重新设计的视频处理引擎,基于 WebCodecs API 和 Worker 并行架构,提供毫秒级响应的视频编辑和秒级导出能力。
|
|
8
|
+
|
|
9
|
+
### 核心特性
|
|
10
|
+
|
|
11
|
+
- **六阶段处理模型** - Load → Demux → Decode → Compose → Encode → Mux/Export
|
|
12
|
+
- **Worker 并行架构** - 充分利用多核 CPU,各阶段独立并行处理
|
|
13
|
+
- **双层缓存系统** - L1 VRAM + L2 IndexedDB,智能缓存管理
|
|
14
|
+
- **流式处理** - 边加载边处理,优化首帧时间
|
|
15
|
+
- **增量更新** - 基于 Patch 的细粒度更新,最小化重渲染
|
|
16
|
+
|
|
17
|
+
### 性能指标
|
|
18
|
+
|
|
19
|
+
| 指标 | 目标值 | 说明 |
|
|
20
|
+
| --------- | ----------- | ------------------ |
|
|
21
|
+
| 首帧渲染 | < 100ms | 从加载到显示第一帧 |
|
|
22
|
+
| Seek 响应 | < 50ms | 缓存命中情况下 |
|
|
23
|
+
| 播放帧率 | > 29.97 fps | 1080p 多轨合成 |
|
|
24
|
+
| 导出速度 | > 2x 实时 | 1080p H.264 编码 |
|
|
25
|
+
| 内存占用 | < 500MB | 典型项目场景 |
|
|
26
|
+
|
|
27
|
+
## 快速开始
|
|
28
|
+
|
|
29
|
+
### 安装
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install @meframe/core
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 基础使用
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import { Meframe } from '@meframe/core';
|
|
39
|
+
import { parseDSL } from '@meframe/dsl-parser'; // 可选:DSL 解析
|
|
40
|
+
|
|
41
|
+
// 1. 创建实例
|
|
42
|
+
const core = await Meframe.create({
|
|
43
|
+
canvas: document.getElementById('preview'),
|
|
44
|
+
workerBaseUrl: '/workers/',
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// 2. 设置合成树(两种方式)
|
|
48
|
+
|
|
49
|
+
// 方式一:直接使用标准模型格式
|
|
50
|
+
// CompositionModel 是引擎的标准输入模型,定义了明确的数据契约
|
|
51
|
+
const compositionTree = {
|
|
52
|
+
version: '1.0',
|
|
53
|
+
fps: 30,
|
|
54
|
+
durationUs: 10_000_000, // 10 seconds
|
|
55
|
+
root: {
|
|
56
|
+
type: 'group',
|
|
57
|
+
id: 'root',
|
|
58
|
+
startUs: 0,
|
|
59
|
+
durationUs: 10_000_000,
|
|
60
|
+
children: [
|
|
61
|
+
{
|
|
62
|
+
type: 'video',
|
|
63
|
+
id: 'video-1',
|
|
64
|
+
src: 'https://example.com/video.mp4',
|
|
65
|
+
startUs: 0,
|
|
66
|
+
durationUs: 5_000_000,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: 'caption',
|
|
70
|
+
id: 'caption-1',
|
|
71
|
+
text: 'Hello World',
|
|
72
|
+
startUs: 1_000_000,
|
|
73
|
+
durationUs: 3_000_000,
|
|
74
|
+
style: {
|
|
75
|
+
fontSize: 48,
|
|
76
|
+
color: '#ffffff',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
await core.setCompositionTree(compositionTree);
|
|
84
|
+
|
|
85
|
+
// 方式二:使用 DSL Parser(业务 DSL → CompositionModel)
|
|
86
|
+
const dsl = await fetch('/project.json').then((r) => r.json());
|
|
87
|
+
const model = parseDSL(dsl); // 转换为标准格式
|
|
88
|
+
await core.setCompositionTree(model);
|
|
89
|
+
|
|
90
|
+
// 3. 开始预览
|
|
91
|
+
const preview = core.startPreview();
|
|
92
|
+
preview.play();
|
|
93
|
+
|
|
94
|
+
// 4. 导出视频
|
|
95
|
+
const blob = await core.export({
|
|
96
|
+
preset: 'high',
|
|
97
|
+
container: 'mp4',
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 增量更新
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// 应用局部更新
|
|
105
|
+
await core.applyPatch({
|
|
106
|
+
version: '1.0',
|
|
107
|
+
operations: [
|
|
108
|
+
{
|
|
109
|
+
type: 'update',
|
|
110
|
+
nodeId: 'caption-1',
|
|
111
|
+
updates: {
|
|
112
|
+
text: 'Updated Text',
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 插件使用
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { PerfMonitorPlugin } from '@meframe/core/plugins';
|
|
123
|
+
|
|
124
|
+
const core = await Meframe.create({
|
|
125
|
+
canvas,
|
|
126
|
+
workerBaseUrl: '/workers/',
|
|
127
|
+
plugins: [
|
|
128
|
+
new PerfMonitorPlugin({
|
|
129
|
+
overlay: true,
|
|
130
|
+
sampleRate: 60,
|
|
131
|
+
}),
|
|
132
|
+
],
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## API 参考
|
|
137
|
+
|
|
138
|
+
### Meframe
|
|
139
|
+
|
|
140
|
+
#### 创建实例
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
static async create(config: CoreConfig): Promise<Meframe>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### 合成树管理
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
async setCompositionTree(model: CompositionModel): Promise<void>
|
|
150
|
+
async applyPatch(patch: CompositionPatch): Promise<void>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### 预览控制
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
startPreview(options?: PreviewOptions): PreviewHandle
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### 导出
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
async export(options: ExportOptions): Promise<Blob>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### PreviewHandle
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
interface PreviewHandle {
|
|
169
|
+
play(): void;
|
|
170
|
+
pause(): void;
|
|
171
|
+
seek(timeUs: number): void;
|
|
172
|
+
setRate(rate: number): void;
|
|
173
|
+
getCurrentTime(): number;
|
|
174
|
+
on(event: string, handler: Function): void;
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### CompositionModel
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
interface CompositionModel {
|
|
182
|
+
version: '1.0';
|
|
183
|
+
fps: 24 | 25 | 30 | 60;
|
|
184
|
+
durationUs: number;
|
|
185
|
+
root: GroupNode;
|
|
186
|
+
renderConfig?: {
|
|
187
|
+
width: number;
|
|
188
|
+
height: number;
|
|
189
|
+
background?: string;
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## 架构设计
|
|
195
|
+
|
|
196
|
+
### 系统架构图
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
┌─────────────────────────────────────────────────────────┐
|
|
200
|
+
│ Main Thread │
|
|
201
|
+
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
202
|
+
│ │ Meframe │ │ Orchestrator │ │ CacheManager │ │
|
|
203
|
+
│ └─────────────┘ └──────────────┘ └──────────────┘ │
|
|
204
|
+
└─────────────────────────┬───────────────────────────────┘
|
|
205
|
+
│ MessageChannel
|
|
206
|
+
┌─────────────────────────┴───────────────────────────────┐
|
|
207
|
+
│ Worker Threads │
|
|
208
|
+
│ ┌────────────┐ ┌─────────────┐ ┌────────────────┐ │
|
|
209
|
+
│ │DecodeWorker│ │ComposeWorker│ │EncodeWorker │ │
|
|
210
|
+
│ └────────────┘ └─────────────┘ └────────────────┘ │
|
|
211
|
+
│ ┌─────────────┐ │
|
|
212
|
+
│ │ MuxWorker │ │
|
|
213
|
+
│ └─────────────┘ │
|
|
214
|
+
└──────────────────────────────────────────────────────────┘
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 数据流
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
Input Stream
|
|
221
|
+
↓
|
|
222
|
+
[ResourceLoader] → ReadableStream
|
|
223
|
+
↓
|
|
224
|
+
[DecodeWorker] → VideoFrame/AudioData
|
|
225
|
+
↓
|
|
226
|
+
[ComposeWorker] → Composed VideoFrame
|
|
227
|
+
↓
|
|
228
|
+
[EncodeWorker] → EncodedChunk
|
|
229
|
+
↓
|
|
230
|
+
[MuxWorker] → MP4/WebM Blob
|
|
231
|
+
↓
|
|
232
|
+
Output File
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 缓存架构
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
┌─────────────────────────────────────┐
|
|
239
|
+
│ Cache Manager │
|
|
240
|
+
├─────────────────────────────────────┤
|
|
241
|
+
│ L1: VRAM (VideoFrame) │
|
|
242
|
+
│ - LRU eviction │
|
|
243
|
+
│ - ~90 frames @ 1080p │
|
|
244
|
+
├─────────────────────────────────────┤
|
|
245
|
+
│ L2: IndexedDB (EncodedChunk) │
|
|
246
|
+
│ - Compressed storage │
|
|
247
|
+
│ - Persistent across sessions │
|
|
248
|
+
└─────────────────────────────────────┘
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## 性能优化
|
|
252
|
+
|
|
253
|
+
### 内存管理
|
|
254
|
+
|
|
255
|
+
```typescript
|
|
256
|
+
// 显式释放资源
|
|
257
|
+
videoFrame.close();
|
|
258
|
+
|
|
259
|
+
// 配置缓存限制
|
|
260
|
+
const core = await Meframe.create({
|
|
261
|
+
cache: {
|
|
262
|
+
l1: { maxMemoryMB: 200 },
|
|
263
|
+
l2: { maxSizeMB: 1000 },
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### 预渲染策略
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
// 配置预渲染窗口
|
|
272
|
+
core.setPreRenderWindow({
|
|
273
|
+
forward: 10_000_000, // 10s ahead
|
|
274
|
+
backward: 2_000_000, // 2s behind
|
|
275
|
+
});
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### 降级处理
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
// 配置质量自适应
|
|
282
|
+
core.setAdaptiveQuality({
|
|
283
|
+
enabled: true,
|
|
284
|
+
targetFPS: 30,
|
|
285
|
+
minQuality: 'low',
|
|
286
|
+
maxQuality: 'high',
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## 浏览器兼容性
|
|
291
|
+
|
|
292
|
+
| 浏览器 | 最低版本 | 说明 |
|
|
293
|
+
| ------- | -------- | ------------------ |
|
|
294
|
+
| Chrome | 94+ | 完整支持 |
|
|
295
|
+
| Edge | 94+ | 完整支持 |
|
|
296
|
+
| Safari | 16.4+ | 需要开启实验性功能 |
|
|
297
|
+
| Firefox | - | 暂不支持 WebCodecs |
|
|
298
|
+
|
|
299
|
+
## 迁移指南
|
|
300
|
+
|
|
301
|
+
### 从 v1 迁移
|
|
302
|
+
|
|
303
|
+
主要变化:
|
|
304
|
+
|
|
305
|
+
1. **时间单位** - 所有时间值改为微秒(microseconds)
|
|
306
|
+
2. **八阶段 → 六阶段** - 简化的处理模型
|
|
307
|
+
3. **新的数据结构** - CompositionModel 替代 Storyboard
|
|
308
|
+
4. **Worker 架构** - 所有重计算移至 Worker
|
|
309
|
+
|
|
310
|
+
详细迁移步骤请参考 [MIGRATION.md](./docs/MIGRATION.md)
|
|
311
|
+
|
|
312
|
+
## 相关文档
|
|
313
|
+
|
|
314
|
+
- [架构总览](./ARCHITECTURE_VNEXT.md) - 架构设计
|
|
315
|
+
- [技术实现](./TECHNICAL_IMPLEMENTATION.md) - 详细技术方案
|
|
316
|
+
- [API 契约](./API_CONTRACTS.md) - 完整 API 定义
|
|
317
|
+
- [实现计划](./IMPLEMENTATION_PLAN.md) - 项目结构和技术架构
|
|
318
|
+
- [开发任务](./IMPLEMENTATION_TASKS.md) - 任务列表和进度跟踪
|
|
319
|
+
- [DSL Parser](./DSL_PARSER_ARCHITECTURE.md) - DSL 解析包架构
|
|
320
|
+
|
|
321
|
+
## 开发
|
|
322
|
+
|
|
323
|
+
### 环境准备
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# 安装依赖
|
|
327
|
+
npm install
|
|
328
|
+
|
|
329
|
+
# 启动开发服务器
|
|
330
|
+
npm run dev
|
|
331
|
+
|
|
332
|
+
# 运行测试
|
|
333
|
+
npm test
|
|
334
|
+
|
|
335
|
+
# 构建
|
|
336
|
+
npm run build
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### 项目结构
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
packages/core-next/
|
|
343
|
+
├── src/ # 源代码
|
|
344
|
+
├── tests/ # 测试文件
|
|
345
|
+
├── examples/ # 示例代码
|
|
346
|
+
├── docs/ # 文档
|
|
347
|
+
└── benchmarks/ # 性能测试
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### 贡献指南
|
|
351
|
+
|
|
352
|
+
1. Fork 项目
|
|
353
|
+
2. 创建特性分支 (`git checkout -b feature/amazing`)
|
|
354
|
+
3. 提交更改 (`git commit -m 'Add amazing feature'`)
|
|
355
|
+
4. 推送分支 (`git push origin feature/amazing`)
|
|
356
|
+
5. 创建 Pull Request
|
|
357
|
+
|
|
358
|
+
## 路线图
|
|
359
|
+
|
|
360
|
+
### v2.0.0 (Current)
|
|
361
|
+
|
|
362
|
+
- [x] 基础架构设计
|
|
363
|
+
- [x] Worker 架构实现
|
|
364
|
+
- [x] 双层缓存系统
|
|
365
|
+
- [ ] 插件系统
|
|
366
|
+
- [ ] 性能优化
|
|
367
|
+
|
|
368
|
+
### v2.1.0 (Q2 2024)
|
|
369
|
+
|
|
370
|
+
- [ ] WebGPU 渲染加速
|
|
371
|
+
- [ ] 实时协作支持
|
|
372
|
+
- [ ] AI 辅助编辑
|
|
373
|
+
|
|
374
|
+
### v2.2.0 (Q3 2024)
|
|
375
|
+
|
|
376
|
+
- [ ] 3D 素材支持
|
|
377
|
+
- [ ] 高级特效系统
|
|
378
|
+
- [ ] 云端渲染集成
|
|
379
|
+
|
|
380
|
+
## 许可证
|
|
381
|
+
|
|
382
|
+
MIT License
|
|
383
|
+
|
|
384
|
+
## 支持
|
|
385
|
+
|
|
386
|
+
- 文档:[https://meframe.dev](https://meframe.dev)
|
|
387
|
+
- Issues:[GitHub Issues](https://github.com/meframe/core-next/issues)
|
|
388
|
+
- 讨论:[GitHub Discussions](https://github.com/meframe/core-next/discussions)
|
|
389
|
+
|
|
390
|
+
## 致谢
|
|
391
|
+
|
|
392
|
+
感谢所有贡献者和以下开源项目:
|
|
393
|
+
|
|
394
|
+
- [WebCodecs API](https://www.w3.org/TR/webcodecs/)
|
|
395
|
+
- [MP4Box.js](https://github.com/gpac/mp4box.js)
|
|
396
|
+
- [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { MeframeConfig, ResolvedConfig, MeframeState, ExportOptions } from './types';
|
|
2
|
+
import { CompositionModelData, CompositionPatch, TimeUs } from './model/types';
|
|
3
|
+
import { PreviewHandle } from './controllers/types';
|
|
4
|
+
import { CompositionModel } from './model/CompositionModel';
|
|
5
|
+
import { PluginManager } from './plugins/PluginManager';
|
|
6
|
+
import { EventBus } from './event/EventBus';
|
|
7
|
+
import { EventPayloadMap } from './event/events';
|
|
8
|
+
|
|
9
|
+
export declare class Meframe {
|
|
10
|
+
/** Current state - managed internally via setState() */
|
|
11
|
+
state: MeframeState;
|
|
12
|
+
/** Configuration - immutable after construction */
|
|
13
|
+
readonly config: ResolvedConfig;
|
|
14
|
+
/** Composition model - managed via setCompositionTree() */
|
|
15
|
+
model: CompositionModel | null;
|
|
16
|
+
/** Plugin manager for extensions */
|
|
17
|
+
readonly pluginManager: PluginManager;
|
|
18
|
+
/** Event bus for subscribing to Meframe events */
|
|
19
|
+
readonly events: Pick<EventBus<EventPayloadMap>, 'on' | 'off' | 'once'>;
|
|
20
|
+
private orchestrator;
|
|
21
|
+
private eventBus;
|
|
22
|
+
private playbackController;
|
|
23
|
+
private preRenderService;
|
|
24
|
+
private canvas?;
|
|
25
|
+
private constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Create a new Meframe instance
|
|
28
|
+
*/
|
|
29
|
+
static create(config?: MeframeConfig): Promise<Meframe>;
|
|
30
|
+
/**
|
|
31
|
+
* Initialize the core engine
|
|
32
|
+
*/
|
|
33
|
+
private initialize;
|
|
34
|
+
/**
|
|
35
|
+
* Set the composition model
|
|
36
|
+
*/
|
|
37
|
+
setCompositionModel(model: CompositionModel | CompositionModelData): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Apply a patch to the composition model
|
|
40
|
+
*/
|
|
41
|
+
applyPatch(patch: CompositionPatch): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Start preview and return a handle for control
|
|
44
|
+
*/
|
|
45
|
+
startPreview(options?: {
|
|
46
|
+
canvas?: HTMLCanvasElement | OffscreenCanvas;
|
|
47
|
+
startUs?: TimeUs;
|
|
48
|
+
}): PreviewHandle;
|
|
49
|
+
/**
|
|
50
|
+
* Export the composition
|
|
51
|
+
*/
|
|
52
|
+
export(options: ExportOptions): Promise<ReadableStream<Uint8Array>>;
|
|
53
|
+
/**
|
|
54
|
+
* Run the export pipeline
|
|
55
|
+
*/
|
|
56
|
+
private runExportPipeline;
|
|
57
|
+
/**
|
|
58
|
+
* Export to buffer (convenience method)
|
|
59
|
+
*/
|
|
60
|
+
exportToBuffer(options: ExportOptions): Promise<ArrayBuffer>;
|
|
61
|
+
/**
|
|
62
|
+
* Get current playback time
|
|
63
|
+
*/
|
|
64
|
+
getCurrentTime(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Clean up and destroy the instance
|
|
67
|
+
*/
|
|
68
|
+
dispose(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Set internal state
|
|
71
|
+
*/
|
|
72
|
+
private setState;
|
|
73
|
+
/**
|
|
74
|
+
* Ensure the instance is not destroyed
|
|
75
|
+
*/
|
|
76
|
+
private ensureNotDestroyed;
|
|
77
|
+
/**
|
|
78
|
+
* Ensure the instance is ready
|
|
79
|
+
*/
|
|
80
|
+
private ensureReady;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=Meframe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meframe.d.ts","sourceRoot":"","sources":["../src/Meframe.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAM5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGpE,qBAAa,OAAO;IAClB,wDAAwD;IACxD,KAAK,EAAE,YAAY,CAAU;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,2DAA2D;IAC3D,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACtC,oCAAoC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;IAExE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,MAAM,CAAC,CAAsC;IAErD,OAAO;IAeP;;OAEG;WACU,MAAM,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjE;;OAEG;YACW,UAAU;IAyBxB;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxF;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD;;OAEG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QACrB,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,aAAa;IA+BjB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IA+EzE;;OAEG;YACW,iBAAiB;IA8C/B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IA0BlE;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAYhB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,WAAW;CAWpB"}
|