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;
|