UNPKG

extract-base-iterator

Version:

Base iterator for extract iterators like tar-iterator and zip-iterator

28 lines 1.17 kB
"use strict"; 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; }