@oxyhq/services 5.18.5 → 5.20.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 (52) hide show
  1. package/README.md +51 -42
  2. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +1 -1
  3. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
  4. package/lib/commonjs/ui/components/OxyProvider.js +106 -40
  5. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  6. package/lib/commonjs/ui/components/OxySignInButton.js +24 -17
  7. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  8. package/lib/commonjs/ui/components/WebOxyProvider.js +13 -5
  9. package/lib/commonjs/ui/components/WebOxyProvider.js.map +1 -1
  10. package/lib/commonjs/ui/hooks/useAuth.js +33 -8
  11. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  12. package/lib/commonjs/ui/hooks/useWebSSO.js +55 -16
  13. package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
  14. package/lib/module/core/mixins/OxyServices.fedcm.js +1 -1
  15. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
  16. package/lib/module/ui/components/OxyProvider.js +106 -39
  17. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  18. package/lib/module/ui/components/OxySignInButton.js +24 -17
  19. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  20. package/lib/module/ui/components/WebOxyProvider.js +13 -5
  21. package/lib/module/ui/components/WebOxyProvider.js.map +1 -1
  22. package/lib/module/ui/hooks/useAuth.js +33 -8
  23. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  24. package/lib/module/ui/hooks/useWebSSO.js +55 -16
  25. package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
  26. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +26 -3
  28. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  30. package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts +13 -5
  31. package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +8 -3
  33. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +29 -7
  35. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
  36. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  37. package/lib/typescript/module/ui/components/OxyProvider.d.ts +26 -3
  38. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  39. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  40. package/lib/typescript/module/ui/components/WebOxyProvider.d.ts +13 -5
  41. package/lib/typescript/module/ui/components/WebOxyProvider.d.ts.map +1 -1
  42. package/lib/typescript/module/ui/hooks/useAuth.d.ts +8 -3
  43. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  44. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +29 -7
  45. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/core/mixins/OxyServices.fedcm.ts +1 -1
  48. package/src/ui/components/OxyProvider.tsx +112 -47
  49. package/src/ui/components/OxySignInButton.tsx +24 -17
  50. package/src/ui/components/WebOxyProvider.tsx +13 -5
  51. package/src/ui/hooks/useAuth.ts +42 -12
  52. package/src/ui/hooks/useWebSSO.ts +59 -15
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "useOxy", {
12
12
  });
13
13
  var _react = require("react");
14
14
  var _OxyContext = require("../context/OxyContext.js");
15
+ var _useWebSSO = require("./useWebSSO.js");
15
16
  /**
16
17
  * Unified Auth Hook
17
18
  *
@@ -30,6 +31,11 @@ var _OxyContext = require("../context/OxyContext.js");
30
31
  * return <Welcome user={user} />;
31
32
  * }
32
33
  * ```
34
+ *
35
+ * Cross-domain SSO:
36
+ * - Web: Automatic via FedCM (Chrome 108+, Safari 16.4+)
37
+ * - Native: Automatic via shared Keychain/Account Manager
38
+ * - Manual sign-in: signIn() opens popup (web) or auth sheet (native)
33
39
  */
34
40
 
