cnpmcore
Version:
Private NPM Registry for Enterprise
196 lines • 13.8 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, HTTPQuery, Inject, Middleware, } from 'egg';
import { NotFoundError } from 'egg/errors';
import { AdminAccess } from "../middleware/AdminAccess.js";
import { RegistryCreateOptions, RegistryCreateSyncOptions, RegistryUpdateOptions, } from "../typebox.js";
import { AbstractController } from "./AbstractController.js";
let RegistryController = class RegistryController extends AbstractController {
async listRegistries(pageSize, pageIndex) {
const registries = await this.registryManagerService.listRegistries({
pageSize,
pageIndex,
});
return registries;
}
async showRegistry(id) {
const registry = await this.registryManagerService.findByRegistryId(id);
if (!registry) {
throw new NotFoundError('registry not found');
}
return registry;
}
async showRegistryScopes(id, pageSize, pageIndex) {
const registry = await this.registryManagerService.findByRegistryId(id);
if (!registry) {
throw new NotFoundError('registry not found');
}
const scopes = await this.scopeManagerService.listScopesByRegistryId(id, {
pageIndex,
pageSize,
});
return scopes;
}
async createRegistry(ctx, registryOptions) {
ctx.tValidate(RegistryCreateOptions, registryOptions);
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
const { name, changeStream, host, userPrefix = '', type, authToken } = registryOptions;
await this.registryManagerService.createRegistry({
name,
changeStream,
host,
userPrefix,
operatorId: authorizedUser.userId,
type,
authToken,
});
return { ok: true };
}
async createRegistrySyncTask(ctx, id, registryOptions) {
ctx.tValidate(RegistryCreateSyncOptions, registryOptions);
const { since } = registryOptions;
const registry = await this.registryManagerService.findByRegistryId(id);
if (!registry) {
throw new NotFoundError('registry not found');
}
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
await this.registryManagerService.createSyncChangesStream({
registryId: registry.registryId,
since,
operatorId: authorizedUser.userId,
});
return { ok: true };
}
async removeRegistry(ctx, id) {
const authorizedUser = await this.userRoleManager.requiredAuthorizedUser(ctx, 'setting');
await this.registryManagerService.remove({
registryId: id,
operatorId: authorizedUser.userId,
});
return { ok: true };
}
async updateRegistry(ctx, id, updateRegistryOptions) {
ctx.tValidate(RegistryUpdateOptions, updateRegistryOptions);
const registry = await this.registryManagerService.findByRegistryId(id);
if (!registry) {
throw new NotFoundError('registry not found');
}
const { name, changeStream, host, type, authToken } = registry;
const _updateRegistryOptions = {
name,
changeStream,
host,
type,
authToken,
...updateRegistryOptions,
};
await this.registryManagerService.updateRegistry(registry.registryId, _updateRegistryOptions);
return { ok: true };
}
};
__decorate([
Inject(),
__metadata("design:type", Function)
], RegistryController.prototype, "registryManagerService", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], RegistryController.prototype, "scopeManagerService", void 0);
__decorate([
HTTPMethod({
path: '/-/registry',
method: HTTPMethodEnum.GET,
}),
__param(0, HTTPQuery()),
__param(1, HTTPQuery()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object]),
__metadata("design:returntype", Promise)
], RegistryController.prototype, "listRegistries", null);
__decorate([
HTTPMethod({
path: '/-/registry/:id',
method: HTTPMethodEnum.GET,
}),
__param(0, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], RegistryController.prototype, "showRegistry", null);
__decorate([
HTTPMethod({
path: '/-/registry/:id/scopes',
method: HTTPMethodEnum.GET,
}),
__param(0, HTTPParam()),
__param(1, HTTPQuery()),
__param(2, HTTPQuery()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String, Object, Object]),
__metadata("design:returntype", Promise)
], RegistryController.prototype, "showRegistryScopes", null);
__decorate([
HTTPMethod({
path: '/-/registry',
method: HTTPMethodEnum.POST,
}),
Middleware(AdminAccess),
__param(0, HTTPContext()),
__param(1, HTTPBody()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Context, Object]),
__metadata("design:returntype", Promise)
], RegistryController.prototype, "createRegistry", null);
__decorate([
HTTPMethod({
path: '/-/registry/:id/sync',
method: HTTPMethodEnum.POST,
}),
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)
], RegistryController.prototype, "createRegistrySyncTask", null);
__decorate([
HTTPMethod({
path: '/-/registry/:id',
method: HTTPMethodEnum.DELETE,
}),
Middleware(AdminAccess),
__param(0, HTTPContext()),
__param(1, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Context, String]),
__metadata("design:returntype", Promise)
], RegistryController.prototype, "removeRegistry", null);
__decorate([
HTTPMethod({
path: '/-/registry/:id',
method: HTTPMethodEnum.PATCH,
}),
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)
], RegistryController.prototype, "updateRegistry", null);
RegistryController = __decorate([
HTTPController()
], RegistryController);
export { RegistryController };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnlDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9SZWdpc3RyeUNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUNMLFdBQVcsRUFDWCxPQUFPLEVBQ1AsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLEtBQUssQ0FBQztBQUNiLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLHFCQUFxQixHQUV0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RCxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLGtCQUFrQjtJQVVsRCxBQUFOLEtBQUssQ0FBQyxjQUFjLENBQ0wsUUFBcUQsRUFDckQsU0FBdUQ7UUFFcEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDO1lBQ2xFLFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQU1LLEFBQU4sS0FBSyxDQUFDLFlBQVksQ0FBYyxFQUFVO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNo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