import { AuthorizationHeader, Client as Client$1, ClientError, RequestBaseOptions, RequestOptions, setHeader, unsetHeader } from "hapic"; import { BuildInput } from "rapiq"; import { Client as Client$2, ClientPermission, ClientRole, ClientScope, IdentityProvider, IdentityProviderRoleMapping, OAuth2AuthorizationCodeRequest, Permission, PermissionPolicy, Policy, Realm, Robot, RobotPermission, RobotRole, Role, RoleAttribute, RolePermission, Scope, User, UserAttribute, UserPermission, UserRole } from "@authup/core-kit"; import { AuthorizeAPI, TokenAPI, TokenGrantResponse, UserInfoAPI } from "@hapic/oauth2"; import { ObjectLiteral } from "@authup/kit"; import { OAuth2JsonWebKey, OpenIDProviderMetadata } from "@authup/specs"; import { EventEmitter } from "@posva/event-emitter"; import { BuiltInPolicies } from "@authup/access"; //#region src/cookies.d.ts declare enum CookieName { ACCESS_TOKEN = "access_token", ACCESS_TOKEN_EXPIRE_DATE = "access_token_expire_date", REFRESH_TOKEN = "refresh_token", USER = "user", REALM = "realm", REALM_MANAGEMENT = "realm_management" } //#endregion //#region src/client/helper.d.ts declare function isClientError(input: unknown): input is ClientError; //#endregion //#region src/domains/types-base.d.ts type EntityRecordResponse = R; type EntityCollectionResponse = { data: R[]; meta: { limit: number; offset: number; total: number; }; }; type DomainEntityWithID = { [key: string]: any; id: any; }; type DomainEntityID = T extends DomainEntityWithID ? T['id'] : never; interface EntityAPISlim { getMany(record?: BuildInput): Promise>; getOne(id: DomainEntityID, record?: BuildInput): Promise>; delete(id: DomainEntityID): Promise>; create(data: Partial): Promise>; } interface EntityAPI extends EntityAPISlim { update(id: DomainEntityID, data: Partial): Promise>; } type BaseAPIContext = { client?: Client$1 | RequestBaseOptions; }; //#endregion //#region src/domains/base.d.ts declare class BaseAPI { protected client: Client$1; constructor(context?: BaseAPIContext); setClient(input?: Client$1 | RequestBaseOptions): void; } //#endregion //#region src/domains/entities/client/module.d.ts declare class ClientAPI extends BaseAPI implements EntityAPI { getMany(options?: BuildInput): Promise>; getOne(id: Client$2['id'], options?: BuildInput): Promise>; delete(id: Client$2['id']): Promise>; create(data: Partial): Promise>; update(id: Client$2['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; } //#endregion //#region src/domains/entities/client-permission/module.d.ts declare class ClientPermissionAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: ClientPermission['id'], data?: BuildInput): Promise>; delete(id: ClientPermission['id']): Promise>; create(data: Partial): Promise>; update(id: ClientPermission['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/client-role/module.d.ts declare class ClientRoleAPI extends BaseAPI implements EntityAPISlim { getMany(data?: BuildInput): Promise>; getOne(id: ClientRole['id']): Promise>; delete(id: ClientRole['id']): Promise>; create(data: Partial): Promise>; } //#endregion //#region src/domains/entities/client-scope/module.d.ts declare class ClientScopeAPI extends BaseAPI implements EntityAPISlim { getMany(data?: BuildInput): Promise>; getOne(id: ClientScope['id']): Promise>; delete(id: ClientScope['id']): Promise>; create(data: Partial): Promise>; } //#endregion //#region src/domains/entities/identity-provider/module.d.ts declare class IdentityProviderAPI extends BaseAPI implements EntityAPI { getAuthorizeUri(id: IdentityProvider['id']): string; getMany(record?: BuildInput): Promise>; getOne(id: IdentityProvider['id'], record?: BuildInput): Promise>; delete(id: IdentityProvider['id']): Promise>; create(data: Partial): Promise>; update(id: IdentityProvider['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; } //#endregion //#region src/domains/entities/identity-provider-role-mapping/module.d.ts declare class IdentityProviderRoleMappingAPI extends BaseAPI implements EntityAPI { getMany(data: BuildInput): Promise>; getOne(id: IdentityProviderRoleMapping['id']): Promise>; delete(id: IdentityProviderRoleMapping['id']): Promise>; create(data: Partial): Promise>; update(id: IdentityProviderRoleMapping['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/policy/types.d.ts type PolicyAPICheckResponse = { status: 'success' | 'error'; data?: Record; }; type PolicyResponse = Policy & Record; type BuiltInPolicyResponse = Record> = Omit & BuiltInPolicies; type PolicyCreateSubset = Pick & Partial> & { parent_id?: string | null; }; type PolicyCreateRequest = PolicyCreateSubset & Record; type BuiltInPolicyCreateRequest = Record> = PolicyCreateSubset & BuiltInPolicies; type PolicyUpdateSubset = Partial; type PolicyUpdateRequest = PolicyUpdateSubset & Record; type BuiltInPolicyUpdateRequest = Record> = PolicyUpdateSubset & BuiltInPolicies; //#endregion //#region src/domains/entities/policy/module.d.ts declare class PolicyAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; delete(id: Policy['id']): Promise>; getOne(id: Policy['id'], record?: BuildInput): Promise>; getOneExpanded(id: Policy['id'], record?: BuildInput): Promise>; create(data: INPUT): Promise>; createBuiltIn(data: BuiltInPolicyCreateRequest): Promise>; update(id: Policy['id'], data: INPUT): Promise>; updateBuiltIn(id: Policy['id'], data: BuiltInPolicyUpdateRequest): Promise>; createOrUpdate(idOrName: string, data: INPUT): Promise>; createOrUpdateBuiltin(idOrName: string, data: BuiltInPolicyCreateRequest): Promise>; check(idOrName: string, data?: Record): Promise; } //#endregion //#region src/domains/entities/permission/types.d.ts type PermissionAPICheckResponse = { status: 'success' | 'error'; data?: Record; }; //#endregion //#region src/domains/entities/permission/module.d.ts declare class PermissionAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; delete(id: Permission['id']): Promise>; getOne(id: Permission['id'], record?: BuildInput): Promise; create(data: Partial): Promise>; update(id: Permission['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; check(idOrName: string, data?: Record): Promise; } //#endregion //#region src/domains/entities/permission-policy/module.d.ts declare class PermissionPolicyAPI extends BaseAPI implements EntityAPISlim { getMany(data?: BuildInput): Promise>; getOne(id: PermissionPolicy['id']): Promise>; delete(id: PermissionPolicy['id']): Promise>; create(data: Partial): Promise>; } //#endregion //#region src/domains/entities/realm/module.d.ts declare class RealmAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: Realm['id']): Promise>; delete(id: Realm['id']): Promise>; create(data: Partial): Promise>; update(realmId: Realm['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; } //#endregion //#region src/domains/entities/robot/module.d.ts declare class RobotAPI extends BaseAPI implements EntityAPI { getMany(options?: BuildInput): Promise>; getOne(id: Robot['id'], options?: BuildInput): Promise>; delete(id: Robot['id']): Promise>; create(data: Partial): Promise>; update(id: Robot['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; integrity(id: Robot['id'] | Robot['name']): Promise>; } //#endregion //#region src/domains/entities/robot-permission/module.d.ts declare class RobotPermissionAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: RobotPermission['id'], data?: BuildInput): Promise>; delete(id: RobotPermission['id']): Promise>; create(data: Partial): Promise>; update(id: RobotPermission['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/robot-role/module.d.ts declare class RobotRoleAPI extends BaseAPI implements EntityAPISlim { getMany(data?: BuildInput): Promise>; getOne(id: RobotRole['id']): Promise>; delete(id: RobotRole['id']): Promise>; create(data: Partial): Promise>; } //#endregion //#region src/domains/entities/role/module.d.ts declare class RoleAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(roleId: Role['id']): Promise>; delete(roleId: Role['id']): Promise>; create(data: Partial): Promise>; update(id: Role['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; } //#endregion //#region src/domains/entities/role-attribute/module.d.ts declare class RoleAttributeAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(roleId: RoleAttribute['id']): Promise>; delete(roleId: RoleAttribute['id']): Promise>; create(data: Partial): Promise>; update(id: RoleAttribute['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/role-permission/module.d.ts declare class RolePermissionAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: RolePermission['id']): Promise>; delete(id: RolePermission['id']): Promise>; create(data: Partial): Promise>; update(id: RolePermission['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/scope/module.d.ts declare class ScopeAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: Scope['id']): Promise>; delete(id: Scope['id']): Promise>; create(data: Partial): Promise>; update(id: Scope['id'], data: Partial): Promise>; createOrUpdate(idOrName: string, data: Partial): Promise>; } //#endregion //#region src/domains/entities/user/module.d.ts type PasswordForgotResponse = { reset_expires: string; }; type PasswordResetResponse = { reset_at: string; }; type RegisterResponse = { active: true; }; declare class UserAPI extends BaseAPI implements EntityAPI { getMany(options?: BuildInput): Promise>; getOne(id: User['id'], options?: BuildInput): Promise>; delete(id: User['id']): Promise>; create(data: Partial): Promise>; update(id: User['id'], data: Partial & { password_repeat?: User['password']; }): Promise>; createOrUpdate(idOrName: string, data: Partial & { password_repeat?: User['password']; }): Promise>; activate(token: string): Promise; register(data: Partial>): Promise; passwordForgot(data: Partial>): Promise; passwordReset(data: Partial> & { token: string; password: string; }): Promise; } //#endregion //#region src/domains/entities/user-attribute/module.d.ts declare class UserAttributeAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(roleId: UserAttribute['id']): Promise>; delete(roleId: UserAttribute['id']): Promise>; create(data: Partial): Promise>; update(id: UserAttribute['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/user-permission/module.d.ts declare class UserPermissionAPI extends BaseAPI implements EntityAPI { getMany(data?: BuildInput): Promise>; getOne(id: UserPermission['id']): Promise>; delete(id: UserPermission['id']): Promise>; create(data: Partial): Promise>; update(id: UserPermission['id'], data: Partial): Promise>; } //#endregion //#region src/domains/entities/user-role/module.d.ts declare class UserRoleAPI extends BaseAPI implements EntityAPISlim { getMany(data?: BuildInput): Promise>; getOne(id: UserRole['id']): Promise>; delete(id: UserRole['id']): Promise>; create(data: Partial): Promise>; } //#endregion //#region src/domains/workflows/oauth2/authorize/module.d.ts declare class OAuth2AuthorizeAPI extends AuthorizeAPI { confirm(data: OAuth2AuthorizationCodeRequest): Promise<{ url: string; }>; } //#endregion //#region src/domains/workflows/oauth2/token/module.d.ts declare class OAuth2TokenAPI extends TokenAPI {} //#endregion //#region src/domains/workflows/oauth2/user-info/module.d.ts declare class OAuth2UserInfoAPI extends UserInfoAPI {} //#endregion //#region src/client/type.d.ts type ClientOptions = RequestBaseOptions; //#endregion //#region src/client/module.d.ts declare class Client extends Client$1 { readonly token: OAuth2TokenAPI; readonly authorize: OAuth2AuthorizeAPI; readonly client: ClientAPI; readonly clientPermission: ClientPermissionAPI; readonly clientRole: ClientRoleAPI; readonly clientScope: ClientScopeAPI; readonly identityProvider: IdentityProviderAPI; readonly identityProviderRoleMapping: IdentityProviderRoleMappingAPI; readonly policy: PolicyAPI; readonly permission: PermissionAPI; readonly permissionPolicy: PermissionPolicyAPI; readonly realm: RealmAPI; readonly robot: RobotAPI; readonly robotPermission: RobotPermissionAPI; readonly robotRole: RobotRoleAPI; readonly role: RoleAPI; readonly roleAttribute: RoleAttributeAPI; readonly rolePermission: RolePermissionAPI; readonly scope: ScopeAPI; readonly user: UserAPI; readonly userInfo: OAuth2UserInfoAPI; readonly userAttribute: UserAttributeAPI; readonly userPermission: UserPermissionAPI; readonly userRole: UserRoleAPI; constructor(config?: ClientOptions); getJwks(): Promise; getJwk(id: string): Promise; getWellKnownOpenIDConfiguration(): Promise; } //#endregion //#region src/helpers/error-code.d.ts declare function getClientErrorCode(err: unknown): string | null; //#endregion //#region src/hook/constants.d.ts declare enum ClientAuthenticationHookEventName { REFRESH_FINISHED = "refreshFinished", REFRESH_FAILED = "refreshFailed", HEADER_SET = "headerSet", HEADER_UNSET = "headerRemoved" } //#endregion //#region src/token-creator/type.d.ts type TokenCreator = () => Promise; //#endregion //#region src/token-creator/presets/client.d.ts type ClientTokenCreatorOptions = { client?: ClientOptions; }; type ClientTokenCreatorCredentials = { id: string; secret: string; }; /** * Create token creator based on client credentials flow. * * @param credentials * @param options */ declare function createClientTokenCreator(credentials: ClientTokenCreatorCredentials, options?: ClientTokenCreatorOptions): TokenCreator; //#endregion //#region src/token-creator/presets/robot.d.ts type RobotTokenCreatorOptions = { client?: ClientOptions; }; type RobotTokenCreatorCredentials = { id: string; secret: string; }; /** * Create token creator based on robot credentials flow. * * @param credentials * @param options */ declare function createRobotTokenCreator(credentials: RobotTokenCreatorCredentials, options?: RobotTokenCreatorOptions): TokenCreator; //#endregion //#region src/token-creator/presets/user.d.ts type UserTokenCreatorOptions = { client?: ClientOptions; }; type UserTokenCreatorCredentials = { name: string; password: string; realmId?: string; realmName?: string; }; /** * Create token creator based on password flow. * * @param credentials * @param options */ declare function createUserTokenCreator(credentials: UserTokenCreatorCredentials, options?: UserTokenCreatorOptions): TokenCreator; //#endregion //#region src/hook/types.d.ts type ClientAuthenticationHookOptions = { /** * The URL of the api service. * * default: client.baseURL */ baseURL?: string; /** * Whether to set a timer to refresh the access token? * * default: true */ timer?: boolean; /** * Fn to create a new token, if the previous token expired. */ tokenCreator: TokenCreator; }; type ClientAuthenticationHookEvents = { [ClientAuthenticationHookEventName.REFRESH_FINISHED]: TokenGrantResponse; [ClientAuthenticationHookEventName.REFRESH_FAILED]: ClientError | null; [ClientAuthenticationHookEventName.HEADER_SET]: []; [ClientAuthenticationHookEventName.HEADER_UNSET]: []; }; //#endregion //#region src/hook/module.d.ts declare const HOOK_SYMBOL: unique symbol; declare class ClientAuthenticationHook extends EventEmitter<{ [K in keyof ClientAuthenticationHookEvents as `${K}`]: ClientAuthenticationHookEvents[K] }> { protected isActive: boolean; protected authorizationHeader: AuthorizationHeader | undefined; protected clients: Client$1[]; protected creator: TokenCreator; protected options: ClientAuthenticationHookOptions; protected timer: ReturnType | undefined; protected refreshPromise?: Promise; constructor(options: ClientAuthenticationHookOptions); enable(): void; disable(): void; setAuthorizationHeader(value: AuthorizationHeader): void; unsetAuthorizationHeader(): void; isAttached(client: Client$1): client is Client$1 & Record; attach(client: Client$1): void; detach(client: Client$1): void; setTimer(expiresIn: number): void; clearTimer(): void; /** * Refresh token * * @throws ClientError */ refresh(): Promise; } //#endregion //#region src/hook/utils.d.ts type RetryState = { retryCount: number; }; declare function getClientRequestRetryState(config: Partial & { retry?: Partial; }): RetryState; //#endregion export { BaseAPI, BaseAPIContext, BuiltInPolicyCreateRequest, BuiltInPolicyResponse, BuiltInPolicyUpdateRequest, Client, ClientAPI, ClientAuthenticationHook, ClientAuthenticationHookEventName, ClientAuthenticationHookEvents, ClientAuthenticationHookOptions, ClientOptions, ClientPermissionAPI, ClientRoleAPI, ClientScopeAPI, ClientTokenCreatorCredentials, ClientTokenCreatorOptions, CookieName, DomainEntityID, DomainEntityWithID, EntityAPI, EntityAPISlim, EntityCollectionResponse, EntityRecordResponse, IdentityProviderAPI, IdentityProviderRoleMappingAPI, OAuth2AuthorizeAPI, OAuth2TokenAPI, OAuth2UserInfoAPI, PasswordForgotResponse, PasswordResetResponse, PermissionAPI, PermissionAPICheckResponse, PermissionPolicyAPI, PolicyAPI, PolicyAPICheckResponse, PolicyCreateRequest, PolicyResponse, PolicyUpdateRequest, RealmAPI, RegisterResponse, RobotAPI, RobotPermissionAPI, RobotRoleAPI, RobotTokenCreatorCredentials, RobotTokenCreatorOptions, RoleAPI, RoleAttributeAPI, RolePermissionAPI, ScopeAPI, TokenCreator, UserAPI, UserAttributeAPI, UserPermissionAPI, UserRoleAPI, UserTokenCreatorCredentials, UserTokenCreatorOptions, createClientTokenCreator, createRobotTokenCreator, createUserTokenCreator, getClientErrorCode, getClientRequestRetryState, isClientError, setHeader, unsetHeader }; //# sourceMappingURL=index.d.mts.map