remotion 4.0.506 → 4.0.508

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 (35) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/Interactive.d.ts +10 -0
  3. package/dist/cjs/SequenceManager.d.ts +6 -0
  4. package/dist/cjs/SequenceManager.js +20 -0
  5. package/dist/cjs/audio/shared-audio-tags.d.ts +2 -1
  6. package/dist/cjs/audio/shared-audio-tags.js +22 -6
  7. package/dist/cjs/audio/wait-until-actually-resumed.d.ts +2 -1
  8. package/dist/cjs/audio/wait-until-actually-resumed.js +34 -4
  9. package/dist/cjs/buffering.js +17 -8
  10. package/dist/cjs/interactivity-schema.d.ts +10 -0
  11. package/dist/cjs/interactivity-schema.js +8 -0
  12. package/dist/cjs/internals.d.ts +6 -3
  13. package/dist/cjs/internals.js +4 -0
  14. package/dist/cjs/interpolate-keyframed-status.js +2 -0
  15. package/dist/cjs/interpolate.js +92 -11
  16. package/dist/cjs/portal-node.d.ts +3 -0
  17. package/dist/cjs/portal-node.js +22 -1
  18. package/dist/cjs/render-resource-manager.d.ts +13 -0
  19. package/dist/cjs/render-resource-manager.js +47 -0
  20. package/dist/cjs/sequence-node-path.d.ts +1 -1
  21. package/dist/cjs/use-current-scale.js +10 -6
  22. package/dist/cjs/use-schema.d.ts +4 -1
  23. package/dist/cjs/version.d.ts +1 -1
  24. package/dist/cjs/version.js +1 -1
  25. package/dist/cjs/with-interactivity-schema.js +3 -1
  26. package/dist/esm/index.mjs +296 -77
  27. package/dist/esm/no-react.mjs +100 -16
  28. package/dist/esm/version.mjs +1 -1
  29. package/package.json +2 -2
  30. package/dist/cjs/interpolate-translate.d.ts +0 -8
  31. package/dist/cjs/interpolate-translate.js +0 -70
  32. package/dist/cjs/sequence-field-schema.d.ts +0 -425
  33. package/dist/cjs/sequence-field-schema.js +0 -133
  34. package/dist/cjs/wrap-in-schema.d.ts +0 -20
  35. package/dist/cjs/wrap-in-schema.js +0 -203
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RenderResourceManagerContext = exports.makeRenderResourceManager = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const makeRenderResourceManager = () => {
9
+ const resources = new Map();
10
+ let disposed = false;
11
+ return {
12
+ getOrCreateResource: ({ key, create, }) => {
13
+ if (disposed) {
14
+ throw new Error('Render resource manager has already been disposed');
15
+ }
16
+ const existing = resources.get(key);
17
+ if (existing) {
18
+ return existing.resource;
19
+ }
20
+ const created = create();
21
+ resources.set(key, created);
22
+ return created.resource;
23
+ },
24
+ dispose: () => {
25
+ if (disposed) {
26
+ return;
27
+ }
28
+ disposed = true;
29
+ const resourcesToDispose = Array.from(resources.values());
30
+ resources.clear();
31
+ let firstError = null;
32
+ for (const resource of resourcesToDispose) {
33
+ try {
34
+ resource.dispose();
35
+ }
36
+ catch (error) {
37
+ firstError !== null && firstError !== void 0 ? firstError : (firstError = error);
38
+ }
39
+ }
40
+ if (firstError !== null) {
41
+ throw firstError;
42
+ }
43
+ },
44
+ };
45
+ };
46
+ exports.makeRenderResourceManager = makeRenderResourceManager;
47
+ exports.RenderResourceManagerContext = react_1.default.createContext(null);
@@ -4,7 +4,7 @@ export type OverrideToNodePathGetters = {
4
4
  overrideIdToNodePathMappings: OverrideIdToNodePaths;
5
5
  };
6
6
  export type OverrideToNodeSetters = {
7
- setOverrideIdToNodePath: (overrideId: string, nodePath: SequencePropsSubscriptionKey) => void;
7
+ setOverrideIdToNodePath: (overrideId: string, nodePath: SequencePropsSubscriptionKey | null) => void;
8
8
  };
9
9
  export declare const OverrideIdsToNodePathsGettersContext: import("react").Context<OverrideToNodePathGetters>;
10
10
  export declare const OverrideIdsToNodePathsSettersContext: import("react").Context<OverrideToNodeSetters>;
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.useCurrentScale = exports.calculateScale = exports.PreviewSizeContext = exports.CurrentScaleContext = void 0;
37
37
  const react_1 = __importStar(require("react"));
38
+ const portal_node_1 = require("./portal-node");
38
39
  const use_remotion_environment_1 = require("./use-remotion-environment");
