@remotion/studio 4.0.217 → 4.0.219
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 +1 -1
- package/.turbo/turbo-test.log +85 -0
- package/bundle.ts +3 -0
- package/dist/components/LoopToggle.d.ts +2 -2
- package/dist/components/RenderModal/RenderModalBasic.js +2 -1
- package/dist/components/RenderModal/get-default-codecs.js +3 -2
- package/dist/esm/internals.mjs +6 -4
- package/dist/helpers/checkerboard-background.d.ts +1 -1
- package/dist/helpers/colors.d.ts +1 -1
- package/dist/helpers/use-menu-structure.js +1 -1
- package/package.json +7 -7
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-make.log
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
|
|
2
|
+
> @remotion/studio@4.0.217 test /Users/jonathanburger/remotion/packages/studio
|
|
3
|
+
> bun test src
|
|
4
|
+
|
|
5
|
+
[0m[1mbun test [0m[2mv1.1.29 (6d43b366)[0m
|
|
6
|
+
[0m
|
|
7
|
+
src/test/stringify-default-props.test.ts:
|
|
8
|
+
[0m[32m✓[0m[0m[1m Should stringify default props correctly[0m [0m[2m[1.05ms[0m[2m][0m
|
|
9
|
+
[0m[32m✓[0m[0m[1m Should stringify default props correctly[0m [0m[2m[0.79ms[0m[2m][0m
|
|
10
|
+
[0m
|
|
11
|
+
src/test/sequenced-timeline.test.ts:
|
|
12
|
+
[0m[32m✓[0m[0m[1m Should calculate sequences correctly[0m [0m[2m[3.04ms[0m[2m][0m
|
|
13
|
+
[0m
|
|
14
|
+
src/test/create-zod-values.test.ts:
|
|
15
|
+
[0m[32m✓[0m[0m[1m Should be able to create a string[0m [0m[2m[2.51ms[0m[2m][0m
|
|
16
|
+
[0m[32m✓[0m[0m[1m Should be able to create a number[0m [0m[2m[0.12ms[0m[2m][0m
|
|
17
|
+
[0m[32m✓[0m[0m[1m Should be able to create an object[0m [0m[2m[0.10ms[0m[2m][0m
|
|
18
|
+
[0m[32m✓[0m[0m[1m Should be able to create an array[0m [0m[2m[0.08ms[0m[2m][0m
|
|
19
|
+
[0m[32m✓[0m[0m[1m Should be able to create a union[0m [0m[2m[0.09ms[0m[2m][0m
|
|
20
|
+
[0m[32m✓[0m[0m[1m Zod literal[0m [0m[2m[0.05ms[0m[2m][0m
|
|
21
|
+
[0m[32m✓[0m[0m[1m Should be able to create a discriminated union[0m [0m[2m[0.50ms[0m[2m][0m
|
|
22
|
+
[0m[32m✓[0m[0m[1m Zod instanceof[0m [0m[2m[0.11ms[0m[2m][0m
|
|
23
|
+
[0m[32m✓[0m[0m[1m Zod intersection[0m [0m[2m[0.19ms[0m[2m][0m
|
|
24
|
+
[0m[32m✓[0m[0m[1m Zod tuples[0m [0m[2m[0.11ms[0m[2m][0m
|
|
25
|
+
[0m[32m✓[0m[0m[1m Zod record[0m [0m[2m[0.10ms[0m[2m][0m
|
|
26
|
+
[0m[32m✓[0m[0m[1m Zod map[0m [0m[2m[0.09ms[0m[2m][0m
|
|
27
|
+
[0m[32m✓[0m[0m[1m Zod lazy[0m [0m[2m[0.05ms[0m[2m][0m
|
|
28
|
+
[0m[32m✓[0m[0m[1m Zod set[0m [0m[2m[0.12ms[0m[2m][0m
|
|
29
|
+
[0m[32m✓[0m[0m[1m Zod function[0m [0m[2m[0.14ms[0m[2m][0m
|
|
30
|
+
[0m[32m✓[0m[0m[1m Zod undefined[0m [0m[2m[0.05ms[0m[2m][0m
|
|
31
|
+
[0m[32m✓[0m[0m[1m Zod null[0m [0m[2m[0.10ms[0m[2m][0m
|
|
32
|
+
[0m[32m✓[0m[0m[1m Zod enum[0m [0m[2m[0.08ms[0m[2m][0m
|
|
33
|
+
[0m[32m✓[0m[0m[1m Zod nativeEnum[0m [0m[2m[0.11ms[0m[2m][0m
|
|
34
|
+
[0m[32m✓[0m[0m[1m Zod optional[0m [0m[2m[0.08ms[0m[2m][0m
|
|
35
|
+
[0m[32m✓[0m[0m[1m Zod nullable[0m [0m[2m[0.07ms[0m[2m][0m
|
|
36
|
+
[0m[32m✓[0m[0m[1m Zod undefined[0m [0m[2m[0.07ms[0m[2m][0m
|
|
37
|
+
[0m[32m✓[0m[0m[1m Zod catch[0m [0m[2m[0.07ms[0m[2m][0m
|
|
38
|
+
[0m[32m✓[0m[0m[1m Zod promise[0m [0m[2m[0.08ms[0m[2m][0m
|
|
39
|
+
[0m[32m✓[0m[0m[1m Zod transform[0m [0m[2m[0.11ms[0m[2m][0m
|
|
40
|
+
[0m[32m✓[0m[0m[1m Zod branded[0m [0m[2m[0.08ms[0m[2m][0m
|
|
41
|
+
[0m[32m✓[0m[0m[1m Zod lazy[0m [0m[2m[0.15ms[0m[2m][0m
|
|
42
|
+
[0m[32m✓[0m[0m[1m Zod coerce[0m [0m[2m[0.06ms[0m[2m][0m
|
|
43
|
+
[0m[32m✓[0m[0m[1m Zod strict[0m [0m[2m[0.08ms[0m[2m][0m
|
|
44
|
+
[0m[32m✓[0m[0m[1m Should create a color[0m [0m[2m[0.07ms[0m[2m][0m
|
|
45
|
+
[0m[32m✓[0m[0m[1m Should create a textarea[0m [0m[2m[0.04ms[0m[2m][0m
|
|
46
|
+
[0m
|
|
47
|
+
src/test/folder-tree.test.ts:
|
|
48
|
+
[0m[32m✓[0m[0m[1m Should create a good folder tree with 1 item inside and 1 item outside[0m [0m[2m[0.18ms[0m[2m][0m
|
|
49
|
+
[0m[32m✓[0m[0m[1m Should handle nested folders well[0m [0m[2m[0.14ms[0m[2m][0m
|
|
50
|
+
[0m[32m✓[0m[0m[1m Should throw if two folders with the same name[0m [0m[2m[0.10ms[0m[2m][0m
|
|
51
|
+
[0m
|
|
52
|
+
src/test/big-timeline.test.ts:
|
|
53
|
+
[0m[32m✓[0m[0m[1m Should calculate timeline as expected[0m [0m[2m[1.67ms[0m[2m][0m
|
|
54
|
+
[0m
|
|
55
|
+
src/test/smooth-zoom.test.ts:
|
|
56
|
+
[0m[32m✓[0m[0m[1m Smoothen zoom[0m
|
|
57
|
+
[0m[32m✓[0m[0m[1m Unsmoothen zoom[0m [0m[2m[0.03ms[0m[2m][0m
|
|
58
|
+
[0m
|
|
59
|
+
src/test/validate-gui-output-filename.test.ts:
|
|
60
|
+
[0m[32m✓[0m[0m[1m Should catch dot after slash[0m [0m[2m[2.26ms[0m[2m][0m
|
|
61
|
+
[0m[32m✓[0m[0m[1m Should catch dot in front [0m [0m[2m[0.02ms[0m[2m][0m
|
|
62
|
+
[0m
|
|
63
|
+
src/test/timeline-sequence-layout.test.ts:
|
|
64
|
+
[0m[32m✓[0m[0m[1m Should test timeline sequence layout without max media duration[0m [0m[2m[0.10ms[0m[2m][0m
|
|
65
|
+
[0m[32m✓[0m[0m[1m Should test timeline sequence layout with max media duration[0m [0m[2m[0.04ms[0m[2m][0m
|
|
66
|
+
[0m
|
|
67
|
+
src/test/extract-zod-enums.test.ts:
|
|
68
|
+
[0m[32m✓[0m[0m[1m Extract Zod enums[0m [0m[2m[0.12ms[0m[2m][0m
|
|
69
|
+
[0m[32m✓[0m[0m[1m Extract Zod enums #2[0m [0m[2m[0.40ms[0m[2m][0m
|
|
70
|
+
[0m
|
|
71
|
+
src/test/color-math.test.ts:
|
|
72
|
+
[0m[32m✓[0m[0m[1m Color math[0m [0m[2m[0.23ms[0m[2m][0m
|
|
73
|
+
[0m
|
|
74
|
+
src/test/format-time.test.ts:
|
|
75
|
+
[0m[32m✓[0m[0m[1m Format time[0m [0m[2m[0.02ms[0m[2m][0m
|
|
76
|
+
[0m
|
|
77
|
+
src/test/timeline.test.ts:
|
|
78
|
+
[0m[32m✓[0m[0m[1m Should calculate timeline with no sequences[0m [0m[2m[0.03ms[0m[2m][0m
|
|
79
|
+
[0m[32m✓[0m[0m[1m Should calculate a basic timeline[0m [0m[2m[0.06ms[0m[2m][0m
|
|
80
|
+
[0m[32m✓[0m[0m[1m Should follow order of nesting[0m [0m[2m[0.07ms[0m[2m][0m
|
|
81
|
+
|
|
82
|
+
[0m[32m 51 pass[0m
|
|
83
|
+
[0m[2m 0 fail[0m
|
|
84
|
+
67 expect() calls
|
|
85
|
+
Ran 51 tests across 12 files. [0m[2m[[1m68.00ms[0m[2m][0m
|
package/bundle.ts
CHANGED
|
@@ -30,6 +30,8 @@ const internalsModule = await build({
|
|
|
30
30
|
'@remotion/renderer',
|
|
31
31
|
'@remotion/player',
|
|
32
32
|
'@remotion/renderer/client',
|
|
33
|
+
'@remotion/renderer/pure',
|
|
34
|
+
'@remotion/renderer/error-handling',
|
|
33
35
|
'source-map',
|
|
34
36
|
'zod',
|
|
35
37
|
'remotion/no-react',
|
|
@@ -40,6 +42,7 @@ const [enableFile] = internalsModule.outputs;
|
|
|
40
42
|
const internalsText = (await enableFile.text())
|
|
41
43
|
.replace(/jsxDEV/g, 'jsx')
|
|
42
44
|
.replace(/@remotion\/renderer\/client/g, '@remotion/renderer/client.js')
|
|
45
|
+
.replace(/@remotion\/renderer\/pure/g, '@remotion/renderer/pure.js')
|
|
43
46
|
.replace(/react\/jsx-dev-runtime/g, 'react/jsx-runtime');
|
|
44
47
|
|
|
45
48
|
await Bun.write('dist/esm/internals.mjs', internalsText);
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderModalBasic = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const client_1 = require("@remotion/renderer/client");
|
|
6
|
+
const pure_1 = require("@remotion/renderer/pure");
|
|
6
7
|
const react_1 = require("react");
|
|
7
8
|
const prores_labels_1 = require("../../helpers/prores-labels");
|
|
8
9
|
const use_file_existence_1 = require("../../helpers/use-file-existence");
|
|
@@ -25,7 +26,7 @@ const RenderModalBasic = ({ renderMode, imageFormatOptions, outName, codec, setV
|
|
|
25
26
|
const videoCodecOptions = (0, react_1.useMemo)(() => {
|
|
26
27
|
return client_1.BrowserSafeApis.validCodecs
|
|
27
28
|
.filter((c) => {
|
|
28
|
-
return
|
|
29
|
+
return pure_1.NoReactAPIs.isAudioCodec(c) === (renderMode === 'audio');
|
|
29
30
|
})
|
|
30
31
|
.map((codecOption) => {
|
|
31
32
|
return {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDefaultCodecs = void 0;
|
|
4
4
|
const client_1 = require("@remotion/renderer/client");
|
|
5
|
+
const pure_1 = require("@remotion/renderer/pure");
|
|
5
6
|
const getDefaultCodecs = ({ defaultConfigurationVideoCodec, compositionDefaultVideoCodec, renderType, defaultConfigurationAudioCodec, }) => {
|
|
6
7
|
var _a;
|
|
7
8
|
const userPreferredVideoCodec = (_a = compositionDefaultVideoCodec !== null && compositionDefaultVideoCodec !== void 0 ? compositionDefaultVideoCodec : defaultConfigurationVideoCodec) !== null && _a !== void 0 ? _a : 'h264';
|
|
@@ -16,14 +17,14 @@ const getDefaultCodecs = ({ defaultConfigurationVideoCodec, compositionDefaultVi
|
|
|
16
17
|
: defaultConfigurationAudioCodec === 'mp3'
|
|
17
18
|
? 'mp3'
|
|
18
19
|
: 'aac';
|
|
19
|
-
const isVideoCodecAnAudioCodec =
|
|
20
|
+
const isVideoCodecAnAudioCodec = pure_1.NoReactAPIs.isAudioCodec(userPreferredVideoCodec);
|
|
20
21
|
if (isVideoCodecAnAudioCodec) {
|
|
21
22
|
return {
|
|
22
23
|
initialAudioCodec: userPreferredVideoCodec,
|
|
23
24
|
initialRenderType: 'audio',
|
|
24
25
|
initialVideoCodec: userPreferredVideoCodec,
|
|
25
26
|
initialVideoCodecForAudioTab: userPreferredVideoCodecForAudioTab,
|
|
26
|
-
initialVideoCodecForVideoTab:
|
|
27
|
+
initialVideoCodecForVideoTab: pure_1.NoReactAPIs.isAudioCodec(defaultConfigurationVideoCodec)
|
|
27
28
|
? 'h264'
|
|
28
29
|
: defaultConfigurationVideoCodec,
|
|
29
30
|
};
|
package/dist/esm/internals.mjs
CHANGED
|
@@ -6727,7 +6727,7 @@ var useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
6727
6727
|
label: "YouTube",
|
|
6728
6728
|
onClick: () => {
|
|
6729
6729
|
closeMenu();
|
|
6730
|
-
openExternal("https://www.youtube/@remotion_dev");
|
|
6730
|
+
openExternal("https://www.youtube.com/@remotion_dev");
|
|
6731
6731
|
},
|
|
6732
6732
|
type: "item",
|
|
6733
6733
|
keyHint: null,
|
|
@@ -23869,6 +23869,7 @@ var RenderModalAudio = ({
|
|
|
23869
23869
|
|
|
23870
23870
|
// src/components/RenderModal/RenderModalBasic.tsx
|
|
23871
23871
|
import { BrowserSafeApis as BrowserSafeApis6 } from "@remotion/renderer/client.js";
|
|
23872
|
+
import { NoReactAPIs } from "@remotion/renderer/pure.js";
|
|
23872
23873
|
import { useCallback as useCallback112, useMemo as useMemo114 } from "react";
|
|
23873
23874
|
|
|
23874
23875
|
// src/helpers/prores-labels.ts
|
|
@@ -24088,7 +24089,7 @@ var RenderModalBasic = ({
|
|
|
24088
24089
|
const existence = useFileExistence(outName);
|
|
24089
24090
|
const videoCodecOptions = useMemo114(() => {
|
|
24090
24091
|
return BrowserSafeApis6.validCodecs.filter((c) => {
|
|
24091
|
-
return
|
|
24092
|
+
return NoReactAPIs.isAudioCodec(c) === (renderMode === "audio");
|
|
24092
24093
|
}).map((codecOption) => {
|
|
24093
24094
|
return {
|
|
24094
24095
|
label: humanReadableCodec(codecOption),
|
|
@@ -24696,6 +24697,7 @@ var RenderModalPicture = ({
|
|
|
24696
24697
|
|
|
24697
24698
|
// src/components/RenderModal/get-default-codecs.ts
|
|
24698
24699
|
import { BrowserSafeApis as BrowserSafeApis8 } from "@remotion/renderer/client.js";
|
|
24700
|
+
import { NoReactAPIs as NoReactAPIs2 } from "@remotion/renderer/pure.js";
|
|
24699
24701
|
var getDefaultCodecs = ({
|
|
24700
24702
|
defaultConfigurationVideoCodec,
|
|
24701
24703
|
compositionDefaultVideoCodec,
|
|
@@ -24704,14 +24706,14 @@ var getDefaultCodecs = ({
|
|
|
24704
24706
|
}) => {
|
|
24705
24707
|
const userPreferredVideoCodec = compositionDefaultVideoCodec ?? defaultConfigurationVideoCodec ?? "h264";
|
|
24706
24708
|
const userPreferredVideoCodecForAudioTab = userPreferredVideoCodec === "aac" ? "aac" : userPreferredVideoCodec === "mp3" ? "mp3" : userPreferredVideoCodec === "wav" ? "wav" : defaultConfigurationAudioCodec === "pcm-16" ? "wav" : defaultConfigurationAudioCodec === "mp3" ? "mp3" : "aac";
|
|
24707
|
-
const isVideoCodecAnAudioCodec =
|
|
24709
|
+
const isVideoCodecAnAudioCodec = NoReactAPIs2.isAudioCodec(userPreferredVideoCodec);
|
|
24708
24710
|
if (isVideoCodecAnAudioCodec) {
|
|
24709
24711
|
return {
|
|
24710
24712
|
initialAudioCodec: userPreferredVideoCodec,
|
|
24711
24713
|
initialRenderType: "audio",
|
|
24712
24714
|
initialVideoCodec: userPreferredVideoCodec,
|
|
24713
24715
|
initialVideoCodecForAudioTab: userPreferredVideoCodecForAudioTab,
|
|
24714
|
-
initialVideoCodecForVideoTab:
|
|
24716
|
+
initialVideoCodecForVideoTab: NoReactAPIs2.isAudioCodec(defaultConfigurationVideoCodec) ? "h264" : defaultConfigurationVideoCodec
|
|
24715
24717
|
};
|
|
24716
24718
|
}
|
|
24717
24719
|
const suitableAudioCodecForVideoCodec = BrowserSafeApis8.defaultAudioCodecs[userPreferredVideoCodec].compressed;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const getCheckerboardBackgroundSize: (size: number) => string;
|
|
2
2
|
export declare const getCheckerboardBackgroundPos: (size: number) => string;
|
|
3
|
-
export declare const checkerboardBackgroundColor: (checkerboard: boolean) => "
|
|
3
|
+
export declare const checkerboardBackgroundColor: (checkerboard: boolean) => "white" | "black";
|
|
4
4
|
export declare const checkerboardBackgroundImage: (checkerboard: boolean) => "\n linear-gradient(\n 45deg,\n rgba(0, 0, 0, 0.1) 25%,\n transparent 25%\n ),\n linear-gradient(135deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%),\n linear-gradient(135deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%)\n " | undefined;
|
package/dist/helpers/colors.d.ts
CHANGED
|
@@ -24,4 +24,4 @@ export declare const TIMELINE_TRACK_SEPARATOR = "rgba(0, 0, 0, 0.3)";
|
|
|
24
24
|
export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
|
|
25
25
|
selected: boolean;
|
|
26
26
|
hovered: boolean;
|
|
27
|
-
}) => "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)"
|
|
27
|
+
}) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
|
|
@@ -707,7 +707,7 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
707
707
|
label: 'YouTube',
|
|
708
708
|
onClick: () => {
|
|
709
709
|
closeMenu();
|
|
710
|
-
openExternal('https://www.youtube/@remotion_dev');
|
|
710
|
+
openExternal('https://www.youtube.com/@remotion_dev');
|
|
711
711
|
},
|
|
712
712
|
type: 'item',
|
|
713
713
|
keyHint: null,
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/studio",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.219",
|
|
7
7
|
"description": "APIs for interacting with the Remotion Studio",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"sideEffects": false,
|
|
@@ -18,18 +18,18 @@
|
|
|
18
18
|
"memfs": "3.4.3",
|
|
19
19
|
"source-map": "0.7.3",
|
|
20
20
|
"open": "^8.4.2",
|
|
21
|
-
"remotion": "4.0.
|
|
22
|
-
"@remotion/player": "4.0.
|
|
23
|
-
"@remotion/
|
|
24
|
-
"@remotion/
|
|
25
|
-
"@remotion/studio-shared": "4.0.
|
|
21
|
+
"remotion": "4.0.219",
|
|
22
|
+
"@remotion/player": "4.0.219",
|
|
23
|
+
"@remotion/renderer": "4.0.219",
|
|
24
|
+
"@remotion/media-utils": "4.0.219",
|
|
25
|
+
"@remotion/studio-shared": "4.0.219"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"react": "18.3.1",
|
|
29
29
|
"react-dom": "18.3.1",
|
|
30
30
|
"@types/semver": "^7.3.4",
|
|
31
31
|
"zod": "3.22.3",
|
|
32
|
-
"@remotion/zod-types": "4.0.
|
|
32
|
+
"@remotion/zod-types": "4.0.219"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|