@passkeyme/react-auth 1.1.8 → 1.3.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/CHANGELOG.md +1 -1
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/components/DevToolsDashboard.d.ts +1 -1
- package/dist/components/NotificationProvider.d.ts +1 -1
- package/dist/components/PasskeymeAuthPanel.d.ts +1 -1
- package/dist/components/PasskeymeAuthPanel.d.ts.map +1 -1
- package/dist/components/PasskeymeButton.d.ts +1 -1
- package/dist/components/PasskeymeCallbackHandler.d.ts +1 -1
- package/dist/components/PasskeymeErrorDisplay.d.ts +1 -1
- package/dist/components/PasskeymeOAuthButton.d.ts +1 -1
- package/dist/components/PasskeymeOAuthButton.d.ts.map +1 -1
- package/dist/components/PasskeymeProtectedRoute.d.ts +1 -1
- package/dist/components/PasskeymeUserProfile.d.ts +1 -1
- package/dist/hooks/useAuthUtils.d.ts +1 -1
- package/dist/hooks/usePerformanceMonitor.d.ts +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +90 -39
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +90 -39
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/analytics.d.ts +1 -1
- package/dist/utils/debug.d.ts +1 -1
- package/dist/utils/devUtils.d.ts +1 -1
- package/dist/utils/importOptimizer.d.ts +1 -1
- package/dist/utils/loadingStates.d.ts +1 -1
- package/dist/utils/performanceProfiler.d.ts +1 -1
- package/dist/utils/storageOptimization.d.ts +1 -1
- package/dist/utils/testingUtils.d.ts +3 -3
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
|
|
17
17
|
### 🎉 First Stable Release
|
|
18
18
|
|
|
19
|
-
This marks the first stable release of the
|
|
19
|
+
This marks the first stable release of the Passkeyme React Authentication SDK, featuring enterprise-grade quality and seamless React integration.
|
|
20
20
|
|
|
21
21
|
### Added
|
|
22
22
|
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @passkeyme/react-auth
|
|
2
2
|
|
|
3
|
-
React integration for
|
|
3
|
+
React integration for Passkeyme Authentication SDK. Build secure authentication into your React apps with hooks and components.
|
|
4
4
|
|
|
5
5
|
## 🚀 Features
|
|
6
6
|
|
|
@@ -111,7 +111,7 @@ export interface PasskeymeAuthPanelProps {
|
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
|
-
*
|
|
114
|
+
* Passkeyme Authentication Panel Component
|
|
115
115
|
*
|
|
116
116
|
* A fully customizable authentication panel that handles passkey and OAuth authentication
|
|
117
117
|
* with extensive theming and configuration options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasskeymeAuthPanel.d.ts","sourceRoot":"","sources":["../../src/components/PasskeymeAuthPanel.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PasskeymeAuthPanel.d.ts","sourceRoot":"","sources":["../../src/components/PasskeymeAuthPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export interface CallbackState {
|
|
|
8
8
|
authenticatedUser: any | null;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* Built-in OAuth callback handler component for
|
|
11
|
+
* Built-in OAuth callback handler component for Passkeyme authentication.
|
|
12
12
|
*
|
|
13
13
|
* This component automatically handles the OAuth callback flow including:
|
|
14
14
|
* - Token extraction from URL parameters
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Passkeyme OAuth Login Button Component with Enhanced Accessibility and Performance
|
|
3
3
|
*/
|
|
4
4
|
import React from "react";
|
|
5
5
|
import type { PasskeymeOAuthButtonProps } from "../types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasskeymeOAuthButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeymeOAuthButton.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PasskeymeOAuthButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeymeOAuthButton.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAmK1D,eAAO,MAAM,oBAAoB,iJA1G9B,yBAAyB,6CA0GiD,CAAC;AAE9E,eAAe,oBAAoB,CAAC"}
|
|
@@ -16,7 +16,7 @@ export declare const useAuthState: () => {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const useAuth: () => {
|
|
18
18
|
redirectToLogin: (options?: import("@passkeyme/auth").LoginOptions | undefined) => void;
|
|
19
|
-
redirectToOAuth: (provider: "google" | "github" | "facebook", redirectUri?: string | undefined) => void;
|
|
19
|
+
redirectToOAuth: (provider: "google" | "github" | "facebook" | "apple" | "microsoft", redirectUri?: string | undefined) => void;
|
|
20
20
|
handleAuthCallback: () => Promise<import("@passkeyme/auth").User>;
|
|
21
21
|
handleCallback: () => Promise<import("@passkeyme/auth").User>;
|
|
22
22
|
logout: () => Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Passkeyme React Authentication SDK
|
|
3
3
|
*
|
|
4
|
-
* React integration for
|
|
4
|
+
* React integration for Passkeyme Authentication with hooks and components.
|
|
5
5
|
*
|
|
6
6
|
* @example
|
|
7
7
|
* ```tsx
|
package/dist/index.esm.js
CHANGED
|
@@ -5,7 +5,7 @@ export { ErrorHandler, PasskeymeError, PasskeymeErrorCode } from '@passkeyme/aut
|
|
|
5
5
|
import { createPortal } from 'react-dom';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* React Context Provider for
|
|
8
|
+
* React Context Provider for Passkeyme Authentication (Core)
|
|
9
9
|
* This is the shared provider for React and React Native
|
|
10
10
|
*/
|
|
11
11
|
const PasskeymeContext = createContext(null);
|
|
@@ -112,7 +112,7 @@ const PasskeymeProvider$1 = ({ config, children, loadingComponent = null, errorC
|
|
|
112
112
|
};
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
* Core React hooks for
|
|
115
|
+
* Core React hooks for Passkeyme Authentication
|
|
116
116
|
* Shared between React and React Native
|
|
117
117
|
*/
|
|
118
118
|
// Simple debug function for core package
|
|
@@ -124,7 +124,7 @@ function debugLog$1(config, ...args) {
|
|
|
124
124
|
const usePasskeyme = () => {
|
|
125
125
|
const { auth, user, loading, error, isAuthenticated, authLoading, setAuthLoading, config, } = usePasskeymeContext();
|
|
126
126
|
if (!auth) {
|
|
127
|
-
throw new Error("
|
|
127
|
+
throw new Error("Passkeyme auth instance not available");
|
|
128
128
|
}
|
|
129
129
|
const redirectToLogin = useCallback((options) => {
|
|
130
130
|
return auth.redirectToLogin(options);
|
|
@@ -642,7 +642,7 @@ const PasskeymeProvider = ({ children, config, enableNotifications = true, ...co
|
|
|
642
642
|
};
|
|
643
643
|
|
|
644
644
|
/**
|
|
645
|
-
* Enhanced Loading States for
|
|
645
|
+
* Enhanced Loading States for Passkeyme SDK
|
|
646
646
|
* Provides granular loading feedback for better user experience
|
|
647
647
|
*/
|
|
648
648
|
const LOADING_STATE_INFO = {
|
|
@@ -1054,16 +1054,30 @@ const providerStyles = {
|
|
|
1054
1054
|
color: "white",
|
|
1055
1055
|
border: "1px solid #1877f2",
|
|
1056
1056
|
},
|
|
1057
|
+
apple: {
|
|
1058
|
+
backgroundColor: "#000",
|
|
1059
|
+
color: "white",
|
|
1060
|
+
border: "1px solid #000",
|
|
1061
|
+
},
|
|
1062
|
+
microsoft: {
|
|
1063
|
+
backgroundColor: "#0078d4",
|
|
1064
|
+
color: "white",
|
|
1065
|
+
border: "1px solid #0078d4",
|
|
1066
|
+
},
|
|
1057
1067
|
};
|
|
1058
1068
|
const providerIcons = {
|
|
1059
1069
|
google: "🌐",
|
|
1060
1070
|
github: "📱",
|
|
1061
1071
|
facebook: "📘",
|
|
1072
|
+
apple: "🍎",
|
|
1073
|
+
microsoft: "Ⓜ️",
|
|
1062
1074
|
};
|
|
1063
1075
|
const providerNames = {
|
|
1064
1076
|
google: "Google",
|
|
1065
1077
|
github: "GitHub",
|
|
1066
1078
|
facebook: "Facebook",
|
|
1079
|
+
apple: "Apple",
|
|
1080
|
+
microsoft: "Microsoft",
|
|
1067
1081
|
};
|
|
1068
1082
|
const PasskeymeOAuthButtonComponent = ({ provider, variant = "default", size = "medium", redirectUri, children, className = "", style = {}, disabled = false, onClick, loading: externalLoading = false, }) => {
|
|
1069
1083
|
const { redirectToOAuth, loading: authLoading } = usePasskeyme();
|
|
@@ -1763,7 +1777,7 @@ const importLogger = {
|
|
|
1763
1777
|
};
|
|
1764
1778
|
|
|
1765
1779
|
/**
|
|
1766
|
-
* Debug utilities for
|
|
1780
|
+
* Debug utilities for Passkeyme React SDK
|
|
1767
1781
|
*/
|
|
1768
1782
|
/**
|
|
1769
1783
|
* Debug utility to conditionally log messages
|
|
@@ -1772,7 +1786,7 @@ function debugLog(config, component, ...args) {
|
|
|
1772
1786
|
if (config.debug) {
|
|
1773
1787
|
// Use both professional logger and console.log to ensure visibility
|
|
1774
1788
|
const timestamp = new Date().toISOString();
|
|
1775
|
-
console.log(`[${timestamp}] [
|
|
1789
|
+
console.log(`[${timestamp}] [Passkeyme:${component}]`, ...args);
|
|
1776
1790
|
debugLogger.debug(`[${component}]`, ...args);
|
|
1777
1791
|
}
|
|
1778
1792
|
}
|
|
@@ -2220,14 +2234,14 @@ const defaultTheme = {
|
|
|
2220
2234
|
},
|
|
2221
2235
|
};
|
|
2222
2236
|
/**
|
|
2223
|
-
*
|
|
2237
|
+
* Passkeyme Authentication Panel Component
|
|
2224
2238
|
*
|
|
2225
2239
|
* A fully customizable authentication panel that handles passkey and OAuth authentication
|
|
2226
2240
|
* with extensive theming and configuration options.
|
|
2227
2241
|
*/
|
|
2228
2242
|
const PasskeymeAuthPanel = ({
|
|
2229
2243
|
// Core functionality
|
|
2230
|
-
providers = ["google", "github"], enablePasskeys = true, enableUsernamePassword: _enableUsernamePassword = false, // Reserved for future implementation
|
|
2244
|
+
providers = ["google", "github", "apple", "microsoft"], enablePasskeys = true, enableUsernamePassword: _enableUsernamePassword = false, // Reserved for future implementation
|
|
2231
2245
|
redirectUri, state: _state, // Reserved for future implementation
|
|
2232
2246
|
// Layout & behavior
|
|
2233
2247
|
layout = "vertical", spacing = "normal", passkeyFirst = true, hideProvidersInitially = false, autoTriggerPasskey = true,
|
|
@@ -2548,6 +2562,27 @@ const isPlainObject = (val) => {
|
|
|
2548
2562
|
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);
|
|
2549
2563
|
};
|
|
2550
2564
|
|
|
2565
|
+
/**
|
|
2566
|
+
* Determine if a value is an empty object (safely handles Buffers)
|
|
2567
|
+
*
|
|
2568
|
+
* @param {*} val The value to test
|
|
2569
|
+
*
|
|
2570
|
+
* @returns {boolean} True if value is an empty object, otherwise false
|
|
2571
|
+
*/
|
|
2572
|
+
const isEmptyObject = (val) => {
|
|
2573
|
+
// Early return for non-objects or Buffers to prevent RangeError
|
|
2574
|
+
if (!isObject(val) || isBuffer(val)) {
|
|
2575
|
+
return false;
|
|
2576
|
+
}
|
|
2577
|
+
|
|
2578
|
+
try {
|
|
2579
|
+
return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;
|
|
2580
|
+
} catch (e) {
|
|
2581
|
+
// Fallback for any other objects that might cause RangeError with Object.keys()
|
|
2582
|
+
return false;
|
|
2583
|
+
}
|
|
2584
|
+
};
|
|
2585
|
+
|
|
2551
2586
|
/**
|
|
2552
2587
|
* Determine if a value is a Date
|
|
2553
2588
|
*
|
|
@@ -2670,6 +2705,11 @@ function forEach(obj, fn, {allOwnKeys = false} = {}) {
|
|
|
2670
2705
|
fn.call(null, obj[i], i, obj);
|
|
2671
2706
|
}
|
|
2672
2707
|
} else {
|
|
2708
|
+
// Buffer check
|
|
2709
|
+
if (isBuffer(obj)) {
|
|
2710
|
+
return;
|
|
2711
|
+
}
|
|
2712
|
+
|
|
2673
2713
|
// Iterate over object keys
|
|
2674
2714
|
const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
|
|
2675
2715
|
const len = keys.length;
|
|
@@ -2683,6 +2723,10 @@ function forEach(obj, fn, {allOwnKeys = false} = {}) {
|
|
|
2683
2723
|
}
|
|
2684
2724
|
|
|
2685
2725
|
function findKey(obj, key) {
|
|
2726
|
+
if (isBuffer(obj)){
|
|
2727
|
+
return null;
|
|
2728
|
+
}
|
|
2729
|
+
|
|
2686
2730
|
key = key.toLowerCase();
|
|
2687
2731
|
const keys = Object.keys(obj);
|
|
2688
2732
|
let i = keys.length;
|
|
@@ -3036,6 +3080,11 @@ const toJSONObject = (obj) => {
|
|
|
3036
3080
|
return;
|
|
3037
3081
|
}
|
|
3038
3082
|
|
|
3083
|
+
//Buffer check
|
|
3084
|
+
if (isBuffer(source)) {
|
|
3085
|
+
return source;
|
|
3086
|
+
}
|
|
3087
|
+
|
|
3039
3088
|
if(!('toJSON' in source)) {
|
|
3040
3089
|
stack[i] = source;
|
|
3041
3090
|
const target = isArray(source) ? [] : {};
|
|
@@ -3107,6 +3156,7 @@ var utils$1 = {
|
|
|
3107
3156
|
isBoolean,
|
|
3108
3157
|
isObject,
|
|
3109
3158
|
isPlainObject,
|
|
3159
|
+
isEmptyObject,
|
|
3110
3160
|
isReadableStream,
|
|
3111
3161
|
isRequest,
|
|
3112
3162
|
isResponse,
|
|
@@ -3738,7 +3788,7 @@ var platform = {
|
|
|
3738
3788
|
};
|
|
3739
3789
|
|
|
3740
3790
|
function toURLEncodedForm(data, options) {
|
|
3741
|
-
return toFormData(data, new platform.classes.URLSearchParams(),
|
|
3791
|
+
return toFormData(data, new platform.classes.URLSearchParams(), {
|
|
3742
3792
|
visitor: function(value, key, path, helpers) {
|
|
3743
3793
|
if (platform.isNode && utils$1.isBuffer(value)) {
|
|
3744
3794
|
this.append(key, value.toString('base64'));
|
|
@@ -3746,8 +3796,9 @@ function toURLEncodedForm(data, options) {
|
|
|
3746
3796
|
}
|
|
3747
3797
|
|
|
3748
3798
|
return helpers.defaultVisitor.apply(this, arguments);
|
|
3749
|
-
}
|
|
3750
|
-
|
|
3799
|
+
},
|
|
3800
|
+
...options
|
|
3801
|
+
});
|
|
3751
3802
|
}
|
|
3752
3803
|
|
|
3753
3804
|
/**
|
|
@@ -4500,7 +4551,7 @@ function throttle(fn, freq) {
|
|
|
4500
4551
|
clearTimeout(timer);
|
|
4501
4552
|
timer = null;
|
|
4502
4553
|
}
|
|
4503
|
-
fn
|
|
4554
|
+
fn(...args);
|
|
4504
4555
|
};
|
|
4505
4556
|
|
|
4506
4557
|
const throttled = (...args) => {
|
|
@@ -4756,7 +4807,7 @@ function mergeConfig(config1, config2) {
|
|
|
4756
4807
|
headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
|
|
4757
4808
|
};
|
|
4758
4809
|
|
|
4759
|
-
utils$1.forEach(Object.keys(
|
|
4810
|
+
utils$1.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {
|
|
4760
4811
|
const merge = mergeMap[prop] || mergeDeepProperties;
|
|
4761
4812
|
const configValue = merge(config1[prop], config2[prop], prop);
|
|
4762
4813
|
(utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
|
|
@@ -5497,7 +5548,7 @@ function dispatchRequest(config) {
|
|
|
5497
5548
|
});
|
|
5498
5549
|
}
|
|
5499
5550
|
|
|
5500
|
-
const VERSION = "1.
|
|
5551
|
+
const VERSION = "1.11.0";
|
|
5501
5552
|
|
|
5502
5553
|
const validators$1 = {};
|
|
5503
5554
|
|
|
@@ -5736,8 +5787,8 @@ class Axios {
|
|
|
5736
5787
|
|
|
5737
5788
|
if (!synchronousRequestInterceptors) {
|
|
5738
5789
|
const chain = [dispatchRequest.bind(this), undefined];
|
|
5739
|
-
chain.unshift
|
|
5740
|
-
chain.push
|
|
5790
|
+
chain.unshift(...requestInterceptorChain);
|
|
5791
|
+
chain.push(...responseInterceptorChain);
|
|
5741
5792
|
len = chain.length;
|
|
5742
5793
|
|
|
5743
5794
|
promise = Promise.resolve(config);
|
|
@@ -6225,7 +6276,7 @@ const DefaultPasskeyPrompt = ({ user, onRegister, onSkip, loading, }) => (jsxs("
|
|
|
6225
6276
|
textAlign: "center",
|
|
6226
6277
|
}, children: "You can always set this up later in your account settings" })] }));
|
|
6227
6278
|
/**
|
|
6228
|
-
* Built-in OAuth callback handler component for
|
|
6279
|
+
* Built-in OAuth callback handler component for Passkeyme authentication.
|
|
6229
6280
|
*
|
|
6230
6281
|
* This component automatically handles the OAuth callback flow including:
|
|
6231
6282
|
* - Token extraction from URL parameters
|
|
@@ -6377,7 +6428,7 @@ const PasskeymeCallbackHandler = ({ loadingComponent: LoadingComponent, errorCom
|
|
|
6377
6428
|
return;
|
|
6378
6429
|
try {
|
|
6379
6430
|
updateState({ passkeyRegistering: true });
|
|
6380
|
-
// Create axios instance for
|
|
6431
|
+
// Create axios instance for Passkeyme API
|
|
6381
6432
|
const axiosInstance = axios$1.create({
|
|
6382
6433
|
baseURL: `${getBaseUrl()}/webauthn/${config.appId}`,
|
|
6383
6434
|
headers: {
|
|
@@ -7011,7 +7062,7 @@ const withAuth = (Component, options) => {
|
|
|
7011
7062
|
};
|
|
7012
7063
|
|
|
7013
7064
|
/**
|
|
7014
|
-
* Performance monitoring utilities for
|
|
7065
|
+
* Performance monitoring utilities for Passkeyme React SDK
|
|
7015
7066
|
*/
|
|
7016
7067
|
/**
|
|
7017
7068
|
* Hook to monitor component performance
|
|
@@ -7128,7 +7179,7 @@ const useMemoryMonitor = (enabled = process.env.NODE_ENV === "development") => {
|
|
|
7128
7179
|
*/
|
|
7129
7180
|
const devWarn = (condition, message, ...args) => {
|
|
7130
7181
|
if (process.env.NODE_ENV === "development" && condition) {
|
|
7131
|
-
console.warn(`[
|
|
7182
|
+
console.warn(`[Passkeyme Dev Warning] ${message}`, ...args);
|
|
7132
7183
|
}
|
|
7133
7184
|
};
|
|
7134
7185
|
/**
|
|
@@ -7136,7 +7187,7 @@ const devWarn = (condition, message, ...args) => {
|
|
|
7136
7187
|
*/
|
|
7137
7188
|
const devError = (condition, message, ...args) => {
|
|
7138
7189
|
if (process.env.NODE_ENV === "development" && condition) {
|
|
7139
|
-
console.error(`[
|
|
7190
|
+
console.error(`[Passkeyme Dev Error] ${message}`, ...args);
|
|
7140
7191
|
}
|
|
7141
7192
|
};
|
|
7142
7193
|
/**
|
|
@@ -7167,14 +7218,14 @@ const initDevTools = () => {
|
|
|
7167
7218
|
resetAuth: () => {
|
|
7168
7219
|
localStorage.removeItem("passkeyme_auth_token");
|
|
7169
7220
|
localStorage.removeItem("passkeyme_user_data");
|
|
7170
|
-
console.log("[
|
|
7221
|
+
console.log("[Passkeyme Dev] Authentication state reset");
|
|
7171
7222
|
window.location.reload();
|
|
7172
7223
|
},
|
|
7173
7224
|
// Show current state
|
|
7174
7225
|
showState: () => {
|
|
7175
7226
|
const token = localStorage.getItem("passkeyme_auth_token");
|
|
7176
7227
|
const user = localStorage.getItem("passkeyme_user_data");
|
|
7177
|
-
console.log("[
|
|
7228
|
+
console.log("[Passkeyme Dev] Current State:", {
|
|
7178
7229
|
hasToken: !!token,
|
|
7179
7230
|
token: token ? "Present" : "None",
|
|
7180
7231
|
user: user ? JSON.parse(user) : null,
|
|
@@ -7183,17 +7234,17 @@ const initDevTools = () => {
|
|
|
7183
7234
|
// Enable debug mode
|
|
7184
7235
|
enableDebug: () => {
|
|
7185
7236
|
localStorage.setItem("passkeyme_debug", "true");
|
|
7186
|
-
console.log("[
|
|
7237
|
+
console.log("[Passkeyme Dev] Debug mode enabled");
|
|
7187
7238
|
window.location.reload();
|
|
7188
7239
|
},
|
|
7189
7240
|
// Disable debug mode
|
|
7190
7241
|
disableDebug: () => {
|
|
7191
7242
|
localStorage.removeItem("passkeyme_debug");
|
|
7192
|
-
console.log("[
|
|
7243
|
+
console.log("[Passkeyme Dev] Debug mode disabled");
|
|
7193
7244
|
window.location.reload();
|
|
7194
7245
|
},
|
|
7195
7246
|
};
|
|
7196
|
-
console.log("[
|
|
7247
|
+
console.log("[Passkeyme Dev] Development tools loaded. Use window.__PASSKEYME_DEV__ for utilities.");
|
|
7197
7248
|
}
|
|
7198
7249
|
};
|
|
7199
7250
|
/**
|
|
@@ -7208,7 +7259,7 @@ const withDevTools = (Component, displayName) => {
|
|
|
7208
7259
|
// Log renders in development
|
|
7209
7260
|
React.useEffect(() => {
|
|
7210
7261
|
if (localStorage.getItem("passkeyme_debug") === "true") {
|
|
7211
|
-
console.log(`[
|
|
7262
|
+
console.log(`[Passkeyme Dev] ${componentName} rendered with props:`, props);
|
|
7212
7263
|
}
|
|
7213
7264
|
});
|
|
7214
7265
|
// Validate required props
|
|
@@ -7265,7 +7316,7 @@ const DebugPanel = ({ data, position = "bottom-right", }) => {
|
|
|
7265
7316
|
overflow: "auto",
|
|
7266
7317
|
zIndex: 9999,
|
|
7267
7318
|
border: "1px solid #333",
|
|
7268
|
-
}, children: [jsx("div", { style: { fontWeight: "bold", marginBottom: "8px" }, children: "\uD83D\uDC1B
|
|
7319
|
+
}, children: [jsx("div", { style: { fontWeight: "bold", marginBottom: "8px" }, children: "\uD83D\uDC1B Passkeyme Debug Panel" }), jsx("pre", { style: { margin: 0, whiteSpace: "pre-wrap" }, children: JSON.stringify(data, null, 2) })] }));
|
|
7269
7320
|
};
|
|
7270
7321
|
/**
|
|
7271
7322
|
* Component performance profiler for development
|
|
@@ -7330,7 +7381,7 @@ const createLazyComponent = (importFn, fallback) => {
|
|
|
7330
7381
|
};
|
|
7331
7382
|
|
|
7332
7383
|
/**
|
|
7333
|
-
* Optimized localStorage utilities for
|
|
7384
|
+
* Optimized localStorage utilities for Passkeyme React SDK
|
|
7334
7385
|
* Provides caching, compression, and performance optimizations
|
|
7335
7386
|
*/
|
|
7336
7387
|
/**
|
|
@@ -7916,7 +7967,7 @@ const PerformanceIndicator = ({ threshold = 100, position = "top-right", }) => {
|
|
|
7916
7967
|
};
|
|
7917
7968
|
|
|
7918
7969
|
/**
|
|
7919
|
-
* Import optimization utility for
|
|
7970
|
+
* Import optimization utility for Passkeyme React SDK
|
|
7920
7971
|
* Analyzes and optimizes bundle imports to reduce bundle size
|
|
7921
7972
|
*
|
|
7922
7973
|
* Note: This utility is intended for build-time analysis in Node.js environments only.
|
|
@@ -8364,7 +8415,7 @@ class PasskeymeErrorBoundary extends Component {
|
|
|
8364
8415
|
onError === null || onError === void 0 ? void 0 : onError(error, errorInfo);
|
|
8365
8416
|
// Log to console in development
|
|
8366
8417
|
if (process.env.NODE_ENV === "development") {
|
|
8367
|
-
console.error("
|
|
8418
|
+
console.error("Passkeyme Error Boundary caught an error:", error, errorInfo);
|
|
8368
8419
|
}
|
|
8369
8420
|
}
|
|
8370
8421
|
render() {
|
|
@@ -8486,7 +8537,7 @@ const createPerformanceTracker = () => {
|
|
|
8486
8537
|
};
|
|
8487
8538
|
|
|
8488
8539
|
/**
|
|
8489
|
-
* Mock provider for testing components that use
|
|
8540
|
+
* Mock provider for testing components that use Passkeyme
|
|
8490
8541
|
*/
|
|
8491
8542
|
const MockPasskeymeProvider = ({ children, config = {}, initialUser = null, initialLoading = false, initialError = null, }) => {
|
|
8492
8543
|
const mockConfig = {
|
|
@@ -8497,7 +8548,7 @@ const MockPasskeymeProvider = ({ children, config = {}, initialUser = null, init
|
|
|
8497
8548
|
return jsx(PasskeymeProvider$1, { config: mockConfig, children: children });
|
|
8498
8549
|
};
|
|
8499
8550
|
/**
|
|
8500
|
-
* Custom render function with
|
|
8551
|
+
* Custom render function with Passkeyme provider
|
|
8501
8552
|
* Note: Requires @testing-library/react render function to be passed in
|
|
8502
8553
|
*/
|
|
8503
8554
|
const createRenderWithPasskeymeProvider = (renderFunction) => (ui, options = {}) => {
|
|
@@ -8767,21 +8818,21 @@ const DevToolsDashboard = ({ show = process.env.NODE_ENV === "development", posi
|
|
|
8767
8818
|
console.log = (...args) => {
|
|
8768
8819
|
var _a;
|
|
8769
8820
|
originalConsole.log(...args);
|
|
8770
|
-
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[
|
|
8821
|
+
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[Passkeyme")) {
|
|
8771
8822
|
addLog("info", args.join(" "), args.slice(1));
|
|
8772
8823
|
}
|
|
8773
8824
|
};
|
|
8774
8825
|
console.warn = (...args) => {
|
|
8775
8826
|
var _a;
|
|
8776
8827
|
originalConsole.warn(...args);
|
|
8777
|
-
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[
|
|
8828
|
+
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[Passkeyme")) {
|
|
8778
8829
|
addLog("warn", args.join(" "), args.slice(1));
|
|
8779
8830
|
}
|
|
8780
8831
|
};
|
|
8781
8832
|
console.error = (...args) => {
|
|
8782
8833
|
var _a;
|
|
8783
8834
|
originalConsole.error(...args);
|
|
8784
|
-
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[
|
|
8835
|
+
if ((_a = args[0]) === null || _a === void 0 ? void 0 : _a.toString().includes("[Passkeyme")) {
|
|
8785
8836
|
addLog("error", args.join(" "), args.slice(1));
|
|
8786
8837
|
}
|
|
8787
8838
|
};
|
|
@@ -8847,7 +8898,7 @@ const DevToolsDashboard = ({ show = process.env.NODE_ENV === "development", posi
|
|
|
8847
8898
|
};
|
|
8848
8899
|
const testError = () => {
|
|
8849
8900
|
const error = new PasskeymeError("DEV_TEST_ERROR");
|
|
8850
|
-
console.error("[
|
|
8901
|
+
console.error("[Passkeyme Dev] Test error:", error);
|
|
8851
8902
|
addLog("error", "Test error triggered", error);
|
|
8852
8903
|
};
|
|
8853
8904
|
const exportState = () => {
|
|
@@ -8864,7 +8915,7 @@ const DevToolsDashboard = ({ show = process.env.NODE_ENV === "development", posi
|
|
|
8864
8915
|
debug: localStorage.getItem("passkeyme_debug"),
|
|
8865
8916
|
},
|
|
8866
8917
|
};
|
|
8867
|
-
console.log("[
|
|
8918
|
+
console.log("[Passkeyme Dev] Current state:", state);
|
|
8868
8919
|
(_a = navigator.clipboard) === null || _a === void 0 ? void 0 : _a.writeText(JSON.stringify(state, null, 2));
|
|
8869
8920
|
addLog("info", "State exported to clipboard");
|
|
8870
8921
|
};
|
|
@@ -8918,7 +8969,7 @@ const DevToolsDashboard = ({ show = process.env.NODE_ENV === "development", posi
|
|
|
8918
8969
|
cursor: "pointer",
|
|
8919
8970
|
marginRight: "4px",
|
|
8920
8971
|
});
|
|
8921
|
-
return (jsxs("div", { style: baseStyles, children: [jsxs("div", { style: headerStyles, onClick: () => setIsCollapsed(!isCollapsed), children: [jsx("span", { children: "\uD83D\uDEE0\uFE0F
|
|
8972
|
+
return (jsxs("div", { style: baseStyles, children: [jsxs("div", { style: headerStyles, onClick: () => setIsCollapsed(!isCollapsed), children: [jsx("span", { children: "\uD83D\uDEE0\uFE0F Passkeyme DevTools" }), jsx("span", { children: isCollapsed ? "▲" : "▼" })] }), !isCollapsed && (jsxs("div", { style: contentStyles, children: [jsxs("div", { style: { marginBottom: "12px" }, children: [jsx("button", { onClick: () => setActiveTab("state"), style: tabStyle(activeTab === "state"), children: "State" }), jsx("button", { onClick: () => setActiveTab("logs"), style: tabStyle(activeTab === "logs"), children: "Logs" })] }), activeTab === "state" && renderStateTab(), activeTab === "logs" && renderLogsTab()] }))] }));
|
|
8922
8973
|
};
|
|
8923
8974
|
// Auto-initialize dev tools
|
|
8924
8975
|
if (process.env.NODE_ENV === "development" && typeof window !== "undefined") {
|