cnpmcore
Version:
Private NPM Registry for Enterprise
46 lines (45 loc) • 2.73 kB
TypeScript
import { type Context, EggAppConfig, Logger } from 'egg';
import { NotFoundError, UnavailableForLegalReasonsError } from 'egg/errors';
import type { Package as PackageEntity } from '../../core/entity/Package.ts';
import type { PackageVersion as PackageVersionEntity } from '../../core/entity/PackageVersion.ts';
import type { User as UserEntity } from '../../core/entity/User.ts';
import type { UserService } from '../../core/service/UserService.ts';
import type { PackageRepository } from '../../repository/PackageRepository.ts';
import type { UserRepository } from '../../repository/UserRepository.ts';
import { MiddlewareController } from '../middleware/index.ts';
import type { UserRoleManager } from '../UserRoleManager.ts';
declare class PackageNotFoundError extends NotFoundError {
redirectToSourceRegistry?: string;
}
declare class ControllerRedirectError extends NotFoundError {
location: string;
constructor(location: string);
}
export declare abstract class AbstractController extends MiddlewareController {
protected logger: Logger;
protected config: EggAppConfig;
protected userRoleManager: UserRoleManager;
protected packageRepository: PackageRepository;
protected userRepository: UserRepository;
protected userService: UserService;
protected get sourceRegistry(): string;
protected get enableSync(): boolean;
protected isPrivateScope(scope: string): boolean | "";
protected ensurePublishAccess<C extends boolean>(ctx: Context, fullname: string, checkPkgExist?: C): Promise<{
pkg: C extends true ? PackageEntity : undefined;
user: UserEntity;
}>;
protected get syncNotFound(): boolean;
protected get redirectNotFound(): boolean;
protected getAllowSync(ctx: Context): boolean;
protected createControllerRedirectError(location: string): ControllerRedirectError;
protected createPackageNotFoundError(fullname: string, version?: string): PackageNotFoundError;
protected createPackageNotFoundErrorWithRedirect(fullname: string, version?: string, allowSync?: boolean): PackageNotFoundError;
protected createPackageBlockError(reason: string, fullname: string, version?: string): UnavailableForLegalReasonsError;
protected getPackageEntityByFullname(fullname: string, allowSync?: boolean): Promise<PackageEntity>;
protected getPackageEntity(scope: string, name: string, allowSync?: boolean): Promise<PackageEntity>;
protected getPackageVersionEntity(pkg: PackageEntity, version: string, allowSync?: boolean): Promise<PackageVersionEntity>;
protected getAndCheckVersionFromFilename(ctx: Context, fullname: string, filenameWithVersion: string): string;
protected setCDNHeaders(ctx: Context): void;
}
export {};