remotion 4.0.533 → 4.0.534

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 (38) hide show
  1. package/dist/cjs/CompositionManager.d.ts +4 -0
  2. package/dist/cjs/CompositionManagerProvider.js +6 -9
  3. package/dist/cjs/HtmlInCanvas.js +2 -1
  4. package/dist/cjs/Sequence.d.ts +5 -0
  5. package/dist/cjs/Sequence.js +44 -11
  6. package/dist/cjs/SequenceManager.d.ts +9 -7
  7. package/dist/cjs/SequenceManager.js +24 -4
  8. package/dist/cjs/Track.d.ts +6 -0
  9. package/dist/cjs/Track.js +32 -0
  10. package/dist/cjs/animated-image/AnimatedImage.js +2 -1
  11. package/dist/cjs/canvas-image/CanvasImage.js +2 -1
  12. package/dist/cjs/effects/Solid.js +4 -3
  13. package/dist/cjs/effects/use-memoized-effects.d.ts +3 -1
  14. package/dist/cjs/effects/use-memoized-effects.js +8 -4
  15. package/dist/cjs/evaluate-source-expressions.d.ts +5 -0
  16. package/dist/cjs/evaluate-source-expressions.js +98 -0
  17. package/dist/cjs/freeze.js +6 -8
  18. package/dist/cjs/index.d.ts +2 -0
  19. package/dist/cjs/index.js +3 -1
  20. package/dist/cjs/internals.d.ts +10 -3
  21. package/dist/cjs/internals.js +8 -0
  22. package/dist/cjs/no-react.d.ts +2 -0
  23. package/dist/cjs/no-react.js +3 -0
  24. package/dist/cjs/series/index.js +3 -1
  25. package/dist/cjs/timeline-track-context.d.ts +9 -0
  26. package/dist/cjs/timeline-track-context.js +6 -0
  27. package/dist/cjs/use-media-in-timeline.js +14 -2
  28. package/dist/cjs/use-schema.d.ts +32 -18
  29. package/dist/cjs/version.d.ts +1 -1
  30. package/dist/cjs/version.js +1 -1
  31. package/dist/cjs/video/html5-video.js +1 -1
  32. package/dist/cjs/with-interactivity-schema.js +8 -2
  33. package/dist/cjs/wrap-remotion-context.d.ts +2 -0
  34. package/dist/cjs/wrap-remotion-context.js +8 -1
  35. package/dist/esm/index.mjs +404 -205
  36. package/dist/esm/no-react.mjs +78 -0
  37. package/dist/esm/version.mjs +1 -1
  38. package/package.json +2 -2
@@ -1,3 +1,79 @@
1
+ // src/evaluate-source-expressions.ts
2
+ var evaluateSourceNumericValue = (expression, config) => {
3
+ if (typeof expression === "number") {
4
+ return expression;
5
+ }
6
+ if (expression.type === "literal") {
7
+ return expression.value;
8
+ }
9
+ if (expression.type === "binary") {
10
+ const left = evaluateSourceNumericValue(expression.left, config);
11
+ const right = evaluateSourceNumericValue(expression.right, config);
12
+ switch (expression.operator) {
13
+ case "+":
14
+ return left + right;
15
+ case "-":
16
+ return left - right;
17
+ case "*":
18
+ return left * right;
19
+ case "/":
20
+ return left / right;
21
+ default:
22
+ throw new Error("Unknown source expression operator");
23
+ }
24
+ }
25
+ const value = expression.binding.type === "constant" ? expression.binding.value : config?.[expression.binding.field] ?? NaN;
26
+ if (expression.type === "video-config-multiplication") {
27
+ return value * expression.multiplier;
28
+ }
29
+ if (expression.type === "video-config-subtraction") {
30
+ return value - expression.subtrahend;
31
+ }
32
+ return value;
33
+ };
34
+ var evaluatedProps = new WeakMap;
35
+ var evaluateSourcePropStatuses = (props, config) => {
36
+ const configKey = config === null ? "" : `${config.durationInFrames}:${config.fps}:${config.width}:${config.height}`;
37
+ const cached = evaluatedProps.get(props) ?? new Map;
38
+ const existing = cached.get(configKey);
39
+ if (existing)
40
+ return existing;
41
+ const result = Object.fromEntries(Object.entries(props).map(([key, status]) => {
42
+ if (status.status === "computed") {
43
+ return [key, status];
44
+ }
45
+ const adjustment = status.keyframeDisplayOffsetAdjustment === null ? null : evaluateSourceNumericValue(status.keyframeDisplayOffsetAdjustment, config);
46
+ const rate = evaluateSourceNumericValue(status.keyframePlaybackRateAdjustment ?? 1, config);
47
+ if (adjustment !== null && !Number.isFinite(adjustment) || !Number.isFinite(rate) || rate <= 0) {
48
+ return [key, { status: "computed" }];
49
+ }
50
+ const timing = {
51
+ keyframeDisplayOffsetAdjustment: adjustment,
52
+ ...status.keyframePlaybackRateAdjustment === undefined ? {} : { keyframePlaybackRateAdjustment: rate }
53
+ };
54
+ if (status.status === "static") {
55
+ const value = status.numericExpression === undefined ? status.codeValue : evaluateSourceNumericValue(status.numericExpression, config);
56
+ return [
57
+ key,
58
+ status.numericExpression !== undefined && !Number.isFinite(value) ? { status: "computed" } : { ...status, ...timing, codeValue: value }
59
+ ];
60
+ }
61
+ const keyframes = status.keyframes.map((keyframe) => ({
62
+ ...keyframe,
63
+ frame: evaluateSourceNumericValue(keyframe.frame, config)
64
+ }));
65
+ if (keyframes.some((keyframe, index) => !Number.isFinite(keyframe.frame) || index > 0 && keyframe.frame <= keyframes[index - 1].frame)) {
66
+ return [key, { status: "computed" }];
67
+ }
68
+ return [key, { ...status, ...timing, keyframes }];
69
+ }));
70
+ cached.set(configKey, result);
71
+ if (cached.size > 8)
72
+ cached.delete(cached.keys().next().value);
73
+ evaluatedProps.set(props, cached);
74
+ return result;
75
+ };
76
+
1
77
  // src/bezier.ts
2
78
  var NEWTON_ITERATIONS = 4;
3
79
  var NEWTON_MIN_SLOPE = 0.001;
@@ -2445,6 +2521,8 @@ var getOffthreadVideoSource = ({
2445
2521
 
2446
2522
  // src/no-react.ts
2447
2523
  var NoReactInternals = {
2524
+ evaluateSourceNumericValue,
2525
+ evaluateSourcePropStatuses,
2448
2526
  processColor,
2449
2527
  truthy,
2450
2528
  validateFps,
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var VERSION = "4.0.533";
2
+ var VERSION = "4.0.534";
3
3
  export {
4
4
  VERSION
5
5
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/core"
4
4
  },
5
5
  "name": "remotion",
6
- "version": "4.0.533",
6
+ "version": "4.0.534",
7
7
  "description": "Make videos programmatically",
8
8
  "main": "dist/cjs/index.js",
9
9
  "types": "dist/cjs/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  "react-dom": "19.2.3",
36
36
  "webpack": "5.105.0",
37
37
  "zod": "4.5.4",
38
- "@remotion/eslint-config-internal": "4.0.533",
38
+ "@remotion/eslint-config-internal": "4.0.534",
39
39
  "eslint": "9.19.0",
40
40
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
41
41
  },