35
41
  /**
@@ -58,6 +64,30 @@ function useAuth() {
58
64
  showBottomSheet
59
65
  } = (0, _OxyContext.useOxy)();
60
66
  const signIn = (0, _react.useCallback)(async publicKey => {
67
+ // Web: Use popup-based authentication
68
+ if ((0, _useWebSSO.isWebBrowser)() && !publicKey) {
69
+ try {
70
+ // Try FedCM first (instant if user already signed in)
71
+ if (oxyServices.isFedCMSupported?.()) {
72
+ const fedcmSession = await oxyServices.signInWithFedCM?.();
73
+ if (fedcmSession?.user) {
74
+ return fedcmSession.user;
75
+ }
76
+ }
77
+
78
+ // Fallback to popup (opens auth.oxy.so in popup window)
79
+ const popupSession = await oxyServices.signInWithPopup?.();
80
+ if (popupSession?.user) {
81
+ return popupSession.user;
82
+ }
83
+ throw new Error('Sign-in failed');
84
+ } catch (error) {
85
+ // If popup blocked or FedCM failed, suggest redirect
86
+ throw new Error(error instanceof Error && error.message.includes('blocked') ? 'Popup blocked. Please allow popups or try again.' : 'Sign-in failed. Please try again.');
87
+ }
88
+ }
89
+
90
+ // Native: Use cryptographic identity
61
91
  // If public key provided, use it directly
62
92
  if (publicKey) {
63
93
  return oxySignIn(publicKey);
@@ -72,19 +102,14 @@ function useAuth() {
72
102
  }
73
103
  }
74
104
 
75
- // No identity - show auth UI
76
- // On native: shows bottom sheet for identity creation
77
- // On web: could trigger popup auth
105
+ // No identity - show auth UI (native bottom sheet)
78
106
  showBottomSheet?.('OxyAuth');
79
107
 
80
108
  // Return a promise that resolves when auth completes
81
- // This is a simplified version - real implementation would
82
- // wait for the auth flow to complete
83
- return new Promise((resolve, reject) => {
84
- // For now, just reject - the bottom sheet handles the flow
109
+ return new Promise((_, reject) => {
85
110
  reject(new Error('Please complete sign-in in the auth sheet'));
86
111
  });
87
- }, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet]);
112
+ }, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet, oxyServices]);
88
113
  const signOut = (0, _react.useCallback)(async () => {
89
114
  await logout();
90
115
  }, [logout]);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OxyContext","useAuth","user","isAuthenticated","isLoading","isTokenReady","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","useOxy","useCallback","publicKey","hasExisting","existingKey","Promise","resolve","reject","Error","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":";;;;;;;;;;;;AAoBA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,OAAOA,CAAA,EAAkB;EACvC,MAAM;IACJC,IAAI;IACJC,eAAe;IACfC,SAAS;IACTC,YAAY;IACZC,KAAK;IACLC,MAAM,EAAEC,SAAS;IACjBC,MAAM;IACNC,SAAS;IACTC,eAAe;IACfC,WAAW;IACXC,WAAW;IACXC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAEZ,MAAMT,MAAM,GAAG,IAAAU,kBAAW,EAAC,MAAOC,SAAkB,IAAoB;IACtE;IACA,IAAIA,SAAS,EAAE;MACb,OAAOV,SAAS,CAACU,SAAS,CAAC;IAC7B;;IAEA;IACA,MAAMC,WAAW,GAAG,MAAMN,WAAW,CAAC,CAAC;IAEvC,IAAIM,WAAW,EAAE;MACf,MAAMC,WAAW,GAAG,MAAMN,YAAY,CAAC,CAAC;MACxC,IAAIM,WAAW,EAAE;QACf,OAAOZ,SAAS,CAACY,WAAW,CAAC;MAC/B;IACF;;IAEA;IACA;IACA;IACAL,eAAe,GAAG,SAAS,CAAC;;IAE5B;IACA;IACA;IACA,OAAO,IAAIM,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC;MACAA,MAAM,CAAC,IAAIC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChE,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChB,SAAS,EAAEK,WAAW,EAAEC,YAAY,EAAEC,eAAe,CAAC,CAAC;EAE3D,MAAMU,OAAO,GAAG,IAAAR,kBAAW,EAAC,YAA2B;IACrD,MAAMR,MAAM,CAAC,CAAC;EAChB,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAMiB,UAAU,GAAG,IAAAT,kBAAW,EAAC,YAA2B;IACxD,MAAMP,SAAS,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAMiB,OAAO,GAAG,IAAAV,kBAAW,EAAC,YAA2B;IACrD,MAAMN,eAAe,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OAAO;IACL;IACAT,IAAI;IACJC,eAAe;IACfC,SAAS;IACTwB,OAAO,EAAEvB,YAAY;IACrBC,KAAK;IAEL;IACAC,MAAM;IACNkB,OAAO;IACPC,UAAU;IACVC,OAAO;IAEP;IACAf;EACF,CAAC;AACH;;AAEA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OxyContext","_useWebSSO","useAuth","user","isAuthenticated","isLoading","isTokenReady","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","useOxy","useCallback","publicKey","isWebBrowser","isFedCMSupported","fedcmSession","signInWithFedCM","popupSession","signInWithPopup","Error","message","includes","hasExisting","existingKey","Promise","_","reject","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":"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","ignoreList":[]}
@@ -9,67 +9,106 @@ var _react = require("react");
9
9
  /**
10
10
  * Web SSO Hook
11
11
  *
12
- * Automatically handles cross-domain SSO for web apps.
13
- * Uses the OxyServices.silentSignIn() method which loads a hidden iframe
14
- * to check for existing session at auth.oxy.so.
12
+ * Handles cross-domain SSO for web apps using FedCM (Federated Credential Management).
13
+ *
14
+ * FedCM is the modern, privacy-preserving standard for cross-domain identity federation.
15
+ * It works across completely different TLDs (alia.onl, mention.earth, homiio.com, etc.)
16
+ * without relying on third-party cookies.
17
+ *
18
+ * For browsers without FedCM support, users will need to click a sign-in button
19
+ * which triggers a popup-based authentication flow.
15
20
  *
16
21
  * This is called automatically by OxyContext on web platforms.
22
+ *
23
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
17
24
  */
