@passkeyme/react-auth 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.
Files changed (70) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/LICENSE +21 -0
  3. package/README.md +951 -0
  4. package/dist/components/DevToolsDashboard.d.ts +18 -0
  5. package/dist/components/DevToolsDashboard.d.ts.map +1 -0
  6. package/dist/components/LazyComponents.d.ts +22 -0
  7. package/dist/components/LazyComponents.d.ts.map +1 -0
  8. package/dist/components/NotificationProvider.d.ts +31 -0
  9. package/dist/components/NotificationProvider.d.ts.map +1 -0
  10. package/dist/components/PasskeymeAuthPanel.d.ts +121 -0
  11. package/dist/components/PasskeymeAuthPanel.d.ts.map +1 -0
  12. package/dist/components/PasskeymeButton.d.ts +64 -0
  13. package/dist/components/PasskeymeButton.d.ts.map +1 -0
  14. package/dist/components/PasskeymeCallbackHandler.d.ts +50 -0
  15. package/dist/components/PasskeymeCallbackHandler.d.ts.map +1 -0
  16. package/dist/components/PasskeymeErrorDisplay.d.ts +28 -0
  17. package/dist/components/PasskeymeErrorDisplay.d.ts.map +1 -0
  18. package/dist/components/PasskeymeLoadingIndicator.d.ts +34 -0
  19. package/dist/components/PasskeymeLoadingIndicator.d.ts.map +1 -0
  20. package/dist/components/PasskeymeOAuthButton.d.ts +8 -0
  21. package/dist/components/PasskeymeOAuthButton.d.ts.map +1 -0
  22. package/dist/components/PasskeymeProtectedRoute.d.ts +16 -0
  23. package/dist/components/PasskeymeProtectedRoute.d.ts.map +1 -0
  24. package/dist/components/PasskeymeProvider.d.ts +24 -0
  25. package/dist/components/PasskeymeProvider.d.ts.map +1 -0
  26. package/dist/components/PasskeymeUserProfile.d.ts +31 -0
  27. package/dist/components/PasskeymeUserProfile.d.ts.map +1 -0
  28. package/dist/components/PerformanceDashboard.d.ts +30 -0
  29. package/dist/components/PerformanceDashboard.d.ts.map +1 -0
  30. package/dist/components/VirtualScrollList.d.ts +105 -0
  31. package/dist/components/VirtualScrollList.d.ts.map +1 -0
  32. package/dist/hooks/useAuthUtils.d.ts +26 -0
  33. package/dist/hooks/useAuthUtils.d.ts.map +1 -0
  34. package/dist/hooks/useLoadingState.d.ts +31 -0
  35. package/dist/hooks/useLoadingState.d.ts.map +1 -0
  36. package/dist/hooks/usePerformanceMonitor.d.ts +41 -0
  37. package/dist/hooks/usePerformanceMonitor.d.ts.map +1 -0
  38. package/dist/hooks/useUsernameManager.d.ts +62 -0
  39. package/dist/hooks/useUsernameManager.d.ts.map +1 -0
  40. package/dist/index.d.ts +85 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.esm.js +8734 -0
  43. package/dist/index.esm.js.map +1 -0
  44. package/dist/index.js +8827 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/types.d.ts +249 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/utils/analytics.d.ts +112 -0
  49. package/dist/utils/analytics.d.ts.map +1 -0
  50. package/dist/utils/debug.d.ts +9 -0
  51. package/dist/utils/debug.d.ts.map +1 -0
  52. package/dist/utils/devUtils.d.ts +53 -0
  53. package/dist/utils/devUtils.d.ts.map +1 -0
  54. package/dist/utils/enhancedButtonStyles.d.ts +70 -0
  55. package/dist/utils/enhancedButtonStyles.d.ts.map +1 -0
  56. package/dist/utils/importOptimizer.d.ts +79 -0
  57. package/dist/utils/importOptimizer.d.ts.map +1 -0
  58. package/dist/utils/loadingStates.d.ts +35 -0
  59. package/dist/utils/loadingStates.d.ts.map +1 -0
  60. package/dist/utils/logger.d.ts +41 -0
  61. package/dist/utils/logger.d.ts.map +1 -0
  62. package/dist/utils/performanceProfiler.d.ts +80 -0
  63. package/dist/utils/performanceProfiler.d.ts.map +1 -0
  64. package/dist/utils/reactCompat.d.ts +6 -0
  65. package/dist/utils/reactCompat.d.ts.map +1 -0
  66. package/dist/utils/storageOptimization.d.ts +173 -0
  67. package/dist/utils/storageOptimization.d.ts.map +1 -0
  68. package/dist/utils/testingUtils.d.ts +163 -0
  69. package/dist/utils/testingUtils.d.ts.map +1 -0
  70. package/package.json +93 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Virtual Scrolling List Component for Large Data Sets
