@remotion/gif 4.0.250 → 4.0.252
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.turbo/turbo-make.log
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GifForRendering = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
/* eslint-disable no-console */
|
|
6
5
|
const react_1 = require("react");
|
|
7
6
|
const remotion_1 = require("remotion");
|
|
8
7
|
const canvas_1 = require("./canvas");
|
|
@@ -26,12 +25,13 @@ exports.GifForRendering = (0, react_1.forwardRef)(({ src, width, height, onLoad,
|
|
|
26
25
|
return parsedGif;
|
|
27
26
|
});
|
|
28
27
|
const [error, setError] = (0, react_1.useState)(null);
|
|
29
|
-
const [
|
|
28
|
+
const [renderHandle] = (0, react_1.useState)(() => (0, remotion_1.delayRender)(`Rendering <Gif/> with src="${resolvedSrc}"`));
|
|
29
|
+
const logLevel = remotion_1.Internals.useLogLevel();
|
|
30
30
|
(0, react_1.useEffect)(() => {
|
|
31
31
|
return () => {
|
|
32
|
-
(0, remotion_1.continueRender)(
|
|
32
|
+
(0, remotion_1.continueRender)(renderHandle);
|
|
33
33
|
};
|
|
34
|
-
}, [
|
|
34
|
+
}, [renderHandle]);
|
|
35
35
|
const index = (0, useCurrentGifIndex_1.useCurrentGifIndex)({
|
|
36
36
|
delays: state.delays,
|
|
37
37
|
loopBehavior,
|
|
@@ -46,21 +46,25 @@ exports.GifForRendering = (0, react_1.forwardRef)(({ src, width, height, onLoad,
|
|
|
46
46
|
let done = false;
|
|
47
47
|
let aborted = false;
|
|
48
48
|
const newHandle = (0, remotion_1.delayRender)('Loading <Gif /> with src=' + resolvedSrc);
|
|
49
|
+
remotion_1.Internals.Log.verbose(logLevel, 'Loading GIF with source', resolvedSrc);
|
|
50
|
+
const time = Date.now();
|
|
49
51
|
(0, react_tools_1.parseGif)({ controller, src: resolvedSrc })
|
|
50
52
|
.then((parsed) => {
|
|
51
53
|
var _a;
|
|
54
|
+
remotion_1.Internals.Log.verbose(logLevel, 'Parsed GIF in', Date.now() - time, 'ms');
|
|
52
55
|
(_a = currentOnLoad.current) === null || _a === void 0 ? void 0 : _a.call(currentOnLoad, parsed);
|
|
53
56
|
update(parsed);
|
|
54
57
|
gif_cache_1.volatileGifCache.set(resolvedSrc, parsed);
|
|
55
58
|
done = true;
|
|
56
59
|
(0, remotion_1.continueRender)(newHandle);
|
|
57
|
-
(0, remotion_1.continueRender)(
|
|
60
|
+
(0, remotion_1.continueRender)(renderHandle);
|
|
58
61
|
})
|
|
59
62
|
.catch((err) => {
|
|
60
63
|
if (aborted) {
|
|
61
64
|
(0, remotion_1.continueRender)(newHandle);
|
|
62
65
|
return;
|
|
63
66
|
}
|
|
67
|
+
remotion_1.Internals.Log.error('Failed to load GIF', err);
|
|
64
68
|
if (currentOnError.current) {
|
|
65
69
|
currentOnError.current(err);
|
|
66
70
|
}
|
|
@@ -74,10 +78,11 @@ exports.GifForRendering = (0, react_1.forwardRef)(({ src, width, height, onLoad,
|
|
|
74
78
|
controller.abort();
|
|
75
79
|
}
|
|
76
80
|
(0, remotion_1.continueRender)(newHandle);
|
|
81
|
+
(0, remotion_1.continueRender)(renderHandle);
|
|
77
82
|
};
|
|
78
|
-
}, [
|
|
83
|
+
}, [renderHandle, logLevel, resolvedSrc]);
|
|
79
84
|
if (error) {
|
|
80
|
-
|
|
85
|
+
remotion_1.Internals.Log.error(error.stack);
|
|
81
86
|
if ((0, is_cors_error_1.isCorsError)(error)) {
|
|
82
87
|
throw new Error(`Failed to render GIF with source ${src}: "${error.message}". You must enable CORS for this URL.`);
|
|
83
88
|
}
|
|
@@ -4,6 +4,7 @@ exports.getGifDurationInSeconds = void 0;
|
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const gif_cache_1 = require("./gif-cache");
|
|
6
6
|
const react_tools_1 = require("./react-tools");
|
|
7
|
+
const resolve_gif_source_1 = require("./resolve-gif-source");
|
|
7
8
|
const calcDuration = (parsed) => {
|
|
8
9
|
return (parsed.delays.reduce((sum, delay) => sum + delay, 0) / 1000);
|
|
9
10
|
};
|
|
@@ -13,7 +14,7 @@ const calcDuration = (parsed) => {
|
|
|
13
14
|
*/
|
|
14
15
|
const getGifDurationInSeconds = async (src) => {
|
|
15
16
|
var _a;
|
|
16
|
-
const resolvedSrc =
|
|
17
|
+
const resolvedSrc = (0, resolve_gif_source_1.resolveGifSource)(src);
|
|
17
18
|
const inCache = (_a = gif_cache_1.volatileGifCache.get(resolvedSrc)) !== null && _a !== void 0 ? _a : gif_cache_1.manuallyManagedGifCache.get(resolvedSrc);
|
|
18
19
|
if (inCache) {
|
|
19
20
|
return calcDuration(inCache);
|
package/dist/esm/index.mjs
CHANGED
|
@@ -787,12 +787,20 @@ var parseWithWorker = (src2) => {
|
|
|
787
787
|
};
|
|
788
788
|
};
|
|
789
789
|
|
|
790
|
+
// src/resolve-gif-source.ts
|
|
791
|
+
var resolveGifSource = (src2) => {
|
|
792
|
+
if (typeof window === "undefined") {
|
|
793
|
+
return src2;
|
|
794
|
+
}
|
|
795
|
+
return new URL(src2, window.origin).href;
|
|
796
|
+
};
|
|
797
|
+
|
|
790
798
|
// src/get-gif-duration-in-seconds.ts
|
|
791
799
|
var calcDuration = (parsed) => {
|
|
792
800
|
return parsed.delays.reduce((sum, delay) => sum + delay, 0) / 1000;
|
|
793
801
|
};
|
|
794
802
|
var getGifDurationInSeconds = async (src2) => {
|
|
795
|
-
const resolvedSrc =
|
|
803
|
+
const resolvedSrc = resolveGifSource(src2);
|
|
796
804
|
const inCache = volatileGifCache.get(resolvedSrc) ?? manuallyManagedGifCache.get(resolvedSrc);
|
|
797
805
|
if (inCache) {
|
|
798
806
|
return calcDuration(inCache);
|
|
@@ -992,14 +1000,6 @@ var isCorsError = (error) => {
|
|
|
992
1000
|
return error.message.includes("Failed to fetch") || error.message.includes("Load failed") || error.message.includes("NetworkError when attempting to fetch resource");
|
|
993
1001
|
};
|
|
994
1002
|
|
|
995
|
-
// src/resolve-gif-source.ts
|
|
996
|
-
var resolveGifSource = (src2) => {
|
|
997
|
-
if (typeof window === "undefined") {
|
|
998
|
-
return src2;
|
|
999
|
-
}
|
|
1000
|
-
return new URL(src2, window.origin).href;
|
|
1001
|
-
};
|
|
1002
|
-
|
|
1003
1003
|
// src/useCurrentGifIndex.tsx
|
|
1004
1004
|
import { useMemo as useMemo2 } from "react";
|
|
1005
1005
|
import { useCurrentFrame, useVideoConfig } from "remotion";
|
|
@@ -1129,7 +1129,7 @@ var GifForDevelopment = forwardRef2(({
|
|
|
1129
1129
|
|
|
1130
1130
|
// src/GifForRendering.tsx
|
|
1131
1131
|
import { forwardRef as forwardRef3, useEffect as useEffect4, useRef as useRef3, useState as useState4 } from "react";
|
|
1132
|
-
import { continueRender as continueRender2, delayRender as delayRender2 } from "remotion";
|
|
1132
|
+
import { continueRender as continueRender2, delayRender as delayRender2, Internals } from "remotion";
|
|
1133
1133
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
1134
1134
|
var GifForRendering = forwardRef3(({
|
|
1135
1135
|
src: src2,
|
|
@@ -1156,12 +1156,13 @@ var GifForRendering = forwardRef3(({
|
|
|
1156
1156
|
return parsedGif;
|
|
1157
1157
|
});
|
|
1158
1158
|
const [error, setError] = useState4(null);
|
|
1159
|
-
const [
|
|
1159
|
+
const [renderHandle] = useState4(() => delayRender2(`Rendering <Gif/> with src="${resolvedSrc}"`));
|
|
1160
|
+
const logLevel = Internals.useLogLevel();
|
|
1160
1161
|
useEffect4(() => {
|
|
1161
1162
|
return () => {
|
|
1162
|
-
continueRender2(
|
|
1163
|
+
continueRender2(renderHandle);
|
|
1163
1164
|
};
|
|
1164
|
-
}, [
|
|
1165
|
+
}, [renderHandle]);
|
|
1165
1166
|
const index = useCurrentGifIndex({
|
|
1166
1167
|
delays: state.delays,
|
|
1167
1168
|
loopBehavior,
|
|
@@ -1176,18 +1177,22 @@ var GifForRendering = forwardRef3(({
|
|
|
1176
1177
|
let done = false;
|
|
1177
1178
|
let aborted = false;
|
|
1178
1179
|
const newHandle = delayRender2("Loading <Gif /> with src=" + resolvedSrc);
|
|
1180
|
+
Internals.Log.verbose(logLevel, "Loading GIF with source", resolvedSrc);
|
|
1181
|
+
const time = Date.now();
|
|
1179
1182
|
parseGif({ controller, src: resolvedSrc }).then((parsed) => {
|
|
1183
|
+
Internals.Log.verbose(logLevel, "Parsed GIF in", Date.now() - time, "ms");
|
|
1180
1184
|
currentOnLoad.current?.(parsed);
|
|
1181
1185
|
update(parsed);
|
|
1182
1186
|
volatileGifCache.set(resolvedSrc, parsed);
|
|
1183
1187
|
done = true;
|
|
1184
1188
|
continueRender2(newHandle);
|
|
1185
|
-
continueRender2(
|
|
1189
|
+
continueRender2(renderHandle);
|
|
1186
1190
|
}).catch((err) => {
|
|
1187
1191
|
if (aborted) {
|
|
1188
1192
|
continueRender2(newHandle);
|
|
1189
1193
|
return;
|
|
1190
1194
|
}
|
|
1195
|
+
Internals.Log.error("Failed to load GIF", err);
|
|
1191
1196
|
if (currentOnError.current) {
|
|
1192
1197
|
currentOnError.current(err);
|
|
1193
1198
|
} else {
|
|
@@ -1200,10 +1205,11 @@ var GifForRendering = forwardRef3(({
|
|
|
1200
1205
|
controller.abort();
|
|
1201
1206
|
}
|
|
1202
1207
|
continueRender2(newHandle);
|
|
1208
|
+
continueRender2(renderHandle);
|
|
1203
1209
|
};
|
|
1204
|
-
}, [
|
|
1210
|
+
}, [renderHandle, logLevel, resolvedSrc]);
|
|
1205
1211
|
if (error) {
|
|
1206
|
-
|
|
1212
|
+
Internals.Log.error(error.stack);
|
|
1207
1213
|
if (isCorsError(error)) {
|
|
1208
1214
|
throw new Error(`Failed to render GIF with source ${src2}: "${error.message}". You must enable CORS for this URL.`);
|
|
1209
1215
|
}
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/gif"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/gif",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.252",
|
|
7
7
|
"description": "Embed GIFs in a Remotion video",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"bugs": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"remotion": "4.0.
|
|
27
|
+
"remotion": "4.0.252"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"esbuild": "0.24.0",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"react-dom": "19.0.0",
|
|
33
33
|
"webpack": "5.96.1",
|
|
34
34
|
"eslint": "9.14.0",
|
|
35
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
35
|
+
"@remotion/eslint-config-internal": "4.0.252"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": ">=16.8.0",
|