@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.
@@ -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,CA62BpD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC"}
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
- syncContact(userFromAccount, accountResponse);
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
- trackInteraction('session_restore', storedUser.uid, storedContactId);
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, syncContact, trackInteraction, interactionConfig?.sessionRestore]);
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
- syncContact(userObj, parentAccountData);
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, syncContact]);
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 = '34';
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) => {