Add .gitignore to exclude all node packages and lock files

This commit is contained in:
Adolfo Reyna
2026-02-23 21:56:04 -05:00
parent faae96c9ed
commit dcc5c6c044
9747 changed files with 1555105 additions and 2 deletions
@@ -0,0 +1,7 @@
# @remotion/studio-shared
Internal package for shared objects between the Studio backend and frontend
## Usage
This is an internal package and has no documentation.
@@ -0,0 +1,2 @@
export declare function splitAnsi(str: string): string[];
export declare const stripAnsi: (str: string) => string;
@@ -0,0 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stripAnsi = void 0;
exports.splitAnsi = splitAnsi;
const ansiRegex = () => {
const pattern = [
'[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
].join('|');
return new RegExp(pattern, 'g');
};
function splitAnsi(str) {
const parts = str.match(ansiRegex());
if (!parts)
return [str];
const result = [];
let offset = 0;
let ptr = 0;
for (let i = 0; i < parts.length; i++) {
offset = str.indexOf(parts[i], offset);
if (offset === -1)
throw new Error('Could not split string');
if (ptr !== offset)
result.push(str.slice(ptr, offset));
if (ptr === offset && result.length) {
result[result.length - 1] += parts[i];
}
else {
if (offset === 0)
result.push('');
result.push(parts[i]);
}
ptr = offset + parts[i].length;
}
result.push(str.slice(ptr));
return result;
}
const stripAnsi = (str) => {
if (typeof str !== 'string') {
throw new TypeError(`Expected a \`string\`, got \`${typeof str}\``);
}
return str.replace(ansiRegex(), '');
};
exports.stripAnsi = stripAnsi;
@@ -0,0 +1,188 @@
import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
import type { HardwareAccelerationOption } from '@remotion/renderer/client';
import type { _InternalTypes } from 'remotion';
import type { RecastCodemod, VisualControlChange } from './codemods';
import type { PackageManager } from './package-manager';
import type { ProjectInfo } from './project-info';
import type { RequiredChromiumOptions } from './render-job';
import type { EnumPath } from './stringify-default-props';
export type OpenInFileExplorerRequest = {
directory: string;
};
export type CopyStillToClipboardRequest = {
outName: string;
binariesDirectory: string | null;
};
type ReqAndRes<A, B> = {
Request: A;
Response: B;
};
type AddRenderRequestDynamicFields = {
type: 'still';
imageFormat: StillImageFormat;
jpegQuality: number;
frame: number;
scale: number;
logLevel: LogLevel;
chromeMode: ChromeMode;
} | {
type: 'sequence';
imageFormat: VideoImageFormat;
jpegQuality: number | null;
scale: number;
logLevel: LogLevel;
concurrency: number;
startFrame: number;
endFrame: number;
disallowParallelEncoding: boolean;
repro: boolean;
chromeMode: ChromeMode;
} | {
type: 'video';
codec: Codec;
audioCodec: AudioCodec;
imageFormat: VideoImageFormat;
jpegQuality: number | null;
scale: number;
logLevel: LogLevel;
concurrency: number;
crf: number | null;
startFrame: number;
endFrame: number;
muted: boolean;
enforceAudioTrack: boolean;
proResProfile: _InternalTypes['ProResProfile'] | null;
x264Preset: X264Preset | null;
pixelFormat: PixelFormat;
audioBitrate: string | null;
videoBitrate: string | null;
encodingBufferSize: string | null;
encodingMaxRate: string | null;
everyNthFrame: number;
numberOfGifLoops: number | null;
disallowParallelEncoding: boolean;
colorSpace: ColorSpace;
repro: boolean;
forSeamlessAacConcatenation: boolean;
separateAudioTo: string | null;
hardwareAcceleration: HardwareAccelerationOption;
chromeMode: ChromeMode;
};
export type CancelRenderRequest = {
jobId: string;
};
export type CancelRenderResponse = {};
export type AddRenderRequest = {
compositionId: string;
outName: string;
chromiumOptions: RequiredChromiumOptions;
delayRenderTimeout: number;
envVariables: Record<string, string>;
serializedInputPropsWithCustomSchema: string;
offthreadVideoCacheSizeInBytes: number | null;
offthreadVideoThreads: number | null;
mediaCacheSizeInBytes: number | null;
multiProcessOnLinux: boolean;
beepOnFinish: boolean;
metadata: Record<string, string> | null;
} & AddRenderRequestDynamicFields;
export type RemoveRenderRequest = {
jobId: string;
};
export type SubscribeToFileExistenceRequest = {
file: string;
clientId: string;
};
export type SubscribeToFileExistenceResponse = {
exists: boolean;
};
export type UnsubscribeFromFileExistenceRequest = {
file: string;
clientId: string;
};
export type UpdateDefaultPropsRequest = {
compositionId: string;
defaultProps: string;
enumPaths: EnumPath[];
};
export type ApplyVisualControlRequest = {
fileName: string;
changes: VisualControlChange[];
};
export type ApplyVisualControlResponse = {
success: true;
};
export type UpdateDefaultPropsResponse = {
success: true;
} | {
success: false;
reason: string;
stack: string;
};
export type ApplyCodemodRequest = {
codemod: RecastCodemod;
dryRun: boolean;
};
export type SimpleDiff = {
additions: number;
deletions: number;
};
export type ApplyCodemodResponse = {
success: true;
diff: SimpleDiff;
} | {
success: false;
reason: string;
};
export type DeleteStaticFileRequest = {
relativePath: string;
};
export type DeleteStaticFileResponse = {
success: boolean;
existed: boolean;
};
export type CanUpdateDefaultPropsRequest = {
compositionId: string;
};
export type CanUpdateDefaultPropsResponse = {
canUpdate: true;
} | {
canUpdate: false;
reason: string;
};
export type UpdateAvailableRequest = {};
export type UpdateAvailableResponse = {
currentVersion: string;
latestVersion: string;
updateAvailable: boolean;
timedOut: boolean;
packageManager: PackageManager | 'unknown';
};
export type ProjectInfoRequest = {};
export type ProjectInfoResponse = {
projectInfo: ProjectInfo;
};
export type RestartStudioRequest = {};
export type RestartStudioResponse = {};
export type InstallPackageRequest = {
packageNames: string[];
};
export type InstallPackageResponse = {};
export type ApiRoutes = {
'/api/cancel': ReqAndRes<CancelRenderRequest, CancelRenderResponse>;
'/api/render': ReqAndRes<AddRenderRequest, undefined>;
'/api/unsubscribe-from-file-existence': ReqAndRes<UnsubscribeFromFileExistenceRequest, undefined>;
'/api/subscribe-to-file-existence': ReqAndRes<SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse>;
'/api/remove-render': ReqAndRes<RemoveRenderRequest, undefined>;
'/api/open-in-file-explorer': ReqAndRes<OpenInFileExplorerRequest, void>;
'/api/update-default-props': ReqAndRes<UpdateDefaultPropsRequest, UpdateDefaultPropsResponse>;
'/api/apply-visual-control-change': ReqAndRes<ApplyVisualControlRequest, ApplyVisualControlResponse>;
'/api/can-update-default-props': ReqAndRes<CanUpdateDefaultPropsRequest, CanUpdateDefaultPropsResponse>;
'/api/update-available': ReqAndRes<UpdateAvailableRequest, UpdateAvailableResponse>;
'/api/apply-codemod': ReqAndRes<ApplyCodemodRequest, ApplyCodemodResponse>;
'/api/project-info': ReqAndRes<ProjectInfoRequest, ProjectInfoResponse>;
'/api/delete-static-file': ReqAndRes<DeleteStaticFileRequest, DeleteStaticFileResponse>;
'/api/restart-studio': ReqAndRes<RestartStudioRequest, RestartStudioResponse>;
'/api/install-package': ReqAndRes<InstallPackageRequest, InstallPackageResponse>;
};
export {};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,27 @@
import type { EnumPath } from './stringify-default-props';
export type VisualControlChange = {
id: string;
newValueSerialized: string;
enumPaths: EnumPath[];
};
export type ApplyVisualControlCodemod = {
type: 'apply-visual-control';
changes: VisualControlChange[];
};
export type RecastCodemod = {
type: 'duplicate-composition';
idToDuplicate: string;
newId: string;
newHeight: number | null;
newWidth: number | null;
newFps: number | null;
newDurationInFrames: number | null;
tag: 'Still' | 'Composition';
} | {
type: 'rename-composition';
idToRename: string;
newId: string;
} | {
type: 'delete-composition';
idToDelete: string;
} | ApplyVisualControlCodemod;
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
export declare const DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = 300;
@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = void 0;
exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = 300;
@@ -0,0 +1,34 @@
import type { StaticFile } from 'remotion';
import type { CompletedClientRender, RenderJob } from './render-job';
export type EventSourceEvent = {
type: 'new-input-props';
newProps: object;
} | {
type: 'init';
clientId: string;
} | {
type: 'new-env-variables';
newEnvVariables: Record<string, string>;
} | {
type: 'root-file-changed';
} | {
type: 'render-queue-updated';
queue: RenderJob[];
} | {
type: 'render-job-failed';
compositionId: string;
error: Error;
} | {
type: 'watched-file-undeleted';
file: string;
} | {
type: 'watched-file-deleted';
file: string;
} | {
type: 'client-renders-updated';
renders: CompletedClientRender[];
} | {
type: 'new-public-folder';
files: StaticFile[];
folderExists: string | null;
};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
export declare const formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
locale: string;
bits?: boolean;
binary?: boolean;
signed: boolean;
}) => string;
@@ -0,0 +1,103 @@
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatBytes = void 0;
const BYTE_UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
const BIBYTE_UNITS = [
'B',
'kiB',
'MiB',
'GiB',
'TiB',
'PiB',
'EiB',
'ZiB',
'YiB',
];
const BIT_UNITS = [
'b',
'kbit',
'Mbit',
'Gbit',
'Tbit',
'Pbit',
'Ebit',
'Zbit',
'Ybit',
];
const BIBIT_UNITS = [
'b',
'kibit',
'Mibit',
'Gibit',
'Tibit',
'Pibit',
'Eibit',
'Zibit',
'Yibit',
];
/*
Formats the given number using `Number#toLocaleString`.
- If locale is a string, the value is expected to be a locale-key (for example: `de`).
- If locale is true, the system default locale is used for translation.
- If no value for locale is specified, the number is returned unmodified.
*/
const toLocaleString = (number, locale, options) => {
if (typeof locale === 'string' || Array.isArray(locale)) {
return number.toLocaleString(locale, options);
}
if (locale === true || options !== undefined) {
return number.toLocaleString(undefined, options);
}
return String(number);
};
const formatBytes = (number, options = {
locale: 'en-US',
signed: false,
maximumFractionDigits: 1,
}) => {
if (!Number.isFinite(number)) {
throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
}
options = { bits: false, binary: false, ...options };
const UNITS = options.bits
? options.binary
? BIBIT_UNITS
: BIT_UNITS
: options.binary
? BIBYTE_UNITS
: BYTE_UNITS;
if (options.signed && number === 0) {
return `0 $ {
UNITS[0]
}`;
}
const isNegative = number < 0;
const prefix = isNegative ? '-' : options.signed ? '+' : '';
if (isNegative) {
number = -number;
}
let localeOptions;
if (options.minimumFractionDigits !== undefined) {
localeOptions = {
minimumFractionDigits: options.minimumFractionDigits,
};
}
if (options.maximumFractionDigits !== undefined) {
localeOptions = {
maximumFractionDigits: options.maximumFractionDigits,
...localeOptions,
};
}
if (number < 1) {
const numString = toLocaleString(number, options.locale, localeOptions);
return prefix + numString + ' ' + UNITS[0];
}
const exponent = Math.min(Math.floor(options.binary
? Math.log(number) / Math.log(1024)
: Math.log10(number) / 3), UNITS.length - 1);
number /= (options.binary ? 1024 : 1000) ** exponent;
const numberString = toLocaleString(Number(number), options.locale, localeOptions);
const unit = UNITS[exponent];
return prefix + numberString + ' ' + unit;
};
exports.formatBytes = formatBytes;
@@ -0,0 +1,7 @@
export declare const getDefaultOutLocation: ({ compositionName, defaultExtension, type, compositionDefaultOutName, outputLocation, }: {
compositionName: string;
compositionDefaultOutName: string | null;
defaultExtension: string;
type: "asset" | "sequence";
outputLocation?: string | null;
}) => string;
@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDefaultOutLocation = void 0;
const hasFileExtension = (location) => {
var _a;
const lastSegment = (_a = location.split('/').pop()) !== null && _a !== void 0 ? _a : location;
return lastSegment.includes('.');
};
const getDefaultOutLocation = ({ compositionName, defaultExtension, type, compositionDefaultOutName, outputLocation, }) => {
if (outputLocation && hasFileExtension(outputLocation)) {
return outputLocation;
}
const base = outputLocation !== null && outputLocation !== void 0 ? outputLocation : 'out';
const dir = base.endsWith('/') ? base : `${base}/`;
const nameToUse = compositionDefaultOutName !== null && compositionDefaultOutName !== void 0 ? compositionDefaultOutName : compositionName;
if (type === 'sequence') {
return `${dir}${nameToUse}`;
}
return `${dir}${nameToUse}.${defaultExtension}`;
};
exports.getDefaultOutLocation = getDefaultOutLocation;
@@ -0,0 +1,7 @@
export type ErrorLocation = {
fileName: string;
columnNumber: number;
lineNumber: number;
message: string;
};
export declare const getLocationFromBuildError: (err: Error) => ErrorLocation | null;
@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLocationFromBuildError = void 0;
const no_react_1 = require("remotion/no-react");
const getLocationFromBuildError = (err) => {
var _a;
if (!err.stack) {
return null;
}
if (!err.stack.startsWith('Error: Module build failed') &&
!err.stack.startsWith('Error: Cannot find module')) {
return null;
}
const split = err.stack.split('\n');
return ((_a = split
.map((s) => {
if (s.startsWith('Error')) {
return null;
}
const matchWebpackOrEsbuild = s.match(/(.*):([0-9]+):([0-9]+): (.*)/);
if (matchWebpackOrEsbuild) {
return {
fileName: matchWebpackOrEsbuild[1],
lineNumber: Number(matchWebpackOrEsbuild[2]),
columnNumber: Number(matchWebpackOrEsbuild[3]),
message: matchWebpackOrEsbuild[4],
};
}
const matchMissingModule = s.match(/\s+at(.*)\s\((.*)\)/);
if (!matchMissingModule) {
return null;
}
if (s.includes('webpackMissingModule')) {
return null;
}
const [, filename] = matchMissingModule;
return {
columnNumber: 0,
lineNumber: 1,
message: split[0],
fileName: filename.trim(),
};
})
.filter(no_react_1.NoReactInternals.truthy)[0]) !== null && _a !== void 0 ? _a : null);
};
exports.getLocationFromBuildError = getLocationFromBuildError;
@@ -0,0 +1,6 @@
import type { GitSource } from './git-source';
export declare const getProjectName: ({ gitSource, resolvedRemotionRoot, basename, }: {
gitSource: GitSource | null;
resolvedRemotionRoot: string;
basename: (str: string) => string;
}) => string;
@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProjectName = void 0;
const getProjectName = ({ gitSource, resolvedRemotionRoot, basename, }) => {
// Directory name
if (!gitSource) {
return basename(resolvedRemotionRoot);
}
// Subfolder name of a Git repo, e.g `example`
if (gitSource.relativeFromGitRoot.trim()) {
return basename(gitSource.relativeFromGitRoot.trim());
}
// Name of the repo
return gitSource.name;
};
exports.getProjectName = getProjectName;
@@ -0,0 +1,7 @@
export type GitSource = {
type: 'github';
org: string;
name: string;
ref: string;
relativeFromGitRoot: string;
};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
export type HotMiddlewareMessage = {
action: 'building';
name?: string;
} | {
action: 'built' | 'sync';
name: string;
time: number | undefined;
errors: unknown[];
warnings: unknown[];
hash: string | undefined;
modules: {
[key: string]: string;
};
};
export declare const hotMiddlewareOptions: {
path: string;
timeout: number;
reload: boolean;
warn: boolean;
heartbeat: number;
};
export type HotMiddlewareOptions = typeof hotMiddlewareOptions;
export type ModuleMap = {
[key: string]: string;
};
@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hotMiddlewareOptions = void 0;
exports.hotMiddlewareOptions = {
path: '/__webpack_hmr',
timeout: 20 * 1000,
reload: true,
warn: true,
heartbeat: 10 * 1000,
};
@@ -0,0 +1,22 @@
export { splitAnsi, stripAnsi } from './ansi';
export { AddRenderRequest, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, CanUpdateDefaultPropsRequest, CanUpdateDefaultPropsResponse, CancelRenderRequest, CancelRenderResponse, CopyStillToClipboardRequest, DeleteStaticFileRequest, DeleteStaticFileResponse, InstallPackageRequest, InstallPackageResponse, OpenInFileExplorerRequest, ProjectInfoRequest, ProjectInfoResponse, RemoveRenderRequest, RestartStudioRequest, RestartStudioResponse, SimpleDiff, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UnsubscribeFromFileExistenceRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, } from './api-requests';
export type { ApplyVisualControlCodemod, RecastCodemod } from './codemods';
export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
export { EventSourceEvent } from './event-source-event';
export { formatBytes } from './format-bytes';
export { getDefaultOutLocation } from './get-default-out-name';
export { ErrorLocation, getLocationFromBuildError, } from './get-location-from-build-error';
export { getProjectName } from './get-project-name';
export type { GitSource } from './git-source';
export { HotMiddlewareMessage, HotMiddlewareOptions, ModuleMap, hotMiddlewareOptions, } from './hot-middleware';
export { DEFAULT_TIMELINE_TRACKS } from './max-timeline-tracks';
export { Pkgs, apiDocs, descriptions, extraPackages, installableMap, packages, type ExtraPackage, } from './package-info';
export { PackageManager } from './package-manager';
export { ProjectInfo } from './project-info';
export type { RenderDefaults } from './render-defaults';
export { AggregateRenderProgress, ArtifactProgress, BrowserDownloadState, BrowserProgressLog, BundlingState, CopyingState, DownloadProgress, JobProgressCallback, RenderJob, RenderJobWithCleanup, RenderingProgressInput, RequiredChromiumOptions, StitchingProgressInput, UiOpenGlOptions, } from './render-job';
export type { CompletedClientRender } from './render-job';
export { SOURCE_MAP_ENDPOINT } from './source-map-endpoint';
export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from './stack-types';
export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
export type { VisualControlChange } from './codemods';
@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringifyDefaultProps = exports.SOURCE_MAP_ENDPOINT = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.formatBytes = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.stripAnsi = exports.splitAnsi = void 0;
var ansi_1 = require("./ansi");
Object.defineProperty(exports, "splitAnsi", { enumerable: true, get: function () { return ansi_1.splitAnsi; } });
Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return ansi_1.stripAnsi; } });
var default_buffer_state_delay_in_milliseconds_1 = require("./default-buffer-state-delay-in-milliseconds");
Object.defineProperty(exports, "DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS", { enumerable: true, get: function () { return default_buffer_state_delay_in_milliseconds_1.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS; } });
var format_bytes_1 = require("./format-bytes");
Object.defineProperty(exports, "formatBytes", { enumerable: true, get: function () { return format_bytes_1.formatBytes; } });
var get_default_out_name_1 = require("./get-default-out-name");
Object.defineProperty(exports, "getDefaultOutLocation", { enumerable: true, get: function () { return get_default_out_name_1.getDefaultOutLocation; } });
var get_location_from_build_error_1 = require("./get-location-from-build-error");
Object.defineProperty(exports, "getLocationFromBuildError", { enumerable: true, get: function () { return get_location_from_build_error_1.getLocationFromBuildError; } });
var get_project_name_1 = require("./get-project-name");
Object.defineProperty(exports, "getProjectName", { enumerable: true, get: function () { return get_project_name_1.getProjectName; } });
var hot_middleware_1 = require("./hot-middleware");
Object.defineProperty(exports, "hotMiddlewareOptions", { enumerable: true, get: function () { return hot_middleware_1.hotMiddlewareOptions; } });
var max_timeline_tracks_1 = require("./max-timeline-tracks");
Object.defineProperty(exports, "DEFAULT_TIMELINE_TRACKS", { enumerable: true, get: function () { return max_timeline_tracks_1.DEFAULT_TIMELINE_TRACKS; } });
var package_info_1 = require("./package-info");
Object.defineProperty(exports, "apiDocs", { enumerable: true, get: function () { return package_info_1.apiDocs; } });
Object.defineProperty(exports, "descriptions", { enumerable: true, get: function () { return package_info_1.descriptions; } });
Object.defineProperty(exports, "extraPackages", { enumerable: true, get: function () { return package_info_1.extraPackages; } });
Object.defineProperty(exports, "installableMap", { enumerable: true, get: function () { return package_info_1.installableMap; } });
Object.defineProperty(exports, "packages", { enumerable: true, get: function () { return package_info_1.packages; } });
var source_map_endpoint_1 = require("./source-map-endpoint");
Object.defineProperty(exports, "SOURCE_MAP_ENDPOINT", { enumerable: true, get: function () { return source_map_endpoint_1.SOURCE_MAP_ENDPOINT; } });
var stringify_default_props_1 = require("./stringify-default-props");
Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
@@ -0,0 +1 @@
export declare const DEFAULT_TIMELINE_TRACKS = 90;
@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_TIMELINE_TRACKS = void 0;
exports.DEFAULT_TIMELINE_TRACKS = 90;
@@ -0,0 +1,18 @@
export declare const packages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "bundler", "cli", "cloudrun", "compositor-darwin-arm64", "compositor-darwin-x64", "compositor-linux-arm64-gnu", "compositor-linux-arm64-musl", "compositor-linux-x64-gnu", "compositor-linux-x64-musl", "compositor-win32-x64-msvc", "core", "create-video", "discord-poster", "docusaurus-plugin", "docs", "enable-scss", "eslint-config", "eslint-config-flat", "eslint-config-internal", "eslint-plugin", "example-without-zod", "example", "fonts", "gif", "google-fonts", "install-whisper-cpp", "it-tests", "react18-tests", "lambda-go-example", "lambda-go", "lambda-php", "lambda-ruby", "lambda-python", "lambda", "lambda-client", "layout-utils", "rounded-text-box", "licensing", "lottie", "mcp", "media-utils", "motion-blur", "noise", "paths", "player-example", "player", "preload", "renderer", "rive", "shapes", "skia", "promo-pages", "streaming", "serverless", "serverless-client", "skills", "studio-server", "studio-shared", "studio", "tailwind", "tailwind-v4", "test-utils", "three", "transitions", "media-parser", "zod-types", "webcodecs", "convert", "captions", "openai-whisper", "compositor", "example-videos", "whisper-web", "media", "web-renderer", "design", "light-leaks"];
export type Pkgs = (typeof packages)[number];
export type ExtraPackage = {
name: string;
version: string;
description: string;
docsUrl: string;
};
export declare const extraPackages: ExtraPackage[];
export declare const descriptions: {
[key in Pkgs]: string | null;
};
export declare const installableMap: {
[key in Pkgs]: boolean;
};
export declare const apiDocs: {
[key in Pkgs]: string | null;
};
@@ -0,0 +1,357 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.apiDocs = exports.installableMap = exports.descriptions = exports.extraPackages = exports.packages = void 0;
exports.packages = [
'svg-3d-engine',
'animation-utils',
'animated-emoji',
'astro-example',
'babel-loader',
'bugs',
'bundler',
'cli',
'cloudrun',
'compositor-darwin-arm64',
'compositor-darwin-x64',
'compositor-linux-arm64-gnu',
'compositor-linux-arm64-musl',
'compositor-linux-x64-gnu',
'compositor-linux-x64-musl',
'compositor-win32-x64-msvc',
'core',
'create-video',
'discord-poster',
'docusaurus-plugin',
'docs',
'enable-scss',
'eslint-config',
'eslint-config-flat',
'eslint-config-internal',
'eslint-plugin',
'example-without-zod',
'example',
'fonts',
'gif',
'google-fonts',
'install-whisper-cpp',
'it-tests',
'react18-tests',
'lambda-go-example',
'lambda-go',
'lambda-php',
'lambda-ruby',
'lambda-python',
'lambda',
'lambda-client',
'layout-utils',
'rounded-text-box',
'licensing',
'lottie',
'mcp',
'media-utils',
'motion-blur',
'noise',
'paths',
'player-example',
'player',
'preload',
'renderer',
'rive',
'shapes',
'skia',
'promo-pages',
'streaming',
'serverless',
'serverless-client',
'skills',
'studio-server',
'studio-shared',
'studio',
'tailwind',
'tailwind-v4',
'test-utils',
'three',
'transitions',
'media-parser',
'zod-types',
'webcodecs',
'convert',
'captions',
'openai-whisper',
'compositor',
'example-videos',
'whisper-web',
'media',
'web-renderer',
'design',
'light-leaks',
];
exports.extraPackages = [
{
name: 'zod',
version: '3.22.3',
description: 'Schema validation library for defining component props',
docsUrl: 'https://www.remotion.dev/docs/schemas',
},
{
name: 'mediabunny',
version: '1.34.2',
description: 'Multimedia library used by Remotion',
docsUrl: 'https://www.remotion.dev/docs/mediabunny/version',
},
];
exports.descriptions = {
compositor: 'Rust binary for Remotion',
player: 'React component for embedding a Remotion preview into your app',
cloudrun: 'Render Remotion videos on Google Cloud Run',
renderer: 'Render Remotion videos using Node.js or Bun',
cli: 'Control Remotion features using the `npx remotion` command',
core: 'Make videos programmatically',
lambda: 'Render Remotion videos on AWS Lambda',
bundler: 'Bundle Remotion compositions using Webpack',
'studio-server': 'Run a Remotion Studio with a server backend',
'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
'whisper-web': 'Helpers for using Whisper.cpp in browser using WASM',
'google-fonts': 'Use Google Fonts in Remotion',
mcp: "Remotion's Model Context Protocol",
'media-utils': 'Utilities for working with media files',
lottie: 'Include Lottie animations in Remotion',
licensing: 'Manage your Remotion.pro license',
'layout-utils': 'Utilities for working with layouts',
'rounded-text-box': 'Create a TikTok-like multiline text box SVG path with rounded corners',
noise: 'Noise generation functions',
'motion-blur': 'Motion blur effect for Remotion',
preload: 'Preloads assets for use in Remotion',
shapes: 'Generate SVG shapes',
'zod-types': 'Zod types for Remotion',
gif: 'Embed GIFs in a Remotion video',
'eslint-plugin': 'Rules for writing Remotion code',
'eslint-config': 'Default configuration for Remotion templates (ESLint <= 8)',
'eslint-config-flat': 'Default configuration for Remotion templates (ESLint >= 9)',
'compositor-linux-x64-gnu': 'Linux x64 binary for the Remotion Rust code',
'compositor-linux-x64-musl': 'Linux x64 binary for the Remotion Rust code',
'compositor-darwin-x64': 'MacOS x64 binary for the Remotion Rust code',
'compositor-darwin-arm64': 'MacOS Apple Silicon binary for the Remotion Rust code',
'compositor-linux-arm64-gnu': 'Linux ARM64 binary for the Remotion Rust code',
'compositor-linux-arm64-musl': 'Linux ARM64 binary for the Remotion Rust code',
'babel-loader': 'Babel loader for Remotion',
fonts: 'Helpers for loading local fonts into Remotion',
transitions: 'Library for creating transitions in Remotion',
'enable-scss': 'Enable SCSS support in Remotion',
'create-video': 'Create a new Remotion project',
'studio-shared': 'Internal package for shared objects between the Studio backend and frontend',
tailwind: 'Enable TailwindCSS support in Remotion (TailwindCSS v3)',
'tailwind-v4': 'Enable TailwindCSS support in Remotion (TailwindCSS v4)',
streaming: 'Utilities for streaming data between programs',
'media-parser': 'A pure JavaScript library for parsing video files',
rive: 'Embed Rive animations in a Remotion video',
paths: 'Utilities for working with SVG paths',
studio: 'APIs for interacting with the Remotion Studio',
skia: 'Include React Native Skia components in a Remotion video',
three: 'Include React Three Fiber components in a Remotion video',
'astro-example': null,
'lambda-go-example': null,
'compositor-win32-x64-msvc': null,
'animation-utils': 'Helpers for animating CSS properties',
'test-utils': null,
'example-without-zod': null,
'lambda-go': null,
example: null,
'lambda-php': null,
'lambda-client': null,
bugs: null,
docs: null,
'it-tests': null,
'react18-tests': null,
'lambda-python': null,
'lambda-ruby': null,
'player-example': null,
skills: null,
'discord-poster': null,
'docusaurus-plugin': null,
'animated-emoji': 'Google Fonts Animated Emojis as Remotion components',
serverless: 'A runtime for distributed rendering',
webcodecs: 'Media conversion in the browser',
convert: 'Video conversion tool - convert.remotion.dev',
captions: 'Primitives for dealing with captions',
'openai-whisper': 'Work with the output of the OpenAI Whisper API',
'eslint-config-internal': "ESLint condig for Remotion's internal packages",
'example-videos': null,
'promo-pages': null,
'svg-3d-engine': '3D SVG extrusion effects',
'serverless-client': null,
media: 'Experimental WebCodecs-based media tags',
'web-renderer': 'Render videos in the browser (not yet released)',
design: 'Design system',
'light-leaks': 'Light leak effects for Remotion',
};
exports.installableMap = {
'svg-3d-engine': false,
'animation-utils': true,
'animated-emoji': true,
'astro-example': false,
'babel-loader': false,
bugs: false,
bundler: false,
cli: false,
cloudrun: true,
'lambda-client': false,
'serverless-client': false,
'compositor-darwin-arm64': false,
'compositor-darwin-x64': false,
'compositor-linux-arm64-gnu': false,
'compositor-linux-arm64-musl': false,
'compositor-linux-x64-gnu': false,
'compositor-linux-x64-musl': false,
'compositor-win32-x64-msvc': false,
core: false,
'create-video': false,
'discord-poster': false,
'docusaurus-plugin': false,
docs: false,
'enable-scss': true,
'eslint-config': false,
'eslint-config-flat': false,
'eslint-config-internal': false,
'eslint-plugin': false,
'example-without-zod': false,
example: false,
fonts: true,
gif: true,
'google-fonts': true,
'install-whisper-cpp': true,
'whisper-web': true,
'it-tests': false,
'react18-tests': false,
'lambda-go-example': false,
'lambda-go': false,
'lambda-php': false,
'lambda-ruby': false,
'lambda-python': false,
lambda: true,
mcp: true,
'layout-utils': true,
'rounded-text-box': true,
licensing: true,
lottie: true,
'media-utils': true,
'motion-blur': true,
noise: true,
paths: true,
'player-example': false,
player: true,
preload: true,
renderer: true,
rive: true,
shapes: true,
skia: true,
skills: false,
'promo-pages': false,
streaming: false,
serverless: false,
'studio-server': false,
'studio-shared': false,
studio: true,
tailwind: true,
'tailwind-v4': true,
'test-utils': false,
three: true,
transitions: true,
'media-parser': true,
'zod-types': true,
webcodecs: true,
convert: false,
captions: true,
'openai-whisper': true,
compositor: false,
'example-videos': false,
media: true,
'web-renderer': false,
design: false,
'light-leaks': true,
};
exports.apiDocs = {
player: 'https://www.remotion.dev/docs/player',
cloudrun: 'https://www.remotion.dev/docs/cloudrun',
renderer: 'https://www.remotion.dev/docs/renderer',
cli: 'https://www.remotion.dev/docs/cli',
core: 'https://www.remotion.dev/docs/remotion',
lambda: 'https://www.remotion.dev/docs/lambda',
bundler: 'https://www.remotion.dev/docs/bundler',
'lambda-client': null,
'serverless-client': null,
'studio-server': null,
'install-whisper-cpp': 'https://www.remotion.dev/docs/install-whisper-cpp',
'whisper-web': 'https://www.remotion.dev/docs/whisper-web',
'google-fonts': 'https://www.remotion.dev/docs/google-fonts',
'media-utils': 'https://www.remotion.dev/docs/media-utils',
lottie: 'https://www.remotion.dev/docs/lottie',
licensing: 'https://www.remotion.dev/docs/licensing',
'layout-utils': 'https://www.remotion.dev/docs/layout-utils',
'rounded-text-box': 'https://www.remotion.dev/docs/rounded-text-box',
noise: 'https://www.remotion.dev/docs/noise',
mcp: 'https://www.remotion.dev/docs/ai/mcp',
'motion-blur': 'https://www.remotion.dev/docs/motion-blur',
preload: 'https://www.remotion.dev/docs/preload',
shapes: 'https://www.remotion.dev/docs/shapes',
'zod-types': 'https://www.remotion.dev/docs/zod-types',
gif: 'https://www.remotion.dev/docs/gif',
'eslint-plugin': 'https://www.remotion.dev/docs/brownfield#install-the-eslint-plugin',
'eslint-config': 'https://www.remotion.dev/docs/brownfield#install-the-eslint-plugin',
'eslint-config-flat': 'https://www.remotion.dev/docs/brownfield#install-the-eslint-plugin',
'compositor-linux-x64-gnu': null,
'compositor-linux-x64-musl': null,
'compositor-darwin-x64': null,
'discord-poster': null,
'docusaurus-plugin': null,
'animation-utils': 'https://www.remotion.dev/docs/animation-utils/',
'example-without-zod': null,
'lambda-go': null,
example: null,
'lambda-php': null,
bugs: null,
docs: null,
'it-tests': null,
'react18-tests': null,
'lambda-python': null,
'lambda-ruby': 'https://www.remotion.dev/docs/lambda/ruby',
'player-example': null,
'astro-example': null,
'lambda-go-example': null,
'test-utils': null,
'babel-loader': 'https://www.remotion.dev/docs/legacy-babel',
'compositor-darwin-arm64': null,
'compositor-linux-arm64-gnu': null,
'compositor-linux-arm64-musl': null,
'compositor-win32-x64-msvc': null,
'enable-scss': 'https://www.remotion.dev/docs/enable-scss/overview',
'create-video': 'https://remotion.dev/templates',
'studio-shared': null,
'media-parser': 'https://www.remotion.dev/docs/media-parser',
fonts: 'https://www.remotion.dev/docs/fonts-api',
paths: 'https://www.remotion.dev/paths',
rive: 'https://www.remotion.dev/docs/rive',
tailwind: 'https://www.remotion.dev/docs/tailwind/tailwind',
'tailwind-v4': 'https://www.remotion.dev/docs/tailwind/tailwind',
skia: 'https://www.remotion.dev/docs/skia',
three: 'https://www.remotion.dev/docs/three',
streaming: null,
serverless: null,
skills: null,
studio: 'https://www.remotion.dev/docs/studio/api',
transitions: 'https://www.remotion.dev/transitions',
'animated-emoji': 'https://www.remotion.dev/docs/animated-emoji',
webcodecs: 'https://remotion.dev/webcodecs',
convert: 'https://convert.remotion.dev',
captions: 'https://remotion.dev/docs/captions/api',
'openai-whisper': 'https://www.remotion.dev/docs/openai-whisper',
'eslint-config-internal': null,
compositor: null,
'example-videos': null,
'promo-pages': null,
'svg-3d-engine': null,
media: 'https://remotion.dev/docs/media',
'web-renderer': 'https://www.remotion.dev/docs/web-renderer/',
design: 'https://www.remotion.dev/design',
'light-leaks': 'https://www.remotion.dev/docs/light-leaks',
};
@@ -0,0 +1 @@
export type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
export type ProjectInfo = {
rootFile: string | null;
relativeRootFile: string | null;
};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,56 @@
import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, OpenGlRenderer, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
import type { HardwareAccelerationOption } from '@remotion/renderer/client';
import type { _InternalTypes } from 'remotion';
import type { GitSource } from './git-source';
import type { PackageManager } from './package-manager';
export type RenderDefaults = {
jpegQuality: number;
scale: number;
logLevel: LogLevel;
codec: Codec;
concurrency: number;
minConcurrency: number;
muted: boolean;
maxConcurrency: number;
stillImageFormat: StillImageFormat;
videoImageFormat: VideoImageFormat;
audioCodec: AudioCodec | null;
enforceAudioTrack: boolean;
proResProfile: _InternalTypes['ProResProfile'] | null;
x264Preset: X264Preset;
pixelFormat: PixelFormat;
audioBitrate: string | null;
videoBitrate: string | null;
encodingBufferSize: string | null;
encodingMaxRate: string | null;
userAgent: string | null;
everyNthFrame: number;
numberOfGifLoops: number | null;
delayRenderTimeout: number;
disableWebSecurity: boolean;
openGlRenderer: OpenGlRenderer | null;
ignoreCertificateErrors: boolean;
mediaCacheSizeInBytes: number | null;
offthreadVideoCacheSizeInBytes: number | null;
offthreadVideoThreads: number | null;
headless: boolean;
colorSpace: ColorSpace;
multiProcessOnLinux: boolean;
darkMode: boolean;
beepOnFinish: boolean;
repro: boolean;
forSeamlessAacConcatenation: boolean;
metadata: Record<string, string> | null;
hardwareAcceleration: HardwareAccelerationOption;
chromeMode: ChromeMode;
publicLicenseKey: string | null;
outputLocation: string | null;
};
declare global {
interface Window {
remotion_renderDefaults: RenderDefaults | undefined;
remotion_gitSource: GitSource | null;
remotion_installedPackages: string[] | null;
remotion_packageManager: PackageManager | 'unknown';
}
}
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,171 @@
import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, makeCancelSignal, PixelFormat, StillImageFormat, StitchingState, VideoImageFormat, X264Preset } from '@remotion/renderer';
type BaseRenderProgress = {
message: string;
value: number;
};
export type RenderingProgressInput = {
frames: number;
totalFrames: number;
doneIn: number | null;
timeRemainingInMilliseconds: number | null;
};
export type StitchingProgressInput = {
frames: number;
totalFrames: number;
doneIn: number | null;
stage: StitchingState;
codec: Codec;
};
export type DownloadProgress = {
name: string;
id: number;
progress: number | null;
totalBytes: number | null;
downloaded: number;
};
export type CopyingState = {
bytes: number;
doneIn: number | null;
};
export type BundlingState = {
progress: number;
doneIn: number | null;
};
export type BrowserDownloadState = {
progress: number;
doneIn: number | null;
alreadyAvailable: boolean;
};
export type BrowserProgressLog = {
logLevel: LogLevel;
previewString: string;
tag: string | null;
};
export type AggregateRenderProgress = {
rendering: RenderingProgressInput | null;
stitching: StitchingProgressInput | null;
downloads: DownloadProgress[];
bundling: BundlingState | null;
browser: BrowserDownloadState;
copyingState: CopyingState;
artifactState: ArtifactProgress;
logs: BrowserProgressLog[];
};
export type ReceivedArtifact = {
filename: string;
absoluteOutputDestination: string;
relativeOutputDestination: string;
sizeInBytes: number;
alreadyExisted: boolean;
};
export type ArtifactProgress = {
received: ReceivedArtifact[];
};
export type JobProgressCallback = (options: BaseRenderProgress & AggregateRenderProgress) => void;
type RenderJobDynamicStatus = {
status: 'done';
progress: BaseRenderProgress & AggregateRenderProgress;
} | {
status: 'running';
progress: BaseRenderProgress & AggregateRenderProgress;
} | {
status: 'idle';
} | {
status: 'failed';
error: {
message: string;
stack: string | undefined;
};
};
type RenderJobDynamicFields = ({
type: 'still';
imageFormat: StillImageFormat;
jpegQuality: number;
frame: number;
scale: number;
offthreadVideoCacheSizeInBytes: number | null;
mediaCacheSizeInBytes: number | null;
offthreadVideoThreads: number | null;
} & RenderJobDynamicStatus) | ({
type: 'sequence';
imageFormat: VideoImageFormat;
jpegQuality: number | null;
scale: number;
concurrency: number;
startFrame: number;
endFrame: number;
offthreadVideoCacheSizeInBytes: number | null;
mediaCacheSizeInBytes: number | null;
offthreadVideoThreads: number | null;
} & RenderJobDynamicStatus) | ({
type: 'video';
imageFormat: VideoImageFormat;
jpegQuality: number | null;
scale: number;
codec: Codec;
audioCodec: AudioCodec;
concurrency: number;
crf: number | null;
startFrame: number;
endFrame: number;
muted: boolean;
enforceAudioTrack: boolean;
proResProfile: _InternalTypes['ProResProfile'] | null;
x264Preset: X264Preset | null;
pixelFormat: PixelFormat;
audioBitrate: string | null;
videoBitrate: string | null;
encodingBufferSize: string | null;
encodingMaxRate: string | null;
everyNthFrame: number;
numberOfGifLoops: number | null;
disallowParallelEncoding: boolean;
offthreadVideoCacheSizeInBytes: number | null;
mediaCacheSizeInBytes: number | null;
offthreadVideoThreads: number | null;
colorSpace: ColorSpace;
forSeamlessAacConcatenation: boolean;
separateAudioTo: string | null;
hardwareAcceleration: HardwareAccelerationOption;
} & RenderJobDynamicStatus);
import type { ChromiumOptions, OpenGlRenderer } from '@remotion/renderer';
import type { HardwareAccelerationOption } from '@remotion/renderer/client';
import type { _InternalTypes } from 'remotion';
export type RequiredChromiumOptions = Required<ChromiumOptions>;
export type UiOpenGlOptions = OpenGlRenderer | 'default';
export type RenderJob = {
startedAt: number;
compositionId: string;
id: string;
outName: string;
deletedOutputLocation: boolean;
logLevel: LogLevel;
delayRenderTimeout: number;
cancelToken: ReturnType<typeof makeCancelSignal>;
chromiumOptions: RequiredChromiumOptions;
envVariables: Record<string, string>;
serializedInputPropsWithCustomSchema: string;
multiProcessOnLinux: boolean;
beepOnFinish: boolean;
repro: boolean;
binariesDirectory: string | null;
metadata: Record<string, string> | null;
chromeMode: ChromeMode;
} & RenderJobDynamicFields;
export type RenderJobWithCleanup = RenderJob & {
cleanup: (() => void)[];
};
export type CompletedClientRender = {
id: string;
type: 'client-video' | 'client-still';
compositionId: string;
outName: string;
startedAt: number;
deletedOutputLocation: boolean;
metadata: {
width: number;
height: number;
sizeInBytes: number;
};
};
export {};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
export declare const SOURCE_MAP_ENDPOINT = "/source-map-helper.wasm";
@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SOURCE_MAP_ENDPOINT = void 0;
exports.SOURCE_MAP_ENDPOINT = '/source-map-helper.wasm';
@@ -0,0 +1,25 @@
export type ScriptLine = {
lineNumber: number;
content: string;
highlight: boolean;
};
export type SymbolicatedStackFrame = {
originalFunctionName: string | null;
originalFileName: string | null;
originalLineNumber: number | null;
originalColumnNumber: number | null;
originalScriptCode: ScriptLine[] | null;
};
export type StackFrame = {
functionName: string | null;
fileName: string;
lineNumber: number;
columnNumber: number;
};
export type SomeStackFrame = {
type: 'symbolicated';
frame: SymbolicatedStackFrame;
} | {
type: 'transpiled';
frame: StackFrame;
};
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
export type EnumPath = (string | number)[];
export declare const stringifyDefaultProps: ({ props, enumPaths, }: {
props: unknown;
enumPaths: EnumPath[];
}) => string;
@@ -0,0 +1,59 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringifyDefaultProps = void 0;
const no_react_1 = require("remotion/no-react");
function replacerWithPath(replacer) {
const m = new Map();
return function (field, value) {
const path = [m.get(this), field].flat(1);
if (value === Object(value)) {
m.set(value, path);
}
return replacer.call(this, field, value, path.filter((item) => typeof item !== 'undefined' && item !== ''));
};
}
const doesMatchPath = (path1, enumPaths) => {
return enumPaths.some((p) =>
// especially 0 for root!
path1.length === p.length &&
path1.every((item, index) => {
if (p[index] === '[]' && !Number.isNaN(Number(item))) {
return true;
}
if (p[index] === '{}' && typeof item === 'string') {
return true;
}
return item === p[index];
}));
};
const stringifyDefaultProps = ({ props, enumPaths, }) => {
return JSON.stringify(props, replacerWithPath(function (key, value, path) {
/* Don't replace with arrow function! This function uses `this` */
const item = this[key];
if (typeof item === 'string' && doesMatchPath(path, enumPaths)) {
return `${item}__ADD_AS_CONST__`;
}
// For zMatrix()
if (doesMatchPath(path, enumPaths)) {
return `__REMOVEQUOTE__${JSON.stringify(item)}__ADD_AS_LITERAL_CONST__`;
}
if (typeof item === 'string' &&
item.startsWith(no_react_1.NoReactInternals.FILE_TOKEN)) {
return `__REMOVEQUOTE____WRAP_IN_STATIC_FILE_START__${decodeURIComponent(item.replace(no_react_1.NoReactInternals.FILE_TOKEN, ''))}__WRAP_IN_STATIC_FILE_END____REMOVEQUOTE__`;
}
if (typeof item === 'string' &&
item.startsWith(no_react_1.NoReactInternals.DATE_TOKEN)) {
return `__REMOVEQUOTE____WRAP_IN_DATE_START__${decodeURIComponent(item.replace(no_react_1.NoReactInternals.DATE_TOKEN, ''))}__WRAP_IN_DATE_END____REMOVEQUOTE__`;
}
return value;
}))
.replace(/"__REMOVEQUOTE__/g, '')
.replace(/__REMOVEQUOTE__"/g, '')
.replace(/__ADD_AS_CONST__"/g, '" as const')
.replace(/__ADD_AS_LITERAL_CONST__"/g, ' as const')
.replace(/__WRAP_IN_STATIC_FILE_START__/g, 'staticFile("')
.replace(/__WRAP_IN_STATIC_FILE_END__/g, '")')
.replace(/__WRAP_IN_DATE_START__/g, 'new Date("')
.replace(/__WRAP_IN_DATE_END__/g, '")');
};
exports.stringifyDefaultProps = stringifyDefaultProps;
@@ -0,0 +1,36 @@
{
"repository": {
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio-shared"
},
"name": "@remotion/studio-shared",
"version": "4.0.423",
"description": "Internal package for shared objects between the Studio backend and frontend",
"main": "dist",
"sideEffects": false,
"scripts": {
"lint": "eslint src",
"formatting": "prettier --experimental-cli src --check",
"make": "tsc -d"
},
"author": "Jonny Burger <jonny@remotion.dev>",
"contributors": [],
"license": "MIT",
"bugs": {
"url": "https://github.com/remotion-dev/remotion/issues"
},
"dependencies": {
"remotion": "4.0.423"
},
"devDependencies": {
"@remotion/renderer": "4.0.423",
"@remotion/eslint-config-internal": "4.0.423",
"eslint": "9.19.0"
},
"publishConfig": {
"access": "public"
},
"exports": {
".": "./dist/index.js",
"./package.json": "./package.json"
}
}