remotion 4.1.0-alpha7 → 4.1.0-alpha9

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/dist/cjs/Img.d.ts CHANGED
@@ -6,4 +6,4 @@ import React from 'react';
6
6
  export declare const Img: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "src"> & {
7
7
  maxRetries?: number | undefined;
8
8
  src: string;
9
- }, "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "crossOrigin" | "src" | "height" | "width" | "loading" | "referrerPolicy" | "alt" | "decoding" | "sizes" | "srcSet" | "useMap" | "maxRetries"> & React.RefAttributes<HTMLImageElement>>;
9
+ }, "property" | "key" | "is" | "height" | "width" | "id" | "onEnded" | "nonce" | "onResize" | "onResizeCapture" | "crossOrigin" | "src" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "loading" | "referrerPolicy" | "alt" | "decoding" | "sizes" | "srcSet" | "useMap" | "maxRetries"> & React.RefAttributes<HTMLImageElement>>;
@@ -4,9 +4,9 @@ import type { RemotionMainAudioProps } from './props.js';
4
4
  * @description With this component, you can add audio to your video. All audio formats which are supported by Chromium are supported by the component.
5
5
  * @see [Documentation](https://www.remotion.dev/docs/audio)
6
6
  */
7
- export declare const Audio: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
7
+ export declare const Audio: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
8
8
  volume?: import("../volume-prop.js").VolumeProp | undefined;
9
9
  playbackRate?: number | undefined;
10
10
  acceptableTimeShiftInSeconds?: number | undefined;
11
11
  allowAmplificationDuringRender?: boolean | undefined;
12
- } & RemotionMainAudioProps, "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "volume" | "allowAmplificationDuringRender" | "controlsList" | "crossOrigin" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "playbackRate" | "acceptableTimeShiftInSeconds" | keyof RemotionMainAudioProps> & React.RefAttributes<HTMLAudioElement>>;
12
+ } & RemotionMainAudioProps, "property" | "key" | "is" | "id" | "controlsList" | "crossOrigin" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "playbackRate" | "volume" | "allowAmplificationDuringRender" | "acceptableTimeShiftInSeconds" | keyof RemotionMainAudioProps> & React.RefAttributes<HTMLAudioElement>>;
@@ -1,6 +1,6 @@
1
1
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  import React from 'react';
3
- export declare const AudioForDevelopment: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
3
+ export declare const AudioForDevelopment: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
4
4
  volume?: import("../volume-prop.js").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
6
  acceptableTimeShiftInSeconds?: number | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  import React from 'react';
3
- export declare const AudioForRendering: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
3
+ export declare const AudioForRendering: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
4
4
  volume?: import("../volume-prop.js").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
6
  acceptableTimeShiftInSeconds?: number | undefined;
@@ -1 +1 @@
1
- export declare const getInputProps: () => any;
1
+ export declare const getInputProps: () => Record<string, unknown>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getInputProps = void 0;
4
4
  const get_environment_js_1 = require("../get-environment.js");
5
+ const input_props_serialization_js_1 = require("../input-props-serialization.js");
5
6
  let didWarnSSRImport = false;
6
7
  const warnOnceSSRImport = () => {
7
8
  if (didWarnSSRImport) {
@@ -25,7 +26,7 @@ const getInputProps = () => {
25
26
  if (!param) {
26
27
  return {};
27
28
  }
28
- const parsed = JSON.parse(param);
29
+ const parsed = (0, input_props_serialization_js_1.deserializeJSONWithCustomFields)(param);
29
30
  return parsed;
30
31
  };
31
32
  exports.getInputProps = getInputProps;
@@ -9,7 +9,10 @@ declare global {
9
9
  remotion_cancelledError: string | undefined;
10
10
  remotion_getCompositionNames: () => string[];
11
11
  getStaticCompositions: () => Promise<VideoConfig[]>;
12
- remotion_calculateComposition: (compId: string) => Promise<VideoConfig>;
12
+ remotion_calculateComposition: (compId: string) => Promise<Omit<VideoConfig, 'defaultProps' | 'props'> & {
13
+ serializedDefaultPropsWithCustomSchema: string;
14
+ serializedResolvedPropsWithCustomSchema: string;
15
+ }>;
13
16
  remotion_setBundleMode: (bundleMode: BundleState) => void;
14
17
  remotion_staticBase: string;
15
18
  remotion_staticFiles: StaticFile[];
@@ -31,7 +34,7 @@ declare global {
31
34
  remotion_isPlayer: boolean;
32
35
  remotion_isBuilding: undefined | (() => void);
33
36
  remotion_finishedBuilding: undefined | (() => void);
34
- siteVersion: '7';
37
+ siteVersion: '8';
35
38
  remotion_version: string;
36
39
  remotion_imported: string | boolean;
37
40
  }
@@ -43,7 +46,7 @@ export type BundleState = {
43
46
  } | {
44
47
  type: 'composition';
45
48
  compositionName: string;
46
- props: Record<string, unknown>;
49
+ serializedResolvedPropsWithSchema: string;
47
50
  compositionHeight: number;
48
51
  compositionDurationInFrames: number;
49
52
  compositionWidth: number;
@@ -0,0 +1,14 @@
1
+ export type SerializedJSONWithCustomFields = {
2
+ serializedString: string;
3
+ customDateUsed: boolean;
4
+ customFileUsed: boolean;
5
+ mapUsed: boolean;
6
+ setUsed: boolean;
7
+ };
8
+ export declare const FILE_TOKEN = "remotion-file:";
9
+ export declare const serializeJSONWithDate: ({ data, indent, staticBase, }: {
10
+ data: Record<string, unknown>;
11
+ indent: number | undefined;
12
+ staticBase: string | null;
13
+ }) => SerializedJSONWithCustomFields;
14
+ export declare const deserializeJSONWithCustomFields: (data: string) => Record<string, unknown>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ // Must keep this file in sync with the one in packages/lambda/src/shared/serialize-props.ts!
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.deserializeJSONWithCustomFields = exports.serializeJSONWithDate = exports.FILE_TOKEN = void 0;
5
+ const static_file_js_1 = require("./static-file.js");
6
+ const DATE_TOKEN = 'remotion-date:';
7
+ exports.FILE_TOKEN = 'remotion-file:';
8
+ const serializeJSONWithDate = ({ data, indent, staticBase, }) => {
9
+ let customDateUsed = false;
10
+ let customFileUsed = false;
11
+ let mapUsed = false;
12
+ let setUsed = false;
13
+ const serializedString = JSON.stringify(data, function (key, value) {
14
+ const item = this[key];
15
+ if (item instanceof Date) {
16
+ customDateUsed = true;
17
+ return `${DATE_TOKEN}${item.toISOString()}`;
18
+ }
19
+ if (item instanceof Map) {
20
+ mapUsed = true;
21
+ return value;
22
+ }
23
+ if (item instanceof Set) {
24
+ setUsed = true;
25
+ return value;
26
+ }
27
+ if (typeof item === 'string' &&
28
+ staticBase !== null &&
29
+ item.startsWith(staticBase)) {
30
+ customFileUsed = true;
31
+ return `${exports.FILE_TOKEN}${item.replace(staticBase + '/', '')}`;
32
+ }
33
+ return value;
34
+ }, indent);
35
+ return { serializedString, customDateUsed, customFileUsed, mapUsed, setUsed };
36
+ };
37
+ exports.serializeJSONWithDate = serializeJSONWithDate;
38
+ const deserializeJSONWithCustomFields = (data) => {
39
+ return JSON.parse(data, (_, value) => {
40
+ if (typeof value === 'string' && value.startsWith(DATE_TOKEN)) {
41
+ return new Date(value.replace(DATE_TOKEN, ''));
42
+ }
43
+ if (typeof value === 'string' && value.startsWith(exports.FILE_TOKEN)) {
44
+ return (0, static_file_js_1.staticFile)(value.replace(exports.FILE_TOKEN, ''));
45
+ }
46
+ return value;
47
+ });
48
+ };
49
+ exports.deserializeJSONWithCustomFields = deserializeJSONWithCustomFields;
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
2
1
  import type { CompProps } from './Composition.js';
3
2
  import type { TAsset, TCompMetadata, TComposition, TSequence } from './CompositionManager.js';
4
3
  import type { CompositionManagerContext } from './CompositionManagerContext.js';
5
4
  import * as CSSUtils from './default-css.js';
6
5
  import type { RemotionEnvironment } from './get-environment.js';
6
+ import type { SerializedJSONWithCustomFields } from './input-props-serialization.js';
7
7
  import { processColor } from './interpolate-colors.js';
8
8
  import type { SetTimelineContextValue, TimelineContextValue } from './timeline-position-state.js';
9
9
  import * as TimelinePosition from './timeline-position-state.js';
@@ -129,5 +129,12 @@ export declare const Internals: {
129
129
  readonly bundleName: "bundle.js";
130
130
  readonly persistCurrentFrame: (frame: number, composition: string) => void;
131
131
  readonly useTimelineSetFrame: () => (u: import("react").SetStateAction<Record<string, number>>) => void;
132
+ readonly serializeJSONWithDate: ({ data, indent, staticBase, }: {
133
+ data: Record<string, unknown>;
134
+ indent: number | undefined;
135
+ staticBase: string | null;
136
+ }) => SerializedJSONWithCustomFields;
137
+ readonly deserializeJSONWithCustomFields: (data: string) => Record<string, unknown>;
138
+ readonly FILE_TOKEN: "remotion-file:";
132
139
  };
133
- export type { TComposition, Timeline, TCompMetadata, TSequence, TAsset, TimelineContextValue, SetTimelineContextValue, CompProps, CompositionManagerContext, MediaVolumeContextValue, SetMediaVolumeContextValue, RemotionEnvironment, };
140
+ export type { TComposition, Timeline, TCompMetadata, TSequence, TAsset, TimelineContextValue, SetTimelineContextValue, CompProps, CompositionManagerContext, MediaVolumeContextValue, SetMediaVolumeContextValue, RemotionEnvironment, SerializedJSONWithCustomFields, };
@@ -34,6 +34,7 @@ const delay_render_js_1 = require("./delay-render.js");
34
34
  const EditorProps_js_1 = require("./EditorProps.js");
35
35
  const get_environment_js_1 = require("./get-environment.js");
36
36
  const get_preview_dom_element_js_1 = require("./get-preview-dom-element.js");
37
+ const input_props_serialization_js_1 = require("./input-props-serialization.js");
37
38
  const interpolate_colors_js_1 = require("./interpolate-colors.js");
38
39
  const is_player_js_1 = require("./is-player.js");
39
40
  const nonce_js_1 = require("./nonce.js");
@@ -120,4 +121,7 @@ exports.Internals = {
120
121
  bundleName: 'bundle.js',
121
122
  persistCurrentFrame: timeline_position_state_js_1.persistCurrentFrame,
122
123
  useTimelineSetFrame: timeline_position_state_js_1.useTimelineSetFrame,
124
+ serializeJSONWithDate: input_props_serialization_js_1.serializeJSONWithDate,
125
+ deserializeJSONWithCustomFields: input_props_serialization_js_1.deserializeJSONWithCustomFields,
126
+ FILE_TOKEN: input_props_serialization_js_1.FILE_TOKEN,
123
127
  };
@@ -1 +1 @@
1
- export declare const VERSION = "4.1.0-alpha7";
1
+ export declare const VERSION = "4.1.0-alpha9";
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Automatically generated on publish
5
- exports.VERSION = '4.1.0-alpha7';
5
+ exports.VERSION = '4.1.0-alpha9';
@@ -4,7 +4,7 @@ import type { RemotionMainVideoProps } from './props.js';
4
4
  * @description allows you to include a video file in your Remotion project. It wraps the native HTMLVideoElement.
5
5
  * @see [Documentation](https://www.remotion.dev/docs/video)
6
6
  */
7
- export declare const Video: (props: Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "nonce" | "onEnded" | "autoPlay" | "controls"> & {
7
+ export declare const Video: (props: Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "autoPlay" | "controls" | "onEnded" | "nonce"> & {
8
8
  volume?: import("../volume-prop.js").VolumeProp | undefined;
9
9
  playbackRate?: number | undefined;
10
10
  acceptableTimeShiftInSeconds?: number | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  import React from 'react';
3
- export declare const VideoForDevelopment: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "nonce" | "onEnded" | "autoPlay" | "controls"> & {
3
+ export declare const VideoForDevelopment: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "autoPlay" | "controls" | "onEnded" | "nonce"> & {
4
4
  volume?: import("../volume-prop.js").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
6
  acceptableTimeShiftInSeconds?: number | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  import React from 'react';
3
- export declare const VideoForRendering: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "nonce" | "onEnded" | "autoPlay" | "controls"> & {
3
+ export declare const VideoForRendering: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, "autoPlay" | "controls" | "onEnded" | "nonce"> & {
4
4
  volume?: import("../volume-prop.js").VolumeProp | undefined;
5
5
  playbackRate?: number | undefined;
6
6
  acceptableTimeShiftInSeconds?: number | undefined;
@@ -58,7 +58,7 @@ function truthy(value) {
58
58
  }
59
59
 
60
60
  // Automatically generated on publish
61
- const VERSION = '4.1.0-alpha7';
61
+ const VERSION = '4.1.0-alpha9';
62
62
 
63
63
  const checkMultipleRemotionVersions = () => {
64
64
  if (typeof globalThis === 'undefined') {
@@ -292,6 +292,142 @@ const CompositionManager = createContext({
292
292
  currentCompositionMetadata: null,
293
293
  });
294
294
 
295
+ const problematicCharacters = {
296
+ '%3A': ':',
297
+ '%2F': '/',
298
+ '%3F': '?',
299
+ '%23': '#',
300
+ '%5B': '[',
301
+ '%5D': ']',
302
+ '%40': '@',
303
+ '%21': '!',
304
+ '%24': '$',
305
+ '%26': '&',
306
+ '%27': "'",
307
+ '%28': '(',
308
+ '%29': ')',
309
+ '%2A': '*',
310
+ '%2B': '+',
311
+ '%2C': ',',
312
+ '%3B': ';',
313
+ };
314
+ const didWarn$1 = {};
315
+ const warnOnce$1 = (message) => {
316
+ if (didWarn$1[message]) {
317
+ return;
318
+ }
319
+ console.warn(message);
320
+ didWarn$1[message] = true;
321
+ };
322
+ const includesHexOfUnsafeChar = (path) => {
323
+ for (const key of Object.keys(problematicCharacters)) {
324
+ if (path.includes(key)) {
325
+ return { containsHex: true, hexCode: key };
326
+ }
327
+ }
328
+ return { containsHex: false };
329
+ };
330
+ const trimLeadingSlash = (path) => {
331
+ if (path.startsWith('/')) {
332
+ return trimLeadingSlash(path.substring(1));
333
+ }
334
+ return path;
335
+ };
336
+ const inner = (path) => {
337
+ if (typeof window !== 'undefined' && window.remotion_staticBase) {
338
+ return `${window.remotion_staticBase}/${trimLeadingSlash(path)}`;
339
+ }
340
+ return `/${trimLeadingSlash(path)}`;
341
+ };
342
+ const encodeBySplitting = (path) => {
343
+ const splitBySlash = path.split('/');
344
+ const encodedArray = splitBySlash.map((element) => {
345
+ return encodeURIComponent(element);
346
+ });
347
+ const merged = encodedArray.join('/');
348
+ return merged;
349
+ };
350
+ /**
351
+ * @description Reference a file from the public/ folder. If the file does not appear in the autocomplete, type the path manually.
352
+ * @see [Documentation](https://www.remotion.dev/docs/staticfile)
353
+ */
354
+ const staticFile = (path) => {
355
+ if (path.startsWith('http://') || path.startsWith('https://')) {
356
+ throw new TypeError(`staticFile() does not support remote URLs - got "${path}". Instead, pass the URL without wrapping it in staticFile(). See: https://remotion.dev/docs/staticfile-remote-urls`);
357
+ }
358
+ if (path.startsWith('..') || path.startsWith('./')) {
359
+ throw new TypeError(`staticFile() does not support relative paths - got "${path}". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);
360
+ }
361
+ if (path.startsWith('/Users') ||
362
+ path.startsWith('/home') ||
363
+ path.startsWith('/tmp') ||
364
+ path.startsWith('/etc') ||
365
+ path.startsWith('/opt') ||
366
+ path.startsWith('/var') ||
367
+ path.startsWith('C:') ||
368
+ path.startsWith('D:') ||
369
+ path.startsWith('E:')) {
370
+ throw new TypeError(`staticFile() does not support absolute paths - got "${path}". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);
371
+ }
372
+ if (path.startsWith('public/')) {
373
+ throw new TypeError(`Do not include the public/ prefix when using staticFile() - got "${path}". See: https://remotion.dev/docs/staticfile-relative-paths`);
374
+ }
375
+ const includesHex = includesHexOfUnsafeChar(path);
376
+ if (includesHex.containsHex) {
377
+ warnOnce$1(`WARNING: You seem to pass an already encoded path (path contains ${includesHex.hexCode}). Since Remotion 4.0, the encoding is done by staticFile() itself. You may want to remove a encodeURIComponent() wrapping.`);
378
+ }
379
+ const preprocessed = encodeBySplitting(path);
380
+ const preparsed = inner(preprocessed);
381
+ if (!preparsed.startsWith('/')) {
382
+ return `/${preparsed}`;
383
+ }
384
+ return preparsed;
385
+ };
386
+
387
+ // Must keep this file in sync with the one in packages/lambda/src/shared/serialize-props.ts!
388
+ const DATE_TOKEN = 'remotion-date:';
389
+ const FILE_TOKEN = 'remotion-file:';
390
+ const serializeJSONWithDate = ({ data, indent, staticBase, }) => {
391
+ let customDateUsed = false;
392
+ let customFileUsed = false;
393
+ let mapUsed = false;
394
+ let setUsed = false;
395
+ const serializedString = JSON.stringify(data, function (key, value) {
396
+ const item = this[key];
397
+ if (item instanceof Date) {
398
+ customDateUsed = true;
399
+ return `${DATE_TOKEN}${item.toISOString()}`;
400
+ }
401
+ if (item instanceof Map) {
402
+ mapUsed = true;
403
+ return value;
404
+ }
405
+ if (item instanceof Set) {
406
+ setUsed = true;
407
+ return value;
408
+ }
409
+ if (typeof item === 'string' &&
410
+ staticBase !== null &&
411
+ item.startsWith(staticBase)) {
412
+ customFileUsed = true;
413
+ return `${FILE_TOKEN}${item.replace(staticBase + '/', '')}`;
414
+ }
415
+ return value;
416
+ }, indent);
417
+ return { serializedString, customDateUsed, customFileUsed, mapUsed, setUsed };
418
+ };
419
+ const deserializeJSONWithCustomFields = (data) => {
420
+ return JSON.parse(data, (_, value) => {
421
+ if (typeof value === 'string' && value.startsWith(DATE_TOKEN)) {
422
+ return new Date(value.replace(DATE_TOKEN, ''));
423
+ }
424
+ if (typeof value === 'string' && value.startsWith(FILE_TOKEN)) {
425
+ return staticFile(value.replace(FILE_TOKEN, ''));
426
+ }
427
+ return value;
428
+ });
429
+ };
430
+
295
431
  let didWarnSSRImport = false;
296
432
  const warnOnceSSRImport = () => {
297
433
  if (didWarnSSRImport) {
@@ -315,7 +451,7 @@ const getInputProps = () => {
315
451
  if (!param) {
316
452
  return {};
317
453
  }
318
- const parsed = JSON.parse(param);
454
+ const parsed = deserializeJSONWithCustomFields(param);
319
455
  return parsed;
320
456
  };
321
457
 
@@ -1325,13 +1461,13 @@ const evaluateVolume = ({ frame, volume, mediaVolume = 1, allowAmplificationDuri
1325
1461
  return Math.max(0, Math.min(maxVolume, evaluated));
1326
1462
  };
1327
1463
 
1328
- const didWarn$1 = {};
1329
- const warnOnce$1 = (message) => {
1330
- if (didWarn$1[message]) {
1464
+ const didWarn = {};
1465
+ const warnOnce = (message) => {
1466
+ if (didWarn[message]) {
1331
1467
  return;
1332
1468
  }
1333
1469
  console.warn(message);
1334
- didWarn$1[message] = true;
1470
+ didWarn[message] = true;
1335
1471
  };
1336
1472
  const useMediaInTimeline = ({ volume, mediaVolume, mediaRef, src, mediaType, playbackRate, }) => {
1337
1473
  const videoConfig = useVideoConfig();
@@ -1369,7 +1505,7 @@ const useMediaInTimeline = ({ volume, mediaVolume, mediaRef, src, mediaType, pla
1369
1505
  }, [duration, startsAt, volume, mediaVolume]);
1370
1506
  useEffect(() => {
1371
1507
  if (typeof volume === 'number' && volume !== initialVolume) {
1372
- warnOnce$1(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/using-audio/#controlling-volume`);
1508
+ warnOnce(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/using-audio/#controlling-volume`);
1373
1509
  }
1374
1510
  }, [initialVolume, mediaType, src, volume]);
1375
1511
  useEffect(() => {
@@ -3691,6 +3827,9 @@ const Internals = {
3691
3827
  bundleName: 'bundle.js',
3692
3828
  persistCurrentFrame,
3693
3829
  useTimelineSetFrame,
3830
+ serializeJSONWithDate,
3831
+ deserializeJSONWithCustomFields,
3832
+ FILE_TOKEN,
3694
3833
  };
3695
3834
 
3696
3835
  const flattenChildren = (children) => {
@@ -4011,98 +4150,6 @@ function spring({ frame: passedFrame, fps, config = {}, from = 0, to = 1, durati
4011
4150
  return Math.max(spr.current, to);
4012
4151
  }
4013
4152
 
4014
- const problematicCharacters = {
4015
- '%3A': ':',
4016
- '%2F': '/',
4017
- '%3F': '?',
4018
- '%23': '#',
4019
- '%5B': '[',
4020
- '%5D': ']',
4021
- '%40': '@',
4022
- '%21': '!',
4023
- '%24': '$',
4024
- '%26': '&',
4025
- '%27': "'",
4026
- '%28': '(',
4027
- '%29': ')',
4028
- '%2A': '*',
4029
- '%2B': '+',
4030
- '%2C': ',',
4031
- '%3B': ';',
4032
- };
4033
- const didWarn = {};
4034
- const warnOnce = (message) => {
4035
- if (didWarn[message]) {
4036
- return;
4037
- }
4038
- console.warn(message);
4039
- didWarn[message] = true;
4040
- };
4041
- const includesHexOfUnsafeChar = (path) => {
4042
- for (const key of Object.keys(problematicCharacters)) {
4043
- if (path.includes(key)) {
4044
- return { containsHex: true, hexCode: key };
4045
- }
4046
- }
4047
- return { containsHex: false };
4048
- };
4049
- const trimLeadingSlash = (path) => {
4050
- if (path.startsWith('/')) {
4051
- return trimLeadingSlash(path.substring(1));
4052
- }
4053
- return path;
4054
- };
4055
- const inner = (path) => {
4056
- if (typeof window !== 'undefined' && window.remotion_staticBase) {
4057
- return `${window.remotion_staticBase}/${trimLeadingSlash(path)}`;
4058
- }
4059
- return `/${trimLeadingSlash(path)}`;
4060
- };
4061
- const encodeBySplitting = (path) => {
4062
- const splitBySlash = path.split('/');
4063
- const encodedArray = splitBySlash.map((element) => {
4064
- return encodeURIComponent(element);
4065
- });
4066
- const merged = encodedArray.join('/');
4067
- return merged;
4068
- };
4069
- /**
4070
- * @description Reference a file from the public/ folder. If the file does not appear in the autocomplete, type the path manually.
4071
- * @see [Documentation](https://www.remotion.dev/docs/staticfile)
4072
- */
4073
- const staticFile = (path) => {
4074
- if (path.startsWith('http://') || path.startsWith('https://')) {
4075
- throw new TypeError(`staticFile() does not support remote URLs - got "${path}". Instead, pass the URL without wrapping it in staticFile(). See: https://remotion.dev/docs/staticfile-remote-urls`);
4076
- }
4077
- if (path.startsWith('..') || path.startsWith('./')) {
4078
- throw new TypeError(`staticFile() does not support relative paths - got "${path}". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);
4079
- }
4080
- if (path.startsWith('/Users') ||
4081
- path.startsWith('/home') ||
4082
- path.startsWith('/tmp') ||
4083
- path.startsWith('/etc') ||
4084
- path.startsWith('/opt') ||
4085
- path.startsWith('/var') ||
4086
- path.startsWith('C:') ||
4087
- path.startsWith('D:') ||
4088
- path.startsWith('E:')) {
4089
- throw new TypeError(`staticFile() does not support absolute paths - got "${path}". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths`);
4090
- }
4091
- if (path.startsWith('public/')) {
4092
- throw new TypeError(`Do not include the public/ prefix when using staticFile() - got "${path}". See: https://remotion.dev/docs/staticfile-relative-paths`);
4093
- }
4094
- const includesHex = includesHexOfUnsafeChar(path);
4095
- if (includesHex.containsHex) {
4096
- warnOnce(`WARNING: You seem to pass an already encoded path (path contains ${includesHex.hexCode}). Since Remotion 4.0, the encoding is done by staticFile() itself. You may want to remove a encodeURIComponent() wrapping.`);
4097
- }
4098
- const preprocessed = encodeBySplitting(path);
4099
- const preparsed = inner(preprocessed);
4100
- if (!preparsed.startsWith('/')) {
4101
- return `/${preparsed}`;
4102
- }
4103
- return preparsed;
4104
- };
4105
-
4106
4153
  /**
4107
4154
  * @description A `<Still />` is a `<Composition />` that is only 1 frame long.
4108
4155
  * @see [Documentation](https://www.remotion.dev/docs/still)
@@ -1,4 +1,4 @@
1
1
  // Automatically generated on publish
2
- const VERSION = '4.1.0-alpha7';
2
+ const VERSION = '4.1.0-alpha9';
3
3
 
4
4
  export { VERSION };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remotion",
3
- "version": "4.1.0-alpha7",
3
+ "version": "4.1.0-alpha9",
4
4
  "description": "Render videos in React",
5
5
  "main": "dist/cjs/index.js",
6
6
  "types": "dist/cjs/index.d.ts",