18
25
 
19
26
  /**
20
27
  * Check if we're running in a web browser environment (not React Native)
21
28
  */
22
29
  function isWebBrowser() {
23
- // Check for browser globals and that we have a real DOM (React Native has window but not documentElement)
24
30
  return typeof window !== 'undefined' && typeof document !== 'undefined' && typeof document.documentElement !== 'undefined';
25
31
  }
26
32
 
27
33
  /**
28
- * Hook for automatic web SSO
34
+ * Hook for automatic cross-domain web SSO
29
35
  *
30
- * Automatically checks for existing cross-domain session on mount.
31
- * Only runs on web platforms. Uses OxyServices.silentSignIn() internally.
36
+ * Uses FedCM (Federated Credential Management) - the modern browser-native
37
+ * identity federation API. This is the same technology that powers
38
+ * Google's cross-domain SSO (YouTube, Gmail, Maps, etc.).
39
+ *
40
+ * Key benefits:
41
+ * - Works across different TLDs (alia.onl ↔ mention.earth ↔ homiio.com)
42
+ * - No third-party cookies required
43
+ * - Privacy-preserving (browser mediates identity, IdP can't track)
44
+ * - Automatic silent sign-in after initial authentication
45
+ *
46
+ * For browsers without FedCM (Firefox, older browsers), automatic SSO
47
+ * is not possible. Users will see a sign-in button instead.
32
48
  */
33
49
  function useWebSSO({
34
50
  oxyServices,
35
51
  onSessionFound,
52
+ onSSOUnavailable,
36
53
  onError,
37
54
  enabled = true
38
55
  }) {
39
56
  const isCheckingRef = (0, _react.useRef)(false);
40
57
  const hasCheckedRef = (0, _react.useRef)(false);
58
+
59
+ // Check FedCM support once
60
+ const fedCMSupported = isWebBrowser() && oxyServices.isFedCMSupported?.();
41
61
  const checkSSO = (0, _react.useCallback)(async () => {
42
62
  if (!isWebBrowser() || isCheckingRef.current) {
43
63
  return null;
44
64
  }
65
+
66
+ // FedCM is the only reliable cross-domain SSO mechanism
67
+ // Third-party cookies are deprecated and unreliable
68
+ if (!fedCMSupported) {
69
+ onSSOUnavailable?.();
70
+ return null;
71
+ }
45
72
  isCheckingRef.current = true;
46
73
  try {
47
- // Use the existing silentSignIn method from OxyServices
48
- // which handles iframe creation, postMessage, and token storage
49
- const session = await oxyServices.silentSignIn?.();
74
+ // Use FedCM for cross-domain SSO
75
+ // This works because browser treats IdP requests as first-party
76
+ const session = await oxyServices.silentSignInWithFedCM?.();
50
77
  if (session) {
51
78
  await onSessionFound(session);
79
+ return session;
52
80
  }
53
- return session;
81
+
82
+ // No session found - user needs to sign in
83
+ onSSOUnavailable?.();
84
+ return null;
54
85
  } catch (error) {
86
+ // FedCM failed - could be network error, user not signed in, etc.
87
+ onSSOUnavailable?.();
55
88
  onError?.(error instanceof Error ? error : new Error(String(error)));
56
89
  return null;
57
90
  } finally {
58
91
  isCheckingRef.current = false;
59
92
  }
60
- }, [oxyServices, onSessionFound, onError]);
93
+ }, [oxyServices, onSessionFound, onSSOUnavailable, onError, fedCMSupported]);
61
94
 
62
- // Auto-check SSO on mount (web only)
95
+ // Auto-check SSO on mount (web only, FedCM only)
63
96
  (0, _react.useEffect)(() => {
64
97
  if (!enabled || !isWebBrowser() || hasCheckedRef.current) {
65
98
  return;
66
99
  }
67
100
  hasCheckedRef.current = true;
68
- checkSSO();
69
- }, [enabled, checkSSO]);
101
+ if (fedCMSupported) {
102
+ checkSSO();
103
+ } else {
104
+ // Browser doesn't support FedCM - notify caller
105
+ onSSOUnavailable?.();
106
+ }
107
+ }, [enabled, checkSSO, fedCMSupported, onSSOUnavailable]);
70
108
  return {
71
109
  checkSSO,
72
- isChecking: isCheckingRef.current
110
+ isChecking: isCheckingRef.current,
111
+ isFedCMSupported: fedCMSupported
73
112
  };
