@codingfactory/mediables-vue 2.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.
Files changed (367) hide show
  1. package/dist/PixiFrameExporter-BTU38EVl.cjs +2 -0
  2. package/dist/PixiFrameExporter-BTU38EVl.cjs.map +1 -0
  3. package/dist/PixiFrameExporter-Bb3QNWP-.js +199 -0
  4. package/dist/PixiFrameExporter-Bb3QNWP-.js.map +1 -0
  5. package/dist/adapters/MediablesAdapter.d.ts +19 -0
  6. package/dist/adapters/SpatieAdapter.d.ts +18 -0
  7. package/dist/adapters/index.d.ts +18 -0
  8. package/dist/components/AdminMediaBrowser.vue.d.ts +11 -0
  9. package/dist/components/AdminMediaBrowserExample.vue.d.ts +2 -0
  10. package/dist/components/AdminMediaBulkActionsToolbar.vue.d.ts +2 -0
  11. package/dist/components/AdminMediaGrid.vue.d.ts +17 -0
  12. package/dist/components/AdminMediaListItem.vue.d.ts +10 -0
  13. package/dist/components/AdminMediaManager.vue.d.ts +25 -0
  14. package/dist/components/AdminMediaUploader.vue.d.ts +11 -0
  15. package/dist/components/AlbumBrowser.vue.d.ts +17 -0
  16. package/dist/components/AlbumManager.vue.d.ts +16 -0
  17. package/dist/components/AlbumMediaGrid.vue.d.ts +28 -0
  18. package/dist/components/AlbumTree.vue.d.ts +35 -0
  19. package/dist/components/BulkActionsToolbar.vue.d.ts +2 -0
  20. package/dist/components/ConversionProgressIndicator.vue.d.ts +2 -0
  21. package/dist/components/Editor.vue.d.ts +29 -0
  22. package/dist/components/ExampleGridAndList.vue.d.ts +2 -0
  23. package/dist/components/ExampleUsage.vue.d.ts +2 -0
  24. package/dist/components/Grid.vue.d.ts +2 -0
  25. package/dist/components/ImageEditor/ImageEditor.vue.d.ts +3 -0
  26. package/dist/components/ImageEditorModal.vue.d.ts +16 -0
  27. package/dist/components/ImagePicker.vue.d.ts +32 -0
  28. package/dist/components/ImageUploadZone.vue.d.ts +7 -0
  29. package/dist/components/Item.vue.d.ts +2 -0
  30. package/dist/components/Library.vue.d.ts +2 -0
  31. package/dist/components/ManagedMediaGallery.vue.d.ts +12 -0
  32. package/dist/components/MediaAttacher.vue.d.ts +21 -0
  33. package/dist/components/MediaBrowser.vue.d.ts +2 -0
  34. package/dist/components/MediaCard.vue.d.ts +2 -0
  35. package/dist/components/MediaFilters.vue.d.ts +2 -0
  36. package/dist/components/MediaGrid.vue.d.ts +31 -0
  37. package/dist/components/MediaInfoEditor.vue.d.ts +7 -0
  38. package/dist/components/MediaManager.vue.d.ts +2 -0
  39. package/dist/components/MediaUploadWithProgress.vue.d.ts +2 -0
  40. package/dist/components/MediaUploader.vue.d.ts +2 -0
  41. package/dist/components/MediaWorkspace.vue.d.ts +19 -0
  42. package/dist/components/Modal.vue.d.ts +2 -0
  43. package/dist/components/ModelMediaManager.vue.d.ts +80 -0
  44. package/dist/components/Pagination.vue.d.ts +2 -0
  45. package/dist/components/Search.vue.d.ts +2 -0
  46. package/dist/components/VideoEditorSimple.vue.d.ts +2 -0
  47. package/dist/components/VideoExportPanel.vue.d.ts +2 -0
  48. package/dist/components/VideoTimeline.vue.d.ts +2 -0
  49. package/dist/components/VideoTimelineSimple.vue.d.ts +2 -0
  50. package/dist/components/VideoToolsPanel.vue.d.ts +2 -0
  51. package/dist/components/albums/AlbumTreeNode.vue.d.ts +23 -0
  52. package/dist/components/attachment/MediaAttachment.vue.d.ts +23 -0
  53. package/dist/components/attachment/index.d.ts +4 -0
  54. package/dist/components/collection/MediaCollection.vue.d.ts +27 -0
  55. package/dist/components/collection/MediaCollectionDropzone.vue.d.ts +18 -0
  56. package/dist/components/collection/MediaCollectionItem.vue.d.ts +2 -0
  57. package/dist/components/collection/index.d.ts +6 -0
  58. package/dist/components/form/MediaHiddenFields.vue.d.ts +2 -0
  59. package/dist/components/form/index.d.ts +4 -0
  60. package/dist/components/image/ImageEditor.vue.d.ts +2 -0
  61. package/dist/components/image/ImageItem.vue.d.ts +2 -0
  62. package/dist/components/renderless/MediaAttachmentProvider.vue.d.ts +12 -0
  63. package/dist/components/renderless/MediaCollectionProvider.vue.d.ts +12 -0
  64. package/dist/components/renderless/index.d.ts +7 -0
  65. package/dist/components/timeline/TimeRuler.vue.d.ts +2 -0
  66. package/dist/components/timeline/VideoTrack.vue.d.ts +2 -0
  67. package/dist/components/tools/VideoFiltersPanel.vue.d.ts +7 -0
  68. package/dist/components/tools/VideoTextPanel.vue.d.ts +2 -0
  69. package/dist/components/video/AudioTrackManager.vue.d.ts +2 -0
  70. package/dist/components/video/EditorControls.vue.d.ts +2 -0
  71. package/dist/components/video/ExportPanel.vue.d.ts +2 -0
  72. package/dist/components/video/FilterSelector.vue.d.ts +2 -0
  73. package/dist/components/video/LiveStreamManager.vue.d.ts +2 -0
  74. package/dist/components/video/StreamCredentials.vue.d.ts +2 -0
  75. package/dist/components/video/StreamStatus.vue.d.ts +2 -0
  76. package/dist/components/video/TextOverlayPanel.vue.d.ts +2 -0
  77. package/dist/components/video/ThumbnailPicker.vue.d.ts +2 -0
  78. package/dist/components/video/TimelineClip.vue.d.ts +2 -0
  79. package/dist/components/video/TimelineControls.vue.d.ts +2 -0
  80. package/dist/components/video/TransitionSelector.vue.d.ts +2 -0
  81. package/dist/components/video/VideoControls.vue.d.ts +2 -0
  82. package/dist/components/video/VideoEditor.vue.d.ts +8 -0
  83. package/dist/components/video/VideoEditorDialog.vue.d.ts +12 -0
  84. package/dist/components/video/VideoFilterCarousel.vue.d.ts +2 -0
  85. package/dist/components/video/VideoFilterPreview.vue.d.ts +18 -0
  86. package/dist/components/video/VideoPlayer.vue.d.ts +2 -0
  87. package/dist/components/video/VideoPreview.vue.d.ts +3 -0
  88. package/dist/components/video/VideoPreviewCSS.vue.d.ts +2 -0
  89. package/dist/components/video/VideoPreviewEngine.vue.d.ts +3 -0
  90. package/dist/components/video/VideoTimeline.vue.d.ts +2 -0
  91. package/dist/components/video/VideoUploadProgress.vue.d.ts +2 -0
  92. package/dist/components/video/VideoUploader.vue.d.ts +29 -0
  93. package/dist/components/video/index.d.ts +19 -0
  94. package/dist/composables/useAccordion.d.ts +138 -0
  95. package/dist/composables/useAlbumDragDrop.d.ts +24 -0
  96. package/dist/composables/useAlbums.d.ts +17 -0
  97. package/dist/composables/useFloatingPills.d.ts +111 -0
  98. package/dist/composables/useHaptic.d.ts +10 -0
  99. package/dist/composables/useImageEditorModal.d.ts +277 -0
  100. package/dist/composables/useLiveStream.d.ts +66 -0
  101. package/dist/composables/useMediaAttachment.d.ts +105 -0
  102. package/dist/composables/useMediaCollection.d.ts +122 -0
  103. package/dist/composables/useMediaConversionProgress.d.ts +31 -0
  104. package/dist/composables/useMediaDragSort.d.ts +56 -0
  105. package/dist/composables/useMediaSelection.d.ts +27 -0
  106. package/dist/composables/useMediaUploadQueue.d.ts +61 -0
  107. package/dist/composables/useMediaValidation.d.ts +59 -0
  108. package/dist/composables/useRadialMenu.d.ts +116 -0
  109. package/dist/composables/useSanctumClient.d.ts +31 -0
  110. package/dist/composables/useTheme.d.ts +7 -0
  111. package/dist/composables/useToast.d.ts +25 -0
  112. package/dist/composables/useVideoEditor.d.ts +127 -0
  113. package/dist/composables/useVideoFilters.d.ts +176 -0
  114. package/dist/composables/useVideoPlayer.d.ts +50 -0
  115. package/dist/composables/useVideoUpload.d.ts +134 -0
  116. package/dist/filters/controlMapping.d.ts +31 -0
  117. package/dist/filters/css-registry.d.ts +83 -0
  118. package/dist/filters/definitions/adjustment.d.ts +2 -0
  119. package/dist/filters/definitions/adjustmentAdvanced.d.ts +2 -0
  120. package/dist/filters/definitions/advancedBloom.d.ts +2 -0
  121. package/dist/filters/definitions/alpha.d.ts +2 -0
  122. package/dist/filters/definitions/ascii.d.ts +2 -0
  123. package/dist/filters/definitions/backdropBlur.d.ts +2 -0
  124. package/dist/filters/definitions/bevel.d.ts +2 -0
  125. package/dist/filters/definitions/bloom.d.ts +2 -0
  126. package/dist/filters/definitions/blur.d.ts +2 -0
  127. package/dist/filters/definitions/bulgePinch.d.ts +2 -0
  128. package/dist/filters/definitions/colorGradient.d.ts +2 -0
  129. package/dist/filters/definitions/colorMap.d.ts +2 -0
  130. package/dist/filters/definitions/colorMatrix.d.ts +2 -0
  131. package/dist/filters/definitions/colorOverlay.d.ts +2 -0
  132. package/dist/filters/definitions/colorReplace.d.ts +2 -0
  133. package/dist/filters/definitions/convolution.d.ts +2 -0
  134. package/dist/filters/definitions/crossHatch.d.ts +2 -0
  135. package/dist/filters/definitions/crt.d.ts +2 -0
  136. package/dist/filters/definitions/displacement.d.ts +2 -0
  137. package/dist/filters/definitions/dot.d.ts +2 -0
  138. package/dist/filters/definitions/dropShadow.d.ts +2 -0
  139. package/dist/filters/definitions/emboss.d.ts +2 -0
  140. package/dist/filters/definitions/glitch.d.ts +2 -0
  141. package/dist/filters/definitions/glow.d.ts +2 -0
  142. package/dist/filters/definitions/godray.d.ts +2 -0
  143. package/dist/filters/definitions/grayscale.d.ts +2 -0
  144. package/dist/filters/definitions/hslAdjustment.d.ts +2 -0
  145. package/dist/filters/definitions/kawaseBlur.d.ts +2 -0
  146. package/dist/filters/definitions/lightmap.d.ts +2 -0
  147. package/dist/filters/definitions/motionBlur.d.ts +2 -0
  148. package/dist/filters/definitions/multiColorReplace.d.ts +2 -0
  149. package/dist/filters/definitions/noise.d.ts +2 -0
  150. package/dist/filters/definitions/oldFilm.d.ts +2 -0
  151. package/dist/filters/definitions/outline.d.ts +2 -0
  152. package/dist/filters/definitions/pixelate.d.ts +2 -0
  153. package/dist/filters/definitions/radialBlur.d.ts +2 -0
  154. package/dist/filters/definitions/reflection.d.ts +2 -0
  155. package/dist/filters/definitions/rgbSplit.d.ts +2 -0
  156. package/dist/filters/definitions/shockwave.d.ts +2 -0
  157. package/dist/filters/definitions/simplexNoise.d.ts +2 -0
  158. package/dist/filters/definitions/tiltShift.d.ts +2 -0
  159. package/dist/filters/definitions/twist.d.ts +2 -0
  160. package/dist/filters/definitions/vignette.d.ts +2 -0
  161. package/dist/filters/definitions/zoomBlur.d.ts +2 -0
  162. package/dist/filters/factory.d.ts +38 -0
  163. package/dist/filters/filters/controlMapping.d.ts +31 -0
  164. package/dist/filters/filters/definitions/adjustment.d.ts +2 -0
  165. package/dist/filters/filters/definitions/adjustmentAdvanced.d.ts +2 -0
  166. package/dist/filters/filters/definitions/advancedBloom.d.ts +2 -0
  167. package/dist/filters/filters/definitions/alpha.d.ts +2 -0
  168. package/dist/filters/filters/definitions/ascii.d.ts +2 -0
  169. package/dist/filters/filters/definitions/backdropBlur.d.ts +2 -0
  170. package/dist/filters/filters/definitions/bevel.d.ts +2 -0
  171. package/dist/filters/filters/definitions/bloom.d.ts +2 -0
  172. package/dist/filters/filters/definitions/blur.d.ts +2 -0
  173. package/dist/filters/filters/definitions/bulgePinch.d.ts +2 -0
  174. package/dist/filters/filters/definitions/colorGradient.d.ts +2 -0
  175. package/dist/filters/filters/definitions/colorMap.d.ts +2 -0
  176. package/dist/filters/filters/definitions/colorMatrix.d.ts +2 -0
  177. package/dist/filters/filters/definitions/colorOverlay.d.ts +2 -0
  178. package/dist/filters/filters/definitions/colorReplace.d.ts +2 -0
  179. package/dist/filters/filters/definitions/convolution.d.ts +2 -0
  180. package/dist/filters/filters/definitions/crossHatch.d.ts +2 -0
  181. package/dist/filters/filters/definitions/crt.d.ts +2 -0
  182. package/dist/filters/filters/definitions/displacement.d.ts +2 -0
  183. package/dist/filters/filters/definitions/dot.d.ts +2 -0
  184. package/dist/filters/filters/definitions/dropShadow.d.ts +2 -0
  185. package/dist/filters/filters/definitions/emboss.d.ts +2 -0
  186. package/dist/filters/filters/definitions/glitch.d.ts +2 -0
  187. package/dist/filters/filters/definitions/glow.d.ts +2 -0
  188. package/dist/filters/filters/definitions/godray.d.ts +2 -0
  189. package/dist/filters/filters/definitions/grayscale.d.ts +2 -0
  190. package/dist/filters/filters/definitions/hslAdjustment.d.ts +2 -0
  191. package/dist/filters/filters/definitions/kawaseBlur.d.ts +2 -0
  192. package/dist/filters/filters/definitions/lightmap.d.ts +2 -0
  193. package/dist/filters/filters/definitions/motionBlur.d.ts +2 -0
  194. package/dist/filters/filters/definitions/multiColorReplace.d.ts +2 -0
  195. package/dist/filters/filters/definitions/noise.d.ts +2 -0
  196. package/dist/filters/filters/definitions/oldFilm.d.ts +2 -0
  197. package/dist/filters/filters/definitions/outline.d.ts +2 -0
  198. package/dist/filters/filters/definitions/pixelate.d.ts +2 -0
  199. package/dist/filters/filters/definitions/radialBlur.d.ts +2 -0
  200. package/dist/filters/filters/definitions/reflection.d.ts +2 -0
  201. package/dist/filters/filters/definitions/rgbSplit.d.ts +2 -0
  202. package/dist/filters/filters/definitions/shockwave.d.ts +2 -0
  203. package/dist/filters/filters/definitions/simplexNoise.d.ts +2 -0
  204. package/dist/filters/filters/definitions/tiltShift.d.ts +2 -0
  205. package/dist/filters/filters/definitions/twist.d.ts +2 -0
  206. package/dist/filters/filters/definitions/vignette.d.ts +2 -0
  207. package/dist/filters/filters/definitions/zoomBlur.d.ts +2 -0
  208. package/dist/filters/filters/factory.d.ts +36 -0
  209. package/dist/filters/filters/index.d.ts +93 -0
  210. package/dist/filters/filters/registry.d.ts +89 -0
  211. package/dist/filters/index.d.ts +93 -0
  212. package/dist/filters/registry.d.ts +89 -0
  213. package/dist/filters/video-compatible.d.ts +77 -0
  214. package/dist/filters/video-css-filters.d.ts +153 -0
  215. package/dist/index-6yUGA--H.cjs +42 -0
  216. package/dist/index-6yUGA--H.cjs.map +1 -0
  217. package/dist/index-CcGWfCCV.js +7799 -0
  218. package/dist/index-CcGWfCCV.js.map +1 -0
  219. package/dist/index-DTUgsw7J.cjs +76 -0
  220. package/dist/index-DTUgsw7J.cjs.map +1 -0
  221. package/dist/index-VrUG0lmk.js +28655 -0
  222. package/dist/index-VrUG0lmk.js.map +1 -0
  223. package/dist/index.d.ts +62 -0
  224. package/dist/js/workers/material-color-extractor.js +215 -0
  225. package/dist/mediables-vanilla.cjs +2 -0
  226. package/dist/mediables-vanilla.cjs.map +1 -0
  227. package/dist/mediables-vanilla.mjs +12 -0
  228. package/dist/mediables-vanilla.mjs.map +1 -0
  229. package/dist/mediables-vue.cjs +2 -0
  230. package/dist/mediables-vue.cjs.map +1 -0
  231. package/dist/mediables-vue.mjs +67 -0
  232. package/dist/mediables-vue.mjs.map +1 -0
  233. package/dist/render-page/assets/index-hBfvGPpt.js +48933 -0
  234. package/dist/render-page/index.html +18 -0
  235. package/dist/services/VideoJobClient.d.ts +79 -0
  236. package/dist/stores/albumStore.d.ts +4 -0
  237. package/dist/stores/mediaVariantStore.d.ts +1 -0
  238. package/dist/stores/useAdminMediaStore.d.ts +16 -0
  239. package/dist/stores/useMediaStore.d.ts +25 -0
  240. package/dist/stores/useVideoStore.d.ts +21 -0
  241. package/dist/stores/variantPollStore.d.ts +5 -0
  242. package/dist/stores/video.d.ts +1 -0
  243. package/dist/style.css +1 -0
  244. package/dist/types/adapter.d.ts +181 -0
  245. package/dist/types/album.d.ts +28 -0
  246. package/dist/types/api.d.ts +88 -0
  247. package/dist/types/collection.d.ts +306 -0
  248. package/dist/types/editor.d.ts +172 -0
  249. package/dist/types/image.d.ts +210 -0
  250. package/dist/types/index.d.ts +5 -0
  251. package/dist/types/media.d.ts +107 -0
  252. package/dist/types/types/address.d.ts +66 -0
  253. package/dist/types/types/admin/intelligent-po.d.ts +47 -0
  254. package/dist/types/types/admin/products/index.d.ts +17 -0
  255. package/dist/types/types/admin/purchase-order.d.ts +50 -0
  256. package/dist/types/types/admin/receipt.d.ts +86 -0
  257. package/dist/types/types/admin/vendor.d.ts +61 -0
  258. package/dist/types/types/ai.d.ts +63 -0
  259. package/dist/types/types/aiActions.d.ts +42 -0
  260. package/dist/types/types/aiDesigner.d.ts +77 -0
  261. package/dist/types/types/api-errors.d.ts +6 -0
  262. package/dist/types/types/api.d.ts +109 -0
  263. package/dist/types/types/bundle.d.ts +131 -0
  264. package/dist/types/types/bundles/analytics.d.ts +64 -0
  265. package/dist/types/types/bundles.d.ts +108 -0
  266. package/dist/types/types/cart.d.ts +81 -0
  267. package/dist/types/types/checkout.d.ts +40 -0
  268. package/dist/types/types/component-config.d.ts +26 -0
  269. package/dist/types/types/components.d.ts +32 -0
  270. package/dist/types/types/content.d.ts +138 -0
  271. package/dist/types/types/coupon.d.ts +32 -0
  272. package/dist/types/types/customer-product-history.d.ts +210 -0
  273. package/dist/types/types/drag-contracts.d.ts +40 -0
  274. package/dist/types/types/drag-drop.d.ts +19 -0
  275. package/dist/types/types/editor.d.ts +127 -0
  276. package/dist/types/types/errors.d.ts +36 -0
  277. package/dist/types/types/feedback.d.ts +122 -0
  278. package/dist/types/types/image.d.ts +210 -0
  279. package/dist/types/types/index.d.ts +62 -0
  280. package/dist/types/types/instagram.d.ts +86 -0
  281. package/dist/types/types/ionic-components.d.ts +152 -0
  282. package/dist/types/types/layout.d.ts +127 -0
  283. package/dist/types/types/media-gateway.d.ts +34 -0
  284. package/dist/types/types/media.d.ts +178 -0
  285. package/dist/types/types/notifications.d.ts +123 -0
  286. package/dist/types/types/order-management.d.ts +245 -0
  287. package/dist/types/types/pageBuilder/block.d.ts +34 -0
  288. package/dist/types/types/pageBuilder/blocks.d.ts +82 -0
  289. package/dist/types/types/pageBuilder/cache.d.ts +33 -0
  290. package/dist/types/types/pageBuilder/editor.d.ts +15 -0
  291. package/dist/types/types/pageBuilder/field.d.ts +11 -0
  292. package/dist/types/types/pageBuilder/index.d.ts +24 -0
  293. package/dist/types/types/pageBuilder/revisions.d.ts +40 -0
  294. package/dist/types/types/pageBuilder/templates.d.ts +62 -0
  295. package/dist/types/types/pattern.d.ts +40 -0
  296. package/dist/types/types/payment.d.ts +21 -0
  297. package/dist/types/types/payments.d.ts +10 -0
  298. package/dist/types/types/pipeline.d.ts +12 -0
  299. package/dist/types/types/pixi/filter-args.d.ts +274 -0
  300. package/dist/types/types/pixi/filters-extended.d.ts +157 -0
  301. package/dist/types/types/pixi/filters.d.ts +38 -0
  302. package/dist/types/types/preview.d.ts +36 -0
  303. package/dist/types/types/pricing.d.ts +31 -0
  304. package/dist/types/types/quickbooks.d.ts +43 -0
  305. package/dist/types/types/receipt.d.ts +121 -0
  306. package/dist/types/types/rewards.d.ts +110 -0
  307. package/dist/types/types/saved-cart.d.ts +51 -0
  308. package/dist/types/types/settings.d.ts +63 -0
  309. package/dist/types/types/shipment.d.ts +62 -0
  310. package/dist/types/types/shipping.d.ts +98 -0
  311. package/dist/types/types/sidebar-variations.d.ts +226 -0
  312. package/dist/types/types/slots.d.ts +2 -0
  313. package/dist/types/types/specification-types.d.ts +70 -0
  314. package/dist/types/types/specifications.d.ts +163 -0
  315. package/dist/types/types/store.d.ts +64 -0
  316. package/dist/types/types/template.d.ts +8 -0
  317. package/dist/types/types/user.d.ts +47 -0
  318. package/dist/types/types/variant-groups.d.ts +158 -0
  319. package/dist/types/types/wishlist.d.ts +73 -0
  320. package/dist/types/types/workflow-wizard.d.ts +12 -0
  321. package/dist/types/video.d.ts +449 -0
  322. package/dist/utils/category-tree-constants.d.ts +42 -0
  323. package/dist/utils/cookies.d.ts +3 -0
  324. package/dist/utils/crypto-polyfill.d.ts +4 -0
  325. package/dist/utils/datetime.d.ts +43 -0
  326. package/dist/utils/debounce.d.ts +10 -0
  327. package/dist/utils/debugConsole.d.ts +69 -0
  328. package/dist/utils/editor/argHelpers.d.ts +6 -0
  329. package/dist/utils/formatters.d.ts +105 -0
  330. package/dist/utils/isPresignedAwsUrl.d.ts +67 -0
  331. package/dist/utils/media-helpers.d.ts +34 -0
  332. package/dist/utils/normalisePricing.d.ts +11 -0
  333. package/dist/utils/recipe-generator.d.ts +34 -0
  334. package/dist/utils/string.d.ts +29 -0
  335. package/dist/utils/unwrapApiResponse.d.ts +5 -0
  336. package/dist/utils/uuid.d.ts +30 -0
  337. package/dist/utils/validators.d.ts +28 -0
  338. package/dist/utils/video-export.d.ts +60 -0
  339. package/dist/v3-ionic-1-demo.html +440 -0
  340. package/dist/video-engine/VideoEngine.d.ts +267 -0
  341. package/dist/video-engine/adapters/AudioManager.d.ts +106 -0
  342. package/dist/video-engine/adapters/CSSFilterAdapter.d.ts +106 -0
  343. package/dist/video-engine/adapters/ExportManager.d.ts +88 -0
  344. package/dist/video-engine/adapters/FilterBridge.d.ts +96 -0
  345. package/dist/video-engine/adapters/MediablesCompositionAdapter.d.ts +56 -0
  346. package/dist/video-engine/adapters/PixiFrameExporter.d.ts +52 -0
  347. package/dist/video-engine/adapters/RenderQueue.d.ts +119 -0
  348. package/dist/video-engine/adapters/TextOverlayManager.d.ts +93 -0
  349. package/dist/video-engine/adapters/TimelineAdapter.d.ts +58 -0
  350. package/dist/video-engine/adapters/TransitionManager.d.ts +76 -0
  351. package/dist/video-engine/adapters/WebCodecsExport.d.ts +36 -0
  352. package/dist/video-engine/compositions/examples/example.d.ts +2 -0
  353. package/dist/video-engine/filters/CSSFilterSystem.d.ts +213 -0
  354. package/dist/video-engine/index.d.ts +14 -0
  355. package/dist/video-engine/presets/ExportPresets.d.ts +70 -0
  356. package/dist/video-engine/types/index.d.ts +96 -0
  357. package/dist/video-engine/types.d.ts +1 -0
  358. package/dist/video-engine/utils/EventEmitter.d.ts +12 -0
  359. package/dist/video-engine/utils/MediaSourceResolver.d.ts +9 -0
  360. package/dist/video-engine/utils/error-reporter.d.ts +159 -0
  361. package/dist/video-engine/utils/keyboard-shortcuts.d.ts +120 -0
  362. package/dist/video-engine/utils/pixi-video-fallback.d.ts +2 -0
  363. package/docs/video-subsystem/README.md +490 -0
  364. package/docs/video-subsystem/api-reference.md +747 -0
  365. package/docs/video-subsystem/component-examples.md +1477 -0
  366. package/docs/video-subsystem/integration-guide.md +1021 -0
  367. package/package.json +102 -0
