@codingfactory/mediables-vue 2.7.2 → 2.8.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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Dx7DOxwK.cjs"),i=require("./editor-BTwIhrcA.cjs");exports.AlbumBrowser=e.AlbumBrowser;exports.AlbumManager=e.AlbumManager;exports.AlbumMediaGrid=e.AlbumMediaGrid;exports.AlbumTree=e.AlbumTree;exports.ExistingMediaSelector=e.ExistingMediaSelector;exports.ImageEditor=e.ImageEditor;exports.ImageEditorModal=e.ImageEditorModal;exports.LiveStreamManager=e.LiveStreamManager;exports.ManagedMediaGallery=e.ManagedMediaGallery;exports.MediaAlbumInlineCreate=e.MediaAlbumInlineCreate;exports.MediaAlbumUnavailableState=e.MediaAlbumUnavailableState;exports.MediaAttachment=e.MediaAttachment;exports.MediaAttachmentMetadataFields=e.MediaAttachmentMetadataFields;exports.MediaAttachmentProvider=e._sfc_main$1;exports.MediaCollection=e.MediaCollection;exports.MediaCollectionDropzone=e.MediaCollectionDropzone;exports.MediaCollectionItem=e.MediaCollectionItem;exports.MediaCollectionProvider=e._sfc_main;exports.MediaHiddenFields=e._sfc_main$2;exports.MediaLibraryPicker=e.MediaLibraryPicker;exports.MediaLibraryPickerModal=e.MediaLibraryPickerModal;exports.MediaManagementView=e.MediaManagementView;exports.MediaPreviewSheet=e.MediaPreviewSheet;exports.MediaSelectionTray=e.MediaSelectionTray;exports.MediaSourceSheet=e.MediaSourceSheet;exports.MediaThumbnailCell=e.MediaThumbnailCell;exports.MediaUploadSheet=e.MediaUploadSheet;exports.MediaWorkspace=e.MediaWorkspace;exports.ModelMediaManager=e.ModelMediaManager;exports.VideoEditor=e.VideoEditor;exports.VideoEditorDialog=e.VideoEditorDialog;exports.VideoEditorSimple=e.VideoEditorSimple;exports.VideoExportPanel=e.VideoExportPanel;exports.VideoJobClient=e.VideoJobClient;exports.VideoPlayer=e.VideoPlayer;exports.VideoTimeline=e.VideoTimeline;exports.VideoToolsPanel=e.VideoToolsPanel;exports.VideoUploader=e.VideoUploader;exports.VirtualMediaGrid=e.VirtualMediaGrid;exports.applyTemporaryMediaStoreConfig=e.applyTemporaryMediaStoreConfig;exports.configureMediaStore=e.configureMediaStore;exports.createAdapter=e.createAdapter;exports.createEmptyEditorState=e.createEmptyEditorState;exports.createImageEditor=e.createImageEditor;exports.createMediablesAdapter=e.createMediablesAdapter;exports.createSpatieAdapter=e.createSpatieAdapter;exports.deserializeEditorState=e.deserializeEditorState;exports.formatFileSize=e.formatFileSize;exports.fromMediaArray=e.fromMediaArray;exports.getFileExtension=e.getFileExtension;exports.getImageDimensions=e.getImageDimensions;exports.getMediablesAdapter=e.getMediablesAdapter;exports.getSpatieAdapter=e.getSpatieAdapter;exports.isImageFile=e.isImageFile;exports.normalizeEditorState=e.normalizeEditorState;exports.normalizeRecipeForServerRender=e.normalizeRecipeForServerRender;exports.recipeHasServerRenderableEdits=e.recipeHasServerRenderableEdits;exports.recipeHasUnsupportedServerEdits=e.recipeHasUnsupportedServerEdits;exports.resetMediablesAdapter=e.resetMediablesAdapter;exports.resetSpatieAdapter=e.resetSpatieAdapter;exports.restoreMediaStoreConfig=e.restoreMediaStoreConfig;exports.serializeEditorState=e.serializeEditorState;exports.snapshotMediaStoreConfig=e.snapshotMediaStoreConfig;exports.toFormValues=e.toFormValues;exports.useAdminMediaStore=e.useAdminMediaStore;exports.useAlbumDragDrop=e.useAlbumDragDrop;exports.useAlbumStore=e.useAlbumStore;exports.useAlbums=e.useAlbums;exports.useGlobalImageEditor=e.useGlobalImageEditor;exports.useImageEditorModal=e.useImageEditorModal;exports.useMediaAttachment=e.useMediaAttachment;exports.useMediaCollection=e.useMediaCollection;exports.useMediaDeletion=e.useMediaDeletion;exports.useMediaDragSort=e.useMediaDragSort;exports.useMediaLibraryPickerController=e.useMediaLibraryPickerController;exports.useMediaLibraryQuery=e.useMediaLibraryQuery;exports.useMediaLibrarySession=e.useMediaLibrarySession;exports.useMediaLibraryStateMachine=e.useMediaLibraryStateMachine;exports.useMediaLibraryTelemetry=e.useMediaLibraryTelemetry;exports.useMediaStore=e.useMediaStore;exports.useMediaTrash=e.useMediaTrash;exports.useMediaUploadQueue=e.useMediaUploadQueue;exports.useMediaValidation=e.useMediaValidation;exports.validateFile=e.validateFile;exports.VanillaImageEditor=i.VanillaImageEditor;exports.getAllCategories=i.getAllCategories;exports.getAllFilters=i.getAllFilters;exports.getFilter=i.getFilter;exports.getFiltersByCategory=i.getFiltersByCategory;exports.hasFilter=i.hasFilter;exports.initializeFilterRegistry=i.initializeFilterRegistry;exports.registerFilter=i.registerFilter;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DNo3Kr1t.cjs"),i=require("./editor-BTwIhrcA.cjs");exports.AlbumBrowser=e.AlbumBrowser;exports.AlbumManager=e.AlbumManager;exports.AlbumMediaGrid=e.AlbumMediaGrid;exports.AlbumTree=e.AlbumTree;exports.ExistingMediaSelector=e.ExistingMediaSelector;exports.ImageEditor=e.ImageEditor;exports.ImageEditorModal=e.ImageEditorModal;exports.LiveStreamManager=e.LiveStreamManager;exports.ManagedMediaGallery=e.ManagedMediaGallery;exports.MediaAlbumInlineCreate=e.MediaAlbumInlineCreate;exports.MediaAlbumUnavailableState=e.MediaAlbumUnavailableState;exports.MediaAttachment=e.MediaAttachment;exports.MediaAttachmentMetadataFields=e.MediaAttachmentMetadataFields;exports.MediaAttachmentProvider=e._sfc_main$1;exports.MediaCollection=e.MediaCollection;exports.MediaCollectionDropzone=e.MediaCollectionDropzone;exports.MediaCollectionItem=e.MediaCollectionItem;exports.MediaCollectionProvider=e._sfc_main;exports.MediaHiddenFields=e._sfc_main$2;exports.MediaLibraryPicker=e.MediaLibraryPicker;exports.MediaLibraryPickerModal=e.MediaLibraryPickerModal;exports.MediaManagementView=e.MediaManagementView;exports.MediaPreviewSheet=e.MediaPreviewSheet;exports.MediaSelectionTray=e.MediaSelectionTray;exports.MediaSourceSheet=e.MediaSourceSheet;exports.MediaThumbnailCell=e.MediaThumbnailCell;exports.MediaUploadSheet=e.MediaUploadSheet;exports.MediaWorkspace=e.MediaWorkspace;exports.ModelMediaManager=e.ModelMediaManager;exports.VideoEditor=e.VideoEditor;exports.VideoEditorDialog=e.VideoEditorDialog;exports.VideoEditorSimple=e.VideoEditorSimple;exports.VideoExportPanel=e.VideoExportPanel;exports.VideoJobClient=e.VideoJobClient;exports.VideoPlayer=e.VideoPlayer;exports.VideoTimeline=e.VideoTimeline;exports.VideoToolsPanel=e.VideoToolsPanel;exports.VideoUploader=e.VideoUploader;exports.VirtualMediaGrid=e.VirtualMediaGrid;exports.applyTemporaryMediaStoreConfig=e.applyTemporaryMediaStoreConfig;exports.configureMediaStore=e.configureMediaStore;exports.createAdapter=e.createAdapter;exports.createEmptyEditorState=e.createEmptyEditorState;exports.createImageEditor=e.createImageEditor;exports.createMediablesAdapter=e.createMediablesAdapter;exports.createSpatieAdapter=e.createSpatieAdapter;exports.deserializeEditorState=e.deserializeEditorState;exports.formatFileSize=e.formatFileSize;exports.fromMediaArray=e.fromMediaArray;exports.getFileExtension=e.getFileExtension;exports.getImageDimensions=e.getImageDimensions;exports.getMediablesAdapter=e.getMediablesAdapter;exports.getSpatieAdapter=e.getSpatieAdapter;exports.isImageFile=e.isImageFile;exports.normalizeEditorState=e.normalizeEditorState;exports.normalizeRecipeForServerRender=e.normalizeRecipeForServerRender;exports.recipeHasServerRenderableEdits=e.recipeHasServerRenderableEdits;exports.recipeHasUnsupportedServerEdits=e.recipeHasUnsupportedServerEdits;exports.resetMediablesAdapter=e.resetMediablesAdapter;exports.resetSpatieAdapter=e.resetSpatieAdapter;exports.restoreMediaStoreConfig=e.restoreMediaStoreConfig;exports.serializeEditorState=e.serializeEditorState;exports.snapshotMediaStoreConfig=e.snapshotMediaStoreConfig;exports.toFormValues=e.toFormValues;exports.useAdminMediaStore=e.useAdminMediaStore;exports.useAlbumDragDrop=e.useAlbumDragDrop;exports.useAlbumStore=e.useAlbumStore;exports.useAlbums=e.useAlbums;exports.useGlobalImageEditor=e.useGlobalImageEditor;exports.useImageEditorModal=e.useImageEditorModal;exports.useMediaAttachment=e.useMediaAttachment;exports.useMediaCollection=e.useMediaCollection;exports.useMediaDeletion=e.useMediaDeletion;exports.useMediaDragSort=e.useMediaDragSort;exports.useMediaLibraryPickerController=e.useMediaLibraryPickerController;exports.useMediaLibraryQuery=e.useMediaLibraryQuery;exports.useMediaLibrarySession=e.useMediaLibrarySession;exports.useMediaLibraryStateMachine=e.useMediaLibraryStateMachine;exports.useMediaLibraryTelemetry=e.useMediaLibraryTelemetry;exports.useMediaStore=e.useMediaStore;exports.useMediaTrash=e.useMediaTrash;exports.useMediaUploadQueue=e.useMediaUploadQueue;exports.useMediaValidation=e.useMediaValidation;exports.validateFile=e.validateFile;exports.VanillaImageEditor=i.VanillaImageEditor;exports.getAllCategories=i.getAllCategories;exports.getAllFilters=i.getAllFilters;exports.getFilter=i.getFilter;exports.getFiltersByCategory=i.getFiltersByCategory;exports.hasFilter=i.hasFilter;exports.initializeFilterRegistry=i.initializeFilterRegistry;exports.registerFilter=i.registerFilter;
2
2
  //# sourceMappingURL=mediables-vue.cjs.map
