UNPKG

cnpmcore

Version:
121 lines 10.3 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DownloadPackageVersionTarController = void 0; const egg_errors_1 = require("egg-errors"); const tegg_1 = require("@eggjs/tegg"); const AbstractController_1 = require("../AbstractController"); const PackageUtil_1 = require("../../../common/PackageUtil"); const NFSAdapter_1 = require("../../../common/adapter/NFSAdapter"); const PackageManagerService_1 = require("../../../core/service/PackageManagerService"); const constants_1 = require("../../../common/constants"); let DownloadPackageVersionTarController = class DownloadPackageVersionTarController extends AbstractController_1.AbstractController { // Support OPTIONS Request on tgz download async downloadForOptions(ctx) { ctx.set('access-control-allow-origin', '*'); ctx.set('access-control-allow-methods', 'GET,HEAD'); ctx.status = 204; } async download(ctx, fullname, filenameWithVersion) { // tgz file storeKey: `/packages/${this.fullname}/${version}/${filename}` const version = this.getAndCheckVersionFromFilename(ctx, fullname, filenameWithVersion); const storeKey = `/packages/${fullname}/${version}/${filenameWithVersion}.tgz`; const downloadUrl = await this.nfsAdapter.getDownloadUrl(storeKey); if (this.config.cnpmcore.syncMode === constants_1.SyncMode.all && downloadUrl) { // try nfs url first, avoid db query this.packageManagerService.plusPackageVersionCounter(fullname, version); ctx.redirect(downloadUrl); return; } // check package version in database const allowSync = this.getAllowSync(ctx); const pkg = await this.getPackageEntityByFullname(fullname, allowSync); const packageVersion = await this.getPackageVersionEntity(pkg, version, allowSync); // read by nfs url if (downloadUrl) { this.packageManagerService.plusPackageVersionCounter(fullname, version); ctx.redirect(downloadUrl); return; } // read from database ctx.logger.info('[PackageController:downloadVersionTar] %s@%s, packageVersionId: %s', pkg.fullname, version, packageVersion.packageVersionId); const urlOrStream = await this.packageManagerService.downloadPackageVersionTar(packageVersion); if (!urlOrStream) { throw new egg_errors_1.NotFoundError(`"${filenameWithVersion}.tgz" not found`); } this.packageManagerService.plusPackageVersionCounter(fullname, version); if (typeof urlOrStream === 'string') { ctx.redirect(urlOrStream); return; } ctx.attachment(`${filenameWithVersion}.tgz`); return urlOrStream; } async deprecatedDownload(ctx, fullname, fullnameWithVersion) { // /@emotion/utils/download/@emotion/utils-0.11.3.tgz // => /@emotion/utils/-/utils-0.11.3.tgz const filenameWithVersion = (0, PackageUtil_1.getScopeAndName)(fullnameWithVersion)[1]; return await this.download(ctx, fullname, filenameWithVersion); } }; exports.DownloadPackageVersionTarController = DownloadPackageVersionTarController; __decorate([ (0, tegg_1.Inject)(), __metadata("design:type", PackageManagerService_1.PackageManagerService) ], DownloadPackageVersionTarController.prototype, "packageManagerService", void 0); __decorate([ (0, tegg_1.Inject)(), __metadata("design:type", NFSAdapter_1.NFSAdapter) ], DownloadPackageVersionTarController.prototype, "nfsAdapter", void 0); __decorate([ (0, tegg_1.HTTPMethod)({ // GET /:fullname/-/:filenameWithVersion.tgz path: `/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/-/:filenameWithVersion.tgz`, method: tegg_1.HTTPMethodEnum.OPTIONS, }), __param(0, (0, tegg_1.Context)()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise) ], DownloadPackageVersionTarController.prototype, "downloadForOptions", null); __decorate([ (0, tegg_1.HTTPMethod)({ // GET /:fullname/-/:filenameWithVersion.tgz path: `/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/-/:filenameWithVersion.tgz`, method: tegg_1.HTTPMethodEnum.GET, }), __param(0, (0, tegg_1.Context)()), __param(1, (0, tegg_1.HTTPParam)()), __param(2, (0, tegg_1.HTTPParam)()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, String, String]), __metadata("design:returntype", Promise) ], DownloadPackageVersionTarController.prototype, "download", null); __decorate([ (0, tegg_1.HTTPMethod)({ // GET /:fullname/download/:fullnameWithVersion.tgz path: `/:fullname(${PackageUtil_1.FULLNAME_REG_STRING})/download/:fullnameWithVersion+.tgz`, method: tegg_1.HTTPMethodEnum.GET, }), __param(0, (0, tegg_1.Context)()), __param(1, (0, tegg_1.HTTPParam)()), __param(2, (0, tegg_1.HTTPParam)()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, String, String]), __metadata("design:returntype", Promise) ], DownloadPackageVersionTarController.prototype, "deprecatedDownload", null); exports.DownloadPackageVersionTarController = DownloadPackageVersionTarController = __decorate([ (0, tegg_1.HTTPController)() ], DownloadPackageVersionTarController); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG93bmxvYWRQYWNrYWdlVmVyc2lvblRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvcGFja2FnZS9Eb3dubG9hZFBhY2thZ2VWZXJzaW9uVGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUVvQjtBQUNwQixzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRixtRUFBZ0U7QUFDaEUsdUZBQW9GO0FBQ3BGLHlEQUFxRDtBQUc5QyxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFvQyxTQUFRLHVDQUFrQjtJQU16RSwwQ0FBMEM7SUFNcEMsQUFBTixLQUFLLENBQUMsa0JBQWtCLENBQVksR0FBZTtRQUNqRCxHQUFHLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQU9LLEFBQU4sS0FBSyxDQUFDLFFBQVEsQ0FBWSxHQUFlLEVBQWUsUUFBZ0IsRUFBZSxtQkFBMkI7UUFDaEgseUVBQXlFO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEYsTUFBTSxRQUFRLEdBQUcsYUFBYSxRQUFRLElBQUksT0FBTyxJQUFJLG1CQUFtQixNQUFNLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxvQkFBUSxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUU7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