@proveanything/smartlinks-auth-ui 0.1.35 → 0.1.37
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/dist/context/AuthContext.d.ts.map +1 -1
- package/dist/index.esm.js +19 -9
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +19 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAGnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,UAAU,gBAAgB;IACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IAGnB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACxE,yBAAyB,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAG3F,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpI,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5F,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,MAAM,IAAI,CAAC;IACrE,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAID,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAGnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,UAAU,gBAAgB;IACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IAGnB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACxE,yBAAyB,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAG3F,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpI,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5F,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,MAAM,IAAI,CAAC;IACrE,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAID,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA03BpD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -11395,6 +11395,9 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11395
11395
|
const callbacksRef = useRef(new Set());
|
|
11396
11396
|
const initializingRef = useRef(false);
|
|
11397
11397
|
const pendingVerificationRef = useRef(false);
|
|
11398
|
+
// Stable refs for callbacks to avoid useEffect dependency cycles
|
|
11399
|
+
const syncContactRef = useRef();
|
|
11400
|
+
const trackInteractionRef = useRef();
|
|
11398
11401
|
// Default to enabled if collectionId is provided
|
|
11399
11402
|
const shouldSyncContacts = enableContactSync ?? !!collectionId;
|
|
11400
11403
|
const shouldTrackInteractions = enableInteractionTracking ?? !!collectionId;
|
|
@@ -11525,6 +11528,13 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11525
11528
|
console.warn('[AuthContext] Interaction tracking failed (non-blocking):', err);
|
|
11526
11529
|
}
|
|
11527
11530
|
}, [collectionId, shouldTrackInteractions, interactionAppId, interactionConfig, user, token, accountData, accountInfo, isVerified, contact, contactId, notifyAuthStateChange]);
|
|
11531
|
+
// Keep refs in sync with latest callbacks (avoids stale closures)
|
|
11532
|
+
useEffect(() => {
|
|
11533
|
+
syncContactRef.current = syncContact;
|
|
11534
|
+
}, [syncContact]);
|
|
11535
|
+
useEffect(() => {
|
|
11536
|
+
trackInteractionRef.current = trackInteraction;
|
|
11537
|
+
}, [trackInteraction]);
|
|
11528
11538
|
// Get contact (with optional refresh)
|
|
11529
11539
|
const getContact = useCallback(async (forceRefresh = false) => {
|
|
11530
11540
|
if (!collectionId) {
|
|
@@ -11595,8 +11605,8 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11595
11605
|
setIsVerified(true);
|
|
11596
11606
|
console.log('[AuthContext] Proxy mode: initialized from parent account, uid:', accountAny.uid);
|
|
11597
11607
|
notifyAuthStateChange('LOGIN', userFromAccount, null, accountResponse, accountResponse, true);
|
|
11598
|
-
// Sync contact in background (proxy mode)
|
|
11599
|
-
|
|
11608
|
+
// Sync contact in background (proxy mode) - use ref for stable dependency
|
|
11609
|
+
syncContactRef.current?.(userFromAccount, accountResponse);
|
|
11600
11610
|
}
|
|
11601
11611
|
else if (isMounted) {
|
|
11602
11612
|
console.log('[AuthContext] Proxy mode: no valid session (no uid), awaiting login');
|
|
@@ -11639,9 +11649,9 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11639
11649
|
pendingVerificationRef.current = false;
|
|
11640
11650
|
console.log('[AuthContext] Session verified successfully');
|
|
11641
11651
|
notifyAuthStateChange('SESSION_VERIFIED', storedUser, storedToken.token, storedAccountData || null, null, true, null, storedContactId);
|
|
11642
|
-
// Track session restore interaction (optional)
|
|
11652
|
+
// Track session restore interaction (optional) - use ref for stable dependency
|
|
11643
11653
|
if (interactionConfig?.sessionRestore) {
|
|
11644
|
-
|
|
11654
|
+
trackInteractionRef.current?.('session_restore', storedUser.uid, storedContactId);
|
|
11645
11655
|
}
|
|
11646
11656
|
}
|
|
11647
11657
|
}
|
|
@@ -11688,7 +11698,7 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11688
11698
|
return () => {
|
|
11689
11699
|
isMounted = false;
|
|
11690
11700
|
};
|
|
11691
|
-
}, [proxyMode, notifyAuthStateChange, isNetworkError,
|
|
11701
|
+
}, [proxyMode, notifyAuthStateChange, isNetworkError, interactionConfig?.sessionRestore]);
|
|
11692
11702
|
// Listen for parent auth state changes (proxy mode only)
|
|
11693
11703
|
useEffect(() => {
|
|
11694
11704
|
if (!proxyMode)
|
|
@@ -11710,8 +11720,8 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11710
11720
|
setAccountInfo(parentAccountData || null);
|
|
11711
11721
|
setIsVerified(true);
|
|
11712
11722
|
notifyAuthStateChange('CROSS_TAB_SYNC', userObj, null, parentAccountData || null, parentAccountData || null, true);
|
|
11713
|
-
// Sync contact on cross-tab state
|
|
11714
|
-
|
|
11723
|
+
// Sync contact on cross-tab state - use ref for stable dependency
|
|
11724
|
+
syncContactRef.current?.(userObj, parentAccountData);
|
|
11715
11725
|
}
|
|
11716
11726
|
else {
|
|
11717
11727
|
setUser(null);
|
|
@@ -11730,7 +11740,7 @@ collectionId, enableContactSync, enableInteractionTracking, interactionAppId, in
|
|
|
11730
11740
|
console.log('[AuthContext] Proxy mode: cleaning up parent message listener');
|
|
11731
11741
|
window.removeEventListener('message', handleParentMessage);
|
|
11732
11742
|
};
|
|
11733
|
-
}, [proxyMode, notifyAuthStateChange
|
|
11743
|
+
}, [proxyMode, notifyAuthStateChange]);
|
|
11734
11744
|
// Cross-tab synchronization - standalone mode only
|
|
11735
11745
|
useEffect(() => {
|
|
11736
11746
|
if (proxyMode)
|
|
@@ -12152,7 +12162,7 @@ const useAuth = () => {
|
|
|
12152
12162
|
};
|
|
12153
12163
|
|
|
12154
12164
|
// VERSION: Update this when making changes to help identify which version is running
|
|
12155
|
-
const AUTH_UI_VERSION = '
|
|
12165
|
+
const AUTH_UI_VERSION = '36';
|
|
12156
12166
|
const LOG_PREFIX = `[SmartlinksAuthUI:v${AUTH_UI_VERSION}]`;
|
|
12157
12167
|
// Helper to calculate expiration from AuthResponse
|
|
12158
12168
|
const getExpirationFromResponse = (response) => {
|