74
113
  }
75
114
  //# sourceMappingURL=useWebSSO.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","isWebBrowser","window","document","documentElement","useWebSSO","oxyServices","onSessionFound","onError","enabled","isCheckingRef","useRef","hasCheckedRef","checkSSO","useCallback","current","session","silentSignIn","error","Error","String","useEffect","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":";;;;;;;AAUA,IAAAA,MAAA,GAAAC,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkBA;AACA;AACA;AACA,SAASC,YAAYA,CAAA,EAAY;EAC/B;EACA,OAAO,OAAOC,MAAM,KAAK,WAAW,IAC7B,OAAOC,QAAQ,KAAK,WAAW,IAC/B,OAAOA,QAAQ,CAACC,eAAe,KAAK,WAAW;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAAC;EACxBC,WAAW;EACXC,cAAc;EACdC,OAAO;EACPC,OAAO,GAAG;AACM,CAAC,EAAmB;EACpC,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EACnC,MAAMC,aAAa,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;EAEnC,MAAME,QAAQ,GAAG,IAAAC,kBAAW,EAAC,YAAkD;IAC7E,IAAI,CAACb,YAAY,CAAC,CAAC,IAAIS,aAAa,CAACK,OAAO,EAAE;MAC5C,OAAO,IAAI;IACb;IAEAL,aAAa,CAACK,OAAO,GAAG,IAAI;IAE5B,IAAI;MACF;MACA;MACA,MAAMC,OAAO,GAAG,MAAOV,WAAW,CAASW,YAAY,GAAG,CAAC;MAE3D,IAAID,OAAO,EAAE;QACX,MAAMT,cAAc,CAACS,OAAO,CAAC;MAC/B;MAEA,OAAOA,OAAO;IAChB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdV,OAAO,GAAGU,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC;MACpE,OAAO,IAAI;IACb,CAAC,SAAS;MACRR,aAAa,CAACK,OAAO,GAAG,KAAK;IAC/B;EACF,CAAC,EAAE,CAACT,WAAW,EAAEC,cAAc,EAAEC,OAAO,CAAC,CAAC;;EAE1C;EACA,IAAAa,gBAAS,EAAC,MAAM;IACd,IAAI,CAACZ,OAAO,IAAI,CAACR,YAAY,CAAC,CAAC,IAAIW,aAAa,CAACG,OAAO,EAAE;MACxD;IACF;IAEAH,aAAa,CAACG,OAAO,GAAG,IAAI;IAC5BF,QAAQ,CAAC,CAAC;EACZ,CAAC,EAAE,CAACJ,OAAO,EAAEI,QAAQ,CAAC,CAAC;EAEvB,OAAO;IACLA,QAAQ;IACRS,UAAU,EAAEZ,aAAa,CAACK;EAC5B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","isWebBrowser","window","document","documentElement","useWebSSO","oxyServices","onSessionFound","onSSOUnavailable","onError","enabled","isCheckingRef","useRef","hasCheckedRef","fedCMSupported","isFedCMSupported","checkSSO","useCallback","current","session","silentSignInWithFedCM","error","Error","String","useEffect","isChecking"],"sourceRoot":"../../../../src","sources":["ui/hooks/useWebSSO.ts"],"mappings":";;;;;;;AAiBA,IAAAA,MAAA,GAAAC,OAAA;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA,SAASC,YAAYA,CAAA,EAAY;EAC/B,OAAO,OAAOC,MAAM,KAAK,WAAW,IAC7B,OAAOC,QAAQ,KAAK,WAAW,IAC/B,OAAOA,QAAQ,CAACC,eAAe,KAAK,WAAW;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAAC;EACxBC,WAAW;EACXC,cAAc;EACdC,gBAAgB;EAChBC,OAAO;EACPC,OAAO,GAAG;AACM,CAAC,EAAmB;EACpC,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EACnC,MAAMC,aAAa,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;;EAEnC;EACA,MAAME,cAAc,GAAGb,YAAY,CAAC,CAAC,IAAKK,WAAW,CAASS,gBAAgB,GAAG,CAAC;EAElF,MAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAAC,YAAkD;IAC7E,IAAI,CAAChB,YAAY,CAAC,CAAC,IAAIU,aAAa,CAACO,OAAO,EAAE;MAC5C,OAAO,IAAI;IACb;;IAEA;IACA;IACA,IAAI,CAACJ,cAAc,EAAE;MACnBN,gBAAgB,GAAG,CAAC;MACpB,OAAO,IAAI;IACb;IAEAG,aAAa,CAACO,OAAO,GAAG,IAAI;IAE5B,IAAI;MACF;MACA;MACA,MAAMC,OAAO,GAAG,MAAOb,WAAW,CAASc,qBAAqB,GAAG,CAAC;MAEpE,IAAID,OAAO,EAAE;QACX,MAAMZ,cAAc,CAACY,OAAO,CAAC;QAC7B,OAAOA,OAAO;MAChB;;MAEA;MACAX,gBAAgB,GAAG,CAAC;MACpB,OAAO,IAAI;IACb,CAAC,CAAC,OAAOa,KAAK,EAAE;MACd;MACAb,gBAAgB,GAAG,CAAC;MACpBC,OAAO,GAAGY,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC;MACpE,OAAO,IAAI;IACb,CAAC,SAAS;MACRV,aAAa,CAACO,OAAO,GAAG,KAAK;IAC/B;EACF,CAAC,EAAE,CAACZ,WAAW,EAAEC,cAAc,EAAEC,gBAAgB,EAAEC,OAAO,EAAEK,cAAc,CAAC,CAAC;;EAE5E;EACA,IAAAU,gBAAS,EAAC,MAAM;IACd,IAAI,CAACd,OAAO,IAAI,CAACT,YAAY,CAAC,CAAC,IAAIY,aAAa,CAACK,OAAO,EAAE;MACxD;IACF;IAEAL,aAAa,CAACK,OAAO,GAAG,IAAI;IAE5B,IAAIJ,cAAc,EAAE;MAClBE,QAAQ,CAAC,CAAC;IACZ,CAAC,MAAM;MACL;MACAR,gBAAgB,GAAG,CAAC;IACtB;EACF,CAAC,EAAE,CAACE,OAAO,EAAEM,QAAQ,EAAEF,cAAc,EAAEN,gBAAgB,CAAC,CAAC;EAEzD,OAAO;IACLQ,QAAQ;IACRS,UAAU,EAAEd,aAAa,CAACO,OAAO;IACjCH,gBAAgB,EAAED;EACpB,CAAC;AACH","ignoreList":[]}
