JezK
Edit File: tarball-resolver.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; function _regenerator() { var data = _interopRequireDefault(require("@babel/runtime/regenerator")); _regenerator = function _regenerator() { return data; }; return data; } function _asyncToGenerator2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); _asyncToGenerator2 = function _asyncToGenerator2() { return data; }; return data; } function _classCallCheck2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); _classCallCheck2 = function _classCallCheck2() { return data; }; return data; } function _createClass2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); _createClass2 = function _createClass2() { return data; }; return data; } function _assertThisInitialized2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); _assertThisInitialized2 = function _assertThisInitialized2() { return data; }; return data; } function _inherits2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); _inherits2 = function _inherits2() { return data; }; return data; } function _possibleConstructorReturn2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); _possibleConstructorReturn2 = function _possibleConstructorReturn2() { return data; }; return data; } function _getPrototypeOf2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); _getPrototypeOf2 = function _getPrototypeOf2() { return data; }; return data; } function _defineProperty2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); _defineProperty2 = function _defineProperty2() { return data; }; return data; } function _tarballFetcher() { var data = _interopRequireDefault(require("../../fetchers/tarball-fetcher.js")); _tarballFetcher = function _tarballFetcher() { return data; }; return data; } function _exoticResolver() { var data = _interopRequireDefault(require("./exotic-resolver.js")); _exoticResolver = function _exoticResolver() { return data; }; return data; } function _gitResolver() { var data = _interopRequireDefault(require("./git-resolver.js")); _gitResolver = function _gitResolver() { return data; }; return data; } function _guessName() { var data = _interopRequireDefault(require("../../util/guess-name.js")); _guessName = function _guessName() { return data; }; return data; } function versionUtil() { var data = _interopRequireWildcard(require("../../util/version.js")); versionUtil = function versionUtil() { return data; }; return data; } function crypto() { var data = _interopRequireWildcard(require("../../util/crypto.js")); crypto = function crypto() { return data; }; return data; } function fs() { var data = _interopRequireWildcard(require("../../util/fs.js")); fs = function fs() { return data; }; return data; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2()["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2()["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2()["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var invariant = require('invariant'); var TarballResolver = /*#__PURE__*/function (_ExoticResolver) { (0, _inherits2()["default"])(TarballResolver, _ExoticResolver); var _super = _createSuper(TarballResolver); function TarballResolver(request, fragment) { var _this; (0, _classCallCheck2()["default"])(this, TarballResolver); _this = _super.call(this, request, fragment); (0, _defineProperty2()["default"])((0, _assertThisInitialized2()["default"])(_this), "url", void 0); (0, _defineProperty2()["default"])((0, _assertThisInitialized2()["default"])(_this), "hash", void 0); var _versionUtil$explodeH = versionUtil().explodeHashedUrl(fragment), hash = _versionUtil$explodeH.hash, url = _versionUtil$explodeH.url; _this.hash = hash; _this.url = url; return _this; } (0, _createClass2()["default"])(TarballResolver, [{ key: "resolve", value: function () { var _resolve = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee() { var shrunk, url, hash, registry, pkgJson, dest, _yield$this$config$re, fetcher, fetched; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: shrunk = this.request.getLocked('tarball'); if (!shrunk) { _context.next = 3; break; } return _context.abrupt("return", shrunk); case 3: url = this.url; hash = this.hash, registry = this.registry; // generate temp directory dest = this.config.getTemp(crypto().hash(url)); _context.next = 8; return this.config.isValidModuleDest(dest); case 8: if (!_context.sent) { _context.next = 17; break; } _context.next = 11; return this.config.readPackageMetadata(dest); case 11: _yield$this$config$re = _context.sent; pkgJson = _yield$this$config$re["package"]; hash = _yield$this$config$re.hash; registry = _yield$this$config$re.registry; _context.next = 27; break; case 17: _context.next = 19; return fs().unlink(dest); case 19: fetcher = new (_tarballFetcher()["default"])(dest, { type: 'tarball', reference: url, registry: registry, hash: hash }, this.config); // fetch file and get it's hash _context.next = 22; return fetcher.fetch({ name: (0, _guessName()["default"])(url), version: '0.0.0', _registry: 'npm' }); case 22: fetched = _context.sent; pkgJson = fetched["package"]; hash = fetched.hash; registry = pkgJson._registry; invariant(registry, 'expected registry'); case 27: // use the commit/tarball hash as the uid as we can't rely on the version as it's not // in the registry pkgJson._uid = hash; // set remote so it can be "fetched" pkgJson._remote = { type: 'copy', resolved: "".concat(url, "#").concat(hash), hash: hash, registry: registry, reference: dest }; return _context.abrupt("return", pkgJson); case 30: case "end": return _context.stop(); } }, _callee, this); })); function resolve() { return _resolve.apply(this, arguments); } return resolve; }() }], [{ key: "isVersion", value: function isVersion(pattern) { // we can sometimes match git urls which we don't want if (_gitResolver()["default"].isVersion(pattern)) { return false; } // full http url if (pattern.startsWith('http://') || pattern.startsWith('https://')) { return true; } // local file reference - ignore patterns with names if (pattern.indexOf('@') < 0) { if (pattern.endsWith('.tgz') || pattern.endsWith('.tar.gz')) { return true; } } return false; } }]); return TarballResolver; }(_exoticResolver()["default"]); exports["default"] = TarballResolver; //# sourceMappingURL=tarball-resolver.js.map