import { IBasicAuth , IBasicStorage , IStorageManager , UpLinkConf , Callback , Versions , Version , RemoteUser , Config , Logger , JWTSignOptions , PackageAccess , IPluginStorage , StringValue as verdaccio$StringValue , IReadTarball , Package , IPluginStorageFilter , Author , AuthPluginPackage , Token , ITokenActions , TokenFilter , } from "@verdaccio/types" ; import { NextFunction , Request , Response } from "express" ; export type StringValue = verdaccio$StringValue ; export interface StartUpConfig { storage : string ; plugins ? : string ; self_path : string ; } export interface LegacyPackageList { [ key ] : LegacyPackageAccess ; } export type LegacyPackageAccess = PackageAccess & { allow_publish ? : string [ ] ; allow_proxy ? : string [ ] ; allow_access ? : string [ ] ; proxy_access ? : string [ ] ; unpublish ? : string [ ] ; } ; export type MatchedPackage = PackageAccess | void ; export type JWTPayload = RemoteUser & { password ? : string ; } ; export interface AESPayload { user : string ; password : string ; } export interface AuthTokenHeader { scheme : string ; token : string ; } export type BasicPayload = AESPayload | void ; export type AuthMiddlewarePayload = RemoteUser | BasicPayload ; export interface ProxyList { [ key ] : IProxy ; } export interface CookieSessionToken { expires : Date ; } export interface Utils { ErrorCode : any ; getLatestVersion : Callback ; isObject : ( value : any ) => boolean ; validate_name : ( value : any ) => boolean ; tag_version : ( value : any , version : string , tag : string ) => void ; normalizeDistTags : ( pkg : Package ) => void ; semverSort : ( keys : string [ ] ) => string [ ] ; } export interface Profile { tfa : boolean ; name : string ; email : string ; email_verified : string ; created : string ; updated : string ; cidr_whitelist : any ; fullname : string ; } export type $RequestExtend = Request & { remote_user ? : any ; log : Logger ; } ; export type $ResponseExtend = Response & { cookies ? : any ; } ; export type $NextFunctionVer = NextFunction & any ; export type $SidebarPackage = Package & { latest : any ; } ; export interface IAuthWebUI { jwtEncrypt ( user , signOptions ) : Promise < string > ; aesEncrypt ( buf ) : Buffer ; } interface IAuthMiddleware { apiJWTmiddleware ( ) : $NextFunctionVer ; webUIJWTmiddleware ( ) : $NextFunctionVer ; } export interface IAuth extends IBasicAuth < Config > , IAuthMiddleware , IAuthWebUI { config : Config ; logger : Logger ; secret : string ; plugins : any [ ] ; allow_unpublish ( pkg , user , callback ) : void ; } export interface IWebSearch { index : any ; storage : IStorageHandler ; query ( query ) : any ; add ( pkg ) : void ; remove ( name ) : void ; reindex ( ) : void ; configureStorage ( storage ) : void ; } export type UpLinkConfLocal = UpLinkConf & { no_proxy ? : string ; } ; export interface IProxy { config : UpLinkConfLocal ; failed_requests : number ; userAgent : string ; ca ? : string | void ; logger : Logger ; server_id : string ; url : any ; maxage : number ; timeout : number ; max_fails : number ; fail_timeout : number ; upname : string ; fetchTarball ( url ) : IReadTarball ; isUplinkValid ( url ) : boolean ; search ( options ) : any ; getRemoteMetadata ( name , options , callback ) : void ; } export interface IStorage extends IBasicStorage < Config > , ITokenActions { config : Config ; storagePlugin : IPluginStorage < Config > ; logger : Logger ; } export interface IGetPackageOptions { callback : Callback ; name : string ; keepUpLinkData : boolean ; uplinksLook : boolean ; req : any ; } export interface ISyncUplinks { uplinksLook ? : boolean ; etag ? : string ; req ? : Request ; } export type IPluginFilters = IPluginStorageFilter < Config > [ ] ; export interface IStorageHandler extends IStorageManager < Config > , ITokenActions { config : Config ; localStorage : IStorage | null ; filters : IPluginFilters ; uplinks : ProxyList ; init ( config , filters ) : Promise < string > ; saveToken ( token ) : Promise < any > ; deleteToken ( user , tokenKey ) : Promise < any > ; readTokens ( filter ) : Promise < Token [ ] > ; _syncUplinksMetadata ( name , packageInfo , options , callback ) : void ; _updateVersionsHiddenUpLink ( versions , upLink ) : void ; } property export interface Styles { [ ruleOrSelector ] : string | number | Styles ; } export type AuthorAvatar = Author & { avatar ? : string ; } ;