@emblemvault/emblem-auth-react 1.0.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 +132 -0
- package/dist/components/index.cjs +909 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +49 -0
- package/dist/components/index.d.ts +49 -0
- package/dist/components/index.js +906 -0
- package/dist/components/index.js.map +1 -0
- package/dist/hooks/index.cjs +204 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.cts +135 -0
- package/dist/hooks/index.d.ts +135 -0
- package/dist/hooks/index.js +199 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.cjs +1146 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +1134 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/index.cjs +199 -0
- package/dist/providers/index.cjs.map +1 -0
- package/dist/providers/index.d.cts +3 -0
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.js +195 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/providers/EmblemAuthProvider.tsx"],"names":["existingSession"],"mappings":"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","file":"index.js","sourcesContent":["'use client';\n\nimport React, {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n useRef,\n} from 'react';\nimport { EmblemAuthSDK } from 'emblem-auth-sdk';\nimport type {\n AuthSession,\n VaultInfo,\n EmblemAuthContextValue,\n EmblemAuthProviderProps,\n} from '../types';\n\n/**\n * Global SDK instance to prevent multiple initializations\n * This is important for React strict mode and hot reloading\n */\nlet globalSDKInstance: EmblemAuthSDK | null = null;\nlet isSDKInitializing = false;\n\n/**\n * Auth context - undefined when not within provider\n */\nconst EmblemAuthContext = createContext<EmblemAuthContextValue | undefined>(undefined);\n\n/**\n * EmblemAuthProvider - Provides authentication state and actions to the app\n *\n * This is a first-class citizen - it has no dependency on Hustle SDK.\n * The Hustle SDK depends on this provider for authentication.\n *\n * @example\n * ```tsx\n * <EmblemAuthProvider\n * appId=\"your-app-id\"\n * apiUrl=\"https://api.emblemvault.ai\"\n * modalUrl=\"https://auth.emblemvault.ai/connect\"\n * >\n * <App />\n * </EmblemAuthProvider>\n * ```\n */\nexport function EmblemAuthProvider({\n children,\n appId,\n apiUrl,\n modalUrl,\n debug = false,\n}: EmblemAuthProviderProps) {\n // State\n const [session, setSession] = useState<AuthSession | null>(null);\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [vaultInfo, setVaultInfo] = useState<VaultInfo | null>(null);\n const [authSDK, setAuthSDK] = useState<EmblemAuthSDK | null>(globalSDKInstance);\n\n // Track if we've initialized\n const initialized = useRef(false);\n\n // Debug logger\n const log = useCallback(\n (message: string, ...args: unknown[]) => {\n if (debug) {\n console.log(`[EmblemAuth] ${message}`, ...args);\n }\n },\n [debug]\n );\n\n /**\n * Fetch vault info after authentication\n */\n const fetchVaultInfo = useCallback(\n async (sdk: EmblemAuthSDK) => {\n try {\n const info = await sdk.getVaultInfo();\n if (info) {\n setVaultInfo(info);\n log('Vault info loaded:', info);\n }\n } catch (err) {\n log('Failed to fetch vault info:', err);\n }\n },\n [log]\n );\n\n /**\n * Handle successful authentication\n */\n const handleAuthSuccess = useCallback(\n (newSession: AuthSession, sdk: EmblemAuthSDK) => {\n log('Auth success - session:', newSession);\n setSession(newSession);\n setIsAuthenticated(true);\n setIsLoading(false);\n setError(null);\n fetchVaultInfo(sdk);\n },\n [log, fetchVaultInfo]\n );\n\n /**\n * Handle authentication error\n */\n const handleAuthError = useCallback(\n (err: Error) => {\n log('Auth error:', err);\n setError(err);\n setIsLoading(false);\n setIsAuthenticated(false);\n setSession(null);\n },\n [log]\n );\n\n /**\n * Handle session expiration\n */\n const handleSessionExpired = useCallback(() => {\n log('Session expired');\n setSession(null);\n setIsAuthenticated(false);\n setVaultInfo(null);\n }, [log]);\n\n /**\n * Initialize the SDK\n */\n useEffect(() => {\n // Prevent double initialization\n if (initialized.current || globalSDKInstance || isSDKInitializing) {\n if (globalSDKInstance && !authSDK) {\n setAuthSDK(globalSDKInstance);\n // Check for existing session\n const existingSession = globalSDKInstance.getSession();\n if (existingSession) {\n handleAuthSuccess(existingSession, globalSDKInstance);\n }\n }\n return;\n }\n\n initialized.current = true;\n isSDKInitializing = true;\n log('Initializing SDK with appId:', appId);\n\n // Create SDK instance\n const sdk = new EmblemAuthSDK({\n appId,\n apiUrl,\n modalUrl,\n onSuccess: (newSession) => {\n handleAuthSuccess(newSession as AuthSession, sdk);\n },\n onError: (err) => {\n handleAuthError(err);\n },\n });\n\n // Store globally and locally\n globalSDKInstance = sdk;\n isSDKInitializing = false;\n setAuthSDK(sdk);\n\n // Check for existing session\n const existingSession = sdk.getSession();\n if (existingSession) {\n log('Found existing session');\n handleAuthSuccess(existingSession as AuthSession, sdk);\n }\n\n // Subscribe to session events\n const handleSessionUpdate = (updatedSession: AuthSession | null) => {\n if (updatedSession) {\n setSession(updatedSession);\n setIsAuthenticated(true);\n } else {\n handleSessionExpired();\n }\n };\n\n sdk.on('session', handleSessionUpdate);\n sdk.on('sessionExpired', handleSessionExpired);\n\n // Cleanup\n return () => {\n sdk.off('session', handleSessionUpdate);\n sdk.off('sessionExpired', handleSessionExpired);\n };\n }, [appId, apiUrl, modalUrl, log, handleAuthSuccess, handleAuthError, handleSessionExpired, authSDK]);\n\n /**\n * Open the auth modal\n */\n const openAuthModal = useCallback(async () => {\n if (!authSDK) {\n setError(new Error('Auth SDK not initialized'));\n return;\n }\n\n log('Opening auth modal');\n setIsLoading(true);\n setError(null);\n\n try {\n await authSDK.openAuthModal();\n // Success is handled by onSuccess callback\n } catch (err) {\n setIsLoading(false);\n setError(err instanceof Error ? err : new Error('Failed to open auth modal'));\n }\n }, [authSDK, log]);\n\n /**\n * Logout and clear session\n */\n const logout = useCallback(() => {\n if (!authSDK) return;\n\n log('Logging out');\n authSDK.logout();\n setSession(null);\n setIsAuthenticated(false);\n setVaultInfo(null);\n setError(null);\n }, [authSDK, log]);\n\n /**\n * Refresh the current session\n */\n const refreshSession = useCallback(async (): Promise<AuthSession | null> => {\n if (!authSDK) return null;\n\n log('Refreshing session');\n try {\n const refreshedSession = await authSDK.refreshSession();\n if (refreshedSession) {\n setSession(refreshedSession as AuthSession);\n setIsAuthenticated(true);\n return refreshedSession as AuthSession;\n }\n return null;\n } catch (err) {\n log('Failed to refresh session:', err);\n setError(err instanceof Error ? err : new Error('Failed to refresh session'));\n return null;\n }\n }, [authSDK, log]);\n\n // Derived values\n const vaultId = session?.user?.vaultId ?? null;\n const walletAddress = session?.user?.evmAddress ?? null;\n\n // Context value\n const value: EmblemAuthContextValue = {\n // State\n session,\n isAuthenticated,\n isLoading,\n error,\n vaultInfo,\n\n // Derived\n vaultId,\n walletAddress,\n\n // Actions\n openAuthModal,\n logout,\n refreshSession,\n\n // For Hustle integration\n authSDK,\n };\n\n return (\n <EmblemAuthContext.Provider value={value}>\n {children}\n </EmblemAuthContext.Provider>\n );\n}\n\n/**\n * Hook to access auth context\n * Must be used within EmblemAuthProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { isAuthenticated, openAuthModal, logout } = useEmblemAuth();\n *\n * return isAuthenticated\n * ? <button onClick={logout}>Logout</button>\n * : <button onClick={openAuthModal}>Connect</button>;\n * }\n * ```\n */\nexport function useEmblemAuth(): EmblemAuthContextValue {\n const context = useContext(EmblemAuthContext);\n if (context === undefined) {\n throw new Error('useEmblemAuth must be used within an EmblemAuthProvider');\n }\n return context;\n}\n\n/**\n * Optional version of useEmblemAuth that returns null when used outside EmblemAuthProvider\n *\n * Use this when authentication is optional, such as when using HustleProvider\n * with direct API key authentication.\n *\n * @example\n * ```tsx\n * function OptionalAuthComponent() {\n * const auth = useEmblemAuthOptional();\n *\n * if (!auth) {\n * return <p>Auth not available</p>;\n * }\n *\n * return <p>Logged in as {auth.walletAddress}</p>;\n * }\n * ```\n */\nexport function useEmblemAuthOptional(): EmblemAuthContextValue | null {\n const context = useContext(EmblemAuthContext);\n return context ?? null;\n}\n\n/**\n * Reset the global SDK instance (useful for testing)\n */\nexport function resetAuthSDK(): void {\n globalSDKInstance = null;\n isSDKInitializing = false;\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@emblemvault/emblem-auth-react",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"type": "module",
|
|
8
|
+
"description": "React hooks and components for Emblem Auth integration",
|
|
9
|
+
"main": "dist/index.cjs",
|
|
10
|
+
"module": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./components": {
|
|
19
|
+
"types": "./dist/components/index.d.ts",
|
|
20
|
+
"import": "./dist/components/index.js",
|
|
21
|
+
"require": "./dist/components/index.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./hooks": {
|
|
24
|
+
"types": "./dist/hooks/index.d.ts",
|
|
25
|
+
"import": "./dist/hooks/index.js",
|
|
26
|
+
"require": "./dist/hooks/index.cjs"
|
|
27
|
+
},
|
|
28
|
+
"./providers": {
|
|
29
|
+
"types": "./dist/providers/index.d.ts",
|
|
30
|
+
"import": "./dist/providers/index.js",
|
|
31
|
+
"require": "./dist/providers/index.cjs"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsup",
|
|
39
|
+
"build:types": "tsc --emitDeclarationOnly",
|
|
40
|
+
"typecheck": "tsc --noEmit",
|
|
41
|
+
"test": "vitest run",
|
|
42
|
+
"test:watch": "vitest",
|
|
43
|
+
"clean": "rm -rf dist",
|
|
44
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"emblem-auth-sdk": "^1.0.0-alpha.6"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^18.3.1 || ^19.0.0",
|
|
51
|
+
"react-dom": "^18.3.1 || ^19.0.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@testing-library/react": "^16.3.1",
|
|
55
|
+
"@types/react": "^18.3.0",
|
|
56
|
+
"@types/react-dom": "^18.3.0",
|
|
57
|
+
"happy-dom": "^20.0.11",
|
|
58
|
+
"react": "^18.3.1",
|
|
59
|
+
"react-dom": "^18.3.1",
|
|
60
|
+
"tsup": "^8.0.0",
|
|
61
|
+
"typescript": "^5.3.0",
|
|
62
|
+
"vitest": "^4.0.16"
|
|
63
|
+
},
|
|
64
|
+
"keywords": [
|
|
65
|
+
"emblem",
|
|
66
|
+
"auth",
|
|
67
|
+
"react",
|
|
68
|
+
"hooks",
|
|
69
|
+
"web3",
|
|
70
|
+
"wallet"
|
|
71
|
+
],
|
|
72
|
+
"license": "MIT"
|
|
73
|
+
}
|