@@ -0,0 +1,747 @@
1
+ # Video Subsystem API Reference
2
+
3
+ **Version**: 1.0.0
4
+ **Base URL**: `/api/v1/video`
5
+ **Authentication**: Bearer token required for all endpoints
6
+
7
+ ## Table of Contents
8
+
9
+ 1. [Upload API](#upload-api)
10
+ 2. [Playback API](#playback-api)
11
+ 3. [Export API](#export-api)
12
+ 4. [Live Streaming API](#live-streaming-api)
13
+ 5. [Webhook API](#webhook-api)
14
+ 6. [Error Responses](#error-responses)
15
+
16
+ ## Upload API
17
+
18
+ ### Create Upload URL
19
+
20
+ Request a signed upload URL for direct-to-provider video upload.
21
+
22
+ **Endpoint**: `POST /api/v1/video/upload`
23
+
24
+ **Request Body**:
25
+ ```json
26
+ {
27
+ "filename": "my-video.mp4",
28
+ "size": 52428800,
29
+ "mime_type": "video/mp4",
30
+ "collection": "user-videos"
31
+ }
32
+ ```
33
+
34
+ **Parameters**:
35
+ | Field | Type | Required | Description |
36
+ |-------|------|----------|-------------|
37
+ | filename | string | Yes | Original filename |
38
+ | size | integer | Yes | File size in bytes (max 5GB) |
39
+ | mime_type | string | Yes | MIME type (video/mp4, video/quicktime, video/webm) |
40
+ | collection | string | No | Media collection name (default: "videos") |
41
+
42
+ **Success Response** (201 Created):
43
+ ```json
44
+ {
45
+ "upload_url": "https://video.bunnycdn.com/library/your-library-id/videos/video-guid-abc123",
46
+ "upload_id": "upload_abc123",
47
+ "media_uuid": "550e8400-e29b-41d4-a716-446655440000",
48
+ "expires_at": "2025-01-30T12:00:00Z"
49
+ }
50
+ ```
51
+
52
+ **Error Responses**:
53
+ - `400 Bad Request`: Invalid parameters
54
+ - `401 Unauthorized`: Missing or invalid token
55
+ - `413 Payload Too Large`: File exceeds size limit
56
+ - `415 Unsupported Media Type`: Invalid video format
57
+
58
+ **Example cURL**:
59
+ ```bash
60
+ curl -X POST https://api.example.com/api/v1/video/upload \
61
+ -H "Authorization: Bearer YOUR_TOKEN" \
62
+ -H "Content-Type: application/json" \
63
+ -d '{
64
+ "filename": "demo.mp4",
65
+ "size": 10485760,
66
+ "mime_type": "video/mp4"
67
+ }'
68
+ ```
69
+
70
+ ### Complete Upload
71
+
72
+ Notify the server that client-side upload is complete.
73
+
74
+ **Endpoint**: `POST /api/v1/video/upload/{uuid}/complete`
75
+
76
+ **URL Parameters**:
77
+ | Field | Type | Description |
78
+ |-------|------|-------------|
79
+ | uuid | string | Media UUID from upload creation |
80
+
81
+ **Success Response** (200 OK):
82
+ ```json
83
+ {
84
+ "message": "Upload completed, processing started",
85
+ "media": {
86
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
87
+ "status": "processing",
88
+ "processing_status": "pending"
89
+ }
90
+ }
91
+ ```
92
+
93
+ ### Check Upload Status
94
+
95
+ Get the current status of a video upload.
96
+
97
+ **Endpoint**: `GET /api/v1/video/upload/{uuid}/status`
98
+
99
+ **Success Response** (200 OK):
100
+ ```json
101
+ {
102
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
103
+ "status": "processing",
104
+ "processing_status": "encoding",
105
+ "processing_progress": 45,
106
+ "duration": null,
107
+ "playback_available": false
108
+ }
109
+ ```
110
+
111
+ **Status Values**:
112
+ - `pending`: Upload created, waiting for file
113
+ - `uploading`: File upload in progress
114
+ - `processing`: Server processing video
115
+ - `ready`: Video ready for playback
116
+ - `failed`: Processing failed
117
+
118
+ ## Playback API
119
+
120
+ ### Get Playback URL
121
+
122
+ Get a signed playback URL for video streaming.
123
+
124
+ **Endpoint**: `GET /api/v1/video/{uuid}/playback`
125
+
126
+ **URL Parameters**:
127
+ | Field | Type | Description |
128
+ |-------|------|-------------|
129
+ | uuid | string | Media UUID |
130
+
131
+ **Query Parameters**:
132
+ | Field | Type | Description |
133
+ |-------|------|-------------|
134
+ | quality | string | Preferred quality (auto, 1080p, 720p, 480p) |
135
+ | thumbnail | boolean | Include thumbnail URL |
136
+
137
+ **Success Response** (200 OK):
138
+ ```json
139
+ {
140
+ "playback_url": "https://your-cdn.b-cdn.net/your-library-id/play_video-guid-abc123/playlist.m3u8",
141
+ "thumbnail_url": "https://your-cdn.b-cdn.net/your-library-id/video-guid-abc123/thumbnail.jpg",
142
+ "token_expires_at": "2025-01-30T13:00:00Z",
143
+ "duration": 120.5,
144
+ "width": 1920,
145
+ "height": 1080,
146
+ "has_audio": true
147
+ }
148
+ ```
149
+
150
+ **Error Responses**:
151
+ - `404 Not Found`: Media not found
152
+ - `403 Forbidden`: No access to media
153
+ - `503 Service Unavailable`: Video still processing
154
+
155
+ ### Get Video Metadata
156
+
157
+ Retrieve detailed metadata about a video.
158
+
159
+ **Endpoint**: `GET /api/v1/video/{uuid}/metadata`
160
+
161
+ **Success Response** (200 OK):
162
+ ```json
163
+ {
164
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
165
+ "filename": "my-video.mp4",
166
+ "duration": 120.5,
167
+ "aspect_ratio": "16:9",
168
+ "width": 1920,
169
+ "height": 1080,
170
+ "frame_rate": 29.97,
171
+ "bitrate": 4000000,
172
+ "has_audio": true,
173
+ "has_captions": false,
174
+ "codec": "h264",
175
+ "container": "mp4",
176
+ "size": 52428800,
177
+ "created_at": "2025-01-30T10:00:00Z",
178
+ "processing_status": "ready"
179
+ }
180
+ ```
181
+
182
+ ### Generate Thumbnail
183
+
184
+ Generate a thumbnail at a specific timestamp.
185
+
186
+ **Endpoint**: `POST /api/v1/video/{uuid}/thumbnail`
187
+
188
+ **Request Body**:
189
+ ```json
190
+ {
191
+ "time": 5.0,
192
+ "width": 640,
193
+ "height": 360
194
+ }
195
+ ```
196
+
197
+ **Parameters**:
198
+ | Field | Type | Required | Description |
199
+ |-------|------|----------|-------------|
200
+ | time | float | No | Timestamp in seconds (default: 0) |
201
+ | width | integer | No | Thumbnail width (default: 640) |
202
+ | height | integer | No | Thumbnail height (default: 360) |
203
+
204
+ **Success Response** (200 OK):
205
+ ```json
206
+ {
207
+ "thumbnail_url": "https://cdn.example.com/thumbnails/abc123_5s.jpg",
208
+ "width": 640,
209
+ "height": 360,
210
+ "time": 5.0
211
+ }
212
+ ```
213
+
214
+ ## Export API
215
+
216
+ ### Create Export Job
217
+
218
+ Start a video export job with edits and filters.
219
+
220
+ **Endpoint**: `POST /api/v1/video/{uuid}/export`
221
+
222
+ **Request Body**:
223
+ ```json
224
+ {
225
+ "recipe": {
226
+ "version": "1.0",
227
+ "timeline": [
228
+ {
229
+ "type": "clip",
230
+ "id": "clip-1",
231
+ "start": 0,
232
+ "end": 30,
233
+ "source_in": 10,
234
+ "source_out": 40,
235
+ "speed": 1.0
236
+ }
237
+ ],
238
+ "filters": [
239
+ {
240
+ "id": "vintage",
241
+ "params": {},
242
+ "intensity": 0.8
243
+ }
244
+ ],
245
+ "audio": {
246
+ "volume": 1.0,
247
+ "fade_in": 0,
248
+ "fade_out": 2
249
+ },
250
+ "output": {
251
+ "format": "mp4",
252
+ "quality": "1080p",
253
+ "fps": 30
254
+ }
255
+ }
256
+ }
257
+ ```
258
+
259
+ **Recipe Schema**:
260
+ | Field | Type | Description |
261
+ |-------|------|-------------|
262
+ | version | string | Recipe format version |
263
+ | timeline | array | Array of timeline clips |
264
+ | filters | array | Array of filters to apply |
265
+ | audio | object | Audio settings |
266
+ | output | object | Output format settings |
267
+
268
+ **Success Response** (202 Accepted):
269
+ ```json
270
+ {
271
+ "job_id": "job_xyz789",
272
+ "status": "queued",
273
+ "estimated_time": 180,
274
+ "created_at": "2025-01-30T11:00:00Z"
275
+ }
276
+ ```
277
+
278
+ ### Check Export Status
279
+
280
+ Get the status of an export job.
281
+
282
+ **Endpoint**: `GET /api/v1/video/exports/{job_id}`
283
+
284
+ **Success Response** (200 OK):
285
+ ```json
286
+ {
287
+ "job_id": "job_xyz789",
288
+ "status": "processing",
289
+ "progress": 65,
290
+ "started_at": "2025-01-30T11:00:00Z",
291
+ "estimated_completion": "2025-01-30T11:03:00Z",
292
+ "output_media_uuid": null
293
+ }
294
+ ```
295
+
296
+ **Status Values**:
297
+ - `queued`: Job in queue
298
+ - `processing`: Export in progress
299
+ - `completed`: Export successful
300
+ - `failed`: Export failed
301
+
302
+ ### Get Export Result
303
+
304
+ Retrieve the completed export result.
305
+
306
+ **Endpoint**: `GET /api/v1/video/exports/{job_id}/result`
307
+
308
+ **Success Response** (200 OK):
309
+ ```json
310
+ {
311
+ "job_id": "job_xyz789",
312
+ "status": "completed",
313
+ "output_media_uuid": "650e8400-e29b-41d4-a716-446655440001",
314
+ "playback_url": "https://your-cdn.b-cdn.net/your-library-id/play_video-guid-def456/playlist.m3u8",
315
+ "duration": 30,
316
+ "size": 15728640,
317
+ "completed_at": "2025-01-30T11:03:00Z"
318
+ }
319
+ ```
320
+
321
+ ### Cancel Export
322
+
323
+ Cancel a running export job.
324
+
325
+ **Endpoint**: `DELETE /api/v1/video/exports/{job_id}`
326
+
327
+ **Success Response** (204 No Content)
328
+
329
+ ## Live Streaming API
330
+
331
+ ### Create Live Stream
332
+
333
+ Create a new live stream session.
334
+
335
+ **Endpoint**: `POST /api/v1/video/live`
336
+
337
+ **Request Body**:
338
+ ```json
339
+ {
340
+ "title": "My Live Stream",
341
+ "description": "Stream description",
342
+ "low_latency": true,
343
+ "auto_record": true,
344
+ "max_duration": 3600
345
+ }
346
+ ```
347
+
348
+ **Parameters**:
349
+ | Field | Type | Required | Description |
350
+ |-------|------|----------|-------------|
351
+ | title | string | No | Stream title |
352
+ | description | string | No | Stream description |
353
+ | low_latency | boolean | No | Enable low latency mode (5-7s delay) |
354
+ | auto_record | boolean | No | Auto-record for VOD (default: true) |
355
+ | max_duration | integer | No | Max duration in seconds |
356
+
357
+ **Success Response** (201 Created):
358
+ ```json
359
+ {
360
+ "stream_id": "stream_abc123",
361
+ "media_uuid": "750e8400-e29b-41d4-a716-446655440002",
362
+ "stream_key": "live_xyz789",
363
+ "rtmp_url": "rtmp://ingest.bunny.live/live_xyz789",
364
+ "playback_url": "https://your-cdn.b-cdn.net/your-library-id/play_live123/playlist.m3u8",
365
+ "status": "idle",
366
+ "created_at": "2025-01-30T12:00:00Z"
367
+ }
368
+ ```
369
+
370
+ ### Get Stream Status
371
+
372
+ Get current status of a live stream.
373
+
374
+ **Endpoint**: `GET /api/v1/video/live/{stream_id}`
375
+
376
+ **Success Response** (200 OK):
377
+ ```json
378
+ {
379
+ "stream_id": "stream_abc123",
380
+ "status": "live",
381
+ "started_at": "2025-01-30T12:05:00Z",
382
+ "duration": 300,
383
+ "viewer_count": 42,
384
+ "peak_viewers": 75,
385
+ "health": {
386
+ "bitrate": 4500000,
387
+ "framerate": 30,
388
+ "keyframe_interval": 2
389
+ }
390
+ }
391
+ ```
392
+
393
+ **Status Values**:
394
+ - `idle`: Stream created, waiting for connection
395
+ - `connecting`: Encoder connecting
396
+ - `live`: Stream is live
397
+ - `disconnected`: Stream ended
398
+
399
+ ### End Live Stream
400
+
401
+ Manually end a live stream session.
402
+
403
+ **Endpoint**: `POST /api/v1/video/live/{stream_id}/end`
404
+
405
+ **Success Response** (200 OK):
406
+ ```json
407
+ {
408
+ "stream_id": "stream_abc123",
409
+ "status": "ended",
410
+ "duration": 1800,
411
+ "vod_media_uuid": "850e8400-e29b-41d4-a716-446655440003",
412
+ "ended_at": "2025-01-30T12:30:00Z"
413
+ }
414
+ ```
415
+
416
+ ### Get Stream Metrics
417
+
418
+ Retrieve detailed metrics for a live stream.
419
+
420
+ **Endpoint**: `GET /api/v1/video/live/{stream_id}/metrics`
421
+
422
+ **Query Parameters**:
423
+ | Field | Type | Description |
424
+ |-------|------|-------------|
425
+ | interval | string | Metric interval (1m, 5m, 1h) |
426
+ | start | string | Start time (ISO 8601) |
427
+ | end | string | End time (ISO 8601) |
428
+
429
+ **Success Response** (200 OK):
430
+ ```json
431
+ {
432
+ "stream_id": "stream_abc123",
433
+ "metrics": [
434
+ {
435
+ "timestamp": "2025-01-30T12:10:00Z",
436
+ "viewers": 45,
437
+ "bitrate": 4500000,
438
+ "framerate": 29.97,
439
+ "dropped_frames": 0,
440
+ "rebuffer_percentage": 0.1
441
+ }
442
+ ],
443
+ "summary": {
444
+ "total_viewers": 250,
445
+ "peak_viewers": 75,
446
+ "average_viewers": 42,
447
+ "total_watch_time": 10800,
448
+ "engagement_score": 0.85
449
+ }
450
+ }
451
+ ```
452
+
453
+ ## Webhook API
454
+
455
+ ### Bunny Webhooks
456
+
457
+ Handle webhooks from the Bunny video provider.
458
+
459
+ **Endpoint**: `POST /api/v1/video/webhooks/bunny`
460
+
461
+ **Headers**:
462
+ ```
463
+ X-Webhook-Signature: webhook_signature_here
464
+ Content-Type: application/json
465
+ ```
466
+
467
+ **Security**:
468
+ - Preferred: shared secret query parameter: `POST /api/v1/video/webhooks/bunny?secret=...`
469
+ - Optional: `X-Webhook-Signature` header (deployment-specific)
470
+
471
+ **Request Body** (Status Update):
472
+ ```json
473
+ {
474
+ "VideoLibraryId": 12345,
475
+ "VideoGuid": "video-guid-abc123",
476
+ "Status": 3
477
+ }
478
+ ```
479
+
480
+ **Notes**:
481
+ - `VideoGuid` is used to locate the `Media` record (`provider_asset_id`)
482
+ - `Status` indicates processing state (e.g. `3` = finished/ready)
483
+
484
+ **Success Response** (204 No Content)
485
+
486
+ **Error Response** (401 Unauthorized):
487
+ ```json
488
+ {
489
+ "error": "Invalid signature"
490
+ }
491
+ ```
492
+
493
+ ## Error Responses
494
+
495
+ All API endpoints follow a consistent error response format.
496
+
497
+ ### Error Response Format
498
+
499
+ ```json
500
+ {
501
+ "error": {
502
+ "code": "VIDEO_NOT_FOUND",
503
+ "message": "The requested video could not be found",
504
+ "details": {
505
+ "uuid": "550e8400-e29b-41d4-a716-446655440000"
506
+ }
507
+ },
508
+ "timestamp": "2025-01-30T12:00:00Z",
509
+ "path": "/api/v1/video/550e8400-e29b-41d4-a716-446655440000/playback"
510
+ }
511
+ ```
512
+
513
+ ### Common Error Codes
514
+
515
+ | Code | HTTP Status | Description |
516
+ |------|-------------|-------------|
517
+ | INVALID_REQUEST | 400 | Request validation failed |
518
+ | UNAUTHORIZED | 401 | Missing or invalid authentication |
519
+ | FORBIDDEN | 403 | Insufficient permissions |
520
+ | VIDEO_NOT_FOUND | 404 | Video not found |
521
+ | UPLOAD_TOO_LARGE | 413 | File exceeds size limit |
522
+ | UNSUPPORTED_FORMAT | 415 | Video format not supported |
523
+ | RATE_LIMITED | 429 | Too many requests |
524
+ | PROCESSING_ERROR | 500 | Server processing error |
525
+ | PROVIDER_ERROR | 502 | Video provider error |
526
+ | SERVICE_UNAVAILABLE | 503 | Service temporarily unavailable |
527
+
528
+ ### Rate Limiting
529
+
530
+ API endpoints are rate limited to prevent abuse.
531
+
532
+ **Rate Limits**:
533
+ - Upload creation: 10 per minute
534
+ - Playback URLs: 60 per minute
535
+ - Export jobs: 5 per hour
536
+ - Live streams: 2 concurrent
537
+ - Webhooks: 1000 per minute
538
+
539
+ **Rate Limit Headers**:
540
+ ```
541
+ X-RateLimit-Limit: 60
542
+ X-RateLimit-Remaining: 45
543
+ X-RateLimit-Reset: 1706621400
544
+ ```
545
+
546
+ **Rate Limited Response** (429 Too Many Requests):
547
+ ```json
548
+ {
549
+ "error": {
550
+ "code": "RATE_LIMITED",
551
+ "message": "Rate limit exceeded",
552
+ "details": {
553
+ "limit": 60,
554
+ "remaining": 0,
555
+ "reset_at": "2025-01-30T12:10:00Z"
556
+ }
557
+ }
558
+ }
559
+ ```
560
+
561
+ ## Authentication
562
+
563
+ All API endpoints require authentication using Bearer tokens.
564
+
565
+ ### Request Headers
566
+
567
+ ```
568
+ Authorization: Bearer YOUR_ACCESS_TOKEN
569
+ Content-Type: application/json
570
+ Accept: application/json
571
+ ```
572
+
573
+ ### Token Generation
574
+
575
+ ```php
576
+ // Generate API token in Laravel
577
+ $token = $user->createToken('api-token', ['video:read', 'video:write'])->plainTextToken;
578
+ ```
579
+
580
+ ### Token Scopes
581
+
582
+ | Scope | Description |
583
+ |-------|-------------|
584
+ | video:read | View videos and metadata |
585
+ | video:write | Upload and edit videos |
586
+ | video:delete | Delete videos |
587
+ | video:export | Create export jobs |
588
+ | live:create | Create live streams |
589
+ | live:manage | Manage live streams |
590
+
591
+ ## SDK Examples
592
+
593
+ ### JavaScript/TypeScript
594
+
595
+ ```typescript
596
+ import { MediablesVideo } from '@mediables/sdk'
597
+
598
+ const client = new MediablesVideo({
599
+ apiKey: 'YOUR_API_KEY',
600
+ baseUrl: 'https://api.example.com'
601
+ })
602
+
603
+ // Upload video
604
+ const upload = await client.uploads.create({
605
+ filename: 'video.mp4',
606
+ size: 10485760,
607
+ mimeType: 'video/mp4'
608
+ })
609
+
610
+ // Upload file to provider
611
+ await client.uploads.uploadFile(upload.uploadUrl, file)
612
+
613
+ // Get playback URL
614
+ const playback = await client.videos.getPlaybackUrl(upload.mediaUuid)
615
+ console.log('Watch at:', playback.playbackUrl)
616
+ ```
617
+
618
+ ### PHP
619
+
620
+ ```php
621
+ use Mediables\VideoClient;
622
+
623
+ $client = new VideoClient([
624
+ 'api_key' => 'YOUR_API_KEY',
625
+ 'base_url' => 'https://api.example.com'
626
+ ]);
627
+
628
+ // Request upload URL
629
+ $upload = $client->uploads->create([
630
+ 'filename' => 'video.mp4',
631
+ 'size' => 10485760,
632
+ 'mime_type' => 'video/mp4'
633
+ ]);
634
+
635
+ // Get playback URL
636
+ $playback = $client->videos->getPlaybackUrl($upload['media_uuid']);
637
+ echo "Watch at: " . $playback['playback_url'];
638
+ ```
639
+
640
+ ### Python
641
+
642
+ ```python
643
+ from mediables import VideoClient
644
+
645
+ client = VideoClient(
646
+ api_key='YOUR_API_KEY',
647
+ base_url='https://api.example.com'
648
+ )
649
+
650
+ # Upload video
651
+ upload = client.uploads.create(
652
+ filename='video.mp4',
653
+ size=10485760,
654
+ mime_type='video/mp4'
655
+ )
656
+
657
+ # Get playback URL
658
+ playback = client.videos.get_playback_url(upload['media_uuid'])
659
+ print(f"Watch at: {playback['playback_url']}")
660
+ ```
661
+
662
+ ## Postman Collection
663
+
664
+ Download our Postman collection for easy API testing:
665
+
666
+ [Download Postman Collection](https://www.getpostman.com/collections/mediables-video-api)
667
+
668
+ ## OpenAPI Specification
669
+
670
+ The complete OpenAPI 3.0 specification is available at:
671
+
672
+ ```yaml
673
+ openapi: 3.0.0
674
+ info:
675
+ title: Mediables Video API
676
+ version: 1.0.0
677
+ description: Video management API for Mediables package
678
+ servers:
679
+ - url: https://api.example.com/api/v1
680
+ description: Production server
681
+ - url: http://localhost:8000/api/v1
682
+ description: Development server
683
+ paths:
684
+ /video/upload:
685
+ post:
686
+ summary: Create upload URL
687
+ tags: [Upload]
688
+ security:
689
+ - bearerAuth: []
690
+ requestBody:
691
+ required: true
692
+ content:
693
+ application/json:
694
+ schema:
695
+ type: object
696
+ required: [filename, size, mime_type]
697
+ properties:
698
+ filename:
699
+ type: string
700
+ example: video.mp4
701
+ size:
702
+ type: integer
703
+ example: 10485760
704
+ mime_type:
705
+ type: string
706
+ enum: [video/mp4, video/quicktime, video/webm]
707
+ collection:
708
+ type: string
709
+ example: user-videos
710
+ responses:
711
+ '201':
712
+ description: Upload URL created
713
+ content:
714
+ application/json:
715
+ schema:
716
+ type: object
717
+ properties:
718
+ upload_url:
719
+ type: string
720
+ upload_id:
721
+ type: string
722
+ media_uuid:
723
+ type: string
724
+ expires_at:
725
+ type: string
726
+ format: date-time
727
+ # ... Additional endpoints
728
+ ```
729
+
730
+ ## Changelog
731
+
732
+ ### Version 1.0.0 (2025-01-30)
733
+ - Initial release
734
+ - Video upload with direct-to-provider support
735
+ - Playback with signed URLs
736
+ - Video export with FFmpeg processing
737
+ - Live streaming support
738
+ - Webhook handling for Bunny provider
739
+
740
+ ## Support
741
+
742
+ For API support and questions:
743
+
744
+ - **Documentation**: https://mediables.dev/docs/api
745
+ - **GitHub Issues**: https://github.com/mediables/mediables/issues
746
+ - **API Status**: https://status.mediables.dev
747
+ - **Email**: api-support@mediables.dev