UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

159 lines 11.9 kB
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); } }; import { HTTPContext, Context, HTTPController, HTTPMethod, HTTPMethodEnum, HTTPParam, HTTPQuery, Inject } from 'egg'; import { ForbiddenError, NotFoundError, NotImplementedError, UnauthorizedError } from 'egg/errors'; import { SyncMode } from "../../common/constants.js"; import { FULLNAME_REG_STRING } from "../../common/PackageUtil.js"; import { isPkgManifest } from "../../core/entity/Package.js"; import { AbstractController } from "./AbstractController.js"; let ProxyCacheController = class ProxyCacheController extends AbstractController { async listProxyCache(pageSize, pageIndex) { if (this.config.cnpmcore.syncMode !== SyncMode.proxy) { throw new ForbiddenError('proxy mode is not enabled'); } return await this.proxyCacheRepository.listCachedFiles({ pageSize, pageIndex, }); } async showProxyCaches(pageSize, pageIndex, fullname) { if (this.config.cnpmcore.syncMode !== SyncMode.proxy) { throw new ForbiddenError('proxy mode is not enabled'); } return await this.proxyCacheRepository.listCachedFiles({ pageSize, pageIndex, }, fullname); } async refreshProxyCaches(fullname) { if (this.config.cnpmcore.syncMode !== SyncMode.proxy) { throw new ForbiddenError('proxy mode is not enabled'); } const refreshList = await this.proxyCacheRepository.findProxyCaches(fullname); if (refreshList.length === 0) { throw new NotFoundError(); } await this.cacheService.removeCache(fullname); const taskList = refreshList // only refresh package.json and abbreviated.json .filter((i) => isPkgManifest(i.fileType)) .map((item) => { const task = this.proxyCacheService.createTask(`${item.fullname}/${item.fileType}`, { fullname: item.fullname, fileType: item.fileType, }); return task; }); const tasks = await Promise.all(taskList); return { ok: true, tasks, }; } async removeProxyCaches(fullname) { if (this.config.cnpmcore.syncMode !== SyncMode.proxy) { throw new ForbiddenError('proxy mode is not enabled'); } const proxyCachesList = await this.proxyCacheRepository.findProxyCaches(fullname); if (proxyCachesList.length === 0) { throw new NotFoundError(); } await this.cacheService.removeCache(fullname); const removingList = proxyCachesList.map((item) => this.proxyCacheService.removeProxyCache(item.fullname, item.fileType, item.version)); await Promise.all(removingList); return { ok: true, result: proxyCachesList, }; } async truncateProxyCaches(ctx) { const isAdmin = await this.userRoleManager.isAdmin(ctx); if (!isAdmin) { throw new UnauthorizedError('only admin can do this'); } if (this.config.cnpmcore.syncMode !== SyncMode.proxy) { throw new ForbiddenError('proxy mode is not enabled'); } throw new NotImplementedError('not implemented yet'); } }; __decorate([ Inject(), __metadata("design:type", Function) ], ProxyCacheController.prototype, "proxyCacheRepository", void 0); __decorate([ Inject(), __metadata("design:type", Function) ], ProxyCacheController.prototype, "proxyCacheService", void 0); __decorate([ Inject(), __metadata("design:type", Function) ], ProxyCacheController.prototype, "cacheService", void 0); __decorate([ HTTPMethod({ method: HTTPMethodEnum.GET, path: '/-/proxy-cache', }), __param(0, HTTPQuery()), __param(1, HTTPQuery()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object]), __metadata("design:returntype", Promise) ], ProxyCacheController.prototype, "listProxyCache", null); __decorate([ HTTPMethod({ method: HTTPMethodEnum.GET, path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`, }), __param(0, HTTPQuery()), __param(1, HTTPQuery()), __param(2, HTTPParam()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, Object, String]), __metadata("design:returntype", Promise) ], ProxyCacheController.prototype, "showProxyCaches", null); __decorate([ HTTPMethod({ method: HTTPMethodEnum.PATCH, path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`, }), __param(0, HTTPParam()), __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", Promise) ], ProxyCacheController.prototype, "refreshProxyCaches", null); __decorate([ HTTPMethod({ method: HTTPMethodEnum.DELETE, path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`, }), __param(0, HTTPParam()), __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", Promise) ], ProxyCacheController.prototype, "removeProxyCaches", null); __decorate([ HTTPMethod({ method: HTTPMethodEnum.DELETE, path: '/-/proxy-cache', }), __param(0, HTTPContext()), __metadata("design:type", Function), __metadata("design:paramtypes", [Context]), __metadata("design:returntype", Promise) ], ProxyCacheController.prototype, "truncateProxyCaches", null); ProxyCacheController = __decorate([ HTTPController() ], ProxyCacheController); export { ProxyCacheController }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJveHlDYWNoZUNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL1Byb3h5Q2FjaGVDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3JILE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFLN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHdEQsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSxrQkFBa0I7SUFZcEQsQUFBTixLQUFLLENBQUMsY0FBYyxDQUNMLFFBQXFELEVBQ3JELFNBQXVEO1FBRXBFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDO1lBQ3JELFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1LLEFBQU4sS0FBSyxDQUFDLGVBQWUsQ0FDTixRQUFxRCxFQUNyRCxTQUF1RCxFQUN2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