cnpmcore
Version:
Private NPM Registry for Enterprise
114 lines • 9.39 kB
JavaScript
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, HTTPBody, HTTPController, HTTPMethod, HTTPMethodEnum, HTTPParam, Inject, Middleware, } from 'egg';
import { ForbiddenError } from 'egg/errors';
import { FULLNAME_REG_STRING } from "../../common/PackageUtil.js";
import { AdminAccess } from "../middleware/AdminAccess.js";
import { BlockPackageRule } from "../typebox.js";
import { AbstractController } from "./AbstractController.js";
let PackageBlockController = class PackageBlockController extends AbstractController {
async blockPackage(ctx, fullname, data) {
const params = { fullname, reason: data.reason };
ctx.tValidate(BlockPackageRule, params);
const packageEntity = await this.getPackageEntityByFullname(params.fullname);
if (packageEntity.isPrivate) {
throw new ForbiddenError(`Can't block private package "${params.fullname}"`);
}
const authorized = await this.userRoleManager.getAuthorizedUserAndToken(ctx);
const block = await this.packageManagerService.blockPackage(packageEntity, `${params.reason} (operator: ${authorized?.user.name}/${authorized?.user.userId})`);
ctx.logger.info('[PackageBlockController.blockPackage:success] fullname: %s, packageId: %s, packageVersionBlockId: %s', fullname, packageEntity.packageId, block.packageVersionBlockId);
ctx.status = 201;
return {
ok: true,
id: block.packageVersionBlockId,
package_id: packageEntity.packageId,
};
}
async unblockPackage(ctx, fullname) {
const packageEntity = await this.getPackageEntityByFullname(fullname);
if (packageEntity.isPrivate) {
throw new ForbiddenError(`Can't unblock private package "${fullname}"`);
}
await this.packageManagerService.unblockPackage(packageEntity);
ctx.logger.info('[PackageBlockController.unblockPackage:success] fullname: %s, packageId: %s', fullname, packageEntity.packageId);
return {
ok: true,
};
}
async listPackageBlocks(fullname) {
const packageEntity = await this.getPackageEntityByFullname(fullname);
const blocks = await this.packageVersionBlockRepository.listPackageVersionBlocks(packageEntity.packageId);
return {
data: blocks.map((block) => {
return {
id: block.packageVersionBlockId,
version: block.version,
reason: block.reason,
created: block.createdAt,
modified: block.updatedAt,
};
}),
};
}
};
__decorate([
Inject(),
__metadata("design:type", Function)
], PackageBlockController.prototype, "packageManagerService", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], PackageBlockController.prototype, "packageVersionBlockRepository", void 0);
__decorate([
HTTPMethod({
// PUT /-/package/:fullname/blocks
path: `/-/package/:fullname(${FULLNAME_REG_STRING})/blocks`,
method: HTTPMethodEnum.PUT,
}),
Middleware(AdminAccess),
__param(0, HTTPContext()),
__param(1, HTTPParam()),
__param(2, HTTPBody()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Context, String, Object]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "blockPackage", null);
__decorate([
HTTPMethod({
// DELETE /-/package/:fullname/blocks
path: `/-/package/:fullname(${FULLNAME_REG_STRING})/blocks`,
method: HTTPMethodEnum.DELETE,
}),
Middleware(AdminAccess),
__param(0, HTTPContext()),
__param(1, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Context, String]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "unblockPackage", null);
__decorate([
HTTPMethod({
// GET /-/package/:fullname/blocks
path: `/-/package/:fullname(${FULLNAME_REG_STRING})/blocks`,
method: HTTPMethodEnum.GET,
}),
__param(0, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], PackageBlockController.prototype, "listPackageBlocks", null);
PackageBlockController = __decorate([
HTTPController()
], PackageBlockController);
export { PackageBlockController };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUJsb2NrQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FwcC9wb3J0L2NvbnRyb2xsZXIvUGFja2FnZUJsb2NrQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFVBQVUsRUFDVixjQUFjLEVBQ2QsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxLQUFLLENBQUM7QUFDYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3RELElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEsa0JBQWtCO0lBWXRELEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBZ0IsR0FBWSxFQUFlLFFBQWdCLEVBQWMsSUFBc0I7UUFDL0csTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksY0FBYyxDQUFDLGdDQUFnQyxNQUFNLENBQUMsUUFBUSxHQUFH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