1 | ;
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const path_1 = __importDefault(require("path"));
|
7 | const os_family_1 = require("os-family");
|
8 | const sanitize_filename_1 = __importDefault(require("sanitize-filename"));
|
9 | const SAFE_CHAR = '_';
|
10 | const ALLOWED_CHARS_LIST = [path_1.default.win32.sep, path_1.default.posix.sep, '.', '..'];
|
11 | function correctForbiddenCharsList(forbiddenCharsList, filePath) {
|
12 | const isWinAbsolutePath = os_family_1.win && path_1.default.isAbsolute(filePath);
|
13 | const hasDriveSeparatorInList = forbiddenCharsList.length && forbiddenCharsList[0].chars === ':' && forbiddenCharsList[0].index === 1;
|
14 | if (isWinAbsolutePath && hasDriveSeparatorInList)
|
15 | forbiddenCharsList.shift();
|
16 | }
|
17 | function addForbiddenCharsToList(forbiddenCharsList, forbiddenCharsInfo) {
|
18 | const { chars } = forbiddenCharsInfo;
|
19 | if (!ALLOWED_CHARS_LIST.includes(chars))
|
20 | forbiddenCharsList.push(forbiddenCharsInfo);
|
21 | return SAFE_CHAR.repeat(chars.length);
|
22 | }
|
23 | function default_1(filePath) {
|
24 | const forbiddenCharsList = [];
|
25 | sanitize_filename_1.default(filePath, {
|
26 | replacement: (chars, index) => addForbiddenCharsToList(forbiddenCharsList, { chars, index })
|
27 | });
|
28 | correctForbiddenCharsList(forbiddenCharsList, filePath);
|
29 | return forbiddenCharsList;
|
30 | }
|
31 | exports.default = default_1;
|
32 | module.exports = exports.default;
|
33 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZmlsZS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NoZWNrLWZpbGUtcGF0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qix5Q0FBeUM7QUFDekMsMEVBQWlEO0FBR2pELE1BQU0sU0FBUyxHQUFZLEdBQUcsQ0FBQztBQUMvQixNQUFNLGtCQUFrQixHQUFHLENBQUMsY0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBR3ZFLFNBQVMseUJBQXlCLENBQUUsa0JBQWtCLEVBQUUsUUFBUTtJQUM1RCxNQUFNLGlCQUFpQixHQUFTLGVBQUssSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sdUJBQXVCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUV0SSxJQUFJLGlCQUFpQixJQUFJLHVCQUF1QjtRQUM1QyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBRSxrQkFBa0IsRUFBRSxrQkFBa0I7SUFDcEUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLGtCQUFrQixDQUFDO0lBRXJDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25DLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWhELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELG1CQUF5QixRQUFRO0lBQzdCLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLDJCQUFnQixDQUFDLFFBQVEsRUFBRTtRQUN2QixXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUMvRixDQUFDLENBQUM7SUFFSCx5QkFBeUIsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUV4RCxPQUFPLGtCQUFrQixDQUFDO0FBQzlCLENBQUM7QUFWRCw0QkFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd2luIGFzIGlzV2luIH0gZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCBzYW5pdGl6ZUZpbGVuYW1lIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJztcblxuXG5jb25zdCBTQUZFX0NIQVIgICAgICAgICAgPSAnXyc7XG5jb25zdCBBTExPV0VEX0NIQVJTX0xJU1QgPSBbcGF0aC53aW4zMi5zZXAsIHBhdGgucG9zaXguc2VwLCAnLicsICcuLiddO1xuXG5cbmZ1bmN0aW9uIGNvcnJlY3RGb3JiaWRkZW5DaGFyc0xpc3QgKGZvcmJpZGRlbkNoYXJzTGlzdCwgZmlsZVBhdGgpIHtcbiAgICBjb25zdCBpc1dpbkFic29sdXRlUGF0aCAgICAgICA9IGlzV2luICYmIHBhdGguaXNBYnNvbHV0ZShmaWxlUGF0aCk7XG4gICAgY29uc3QgaGFzRHJpdmVTZXBhcmF0b3JJbkxpc3QgPSBmb3JiaWRkZW5DaGFyc0xpc3QubGVuZ3RoICYmIGZvcmJpZGRlbkNoYXJzTGlzdFswXS5jaGFycyA9PT0gJzonICYmIGZvcmJpZGRlbkNoYXJzTGlzdFswXS5pbmRleCA9PT0gMTtcblxuICAgIGlmIChpc1dpbkFic29sdXRlUGF0aCAmJiBoYXNEcml2ZVNlcGFyYXRvckluTGlzdClcbiAgICAgICAgZm9yYmlkZGVuQ2hhcnNMaXN0LnNoaWZ0KCk7XG59XG5cbmZ1bmN0aW9uIGFkZEZvcmJpZGRlbkNoYXJzVG9MaXN0IChmb3JiaWRkZW5DaGFyc0xpc3QsIGZvcmJpZGRlbkNoYXJzSW5mbykge1xuICAgIGNvbnN0IHsgY2hhcnMgfSA9IGZvcmJpZGRlbkNoYXJzSW5mbztcblxuICAgIGlmICghQUxMT1dFRF9DSEFSU19MSVNULmluY2x1ZGVzKGNoYXJzKSlcbiAgICAgICAgZm9yYmlkZGVuQ2hhcnNMaXN0LnB1c2goZm9yYmlkZGVuQ2hhcnNJbmZvKTtcblxuICAgIHJldHVybiBTQUZFX0NIQVIucmVwZWF0KGNoYXJzLmxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChmaWxlUGF0aCkge1xuICAgIGNvbnN0IGZvcmJpZGRlbkNoYXJzTGlzdCA9IFtdO1xuXG4gICAgc2FuaXRpemVGaWxlbmFtZShmaWxlUGF0aCwge1xuICAgICAgICByZXBsYWNlbWVudDogKGNoYXJzLCBpbmRleCkgPT4gYWRkRm9yYmlkZGVuQ2hhcnNUb0xpc3QoZm9yYmlkZGVuQ2hhcnNMaXN0LCB7IGNoYXJzLCBpbmRleCB9KVxuICAgIH0pO1xuXG4gICAgY29ycmVjdEZvcmJpZGRlbkNoYXJzTGlzdChmb3JiaWRkZW5DaGFyc0xpc3QsIGZpbGVQYXRoKTtcblxuICAgIHJldHVybiBmb3JiaWRkZW5DaGFyc0xpc3Q7XG59XG4iXX0= |
\ | No newline at end of file |