@@ -210,7 +210,7 @@ export function OxyServicesFedCMMixin(Base) {
210
210
  * @private
211
211
  */
212
212
  async exchangeIdTokenForSession(idToken) {
213
- return this.makeRequest('POST', '/api/auth/fedcm/exchange', {
213
+ return this.makeRequest('POST', '/api/fedcm/exchange', {
214
214
  id_token: idToken
215
215
  }, {
216
216
  cache: false
@@ -1 +1 @@
1
- {"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OxyAuthenticationError","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","nonce","generateNonce","clientId","getClientId","credential","requestIdentityCredential","configURL","context","token","session","exchangeIdTokenForSession","accessToken","httpService","setTokens","error","name","silentSignInWithFedCM","mediation","controller","AbortController","timeout","setTimeout","abort","credentials","get","identity","providers","loginHint","signal","type","clearTimeout","idToken","makeRequest","id_token","cache","revokeFedCMCredential","IdentityCredential","logout","getFedCMConfig","enabled","crypto","randomUUID","Date","now","Math","random","toString","substring","location","origin","FedCMMixin"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { useEffect, useRef, useState } from 'react';
4
- import { AppState } from 'react-native';
4
+ import { AppState, Platform } from 'react-native';
5
5
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
6
  import { SafeAreaProvider } from 'react-native-safe-area-context';
7
- import { KeyboardProvider } from 'react-native-keyboard-controller';
8
7
  import { OxyContextProvider } from "../context/OxyContext.js";
9
8
  import { QueryClientProvider, focusManager, onlineManager } from '@tanstack/react-query';
10
9
  import { setupFonts } from "./FontLoader.js";
11
- import BottomSheetRouter from "./BottomSheetRouter.js";
12
10
  import { Toaster } from "../../lib/sonner.js";
13
11
  import { createQueryClient } from "../hooks/queryClient.js";
14
12
  import { createPlatformStorage } from "../utils/storageHelpers.js";
@@ -17,11 +15,52 @@ import { createPlatformStorage } from "../utils/storageHelpers.js";
17
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
16
  setupFonts();
19
17
 
18
+ // Detect if running on web
19
+ const isWeb = Platform.OS === 'web';
20
+
21
+ // Conditionally import native-only components
22
+ let KeyboardProvider = ({
23
+ children
24
+ }) => children;
25
+ let BottomSheetRouter = () => null;
26
+ if (!isWeb) {
27
+ try {
28
+ // Only import on native platforms
29
+ KeyboardProvider = require('react-native-keyboard-controller').KeyboardProvider;
30
+ BottomSheetRouter = require('./BottomSheetRouter').default;
31
+ } catch {
32
+ // Fallback if imports fail
33
+ }
34
+ }
35
+
20
36
  /**
21
- * OxyProvider component
37
+ * OxyProvider - Universal provider for Expo apps (native + web)
38
+ *
39
+ * Zero-config authentication and session management:
40
+ * - Native (iOS/Android): Keychain-based identity, bottom sheet auth UI
41
+ * - Web: FedCM cross-domain SSO, popup fallback
42
+ *
43
+ * Usage:
44
+ * ```tsx
45
+ * import { OxyProvider, useAuth } from '@oxyhq/services';
22
46
  *
23
- * Provides the authentication/session context used across the app.
24
- * UI composition (e.g. OxyRouter inside a bottom sheet) can be added externally.
47
+ * function App() {
48
+ * return (
49
+ * <OxyProvider baseURL="https://api.oxy.so">
50
+ * <YourApp />
51
+ * </OxyProvider>
52
+ * );
53
+ * }
54
+ *
55
+ * function MyComponent() {
56
+ * const { isAuthenticated, user, signIn, signOut } = useAuth();
57
+ *
58
+ * if (!isAuthenticated) {
59
+ * return <OxySignInButton />;
60
+ * }
61
+ * return <Text>Welcome, {user?.username}!</Text>;
62
+ * }
63
+ * ```
25
64
  */
26
65
  const OxyProvider = ({
27
66
  oxyServices,
@@ -69,14 +108,26 @@ const OxyProvider = ({
69
108
  };
70
109
  }, [providedQueryClient]);
71
110
 
72
- // Hook React Query focus manager into React Native AppState
111
+ // Hook React Query focus manager into app state (native) or visibility (web)
73
112
  useEffect(() => {
74
- const subscription = AppState.addEventListener('change', state => {
75
- focusManager.setFocused(state === 'active');
76
- });
77
- return () => {
78
- subscription.remove();
79
- };
113
+ if (isWeb) {
114
+ // Web: use document visibility
115
+ const handleVisibilityChange = () => {
116
+ focusManager.setFocused(document.visibilityState === 'visible');
117
+ };
118
+ document.addEventListener('visibilitychange', handleVisibilityChange);
119
+ return () => {
120
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
121
+ };
122
+ } else {
123
+ // Native: use AppState
124
+ const subscription = AppState.addEventListener('change', state => {
125
+ focusManager.setFocused(state === 'active');
126
+ });
127
+ return () => {
128
+ subscription.remove();
129
+ };
130
+ }
80
131
  }, []);
81
132
 
82
133
  // Setup network status monitoring for offline detection
@@ -84,8 +135,19 @@ const OxyProvider = ({
84
135
  let cleanup;
85
136
  const setupNetworkMonitoring = async () => {
86
137
  try {
87
- // For React Native, try to use NetInfo
88
- if (typeof window === 'undefined' || typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
138
+ if (isWeb) {
139
+ // Web: use navigator.onLine
140
+ onlineManager.setOnline(navigator.onLine);
141
+ const handleOnline = () => onlineManager.setOnline(true);
142
+ const handleOffline = () => onlineManager.setOnline(false);
143
+ window.addEventListener('online', handleOnline);
144
+ window.addEventListener('offline', handleOffline);
145
+ cleanup = () => {
146
+ window.removeEventListener('online', handleOnline);
147
+ window.removeEventListener('offline', handleOffline);
148
+ };
149
+ } else {
150
+ // Native: try to use NetInfo
89
151
  try {
90
152
  const NetInfo = await import('@react-native-community/netinfo');
91
153
  const state = await NetInfo.default.fetch();
@@ -98,17 +160,6 @@ const OxyProvider = ({
98
160
  // NetInfo not available, default to online
99
161
  onlineManager.setOnline(true);
100
162
  }
101
- } else {
102
- // For web, use navigator.onLine
103
- onlineManager.setOnline(navigator.onLine);
104
- const handleOnline = () => onlineManager.setOnline(true);
105
- const handleOffline = () => onlineManager.setOnline(false);
106
- window.addEventListener('online', handleOnline);
107
- window.addEventListener('offline', handleOffline);
108
- cleanup = () => {
109
- window.removeEventListener('online', handleOnline);
110
- window.removeEventListener('offline', handleOffline);
111
- };
112
163
  }
113
164
  } catch (error) {
114
165
  // Default to online if detection fails
@@ -123,27 +174,43 @@ const OxyProvider = ({
123
174
 
124
175
  // Ensure we have a valid QueryClient
125
176
  if (!queryClient) {
126
- // Return loading state or fallback
127
177
  return null;
128
178
  }
179
+
180
+ // Core content that works on all platforms
181
+ const coreContent = /*#__PURE__*/_jsx(QueryClientProvider, {
182
+ client: queryClient,
183
+ children: /*#__PURE__*/_jsxs(OxyContextProvider, {
184
+ oxyServices: oxyServices,
185
+ baseURL: baseURL,
186
+ authWebUrl: authWebUrl,
187
+ authRedirectUri: authRedirectUri,
188
+ storageKeyPrefix: storageKeyPrefix,
189
+ onAuthStateChange: onAuthStateChange,
190
+ children: [children, !isWeb && /*#__PURE__*/_jsx(BottomSheetRouter, {}), /*#__PURE__*/_jsx(Toaster, {})]
191
+ })
192
+ });
193
+
194
+ // On web, minimal wrappers (GestureHandler and SafeArea work via react-native-web)
195
+ if (isWeb) {
196
+ return /*#__PURE__*/_jsx(SafeAreaProvider, {
197
+ children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
198
+ style: {
199
+ flex: 1
200
+ },
201
+ children: coreContent
202
+ })
203
+ });
204
+ }
205
+
206
+ // On native, full wrappers including KeyboardProvider
129
207
  return /*#__PURE__*/_jsx(SafeAreaProvider, {
130
208
  children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
131
209
  style: {
132
210
  flex: 1
133
211
  },
134
212
  children: /*#__PURE__*/_jsx(KeyboardProvider, {
135
- children: queryClient && /*#__PURE__*/_jsx(QueryClientProvider, {
136
- client: queryClient,
137
- children: /*#__PURE__*/_jsxs(OxyContextProvider, {
138
- oxyServices: oxyServices,
139
- baseURL: baseURL,
140
- authWebUrl: authWebUrl,
141
- authRedirectUri: authRedirectUri,
142
- storageKeyPrefix: storageKeyPrefix,
143
- onAuthStateChange: onAuthStateChange,
144
- children: [children, /*#__PURE__*/_jsx(BottomSheetRouter, {}), /*#__PURE__*/_jsx(Toaster, {})]
145
- })
146
- })
213
+ children: coreContent
147
214
  })
148
215
  })
149
216
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","AppState","GestureHandlerRootView","SafeAreaProvider","KeyboardProvider","OxyContextProvider","QueryClientProvider","focusManager","onlineManager","setupFonts","BottomSheetRouter","Toaster","createQueryClient","createPlatformStorage","jsx","_jsx","jsxs","_jsxs","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","baseURL","authWebUrl","authRedirectUri","queryClient","providedQueryClient","storageRef","queryClientRef","setQueryClient","current","mounted","then","storage","client","catch","error","__DEV__","console","warn","subscription","addEventListener","state","setFocused","remove","cleanup","setupNetworkMonitoring","window","navigator","product","NetInfo","default","fetch","setOnline","isConnected","unsubscribe","onLine","handleOnline","handleOffline","removeEventListener","style","flex"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","AppState","Platform","GestureHandlerRootView","SafeAreaProvider","OxyContextProvider","QueryClientProvider","focusManager","onlineManager","setupFonts","Toaster","createQueryClient","createPlatformStorage","jsx","_jsx","jsxs","_jsxs","isWeb","OS","KeyboardProvider","children","BottomSheetRouter","require","default","OxyProvider","oxyServices","onAuthStateChange","storageKeyPrefix","baseURL","authWebUrl","authRedirectUri","queryClient","providedQueryClient","storageRef","queryClientRef","setQueryClient","current","mounted","then","storage","client","catch","error","__DEV__","console","warn","handleVisibilityChange","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","state","remove","cleanup","setupNetworkMonitoring","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","fetch","isConnected","unsubscribe","coreContent","style","flex"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
+ import { useState } from 'react';
3
4
  import { TouchableOpacity, Text, View, StyleSheet, Platform } from 'react-native';
4
- import { useOxy } from "../context/OxyContext.js";
5
+ import { useAuth } from "../hooks/useAuth.js";
5
6
  import OxyLogo from "./OxyLogo.js";
6
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
8
  /**
@@ -38,31 +39,37 @@ export const OxySignInButton = ({
38
39
  disabled = false,
39
40
  showWhenAuthenticated = false
40
41
  }) => {
41
- // Get all needed values from context in a single call
42
42
  const {
43
43
  isAuthenticated,
44
- showBottomSheet
45
- } = useOxy();
44
+ signIn,
45
+ isLoading
46
+ } = useAuth();
47
+ const [isSigningIn, setIsSigningIn] = useState(false);
46
48
 
47
49
  // Don't show the button if already authenticated (unless explicitly overridden)
48
50
  if (isAuthenticated && !showWhenAuthenticated) return null;
49
51
 
50
- // Default handler that uses the context methods
51
- const handlePress = () => {
52
+ // Default handler that uses useAuth's signIn method
53
+ // This works for both web (popup) and native (bottom sheet)
54
+ const handlePress = async () => {
52
55
  if (onPress) {
53
56
  onPress();
54
57
  return;
55
58
  }
56
-
57
- // Use the new bottom sheet system to show the OxyAuth screen
58
- if (showBottomSheet) {
59
- showBottomSheet('OxyAuth');
60
- } else {
59
+ if (isSigningIn) return;
60
+ setIsSigningIn(true);
61
+ try {
62
+ await signIn();
63
+ } catch (error) {
64
+ // Sign-in handled by the auth flow
61
65
  if (__DEV__) {
62
- console.warn(`OxySignInButton: showBottomSheet is not available. Make sure OxyProvider is set up correctly.`);
66
+ console.log('OxySignInButton: Sign-in flow initiated', error);
63
67
  }
68
+ } finally {
69
+ setIsSigningIn(false);
64
70
  }
65
71
  };
72
+ const isButtonDisabled = disabled || isLoading || isSigningIn;
66
73
 
67
74
  // Determine the button style based on the variant
68
75
  const getButtonStyle = () => {
@@ -88,9 +95,9 @@ export const OxySignInButton = ({
88
95
  }
89
96
  };
90
97
  return /*#__PURE__*/_jsx(TouchableOpacity, {
91
- style: [styles.button, getButtonStyle(), disabled && styles.buttonDisabled],
98
+ style: [styles.button, getButtonStyle(), isButtonDisabled && styles.buttonDisabled],
92
99
  onPress: handlePress,
93
- disabled: disabled,
100
+ disabled: isButtonDisabled,
94
101
  children: /*#__PURE__*/_jsxs(View, {
95
102
  style: styles.buttonContent,
96
103
  children: [/*#__PURE__*/_jsx(OxyLogo, {
@@ -98,12 +105,12 @@ export const OxySignInButton = ({
98
105
  height: 20,
99
106
  fillColor: variant === 'contained' ? 'white' : '#d169e5',
100
107
  secondaryFillColor: variant === 'contained' ? '#d169e5' : undefined,
101
- style: disabled ? {
108
+ style: isButtonDisabled ? {
102
109
  opacity: 0.6
103
110
  } : undefined
104
111
  }), /*#__PURE__*/_jsx(Text, {
105
- style: [styles.text, getTextStyle(), disabled && styles.textDisabled],
106
- children: text
112
+ style: [styles.text, getTextStyle(), isButtonDisabled && styles.textDisabled],
113
+ children: isSigningIn ? 'Signing in...' : text
107
114
  })]
108
115
  })
109
116
  });
@@ -1 +1 @@
1
- {"version":3,"names":["TouchableOpacity","Text","View","StyleSheet","Platform","useOxy","OxyLogo","jsx","_jsx","jsxs","_jsxs","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","isAuthenticated","showBottomSheet","handlePress","__DEV__","console","warn","getButtonStyle","styles","buttonOutline","buttonContained","buttonDefault","getTextStyle","textOutline","textContained","textDefault","button","buttonDisabled","children","buttonContent","width","height","fillColor","secondaryFillColor","undefined","opacity","textDisabled","create","padding","borderRadius","alignItems","justifyContent","backgroundColor","borderWidth","borderColor","select","web","boxShadow","default","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flexDirection","fontFamily","OS","fontWeight","fontSize","marginLeft","color"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","TouchableOpacity","Text","View","StyleSheet","Platform","useAuth","OxyLogo","jsx","_jsx","jsxs","_jsxs","OxySignInButton","variant","onPress","style","textStyle","text","disabled","showWhenAuthenticated","isAuthenticated","signIn","isLoading","isSigningIn","setIsSigningIn","handlePress","error","__DEV__","console","log","isButtonDisabled","getButtonStyle","styles","buttonOutline","buttonContained","buttonDefault","getTextStyle","textOutline","textContained","textDefault","button","buttonDisabled","children","buttonContent","width","height","fillColor","secondaryFillColor","undefined","opacity","textDisabled","create","padding","borderRadius","alignItems","justifyContent","backgroundColor","borderWidth","borderColor","select","web","boxShadow","default","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flexDirection","fontFamily","OS","fontWeight","fontSize","marginLeft","color"],"sourceRoot":"../../../../src","sources":["ui/components/OxySignInButton.tsx"],"mappings":"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","ignoreList":[]}