@authup/core-kit
Version:
Package containing global constants, types & interfaces.
1,088 lines (1,087 loc) • 33.7 kB
text/typescript
import { AuthupError } from "@authup/errors";
import { Container, ContainerOptions } from "validup";
import { DecisionStrategy, ObjectLiteral } from "@authup/kit";
import { JWKType, JWTAlgorithm, OAuth2SubKind } from "@authup/specs";
//#region src/constants.d.ts
declare enum ValidatorGroup {
CREATE = "create",
UPDATE = "update"
}
//#endregion
//#region src/domains/realm/constants.d.ts
declare const REALM_MASTER_NAME = "master";
declare const REALM_NAME_REGEX: RegExp;
//#endregion
//#region src/domains/realm/entity.d.ts
interface Realm {
id: string;
name: string;
display_name: string | null;
description: string | null;
built_in: boolean;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/helpers/name-valid.d.ts
type NameValidOptions = {
throwOnFailure?: boolean;
};
declare function isNameValid(input: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/realm/helpers.d.ts
declare function isRealmNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/realm/validator.d.ts
declare class RealmValidator extends Container<Realm> {
protected initialize(): void;
}
//#endregion
//#region src/domains/key/type.d.ts
interface Key {
id: string;
/**
* OCT, RSA or EC
*/
type: `${JWKType}`;
/**
* Algorithm for signing and verifying
*/
signature_algorithm: `${JWTAlgorithm}`;
/**
* Usage priority.
*/
priority: number;
/**
* aka private key
*/
decryption_key?: string | null;
/**
* aka public key
*/
encryption_key: string | null;
created_at: Date | string;
updated_at: Date | string;
realm_id: Realm['id'];
realm: Realm;
}
//#endregion
//#region src/domains/client/entity.d.ts
interface Client {
id: string;
active: boolean;
built_in: boolean;
is_confidential: boolean;
name: string;
display_name: string | null;
description: string | null;
secret: string | null;
secret_hashed: boolean;
secret_encrypted: boolean;
redirect_uri: string | null;
grant_types: string | null;
scope: string | null;
/**
* Default redirect URL.
*/
base_url: string | null;
/**
* URL prepended to relative URLs.
*/
root_url: string | null;
created_at: string;
updated_at: string;
realm_id: Realm['id'];
realm: Realm;
}
//#endregion
//#region src/domains/client/error.d.ts
declare class ClientError extends AuthupError {
static credentialsInvalid(): ClientError;
static invalid(): ClientError;
static notFound(): ClientError;
static inactive(): ClientError;
}
//#endregion
//#region src/domains/client/helpers.d.ts
declare function isClientNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/client/validator.d.ts
declare class ClientValidator extends Container<Client> {
protected initialize(): void;
}
//#endregion
//#region src/domains/authorization-code/entity.d.ts
interface OAuth2AuthorizationCode {
id: string;
code_challenge?: string | null;
code_challenge_method?: string | null;
scope?: string | null;
redirect_uri?: string | null;
id_token?: string | null;
nonce?: string | null;
client_id?: Client['id'] | null;
sub: string;
sub_kind: `${OAuth2SubKind}`;
realm_id: Realm['id'];
realm_name: Realm['name'];
}
type OAuth2AuthorizationCodeRequest = {
response_type: string;
client_id?: string;
realm_id?: string;
redirect_uri?: string;
scope?: string;
state?: string;
nonce?: string;
code_challenge?: string;
code_challenge_method?: string;
};
//#endregion
//#region src/domains/attempt-activation/entity.d.ts
interface AttemptActivation {
id: string;
ip_address: string;
user_agent: string;
token: string | null;
created_at: Date | string;
updated_at: Date | string;
}
//#endregion
//#region src/domains/user/entity.d.ts
interface User {
id: string;
name: string;
name_locked: boolean;
first_name: string | null;
last_name: string | null;
display_name: string | null;
email: string;
password: string | null;
avatar: string | null;
cover: string | null;
reset_hash: string | null;
reset_at: string | null;
reset_expires: string | null;
status: string | null;
status_message: string | null;
active: boolean;
activate_hash: string | null;
created_at: Date;
updated_at: Date;
client_id: Client['id'] | null;
client: Client | null;
realm_id: Realm['id'];
realm: Realm;
[]: any;
}
//#endregion
//#region src/domains/user/error.d.ts
declare class UserError extends AuthupError {
static credentialsInvalid(): UserError;
static notFound(): UserError;
static inactive(): UserError;
}
//#endregion
//#region src/domains/user/utils.d.ts
declare function isUserNameValid(input: string, options?: NameValidOptions): boolean;
declare function isValidUserEmail(input: string): boolean;
declare function buildUserFakeEmail(input: string): string;
declare function isUserFakeEmail(input: string): boolean;
//#endregion
//#region src/domains/user/validator.d.ts
declare class UserValidator extends Container<User> {
protected initialize(): void;
}
//#endregion
//#region src/domains/attempt-login/entity.d.ts
interface AttemptLogin {
id: string;
ip_address: string;
user_agent: string;
email: string;
success: boolean;
user: User;
user_id: User['id'];
created_at: Date | string;
updated_at: Date | string;
}
//#endregion
//#region src/domains/attempt-reset/entity.d.ts
interface AttemptReset {
id: string;
ip_address: string;
user_agent: string;
email: string;
token: string | null;
created_at: Date | string;
updated_at: Date | string;
}
//#endregion
//#region src/domains/role/constants.d.ts
declare const ROLE_ADMIN_NAME = "admin";
declare const ROLE_REALM_ADMIN_NAME = "realm_admin";
//#endregion
//#region src/domains/role/entity.d.ts
interface Role {
id: string;
built_in: boolean;
name: string;
display_name: string | null;
target: string | null;
description: string | null;
client_id: Client['id'] | null;
client: Client | null;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/role/utils.d.ts
declare function isRoleNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/role/validator.d.ts
declare class RoleValidator extends Container<Role> {
protected initialize(): void;
}
//#endregion
//#region src/domains/client-role/entity.d.ts
interface ClientRole {
id: string;
client_id: string;
role_id: string;
role: Role;
role_realm_id: Realm['id'] | null;
role_realm: Realm | null;
client: Client;
client_realm_id: Realm['id'] | null;
client_realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/client-role/validator.d.ts
declare class ClientRoleValidator extends Container<ClientRole> {
protected initialize(): void;
}
//#endregion
//#region src/domains/permission/constants.d.ts
declare enum PermissionName {
CLIENT_CREATE = "client_create",
CLIENT_DELETE = "client_delete",
CLIENT_UPDATE = "client_update",
CLIENT_READ = "client_read",
CLIENT_SELF_MANAGE = "client_self_manage",
CLIENT_PERMISSION_CREATE = "client_permission_create",
CLIENT_PERMISSION_DELETE = "client_permission_delete",
CLIENT_PERMISSION_READ = "client_permission_read",
CLIENT_PERMISSION_UPDATE = "client_permission_update",
CLIENT_ROLE_CREATE = "client_role_create",
CLIENT_ROLE_DELETE = "client_role_delete",
CLIENT_ROLE_UPDATE = "client_role_update",
CLIENT_ROLE_READ = "client_role_read",
CLIENT_SCOPE_CREATE = "client_scope_create",
CLIENT_SCOPE_DELETE = "client_scope_delete",
CLIENT_SCOPE_READ = "client_scope_read",
IDENTITY_PROVIDER_CREATE = "identity_provider_create",
IDENTITY_PROVIDER_DELETE = "identity_provider_delete",
IDENTITY_PROVIDER_UPDATE = "identity_provider_update",
IDENTITY_PROVIDER_READ = "identity_provider_read",
IDENTITY_PROVIDER_ROLE_CREATE = "identity_provider_role_create",
IDENTITY_PROVIDER_ROLE_DELETE = "identity_provider_role_delete",
IDENTITY_PROVIDER_ROLE_UPDATE = "identity_provider_role_update",
IDENTITY_PROVIDER_ROLE_READ = "identity_provider_role_read",
PERMISSION_CREATE = "permission_create",
PERMISSION_DELETE = "permission_delete",
PERMISSION_UPDATE = "permission_update",
PERMISSION_READ = "permission_read",
REALM_CREATE = "realm_create",
REALM_DELETE = "realm_delete",
REALM_UPDATE = "realm_update",
REALM_READ = "realm_read",
ROBOT_CREATE = "robot_create",
ROBOT_DELETE = "robot_delete",
ROBOT_UPDATE = "robot_update",
ROBOT_READ = "robot_read",
ROBOT_SELF_MANAGE = "robot_self_manage",
ROBOT_PERMISSION_CREATE = "robot_permission_create",
ROBOT_PERMISSION_DELETE = "robot_permission_delete",
ROBOT_PERMISSION_READ = "robot_permission_read",
ROBOT_PERMISSION_UPDATE = "robot_permission_update",
ROBOT_ROLE_CREATE = "robot_role_create",
ROBOT_ROLE_DELETE = "robot_role_delete",
ROBOT_ROLE_UPDATE = "robot_role_update",
ROBOT_ROLE_READ = "robot_role_read",
ROLE_CREATE = "role_create",
ROLE_DELETE = "role_delete",
ROLE_UPDATE = "role_update",
ROLE_READ = "role_read",
ROLE_PERMISSION_CREATE = "role_permission_create",
ROLE_PERMISSION_DELETE = "role_permission_delete",
ROLE_PERMISSION_READ = "role_permission_read",
ROLE_PERMISSION_UPDATE = "role_permission_update",
SCOPE_CREATE = "scope_create",
SCOPE_DELETE = "scope_delete",
SCOPE_UPDATE = "scope_update",
SCOPE_READ = "scope_read",
USER_CREATE = "user_create",
USER_DELETE = "user_delete",
USER_UPDATE = "user_update",
USER_READ = "user_read",
USER_SELF_MANAGE = "user_self_manage",
USER_PERMISSION_CREATE = "user_permission_create",
USER_PERMISSION_DELETE = "user_permission_delete",
USER_PERMISSION_READ = "user_permission_read",
USER_PERMISSION_UPDATE = "user_permission_update",
USER_ROLE_CREATE = "user_role_create",
USER_ROLE_DELETE = "user_role_delete",
USER_ROLE_UPDATE = "user_role_update",
USER_ROLE_READ = "user_role_read"
}
//#endregion
//#region src/domains/policy/entity.d.ts
type PolicyWithType<R extends Record<string, any> = Record<string, any>, T = string> = R & {
type: T;
};
interface Policy {
id: string;
built_in: boolean;
type: string;
name: string;
display_name: string | null;
description: string | null;
invert: boolean;
children: PolicyWithType<Policy>[];
parent_id: Policy['id'] | null;
parent: PolicyWithType<Policy> | null;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/policy/helpers.d.ts
declare function isPolicyNameValid(name: string, options?: NameValidOptions): boolean;
declare function isPolicy(input: Record<string, any>): input is Policy;
//#endregion
//#region src/domains/policy/validator.d.ts
declare class PolicyValidator extends Container<Policy> {
protected initialize(): void;
}
//#endregion
//#region src/domains/permission/entity.d.ts
interface PermissionRelation {
policy_id: Policy['id'] | null;
policy: Policy | null;
permission_id: Permission['id'];
permission: Permission;
permission_realm_id: Realm['id'] | null;
permission_realm: Realm | null;
}
interface Permission {
id: string;
built_in: boolean;
name: string;
display_name: string | null;
description: string | null;
decision_strategy: `${DecisionStrategy}` | null;
client_id: Client['id'] | null;
client: Client | null;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/permission/helpers.d.ts
declare function isPermissionNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/permission/validator.d.ts
declare class PermissionValidator extends Container<Permission> {
protected initialize(): void;
}
//#endregion
//#region src/domains/client-permission/entity.d.ts
interface ClientPermission extends PermissionRelation {
id: string;
created_at: Date;
updated_at: Date;
client_id: string;
client: Client;
client_realm_id: Realm['id'] | null;
client_realm: Realm | null;
}
//#endregion
//#region src/domains/client-permission/validator.d.ts
declare class ClientPermissionValidator extends Container<ClientPermission> {
protected initialize(): void;
}
//#endregion
//#region src/domains/scope/constants.d.ts
declare enum ScopeName {
/**
* Full permissions
*/
GLOBAL = "global",
/**
* for Openid usage (id-token)
*/
OPEN_ID = "openid",
/**
* /users/@me with email (userinfo & id-token)
*/
EMAIL = "email",
/**
* Roles array (id-token)
*/
ROLES = "roles",
/**
* /users/@me without email (userinfo & id-token)
*/
IDENTITY = "identity"
}
//#endregion
//#region src/domains/scope/entity.d.ts
interface Scope {
id: string;
built_in: boolean;
name: string;
display_name: string | null;
description: string | null;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/scope/utils.d.ts
declare function isScopeNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/scope/validator.d.ts
declare class ScopeValidator extends Container<Scope> {
protected initialize(): void;
}
//#endregion
//#region src/domains/client-scope/entity.d.ts
interface ClientScope {
id: string;
default: boolean;
client_id: Client['id'];
client: Client;
client_realm_id: Realm['id'] | null;
client_realm: Realm | null;
scope_id: Scope['id'];
scope: Scope;
scope_realm_id: Realm['id'] | null;
scope_realm: Realm | null;
}
//#endregion
//#region src/domains/client-scope/validator.d.ts
declare class ClientScopeValidator extends Container<ClientScope> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity/constants.d.ts
declare enum IdentityType {
CLIENT = "client",
ROBOT = "robot",
USER = "user"
}
//#endregion
//#region src/domains/robot/entity.d.ts
interface Robot {
id: string;
secret: string;
name: string;
display_name: string | null;
description: string;
active: boolean;
created_at: Date;
updated_at: Date;
user_id: User['id'] | null;
user: User | null;
client_id: Client['id'] | null;
client: Client | null;
realm_id: Realm['id'];
realm: Realm;
}
//#endregion
//#region src/domains/robot/helpers.d.ts
declare function isRobotNameValid(name: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/robot/error.d.ts
declare class RobotError extends AuthupError {
static credentialsInvalid(): RobotError;
static notFound(): RobotError;
static inactive(): RobotError;
}
//#endregion
//#region src/domains/robot/validator.d.ts
declare class RobotValidator extends Container<Robot> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity/types.d.ts
type ClientIdentity = {
type: `${IdentityType.CLIENT}`;
data: Client;
};
type RobotIdentity = {
type: `${IdentityType.ROBOT}`;
data: Robot;
};
type UserIdentity = {
type: `${IdentityType.USER}`;
data: User;
};
type Identity = ClientIdentity | RobotIdentity | UserIdentity;
//#endregion
//#region src/domains/identity-provider/attributes-validator.d.ts
declare class IdentityProviderAttributesValidator extends Container<ObjectLiteral> {
constructor(options?: ContainerOptions<ObjectLiteral>);
protected initialize(): void;
}
//#endregion
//#region src/domains/identity-provider/constants.d.ts
declare enum IdentityProviderProtocol {
LDAP = "ldap",
OAUTH2 = "oauth2",
OIDC = "oidc"
}
declare enum IdentityProviderMappingSyncMode {
/**
* Synchronize on initial user login.
*/
ONCE = "once",
/**
* Synchronize on every user login.
*/
ALWAYS = "always",
/**
* Synchronize based on idp configuration.
*/
INHERIT = "inherit"
}
//#endregion
//#region src/domains/identity-provider/preset/constants.d.ts
declare enum IdentityProviderPreset {
FACEBOOK = "facebook",
GITHUB = "github",
GITLAB = "gitlab",
GOOGLE = "google",
PAYPAL = "paypal",
INSTAGRAM = "instagram",
STACKOVERFLOW = "stackoverflow",
TWITTER = "twitter"
}
//#endregion
//#region src/domains/identity-provider/preset/utils.d.ts
declare function getIdentityProviderProtocolForPreset(id: string): `${IdentityProviderProtocol}` | null;
//#endregion
//#region src/domains/identity-provider/entity.d.ts
interface IdentityProvider {
id: string;
name: string;
display_name: string | null;
protocol: `${IdentityProviderProtocol}` | null;
preset: `${IdentityProviderPreset}` | null;
enabled: boolean;
created_at: string;
updated_at: string;
realm_id: Realm['id'];
realm: Realm;
}
interface IdentityProviderBaseMapping {
name: string | null;
value: string | null;
value_is_regex: boolean;
synchronization_mode: `${IdentityProviderMappingSyncMode}` | null;
provider_id: IdentityProvider['id'];
provider: IdentityProvider;
provider_realm_id: Realm['id'];
provider_realm: Realm;
}
//#endregion
//#region src/domains/identity-provider/utils.d.ts
declare function buildIdentityProviderAuthorizeCallbackPath(id: string | number): string;
declare function buildIdentityProviderAuthorizePath(id: string | number): string;
declare function isIdentityProviderNameValid(input: string, options?: NameValidOptions): boolean;
//#endregion
//#region src/domains/identity-provider/ldap/types.d.ts
interface LdapIdentityProvider extends IdentityProvider {
protocol: IdentityProviderProtocol.LDAP | `${IdentityProviderProtocol.LDAP}`;
/**
* The LDAP URL which consists of a scheme, address, and port.
* Format is <scheme>://<address>:<port> or <scheme>://<address> where scheme is either ldap or ldaps.
*/
url: string;
/**
* The timeout for dialing an LDAP connection.
*
* @default infinity
*/
timeout?: number;
/**
* Enables use of the LDAP StartTLS process which is not commonly used.
*/
start_tls?: boolean;
/**
* Controls the TLS connection validation process.
*/
tls?: Record<string, any>;
/**
* Sets the base distinguished name container for all LDAP queries.
*/
base_dn: string;
/**
* The DN of the administrator.
*
* @example cn=read-only-admin,dc=example,dc=com
*/
user?: string;
/**
* The password of the administrator.
*/
password?: string;
/**
* The ldap base DN to search the user.
* @example dc=example,dc=com
*/
user_base_dn?: string;
/**
* The LDAP filter to narrow down which users are valid
*/
user_filter?: string;
/**
* It will be used with the value in username to
* construct a ldap filter as ({attribute}={username}) to find the user and get user details in LDAP
*/
user_name_attribute?: string;
/**
* The attribute to retrieve which contains the users email addresses.
*/
user_mail_attribute?: string;
/**
* The attribute to retrieve which is shown on the Web UI to the user when they log in.
*/
user_display_name_attribute?: string;
/**
* Ff specified with groupClass, will serve as search base for authenticated user groups
*/
group_base_dn?: string;
/**
* Similar to user_filter, but it applies to group searches.
*/
group_filter?: string;
/**
* The LDAP attribute that is used to determine the group name.
*/
group_name_attribute?: string;
/**
* If specified with groupsSearchBase, will be used as objectClass in search filter for authenticated user groups
*/
group_class?: string;
/**
* if specified with groupClass and groupsSearchBase,
* will be used as member name (if not specified this defaults to member) in search filter for authenticated user groups
*/
group_member_attribute?: string;
/**
* if specified with groupClass and groupsSearchBase,
* will be used as the attribute on the user object (if not specified this defaults to dn) in search filter for authenticated user groups
*/
group_member_user_attribute?: string;
}
//#endregion
//#region src/domains/identity-provider/ldap/check.d.ts
declare function isLdapIdentityProvider(input: IdentityProvider): input is LdapIdentityProvider;
//#endregion
//#region src/domains/identity-provider/ldap/validator.d.ts
declare class IdentityProviderLDAPAttributesValidator extends Container<LdapIdentityProvider> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity-provider/oauth2/types.d.ts
interface OAuth2IdentityProviderBase {
client_id: string;
client_secret: string;
token_url: string;
token_revoke_url?: string | null;
authorize_url: string;
user_info_url?: string | null;
scope?: string;
}
interface OAuth2IdentityProvider extends IdentityProvider, OAuth2IdentityProviderBase {
protocol: `${IdentityProviderProtocol.OAUTH2}`;
}
//#endregion
//#region src/domains/identity-provider/oauth2/check.d.ts
declare function isOAuth2IdentityProvider(input: IdentityProvider): input is OAuth2IdentityProvider;
//#endregion
//#region src/domains/identity-provider/oauth2/preset-validator.d.ts
declare class IdentityProviderOAuth2PresetAttributesValidator extends Container<OAuth2IdentityProvider> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity-provider/oauth2/validator.d.ts
declare class IdentityProviderOAuth2AttributesValidator extends Container<OAuth2IdentityProvider> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity-provider/oidc/types.d.ts
interface OpenIDIdentityProvider extends IdentityProvider, OAuth2IdentityProviderBase {
protocol: `${IdentityProviderProtocol.OIDC}`;
}
//#endregion
//#region src/domains/identity-provider/oidc/check.d.ts
declare function isOpenIDIdentityProvider(input: IdentityProvider): input is OpenIDIdentityProvider;
//#endregion
//#region src/domains/identity-provider/validator.d.ts
declare class IdentityProviderValidator extends Container<IdentityProvider> {
protected initialize(): void;
}
//#endregion
//#region src/domains/identity-provider-attribute/entity.d.ts
interface IdentityProviderAttribute {
id: string;
name: string;
value: string | null;
provider_id: IdentityProvider['id'];
provider: IdentityProvider;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/identity-provider-account/entity.d.ts
interface IdentityProviderAccount {
id: string;
provider_user_id: string;
provider_user_name: string;
provider_user_email: string;
created_at: Date;
updated_at: Date;
user_id: string;
user: User;
user_realm_id: Realm['id'] | null;
user_realm: Realm | null;
provider_id: IdentityProvider['id'];
provider: IdentityProvider;
provider_realm_id: Realm['id'] | null;
provider_realm: Realm | null;
}
//#endregion
//#region src/domains/identity-provider-attribute-mapping/entity.d.ts
interface IdentityProviderAttributeMapping extends IdentityProviderBaseMapping {
id: string;
target_name: string;
target_value: string | null;
created_at: Date;
updated_at: Date;
}
//#endregion
//#region src/domains/identity-provider-permission-mapping/entity.d.ts
interface IdentityProviderPermissionMapping extends IdentityProviderBaseMapping {
id: string;
created_at: Date;
updated_at: Date;
permission_id: string;
permission: Role;
permission_realm_id: Realm['id'] | null;
permission_realm: Realm | null;
}
//#endregion
//#region src/domains/identity-provider-role-mapping/entity.d.ts
interface IdentityProviderRoleMapping extends IdentityProviderBaseMapping {
id: string;
created_at: Date;
updated_at: Date;
role_id: string;
role: Role;
role_realm_id: Realm['id'] | null;
role_realm: Realm | null;
}
//#endregion
//#region src/domains/identity-provider-role-mapping/validator.d.ts
declare class IdentityProviderRoleMappingValidator extends Container<IdentityProviderRoleMapping> {
protected initialize(): void;
}
//#endregion
//#region src/domains/permission-policy/entity.d.ts
interface PermissionPolicy {
id: string;
permission_id: Permission['id'];
permission: Permission;
permission_realm_id: Realm['id'] | null;
permission_realm: Realm | null;
policy_id: Policy['id'];
policy: Policy;
policy_realm_id: Realm['id'] | null;
policy_realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/permission-policy/validator.d.ts
declare class PermissionPolicyValidator extends Container<PermissionPolicy> {
protected initialize(): void;
}
//#endregion
//#region src/domains/policy-attribute/entity.d.ts
interface PolicyAttribute {
id: string;
name: string;
value: string | null;
realm_id: Policy['id'] | null;
realm: Realm | null;
policy_id: Policy['id'];
policy: Policy;
created_at: Date;
updated_at: Date;
}
//#endregion
//#region src/domains/robot-permission/entity.d.ts
interface RobotPermission extends PermissionRelation {
id: string;
created_at: Date;
updated_at: Date;
robot_id: string;
robot: Robot;
robot_realm_id: Realm['id'] | null;
robot_realm: Realm | null;
}
//#endregion
//#region src/domains/robot-permission/validator.d.ts
declare class RobotPermissionValidator extends Container<RobotPermission> {
protected initialize(): void;
}
//#endregion
//#region src/domains/robot-role/entity.d.ts
interface RobotRole {
id: string;
robot_id: string;
role_id: string;
role: Role;
role_realm_id: Realm['id'] | null;
role_realm: Realm | null;
robot: Robot;
robot_realm_id: Realm['id'] | null;
robot_realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/robot-role/validator.d.ts
declare class RobotRoleValidator extends Container<RobotRole> {
protected initialize(): void;
}
//#endregion
//#region src/domains/role-attribute/entity.d.ts
interface RoleAttribute {
id: string;
name: string;
value: string | null;
role_id: Role['id'];
role: Role;
realm_id: Realm['id'] | null;
realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/role-permission/entity.d.ts
interface RolePermission extends PermissionRelation {
id: string;
created_at: Date;
updated_at: Date;
role_id: string;
role: Role;
role_realm_id: Realm['id'] | null;
role_realm: Realm | null;
}
//#endregion
//#region src/domains/role-permission/validator.d.ts
declare class RolePermissionValidator extends Container<RolePermission> {
protected initialize(): void;
}
//#endregion
//#region src/domains/session/entity.d.ts
interface Session {
/**
* Public ID
*/
id: string;
/**
* Subject ID
*/
sub: string;
/**
* Subject kind (e.g. user, robot, client)
*/
sub_kind: string;
/**
* Last used ip address.
*/
ip_address: string;
/**
* Last used user agent.
*/
user_agent: string;
/**
* Expiration date (iso)
*/
expires_at: string;
/**
* Time session was renewed.
*/
refreshed_at: string | null;
/**
* Last time subject was seen.
*/
seen_at: string | null;
/**
* Last time new access-token, refresh-token created for session.
*/
updated_at: string;
/**
* Creation date of session
*/
created_at: string;
client_id: Client['id'] | null;
client: Client | null;
user_id: User['id'] | null;
user: User | null;
robot_id: Robot['id'] | null;
robot: Robot | null;
realm_id: Realm['id'];
realm: Realm;
}
//#endregion
//#region src/domains/user-attribute/entity.d.ts
interface UserAttribute {
id: string;
name: string;
value: string | null;
user_id: User['id'];
user: User;
realm_id: Realm['id'];
realm: Realm;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/user-permission/entity.d.ts
interface UserPermission extends PermissionRelation {
id: string;
created_at: Date;
updated_at: Date;
user_id: User['id'];
user: User;
user_realm_id: Realm['id'] | null;
user_realm: Realm | null;
}
//#endregion
//#region src/domains/user-permission/validator.d.ts
declare class UserPermissionValidator extends Container<UserPermission> {
protected initialize(): void;
}
//#endregion
//#region src/domains/user-role/entity.d.ts
interface UserRole {
id: string;
role_id: Role['id'];
role: Role;
role_realm_id: Realm['id'] | null;
role_realm: Realm | null;
user_id: User['id'];
user: User;
user_realm_id: Realm['id'] | null;
user_realm: Realm | null;
created_at: string;
updated_at: string;
}
//#endregion
//#region src/domains/user-role/validator.d.ts
declare class UserRoleValidator extends Container<UserRole> {
protected initialize(): void;
}
//#endregion
//#region src/domains/contstants.d.ts
declare enum EntityType {
CLIENT = "client",
CLIENT_PERMISSION = "clientPermission",
CLIENT_ROLE = "clientRole",
CLIENT_SCOPE = "clientScope",
IDENTITY_PROVIDER = "identityProvider",
IDENTITY_PROVIDER_ACCOUNT = "identityProviderAccount",
IDENTITY_PROVIDER_ATTRIBUTE = "identityProviderAttribute",
IDENTITY_PROVIDER_ATTRIBUTE_MAPPING = "identityProviderAttributeMapping",
IDENTITY_PROVIDER_PERMISSION_MAPPING = "identityProviderPermissionMapping",
IDENTITY_PROVIDER_ROLE_MAPPING = "identityProviderRoleMapping",
KEY = "key",
POLICY = "policy",
POLICY_ATTRIBUTE = "policyAttribute",
PERMISSION = "permission",
PERMISSION_POLICY = "permissionPolicy",
REALM = "realm",
ROBOT = "robot",
ROBOT_PERMISSION = "robotPermission",
ROBOT_ROLE = "robotRole",
ROLE = "role",
ROLE_ATTRIBUTE = "roleAttribute",
ROLE_PERMISSION = "rolePermission",
SCOPE = "scope",
// todo: add
USER = "user",
USER_ATTRIBUTE = "userAttribute",
USER_PERMISSION = "userPermission",
USER_ROLE = "userRole"
}
declare enum EntityDefaultEventName {
CREATED = "created",
DELETED = "deleted",
UPDATED = "updated"
}
//#endregion
//#region src/domains/helpers.d.ts
declare function buildEntityChannelName(entity: string, id?: string | number): string;
declare function buildEntityNamespaceName(id: string): string;
//#endregion
//#region src/domains/types.d.ts
type EntityTypeMapRaw = {
[]: Client;
[]: ClientPermission;
[]: ClientRole;
[]: ClientScope;
[]: IdentityProvider;
[]: IdentityProviderAccount;
[]: IdentityProviderAttribute;
[]: IdentityProviderRoleMapping;
[]: Policy;
[]: PolicyAttribute;
[]: Permission;
[]: PermissionPolicy;
[]: Realm;
[]: Robot;
[]: RobotPermission;
[]: RobotRole;
[]: Role;
[]: RoleAttribute;
[]: RolePermission;
[]: Scope;
[]: User;
[]: UserAttribute;
[]: UserPermission;
[]: UserRole;
};
type EntityTypeMap = { [K in keyof EntityTypeMapRaw as `${K}`]: EntityTypeMapRaw[K] };
type EventRecord<T extends string, D extends Record<string, any>> = {
type: T;
data: D;
event: string;
};
//#endregion
export { AttemptActivation, AttemptLogin, AttemptReset, Client, ClientError, ClientIdentity, ClientPermission, ClientPermissionValidator, ClientRole, ClientRoleValidator, ClientScope, ClientScopeValidator, ClientValidator, EntityDefaultEventName, EntityType, EntityTypeMap, EventRecord, Identity, IdentityProvider, IdentityProviderAccount, IdentityProviderAttribute, IdentityProviderAttributeMapping, IdentityProviderAttributesValidator, IdentityProviderBaseMapping, IdentityProviderLDAPAttributesValidator, IdentityProviderMappingSyncMode, IdentityProviderOAuth2AttributesValidator, IdentityProviderOAuth2PresetAttributesValidator, IdentityProviderPermissionMapping, IdentityProviderPreset, IdentityProviderProtocol, IdentityProviderRoleMapping, IdentityProviderRoleMappingValidator, IdentityProviderValidator, IdentityType, Key, LdapIdentityProvider, NameValidOptions, OAuth2AuthorizationCode, OAuth2AuthorizationCodeRequest, OAuth2IdentityProvider, OAuth2IdentityProviderBase, OpenIDIdentityProvider, Permission, PermissionName, PermissionPolicy, PermissionPolicyValidator, PermissionRelation, PermissionValidator, Policy, PolicyAttribute, PolicyValidator, PolicyWithType, REALM_MASTER_NAME, REALM_NAME_REGEX, ROLE_ADMIN_NAME, ROLE_REALM_ADMIN_NAME, Realm, RealmValidator, Robot, RobotError, RobotIdentity, RobotPermission, RobotPermissionValidator, RobotRole, RobotRoleValidator, RobotValidator, Role, RoleAttribute, RolePermission, RolePermissionValidator, RoleValidator, Scope, ScopeName, ScopeValidator, Session, User, UserAttribute, UserError, UserIdentity, UserPermission, UserPermissionValidator, UserRole, UserRoleValidator, UserValidator, ValidatorGroup, buildEntityChannelName, buildEntityNamespaceName, buildIdentityProviderAuthorizeCallbackPath, buildIdentityProviderAuthorizePath, buildUserFakeEmail, getIdentityProviderProtocolForPreset, isClientNameValid, isIdentityProviderNameValid, isLdapIdentityProvider, isNameValid, isOAuth2IdentityProvider, isOpenIDIdentityProvider, isPermissionNameValid, isPolicy, isPolicyNameValid, isRealmNameValid, isRobotNameValid, isRoleNameValid, isScopeNameValid, isUserFakeEmail, isUserNameValid, isValidUserEmail };
//# sourceMappingURL=index.d.mts.map