@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.
- package/README.md +51 -42
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js +1 -1
- package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +106 -40
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +24 -17
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/WebOxyProvider.js +13 -5
- package/lib/commonjs/ui/components/WebOxyProvider.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +33 -8
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +55 -16
- package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.fedcm.js +1 -1
- package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +106 -39
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +24 -17
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/WebOxyProvider.js +13 -5
- package/lib/module/ui/components/WebOxyProvider.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +33 -8
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useWebSSO.js +55 -16
- package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
- package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +26 -3
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts +13 -5
- package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +8 -3
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +29 -7
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts +26 -3
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/WebOxyProvider.d.ts +13 -5
- package/lib/typescript/module/ui/components/WebOxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts +8 -3
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +29 -7
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/mixins/OxyServices.fedcm.ts +1 -1
- package/src/ui/components/OxyProvider.tsx +112 -47
- package/src/ui/components/OxySignInButton.tsx +24 -17
- package/src/ui/components/WebOxyProvider.tsx +13 -5
- package/src/ui/hooks/useAuth.ts +42 -12
- 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
|
-
|
|
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","
|
|
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
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
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
|
-
*
|
|
31
|
-
*
|
|
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
|
|
48
|
-
//
|
|
49
|
-
const session = await oxyServices.
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
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","
|
|
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/
|
|
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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
|
|
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
|
|
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
|
-
*
|
|
24
|
-
*
|
|
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
|
|
111
|
+
// Hook React Query focus manager into app state (native) or visibility (web)
|
|
73
112
|
useEffect(() => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
88
|
-
|
|
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:
|
|
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","
|
|
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 {
|
|
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
|
-
|
|
45
|
-
|
|
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
|
|
51
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
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.
|
|
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(),
|
|
98
|
+
style: [styles.button, getButtonStyle(), isButtonDisabled && styles.buttonDisabled],
|
|
92
99
|
onPress: handlePress,
|
|
93
|
-
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:
|
|
108
|
+
style: isButtonDisabled ? {
|
|
102
109
|
opacity: 0.6
|
|
103
110
|
} : undefined
|
|
104
111
|
}), /*#__PURE__*/_jsx(Text, {
|
|
105
|
-
style: [styles.text, getTextStyle(),
|
|
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","
|
|
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":[]}
|