extract-base-iterator
Version:
Base iterator for extract iterators like tar-iterator and zip-iterator
28 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return safeJoinPath;
}
});
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
var _compatts = require("./compat.js");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function safeJoinPath(dest, relPath) {
var resolvedDest = _path.default.resolve(dest);
var resolvedFull = _path.default.resolve(dest, relPath);
if (resolvedFull !== resolvedDest && !(0, _compatts.stringStartsWith)(resolvedFull, resolvedDest + _path.default.sep)) {
var err = new Error("Path traversal detected: '".concat(relPath, "' escapes destination '").concat(dest, "'"));
err.code = 'ETRAVERSAL';
throw err;
}
return resolvedFull;
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }