@absolutejs/auth 0.56.3 → 0.56.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abuse/captcha.d.ts +11 -0
- package/dist/abuse/config.d.ts +29 -0
- package/dist/actions.d.ts +27 -0
- package/dist/agents/config.d.ts +44 -0
- package/dist/agents/context.d.ts +46 -0
- package/dist/agents/principal.d.ts +4 -0
- package/dist/agents/registration.d.ts +162 -0
- package/dist/agents/routes.d.ts +321 -0
- package/dist/agents/types.d.ts +129 -0
- package/dist/apikeys/config.d.ts +64 -0
- package/dist/apikeys/routes.d.ts +83 -0
- package/dist/apikeys/types.d.ts +53 -0
- package/dist/audit/config.d.ts +9 -0
- package/dist/audit/export.d.ts +2 -0
- package/dist/audit/inMemoryAuditStore.d.ts +2 -0
- package/dist/audit/integrity.d.ts +19 -0
- package/dist/audit/postgresAuditStore.d.ts +116 -0
- package/dist/audit/siem.d.ts +11 -0
- package/dist/audit/types.d.ts +19 -0
- package/dist/audit/wrap.d.ts +9 -0
- package/dist/authContext.d.ts +193 -0
- package/dist/authorization/config.d.ts +19 -0
- package/dist/authorization/protectPermission.d.ts +52 -0
- package/dist/cli/migrate.js.map +1 -1
- package/dist/compliance/cipher.d.ts +11 -0
- package/dist/compliance/config.d.ts +18 -0
- package/dist/compliance/redaction.d.ts +8 -0
- package/dist/compliance/routes.d.ts +89 -0
- package/dist/constants.d.ts +10 -0
- package/dist/credentials/backgroundOps.d.ts +45 -0
- package/dist/credentials/config.d.ts +68 -0
- package/dist/credentials/emailValidation.d.ts +9 -0
- package/dist/credentials/emailVerification.d.ts +83 -0
- package/dist/credentials/import.d.ts +34 -0
- package/dist/credentials/inMemoryCredentialStore.d.ts +2 -0
- package/dist/credentials/legacyHashers.d.ts +3 -0
- package/dist/credentials/login.d.ts +76 -0
- package/dist/credentials/passwordPolicy.d.ts +15 -0
- package/dist/credentials/passwordReset.d.ts +87 -0
- package/dist/credentials/postgresCredentialStore.d.ts +235 -0
- package/dist/credentials/register.d.ts +54 -0
- package/dist/credentials/routes.d.ts +201 -0
- package/dist/credentials/types.d.ts +26 -0
- package/dist/crypto.d.ts +32 -0
- package/dist/errors.d.ts +12 -0
- package/dist/federation/tokenStore.d.ts +29 -0
- package/dist/htmx/configuredRoutes.d.ts +542 -0
- package/dist/htmx/renderers.d.ts +8 -0
- package/dist/htmx/routes.d.ts +514 -0
- package/dist/htmx/types.d.ts +129 -0
- package/dist/index.js +31 -1
- package/dist/index.js.map +4 -4
- package/dist/linkedProviders/inMemoryStores.d.ts +9 -0
- package/dist/linkedProviders/neonStores.d.ts +484 -0
- package/dist/linkedProviders/oauthAccountResolver.d.ts +28 -0
- package/dist/linkedProviders/oauthResolver.d.ts +9 -0
- package/dist/linkedProviders/resolver.d.ts +22 -0
- package/dist/lockout/config.d.ts +17 -0
- package/dist/lockout/inMemoryLockoutStore.d.ts +2 -0
- package/dist/lockout/postgresLockoutStore.d.ts +71 -0
- package/dist/lockout/redisLockoutStore.d.ts +3 -0
- package/dist/lockout/types.d.ts +12 -0
- package/dist/mfa/backupCodes.d.ts +5 -0
- package/dist/mfa/challenge.d.ts +70 -0
- package/dist/mfa/config.d.ts +50 -0
- package/dist/mfa/gate.d.ts +2 -0
- package/dist/mfa/inMemoryMfaStore.d.ts +2 -0
- package/dist/mfa/management.d.ts +106 -0
- package/dist/mfa/postgresMfaStore.d.ts +206 -0
- package/dist/mfa/rotation.d.ts +17 -0
- package/dist/mfa/routes.d.ts +234 -0
- package/dist/mfa/secret.d.ts +2 -0
- package/dist/mfa/sms.d.ts +105 -0
- package/dist/mfa/totp.d.ts +91 -0
- package/dist/mfa/types.d.ts +23 -0
- package/dist/oidc/clientAuth.d.ts +19 -0
- package/dist/oidc/config.d.ts +296 -0
- package/dist/oidc/dpop.d.ts +23 -0
- package/dist/oidc/inMemoryVciStores.d.ts +3 -0
- package/dist/oidc/index.js +11 -1
- package/dist/oidc/index.js.map +3 -3
- package/dist/oidc/jar.d.ts +14 -0
- package/dist/oidc/keys.d.ts +35 -0
- package/dist/oidc/logout.d.ts +38 -0
- package/dist/oidc/mtls.d.ts +11 -0
- package/dist/oidc/par.d.ts +28 -0
- package/dist/oidc/registration.d.ts +138 -0
- package/dist/oidc/routes.d.ts +569 -0
- package/dist/oidc/types.d.ts +148 -0
- package/dist/oidc/userinfo.d.ts +21 -0
- package/dist/oidc/vci.d.ts +159 -0
- package/dist/oidc/vciRoutes.d.ts +92 -0
- package/dist/organizations/config.d.ts +46 -0
- package/dist/organizations/operations.d.ts +39 -0
- package/dist/organizations/routes.d.ts +299 -0
- package/dist/organizations/types.d.ts +45 -0
- package/dist/passwordless/config.d.ts +43 -0
- package/dist/passwordless/routes.d.ts +163 -0
- package/dist/passwordless/types.d.ts +9 -0
- package/dist/pluginIdentity.d.ts +2 -0
- package/dist/portal/config.d.ts +34 -0
- package/dist/portal/operations.d.ts +10 -0
- package/dist/portal/routes.d.ts +160 -0
- package/dist/portal/types.d.ts +16 -0
- package/dist/providers/clients.d.ts +1818 -0
- package/dist/providersFromEnv.d.ts +19 -0
- package/dist/roles/config.d.ts +27 -0
- package/dist/roles/operations.d.ts +8 -0
- package/dist/roles/routes.d.ts +106 -0
- package/dist/roles/types.d.ts +14 -0
- package/dist/routes/authorize.d.ts +102 -0
- package/dist/routes/callback.d.ts +64 -0
- package/dist/routes/profile.d.ts +70 -0
- package/dist/routes/protectRoute.d.ts +51 -0
- package/dist/routes/refresh.d.ts +74 -0
- package/dist/routes/revoke.d.ts +73 -0
- package/dist/routes/sessions.d.ts +103 -0
- package/dist/routes/signout.d.ts +70 -0
- package/dist/routes/stepUp.d.ts +48 -0
- package/dist/routes/userStatus.d.ts +72 -0
- package/dist/scim/config.d.ts +57 -0
- package/dist/scim/extensions.d.ts +30 -0
- package/dist/scim/inMemoryScimTokenStore.d.ts +2 -0
- package/dist/scim/routes.d.ts +366 -0
- package/dist/scim/serialize.d.ts +83 -0
- package/dist/scim/types.d.ts +54 -0
- package/dist/server.js +31 -1
- package/dist/server.js.map +4 -4
- package/dist/session/access.d.ts +33 -0
- package/dist/session/anonymous.d.ts +12 -0
- package/dist/session/cleanup.d.ts +45 -0
- package/dist/session/impersonation.d.ts +34 -0
- package/dist/session/inMemoryStore.d.ts +7 -0
- package/dist/session/multiSession.d.ts +27 -0
- package/dist/session/neonStore.d.ts +513 -0
- package/dist/session/promote.d.ts +23 -0
- package/dist/session/redisStore.d.ts +6 -0
- package/dist/session/sessionsConfig.d.ts +9 -0
- package/dist/session/state.d.ts +33 -0
- package/dist/session/types.d.ts +21 -0
- package/dist/session/userSessions.d.ts +19 -0
- package/dist/sso/config.d.ts +149 -0
- package/dist/sso/discoveryRoute.d.ts +63 -0
- package/dist/sso/oidcRoutes.d.ts +98 -0
- package/dist/sso/samlRoutes.d.ts +179 -0
- package/dist/sso/types.d.ts +53 -0
- package/dist/stores/postgres.d.ts +5 -0
- package/dist/stores/redis.d.ts +5 -0
- package/dist/telemetry/tracing.d.ts +15 -0
- package/dist/tenancy.d.ts +9 -0
- package/dist/typeGuards.d.ts +6 -0
- package/dist/typebox.d.ts +4 -0
- package/dist/types.d.ts +421 -0
- package/dist/utils.d.ts +45 -0
- package/dist/vault/config.d.ts +20 -0
- package/dist/vault/inMemoryVaultStore.d.ts +2 -0
- package/dist/vault/postgresVaultStore.d.ts +86 -0
- package/dist/vault/types.d.ts +14 -0
- package/dist/vc/inMemoryVpStores.d.ts +2 -0
- package/dist/vc/openid4vp.d.ts +82 -0
- package/dist/vc/postgresVcStores.d.ts +300 -0
- package/dist/vc/sdJwt.d.ts +37 -0
- package/dist/vc/statusList.d.ts +29 -0
- package/dist/vc/statusListRoutes.d.ts +63 -0
- package/dist/vc/vpRoutes.d.ts +120 -0
- package/dist/webauthn/adapter.d.ts +59 -0
- package/dist/webauthn/config.d.ts +36 -0
- package/dist/webauthn/routes.d.ts +155 -0
- package/dist/webauthn/types.d.ts +17 -0
- package/dist/webhooks/config.d.ts +34 -0
- package/dist/webhooks/dispatcher.d.ts +3 -0
- package/dist/webhooks/sign.d.ts +11 -0
- package/dist/webhooks/types.d.ts +25 -0
- package/package.json +3 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OAuthClient } from './types';
|
|
2
|
+
export type JarParseResult = {
|
|
3
|
+
error: 'invalid_request_object';
|
|
4
|
+
ok: false;
|
|
5
|
+
} | {
|
|
6
|
+
ok: true;
|
|
7
|
+
params: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
export declare const parseSignedRequestObject: ({ client, expectedIssuer, jwt, now }: {
|
|
10
|
+
client: OAuthClient;
|
|
11
|
+
expectedIssuer: string;
|
|
12
|
+
jwt: string;
|
|
13
|
+
now?: number;
|
|
14
|
+
}) => Promise<JarParseResult>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
type SigningKeyIdentity = {
|
|
2
|
+
kid: string;
|
|
3
|
+
publicJwk: JsonWebKey;
|
|
4
|
+
};
|
|
5
|
+
/** ES256 signing material can remain local for development or be delegated to
|
|
6
|
+
* a non-exportable KMS/HSM adapter. External signers return the 64-byte JOSE
|
|
7
|
+
* ECDSA signature (r || s), not an ASN.1 DER envelope. */
|
|
8
|
+
export type SigningKey = SigningKeyIdentity & ({
|
|
9
|
+
privateJwk: JsonWebKey;
|
|
10
|
+
sign?: never;
|
|
11
|
+
} | {
|
|
12
|
+
privateJwk?: never;
|
|
13
|
+
sign: (input: Uint8Array) => Promise<Uint8Array>;
|
|
14
|
+
});
|
|
15
|
+
export declare const generateSigningKey: () => Promise<SigningKey>;
|
|
16
|
+
export declare const jwkThumbprint: (jwk: JsonWebKey) => Promise<string>;
|
|
17
|
+
export declare const signJwt: (payload: Record<string, unknown>, signing: SigningKey, typ?: string) => Promise<string>;
|
|
18
|
+
export declare const toPublicJwk: (key: SigningKey) => {
|
|
19
|
+
alg: string;
|
|
20
|
+
crv: string | undefined;
|
|
21
|
+
kid: string;
|
|
22
|
+
kty: string | undefined;
|
|
23
|
+
use: string;
|
|
24
|
+
x: string | undefined;
|
|
25
|
+
y: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
export declare const verifyJwt: (token: string, publicJwk: JsonWebKey) => Promise<{
|
|
28
|
+
header: {
|
|
29
|
+
[k: string]: any;
|
|
30
|
+
};
|
|
31
|
+
payload: {
|
|
32
|
+
[k: string]: any;
|
|
33
|
+
};
|
|
34
|
+
} | undefined>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { OidcProviderConfig } from './config';
|
|
2
|
+
import type { LogoutDelivery, OAuthClient } from './types';
|
|
3
|
+
export declare const resolvePostLogoutRedirect: ({ client, requestedUri }: {
|
|
4
|
+
client: OAuthClient;
|
|
5
|
+
requestedUri: string | undefined;
|
|
6
|
+
}) => string | undefined;
|
|
7
|
+
export declare const verifyIdTokenHint: <UserType>({ config, idTokenHint }: {
|
|
8
|
+
config: OidcProviderConfig<UserType>;
|
|
9
|
+
idTokenHint: string;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
audClientId: string;
|
|
12
|
+
sub: string;
|
|
13
|
+
} | undefined>;
|
|
14
|
+
type DeliveryFetch = (url: string, init: {
|
|
15
|
+
body: string;
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
method: string;
|
|
18
|
+
signal: AbortSignal;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
ok: boolean;
|
|
21
|
+
status: number;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const mintLogoutToken: <UserType>({ clientId, config, now, sub }: {
|
|
24
|
+
clientId: string;
|
|
25
|
+
config: OidcProviderConfig<UserType>;
|
|
26
|
+
now?: number;
|
|
27
|
+
sub: string;
|
|
28
|
+
}) => Promise<string>;
|
|
29
|
+
export declare const fanOutBackchannelLogout: <UserType>({ config, fetchImpl, now, onError, skipClientId, timeoutMs, userId }: {
|
|
30
|
+
config: OidcProviderConfig<UserType>;
|
|
31
|
+
fetchImpl?: DeliveryFetch;
|
|
32
|
+
now?: number;
|
|
33
|
+
onError?: (delivery: LogoutDelivery) => void | Promise<void>;
|
|
34
|
+
skipClientId?: string;
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
userId: string;
|
|
37
|
+
}) => Promise<string[]>;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const computeCertThumbprint: (derBytes: Uint8Array) => Promise<string>;
|
|
2
|
+
export declare const extractRfc9440ClientCert: (headers: Headers) => Uint8Array<ArrayBuffer> | undefined;
|
|
3
|
+
export declare const resolveClientCert: ({ extract, headers }: {
|
|
4
|
+
extract: ((headers: Headers) => Promise<Uint8Array | undefined> | Uint8Array | undefined) | undefined;
|
|
5
|
+
headers: Headers;
|
|
6
|
+
}) => Promise<Uint8Array<ArrayBufferLike> | undefined>;
|
|
7
|
+
export declare const verifyCertificateBoundToken: ({ cnfThumbprint, extract, headers }: {
|
|
8
|
+
cnfThumbprint: string | undefined;
|
|
9
|
+
extract: ((headers: Headers) => Promise<Uint8Array | undefined> | Uint8Array | undefined) | undefined;
|
|
10
|
+
headers: Headers;
|
|
11
|
+
}) => Promise<boolean>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { OAuthClient, PushedAuthorizationRequestStore } from './types';
|
|
2
|
+
export declare const DEFAULT_PAR_TTL_MS: number;
|
|
3
|
+
export declare const REQUEST_URI_PREFIX = "urn:ietf:params:oauth:request_uri:";
|
|
4
|
+
export type PushAuthorizationResult = {
|
|
5
|
+
body: {
|
|
6
|
+
expires_in: number;
|
|
7
|
+
request_uri: string;
|
|
8
|
+
};
|
|
9
|
+
ok: true;
|
|
10
|
+
} | {
|
|
11
|
+
body: {
|
|
12
|
+
error: string;
|
|
13
|
+
};
|
|
14
|
+
ok: false;
|
|
15
|
+
status: 400 | 401;
|
|
16
|
+
};
|
|
17
|
+
export declare const consumePushedRequest: ({ clientId, requestUri, store }: {
|
|
18
|
+
clientId: string;
|
|
19
|
+
requestUri: string;
|
|
20
|
+
store: PushedAuthorizationRequestStore;
|
|
21
|
+
}) => Promise<Record<string, string> | undefined>;
|
|
22
|
+
export declare const pushAuthorizationRequest: ({ client, now, params, store, ttlMs }: {
|
|
23
|
+
client: OAuthClient;
|
|
24
|
+
now?: number;
|
|
25
|
+
params: Record<string, string>;
|
|
26
|
+
store: PushedAuthorizationRequestStore;
|
|
27
|
+
ttlMs?: number;
|
|
28
|
+
}) => Promise<PushAuthorizationResult>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { ClientRegistrationTokenStore, InitialAccessTokenStore, OAuthClient, OAuthClientStore } from './types';
|
|
2
|
+
export type ClientRegistrationMetadata = {
|
|
3
|
+
backchannel_logout_uri?: string;
|
|
4
|
+
client_name?: string;
|
|
5
|
+
grant_types?: string[];
|
|
6
|
+
jwks?: JsonWebKey[];
|
|
7
|
+
jwks_uri?: string;
|
|
8
|
+
post_logout_redirect_uris?: string[];
|
|
9
|
+
redirect_uris?: string[];
|
|
10
|
+
scope?: string;
|
|
11
|
+
};
|
|
12
|
+
export type ClientRegistrationDecision = {
|
|
13
|
+
allow: false;
|
|
14
|
+
denyReason: string;
|
|
15
|
+
} | {
|
|
16
|
+
allow: true;
|
|
17
|
+
transform?: Partial<OAuthClient>;
|
|
18
|
+
};
|
|
19
|
+
export type OnClientRegistration = (context: {
|
|
20
|
+
metadata: ClientRegistrationMetadata;
|
|
21
|
+
}) => ClientRegistrationDecision | Promise<ClientRegistrationDecision>;
|
|
22
|
+
export type OnClientRegistered = (context: {
|
|
23
|
+
client: OAuthClient;
|
|
24
|
+
metadata: ClientRegistrationMetadata;
|
|
25
|
+
}) => void | Promise<void>;
|
|
26
|
+
export type RegisterClientResult = {
|
|
27
|
+
body: {
|
|
28
|
+
error: string;
|
|
29
|
+
error_description?: string;
|
|
30
|
+
};
|
|
31
|
+
ok: false;
|
|
32
|
+
status: 400 | 401 | 403 | 501;
|
|
33
|
+
} | {
|
|
34
|
+
body: ClientRegistrationMetadata & {
|
|
35
|
+
client_id: string;
|
|
36
|
+
registration_access_token: string;
|
|
37
|
+
registration_client_uri: string;
|
|
38
|
+
};
|
|
39
|
+
ok: true;
|
|
40
|
+
};
|
|
41
|
+
export declare const deleteRegisteredClient: ({ authorization, clientId, clientStore, registrationTokenStore }: {
|
|
42
|
+
authorization: string | undefined;
|
|
43
|
+
clientId: string;
|
|
44
|
+
clientStore: OAuthClientStore;
|
|
45
|
+
registrationTokenStore: ClientRegistrationTokenStore;
|
|
46
|
+
}) => Promise<{
|
|
47
|
+
readonly body: {
|
|
48
|
+
readonly error: "unsupported_response_type";
|
|
49
|
+
};
|
|
50
|
+
readonly status: 501;
|
|
51
|
+
} | {
|
|
52
|
+
readonly body: {
|
|
53
|
+
readonly error: "invalid_token";
|
|
54
|
+
};
|
|
55
|
+
readonly status: 401;
|
|
56
|
+
} | {
|
|
57
|
+
readonly status: 204;
|
|
58
|
+
readonly body?: undefined;
|
|
59
|
+
}>;
|
|
60
|
+
export declare const getRegisteredClient: ({ authorization, clientId, clientStore, registrationTokenStore }: {
|
|
61
|
+
authorization: string | undefined;
|
|
62
|
+
clientId: string;
|
|
63
|
+
clientStore: OAuthClientStore;
|
|
64
|
+
registrationTokenStore: ClientRegistrationTokenStore;
|
|
65
|
+
}) => Promise<{
|
|
66
|
+
readonly body: {
|
|
67
|
+
readonly error: "invalid_token";
|
|
68
|
+
};
|
|
69
|
+
readonly status: 401;
|
|
70
|
+
} | {
|
|
71
|
+
readonly body: {
|
|
72
|
+
readonly error: "invalid_client";
|
|
73
|
+
};
|
|
74
|
+
readonly status: 404;
|
|
75
|
+
} | {
|
|
76
|
+
readonly body: ClientRegistrationMetadata & {
|
|
77
|
+
client_id: string;
|
|
78
|
+
};
|
|
79
|
+
readonly status: 200;
|
|
80
|
+
}>;
|
|
81
|
+
export declare const registerClient: ({ clientStore, initialAccessTokenStore, metadata, onClientRegistration, onClientRegistered, presentedInitialAccessToken, registrationBaseUrl, registrationTokenStore }: {
|
|
82
|
+
clientStore: OAuthClientStore;
|
|
83
|
+
initialAccessTokenStore?: InitialAccessTokenStore;
|
|
84
|
+
metadata: ClientRegistrationMetadata;
|
|
85
|
+
onClientRegistration?: OnClientRegistration;
|
|
86
|
+
onClientRegistered?: OnClientRegistered;
|
|
87
|
+
presentedInitialAccessToken?: string;
|
|
88
|
+
registrationBaseUrl: string;
|
|
89
|
+
registrationTokenStore: ClientRegistrationTokenStore;
|
|
90
|
+
}) => Promise<RegisterClientResult>;
|
|
91
|
+
export declare const updateRegisteredClient: ({ authorization, clientId, clientStore, metadata, onClientRegistration, registrationTokenStore }: {
|
|
92
|
+
authorization: string | undefined;
|
|
93
|
+
clientId: string;
|
|
94
|
+
clientStore: OAuthClientStore;
|
|
95
|
+
metadata: ClientRegistrationMetadata;
|
|
96
|
+
onClientRegistration?: OnClientRegistration;
|
|
97
|
+
registrationTokenStore: ClientRegistrationTokenStore;
|
|
98
|
+
}) => Promise<{
|
|
99
|
+
readonly body: {
|
|
100
|
+
readonly error: "unsupported_response_type";
|
|
101
|
+
readonly error_description?: undefined;
|
|
102
|
+
};
|
|
103
|
+
readonly status: 501;
|
|
104
|
+
} | {
|
|
105
|
+
readonly body: {
|
|
106
|
+
readonly error: "invalid_token";
|
|
107
|
+
readonly error_description?: undefined;
|
|
108
|
+
};
|
|
109
|
+
readonly status: 401;
|
|
110
|
+
} | {
|
|
111
|
+
readonly body: {
|
|
112
|
+
readonly error: "invalid_client_metadata";
|
|
113
|
+
readonly error_description: string;
|
|
114
|
+
};
|
|
115
|
+
readonly status: 403;
|
|
116
|
+
} | {
|
|
117
|
+
readonly body: {
|
|
118
|
+
readonly error: "invalid_redirect_uri";
|
|
119
|
+
readonly error_description?: undefined;
|
|
120
|
+
};
|
|
121
|
+
readonly status: 400;
|
|
122
|
+
} | {
|
|
123
|
+
readonly body: {
|
|
124
|
+
readonly registration_access_token: string;
|
|
125
|
+
readonly backchannel_logout_uri?: string;
|
|
126
|
+
readonly client_name?: string;
|
|
127
|
+
readonly grant_types?: string[];
|
|
128
|
+
readonly jwks?: JsonWebKey[];
|
|
129
|
+
readonly jwks_uri?: string;
|
|
130
|
+
readonly post_logout_redirect_uris?: string[];
|
|
131
|
+
readonly redirect_uris?: string[];
|
|
132
|
+
readonly scope?: string;
|
|
133
|
+
readonly client_id: string;
|
|
134
|
+
readonly error?: undefined;
|
|
135
|
+
readonly error_description?: undefined;
|
|
136
|
+
};
|
|
137
|
+
readonly status: 200;
|
|
138
|
+
}>;
|