@@ -1,4 +1,4 @@
1
- import { w as i, x as s, y as r, v as t, E as d, I as o, d as l, L as M, f as n, H as m, N as u, a0 as g, a4 as p, a2 as S, Z as c, $ as b, _ as A, a1 as y, a3 as E, z as V, B as h, ad as C, F, J as v, G as I, D as f, K as P, e as L, g as T, h as z, V as D, i as k, l as x, o as U, n as G, j as R, k as w, m as H, C as B, a as Q, c as j, an as q, U as J, Q as W, ao as K, ar as N, T as O, ai as X, av as Y, aj as Z, al as _, ap as $, as as aa, ak as ea, R as ia, p as sa, q as ra, t as ta, aq as da, at as oa, r as la, S as Ma, s as na, au as ma, b as ua, X as ga, Y as pa, W as Sa, P as ca, O as ba, a6 as Aa, a5 as ya, ae as Ea, ag as Va, a9 as ha, a8 as Ca, aa as Fa, ac as va, ab as Ia, u as fa, af as Pa, a7 as La, ah as Ta, am as za } from "./index-B_7DfcKr.js";
1
+ import { w as i, x as s, y as r, v as t, E as d, I as o, d as l, L as M, f as n, H as m, N as u, a0 as g, a4 as p, a2 as S, Z as c, $ as b, _ as A, a1 as y, a3 as E, z as V, B as h, ad as C, F, J as v, G as I, D as f, K as P, e as L, g as T, h as z, V as D, i as k, l as x, o as U, n as G, j as R, k as w, m as H, C as B, a as Q, c as j, an as q, U as J, Q as W, ao as K, ar as N, T as O, ai as X, av as Y, aj as Z, al as _, ap as $, as as aa, ak as ea, R as ia, p as sa, q as ra, t as ta, aq as da, at as oa, r as la, S as Ma, s as na, au as ma, b as ua, X as ga, Y as pa, W as Sa, P as ca, O as ba, a6 as Aa, a5 as ya, ae as Ea, ag as Va, a9 as ha, a8 as Ca, aa as Fa, ac as va, ab as Ia, u as fa, af as Pa, a7 as La, ah as Ta, am as za } from "./index-DpkdpuMs.js";
2
2
  import { V as ka, c as xa, g as Ua, a as Ga, b as Ra, h as wa, i as Ha, r as Ba } from "./editor-CYj5y5bp.js";
