remotion 4.0.538 → 4.0.539

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.
@@ -35,6 +35,7 @@ const usePreload = (src) => {
35
35
  return preloads[withoutHashFragment];
36
36
  };
37
37
  exports.usePreload = usePreload;
38
+ const activePrefetches = new Map();
38
39
  const blobToBase64 = function (blob) {
39
40
  const reader = new FileReader();
40
41
  return new Promise((resolve, reject) => {
@@ -98,6 +99,7 @@ const prefetch = (src, options) => {
98
99
  });
99
100
  waitUntilDone.catch(() => undefined);
100
101
  const controller = new AbortController();
102
+ const prefetchId = Symbol('prefetch');
101
103
  let reader = null;
102
104
  fetch(srcWithoutHash, {
103
105
  signal: controller.signal,
@@ -148,7 +150,11 @@ const prefetch = (src, options) => {
148
150
  return URL.createObjectURL(actualBlob);
149
151
  })
150
152
  .then((url) => {
153
+ var _a;
151
154
  if (canceled) {
155
+ if (url && method === 'blob-url') {
156
+ URL.revokeObjectURL(url);
157
+ }
152
158
  return;
153
159
  }
154
160
  (0, playback_logging_js_1.playbackLogging)({
@@ -158,6 +164,9 @@ const prefetch = (src, options) => {
158
164
  mountTime: null,
159
165
  });
160
166
  objectUrl = url;
167
+ const prefetchesForSrc = (_a = activePrefetches.get(srcWithoutHash)) !== null && _a !== void 0 ? _a : new Map();
168
+ prefetchesForSrc.set(prefetchId, objectUrl);
169
+ activePrefetches.set(srcWithoutHash, prefetchesForSrc);
161
170
  (0, prefetch_state_js_1.setPreloads)((p) => ({
162
171
  ...p,
163
172
  [srcWithoutHash]: objectUrl,
@@ -172,6 +181,10 @@ const prefetch = (src, options) => {
172
181
  });
173
182
  return {
174
183
  free: () => {
184
+ if (canceled) {
185
+ return;
186
+ }
187
+ canceled = true;
175
188
  (0, playback_logging_js_1.playbackLogging)({
176
189
  logLevel,
177
190
  tag: 'prefetch',
@@ -182,17 +195,29 @@ const prefetch = (src, options) => {
182
195
  if (method === 'blob-url') {
183
196
  URL.revokeObjectURL(objectUrl);
184
197
  }
198
+ const prefetchesForSrc = activePrefetches.get(srcWithoutHash);
199
+ prefetchesForSrc === null || prefetchesForSrc === void 0 ? void 0 : prefetchesForSrc.delete(prefetchId);
200
+ const remainingUrl = prefetchesForSrc
201
+ ? [...prefetchesForSrc.values()].pop()
202
+ : undefined;
203
+ if ((prefetchesForSrc === null || prefetchesForSrc === void 0 ? void 0 : prefetchesForSrc.size) === 0) {
204
+ activePrefetches.delete(srcWithoutHash);
205
+ }
185
206
  (0, prefetch_state_js_1.setPreloads)((p) => {
207
+ if (p[srcWithoutHash] === remainingUrl) {
208
+ return p;
209
+ }
186
210
  const copy = { ...p };
187
- delete copy[srcWithoutHash];
211
+ if (remainingUrl === undefined) {
212
+ delete copy[srcWithoutHash];
213
+ }
214
+ else {
215
+ copy[srcWithoutHash] = remainingUrl;
216
+ }
188
217
  return copy;
189
218
  });
190
219
  }
191
220
  else {
192
- if (canceled) {
193
- return;
194
- }
195
- canceled = true;
196
221
  const cancellationError = new Error('free() called');
197
222
  reject(cancellationError);
198
223
  try {
@@ -0,0 +1,58 @@
1
+ import type React from 'react';
2
+ export declare const SEQUENCE_ORDER_MARKER: unique symbol;
3
+ export declare const SEQUENCE_MANAGER_ORDER_MARKER: unique symbol;
4
+ export declare const COMPOSITION_ORDER_MARKER: unique symbol;
5
+ export declare const FOLDER_ORDER_MARKER: unique symbol;
6
+ export declare const COMPOSITION_MANAGER_ORDER_MARKER: unique symbol;
7
+ export declare const COMMIT_ORDER_EVENT = "remotion:commit-order";
8
+ export type CompositionAndFolderOrderItem = {
9
+ readonly type: 'composition';
10
+ readonly id: string;
11
+ } | {
12
+ readonly type: 'folder';
13
+ readonly id: string;
14
+ };
15
+ export declare const getCompositionAndFolderOrderKey: (item: CompositionAndFolderOrderItem) => string;
16
+ export type CommitOrderEventDetail = {
17
+ readonly sequenceManagers: readonly {
18
+ readonly managerId: string;
19
+ readonly sequenceIds: readonly string[];
20
+ }[];
21
+ readonly compositionManagers: readonly {
22
+ readonly managerId: string;
23
+ readonly compositionAndFolderOrder: readonly CompositionAndFolderOrderItem[];
24
+ }[];
25
+ };
26
+ export declare const getFolderOrderId: ({ name, parent, }: {
27
+ readonly name: string;
28
+ readonly parent: string | null;
29
+ }) => string;
30
+ export declare const SequenceOrderMarker: React.FC<{
31
+ readonly children: React.ReactNode;
32
+ readonly sequenceId: string;
33
+ readonly outlineChildrenRef: React.RefObject<Element | null> | null;
34
+ }>;
35
+ export declare const SequenceManagerOrderMarker: React.FC<{
36
+ readonly children: React.ReactNode;
37
+ readonly managerId: string;
38
+ }>;
39
+ export declare const CompositionOrderMarker: React.FC<{
40
+ readonly children: React.ReactNode;
41
+ readonly compositionId: string;
42
+ }>;
43
+ export declare const FolderOrderMarker: React.FC<{
44
+ readonly children: React.ReactNode;
45
+ readonly folderId: string;
46
+ }>;
47
+ export declare const CompositionManagerOrderMarker: React.FC<{
48
+ readonly children: React.ReactNode;
49
+ readonly managerId: string;
50
+ }>;
51
+ export declare const CommitOrderInternals: {
52
+ compositionManagerMarker: symbol;
53
+ compositionMarker: symbol;
54
+ folderMarker: symbol;
55
+ sequenceManagerMarker: symbol;
56
+ sequenceMarker: symbol;
57
+ eventName: string;
58
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommitOrderInternals = exports.CompositionManagerOrderMarker = exports.FolderOrderMarker = exports.CompositionOrderMarker = exports.SequenceManagerOrderMarker = exports.SequenceOrderMarker = exports.getFolderOrderId = exports.getCompositionAndFolderOrderKey = exports.COMMIT_ORDER_EVENT = exports.COMPOSITION_MANAGER_ORDER_MARKER = exports.FOLDER_ORDER_MARKER = exports.COMPOSITION_ORDER_MARKER = exports.SEQUENCE_MANAGER_ORDER_MARKER = exports.SEQUENCE_ORDER_MARKER = void 0;
4
+ exports.SEQUENCE_ORDER_MARKER = Symbol.for('remotion.sequence-order-marker');
5
+ exports.SEQUENCE_MANAGER_ORDER_MARKER = Symbol.for('remotion.sequence-manager-order-marker');
6
+ exports.COMPOSITION_ORDER_MARKER = Symbol.for('remotion.composition-order-marker');
7
+ exports.FOLDER_ORDER_MARKER = Symbol.for('remotion.folder-order-marker');
8
+ exports.COMPOSITION_MANAGER_ORDER_MARKER = Symbol.for('remotion.composition-manager-order-marker');
9
+ exports.COMMIT_ORDER_EVENT = 'remotion:commit-order';
10
+ const getCompositionAndFolderOrderKey = (item) => `${item.type}:${item.id}`;
11
+ exports.getCompositionAndFolderOrderKey = getCompositionAndFolderOrderKey;
12
+ const getFolderOrderId = ({ name, parent, }) => [parent, name].filter(Boolean).join('/');
13
+ exports.getFolderOrderId = getFolderOrderId;
14
+ const SequenceOrderMarker = ({ children }) => children;
15
+ exports.SequenceOrderMarker = SequenceOrderMarker;
16
+ Object.defineProperty(exports.SequenceOrderMarker, exports.SEQUENCE_ORDER_MARKER, {
17
+ value: true,
18
+ });
19
+ const SequenceManagerOrderMarker = ({ children }) => children;
20
+ exports.SequenceManagerOrderMarker = SequenceManagerOrderMarker;
21
+ Object.defineProperty(exports.SequenceManagerOrderMarker, exports.SEQUENCE_MANAGER_ORDER_MARKER, {
22
+ value: true,
23
+ });
24
+ const CompositionOrderMarker = ({ children }) => children;
25
+ exports.CompositionOrderMarker = CompositionOrderMarker;
26
+ Object.defineProperty(exports.CompositionOrderMarker, exports.COMPOSITION_ORDER_MARKER, {
27
+ value: true,
28
+ });
29
+ const FolderOrderMarker = ({ children }) => children;
30
+ exports.FolderOrderMarker = FolderOrderMarker;
31
+ Object.defineProperty(exports.FolderOrderMarker, exports.FOLDER_ORDER_MARKER, {
32
+ value: true,
33
+ });
34
+ const CompositionManagerOrderMarker = ({ children }) => children;
35
+ exports.CompositionManagerOrderMarker = CompositionManagerOrderMarker;
36
+ Object.defineProperty(exports.CompositionManagerOrderMarker, exports.COMPOSITION_MANAGER_ORDER_MARKER, { value: true });
37
+ exports.CommitOrderInternals = {
38
+ compositionManagerMarker: exports.COMPOSITION_MANAGER_ORDER_MARKER,
39
+ compositionMarker: exports.COMPOSITION_ORDER_MARKER,
40
+ folderMarker: exports.FOLDER_ORDER_MARKER,
41
+ sequenceManagerMarker: exports.SEQUENCE_MANAGER_ORDER_MARKER,
42
+ sequenceMarker: exports.SEQUENCE_ORDER_MARKER,
43
+ eventName: exports.COMMIT_ORDER_EVENT,
44
+ };
@@ -53,9 +53,7 @@ function spring({ frame: passedFrame, fps, config = {}, from = 0, to = 1, durati
53
53
  config,
54
54
  });
55
55
  const inner = config.overshootClamping
56
- ? to >= from
57
- ? Math.min(spr.current, to)
58
- : Math.max(spr.current, to)
56
+ ? Math.min(spr.current, 1)
59
57
  : spr.current;
60
58
  const interpolated = from === 0 && to === 1 ? inner : (0, interpolate_js_1.interpolate)(inner, [0, 1], [from, to]);
61
59
  return interpolated;
@@ -92,10 +92,6 @@ const useLazyComponent = ({ compProps, componentName, noSuspense, }) => {
92
92
  ]);
93
93
  const lazy = (0, react_1.useMemo)(() => {
94
94
  if ('component' in compProps) {
95
- // In SSR, suspense is not yet supported, we cannot use React.lazy
96
- if (typeof document === 'undefined' || noSuspense) {
97
- return compProps.component;
98
- }
99
95
  return Wrapper;
100
96
  }
101
97
  if ('lazyComponent' in compProps &&
@@ -112,6 +108,11 @@ const useLazyComponent = ({ compProps, componentName, noSuspense, }) => {
112
108
  // compProps.component — the stable wrapper subscribes to componentStore instead.
113
109
  // eslint-disable-next-line react-hooks/exhaustive-deps
114
110
  }, [lazyComponentFromProps, componentStore, Wrapper]);
111
+ // Read the current component on every render when bypassing the wrapper.
112
+ if ('component' in compProps &&
113
+ (typeof document === 'undefined' || noSuspense)) {
114
+ return compProps.component;
115
+ }
115
116
  return lazy;
116
117
  };
117
118
  exports.useLazyComponent = useLazyComponent;
@@ -3,4 +3,4 @@
3
3
  * @see [Documentation](https://remotion.dev/docs/version)
4
4
  * @returns {string} The current version of the remotion package
5
5
  */
6
- export declare const VERSION = "4.0.538";
6
+ export declare const VERSION = "4.0.539";
@@ -7,4 +7,4 @@ exports.VERSION = void 0;
7
7
  * @see [Documentation](https://remotion.dev/docs/version)
8
8
  * @returns {string} The current version of the remotion package
9
9
  */
10
- exports.VERSION = '4.0.538';
10
+ exports.VERSION = '4.0.539';