@twick/core 0.14.21 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/dist/index.cjs +6465 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +3919 -0
  4. package/dist/index.d.ts +3919 -0
  5. package/dist/index.js +6225 -0
  6. package/dist/index.js.map +1 -0
  7. package/package.json +28 -18
  8. package/tsconfig.project.json +1 -0
  9. package/lib/app/Logger.d.ts +0 -105
  10. package/lib/app/Logger.d.ts.map +0 -1
  11. package/lib/app/Logger.js +0 -77
  12. package/lib/app/PlaybackManager.d.ts +0 -55
  13. package/lib/app/PlaybackManager.d.ts.map +0 -1
  14. package/lib/app/PlaybackManager.js +0 -179
  15. package/lib/app/PlaybackStatus.d.ts +0 -30
  16. package/lib/app/PlaybackStatus.d.ts.map +0 -1
  17. package/lib/app/PlaybackStatus.js +0 -46
  18. package/lib/app/Player.d.ts +0 -130
  19. package/lib/app/Player.d.ts.map +0 -1
  20. package/lib/app/Player.js +0 -375
  21. package/lib/app/Project.d.ts +0 -145
  22. package/lib/app/Project.d.ts.map +0 -1
  23. package/lib/app/Project.js +0 -10
  24. package/lib/app/Renderer.d.ts +0 -90
  25. package/lib/app/Renderer.d.ts.map +0 -1
  26. package/lib/app/Renderer.js +0 -318
  27. package/lib/app/SharedWebGLContext.d.ts +0 -24
  28. package/lib/app/SharedWebGLContext.d.ts.map +0 -1
  29. package/lib/app/SharedWebGLContext.js +0 -200
  30. package/lib/app/Stage.d.ts +0 -30
  31. package/lib/app/Stage.d.ts.map +0 -1
  32. package/lib/app/Stage.js +0 -75
  33. package/lib/app/TimeEstimator.d.ts +0 -53
  34. package/lib/app/TimeEstimator.d.ts.map +0 -1
  35. package/lib/app/TimeEstimator.js +0 -70
  36. package/lib/app/index.d.ts +0 -16
  37. package/lib/app/index.d.ts.map +0 -1
  38. package/lib/app/index.js +0 -16
  39. package/lib/app/makeProject.d.ts +0 -15
  40. package/lib/app/makeProject.d.ts.map +0 -1
  41. package/lib/app/makeProject.js +0 -72
  42. package/lib/app/project-settings.d.ts +0 -8
  43. package/lib/app/project-settings.d.ts.map +0 -1
  44. package/lib/app/project-settings.js +0 -13
  45. package/lib/decorators/decorate.d.ts +0 -2
  46. package/lib/decorators/decorate.d.ts.map +0 -1
  47. package/lib/decorators/decorate.js +0 -10
  48. package/lib/decorators/deprecated.d.ts +0 -5
  49. package/lib/decorators/deprecated.d.ts.map +0 -1
  50. package/lib/decorators/deprecated.js +0 -23
  51. package/lib/decorators/index.d.ts +0 -9
  52. package/lib/decorators/index.d.ts.map +0 -1
  53. package/lib/decorators/index.js +0 -9
  54. package/lib/decorators/lazy.d.ts +0 -14
  55. package/lib/decorators/lazy.d.ts.map +0 -1
  56. package/lib/decorators/lazy.js +0 -27
  57. package/lib/decorators/threadable.d.ts +0 -2
  58. package/lib/decorators/threadable.d.ts.map +0 -1
  59. package/lib/decorators/threadable.js +0 -9
  60. package/lib/events/AsyncEventDispatcher.d.ts +0 -45
  61. package/lib/events/AsyncEventDispatcher.d.ts.map +0 -1
  62. package/lib/events/AsyncEventDispatcher.js +0 -33
  63. package/lib/events/EventDispatcher.d.ts +0 -38
  64. package/lib/events/EventDispatcher.d.ts.map +0 -1
  65. package/lib/events/EventDispatcher.js +0 -29
  66. package/lib/events/EventDispatcherBase.d.ts +0 -55
  67. package/lib/events/EventDispatcherBase.d.ts.map +0 -1
  68. package/lib/events/EventDispatcherBase.js +0 -68
  69. package/lib/events/FlagDispatcher.d.ts +0 -54
  70. package/lib/events/FlagDispatcher.d.ts.map +0 -1
  71. package/lib/events/FlagDispatcher.js +0 -63
  72. package/lib/events/ValueDispatcher.d.ts +0 -81
  73. package/lib/events/ValueDispatcher.d.ts.map +0 -1
  74. package/lib/events/ValueDispatcher.js +0 -97
  75. package/lib/events/index.d.ts +0 -11
  76. package/lib/events/index.d.ts.map +0 -1
  77. package/lib/events/index.js +0 -11
  78. package/lib/exporter/Exporter.d.ts +0 -101
  79. package/lib/exporter/Exporter.d.ts.map +0 -1
  80. package/lib/exporter/Exporter.js +0 -2
  81. package/lib/exporter/FFmpegExporter.d.ts +0 -50
  82. package/lib/exporter/FFmpegExporter.d.ts.map +0 -1
  83. package/lib/exporter/FFmpegExporter.js +0 -140
  84. package/lib/exporter/ImageExporter.d.ts +0 -34
  85. package/lib/exporter/ImageExporter.d.ts.map +0 -1
  86. package/lib/exporter/ImageExporter.js +0 -80
  87. package/lib/exporter/WasmExporter.d.ts +0 -19
  88. package/lib/exporter/WasmExporter.d.ts.map +0 -1
  89. package/lib/exporter/WasmExporter.js +0 -78
  90. package/lib/exporter/download-videos.d.ts +0 -3
  91. package/lib/exporter/download-videos.d.ts.map +0 -1
  92. package/lib/exporter/download-videos.js +0 -45
  93. package/lib/exporter/index.d.ts +0 -5
  94. package/lib/exporter/index.d.ts.map +0 -1
  95. package/lib/exporter/index.js +0 -5
  96. package/lib/flow/all.d.ts +0 -18
  97. package/lib/flow/all.d.ts.map +0 -1
  98. package/lib/flow/all.js +0 -25
  99. package/lib/flow/any.d.ts +0 -18
  100. package/lib/flow/any.d.ts.map +0 -1
  101. package/lib/flow/any.js +0 -25
  102. package/lib/flow/chain.d.ts +0 -36
  103. package/lib/flow/chain.d.ts.map +0 -1
  104. package/lib/flow/chain.js +0 -46
  105. package/lib/flow/delay.d.ts +0 -29
  106. package/lib/flow/delay.d.ts.map +0 -1
  107. package/lib/flow/delay.js +0 -39
  108. package/lib/flow/every.d.ts +0 -41
  109. package/lib/flow/every.d.ts.map +0 -1
  110. package/lib/flow/every.js +0 -61
  111. package/lib/flow/index.d.ts +0 -17
  112. package/lib/flow/index.d.ts.map +0 -1
  113. package/lib/flow/index.js +0 -17
  114. package/lib/flow/join.d.ts +0 -35
  115. package/lib/flow/join.d.ts.map +0 -1
  116. package/lib/flow/join.js +0 -33
  117. package/lib/flow/loop.d.ts +0 -58
  118. package/lib/flow/loop.d.ts.map +0 -1
  119. package/lib/flow/loop.js +0 -51
  120. package/lib/flow/loopFor.d.ts +0 -25
  121. package/lib/flow/loopFor.d.ts.map +0 -1
  122. package/lib/flow/loopFor.js +0 -42
  123. package/lib/flow/names.d.ts +0 -3
  124. package/lib/flow/names.d.ts.map +0 -1
  125. package/lib/flow/names.js +0 -11
  126. package/lib/flow/run.d.ts +0 -45
  127. package/lib/flow/run.d.ts.map +0 -1
  128. package/lib/flow/run.js +0 -14
  129. package/lib/flow/scheduling.d.ts +0 -18
  130. package/lib/flow/scheduling.d.ts.map +0 -1
  131. package/lib/flow/scheduling.js +0 -33
  132. package/lib/flow/sequence.d.ts +0 -22
  133. package/lib/flow/sequence.d.ts.map +0 -1
  134. package/lib/flow/sequence.js +0 -31
  135. package/lib/index.d.ts +0 -16
  136. package/lib/index.d.ts.map +0 -1
  137. package/lib/index.js +0 -16
  138. package/lib/media/index.d.ts +0 -7
  139. package/lib/media/index.d.ts.map +0 -1
  140. package/lib/media/index.js +0 -7
  141. package/lib/media/loadImage.d.ts +0 -8
  142. package/lib/media/loadImage.d.ts.map +0 -1
  143. package/lib/media/loadImage.js +0 -29
  144. package/lib/plugin/DefaultPlugin.d.ts +0 -10
  145. package/lib/plugin/DefaultPlugin.d.ts.map +0 -1
  146. package/lib/plugin/DefaultPlugin.js +0 -17
  147. package/lib/plugin/Plugin.d.ts +0 -53
  148. package/lib/plugin/Plugin.d.ts.map +0 -1
  149. package/lib/plugin/Plugin.js +0 -2
  150. package/lib/plugin/index.d.ts +0 -3
  151. package/lib/plugin/index.d.ts.map +0 -1
  152. package/lib/plugin/index.js +0 -3
  153. package/lib/plugin/makePlugin.d.ts +0 -15
  154. package/lib/plugin/makePlugin.d.ts.map +0 -1
  155. package/lib/plugin/makePlugin.js +0 -16
  156. package/lib/scenes/GeneratorScene.d.ts +0 -95
  157. package/lib/scenes/GeneratorScene.d.ts.map +0 -1
  158. package/lib/scenes/GeneratorScene.js +0 -273
  159. package/lib/scenes/Inspectable.d.ts +0 -71
  160. package/lib/scenes/Inspectable.d.ts.map +0 -1
  161. package/lib/scenes/Inspectable.js +0 -4
  162. package/lib/scenes/LifecycleEvents.d.ts +0 -18
  163. package/lib/scenes/LifecycleEvents.d.ts.map +0 -1
  164. package/lib/scenes/LifecycleEvents.js +0 -45
  165. package/lib/scenes/Random.d.ts +0 -66
  166. package/lib/scenes/Random.d.ts.map +0 -1
  167. package/lib/scenes/Random.js +0 -101
  168. package/lib/scenes/Scene.d.ts +0 -298
  169. package/lib/scenes/Scene.d.ts.map +0 -1
  170. package/lib/scenes/Scene.js +0 -25
  171. package/lib/scenes/SceneState.d.ts +0 -34
  172. package/lib/scenes/SceneState.d.ts.map +0 -1
  173. package/lib/scenes/SceneState.js +0 -35
  174. package/lib/scenes/Shaders.d.ts +0 -63
  175. package/lib/scenes/Shaders.d.ts.map +0 -1
  176. package/lib/scenes/Shaders.js +0 -158
  177. package/lib/scenes/Slides.d.ts +0 -33
  178. package/lib/scenes/Slides.d.ts.map +0 -1
  179. package/lib/scenes/Slides.js +0 -115
  180. package/lib/scenes/Threadable.d.ts +0 -19
  181. package/lib/scenes/Threadable.d.ts.map +0 -1
  182. package/lib/scenes/Threadable.js +0 -4
  183. package/lib/scenes/Variables.d.ts +0 -24
  184. package/lib/scenes/Variables.d.ts.map +0 -1
  185. package/lib/scenes/Variables.js +0 -39
  186. package/lib/scenes/index.d.ts +0 -16
  187. package/lib/scenes/index.d.ts.map +0 -1
  188. package/lib/scenes/index.js +0 -16
  189. package/lib/signals/CompoundSignalContext.d.ts +0 -21
  190. package/lib/signals/CompoundSignalContext.d.ts.map +0 -1
  191. package/lib/signals/CompoundSignalContext.js +0 -73
  192. package/lib/signals/ComputedContext.d.ts +0 -14
  193. package/lib/signals/ComputedContext.d.ts.map +0 -1
  194. package/lib/signals/ComputedContext.js +0 -36
  195. package/lib/signals/DependencyContext.d.ts +0 -32
  196. package/lib/signals/DependencyContext.d.ts.map +0 -1
  197. package/lib/signals/DependencyContext.js +0 -87
  198. package/lib/signals/SignalContext.d.ts +0 -120
  199. package/lib/signals/SignalContext.d.ts.map +0 -1
  200. package/lib/signals/SignalContext.js +0 -245
  201. package/lib/signals/createComputed.d.ts +0 -3
  202. package/lib/signals/createComputed.d.ts.map +0 -1
  203. package/lib/signals/createComputed.js +0 -5
  204. package/lib/signals/createComputedAsync.d.ts +0 -4
  205. package/lib/signals/createComputedAsync.d.ts.map +0 -1
  206. package/lib/signals/createComputedAsync.js +0 -15
  207. package/lib/signals/createSignal.d.ts +0 -5
  208. package/lib/signals/createSignal.d.ts.map +0 -1
  209. package/lib/signals/createSignal.js +0 -6
  210. package/lib/signals/index.d.ts +0 -16
  211. package/lib/signals/index.d.ts.map +0 -1
  212. package/lib/signals/index.js +0 -16
  213. package/lib/signals/symbols.d.ts +0 -2
  214. package/lib/signals/symbols.d.ts.map +0 -1
  215. package/lib/signals/symbols.js +0 -2
  216. package/lib/signals/types.d.ts +0 -51
  217. package/lib/signals/types.d.ts.map +0 -1
  218. package/lib/signals/types.js +0 -2
  219. package/lib/signals/utils.d.ts +0 -5
  220. package/lib/signals/utils.d.ts.map +0 -1
  221. package/lib/signals/utils.js +0 -10
  222. package/lib/threading/Thread.d.ts +0 -77
  223. package/lib/threading/Thread.d.ts.map +0 -1
  224. package/lib/threading/Thread.js +0 -169
  225. package/lib/threading/ThreadGenerator.d.ts +0 -39
  226. package/lib/threading/ThreadGenerator.d.ts.map +0 -1
  227. package/lib/threading/ThreadGenerator.js +0 -17
  228. package/lib/threading/cancel.d.ts +0 -17
  229. package/lib/threading/cancel.d.ts.map +0 -1
  230. package/lib/threading/cancel.js +0 -26
  231. package/lib/threading/index.d.ts +0 -11
  232. package/lib/threading/index.d.ts.map +0 -1
  233. package/lib/threading/index.js +0 -11
  234. package/lib/threading/spawn.d.ts +0 -28
  235. package/lib/threading/spawn.d.ts.map +0 -1
  236. package/lib/threading/spawn.js +0 -30
  237. package/lib/threading/threads.d.ts +0 -46
  238. package/lib/threading/threads.d.ts.map +0 -1
  239. package/lib/threading/threads.js +0 -89
  240. package/lib/transitions/fadeTransition.d.ts +0 -8
  241. package/lib/transitions/fadeTransition.d.ts.map +0 -1
  242. package/lib/transitions/fadeTransition.js +0 -16
  243. package/lib/transitions/index.d.ts +0 -11
  244. package/lib/transitions/index.d.ts.map +0 -1
  245. package/lib/transitions/index.js +0 -11
  246. package/lib/transitions/slideTransition.d.ts +0 -18
  247. package/lib/transitions/slideTransition.d.ts.map +0 -1
  248. package/lib/transitions/slideTransition.js +0 -14
  249. package/lib/transitions/useTransition.d.ts +0 -10
  250. package/lib/transitions/useTransition.d.ts.map +0 -1
  251. package/lib/transitions/useTransition.js +0 -27
  252. package/lib/transitions/zoomInTransition.d.ts +0 -10
  253. package/lib/transitions/zoomInTransition.d.ts.map +0 -1
  254. package/lib/transitions/zoomInTransition.js +0 -33
  255. package/lib/transitions/zoomOutTransition.d.ts +0 -10
  256. package/lib/transitions/zoomOutTransition.d.ts.map +0 -1
  257. package/lib/transitions/zoomOutTransition.js +0 -33
  258. package/lib/tsconfig.build.tsbuildinfo +0 -1
  259. package/lib/tweening/helpers.d.ts +0 -5
  260. package/lib/tweening/helpers.d.ts.map +0 -1
  261. package/lib/tweening/helpers.js +0 -16
  262. package/lib/tweening/index.d.ts +0 -11
  263. package/lib/tweening/index.d.ts.map +0 -1
  264. package/lib/tweening/index.js +0 -11
  265. package/lib/tweening/interpolationFunctions.d.ts +0 -38
  266. package/lib/tweening/interpolationFunctions.d.ts.map +0 -1
  267. package/lib/tweening/interpolationFunctions.js +0 -107
  268. package/lib/tweening/spring.d.ts +0 -20
  269. package/lib/tweening/spring.d.ts.map +0 -1
  270. package/lib/tweening/spring.js +0 -103
  271. package/lib/tweening/timingFunctions.d.ts +0 -46
  272. package/lib/tweening/timingFunctions.d.ts.map +0 -1
  273. package/lib/tweening/timingFunctions.js +0 -233
  274. package/lib/tweening/tween.d.ts +0 -3
  275. package/lib/tweening/tween.d.ts.map +0 -1
  276. package/lib/tweening/tween.js +0 -21
  277. package/lib/types/BBox.d.ts +0 -73
  278. package/lib/types/BBox.d.ts.map +0 -1
  279. package/lib/types/BBox.js +0 -249
  280. package/lib/types/Canvas.d.ts +0 -3
  281. package/lib/types/Canvas.d.ts.map +0 -1
  282. package/lib/types/Canvas.js +0 -2
  283. package/lib/types/Color.d.ts +0 -65
  284. package/lib/types/Color.d.ts.map +0 -1
  285. package/lib/types/Color.js +0 -185
  286. package/lib/types/Matrix.d.ts +0 -3
  287. package/lib/types/Matrix.d.ts.map +0 -1
  288. package/lib/types/Matrix.js +0 -10
  289. package/lib/types/Matrix2D.d.ts +0 -363
  290. package/lib/types/Matrix2D.d.ts.map +0 -1
  291. package/lib/types/Matrix2D.js +0 -554
  292. package/lib/types/Origin.d.ts +0 -17
  293. package/lib/types/Origin.d.ts.map +0 -1
  294. package/lib/types/Origin.js +0 -53
  295. package/lib/types/Spacing.d.ts +0 -36
  296. package/lib/types/Spacing.d.ts.map +0 -1
  297. package/lib/types/Spacing.js +0 -70
  298. package/lib/types/Type.d.ts +0 -9
  299. package/lib/types/Type.d.ts.map +0 -1
  300. package/lib/types/Type.js +0 -5
  301. package/lib/types/Vector.d.ts +0 -203
  302. package/lib/types/Vector.d.ts.map +0 -1
  303. package/lib/types/Vector.js +0 -355
  304. package/lib/types/alignment-enums.d.ts +0 -22
  305. package/lib/types/alignment-enums.d.ts.map +0 -1
  306. package/lib/types/alignment-enums.js +0 -25
  307. package/lib/types/index.d.ts +0 -17
  308. package/lib/types/index.d.ts.map +0 -1
  309. package/lib/types/index.js +0 -17
  310. package/lib/types/vector-transformations.d.ts +0 -20
  311. package/lib/types/vector-transformations.d.ts.map +0 -1
  312. package/lib/types/vector-transformations.js +0 -31
  313. package/lib/utils/DetailedError.d.ts +0 -24
  314. package/lib/utils/DetailedError.d.ts.map +0 -1
  315. package/lib/utils/DetailedError.js +0 -16
  316. package/lib/utils/ExperimentalError.d.ts +0 -10
  317. package/lib/utils/ExperimentalError.d.ts.map +0 -1
  318. package/lib/utils/ExperimentalError.js +0 -32
  319. package/lib/utils/Semaphore.d.ts +0 -12
  320. package/lib/utils/Semaphore.d.ts.map +0 -1
  321. package/lib/utils/Semaphore.js +0 -25
  322. package/lib/utils/beginSlide.d.ts +0 -3
  323. package/lib/utils/beginSlide.d.ts.map +0 -1
  324. package/lib/utils/beginSlide.js +0 -12
  325. package/lib/utils/capitalize.d.ts +0 -2
  326. package/lib/utils/capitalize.d.ts.map +0 -1
  327. package/lib/utils/capitalize.js +0 -4
  328. package/lib/utils/createRef.d.ts +0 -15
  329. package/lib/utils/createRef.d.ts.map +0 -1
  330. package/lib/utils/createRef.js +0 -21
  331. package/lib/utils/createRefArray.d.ts +0 -27
  332. package/lib/utils/createRefArray.d.ts.map +0 -1
  333. package/lib/utils/createRefArray.js +0 -49
  334. package/lib/utils/createRefMap.d.ts +0 -50
  335. package/lib/utils/createRefMap.d.ts.map +0 -1
  336. package/lib/utils/createRefMap.js +0 -77
  337. package/lib/utils/debug.d.ts +0 -24
  338. package/lib/utils/debug.d.ts.map +0 -1
  339. package/lib/utils/debug.js +0 -47
  340. package/lib/utils/deprecate.d.ts +0 -9
  341. package/lib/utils/deprecate.d.ts.map +0 -1
  342. package/lib/utils/deprecate.js +0 -15
  343. package/lib/utils/errorToLog.d.ts +0 -3
  344. package/lib/utils/errorToLog.d.ts.map +0 -1
  345. package/lib/utils/errorToLog.js +0 -8
  346. package/lib/utils/experimentalLog.d.ts +0 -3
  347. package/lib/utils/experimentalLog.d.ts.map +0 -1
  348. package/lib/utils/experimentalLog.js +0 -10
  349. package/lib/utils/getContext.d.ts +0 -2
  350. package/lib/utils/getContext.d.ts.map +0 -1
  351. package/lib/utils/getContext.js +0 -8
  352. package/lib/utils/index.d.ts +0 -26
  353. package/lib/utils/index.d.ts.map +0 -1
  354. package/lib/utils/index.js +0 -26
  355. package/lib/utils/math.d.ts +0 -15
  356. package/lib/utils/math.d.ts.map +0 -1
  357. package/lib/utils/math.js +0 -15
  358. package/lib/utils/range.d.ts +0 -40
  359. package/lib/utils/range.d.ts.map +0 -1
  360. package/lib/utils/range.js +0 -18
  361. package/lib/utils/useContext.d.ts +0 -13
  362. package/lib/utils/useContext.d.ts.map +0 -1
  363. package/lib/utils/useContext.js +0 -18
  364. package/lib/utils/usePlayback.d.ts +0 -8
  365. package/lib/utils/usePlayback.d.ts.map +0 -1
  366. package/lib/utils/usePlayback.js +0 -20
  367. package/lib/utils/useScene.d.ts +0 -17
  368. package/lib/utils/useScene.d.ts.map +0 -1
  369. package/lib/utils/useScene.js +0 -33
  370. package/lib/utils/useThread.d.ts +0 -8
  371. package/lib/utils/useThread.d.ts.map +0 -1
  372. package/lib/utils/useThread.js +0 -24
  373. package/lib/utils/useTime.d.ts +0 -19
  374. package/lib/utils/useTime.d.ts.map +0 -1
  375. package/lib/utils/useTime.js +0 -22
  376. package/project.d.ts +0 -24