3
3
  export {
4
4
  i as AlbumBrowser,
@@ -70936,10 +70936,6 @@ const MAX_SEEK_RETRY_ATTEMPTS = 6;
70936
70936
  const MIN_SEEK_TIMEOUT_MS = 250;
70937
70937
  const MAX_SEEK_NUDGE_SECONDS = 0.25;
70938
70938
  const MIN_SEEK_EPSILON_SECONDS = 1e-3;
70939
- const HAVE_CURRENT_DATA = 2;
70940
- function shouldSkipRedundantSeek(video, targetTime) {
70941
- return video.readyState >= HAVE_CURRENT_DATA && !video.seeking && Math.abs(video.currentTime - targetTime) < MIN_SEEK_EPSILON_SECONDS;
70942
- }
70943
70939
  function normalizeSeekTimeoutMs(value) {
70944
70940
  if (!Number.isFinite(value) || value === void 0 || value < MIN_SEEK_TIMEOUT_MS) {
70945
70941
  return DEFAULT_SEEK_TIMEOUT_MS;
@@ -71050,6 +71046,7 @@ function resetTime(video) {
71050
71046
  } catch {
71051
71047
  }
71052
71048
  }
71049
+ const HAVE_CURRENT_DATA = 2;
71053
71050
  const PENDING_SEEK_DRAIN_TIMEOUT_MS = 1e3;
71054
71051
  function resolveFitMode(recipe) {
71055
71052
  var _a;
@@ -71223,7 +71220,7 @@ function seekVideoOnce(video, timeSec, timeoutMs) {
71223
71220
  `Video seek timed out at ${timeSec}s after ${timeoutMs}ms (readyState=${video.readyState}, seeking=${video.seeking}, currentTime=${video.currentTime.toFixed(4)}, duration=${video.duration}, networkState=${video.networkState}, paused=${video.paused}, ended=${video.ended})`
71224
71221
  ));
71225
71222
  }, timeoutMs);
