| 1234567891011121314151617181920212223242526272829303132333435 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.JailFS = void 0;const NodeFS_1 = require("./NodeFS");const ProxiedFS_1 = require("./ProxiedFS");const path_1 = require("./path");const JAIL_ROOT = path_1.PortablePath.root;class JailFS extends ProxiedFS_1.ProxiedFS {    constructor(target, { baseFs = new NodeFS_1.NodeFS() } = {}) {        super(path_1.ppath);        this.target = this.pathUtils.resolve(path_1.PortablePath.root, target);        this.baseFs = baseFs;    }    getRealPath() {        return this.pathUtils.resolve(this.baseFs.getRealPath(), this.pathUtils.relative(path_1.PortablePath.root, this.target));    }    getTarget() {        return this.target;    }    getBaseFs() {        return this.baseFs;    }    mapToBase(p) {        const normalized = this.pathUtils.normalize(p);        if (this.pathUtils.isAbsolute(p))            return this.pathUtils.resolve(this.target, this.pathUtils.relative(JAIL_ROOT, p));        if (normalized.match(/^\.\.\/?/))            throw new Error(`Resolving this path (${p}) would escape the jail`);        return this.pathUtils.resolve(this.target, p);    }    mapFromBase(p) {        return this.pathUtils.resolve(JAIL_ROOT, this.pathUtils.relative(this.target, p));    }}exports.JailFS = JailFS;
 |