@@ -1,97 +0,0 @@
1
- import { EventDispatcherBase, Subscribable } from './EventDispatcherBase';
2
- /**
3
- * Dispatches a {@link SubscribableValueEvent}
4
- *
5
- * @remarks
6
- * Changing the value stored by a value dispatcher will immediately notify all
7
- * its subscribers.
8
- *
9
- * @example
10
- * ```ts
11
- * class Example {
12
- * // expose the event to external classes
13
- * public get onValueChanged {
14
- * return this.value.subscribable;
15
- * }
16
- * // create a private dispatcher
17
- * private value = new ValueDispatcher(0);
18
- *
19
- * private changingValueExample() {
20
- * // changing the value will notify all subscribers.
21
- * this.value.current = 7;
22
- * }
23
- * }
24
- * ```
25
- *
26
- * @typeParam T - The type of the value passed to subscribers.
27
- */
28
- export class ValueDispatcher extends EventDispatcherBase {
29
- /**
30
- * {@inheritDoc SubscribableValueEvent.current}
31
- */
32
- get current() {
33
- return this.value;
34
- }
35
- /**
36
- * Set the current value of this dispatcher.
37
- *
38
- * @remarks
39
- * Setting the value will immediately notify all subscribers.
40
- *
41
- * @param value - The new value.
42
- */
43
- set current(value) {
44
- this.value = value;
45
- this.notifySubscribers(value);
46
- }
47
- /**
48
- * @param value - The initial value.
49
- */
50
- constructor(value) {
51
- super();
52
- this.value = value;
53
- this.subscribable = new SubscribableValueEvent(this);
54
- }
55
- /**
56
- * {@inheritDoc SubscribableValueEvent.subscribe}
57
- */
58
- subscribe(handler, dispatchImmediately = true) {
59
- const unsubscribe = super.subscribe(handler);
60
- if (dispatchImmediately) {
61
- handler(this.value);
62
- }
63
- return unsubscribe;
64
- }
65
- }
66
- /**
67
- * Provides safe access to the public interface of {@link ValueDispatcher}.
68
- *
69
- * @remarks
70
- * External classes can use it to subscribe to an event without being able to
71
- * dispatch it.
72
- *
73
- * @typeParam T - The type of the value passed to subscribers.
74
- */
75
- export class SubscribableValueEvent extends Subscribable {
76
- /**
77
- * Get the most recent value of this dispatcher.
78
- */
79
- get current() {
80
- return this.dispatcher.current;
81
- }
82
- /**
83
- * Subscribe to the event.
84
- *
85
- * Subscribing will immediately invoke the handler with the most recent value.
86
- *
87
- * @param handler - The handler to invoke when the event occurs.
88
- * @param dispatchImmediately - Whether the handler should be immediately
89
- * invoked with the most recent value.
90
- *
91
- * @returns Callback function that cancels the subscription.
92
- */
93
- subscribe(handler, dispatchImmediately = true) {
94
- return this.dispatcher.subscribe(handler, dispatchImmediately);
95
- }
96
- }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVEaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50cy9WYWx1ZURpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxPQUFPLGVBQW1CLFNBQVEsbUJBQXNCO0lBSTVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsT0FBTyxDQUFDLEtBQVE7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQTJCLEtBQVE7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFEaUIsVUFBSyxHQUFMLEtBQUssQ0FBRztRQTFCbkIsaUJBQVksR0FDMUIsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQTJCbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLE9BQXdCLEVBQUUsbUJBQW1CLEdBQUcsSUFBSTtRQUNuRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxZQUc5QztJQUNDOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQTRCLElBQUksQ0FBQyxVQUFXLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLE9BQXdCLEVBQ3hCLG1CQUFtQixHQUFHLElBQUk7UUFFMUIsT0FBNEIsSUFBSSxDQUFDLFVBQVcsQ0FBQyxTQUFTLENBQ3BELE9BQU8sRUFDUCxtQkFBbUIsQ0FDcEIsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -1,11 +0,0 @@
1
- /**
2
- * Subscriptions and triggering of events.
3
- *
4
- * @packageDocumentation
5
- */
6
- export * from './AsyncEventDispatcher';
7
- export * from './EventDispatcher';
8
- export * from './EventDispatcherBase';
9
- export * from './FlagDispatcher';
10
- export * from './ValueDispatcher';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Subscriptions and triggering of events.
3
- *
4
- * @packageDocumentation
5
- */
6
- export * from './AsyncEventDispatcher';
7
- export * from './EventDispatcher';
8
- export * from './EventDispatcherBase';
9
- export * from './FlagDispatcher';
10
- export * from './ValueDispatcher';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUMifQ==
@@ -1,101 +0,0 @@
1
- import type { Project } from '../app/Project';
2
- import type { AssetInfo, RendererResult, RendererSettings } from '../app/Renderer';
3
- /**
4
- * The static interface for exporters.
5
- */
6
- export interface ExporterClass {
7
- /**
8
- * The unique identifier of this exporter.
9
- *
10
- * @remarks
11
- * This identifier will be used to store the settings of this exporter.
12
- * It's recommended to prepend it with the name of the package to avoid
13
- * collisions.
14
- */
15
- readonly id: string;
16
- /**
17
- * The name of this exporter.
18
- *
19
- * @remarks
20
- * This name will be displayed in the editor.
21
- */
22
- readonly displayName: string;
23
- /**
24
- * Create an instance of this exporter.
25
- *
26
- * @remarks
27
- * A new exporter is created whenever the user starts a new rendering process.
28
- *
29
- * @param project - The current project.
30
- * @param settings - The rendering settings.
31
- */
32
- create(project: Project, settings: RendererSettings): Promise<Exporter>;
33
- }
34
- /**
35
- * The main interface for implementing custom exporters.
36
- */
37
- export interface Exporter {
38
- /**
39
- * Prepare the rendering configuration.
40
- *
41
- * @remarks
42
- * Called at the beginning of the rendering process, before anything else has
43
- * been set up. The returned value can be used to override the rendering
44
- * settings provided by the user.
45
- */
46
- configuration?(): Promise<RendererSettings | void>;
47
- /**
48
- * Begin the rendering process.
49
- *
50
- * @remarks
51
- * Called after the rendering has been set up, right before the first frame
52
- * is rendered. Once `start()` is called, it is guaranteed that the `stop()`
53
- * method will be called as well. Can be used to initialize any resources that
54
- * require a clean-up.
55
- */
56
- start?(): Promise<void>;
57
- /**
58
- * Export a frame.
59
- *
60
- * @remarks
61
- * Called each time after a frame is rendered.
62
- *
63
- * @param canvas - A canvas containing the rendered frame.
64
- * @param frame - The frame number.
65
- * @param sceneFrame - The frame number within the scene.
66
- * @param sceneName - The name of the scene with which the frame is associated.
67
- * @param signal - An abort signal triggered if the user aborts the rendering.
68
- */
69
- handleFrame(canvas: HTMLCanvasElement, frame: number, sceneFrame: number, sceneName: string, signal: AbortSignal): Promise<void>;
70
- /**
71
- * after processing the image stream and generating an audio file, merge the video and audio stream as the final video
72
- */
73
- mergeMedia?(): Promise<void>;
74
- /**
75
- * Take in media assets per frame and generate audio track for the video.
76
- */
77
- generateAudio?(assetsInfo: AssetInfo[][], startFrame: number, endFrame: number): Promise<void>;
78
- /**
79
- * Download all assets necessary for the export process
80
- */
81
- downloadVideos?(assetsInfo: AssetInfo[][]): Promise<void>;
82
- /**
83
- * Finish the rendering process.
84
- *
85
- * @remarks
86
- * Called after rendering the visual elements has finished and audio so that audio track can be merged.
87
- *
88
- * @param result - The result of the rendering.
89
- */
90
- stop?(result: RendererResult): Promise<void>;
91
- /**
92
- * Finish the rendering process.
93
- *
94
- * @remarks
95
- * Guaranteed to be called after the rendering has finished - no matter the
96
- * result. Performs clean-up.
97
- *
98
- */
99
- kill?(): Promise<void>;
100
- }
101
- //# sourceMappingURL=Exporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Exporter.d.ts","sourceRoot":"","sources":["../../src/exporter/Exporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;OAEG;IACH,aAAa,CAAC,CACZ,UAAU,EAAE,SAAS,EAAE,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,cAAc,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwb3J0ZXIvRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,50 +0,0 @@
1
- import type { Project } from '../app/Project';
2
- import type { AssetInfo, RendererResult, RendererSettings } from '../app/Renderer';
3
- import type { Exporter } from './Exporter';
4
- export interface FfmpegExporterOptions {
5
- format: 'mp4' | 'webm' | 'proRes';
6
- }
7
- /**
8
- * FFmpeg video exporter.
9
- *
10
- * @remarks
11
- * Most of the export logic is handled on the server. This class communicates
12
- * with the FFmpegBridge through a WebSocket connection which lets it invoke
13
- * methods on the FFmpegExporterServer class.
14
- *
15
- * For example, calling the following method:
16
- * ```ts
17
- * async this.invoke('process', 7);
18
- * ```
19
- * Will invoke the `process` method on the FFmpegExporterServer class with `7`
20
- * as the argument. The result of the method will be returned as a Promise.
21
- *
22
- * Before any methods can be invoked, the FFmpegExporterServer class must be
23
- * initialized by invoking `start`.
24
- */
25
- export declare class FFmpegExporterClient implements Exporter {
26
- static readonly id = "@twick/core/ffmpeg";
27
- static readonly displayName = "Video (FFmpeg)";
28
- private readonly settings;
29
- private readonly exporterOptions;
30
- static create(_: Project, settings: RendererSettings): Promise<FFmpegExporterClient>;
31
- private static readonly response;
32
- constructor(settings: RendererSettings);
33
- start(): Promise<void>;
34
- handleFrame(canvas: HTMLCanvasElement): Promise<void>;
35
- private blobToDataUrl;
36
- stop(result: RendererResult): Promise<void>;
37
- kill(): Promise<void>;
38
- downloadVideos(assets: AssetInfo[][]): Promise<void>;
39
- generateAudio(assets: AssetInfo[][], startFrame: number, endFrame: number): Promise<void>;
40
- mergeMedia(): Promise<void>;
41
- /**
42
- * Remotely invoke a method on the server and wait for a response.
43
- *
44
- * @param method - The method name to execute on the server.
45
- * @param data - The data that will be passed as an argument to the method.
46
- * Should be serializable.
47
- */
48
- private invoke;
49
- }
50
- //# sourceMappingURL=FFmpegExporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FFmpegExporter.d.ts","sourceRoot":"","sources":["../../src/exporter/FFmpegExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAezC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,gBAAuB,EAAE,wBAAwB;IACjD,gBAAuB,WAAW,oBAAoB;IAEtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;WAEpC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB;IAIjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyC;gBAWtD,QAAQ,EAAE,gBAAgB;IAQhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAepD,aAAa;IASd,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,aAAa,CACxB,MAAM,EAAE,SAAS,EAAE,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAaH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAexC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CA6Bf"}
@@ -1,140 +0,0 @@
1
- var _a;
2
- import { EventDispatcher } from '../events';
3
- import { download } from './download-videos';
4
- /**
5
- * FFmpeg video exporter.
6
- *
7
- * @remarks
8
- * Most of the export logic is handled on the server. This class communicates
9
- * with the FFmpegBridge through a WebSocket connection which lets it invoke
10
- * methods on the FFmpegExporterServer class.
11
- *
12
- * For example, calling the following method:
13
- * ```ts
14
- * async this.invoke('process', 7);
15
- * ```
16
- * Will invoke the `process` method on the FFmpegExporterServer class with `7`
17
- * as the argument. The result of the method will be returned as a Promise.
18
- *
19
- * Before any methods can be invoked, the FFmpegExporterServer class must be
20
- * initialized by invoking `start`.
21
- */
22
- export class FFmpegExporterClient {
23
- static async create(_, settings) {
24
- return new _a(settings);
25
- }
26
- constructor(settings) {
27
- if (settings.exporter.name !== _a.id) {
28
- throw new Error('Invalid exporter');
29
- }
30
- this.settings = settings;
31
- this.exporterOptions = settings.exporter.options;
32
- }
33
- async start() {
34
- await this.invoke('start', this.settings);
35
- }
36
- async handleFrame(canvas) {
37
- const blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));
38
- if (!blob) {
39
- throw Error('Failed to convert canvas to Blob.');
40
- }
41
- const dataUrl = await this.blobToDataUrl(blob);
42
- await this.invoke('handleFrame', {
43
- data: dataUrl,
44
- });
45
- }
46
- async blobToDataUrl(blob) {
47
- return new Promise((resolve, reject) => {
48
- const reader = new FileReader();
49
- reader.onloadend = () => resolve(reader.result);
50
- reader.onerror = reject;
51
- reader.readAsDataURL(blob);
52
- });
53
- }
54
- async stop(result) {
55
- await this.invoke('end', result);
56
- await fetch('/twick-ffmpeg-decoder/finished', {
57
- method: 'POST',
58
- headers: {
59
- // eslint-disable-next-line
60
- 'Content-Type': 'application/json',
61
- },
62
- body: JSON.stringify({}),
63
- });
64
- }
65
- async kill() {
66
- await this.invoke('kill', {});
67
- }
68
- async downloadVideos(assets) {
69
- await download(assets);
70
- }
71
- async generateAudio(assets, startFrame, endFrame) {
72
- await fetch('/audio-processing/generate-audio', {
73
- method: 'POST',
74
- body: JSON.stringify({
75
- tempDir: `twick-${this.settings.name}-${this.settings.hiddenFolderId}`,
76
- assets,
77
- startFrame,
78
- endFrame,
79
- fps: this.settings.fps,
80
- }),
81
- });
82
- }
83
- async mergeMedia() {
84
- const outputFilename = this.settings.name;
85
- const tempDir = `twick-${this.settings.name}-${this.settings.hiddenFolderId}`;
86
- const format = this.exporterOptions.format;
87
- await fetch('/audio-processing/merge-media', {
88
- method: 'POST',
89
- body: JSON.stringify({
90
- outputFilename,
91
- tempDir,
92
- format,
93
- }),
94
- });
95
- }
96
- /**
97
- * Remotely invoke a method on the server and wait for a response.
98
- *
99
- * @param method - The method name to execute on the server.
100
- * @param data - The data that will be passed as an argument to the method.
101
- * Should be serializable.
102
- */
103
- invoke(method, data) {
104
- if (import.meta.hot) {
105
- return new Promise((resolve, reject) => {
106
- const handle = (response) => {
107
- if (response.method !== method) {
108
- return;
109
- }
110
- _a.response.unsubscribe(handle);
111
- if (response.status === 'success') {
112
- resolve(response.data);
113
- }
114
- else {
115
- reject({
116
- message: `An error occurred while exporting the video: ${response.message}`,
117
- remarks: `Method: ${method}<br>Server error: ${response.message}`,
118
- object: data,
119
- });
120
- }
121
- };
122
- _a.response.subscribe(handle);
123
- import.meta.hot.send('twick:ffmpeg-exporter', { method, data });
124
- });
125
- }
126
- else {
127
- throw new Error('FFmpegExporter can only be used locally.');
128
- }
129
- }
130
- }
131
- _a = FFmpegExporterClient;
132
- FFmpegExporterClient.id = '@twick/core/ffmpeg';
133
- FFmpegExporterClient.displayName = 'Video (FFmpeg)';
134
- FFmpegExporterClient.response = new EventDispatcher();
135
- (() => {
136
- if (import.meta.hot) {
137
- import.meta.hot.on(`twick:ffmpeg-exporter-ack`, (response) => _a.response.dispatch(response));
138
- }
139
- })();
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRkZtcGVnRXhwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwb3J0ZXIvRkZtcGVnRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBa0IzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBT3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQVUsRUFBRSxRQUEwQjtRQUMvRCxPQUFPLElBQUksRUFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBYUQsWUFBbUIsUUFBMEI7UUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFvQixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUNuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBeUI7UUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBYyxPQUFPLENBQUMsRUFBRSxDQUNwRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sS0FBSyxDQUFD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
@@ -1,34 +0,0 @@
1
- import type { Logger } from '../app/Logger';
2
- import type { Project } from '../app/Project';
3
- import type { AssetInfo, RendererSettings } from '../app/Renderer';
4
- import type { CanvasOutputMimeType } from '../types';
5
- import type { Exporter } from './Exporter';
6
- export interface ImageExporterOptions {
7
- quality: number;
8
- fileType: CanvasOutputMimeType;
9
- groupByScene: boolean;
10
- }
11
- /**
12
- * Image sequence exporter.
13
- *
14
- * @internal
15
- */
16
- export declare class ImageExporter implements Exporter {
17
- private readonly logger;
18
- static readonly id = "@twick/core/image-sequence";
19
- static readonly displayName = "Image sequence";
20
- static create(project: Project, settings: RendererSettings): Promise<ImageExporter>;
21
- private static readonly response;
22
- private readonly frameLookup;
23
- private readonly projectName;
24
- private readonly quality;
25
- private readonly fileType;
26
- private readonly groupByScene;
27
- constructor(logger: Logger, settings: RendererSettings);
28
- start(): Promise<void>;
29
- handleFrame(canvas: HTMLCanvasElement, frame: number, sceneFrame: number, sceneName: string, signal: AbortSignal): Promise<void>;
30
- downloadVideos(assets: AssetInfo[][]): Promise<void>;
31
- stop(): Promise<void>;
32
- private handleResponse;
33
- }
34
- //# sourceMappingURL=ImageExporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageExporter.d.ts","sourceRoot":"","sources":["../../src/exporter/ImageExporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAGjE,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAMzC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AAMD;;;;GAIG;AACH,qBAAa,aAAc,YAAW,QAAQ;IA4B1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IA3BzB,gBAAuB,EAAE,gCAAgC;IACzD,gBAAuB,WAAW,oBAAoB;WAElC,MAAM,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,aAAa,CAAC;IAIzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAUzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAGpB,MAAM,EAAE,MAAM,EAC/B,QAAQ,EAAE,gBAAgB;IAef,KAAK;IAIL,WAAW,CACtB,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW;IA4BR,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,IAAI;IAOjB,OAAO,CAAC,cAAc,CAEpB;CACH"}
@@ -1,80 +0,0 @@
1
- var _a;
2
- import { EventDispatcher } from '../events';
3
- import { clamp } from '../tweening';
4
- import { download } from './download-videos';
5
- const EXPORT_FRAME_LIMIT = 256;
6
- const EXPORT_RETRY_DELAY = 1000;
7
- /**
8
- * Image sequence exporter.
9
- *
10
- * @internal
11
- */
12
- export class ImageExporter {
13
- static async create(project, settings) {
14
- return new _a(project.logger, settings);
15
- }
16
- constructor(logger, settings) {
17
- this.logger = logger;
18
- this.frameLookup = new Set();
19
- this.handleResponse = ({ frame }) => {
20
- this.frameLookup.delete(frame);
21
- };
22
- if (settings.exporter.name !== _a.id) {
23
- throw new Error(`Invalid exporter name: ${settings.exporter.name}. Expected: ${_a.id}`);
24
- }
25
- const options = settings.exporter.options;
26
- this.projectName = settings.name;
27
- this.quality = clamp(0, 1, options.quality / 100);
28
- this.fileType = options.fileType;
29
- this.groupByScene = options.groupByScene;
30
- }
31
- async start() {
32
- _a.response.subscribe(this.handleResponse);
33
- }
34
- async handleFrame(canvas, frame, sceneFrame, sceneName, signal) {
35
- if (this.frameLookup.has(frame)) {
36
- this.logger.warn(`Frame no. ${frame} is already being exported.`);
37
- return;
38
- }
39
- if (import.meta.hot) {
40
- while (this.frameLookup.size > EXPORT_FRAME_LIMIT) {
41
- await new Promise(resolve => setTimeout(resolve, EXPORT_RETRY_DELAY));
42
- if (signal.aborted) {
43
- return;
44
- }
45
- }
46
- this.frameLookup.add(frame);
47
- import.meta.hot.send('twick:export', {
48
- frame,
49
- sceneFrame,
50
- data: canvas.toDataURL(this.fileType, this.quality),
51
- mimeType: this.fileType,
52
- subDirectories: this.groupByScene
53
- ? [this.projectName, sceneName]
54
- : [this.projectName],
55
- groupByScene: this.groupByScene,
56
- });
57
- }
58
- }
59
- async downloadVideos(assets) {
60
- await download(assets);
61
- }
62
- async stop() {
63
- while (this.frameLookup.size > 0) {
64
- await new Promise(resolve => setTimeout(resolve, EXPORT_RETRY_DELAY));
65
- }
66
- _a.response.unsubscribe(this.handleResponse);
67
- }
68
- }
69
- _a = ImageExporter;
70
- ImageExporter.id = '@twick/core/image-sequence';
71
- ImageExporter.displayName = 'Image sequence';
72
- ImageExporter.response = new EventDispatcher();
73
- (() => {
74
- if (import.meta.hot) {
75
- import.meta.hot.on('twick:export-ack', response => {
76
- _a.response.dispatch(response);
77
- });
78
- }
79
- })();
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VFeHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRlci9JbWFnZUV4cG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHbEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBWWhDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUlqQixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDeEIsT0FBZ0IsRUFDaEIsUUFBMEI7UUFFMUIsT0FBTyxJQUFJLEVBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFrQkQsWUFDbUIsTUFBYyxFQUMvQixRQUEwQjtRQURULFdBQU0sR0FBTixNQUFNLENBQVE7UUFQaEIsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBdUV6QyxtQkFBYyxHQUFHLENBQUMsRUFBQyxLQUFLLEVBQWlCLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUEvREEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxFQUFhLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FDYiwwQkFBMEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWUsRUFBYSxDQUFDLEVBQUUsRUFBRSxDQUNsRixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBK0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLEVBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FDdEIsTUFBeUIsRUFDekIsS0FBYSxFQUNiLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLE1BQW1CO1FBRW5CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssNkJBQTZCLENBQUMsQ0FBQztZQUNsRSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2xELE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ25CLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNwQyxLQUFLO2dCQUNMLFVBQVU7Z0JBQ1YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWTtvQkFDL0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7b0JBQy9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3RCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBcUI7UUFDL0MsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUNELEVBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7QUF6RnNCLGdCQUFFLEdBQUcsNEJBQTRCLEFBQS9CLENBQWdDO0FBQ2xDLHlCQUFXLEdBQUcsZ0JBQWdCLEFBQW5CLENBQW9CO0FBUzlCLHNCQUFRLEdBQUcsSUFBSSxlQUFlLEVBQWtCLEFBQXhDLENBQXlDO0FBRXpFO0lBQ0UsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNoRCxHQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxHQUFBLENBQUEifQ==
@@ -1,19 +0,0 @@
1
- import type { Project } from '../app/Project';
2
- import type { AssetInfo, RendererSettings } from '../app/Renderer';
3
- import type { Exporter } from './Exporter';
4
- export declare class WasmExporter implements Exporter {
5
- private readonly project;
6
- private readonly settings;
7
- static readonly id = "@twick/core/wasm";
8
- static readonly displayName = "Video (Wasm)";
9
- static create(project: Project, settings: RendererSettings): Promise<WasmExporter>;
10
- constructor(project: Project, settings: RendererSettings);
11
- start(): Promise<void>;
12
- private encoder;
13
- handleFrame(canvas: HTMLCanvasElement): Promise<void>;
14
- stop(): Promise<void>;
15
- generateAudio(assets: AssetInfo[][], startFrame: number, endFrame: number): Promise<void>;
16
- mergeMedia(): Promise<void>;
17
- downloadVideos(assets: AssetInfo[][]): Promise<void>;
18
- }
19
- //# sourceMappingURL=WasmExporter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WasmExporter.d.ts","sourceRoot":"","sources":["../../src/exporter/WasmExporter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAGzC,qBAAa,YAAa,YAAW,QAAQ;IASzC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,gBAAuB,EAAE,sBAAsB;IAC/C,gBAAuB,WAAW,kBAAkB;WAEhC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB;gBAKpD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB;IAGhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAenC,OAAO,CAAC,OAAO,CAAM;IAER,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,aAAa,CACxB,MAAM,EAAE,SAAS,EAAE,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlE"}