Files
story-studio/remotion/node_modules/@remotion/studio-server/dist/helpers/get-file-source.js
2026-02-21 10:33:18 +01:00

23 lines
1.1 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFileSource = void 0;
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const allowedFileExtensions = ['js', 'ts', 'tsx', 'jsx', 'map', 'mjs'];
// Must be async function for proper error handling
const getFileSource = (remotionRoot, p) => {
if (!allowedFileExtensions.find((extension) => p.endsWith(extension))) {
return Promise.reject(new Error(`Not allowed to open ${p}`));
}
const resolved = node_path_1.default.resolve(remotionRoot, p);
const relativeToProcessCwd = node_path_1.default.relative(remotionRoot, resolved);
if (relativeToProcessCwd.startsWith('..')) {
return Promise.reject(new Error(`Not allowed to open ${relativeToProcessCwd}`));
}
return node_fs_1.default.promises.readFile(p, 'utf-8');
};
exports.getFileSource = getFileSource;