39
40
  const use_unsafe_video_config_1 = require("./use-unsafe-video-config");
40
41
  exports.CurrentScaleContext = react_1.default.createContext(null);
@@ -65,6 +66,12 @@ const useCurrentScale = (options) => {
65
66
  const zoomContext = react_1.default.useContext(exports.PreviewSizeContext);
66
67
  const config = (0, use_unsafe_video_config_1.useUnsafeVideoConfig)();
67
68
  const env = (0, use_remotion_environment_1.useRemotionEnvironment)();
69
+ const [portalScale, setPortalScale] = react_1.default.useState(portal_node_1.getPortalNodeCurrentScale);
70
+ react_1.default.useEffect(() => {
71
+ const update = () => setPortalScale((0, portal_node_1.getPortalNodeCurrentScale)());
72
+ update();
73
+ return (0, portal_node_1.subscribeToPortalNodeCurrentScale)(update);
74
+ }, []);
68
75
  if (hasContext === null || config === null || zoomContext === null) {
69
76
  if (options === null || options === void 0 ? void 0 : options.dontThrowIfOutsideOfRemotion) {
70
77
  return 1;
@@ -82,11 +89,8 @@ const useCurrentScale = (options) => {
82
89
  if (hasContext.type === 'scale') {
83
90
  return hasContext.scale;
84
91
  }
85
- return (0, exports.calculateScale)({
86
- canvasSize: hasContext.canvasSizeForAuto,
87
- compositionHeight: config.height,
88
- compositionWidth: config.width,
89
- previewSize: zoomContext.size.size,
90
- });
92
+ // Studio initially renders the composition into an unscaled offscreen portal.
93
+ // Return the scale that the preview has actually committed to that portal.
94
+ return portalScale;
91
95
  };
92
96
  exports.useCurrentScale = useCurrentScale;
@@ -35,6 +35,9 @@ export type VideoConfigNumericExpression = {
35
35
  export type CanUpdateSequencePropStatusLinearEasing = {
36
36
  type: 'linear';
37
37
  };
38
+ export type CanUpdateSequencePropStatusStep1Easing = {
39
+ type: 'step1';
40
+ };
38
41
  export type CanUpdateSequencePropStatusBezierEasing = {
39
42
  type: 'bezier';
40
43
  x1: number;
@@ -51,7 +54,7 @@ export type CanUpdateSequencePropStatusSpringEasing = {
51
54
  overshootClamping: boolean;
52
55
  durationRestThreshold: number | null;
53
56
  };
54
- export type CanUpdateSequencePropStatusEasing = CanUpdateSequencePropStatusLinearEasing | CanUpdateSequencePropStatusBezierEasing | CanUpdateSequencePropStatusSpringEasing;
57
+ export type CanUpdateSequencePropStatusEasing = CanUpdateSequencePropStatusLinearEasing | CanUpdateSequencePropStatusStep1Easing | CanUpdateSequencePropStatusBezierEasing | CanUpdateSequencePropStatusSpringEasing;
55
58
  export declare const DEFAULT_LINEAR_EASING: CanUpdateSequencePropStatusLinearEasing;
56
59
  export type CanUpdateSequencePropStatusClamping = {
57
60
  left: ExtrapolateType;
@@ -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.506";
6
+ export declare const VERSION = "4.0.508";
@@ -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.506';
10
+ exports.VERSION = '4.0.508';
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.withInteractivitySchema = exports.mergeValues = exports.selectActiveKeys = exports.readValuesFromProps = exports.getRuntimeValueForSchemaKey = exports.getNestedValue = void 0;
37
37
  const react_1 = __importStar(require("react"));
38
+ const CanUseRemotionHooks_js_1 = require("./CanUseRemotionHooks.js");
38
39
  const delete_nested_key_js_1 = require("./delete-nested-key.js");
39
40
  const use_memoized_effects_js_1 = require("./effects/use-memoized-effects.js");
40
41
  const enable_sequence_stack_traces_js_1 = require("./enable-sequence-stack-traces.js");
@@ -130,7 +131,8 @@ const withInteractivitySchema = ({ Component, componentName, componentIdentity,
130
131
  const { _remotionInternalStack: internalStack, ...propsWithoutInternalStack } = props;
131
132
  const cleanProps = propsWithoutInternalStack;
132
133
  const env = (0, use_remotion_environment_js_1.useRemotionEnvironment)();
133
- if (!env.isStudio || env.isRendering) {
134
+ const canUseRemotionHooks = (0, react_1.useContext)(CanUseRemotionHooks_js_1.CanUseRemotionHooks);
135
+ if (!env.isStudio || env.isRendering || !canUseRemotionHooks) {
134
136
  return react_1.default.createElement(Component, {
135
137
  ...cleanProps,
136
138
  controls: null,