@monocloud/auth-react 0.1.1-canary-20260605070528 → 0.1.1

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.
@@ -38,7 +38,7 @@ const initialState = {
38
38
  * "use client";
39
39
  *
40
40
  * import { MonoCloudAuthProvider } from "@monocloud/auth-react";
41
- * import { useNavigate } from "react-router-dom";
41
+ * import { useNavigate } from "react-router";
42
42
  *
43
43
  * export default function Root() {
44
44
  * const navigate = useNavigate();
@@ -1 +1 @@
1
- {"version":3,"file":"monocloud-auth-provider.cjs","names":["MonoCloudWebJSClient","MonoCloudClientContext","MonoCloudProcessCallbackContext","MonoCloudAuthContext"],"sources":["../src/monocloud-auth-provider.tsx"],"sourcesContent":["'use client';\n\nimport {\n MonoCloudWebJSClient,\n type GetTokensOptions,\n type MonoCloudSession,\n type MonoCloudTokens,\n type RefreshOptions,\n type SignInOptions,\n type SignInSilentOptions,\n type SignOutOptions,\n} from '@monocloud/auth-web-js';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n MonoCloudAuthContext,\n MonoCloudClientContext,\n MonoCloudProcessCallbackContext,\n} from './context';\nimport type {\n AuthState,\n MonoCloudAuth,\n MonoCloudAuthProviderProps,\n} from './types';\n\nconst initialState: AuthState = {\n isLoading: true,\n isAuthenticated: false,\n};\n\n/**\n * `<MonoCloudAuthProvider>` initializes the MonoCloud JavaScript client and makes\n * the authentication state and actions available through {@link useAuth}.\n *\n * @example Basic setup\n *\n * ```tsx:src/main.tsx tab=\"Basic setup\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n *\n * export default function Root() {\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @example Client-side router navigation\n *\n * ```tsx:src/main.tsx tab=\"Client-side router navigation\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n * import { useNavigate } from \"react-router-dom\";\n *\n * export default function Root() {\n * const navigate = useNavigate();\n *\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * autoProcessCallback={false}\n * postCallback={state => navigate(state.returnUrl ?? \"/\")}\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @param props - Props for configuring the provider and the underlying client.\n * @returns The provider element wrapping `children`.\n *\n * @category Components\n */\nexport const MonoCloudAuthProvider = ({\n children,\n autoProcessCallback = true,\n ...clientOptions\n}: MonoCloudAuthProviderProps): React.JSX.Element => {\n const [state, setState] = useState<AuthState>(initialState);\n\n const [client] = useState<MonoCloudWebJSClient>(\n () => new MonoCloudWebJSClient(clientOptions)\n );\n\n const syncSession = useCallback(async (): Promise<void> => {\n const session = await client.getSession();\n setState({\n isLoading: false,\n isAuthenticated: !!session,\n user: session?.user,\n session,\n error: undefined,\n });\n }, [client]);\n\n const processCallback = useCallback(async (): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n\n try {\n await client.processCallback();\n await syncSession();\n } catch (e) {\n setState({\n isLoading: false,\n isAuthenticated: false,\n user: undefined,\n session: undefined,\n error: e as Error,\n });\n throw e;\n }\n }, [client, syncSession]);\n\n const initialized = useRef(false);\n useEffect(() => {\n /* v8 ignore start -- StrictMode double-invocation guard */\n if (initialized.current) {\n return;\n }\n /* v8 ignore stop */\n initialized.current = true;\n\n if (autoProcessCallback) {\n processCallback().catch(() => {});\n } else {\n syncSession();\n }\n }, [autoProcessCallback, processCallback, syncSession]);\n\n const signIn = useCallback(\n async (signInOptions?: SignInOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signIn(signInOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signOut = useCallback(\n async (signOutOptions?: SignOutOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signOut(signOutOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signInSilent = useCallback(\n async (\n signInSilentOptions?: SignInSilentOptions\n ): Promise<MonoCloudSession> => {\n const session = await client.signInSilent(signInSilentOptions);\n await syncSession();\n return session;\n },\n [client, syncSession]\n );\n\n const refreshSession = useCallback(\n async (refreshOptions?: RefreshOptions): Promise<void> => {\n await client.refreshSession(refreshOptions);\n await syncSession();\n },\n [client, syncSession]\n );\n\n const refetchUserInfo = useCallback(async (): Promise<void> => {\n await client.refetchUserInfo();\n await syncSession();\n }, [client, syncSession]);\n\n const getTokens = useCallback(\n async (options?: GetTokensOptions): Promise<MonoCloudTokens> => {\n const tokens = await client.getTokens(options);\n await syncSession();\n return tokens;\n },\n [client, syncSession]\n );\n\n const value = useMemo<MonoCloudAuth>(\n () => ({\n ...state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n }),\n [\n state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n ]\n );\n\n return (\n <MonoCloudClientContext.Provider value={client}>\n <MonoCloudProcessCallbackContext.Provider value={processCallback}>\n <MonoCloudAuthContext.Provider value={value}>\n {children}\n </MonoCloudAuthContext.Provider>\n </MonoCloudProcessCallbackContext.Provider>\n </MonoCloudClientContext.Provider>\n );\n};\n"],"mappings":";;;;;;;AA8BA,MAAM,eAA0B;CAC9B,WAAW;CACX,iBAAiB;AACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAa,yBAAyB,EACpC,UACA,sBAAsB,MACtB,GAAG,oBACgD;CACnD,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAAgC,YAAY;CAE1D,MAAM,CAAC,WAAA,GAAA,MAAA,gBACC,IAAIA,uBAAAA,qBAAqB,aAAa,CAC9C;CAEA,MAAM,eAAA,GAAA,MAAA,aAA0B,YAA2B;EACzD,MAAM,UAAU,MAAM,OAAO,WAAW;EACxC,SAAS;GACP,WAAW;GACX,iBAAiB,CAAC,CAAC;GACnB,MAAA,YAAA,QAAA,YAAA,KAAA,IAAA,KAAA,IAAM,QAAS;GACf;GACA,OAAO,KAAA;EACT,CAAC;CACH,GAAG,CAAC,MAAM,CAAC;CAEX,MAAM,mBAAA,GAAA,MAAA,aAA8B,YAA2B;EAC7D,UAAS,UAAS;GAAE,GAAG;GAAM,WAAW;EAAK,EAAE;EAE/C,IAAI;GACF,MAAM,OAAO,gBAAgB;GAC7B,MAAM,YAAY;EACpB,SAAS,GAAG;GACV,SAAS;IACP,WAAW;IACX,iBAAiB;IACjB,MAAM,KAAA;IACN,SAAS,KAAA;IACT,OAAO;GACT,CAAC;GACD,MAAM;EACR;CACF,GAAG,CAAC,QAAQ,WAAW,CAAC;CAExB,MAAM,eAAA,GAAA,MAAA,QAAqB,KAAK;CAChC,CAAA,GAAA,MAAA,iBAAgB;;EAEd,IAAI,YAAY,SACd;;EAGF,YAAY,UAAU;EAEtB,IAAI,qBACF,gBAAgB,EAAE,YAAY,CAAC,CAAC;OAEhC,YAAY;CAEhB,GAAG;EAAC;EAAqB;EAAiB;CAAW,CAAC;CAEtD,MAAM,UAAA,GAAA,MAAA,aACJ,OAAO,kBAAiD;EACtD,UAAS,UAAS;GAAE,GAAG;GAAM,WAAW;EAAK,EAAE;EAC/C,IAAI;GACF,MAAM,OAAO,OAAO,aAAa;GACjC,MAAM,YAAY;EACpB,SAAS,GAAG;GACV,UAAS,UAAS;IAAE,GAAG;IAAM,WAAW;IAAO,OAAO;GAAW,EAAE;EACrE;CACF,GACA,CAAC,QAAQ,WAAW,CACtB;CAEA,MAAM,WAAA,GAAA,MAAA,aACJ,OAAO,mBAAmD;EACxD,UAAS,UAAS;GAAE,GAAG;GAAM,WAAW;EAAK,EAAE;EAC/C,IAAI;GACF,MAAM,OAAO,QAAQ,cAAc;GACnC,MAAM,YAAY;EACpB,SAAS,GAAG;GACV,UAAS,UAAS;IAAE,GAAG;IAAM,WAAW;IAAO,OAAO;GAAW,EAAE;EACrE;CACF,GACA,CAAC,QAAQ,WAAW,CACtB;CAEA,MAAM,gBAAA,GAAA,MAAA,aACJ,OACE,wBAC8B;EAC9B,MAAM,UAAU,MAAM,OAAO,aAAa,mBAAmB;EAC7D,MAAM,YAAY;EAClB,OAAO;CACT,GACA,CAAC,QAAQ,WAAW,CACtB;CAEA,MAAM,kBAAA,GAAA,MAAA,aACJ,OAAO,mBAAmD;EACxD,MAAM,OAAO,eAAe,cAAc;EAC1C,MAAM,YAAY;CACpB,GACA,CAAC,QAAQ,WAAW,CACtB;CAEA,MAAM,mBAAA,GAAA,MAAA,aAA8B,YAA2B;EAC7D,MAAM,OAAO,gBAAgB;EAC7B,MAAM,YAAY;CACpB,GAAG,CAAC,QAAQ,WAAW,CAAC;CAExB,MAAM,aAAA,GAAA,MAAA,aACJ,OAAO,YAAyD;EAC9D,MAAM,SAAS,MAAM,OAAO,UAAU,OAAO;EAC7C,MAAM,YAAY;EAClB,OAAO;CACT,GACA,CAAC,QAAQ,WAAW,CACtB;CAEA,MAAM,SAAA,GAAA,MAAA,gBACG;EACL,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,sBAAA,QAAA,cAACC,gBAAAA,uBAAuB,UAAxB,EAAiC,OAAO,OAMP,GAL/B,sBAAA,QAAA,cAACC,gBAAAA,gCAAgC,UAAjC,EAA0C,OAAO,gBAIP,GAHxC,sBAAA,QAAA,cAACC,gBAAAA,qBAAqB,UAAtB,EAAsC,MAEP,GAD5B,QAC4B,CACS,CACX;AAErC"}
1
+ {"version":3,"file":"monocloud-auth-provider.cjs","names":["MonoCloudWebJSClient","MonoCloudClientContext","MonoCloudProcessCallbackContext","MonoCloudAuthContext"],"sources":["../src/monocloud-auth-provider.tsx"],"sourcesContent":["'use client';\n\nimport {\n MonoCloudWebJSClient,\n type GetTokensOptions,\n type MonoCloudSession,\n type MonoCloudTokens,\n type RefreshOptions,\n type SignInOptions,\n type SignInSilentOptions,\n type SignOutOptions,\n} from '@monocloud/auth-web-js';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n MonoCloudAuthContext,\n MonoCloudClientContext,\n MonoCloudProcessCallbackContext,\n} from './context';\nimport type {\n AuthState,\n MonoCloudAuth,\n MonoCloudAuthProviderProps,\n} from './types';\n\nconst initialState: AuthState = {\n isLoading: true,\n isAuthenticated: false,\n};\n\n/**\n * `<MonoCloudAuthProvider>` initializes the MonoCloud JavaScript client and makes\n * the authentication state and actions available through {@link useAuth}.\n *\n * @example Basic setup\n *\n * ```tsx:src/main.tsx tab=\"Basic setup\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n *\n * export default function Root() {\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @example Client-side router navigation\n *\n * ```tsx:src/main.tsx tab=\"Client-side router navigation\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n * import { useNavigate } from \"react-router\";\n *\n * export default function Root() {\n * const navigate = useNavigate();\n *\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * autoProcessCallback={false}\n * postCallback={state => navigate(state.returnUrl ?? \"/\")}\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @param props - Props for configuring the provider and the underlying client.\n * @returns The provider element wrapping `children`.\n *\n * @category Components\n */\nexport const MonoCloudAuthProvider = ({\n children,\n autoProcessCallback = true,\n ...clientOptions\n}: MonoCloudAuthProviderProps): React.JSX.Element => {\n const [state, setState] = useState<AuthState>(initialState);\n\n const [client] = useState<MonoCloudWebJSClient>(\n () => new MonoCloudWebJSClient(clientOptions)\n );\n\n const syncSession = useCallback(async (): Promise<void> => {\n const session = await client.getSession();\n setState({\n isLoading: false,\n isAuthenticated: !!session,\n user: session?.user,\n session,\n error: undefined,\n });\n }, [client]);\n\n const processCallback = useCallback(async (): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n\n try {\n await client.processCallback();\n await syncSession();\n } catch (e) {\n setState({\n isLoading: false,\n isAuthenticated: false,\n user: undefined,\n session: undefined,\n error: e as Error,\n });\n throw e;\n }\n }, [client, syncSession]);\n\n const initialized = useRef(false);\n useEffect(() => {\n /* v8 ignore start -- StrictMode double-invocation guard */\n if (initialized.current) {\n return;\n }\n /* v8 ignore stop */\n initialized.current = true;\n\n if (autoProcessCallback) {\n processCallback().catch(() => {});\n } else {\n syncSession();\n }\n }, [autoProcessCallback, processCallback, syncSession]);\n\n const signIn = useCallback(\n async (signInOptions?: SignInOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signIn(signInOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signOut = useCallback(\n async (signOutOptions?: SignOutOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signOut(signOutOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signInSilent = useCallback(\n async (\n signInSilentOptions?: SignInSilentOptions\n ): Promise<MonoCloudSession> => {\n const session = await client.signInSilent(signInSilentOptions);\n await syncSession();\n return session;\n },\n [client, syncSession]\n );\n\n const refreshSession = useCallback(\n async (refreshOptions?: RefreshOptions): Promise<void> => {\n await client.refreshSession(refreshOptions);\n await syncSession();\n },\n [client, syncSession]\n );\n\n const refetchUserInfo = useCallback(async (): Promise<void> => {\n await client.refetchUserInfo();\n await syncSession();\n }, [client, syncSession]);\n\n const getTokens = useCallback(\n async (options?: GetTokensOptions): Promise<MonoCloudTokens> => {\n const tokens = await client.getTokens(options);\n await syncSession();\n return tokens;\n },\n [client, syncSession]\n );\n\n const value = useMemo<MonoCloudAuth>(\n () => ({\n ...state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n }),\n [\n state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n ]\n );\n\n return (\n <MonoCloudClientContext.Provider value={client}>\n <MonoCloudProcessCallbackContext.Provider value={processCallback}>\n <MonoCloudAuthContext.Provider value={value}>\n {children}\n </MonoCloudAuthContext.Provider>\n </MonoCloudProcessCallbackContext.Provider>\n </MonoCloudClientContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -31,7 +31,7 @@ import React from "react";
31
31
  * "use client";
32
32
  *
33
33
  * import { MonoCloudAuthProvider } from "@monocloud/auth-react";
34
- * import { useNavigate } from "react-router-dom";
34
+ * import { useNavigate } from "react-router";
35
35
  *
36
36
  * export default function Root() {
37
37
  * const navigate = useNavigate();
@@ -36,7 +36,7 @@ const initialState = {
36
36
  * "use client";
37
37
  *
38
38
  * import { MonoCloudAuthProvider } from "@monocloud/auth-react";
39
- * import { useNavigate } from "react-router-dom";
39
+ * import { useNavigate } from "react-router";
40
40
  *
41
41
  * export default function Root() {
42
42
  * const navigate = useNavigate();
@@ -1 +1 @@
1
- {"version":3,"file":"monocloud-auth-provider.mjs","names":[],"sources":["../src/monocloud-auth-provider.tsx"],"sourcesContent":["'use client';\n\nimport {\n MonoCloudWebJSClient,\n type GetTokensOptions,\n type MonoCloudSession,\n type MonoCloudTokens,\n type RefreshOptions,\n type SignInOptions,\n type SignInSilentOptions,\n type SignOutOptions,\n} from '@monocloud/auth-web-js';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n MonoCloudAuthContext,\n MonoCloudClientContext,\n MonoCloudProcessCallbackContext,\n} from './context';\nimport type {\n AuthState,\n MonoCloudAuth,\n MonoCloudAuthProviderProps,\n} from './types';\n\nconst initialState: AuthState = {\n isLoading: true,\n isAuthenticated: false,\n};\n\n/**\n * `<MonoCloudAuthProvider>` initializes the MonoCloud JavaScript client and makes\n * the authentication state and actions available through {@link useAuth}.\n *\n * @example Basic setup\n *\n * ```tsx:src/main.tsx tab=\"Basic setup\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n *\n * export default function Root() {\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @example Client-side router navigation\n *\n * ```tsx:src/main.tsx tab=\"Client-side router navigation\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n * import { useNavigate } from \"react-router-dom\";\n *\n * export default function Root() {\n * const navigate = useNavigate();\n *\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * autoProcessCallback={false}\n * postCallback={state => navigate(state.returnUrl ?? \"/\")}\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @param props - Props for configuring the provider and the underlying client.\n * @returns The provider element wrapping `children`.\n *\n * @category Components\n */\nexport const MonoCloudAuthProvider = ({\n children,\n autoProcessCallback = true,\n ...clientOptions\n}: MonoCloudAuthProviderProps): React.JSX.Element => {\n const [state, setState] = useState<AuthState>(initialState);\n\n const [client] = useState<MonoCloudWebJSClient>(\n () => new MonoCloudWebJSClient(clientOptions)\n );\n\n const syncSession = useCallback(async (): Promise<void> => {\n const session = await client.getSession();\n setState({\n isLoading: false,\n isAuthenticated: !!session,\n user: session?.user,\n session,\n error: undefined,\n });\n }, [client]);\n\n const processCallback = useCallback(async (): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n\n try {\n await client.processCallback();\n await syncSession();\n } catch (e) {\n setState({\n isLoading: false,\n isAuthenticated: false,\n user: undefined,\n session: undefined,\n error: e as Error,\n });\n throw e;\n }\n }, [client, syncSession]);\n\n const initialized = useRef(false);\n useEffect(() => {\n /* v8 ignore start -- StrictMode double-invocation guard */\n if (initialized.current) {\n return;\n }\n /* v8 ignore stop */\n initialized.current = true;\n\n if (autoProcessCallback) {\n processCallback().catch(() => {});\n } else {\n syncSession();\n }\n }, [autoProcessCallback, processCallback, syncSession]);\n\n const signIn = useCallback(\n async (signInOptions?: SignInOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signIn(signInOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signOut = useCallback(\n async (signOutOptions?: SignOutOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signOut(signOutOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signInSilent = useCallback(\n async (\n signInSilentOptions?: SignInSilentOptions\n ): Promise<MonoCloudSession> => {\n const session = await client.signInSilent(signInSilentOptions);\n await syncSession();\n return session;\n },\n [client, syncSession]\n );\n\n const refreshSession = useCallback(\n async (refreshOptions?: RefreshOptions): Promise<void> => {\n await client.refreshSession(refreshOptions);\n await syncSession();\n },\n [client, syncSession]\n );\n\n const refetchUserInfo = useCallback(async (): Promise<void> => {\n await client.refetchUserInfo();\n await syncSession();\n }, [client, syncSession]);\n\n const getTokens = useCallback(\n async (options?: GetTokensOptions): Promise<MonoCloudTokens> => {\n const tokens = await client.getTokens(options);\n await syncSession();\n return tokens;\n },\n [client, syncSession]\n );\n\n const value = useMemo<MonoCloudAuth>(\n () => ({\n ...state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n }),\n [\n state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n ]\n );\n\n return (\n <MonoCloudClientContext.Provider value={client}>\n <MonoCloudProcessCallbackContext.Provider value={processCallback}>\n <MonoCloudAuthContext.Provider value={value}>\n {children}\n </MonoCloudAuthContext.Provider>\n </MonoCloudProcessCallbackContext.Provider>\n </MonoCloudClientContext.Provider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"monocloud-auth-provider.mjs","names":[],"sources":["../src/monocloud-auth-provider.tsx"],"sourcesContent":["'use client';\n\nimport {\n MonoCloudWebJSClient,\n type GetTokensOptions,\n type MonoCloudSession,\n type MonoCloudTokens,\n type RefreshOptions,\n type SignInOptions,\n type SignInSilentOptions,\n type SignOutOptions,\n} from '@monocloud/auth-web-js';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n MonoCloudAuthContext,\n MonoCloudClientContext,\n MonoCloudProcessCallbackContext,\n} from './context';\nimport type {\n AuthState,\n MonoCloudAuth,\n MonoCloudAuthProviderProps,\n} from './types';\n\nconst initialState: AuthState = {\n isLoading: true,\n isAuthenticated: false,\n};\n\n/**\n * `<MonoCloudAuthProvider>` initializes the MonoCloud JavaScript client and makes\n * the authentication state and actions available through {@link useAuth}.\n *\n * @example Basic setup\n *\n * ```tsx:src/main.tsx tab=\"Basic setup\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n *\n * export default function Root() {\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @example Client-side router navigation\n *\n * ```tsx:src/main.tsx tab=\"Client-side router navigation\" tab-group=\"MonoCloudAuthProvider\"\n * \"use client\";\n *\n * import { MonoCloudAuthProvider } from \"@monocloud/auth-react\";\n * import { useNavigate } from \"react-router\";\n *\n * export default function Root() {\n * const navigate = useNavigate();\n *\n * return (\n * <MonoCloudAuthProvider\n * tenantDomain=\"https://your-tenant-domain\"\n * clientId=\"your-client-id\"\n * autoProcessCallback={false}\n * postCallback={state => navigate(state.returnUrl ?? \"/\")}\n * >\n * <App />\n * </MonoCloudAuthProvider>\n * );\n * }\n * ```\n *\n * @param props - Props for configuring the provider and the underlying client.\n * @returns The provider element wrapping `children`.\n *\n * @category Components\n */\nexport const MonoCloudAuthProvider = ({\n children,\n autoProcessCallback = true,\n ...clientOptions\n}: MonoCloudAuthProviderProps): React.JSX.Element => {\n const [state, setState] = useState<AuthState>(initialState);\n\n const [client] = useState<MonoCloudWebJSClient>(\n () => new MonoCloudWebJSClient(clientOptions)\n );\n\n const syncSession = useCallback(async (): Promise<void> => {\n const session = await client.getSession();\n setState({\n isLoading: false,\n isAuthenticated: !!session,\n user: session?.user,\n session,\n error: undefined,\n });\n }, [client]);\n\n const processCallback = useCallback(async (): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n\n try {\n await client.processCallback();\n await syncSession();\n } catch (e) {\n setState({\n isLoading: false,\n isAuthenticated: false,\n user: undefined,\n session: undefined,\n error: e as Error,\n });\n throw e;\n }\n }, [client, syncSession]);\n\n const initialized = useRef(false);\n useEffect(() => {\n /* v8 ignore start -- StrictMode double-invocation guard */\n if (initialized.current) {\n return;\n }\n /* v8 ignore stop */\n initialized.current = true;\n\n if (autoProcessCallback) {\n processCallback().catch(() => {});\n } else {\n syncSession();\n }\n }, [autoProcessCallback, processCallback, syncSession]);\n\n const signIn = useCallback(\n async (signInOptions?: SignInOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signIn(signInOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signOut = useCallback(\n async (signOutOptions?: SignOutOptions): Promise<void> => {\n setState(prev => ({ ...prev, isLoading: true }));\n try {\n await client.signOut(signOutOptions);\n await syncSession();\n } catch (e) {\n setState(prev => ({ ...prev, isLoading: false, error: e as Error }));\n }\n },\n [client, syncSession]\n );\n\n const signInSilent = useCallback(\n async (\n signInSilentOptions?: SignInSilentOptions\n ): Promise<MonoCloudSession> => {\n const session = await client.signInSilent(signInSilentOptions);\n await syncSession();\n return session;\n },\n [client, syncSession]\n );\n\n const refreshSession = useCallback(\n async (refreshOptions?: RefreshOptions): Promise<void> => {\n await client.refreshSession(refreshOptions);\n await syncSession();\n },\n [client, syncSession]\n );\n\n const refetchUserInfo = useCallback(async (): Promise<void> => {\n await client.refetchUserInfo();\n await syncSession();\n }, [client, syncSession]);\n\n const getTokens = useCallback(\n async (options?: GetTokensOptions): Promise<MonoCloudTokens> => {\n const tokens = await client.getTokens(options);\n await syncSession();\n return tokens;\n },\n [client, syncSession]\n );\n\n const value = useMemo<MonoCloudAuth>(\n () => ({\n ...state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n }),\n [\n state,\n signIn,\n signOut,\n signInSilent,\n refreshSession,\n refetchUserInfo,\n getTokens,\n ]\n );\n\n return (\n <MonoCloudClientContext.Provider value={client}>\n <MonoCloudProcessCallbackContext.Provider value={processCallback}>\n <MonoCloudAuthContext.Provider value={value}>\n {children}\n </MonoCloudAuthContext.Provider>\n </MonoCloudProcessCallbackContext.Provider>\n </MonoCloudClientContext.Provider>\n );\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monocloud/auth-react",
3
- "version": "0.1.1-canary-20260605070528",
3
+ "version": "0.1.1",
4
4
  "description": "MonoCloud React Authentication SDK",
5
5
  "keywords": [
6
6
  "monocloud",
@@ -39,7 +39,7 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@monocloud/auth-web-js": "0.1.3-canary-20260605070528"
42
+ "@monocloud/auth-web-js": "0.1.3"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@testing-library/dom": "10.4.1",