71226
- if (shouldSkipRedundantSeek(video, timeSec)) {
71223
+ if (!video.seeking && Math.abs(video.currentTime - timeSec) < 1e-3) {
71227
71224
  ensureFrameDecoded(video, timeoutMs).then(() => finish()).catch((error) => {
71228
71225
  const message = error instanceof Error ? error.message : String(error);
71229
71226
  finish(new Error(`Frame decode failed at ${timeSec}s: ${message}`));
@@ -71366,9 +71363,6 @@ async function main() {
71366
71363
  width,
71367
71364
  height,
71368
71365
  fps,
71369
- sourceFrameRate,
71370
- recipeFrameRate,
71371
- frameRateSource,
71372
71366
  bitrate = 5e6,
71373
71367
  audioBitrate = 128e3
71374
71368
  } = config;
@@ -71383,18 +71377,6 @@ async function main() {
71383
71377
  const trimEnd = resolveTrimEnd(recipe, videoDuration);
71384
71378
  const exportDuration = Math.max(0, trimEnd - trimStart);
71385
71379
  const totalFrames = Math.max(1, Math.ceil(exportDuration * fps));
71386
- const keyFrameIntervalFrames = Math.max(1, Math.round(fps * 2));
71387
- console.log("[Render] Timing resolved", {
71388
- fps,
71389
- frameRateSource: frameRateSource ?? "unknown",
71390
- sourceFrameRate: sourceFrameRate ?? null,
71391
- recipeFrameRate: recipeFrameRate ?? null,
71392
- trimStart,
71393
- trimEnd,
71394
- exportDuration,
71395
- totalFrames,
71396
- keyFrameIntervalFrames
71397
- });
71398
71380
  const hasAudioEncoder = typeof AudioEncoder !== "undefined";
71399
71381
  console.log("[RenderAudio] AudioEncoder available:", hasAudioEncoder);
71400
71382
  if (!hasAudioEncoder) {
@@ -71529,14 +71511,6 @@ async function main() {
71529
71511
  }
71530
71512
  });
71531
71513
  encoder.configure(encoderConfig);
71532
- touchRenderHeartbeat("priming-first-frame");
71533
- await seekVideo(
71534
- video,
71535
- trimStart,
71536
- config.seekTimeoutMs ?? 4e3,
71537
- config.seekRetryAttempts ?? 3,
71538
- fps
71539
- );
71540
71514
  for (let frame = 0; frame < totalFrames; frame++) {
71541
71515
  const timeSec = trimStart + frame / fps;
71542
71516
  await seekVideo(
@@ -71549,14 +71523,13 @@ async function main() {
71549
71523
  await drawCurrentVideoFrameToCanvas(video, sourceCtx, sourceWidth, sourceHeight);
71550
71524
  videoTexture.source.update();
71551
71525
  app.render();
71552
- const timestamp = Math.round(frame / fps * 1e6);
71553
- const nextTimestamp = Math.round((frame + 1) / fps * 1e6);
71554
- const frameDuration = Math.max(1, nextTimestamp - timestamp);
71526
+ const timestamp = Math.floor(frame / fps * 1e6);
71527
+ const frameDuration = Math.floor(1e6 / fps);
71555
71528
  const videoFrame = new VideoFrame(
71556
71529
  app.canvas,
71557
71530
  { timestamp, duration: frameDuration }
71558
71531
  );
71559
- const keyFrame = frame % keyFrameIntervalFrames === 0;
71532
+ const keyFrame = frame % (fps * 2) === 0;
71560
71533
  encoder.encode(videoFrame, { keyFrame });
71561
71534
  videoFrame.close();
71562
71535
  if (encoder.encodeQueueSize > 5) {
@@ -9,7 +9,7 @@
9
9
  body { margin: 0; background: #000; overflow: hidden; }
10
10
  #render-canvas { display: block; }
11
11
  </style>
12
- <script type="module" crossorigin src="/assets/index-aDRQNAjC.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-y90zwXpc.js"></script>
13
13
  </head>
14
14
  <body>
15
15
  <video id="source-video" crossorigin="anonymous" preload="auto" muted playsinline></video>