"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const os_family_1 = require("os-family"); const sanitize_filename_1 = __importDefault(require("sanitize-filename")); const SAFE_CHAR = '_'; const ALLOWED_CHARS_LIST = [path_1.default.win32.sep, path_1.default.posix.sep, '.', '..']; function correctForbiddenCharsList(forbiddenCharsList, filePath) { const isWinAbsolutePath = os_family_1.win && path_1.default.isAbsolute(filePath); const hasDriveSeparatorInList = forbiddenCharsList.length && forbiddenCharsList[0].chars === ':' && forbiddenCharsList[0].index === 1; if (isWinAbsolutePath && hasDriveSeparatorInList) forbiddenCharsList.shift(); } function addForbiddenCharsToList(forbiddenCharsList, forbiddenCharsInfo) { const { chars } = forbiddenCharsInfo; if (!ALLOWED_CHARS_LIST.includes(chars)) forbiddenCharsList.push(forbiddenCharsInfo); return SAFE_CHAR.repeat(chars.length); } function default_1(filePath) { const forbiddenCharsList = []; (0, sanitize_filename_1.default)(filePath, { replacement: (chars, index) => addForbiddenCharsToList(forbiddenCharsList, { chars, index }), }); correctForbiddenCharsList(forbiddenCharsList, filePath); return forbiddenCharsList; } exports.default = default_1; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZmlsZS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NoZWNrLWZpbGUtcGF0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix5Q0FBeUM7QUFDekMsMEVBQWlEO0FBR2pELE1BQU0sU0FBUyxHQUFZLEdBQUcsQ0FBQztBQUMvQixNQUFNLGtCQUFrQixHQUFHLENBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBR3ZFLFNBQVMseUJBQXlCLENBQUUsa0JBQWtCLEVBQUUsUUFBUTtJQUM1RCxNQUFNLGlCQUFpQixHQUFTLGVBQUssSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sdUJBQXVCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUV0SSxJQUFJLGlCQUFpQixJQUFJLHVCQUF1QjtRQUM1QyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBRSxrQkFBa0IsRUFBRSxrQkFBa0I7SUFDcEUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLGtCQUFrQixDQUFDO0lBRXJDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25DLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWhELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELG1CQUF5QixRQUFRO0lBQzdCLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLElBQUEsMkJBQWdCLEVBQUMsUUFBUSxFQUFFO1FBQ3ZCLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQy9GLENBQUMsQ0FBQztJQUVILHlCQUF5QixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXhELE9BQU8sa0JBQWtCLENBQUM7QUFDOUIsQ0FBQztBQVZELDRCQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB3aW4gYXMgaXNXaW4gfSBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IHNhbml0aXplRmlsZW5hbWUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnO1xuXG5cbmNvbnN0IFNBRkVfQ0hBUiAgICAgICAgICA9ICdfJztcbmNvbnN0IEFMTE9XRURfQ0hBUlNfTElTVCA9IFtwYXRoLndpbjMyLnNlcCwgcGF0aC5wb3NpeC5zZXAsICcuJywgJy4uJ107XG5cblxuZnVuY3Rpb24gY29ycmVjdEZvcmJpZGRlbkNoYXJzTGlzdCAoZm9yYmlkZGVuQ2hhcnNMaXN0LCBmaWxlUGF0aCkge1xuICAgIGNvbnN0IGlzV2luQWJzb2x1dGVQYXRoICAgICAgID0gaXNXaW4gJiYgcGF0aC5pc0Fic29sdXRlKGZpbGVQYXRoKTtcbiAgICBjb25zdCBoYXNEcml2ZVNlcGFyYXRvckluTGlzdCA9IGZvcmJpZGRlbkNoYXJzTGlzdC5sZW5ndGggJiYgZm9yYmlkZGVuQ2hhcnNMaXN0WzBdLmNoYXJzID09PSAnOicgJiYgZm9yYmlkZGVuQ2hhcnNMaXN0WzBdLmluZGV4ID09PSAxO1xuXG4gICAgaWYgKGlzV2luQWJzb2x1dGVQYXRoICYmIGhhc0RyaXZlU2VwYXJhdG9ySW5MaXN0KVxuICAgICAgICBmb3JiaWRkZW5DaGFyc0xpc3Quc2hpZnQoKTtcbn1cblxuZnVuY3Rpb24gYWRkRm9yYmlkZGVuQ2hhcnNUb0xpc3QgKGZvcmJpZGRlbkNoYXJzTGlzdCwgZm9yYmlkZGVuQ2hhcnNJbmZvKSB7XG4gICAgY29uc3QgeyBjaGFycyB9ID0gZm9yYmlkZGVuQ2hhcnNJbmZvO1xuXG4gICAgaWYgKCFBTExPV0VEX0NIQVJTX0xJU1QuaW5jbHVkZXMoY2hhcnMpKVxuICAgICAgICBmb3JiaWRkZW5DaGFyc0xpc3QucHVzaChmb3JiaWRkZW5DaGFyc0luZm8pO1xuXG4gICAgcmV0dXJuIFNBRkVfQ0hBUi5yZXBlYXQoY2hhcnMubGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZm9yYmlkZGVuQ2hhcnNMaXN0ID0gW107XG5cbiAgICBzYW5pdGl6ZUZpbGVuYW1lKGZpbGVQYXRoLCB7XG4gICAgICAgIHJlcGxhY2VtZW50OiAoY2hhcnMsIGluZGV4KSA9PiBhZGRGb3JiaWRkZW5DaGFyc1RvTGlzdChmb3JiaWRkZW5DaGFyc0xpc3QsIHsgY2hhcnMsIGluZGV4IH0pLFxuICAgIH0pO1xuXG4gICAgY29ycmVjdEZvcmJpZGRlbkNoYXJzTGlzdChmb3JiaWRkZW5DaGFyc0xpc3QsIGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmb3JiaWRkZW5DaGFyc0xpc3Q7XG59XG4iXX0=