@schemavaults/auth-react-provider 0.6.0
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/README.md +3 -0
- package/dist/auth-provider/auth-middleware-manager.d.ts +4 -0
- package/dist/auth-provider/auth-middleware-manager.js +39 -0
- package/dist/auth-provider/auth-middleware-manager.js.map +1 -0
- package/dist/auth-provider/auth-provider-props.d.ts +20 -0
- package/dist/auth-provider/auth-provider-props.js +2 -0
- package/dist/auth-provider/auth-provider-props.js.map +1 -0
- package/dist/auth-provider/auth-provider.d.ts +16 -0
- package/dist/auth-provider/auth-provider.js +159 -0
- package/dist/auth-provider/auth-provider.js.map +1 -0
- package/dist/auth-provider/index.d.ts +3 -0
- package/dist/auth-provider/index.js +3 -0
- package/dist/auth-provider/index.js.map +1 -0
- package/dist/constants/DefaultPkceAuthorizeRedirectPath.d.ts +2 -0
- package/dist/constants/DefaultPkceAuthorizeRedirectPath.js +3 -0
- package/dist/constants/DefaultPkceAuthorizeRedirectPath.js.map +1 -0
- package/dist/constants/DefaultSuccessfulAuthenticationRedirectPath.d.ts +2 -0
- package/dist/constants/DefaultSuccessfulAuthenticationRedirectPath.js +3 -0
- package/dist/constants/DefaultSuccessfulAuthenticationRedirectPath.js.map +1 -0
- package/dist/contexts/app-environment-context.d.ts +2 -0
- package/dist/contexts/app-environment-context.js +4 -0
- package/dist/contexts/app-environment-context.js.map +1 -0
- package/dist/contexts/auth-client-context.d.ts +15 -0
- package/dist/contexts/auth-client-context.js +11 -0
- package/dist/contexts/auth-client-context.js.map +1 -0
- package/dist/hooks/index.d.ts +20 -0
- package/dist/hooks/index.js +11 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-admin.d.ts +2 -0
- package/dist/hooks/use-admin.js +8 -0
- package/dist/hooks/use-admin.js.map +1 -0
- package/dist/hooks/use-app-environment.d.ts +4 -0
- package/dist/hooks/use-app-environment.js +73 -0
- package/dist/hooks/use-app-environment.js.map +1 -0
- package/dist/hooks/use-auth-client-initialization.d.ts +18 -0
- package/dist/hooks/use-auth-client-initialization.js +72 -0
- package/dist/hooks/use-auth-client-initialization.js.map +1 -0
- package/dist/hooks/use-auth-client-middleware.d.ts +13 -0
- package/dist/hooks/use-auth-client-middleware.js +90 -0
- package/dist/hooks/use-auth-client-middleware.js.map +1 -0
- package/dist/hooks/use-auth-client-state-watcher.d.ts +10 -0
- package/dist/hooks/use-auth-client-state-watcher.js +84 -0
- package/dist/hooks/use-auth-client-state-watcher.js.map +1 -0
- package/dist/hooks/use-auth.d.ts +3 -0
- package/dist/hooks/use-auth.js +9 -0
- package/dist/hooks/use-auth.js.map +1 -0
- package/dist/hooks/use-current-user.d.ts +3 -0
- package/dist/hooks/use-current-user.js +51 -0
- package/dist/hooks/use-current-user.js.map +1 -0
- package/dist/hooks/use-debug.d.ts +4 -0
- package/dist/hooks/use-debug.js +32 -0
- package/dist/hooks/use-debug.js.map +1 -0
- package/dist/hooks/use-effect-if-authenticated.d.ts +4 -0
- package/dist/hooks/use-effect-if-authenticated.js +18 -0
- package/dist/hooks/use-effect-if-authenticated.js.map +1 -0
- package/dist/hooks/use-is-client-execution-environment.d.ts +2 -0
- package/dist/hooks/use-is-client-execution-environment.js +21 -0
- package/dist/hooks/use-is-client-execution-environment.js.map +1 -0
- package/dist/hooks/use-logout-effect.d.ts +7 -0
- package/dist/hooks/use-logout-effect.js +88 -0
- package/dist/hooks/use-logout-effect.js.map +1 -0
- package/dist/hooks/use-start-login-oauth-pkce-flow.d.ts +4 -0
- package/dist/hooks/use-start-login-oauth-pkce-flow.js +110 -0
- package/dist/hooks/use-start-login-oauth-pkce-flow.js.map +1 -0
- package/dist/hooks/use-start-register-oauth-pkce-flow.d.ts +4 -0
- package/dist/hooks/use-start-register-oauth-pkce-flow.js +109 -0
- package/dist/hooks/use-start-register-oauth-pkce-flow.js.map +1 -0
- package/dist/hooks/use-trade-authorization-code-for-tokens.d.ts +15 -0
- package/dist/hooks/use-trade-authorization-code-for-tokens.js +232 -0
- package/dist/hooks/use-trade-authorization-code-for-tokens.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/UiToastFn.d.ts +8 -0
- package/dist/lib/UiToastFn.js +2 -0
- package/dist/lib/UiToastFn.js.map +1 -0
- package/dist/lib/UserData.d.ts +2 -0
- package/dist/lib/UserData.js +2 -0
- package/dist/lib/UserData.js.map +1 -0
- package/dist/lib/auth-client-factory.d.ts +43 -0
- package/dist/lib/auth-client-factory.js +98 -0
- package/dist/lib/auth-client-factory.js.map +1 -0
- package/dist/lib/get-app-environment-on-client-based-on-window-href.d.ts +3 -0
- package/dist/lib/get-app-environment-on-client-based-on-window-href.js +39 -0
- package/dist/lib/get-app-environment-on-client-based-on-window-href.js.map +1 -0
- package/dist/lib/get-app-environment-on-client.d.ts +2 -0
- package/dist/lib/get-app-environment-on-client.js +33 -0
- package/dist/lib/get-app-environment-on-client.js.map +1 -0
- package/dist/lib/getPkceAuthorizeUri.d.ts +9 -0
- package/dist/lib/getPkceAuthorizeUri.js +15 -0
- package/dist/lib/getPkceAuthorizeUri.js.map +1 -0
- package/dist/lib/getSuccessfulAuthenticationRedirectUri.d.ts +9 -0
- package/dist/lib/getSuccessfulAuthenticationRedirectUri.js +12 -0
- package/dist/lib/getSuccessfulAuthenticationRedirectUri.js.map +1 -0
- package/dist/lib/isClientRuntime.d.ts +1 -0
- package/dist/lib/isClientRuntime.js +13 -0
- package/dist/lib/isClientRuntime.js.map +1 -0
- package/dist/lib/react-auth-client-adapter.d.ts +40 -0
- package/dist/lib/react-auth-client-adapter.js +405 -0
- package/dist/lib/react-auth-client-adapter.js.map +1 -0
- package/dist/subproviders/app-environment-provider.d.ts +8 -0
- package/dist/subproviders/app-environment-provider.js +25 -0
- package/dist/subproviders/app-environment-provider.js.map +1 -0
- package/dist/subproviders/initialized-auth-client-provider.d.ts +6 -0
- package/dist/subproviders/initialized-auth-client-provider.js +12 -0
- package/dist/subproviders/initialized-auth-client-provider.js.map +1 -0
- package/dist/types/IReactAuthClientSdkAdapterInitOptions.d.ts +7 -0
- package/dist/types/IReactAuthClientSdkAdapterInitOptions.js +2 -0
- package/dist/types/IReactAuthClientSdkAdapterInitOptions.js.map +1 -0
- package/dist/types/UiToastFn.d.ts +8 -0
- package/dist/types/UiToastFn.js +2 -0
- package/dist/types/UiToastFn.js.map +1 -0
- package/dist/types/UserData.d.ts +2 -0
- package/dist/types/UserData.js +2 -0
- package/dist/types/UserData.js.map +1 -0
- package/dist/types/hook-status.d.ts +14 -0
- package/dist/types/hook-status.js +5 -0
- package/dist/types/hook-status.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { getAppEnvironment, } from "@schemavaults/app-definitions";
|
|
3
|
+
export function getAppEnvironmentOnClient(window) {
|
|
4
|
+
if (!window) {
|
|
5
|
+
throw new Error("'window' is not defined! Is this code running server-side?");
|
|
6
|
+
}
|
|
7
|
+
const href = window.location.href ?? undefined;
|
|
8
|
+
if (href) {
|
|
9
|
+
if (href.includes("https://schemavaults.com")) {
|
|
10
|
+
return "production";
|
|
11
|
+
}
|
|
12
|
+
else if (href.includes("https://auth.schemavaults.com")) {
|
|
13
|
+
return "production";
|
|
14
|
+
}
|
|
15
|
+
else if (href.includes("http://localhost")) {
|
|
16
|
+
return "development";
|
|
17
|
+
}
|
|
18
|
+
else if (href.includes("https://staging.schemavaults.com")) {
|
|
19
|
+
return "staging";
|
|
20
|
+
}
|
|
21
|
+
else if (href.includes("https://auth-staging.schemavaults.com")) {
|
|
22
|
+
return "staging";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
return getAppEnvironment();
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
void e; /** no-op */
|
|
30
|
+
}
|
|
31
|
+
throw new Error("Failed to determine app environment for SchemaVaults app client!");
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=get-app-environment-on-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-app-environment-on-client.js","sourceRoot":"","sources":["../../src/lib/get-app-environment-on-client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EACL,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,UAAU,yBAAyB,CACvC,MAAc;IAEd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAuB,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC;IACnE,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC9C,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;YAC1D,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,OAAO,aAAa,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,CAAC,YAAY;IACtB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ISchemaVaultsAuthClient } from "@schemavaults/auth-client-sdk";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param auth ISchemaVaultsAuthClient | Reference to initialized auth client
|
|
5
|
+
* @returns Path/URL of where the user should be sent after successful authentication
|
|
6
|
+
* @example authorize_uri: `/auth/authorize`
|
|
7
|
+
*/
|
|
8
|
+
declare function getPkceAuthorizeUri(auth: ISchemaVaultsAuthClient): string;
|
|
9
|
+
export default getPkceAuthorizeUri;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param auth ISchemaVaultsAuthClient | Reference to initialized auth client
|
|
4
|
+
* @returns Path/URL of where the user should be sent after successful authentication
|
|
5
|
+
* @example authorize_uri: `/auth/authorize`
|
|
6
|
+
*/
|
|
7
|
+
function getPkceAuthorizeUri(auth) {
|
|
8
|
+
const authorize_uri = auth.authorize_uri;
|
|
9
|
+
if (typeof authorize_uri !== "string") {
|
|
10
|
+
throw new Error(`Failed to load 'authorize_uri' for auth client (app ID: '${auth.app_id}')`);
|
|
11
|
+
}
|
|
12
|
+
return authorize_uri;
|
|
13
|
+
}
|
|
14
|
+
export default getPkceAuthorizeUri;
|
|
15
|
+
//# sourceMappingURL=getPkceAuthorizeUri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPkceAuthorizeUri.js","sourceRoot":"","sources":["../../src/lib/getPkceAuthorizeUri.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAA6B;IACxD,MAAM,aAAa,GAAuB,IAAI,CAAC,aAAa,CAAC;IAC7D,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,4DAA4D,IAAI,CAAC,MAAM,IAAI,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ISchemaVaultsAuthClient } from "@schemavaults/auth-client-sdk";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param auth ISchemaVaultsAuthClient | Reference to initialized auth client
|
|
5
|
+
* @returns Path/URL of where the user should be sent after successful authentication
|
|
6
|
+
* @example successful_authentication_redirect_uri: `/account`
|
|
7
|
+
*/
|
|
8
|
+
declare function getSuccessfulAuthenticationRedirectUri(auth: ISchemaVaultsAuthClient): string;
|
|
9
|
+
export default getSuccessfulAuthenticationRedirectUri;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param auth ISchemaVaultsAuthClient | Reference to initialized auth client
|
|
4
|
+
* @returns Path/URL of where the user should be sent after successful authentication
|
|
5
|
+
* @example successful_authentication_redirect_uri: `/account`
|
|
6
|
+
*/
|
|
7
|
+
function getSuccessfulAuthenticationRedirectUri(auth) {
|
|
8
|
+
const successful_authentication_redirect_uri = auth.successful_authentication_redirect_uri;
|
|
9
|
+
return successful_authentication_redirect_uri;
|
|
10
|
+
}
|
|
11
|
+
export default getSuccessfulAuthenticationRedirectUri;
|
|
12
|
+
//# sourceMappingURL=getSuccessfulAuthenticationRedirectUri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSuccessfulAuthenticationRedirectUri.js","sourceRoot":"","sources":["../../src/lib/getSuccessfulAuthenticationRedirectUri.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,SAAS,sCAAsC,CAC7C,IAA6B;IAE7B,MAAM,sCAAsC,GAC1C,IAAI,CAAC,sCAAsC,CAAC;IAC9C,OAAO,sCAAsC,CAAC;AAChD,CAAC;AAED,eAAe,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isClientRuntime(): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isClientRuntime.js","sourceRoot":"","sources":["../../src/lib/isClientRuntime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,KAAK,KAAK,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AccessToken, type RefreshToken, type UserData } from "@schemavaults/auth-common";
|
|
2
|
+
import { type ISchemaVaultsAuthClientAdapter, type IAuthClientPOSTResultType } from "@schemavaults/auth-client-sdk";
|
|
3
|
+
import type { IReactAuthClientSdkAdapterInitOptions } from "../types/IReactAuthClientSdkAdapterInitOptions";
|
|
4
|
+
export declare class ReactAuthClientSdkAdapter implements ISchemaVaultsAuthClientAdapter {
|
|
5
|
+
private readonly environment;
|
|
6
|
+
private readonly debug;
|
|
7
|
+
private readonly auth_server_uri;
|
|
8
|
+
constructor({ uuid, environment, ...opts }: IReactAuthClientSdkAdapterInitOptions);
|
|
9
|
+
private get ssl_enabled();
|
|
10
|
+
private _uuid_generator;
|
|
11
|
+
uuid(): string;
|
|
12
|
+
private accessTokens;
|
|
13
|
+
redirect(uri: string): void;
|
|
14
|
+
private clearCookie;
|
|
15
|
+
sendPOSTRequest(url: string, body: Record<string, unknown>, headers: Record<string, string>): Promise<IAuthClientPOSTResultType<object>>;
|
|
16
|
+
storeCodeVerifier(code_verifier: string, challenge_time: number): void;
|
|
17
|
+
loadCodeVerifiers(): Record<number, string>;
|
|
18
|
+
loadCodeVerifier(challenge_time: number): string | null;
|
|
19
|
+
clearCodeVerifier(challenge_time: number): void;
|
|
20
|
+
clearCodeVerifiers(): void;
|
|
21
|
+
storeRefreshToken(refresh_token: RefreshToken): void;
|
|
22
|
+
storeAccessToken(token_id: string, access_token: AccessToken): void;
|
|
23
|
+
getAccessToken(token_id: string): AccessToken | null;
|
|
24
|
+
getRefreshToken(): RefreshToken | null;
|
|
25
|
+
clearAccessTokens(): void;
|
|
26
|
+
clearHttpOnlyRefreshToken(): Promise<void>;
|
|
27
|
+
clearAuthTokens(): Promise<void>;
|
|
28
|
+
storeUserData(userData: UserData): void;
|
|
29
|
+
getUserData(): UserData | null;
|
|
30
|
+
clearUserData(): void;
|
|
31
|
+
clearAccessToken(token_id: string): void;
|
|
32
|
+
doesSupportHttpOnlyRefreshToken(): true;
|
|
33
|
+
/**
|
|
34
|
+
* @description we can't directly read HTTP-only cookies from JS, so we can't access the token itself
|
|
35
|
+
* however, a companion non-HTTP-only cookie is set with the expiry time of the refresh token
|
|
36
|
+
* @returns True if there is a non-HTTP-only cookie indicating a valid HTTP-only refresh token is present, false otherwise
|
|
37
|
+
*/
|
|
38
|
+
hasHttpOnlyRefreshToken(): boolean;
|
|
39
|
+
hasRefreshToken(): boolean;
|
|
40
|
+
}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { getHardcodedClientWebAppDomain, SCHEMAVAULTS_AUTH_APP_DEFINITION, } from "@schemavaults/app-definitions";
|
|
3
|
+
import { PKCE_ProofKeyManager, accessTokenDataSchema, userDataSchema, } from "@schemavaults/auth-common";
|
|
4
|
+
import { deleteCookie, getCookie } from "cookies-next/client";
|
|
5
|
+
// Next.js/React.js to JS Client SDK Adapter
|
|
6
|
+
export class ReactAuthClientSdkAdapter {
|
|
7
|
+
environment;
|
|
8
|
+
debug;
|
|
9
|
+
auth_server_uri;
|
|
10
|
+
constructor({ uuid, environment, ...opts }) {
|
|
11
|
+
this.environment = environment;
|
|
12
|
+
if (typeof opts.debug === "boolean") {
|
|
13
|
+
this.debug = opts.debug;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
this.debug = this.environment !== "production";
|
|
17
|
+
}
|
|
18
|
+
if (this.debug) {
|
|
19
|
+
console.log(`[ReactAuthClientSdkAdapter] Initializing in environment: "${this.environment}"`);
|
|
20
|
+
}
|
|
21
|
+
this._uuid_generator = uuid;
|
|
22
|
+
this.auth_server_uri = opts.auth_server_uri
|
|
23
|
+
? opts.auth_server_uri
|
|
24
|
+
: getHardcodedClientWebAppDomain(SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id, this.environment);
|
|
25
|
+
}
|
|
26
|
+
get ssl_enabled() {
|
|
27
|
+
const environment = this.environment;
|
|
28
|
+
if (environment === "development" || environment === "test") {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
_uuid_generator = undefined;
|
|
34
|
+
uuid() {
|
|
35
|
+
try {
|
|
36
|
+
if (typeof this._uuid_generator === "function") {
|
|
37
|
+
return this._uuid_generator();
|
|
38
|
+
}
|
|
39
|
+
return crypto.randomUUID();
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
console.error("Failed to generate UUID: ", e);
|
|
43
|
+
throw new Error("Failed to generate UUID! Insecure HTTP context?");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
accessTokens = new Map();
|
|
47
|
+
redirect(uri) {
|
|
48
|
+
if (this.debug) {
|
|
49
|
+
console.log(`[ReactAuthClientSdkAdapter] Redirecting to URI: ${uri}`);
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
window.location.href = uri;
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error(`[ReactAuthClientSdkAdapter] Failed to redirect to URI: ${uri}`, e);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
clearCookie(key) {
|
|
59
|
+
if (this.debug) {
|
|
60
|
+
console.log(`[ReactAuthClientSdkAdapter] Clearing cookie for key: ${key}`);
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
deleteCookie(key);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
console.error(e);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async sendPOSTRequest(url, body, headers) {
|
|
70
|
+
if (this.debug) {
|
|
71
|
+
console.log(`[ReactAuthClientSdkAdapter] POST -> "${url}"`, body);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const response = await fetch(url, {
|
|
75
|
+
method: "POST",
|
|
76
|
+
headers: {
|
|
77
|
+
"Content-Type": "application/json",
|
|
78
|
+
...headers,
|
|
79
|
+
},
|
|
80
|
+
body: JSON.stringify(body),
|
|
81
|
+
});
|
|
82
|
+
if (this.debug) {
|
|
83
|
+
console.log(`Received response from POST request to "${url}"! ${response.ok ? "Ok" : "Error"}`);
|
|
84
|
+
}
|
|
85
|
+
// if (!response.ok || response.status >= 300 || response.status < 200) {
|
|
86
|
+
// throw new Error(`HTTP response did not have a success status code: ${response.status}`)
|
|
87
|
+
// }
|
|
88
|
+
const response_body = await response.json();
|
|
89
|
+
if (!response_body || typeof response_body !== "object") {
|
|
90
|
+
throw new Error("Expected response to be a JSON object!");
|
|
91
|
+
}
|
|
92
|
+
const isOkStatusCode = response.status >= 200 && response.status < 300;
|
|
93
|
+
const ok = response.ok && isOkStatusCode;
|
|
94
|
+
const output = {
|
|
95
|
+
status: response.status,
|
|
96
|
+
ok,
|
|
97
|
+
data: response_body,
|
|
98
|
+
};
|
|
99
|
+
if (this.debug) {
|
|
100
|
+
console.log(`[ReactAuthClientSdkAdapter] POST -> "${url}" ->`, output);
|
|
101
|
+
}
|
|
102
|
+
return output;
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
console.error("Failed to send POST request using ReactAuthClientSdkAdapter: ", e);
|
|
106
|
+
throw new Error("Failed to send POST request using ReactAuthClientSdkAdapter!");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
storeCodeVerifier(code_verifier, challenge_time) {
|
|
110
|
+
try {
|
|
111
|
+
const code_verifiers_str = window.localStorage.getItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */);
|
|
112
|
+
let code_verifiers = {};
|
|
113
|
+
if (code_verifiers_str) {
|
|
114
|
+
code_verifiers = JSON.parse(code_verifiers_str);
|
|
115
|
+
if (!code_verifiers || typeof code_verifiers !== "object") {
|
|
116
|
+
throw new Error("Invalid code_verifiers object in local storage");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Clear out expired code verifiers
|
|
120
|
+
const now = Date.now();
|
|
121
|
+
for (const challenge_time_key of Object.keys(code_verifiers)) {
|
|
122
|
+
const challenge_time_int = parseInt(challenge_time_key);
|
|
123
|
+
if (isNaN(challenge_time_int)) {
|
|
124
|
+
throw new Error("Invalid challenge_time key in code_verifiers object");
|
|
125
|
+
}
|
|
126
|
+
if (now - challenge_time_int > PKCE_ProofKeyManager.max_age) {
|
|
127
|
+
delete code_verifiers[challenge_time_int];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
code_verifiers[challenge_time] = code_verifier;
|
|
131
|
+
window.localStorage.setItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */, JSON.stringify(code_verifiers));
|
|
132
|
+
if (this.environment === "development") {
|
|
133
|
+
console.log(`[ReactAuthClientSdkAdapter] Stored code verifier in local storage at t=${challenge_time}: ${code_verifier}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
console.error(e);
|
|
138
|
+
throw new Error(`Failed to store code verifier in local storage for challenge_time ${challenge_time}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
loadCodeVerifiers() {
|
|
142
|
+
try {
|
|
143
|
+
const code_verifiers_str = window.localStorage.getItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */);
|
|
144
|
+
if (!code_verifiers_str) {
|
|
145
|
+
return {};
|
|
146
|
+
}
|
|
147
|
+
const code_verifiers = JSON.parse(code_verifiers_str);
|
|
148
|
+
if (!code_verifiers || typeof code_verifiers !== "object") {
|
|
149
|
+
if (code_verifiers) {
|
|
150
|
+
window.localStorage.removeItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */);
|
|
151
|
+
}
|
|
152
|
+
throw new Error("Code verifiers is not a valid JSON object");
|
|
153
|
+
}
|
|
154
|
+
for (const [key, value] of Object.entries(code_verifiers)) {
|
|
155
|
+
if (typeof key !== "string" || isNaN(Number(key))) {
|
|
156
|
+
throw new Error("Invalid key in code_verifiers object; expected a string representing a number");
|
|
157
|
+
}
|
|
158
|
+
if (typeof value !== "string") {
|
|
159
|
+
throw new Error("Invalid value in code_verifiers object; expected a string");
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return code_verifiers;
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
console.error("Failed to load code verifiers: ", e);
|
|
166
|
+
throw new Error("Failed to load code_verifiers!");
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
loadCodeVerifier(challenge_time) {
|
|
170
|
+
if (this.debug) {
|
|
171
|
+
console.log(`[ReactAuthClientSdkAdapter::loadCodeVerifier()] Loading code verifier from local storage for challenge_time=${challenge_time}`);
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const code_verifiers = this.loadCodeVerifiers();
|
|
175
|
+
if (!code_verifiers) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
else if (typeof code_verifiers !== "object") {
|
|
179
|
+
console.error("Invalid code_verifiers object in local storage");
|
|
180
|
+
window.localStorage.removeItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */);
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const code_verifier = code_verifiers[challenge_time];
|
|
184
|
+
if (typeof code_verifier !== "string") {
|
|
185
|
+
throw new Error("Invalid code verifier, code_verifiers object values should be strings");
|
|
186
|
+
}
|
|
187
|
+
if (code_verifier.startsWith("deleted-at-")) {
|
|
188
|
+
// careful changing this error message
|
|
189
|
+
// "already been used" is used as a search substring in detecting whether code verifier already deleted
|
|
190
|
+
throw new Error("Code verifier has already been used & deleted!");
|
|
191
|
+
}
|
|
192
|
+
if (this.debug) {
|
|
193
|
+
console.log(`[ReactAuthClientSdkAdapter] Loaded code verifier from local storage for challenge_time=${challenge_time}: ${code_verifier}`);
|
|
194
|
+
}
|
|
195
|
+
return code_verifier;
|
|
196
|
+
}
|
|
197
|
+
catch (e) {
|
|
198
|
+
console.error("Failed to load code verifier from local storage: ", e);
|
|
199
|
+
throw new Error("Failed to load code verifier from local storage");
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
clearCodeVerifier(challenge_time) {
|
|
203
|
+
if (this.debug) {
|
|
204
|
+
console.log("[ReactAuthClientSdkAdapter] Clearing code verifier from local storage at challenge time: ", challenge_time);
|
|
205
|
+
}
|
|
206
|
+
try {
|
|
207
|
+
const code_verifiers = this.loadCodeVerifiers();
|
|
208
|
+
if (code_verifiers[challenge_time]) {
|
|
209
|
+
code_verifiers[challenge_time] = `deleted-at-${Date.now()}`;
|
|
210
|
+
window.localStorage.setItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */, JSON.stringify(code_verifiers));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
catch (e) {
|
|
215
|
+
console.error(e);
|
|
216
|
+
throw new Error("Failed to clear code verifiers from local storage");
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
clearCodeVerifiers() {
|
|
220
|
+
if (this.debug) {
|
|
221
|
+
console.log("[ReactAuthClientSdkAdapter] Clearing code verifiers from local storage");
|
|
222
|
+
}
|
|
223
|
+
try {
|
|
224
|
+
window.localStorage.removeItem("code_verifiers" /* AuthClientSdkAdapterLocalStorageKeys.CODE_VERIFIERS */);
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
console.error(e);
|
|
228
|
+
throw new Error("Failed to clear code verifiers from local storage");
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
storeRefreshToken(refresh_token) {
|
|
232
|
+
void refresh_token;
|
|
233
|
+
throw new Error("Refresh tokens should be set by the server as HTTP-only cookies for web-based authentication.");
|
|
234
|
+
}
|
|
235
|
+
storeAccessToken(token_id, access_token) {
|
|
236
|
+
this.accessTokens.set(token_id, access_token);
|
|
237
|
+
}
|
|
238
|
+
getAccessToken(token_id) {
|
|
239
|
+
try {
|
|
240
|
+
const serialized = this.accessTokens.get(token_id);
|
|
241
|
+
if (!serialized) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
const parsed = accessTokenDataSchema.safeParse(serialized);
|
|
245
|
+
if (!parsed.success) {
|
|
246
|
+
console.error(parsed.error);
|
|
247
|
+
throw new Error("Invalid access token data");
|
|
248
|
+
}
|
|
249
|
+
return parsed.data;
|
|
250
|
+
}
|
|
251
|
+
catch (e) {
|
|
252
|
+
console.error(e);
|
|
253
|
+
throw new Error("Failed to get access token from localStorage");
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
getRefreshToken() {
|
|
257
|
+
throw new Error("Refresh tokens should be set by the server as HTTP-only cookies for web-based authentication.");
|
|
258
|
+
}
|
|
259
|
+
clearAccessTokens() {
|
|
260
|
+
this.accessTokens = new Map();
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
async clearHttpOnlyRefreshToken() {
|
|
264
|
+
try {
|
|
265
|
+
await this.sendPOSTRequest(`${this.auth_server_uri}/api/auth/logout`, {}, {});
|
|
266
|
+
}
|
|
267
|
+
catch (e) {
|
|
268
|
+
console.error("Failed to clear HTTP-only refresh token via network request to @schemavaults/auth-server: ", e);
|
|
269
|
+
throw new Error("Failed to clear HTTP-only refresh token via network request to @schemavaults/auth-server");
|
|
270
|
+
}
|
|
271
|
+
try {
|
|
272
|
+
deleteCookie("refresh_token_expiry" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN_EXPIRY */);
|
|
273
|
+
}
|
|
274
|
+
catch (e) {
|
|
275
|
+
throw new Error(`Failed to ensure cookie '${"refresh_token_expiry" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN_EXPIRY */}' was deleted after logout!`);
|
|
276
|
+
}
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
async clearAuthTokens() {
|
|
280
|
+
this.clearAccessTokens();
|
|
281
|
+
try {
|
|
282
|
+
window.localStorage.removeItem("refresh_token" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN */);
|
|
283
|
+
}
|
|
284
|
+
catch (e) {
|
|
285
|
+
console.error(e);
|
|
286
|
+
throw new Error("Failed to clear refresh token from localStorage");
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
this.clearCookie("refresh_token" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN */);
|
|
290
|
+
}
|
|
291
|
+
catch (e) {
|
|
292
|
+
console.error(e);
|
|
293
|
+
throw new Error("Failed to clear refresh tokens from cookies");
|
|
294
|
+
}
|
|
295
|
+
await this.clearHttpOnlyRefreshToken();
|
|
296
|
+
return;
|
|
297
|
+
} // end of clearAuthTokens()
|
|
298
|
+
storeUserData(userData) {
|
|
299
|
+
const parsed = userDataSchema.safeParse(userData);
|
|
300
|
+
if (!parsed.success) {
|
|
301
|
+
console.error("Invalid user data to store with ReactAuthClientSdkAdapter: ", parsed.error);
|
|
302
|
+
throw new Error("Invalid user data to store with ReactAuthClientSdkAdapter!");
|
|
303
|
+
}
|
|
304
|
+
const data = parsed.data;
|
|
305
|
+
if (this.debug) {
|
|
306
|
+
console.log("[ReactAuthClientSdkAdapter] storeUserData(", data, ")");
|
|
307
|
+
}
|
|
308
|
+
try {
|
|
309
|
+
window.localStorage.setItem("user_data" /* AuthClientSdkAdapterLocalStorageKeys.USER_DATA */, JSON.stringify(userData));
|
|
310
|
+
}
|
|
311
|
+
catch (e) {
|
|
312
|
+
console.error(e);
|
|
313
|
+
throw new Error("Failed to store user data in localStorage");
|
|
314
|
+
}
|
|
315
|
+
if (this.debug) {
|
|
316
|
+
console.log("[ReactAuthClientSdkAdapter] storeUserData() - User data appears to have been stored in window.localStorage successfully!");
|
|
317
|
+
}
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
getUserData() {
|
|
321
|
+
try {
|
|
322
|
+
const user_data_str = window.localStorage.getItem("user_data" /* AuthClientSdkAdapterLocalStorageKeys.USER_DATA */);
|
|
323
|
+
if (!user_data_str) {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
const user_data = JSON.parse(user_data_str);
|
|
327
|
+
const parsed = userDataSchema.safeParse(user_data);
|
|
328
|
+
if (!parsed.success) {
|
|
329
|
+
console.error("Invalid user data loaded from window.localStorage: ", parsed.error);
|
|
330
|
+
throw new Error("Invalid user data");
|
|
331
|
+
}
|
|
332
|
+
const userData = parsed.data;
|
|
333
|
+
if (this.debug) {
|
|
334
|
+
console.log("[ReactAuthClientSdkAdapter] getUserData(window.localStorage) => ", userData);
|
|
335
|
+
}
|
|
336
|
+
return userData;
|
|
337
|
+
}
|
|
338
|
+
catch (e) {
|
|
339
|
+
console.error(e);
|
|
340
|
+
throw new Error("Failed to get user data from localStorage");
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
clearUserData() {
|
|
344
|
+
if (this.debug) {
|
|
345
|
+
console.log("[ReactAuthClientSdkAdapter] clearUserData()");
|
|
346
|
+
}
|
|
347
|
+
try {
|
|
348
|
+
window.localStorage.removeItem("user_data" /* AuthClientSdkAdapterLocalStorageKeys.USER_DATA */);
|
|
349
|
+
}
|
|
350
|
+
catch (e) {
|
|
351
|
+
console.error("Failed to clear user data from localStorage: ", e);
|
|
352
|
+
throw new Error("Failed to clear user data from localStorage!");
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
clearAccessToken(token_id) {
|
|
356
|
+
if (this.accessTokens) {
|
|
357
|
+
if (this.accessTokens.has(token_id)) {
|
|
358
|
+
this.accessTokens.delete(token_id);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
if (this.debug) {
|
|
363
|
+
console.warn(`[clearAccessToken] No token with ID '${token_id}' found to clear; this is a no-op error.`);
|
|
364
|
+
}
|
|
365
|
+
return;
|
|
366
|
+
} // end of clearAccessToken()
|
|
367
|
+
doesSupportHttpOnlyRefreshToken() {
|
|
368
|
+
return true;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* @description we can't directly read HTTP-only cookies from JS, so we can't access the token itself
|
|
372
|
+
* however, a companion non-HTTP-only cookie is set with the expiry time of the refresh token
|
|
373
|
+
* @returns True if there is a non-HTTP-only cookie indicating a valid HTTP-only refresh token is present, false otherwise
|
|
374
|
+
*/
|
|
375
|
+
hasHttpOnlyRefreshToken() {
|
|
376
|
+
if (this.doesSupportHttpOnlyRefreshToken()) {
|
|
377
|
+
const refreshTokenExpiryStr = getCookie("refresh_token_expiry" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN_EXPIRY */, {
|
|
378
|
+
httpOnly: false,
|
|
379
|
+
secure: this.ssl_enabled,
|
|
380
|
+
});
|
|
381
|
+
if (typeof refreshTokenExpiryStr !== "string") {
|
|
382
|
+
if (this.debug) {
|
|
383
|
+
console.log(`[hasHttpOnlyRefreshToken] No refresh token expiry cookie found (key '${"refresh_token_expiry" /* AuthClientSdkAdapterLocalStorageKeys.REFRESH_TOKEN_EXPIRY */}').`);
|
|
384
|
+
}
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
const refreshTokenExpiryInt = parseInt(refreshTokenExpiryStr);
|
|
388
|
+
if (isNaN(refreshTokenExpiryInt)) {
|
|
389
|
+
if (this.debug) {
|
|
390
|
+
console.log("[hasHttpOnlyRefreshToken] Invalid refresh token expiry cookie value.");
|
|
391
|
+
}
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
const refreshTokenExpiryTime = new Date(refreshTokenExpiryInt);
|
|
395
|
+
return Date.now() + 1000 < refreshTokenExpiryTime.getTime();
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
throw new Error("Expected ReactAuthClientSdkAdapter to support HTTP-only refresh tokens");
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
hasRefreshToken() {
|
|
402
|
+
return this.hasHttpOnlyRefreshToken();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=react-auth-client-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-auth-client-adapter.js","sourceRoot":"","sources":["../../src/lib/react-auth-client-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
|
|
2
|
+
import { type PropsWithChildren, type ReactElement } from "react";
|
|
3
|
+
export interface SchemaVaultsAppEnvironmentContextProviderProps extends PropsWithChildren {
|
|
4
|
+
verbose?: boolean;
|
|
5
|
+
environment: SchemaVaultsAppEnvironment;
|
|
6
|
+
}
|
|
7
|
+
export declare function SchemaVaultsAppEnvironmentContextProvider({ children, verbose, environment, }: SchemaVaultsAppEnvironmentContextProviderProps): ReactElement;
|
|
8
|
+
export default SchemaVaultsAppEnvironmentContextProvider;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { schemaVaultsAppEnvironmentSchema, } from "@schemavaults/app-definitions";
|
|
4
|
+
import { SchemaVaultsAppEnvironmentContext } from "../contexts/app-environment-context";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
export function SchemaVaultsAppEnvironmentContextProvider({ children, verbose, environment, }) {
|
|
7
|
+
const validated_app_env = useMemo(() => {
|
|
8
|
+
if (typeof environment === "string" &&
|
|
9
|
+
schemaVaultsAppEnvironmentSchema.safeParse(environment).success) {
|
|
10
|
+
if (verbose) {
|
|
11
|
+
console.log("[SchemaVaultsAppEnvironmentContextProvider] environment: ", environment);
|
|
12
|
+
}
|
|
13
|
+
return environment;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new TypeError("Received invalid 'environment' to provide to children through SchemaVaultsAppEnvironmentContextProvider");
|
|
17
|
+
}
|
|
18
|
+
}, [environment, verbose]);
|
|
19
|
+
if (!validated_app_env) {
|
|
20
|
+
throw new Error("Failed to load app environment within SchemaVaultsAppEnvironmentContextProvider!");
|
|
21
|
+
}
|
|
22
|
+
return (_jsx(SchemaVaultsAppEnvironmentContext.Provider, { value: validated_app_env, children: children }, `schemavaults-app-environment-provider-[${validated_app_env}]`));
|
|
23
|
+
}
|
|
24
|
+
export default SchemaVaultsAppEnvironmentContextProvider;
|
|
25
|
+
//# sourceMappingURL=app-environment-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-environment-provider.js","sourceRoot":"","sources":["../../src/subproviders/app-environment-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAEL,gCAAgC,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAA0B,OAAO,EAAqB,MAAM,OAAO,CAAC;AAQ3E,MAAM,UAAU,yCAAyC,CAAC,EACxD,QAAQ,EACR,OAAO,EACP,WAAW,GACoC;IAC/C,MAAM,iBAAiB,GACrB,OAAO,CAAC,GAA+B,EAAE;QACvC,IACE,OAAO,WAAW,KAAK,QAAQ;YAC/B,gCAAgC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAC/D,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CACT,2DAA2D,EAC3D,WAAW,CACZ,CAAC;YACJ,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CACjB,yGAAyG,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,iCAAiC,CAAC,QAAQ,IACzC,KAAK,EAAE,iBAAiB,YAGvB,QAAQ,IAFJ,0CAA0C,iBAAiB,GAAG,CAGxB,CAC9C,CAAC;AACJ,CAAC;AAED,eAAe,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ISchemaVaultsAuthClient } from "@schemavaults/auth-client-sdk";
|
|
2
|
+
import { type PropsWithChildren, type ReactElement, type RefObject } from "react";
|
|
3
|
+
export interface InitializedAuthClientProviderProps extends PropsWithChildren {
|
|
4
|
+
authClientRefPromise: Promise<RefObject<ISchemaVaultsAuthClient>>;
|
|
5
|
+
}
|
|
6
|
+
export declare function InitializedAuthClientProvider({ children, authClientRefPromise }: InitializedAuthClientProviderProps): ReactElement;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { SchemaVaultsAuthContext } from "../contexts/auth-client-context";
|
|
4
|
+
import { use } from "react";
|
|
5
|
+
export function InitializedAuthClientProvider({ children, authClientRefPromise }) {
|
|
6
|
+
const authClient = use(authClientRefPromise);
|
|
7
|
+
return (_jsx(SchemaVaultsAuthContext.Provider, { value: {
|
|
8
|
+
ready: true,
|
|
9
|
+
client: authClient
|
|
10
|
+
}, children: children }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=initialized-auth-client-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialized-auth-client-provider.js","sourceRoot":"","sources":["../../src/subproviders/initialized-auth-client-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAA6D,GAAG,EAAE,MAAM,OAAO,CAAC;AAMvF,MAAM,UAAU,6BAA6B,CAC3C,EAAE,QAAQ,EAAE,oBAAoB,EAAsC;IAEtE,MAAM,UAAU,GAAuC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjF,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE;YACvC,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,UAAU;SACnB,YACE,QAAQ,GACwB,CACpC,CAAC;AACJ,CAAC"}
|