3
+ *
4
+ * This component implements virtual scrolling to efficiently render large lists
5
+ * by only rendering visible items and a small buffer around them.
6
+ */
7
+ import React from "react";
8
+ export interface VirtualScrollItem {
9
+ id: string | number;
10
+ data: any;
11
+ }
12
+ export interface VirtualScrollListProps {
13
+ /**
14
+ * Array of items to render
15
+ */
16
+ items: VirtualScrollItem[];
17
+ /**
18
+ * Height of each item in pixels
19
+ */
20
+ itemHeight: number;
21
+ /**
22
+ * Height of the container in pixels
23
+ */
24
+ containerHeight: number;
25
+ /**
26
+ * Number of items to render outside the visible area (buffer)
27
+ */
28
+ overscan?: number;
29
+ /**
30
+ * Function to render each item
31
+ */
32
+ renderItem: (item: VirtualScrollItem, index: number, style: React.CSSProperties) => React.ReactNode;
33
+ /**
34
+ * Optional loading state
35
+ */
36
+ loading?: boolean;
37
+ /**
38
+ * Optional empty state component
39
+ */
40
+ emptyComponent?: React.ReactNode;
41
+ /**
42
+ * Optional loading component
43
+ */
44
+ loadingComponent?: React.ReactNode;
45
+ /**
46
+ * Callback when user scrolls near the end (for infinite loading)
47
+ */
48
+ onEndReached?: () => void;
49
+ /**
50
+ * Distance from the end to trigger onEndReached
51
+ */
52
+ endReachedThreshold?: number;
53
+ /**
54
+ * Custom styles for the container
55
+ */
56
+ style?: React.CSSProperties;
57
+ /**
58
+ * Custom className for the container
59
+ */
60
+ className?: string;
61
+ }
62
+ /**
63
+ * Virtual Scrolling List Component
64
+ *
65
+ * Efficiently renders large lists by only rendering visible items.
66
+ * Ideal for lists with hundreds or thousands of items.
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * const items = Array.from({ length: 10000 }, (_, i) => ({
71
+ * id: i,
72
+ * data: { name: `Item ${i}`, value: i * 2 }
73
+ * }));
74
+ *
75
+ * <VirtualScrollList
76
+ * items={items}
77
+ * itemHeight={50}
78
+ * containerHeight={400}
79
+ * renderItem={(item, index, style) => (
80
+ * <div key={item.id} style={style}>
81
+ * {item.data.name}: {item.data.value}
82
+ * </div>
83
+ * )}
84
+ * />
85
+ * ```
86
+ */
87
+ export declare const VirtualScrollList: React.MemoExoticComponent<({ items, itemHeight, containerHeight, overscan, renderItem, loading, emptyComponent, loadingComponent, onEndReached, endReachedThreshold, style, className, }: VirtualScrollListProps) => import("react/jsx-runtime").JSX.Element>;
88
+ /**
89
+ * Hook for creating virtual scroll lists with additional features
90
+ */
91
+ export declare const useVirtualScrollList: (initialItems?: VirtualScrollItem[], itemHeight?: number, containerHeight?: number) => {
92
+ items: VirtualScrollItem[];
93
+ setItems: React.Dispatch<React.SetStateAction<VirtualScrollItem[]>>;
94
+ addItems: (newItems: VirtualScrollItem[]) => void;
95
+ prependItems: (newItems: VirtualScrollItem[]) => void;
96
+ updateItem: (id: string | number, data: any) => void;
97
+ removeItem: (id: string | number) => void;
98
+ clearItems: () => void;
99
+ loading: boolean;
100
+ setLoading: React.Dispatch<React.SetStateAction<boolean>>;
101
+ itemHeight: number;
102
+ containerHeight: number;
103
+ };
104
+ export default VirtualScrollList;
105
+ //# sourceMappingURL=VirtualScrollList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualScrollList.d.ts","sourceRoot":"","sources":["../../src/components/VirtualScrollList.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,CACV,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,aAAa,KACvB,KAAK,CAAC,SAAS,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEnC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,4LAczB,sBAAsB,6CA6H1B,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,oBAAoB,kBACjB,iBAAiB,EAAE,eACrB,MAAM,oBACD,MAAM;;;yBAKiB,iBAAiB,EAAE;6BAIf,iBAAiB,EAAE;qBAI3B,MAAM,GAAG,MAAM,QAAQ,GAAG;qBAM1B,MAAM,GAAG,MAAM;;;;;;CAqBpD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Convenience hooks that split the main usePasskeyme hook
3
+ * These are React-specific convenience utilities
4
+ */
5
+ /**
6
+ * Hook to get only the authentication state
7
+ */
8
+ export declare const useAuthState: () => {
9
+ user: import("@passkeyme/auth").User | null;
10
+ loading: boolean;
11
+ error: string | null;
12
+ isAuthenticated: boolean;
13
+ };
14
+ /**
15
+ * Hook to get only the authentication methods
16
+ */
17
+ export declare const useAuth: () => {
18
+ redirectToLogin: (options?: import("@passkeyme/auth").LoginOptions | undefined) => void;
19
+ redirectToOAuth: (provider: "google" | "github" | "facebook", redirectUri?: string | undefined) => void;
20
+ handleAuthCallback: () => Promise<import("@passkeyme/auth").User>;
21
+ handleCallback: () => Promise<import("@passkeyme/auth").User>;
22
+ logout: () => Promise<void>;
23
+ getAccessToken: () => Promise<string | null>;
24
+ refreshToken: () => Promise<string>;
25
+ };
26
+ //# sourceMappingURL=useAuthUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthUtils.d.ts","sourceRoot":"","sources":["../../src/hooks/useAuthUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CASxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;CAoBnB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * React hook for managing granular loading states
3
+ */
4
+ import { PasskeymeLoadingState, PasskeymeLoadingStateInfo, LoadingStateManager } from "../utils/loadingStates";
5
+ export interface UseLoadingStateOptions {
6
+ /** Whether to use global loading state manager */
7
+ useGlobal?: boolean;
8
+ /** Initial loading state */
9
+ initialState?: PasskeymeLoadingState;
10
+ /** Callback when state changes */
11
+ onStateChange?: (state: PasskeymeLoadingStateInfo) => void;
12
+ }
13
+ export interface UseLoadingStateReturn {
14
+ /** Current loading state info */
15
+ loadingState: PasskeymeLoadingStateInfo;
16
+ /** Set loading state */
17
+ setLoadingState: (state: PasskeymeLoadingState, customMessage?: string) => void;
18
+ /** Check if currently loading */
19
+ isLoading: boolean;
20
+ /** Check if user action is required */
21
+ isUserActionRequired: boolean;
22
+ /** Get elapsed time since loading started */
23
+ getElapsedTime: () => number;
24
+ /** Reset to idle state */
25
+ reset: () => void;
26
+ /** Loading state manager instance */
27
+ manager: LoadingStateManager;
28
+ }
29
+ export declare const useLoadingState: (options?: UseLoadingStateOptions) => UseLoadingStateReturn;
30
+ export default useLoadingState;
31
+ //# sourceMappingURL=useLoadingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadingState.d.ts","sourceRoot":"","sources":["../../src/hooks/useLoadingState.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB;IACpC,iCAAiC;IACjC,YAAY,EAAE,yBAAyB,CAAC;IACxC,wBAAwB;IACxB,eAAe,EAAE,CACf,KAAK,EAAE,qBAAqB,EAC5B,aAAa,CAAC,EAAE,MAAM,KACnB,IAAI,CAAC;IACV,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,6CAA6C;IAC7C,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qCAAqC;IACrC,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,aACjB,sBAAsB,KAC9B,qBAqDF,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Performance monitoring utilities for PasskeyMe React SDK
3
+ */
4
+ export interface PerformanceMetrics {
5
+ renderTime: number;
6
+ mountTime: number;
7
+ updateCount: number;
8
+ rerenderReasons?: string[];
9
+ }
10
+ /**
11
+ * Hook to monitor component performance
12
+ */
13
+ export declare const usePerformanceMonitor: (componentName: string, enabled?: boolean) => {
14
+ metrics: PerformanceMetrics;
15
+ startMeasurement: () => void;
16
+ endMeasurement: () => void;
17
+ };
18
+ /**
19
+ * Hook to track API request performance
20
+ */
21
+ export declare const useApiPerformanceMonitor: () => {
22
+ apiMetrics: {
23
+ requestCount: number;
24
+ averageResponseTime: number;
25
+ slowRequests: number;
26
+ };
27
+ trackRequest: (url: string, duration: number) => void;
28
+ };
29
+ /**
30
+ * Hook to measure memory usage (Chrome DevTools only)
31
+ */
32
+ export declare const useMemoryMonitor: (enabled?: boolean) => {
33
+ usedJSMemory?: number | undefined;
34
+ totalJSMemory?: number | undefined;
35
+ jsMemoryLimit?: number | undefined;
36
+ };
37
+ /**
38
+ * Development helper to log render reasons
39
+ */
40
+ export declare const useWhyDidYouUpdate: (name: string, props: Record<string, any>) => void;
41
+ //# sourceMappingURL=usePerformanceMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePerformanceMonitor.d.ts","sourceRoot":"","sources":["../../src/hooks/usePerformanceMonitor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,kBACjB,MAAM;;;;CA8DtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB;;sBAEnB,MAAM;6BACC,MAAM;sBACb,MAAM;;wBAOiB,MAAM,YAAY,MAAM;CA0BhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;CA+B5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,SACvB,MAAM,SACL,OAAO,MAAM,EAAE,GAAG,CAAC,SAyB3B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Username Management Hook
3
+ * Extracted from SmartLoginWithUsernameManager component
4
+ */
5
+ export interface UseUsernameManagerOptions {
6
+ /** Initial username to load */
7
+ initialUsername?: string;
8
+ /** Whether to remember username across sessions (default: true) */
9
+ rememberUsername?: boolean;
10
+ /** Custom storage key (default: 'passkeyme_last_username') */
11
+ storageKey?: string;
12
+ /** App ID to scope username storage (default: from config) */
13
+ appId?: string;
14
+ }
15
+ export interface UseUsernameManagerReturn {
16
+ /** Current username */
17
+ username: string;
18
+ /** Set the username */
19
+ setUsername: (username: string) => void;
20
+ /** Whether to remember the username */
21
+ rememberUsername: boolean;
22
+ /** Set whether to remember the username */
23
+ setRememberUsername: (remember: boolean) => void;
24
+ /** Whether to show username input */
25
+ showUsernameInput: boolean;
26
+ /** Set whether to show username input */
27
+ setShowUsernameInput: (show: boolean) => void;
28
+ /** Save username to storage */
29
+ saveUsername: (username: string) => void;
30
+ /** Clear saved username */
31
+ clearSavedUsername: () => void;
32
+ /** Handle successful authentication (saves username) */
33
+ handleAuthSuccess: (user: any, method: string) => void;
34
+ /** Reset username state */
35
+ resetUsername: () => void;
36
+ /** Get the effective storage key */
37
+ getStorageKey: () => string;
38
+ }
39
+ /**
40
+ * Hook for managing username persistence and state
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const {
45
+ * username,
46
+ * setUsername,
47
+ * rememberUsername,
48
+ * setRememberUsername,
49
+ * showUsernameInput,
50
+ * setShowUsernameInput,
51
+ * saveUsername,
52
+ * clearSavedUsername,
53
+ * handleAuthSuccess
54
+ * } = useUsernameManager({
55
+ * rememberUsername: true,
56
+ * storageKey: 'my_app_username'
57
+ * });
58
+ * ```
59
+ */
60
+ export declare function useUsernameManager({ initialUsername, rememberUsername: initialRememberUsername, storageKey, appId, }?: UseUsernameManagerOptions): UseUsernameManagerReturn;
61
+ export default useUsernameManager;
62
+ //# sourceMappingURL=useUsernameManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUsernameManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useUsernameManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,yBAAyB;IACxC,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yCAAyC;IACzC,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,2BAA2B;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,wDAAwD;IACxD,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,2BAA2B;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,oCAAoC;IACpC,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,eAAoB,EACpB,gBAAgB,EAAE,uBAA8B,EAChD,UAAgC,EAChC,KAAK,GACN,GAAE,yBAA8B,GAAG,wBAAwB,CAsF3D;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * PasskeyMe React Authentication SDK
3
+ *
4
+ * React integration for PasskeyMe Authentication with hooks and components.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * import { PasskeymeProvider, usePasskeyme } from '@passkeyme/react-auth';
9
+ *
10
+ * function App() {
11
+ * return (
12
+ * <PasskeymeProvider
13
+ * config={{
14
+ * appId: 'your-app-id',
15
+ * redirectUri: 'http://localhost:3000/callback'
16
+ * }}
17
+ * >
18
+ * <Dashboard />
19
+ * </PasskeymeProvider>
20
+ * );
21
+ * }
22
+ *
23
+ * function Dashboard() {
24
+ * const { user, loginWithOAuth, logout } = usePasskeyme();
25
+ *
26
+ * if (!user) {
27
+ * return <button onClick={() => loginWithOAuth('google')}>Login</button>;
28
+ * }
29
+ *
30
+ * return (
31
+ * <div>
32
+ * <p>Welcome, {user.name}!</p>
33
+ * <button onClick={logout}>Logout</button>
34
+ * </div>
35
+ * );
36
+ * }
37
+ * ```
38
+ */
39
+ export { PasskeymeProvider } from "./components/PasskeymeProvider";
40
+ export { usePasskeymeContext, usePasskeyme } from "@passkeyme/react-core";
41
+ export { useLoadingState } from "./hooks/useLoadingState";
42
+ export { useAuthState, useAuth } from "./hooks/useAuthUtils";
43
+ export { useUsernameManager } from "./hooks/useUsernameManager";
44
+ export type { UseUsernameManagerOptions, UseUsernameManagerReturn, } from "./hooks/useUsernameManager";
45
+ export { PasskeymeOAuthButton } from "./components/PasskeymeOAuthButton";
46
+ export { PasskeymeButton } from "./components/PasskeymeButton";
47
+ export { PasskeymeUserProfile } from "./components/PasskeymeUserProfile";
48
+ export { PasskeymeAuthPanel } from "./components/PasskeymeAuthPanel";
49
+ export type { PasskeymeAuthPanelProps, PasskeymeAuthPanelTheme, } from "./components/PasskeymeAuthPanel";
50
+ export { PasskeymeCallbackHandler } from "./components/PasskeymeCallbackHandler";
51
+ export { PasskeymeErrorDisplay } from "./components/PasskeymeErrorDisplay";
52
+ export { PasskeymeLoadingIndicator } from "./components/PasskeymeLoadingIndicator";
53
+ export { PasskeymeProtectedRoute, withAuth, } from "./components/PasskeymeProtectedRoute";
54
+ export { NotificationProvider, useNotifications, } from "./components/NotificationProvider";
55
+ export { usePerformanceMonitor, useApiPerformanceMonitor, useMemoryMonitor, } from "./hooks/usePerformanceMonitor";
56
+ export { DebugPanel, withPerformanceProfiler } from "./utils/devUtils";
57
+ export { PasskeymeErrorDisplayLazy, PasskeymeLoadingIndicatorLazy, createLazyComponent, } from "./components/LazyComponents";
58
+ export { PasskeymeProfiler, PerformanceStats, PerformanceDashboard, performanceStore, usePerformanceStats, withProfiler, } from "./utils/performanceProfiler";
59
+ export type { ProfilerData, ProfilerOptions, PasskeymeProfilerProps, PerformanceStatsProps, } from "./utils/performanceProfiler";
60
+ export { PerformanceDashboard as PerfDashboard, PerformanceIndicator, } from "./components/PerformanceDashboard";
61
+ export type { PerformanceMetrics, PerformanceDashboardProps, } from "./components/PerformanceDashboard";
62
+ export { OptimizedStorage, RequestCache, SessionStorage, storage, requestCache, sessionStorage, useOptimizedStorage, useRequestCache, useSessionStorage, } from "./utils/storageOptimization";
63
+ export type { CacheEntry, CacheOptions } from "./utils/storageOptimization";
64
+ export { ImportAnalyzer, BundleOptimizer, generateOptimizationReport, checkRuntimeDependencies, } from "./utils/importOptimizer";
65
+ export type { ImportAnalysis, OptimizationSuggestion, } from "./utils/importOptimizer";
66
+ export { useAnalytics, AnalyticsProvider, PasskeymeErrorBoundary, withErrorBoundary, createUsageTracker, createPerformanceTracker, } from "./utils/analytics";
67
+ export type { AnalyticsEvent, AnalyticsConfig, PerformanceMetric, ErrorReport, AnalyticsProviderProps, PasskeymeErrorBoundaryProps, } from "./utils/analytics";
68
+ export { MockPasskeymeProvider, createRenderWithPasskeymeProvider, accessibilityTestHelpers, performanceTestHelpers, mockAuthResponses, visualRegressionHelpers, e2eTestHelpers, createMockUser, createMockConfig, } from "./utils/testingUtils";
69
+ export type { TestingProviderProps, MockUser } from "./utils/testingUtils";
70
+ export { logComponentTree } from "./utils/devUtils";
71
+ export { getEnhancedButtonStyles, getButtonIconStyles, getLoadingSpinnerStyles, buttonPresets, } from "./utils/enhancedButtonStyles";
72
+ export type { ButtonVariant, ButtonSize, ButtonStyleOptions, ButtonStyles, } from "./utils/enhancedButtonStyles";
73
+ export type { PasskeymeProviderProps, UsePasskeymeReturn, PasskeymeOAuthButtonProps, PasskeymeButtonProps, PasskeymeUserProfileProps, PasskeymeProtectedRouteProps, PasskeymeCallbackHandlerProps, } from "./types";
74
+ export type { PasskeymeErrorDisplayProps } from "./components/PasskeymeErrorDisplay";
75
+ export type { PasskeymeLoadingState, PasskeymeLoadingStateInfo, } from "./utils/loadingStates";
76
+ export type { UseLoadingStateOptions, UseLoadingStateReturn, } from "./hooks/useLoadingState";
77
+ export type { PasskeymeLoadingIndicatorProps } from "./components/PasskeymeLoadingIndicator";
78
+ export type { PasskeymeConfig, User, AuthState, LoginOptions, AuthEvent, AuthEventListener, ApiError, AppConfiguration, } from "@passkeyme/auth";
79
+ export { PasskeymeError, PasskeymeErrorCode, ErrorHandler, } from "@passkeyme/auth";
80
+ export type { PasskeymeErrorDetails } from "@passkeyme/auth";
81
+ export { DevToolsDashboard } from "./components/DevToolsDashboard";
82
+ export { devWarn, devError, validateProps, withDevTools, initDevTools, enableHotReload, } from "./utils/devUtils";
83
+ export { VirtualScrollList, useVirtualScrollList, } from "./components/VirtualScrollList";
84
+ export type { VirtualScrollItem, VirtualScrollListProps, } from "./components/VirtualScrollList";
85
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}