UNPKG

oidc-spa

Version:

Openidconnect client for Single Page Applications

73 lines (72 loc) 3.31 kB
import { type Oidc, type ParamsOfCreateOidc, OidcInitializationError } from "../core"; import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter"; import { type Signal, type EnvironmentProviders } from "@angular/core"; import { type CanActivateFn } from "@angular/router"; export type OidcAngular = OidcAngular.NotLoggedIn | OidcAngular.LoggedIn; export declare namespace OidcAngular { type Common = Oidc.Common; type NotLoggedIn = Common & { isUserLoggedIn: false; login: (params?: { extraQueryParams?: Record<string, string | undefined>; transformUrlBeforeRedirect?: (url: string) => string; }) => Promise<never>; }; type LoggedIn = Common & { isUserLoggedIn: true; logout: Oidc.LoggedIn["logout"]; renewTokens: Oidc.LoggedIn["renewTokens"]; goToAuthServer: Oidc.LoggedIn["goToAuthServer"]; backFromAuthServer: { extraQueryParams: Record<string, string>; result: Record<string, string>; } | undefined; isNewBrowserSession: boolean; }; } type OidcAngularApi<DecodedIdToken extends Record<string, unknown>, AutoLogin extends boolean> = { getOidc: AutoLogin extends true ? { (params?: { assert: "user logged in"; }): OidcAngular.LoggedIn; } : { (params?: { assert?: undefined; }): OidcAngular; (params: { assert: "user logged in"; }): OidcAngular.LoggedIn; (params: { assert: "user not logged in"; }): OidcAngular.NotLoggedIn; }; getOidcInitializationError: () => OidcInitializationError | undefined; get$decodedIdToken: () => Signal<DecodedIdToken>; get$secondsLeftBeforeAutoLogout: (params: { warningDurationSeconds: number; }) => Signal<number | undefined>; getTokens: () => Promise<{ isUserLoggedIn: false; prTokens?: never; } | { isUserLoggedIn: true; prTokens: Promise<Oidc.Tokens<DecodedIdToken>>; }>; provideOidcInitAwaiter: EnvironmentProviders; } & (AutoLogin extends true ? {} : { enforceLoginGuard: CanActivateFn; }); export declare function createAngularOidc_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends { autoLogin?: boolean; } & ({ decodedIdTokenSchema: { parse: (data: unknown) => DecodedIdToken; } | undefined; } | {})>(paramsOrGetParams: ValueOrAsyncGetter<ParamsOfCreateOidc>, createOidc: (params: ParamsOfCreateOidc) => Promise<Oidc<DecodedIdToken>>): OidcAngularApi<DecodedIdToken, ParamsOfCreateOidc extends { autoLogin?: true | undefined; } ? true : false>; /** @see: https://docs.oidc-spa.dev/v/v8/usage#angular-api */ export declare function createAngularOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_base, AutoLogin extends boolean = false>(params: ValueOrAsyncGetter<Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl">>): OidcAngularApi<DecodedIdToken, Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl"> extends infer T ? T extends Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl"> ? T extends { autoLogin?: true | undefined; } ? true : false : never : never>; export {};