@oxyhq/services 5.19.0 → 5.20.1

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 (43) hide show
  1. package/README.md +51 -42
  2. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +46 -24
  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/WebOxyProvider.js +9 -10
  7. package/lib/commonjs/ui/components/WebOxyProvider.js.map +1 -1
  8. package/lib/commonjs/ui/hooks/useAuth.js +21 -8
  9. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  10. package/lib/commonjs/ui/hooks/useWebSSO.js +21 -2
  11. package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
  12. package/lib/module/core/mixins/OxyServices.fedcm.js +46 -24
  13. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
  14. package/lib/module/ui/components/OxyProvider.js +106 -39
  15. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  16. package/lib/module/ui/components/WebOxyProvider.js +9 -10
  17. package/lib/module/ui/components/WebOxyProvider.js.map +1 -1
  18. package/lib/module/ui/hooks/useAuth.js +21 -8
  19. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  20. package/lib/module/ui/hooks/useWebSSO.js +21 -2
  21. package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
  22. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts +10 -1
  23. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +26 -3
  25. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts +9 -10
  27. package/lib/typescript/commonjs/ui/components/WebOxyProvider.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
  30. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts +10 -1
  31. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  32. package/lib/typescript/module/ui/components/OxyProvider.d.ts +26 -3
  33. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  34. package/lib/typescript/module/ui/components/WebOxyProvider.d.ts +9 -10
  35. package/lib/typescript/module/ui/components/WebOxyProvider.d.ts.map +1 -1
  36. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  37. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/core/mixins/OxyServices.fedcm.ts +47 -23
  40. package/src/ui/components/OxyProvider.tsx +112 -47
  41. package/src/ui/components/WebOxyProvider.tsx +9 -10
  42. package/src/ui/hooks/useAuth.ts +25 -8
  43. package/src/ui/hooks/useWebSSO.ts +21 -2
package/README.md CHANGED
@@ -22,12 +22,13 @@ A comprehensive TypeScript client library for the Oxy API providing authenticati
22
22
  ## ✨ Features
23
23
 
24
24
  - 🔐 **Zero-Config Authentication**: Automatic token management and refresh
25
- - 📱 **React Native First**: Optimized for React Native and Expo applications
26
- - 🎨 **UI Components**: Pre-built React Native components and router ready for custom presentation layers
27
- - 🔄 **Cross-Platform**: Works seamlessly in React Native, Expo, and Node.js
25
+ - 🌐 **Cross-Domain SSO**: Sign in once, authenticated everywhere (FedCM-based)
26
+ - 📱 **Universal Provider**: Single `OxyProvider` works on iOS, Android, and Web
27
+ - 🎨 **UI Components**: Pre-built components for auth, profiles, and more
28
+ - 🔄 **Cross-Platform**: Works in Expo, React Native, and Node.js
28
29
  - 📱 **Multi-Session Support**: Manage multiple user sessions simultaneously
29
30
  - 🔧 **TypeScript First**: Full type safety and IntelliSense support
30
- - 🚀 **Performance Optimized**: Automatic caching and state management
31
+ - 🚀 **Performance Optimized**: Automatic caching with TanStack Query
31
32
  - 🛡️ **Production Ready**: Error handling, retry logic, and security best practices
32
33
 
33
34
  ## 📦 Installation
@@ -65,10 +66,10 @@ import 'react-native-url-polyfill/auto';
65
66
 
66
67
  ## 🚀 Quick Start
67
68
 
68
- ### React Native/Expo
69
+ ### Expo Apps (Native + Web)
69
70
 
70
71
  ```typescript
71
- import { OxyProvider, useOxy } from '@oxyhq/services';
72
+ import { OxyProvider, useAuth } from '@oxyhq/services';
72
73
 
73
74
  function App() {
74
75
  return (
@@ -79,13 +80,32 @@ function App() {
79
80
  }
80
81
 
81
82
  function UserProfile() {
82
- const { oxyServices, user, isAuthenticated } = useOxy();
83
-
83
+ const { user, isAuthenticated, signIn, signOut } = useAuth();
84
+
84
85
  if (!isAuthenticated) {
85
- return <Text>Please sign in</Text>;
86
+ return <Button onPress={() => signIn()} title="Sign In" />;
86
87
  }
87
-
88
- return <Text>Welcome, {user?.name}!</Text>;
88
+
89
+ return (
90
+ <View>
91
+ <Text>Welcome, {user?.username}!</Text>
92
+ <Button onPress={signOut} title="Sign Out" />
93
+ </View>
94
+ );
95
+ }
96
+ ```
97
+
98
+ ### Pure React/Next.js (No Expo)
99
+
100
+ ```typescript
101
+ import { WebOxyProvider, useAuth } from '@oxyhq/services';
102
+
103
+ function App() {
104
+ return (
105
+ <WebOxyProvider baseURL="https://api.oxy.so">
106
+ <YourApp />
107
+ </WebOxyProvider>
108
+ );
89
109
  }
90
110
  ```
91
111
 
@@ -129,19 +149,19 @@ app.listen(3000);
129
149
 
130
150
  ## 📖 Usage Patterns
131
151
 
132
- ### React Native/Expo
152
+ ### Expo Apps (Native + Web)
133
153
 
134
- #### 1. **OxyProvider + useOxy Hook (Recommended)**
154
+ #### 1. **OxyProvider + useAuth Hook (Recommended)**
135
155
 
136
- This pattern provides full React Native integration with automatic state management, UI components, and authentication flow.
156
+ `OxyProvider` works on all platforms (iOS, Android, Web). Use `useAuth` for authentication.
137
157
 
138
158
  ```typescript
139
- import { OxyProvider, useOxy } from '@oxyhq/services';
159
+ import { OxyProvider, useAuth, OxySignInButton } from '@oxyhq/services';
140
160
 
141
161
  // App.tsx - Setup the provider
142
162
  function App() {
143
163
  return (
144
- <OxyProvider
164
+ <OxyProvider
145
165
  baseURL="https://api.oxy.so"
146
166
  onAuthStateChange={(user) => {
147
167
  console.log('Auth state changed:', user ? 'logged in' : 'logged out');
@@ -154,36 +174,25 @@ function App() {
154
174
 
155
175
  // Component.tsx - Use the hook
156
176
  function UserProfile() {
157
- const {
158
- oxyServices, // OxyServices instance
159
- user, // Current user data
160
- isAuthenticated, // Authentication state
161
- login, // Login method
162
- logout // Logout method
163
- } = useOxy();
177
+ const { user, isAuthenticated, signIn, signOut, isLoading } = useAuth();
164
178
 
165
- const handleLogin = async () => {
166
- try {
167
- await login('username', 'password');
168
- } catch (error) {
169
- console.error('Login failed:', error);
170
- }
171
- };
179
+ if (isLoading) return <ActivityIndicator />;
180
+
181
+ if (!isAuthenticated) {
182
+ return (
183
+ <View>
184
+ <Text>Welcome! Please sign in.</Text>
185
+ <OxySignInButton />
186
+ {/* Or use signIn() directly: */}
187
+ <Button onPress={() => signIn()} title="Sign In" />
188
+ </View>
189
+ );
190
+ }
172
191
 
173
192
  return (
174
193
  <View>
175
- {isAuthenticated ? (
176
- <View>
177
- <Text style={styles.title}>Welcome, {user?.name}!</Text>
178
- <TouchableOpacity onPress={logout} style={styles.button}>
179
- <Text>Sign Out</Text>
180
- </TouchableOpacity>
181
- </View>
182
- ) : (
183
- <TouchableOpacity onPress={handleLogin} style={styles.button}>
184
- <Text>Sign In</Text>
185
- </TouchableOpacity>
186
- )}
194
+ <Text style={styles.title}>Welcome, {user?.username}!</Text>
195
+ <Button onPress={signOut} title="Sign Out" />
187
196
  </View>
188
197
  );
189
198
  }
@@ -5,6 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FedCMMixin = exports.OxyServicesFedCMMixin = OxyServicesFedCMMixin;
7
7
  var _OxyServicesErrors = require("../OxyServices.errors.js");
8
+ // Global lock to prevent concurrent FedCM requests
9
+ // FedCM only allows one navigator.credentials.get request at a time
10
+ let fedCMRequestInProgress = false;
11
+ let fedCMRequestPromise = null;
12
+
8
13
  /**
9
14
  * Federated Credential Management (FedCM) Authentication Mixin
10
15
  *
@@ -173,36 +178,53 @@ function OxyServicesFedCMMixin(Base) {
173
178
  /**
174
179
  * Request identity credential from browser using FedCM API
175
180
  *
181
+ * Uses a global lock to prevent concurrent requests, as FedCM only
182
+ * allows one navigator.credentials.get request at a time.
183
+ *
176
184
  * @private
177
185
  */
178
186
  async requestIdentityCredential(options) {
179
- const controller = new AbortController();
180
- const timeout = setTimeout(() => controller.abort(), this.constructor.FEDCM_TIMEOUT);
181
- try {
182
- // Type assertion needed as FedCM types may not be in all TypeScript versions
183
- const credential = await navigator.credentials.get({
184
- identity: {
185
- providers: [{
186
- configURL: options.configURL,
187
- clientId: options.clientId,
188
- nonce: options.nonce,
189
- ...(options.context && {
190
- loginHint: options.context
191
- })
192
- }]
193
- },
194
- mediation: options.mediation || 'optional',
195
- signal: controller.signal
196
- });
197
- if (!credential || credential.type !== 'identity') {
187
+ // If a request is already in progress, wait for it instead of starting a new one
188
+ if (fedCMRequestInProgress && fedCMRequestPromise) {
189
+ try {
190
+ return await fedCMRequestPromise;
191
+ } catch {
198
192
  return null;
199
193
  }
200
- return {
201
- token: credential.token
202
- };
203
- } finally {
204
- clearTimeout(timeout);
205
194
  }
195
+ fedCMRequestInProgress = true;
196
+ const controller = new AbortController();
197
+ const timeout = setTimeout(() => controller.abort(), this.constructor.FEDCM_TIMEOUT);
198
+ fedCMRequestPromise = (async () => {
199
+ try {
200
+ // Type assertion needed as FedCM types may not be in all TypeScript versions
201
+ const credential = await navigator.credentials.get({
202
+ identity: {
203
+ providers: [{
204
+ configURL: options.configURL,
205
+ clientId: options.clientId,
206
+ nonce: options.nonce,
207
+ ...(options.context && {
208
+ loginHint: options.context
209
+ })
210
+ }]
211
+ },
212
+ mediation: options.mediation || 'optional',
213
+ signal: controller.signal
214
+ });
215
+ if (!credential || credential.type !== 'identity') {
216
+ return null;
217
+ }
218
+ return {
219
+ token: credential.token
220
+ };
221
+ } finally {
222
+ clearTimeout(timeout);
223
+ fedCMRequestInProgress = false;
224
+ fedCMRequestPromise = null;
225
+ }
226
+ })();
227
+ return fedCMRequestPromise;
206
228
  }
207
229
 
208
230
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_OxyServicesErrors","require","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","OxyAuthenticationError","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"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_OxyServicesErrors","require","fedCMRequestInProgress","fedCMRequestPromise","OxyServicesFedCMMixin","Base","constructor","args","DEFAULT_CONFIG_URL","FEDCM_TIMEOUT","isFedCMSupported","window","navigator","signInWithFedCM","options","OxyAuthenticationError","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"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.fedcm.ts"],"mappings":"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","ignoreList":[]}
@@ -8,24 +8,62 @@ var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
10
10
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
- var _reactNativeKeyboardController = require("react-native-keyboard-controller");
12
11
  var _OxyContext = require("../context/OxyContext.js");
13
12
  var _reactQuery = require("@tanstack/react-query");
14
13
  var _FontLoader = require("./FontLoader.js");
15
- var _BottomSheetRouter = _interopRequireDefault(require("./BottomSheetRouter.js"));
16
14
  var _sonner = require("../../lib/sonner.js");
17
15
  var _queryClient = require("../hooks/queryClient.js");
18
16
  var _storageHelpers = require("../utils/storageHelpers.js");
19
17
  var _jsxRuntime = require("react/jsx-runtime");
20
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } // Initialize fonts automatically
22
19
  (0, _FontLoader.setupFonts)();
23
20
 
21
+ // Detect if running on web
22
+ const isWeb = _reactNative.Platform.OS === 'web';
23
+
24
+ // Conditionally import native-only components
25
+ let KeyboardProvider = ({
26
+ children
27
+ }) => children;
28
+ let BottomSheetRouter = () => null;
29
+ if (!isWeb) {
30
+ try {
31
+ // Only import on native platforms
32
+ KeyboardProvider = require('react-native-keyboard-controller').KeyboardProvider;
33
+ BottomSheetRouter = require('./BottomSheetRouter').default;
34
+ } catch {
35
+ // Fallback if imports fail
36
+ }
37
+ }
38
+
24
39
  /**
25
- * OxyProvider component
40
+ * OxyProvider - Universal provider for Expo apps (native + web)
41
+ *
42
+ * Zero-config authentication and session management:
43
+ * - Native (iOS/Android): Keychain-based identity, bottom sheet auth UI
44
+ * - Web: FedCM cross-domain SSO, popup fallback
45
+ *
46
+ * Usage:
47
+ * ```tsx
48
+ * import { OxyProvider, useAuth } from '@oxyhq/services';
26
49
  *
27
- * Provides the authentication/session context used across the app.
28
- * UI composition (e.g. OxyRouter inside a bottom sheet) can be added externally.
50
+ * function App() {
51
+ * return (
52
+ * <OxyProvider baseURL="https://api.oxy.so">
53
+ * <YourApp />
54
+ * </OxyProvider>
55
+ * );
56
+ * }
57
+ *
58
+ * function MyComponent() {
59
+ * const { isAuthenticated, user, signIn, signOut } = useAuth();
60
+ *
61
+ * if (!isAuthenticated) {
62
+ * return <OxySignInButton />;
63
+ * }
64
+ * return <Text>Welcome, {user?.username}!</Text>;
65
+ * }
66
+ * ```
29
67
  */
30
68
  const OxyProvider = ({
31
69
  oxyServices,
@@ -73,14 +111,26 @@ const OxyProvider = ({
73
111
  };
74
112
  }, [providedQueryClient]);
75
113
 
76
- // Hook React Query focus manager into React Native AppState
114
+ // Hook React Query focus manager into app state (native) or visibility (web)
77
115
  (0, _react.useEffect)(() => {
78
- const subscription = _reactNative.AppState.addEventListener('change', state => {
79
- _reactQuery.focusManager.setFocused(state === 'active');
80
- });
81
- return () => {
82
- subscription.remove();
83
- };
116
+ if (isWeb) {
117
+ // Web: use document visibility
118
+ const handleVisibilityChange = () => {
119
+ _reactQuery.focusManager.setFocused(document.visibilityState === 'visible');
120
+ };
121
+ document.addEventListener('visibilitychange', handleVisibilityChange);
122
+ return () => {
123
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
124
+ };
125
+ } else {
126
+ // Native: use AppState
127
+ const subscription = _reactNative.AppState.addEventListener('change', state => {
128
+ _reactQuery.focusManager.setFocused(state === 'active');
129
+ });
130
+ return () => {
131
+ subscription.remove();
132
+ };
133
+ }
84
134
  }, []);
85
135
 
86
136
  // Setup network status monitoring for offline detection
@@ -88,8 +138,19 @@ const OxyProvider = ({
88
138
  let cleanup;
89
139
  const setupNetworkMonitoring = async () => {
90
140
  try {
91
- // For React Native, try to use NetInfo
92
- if (typeof window === 'undefined' || typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
141
+ if (isWeb) {
142
+ // Web: use navigator.onLine
143
+ _reactQuery.onlineManager.setOnline(navigator.onLine);
144
+ const handleOnline = () => _reactQuery.onlineManager.setOnline(true);
145
+ const handleOffline = () => _reactQuery.onlineManager.setOnline(false);
146
+ window.addEventListener('online', handleOnline);
147
+ window.addEventListener('offline', handleOffline);
148
+ cleanup = () => {
149
+ window.removeEventListener('online', handleOnline);
150
+ window.removeEventListener('offline', handleOffline);
151
+ };
152
+ } else {
153
+ // Native: try to use NetInfo
93
154
  try {
94
155
  const NetInfo = await Promise.resolve().then(() => _interopRequireWildcard(require('@react-native-community/netinfo')));
95
156
  const state = await NetInfo.default.fetch();
@@ -102,17 +163,6 @@ const OxyProvider = ({
102
163
  // NetInfo not available, default to online
103
164
  _reactQuery.onlineManager.setOnline(true);
104
165
  }
105
- } else {
106
- // For web, use navigator.onLine
107
- _reactQuery.onlineManager.setOnline(navigator.onLine);
108
- const handleOnline = () => _reactQuery.onlineManager.setOnline(true);
109
- const handleOffline = () => _reactQuery.onlineManager.setOnline(false);
110
- window.addEventListener('online', handleOnline);
111
- window.addEventListener('offline', handleOffline);
112
- cleanup = () => {
113
- window.removeEventListener('online', handleOnline);
114
- window.removeEventListener('offline', handleOffline);
115
- };
116
166
  }
117
167
  } catch (error) {
118
168
  // Default to online if detection fails
@@ -127,27 +177,43 @@ const OxyProvider = ({
127
177
 
128
178
  // Ensure we have a valid QueryClient
129
179
  if (!queryClient) {
130
- // Return loading state or fallback
131
180
  return null;
132
181
  }
182
+
183
+ // Core content that works on all platforms
184
+ const coreContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuery.QueryClientProvider, {
185
+ client: queryClient,
186
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_OxyContext.OxyContextProvider, {
187
+ oxyServices: oxyServices,
188
+ baseURL: baseURL,
189
+ authWebUrl: authWebUrl,
190
+ authRedirectUri: authRedirectUri,
191
+ storageKeyPrefix: storageKeyPrefix,
192
+ onAuthStateChange: onAuthStateChange,
193
+ children: [children, !isWeb && /*#__PURE__*/(0, _jsxRuntime.jsx)(BottomSheetRouter, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sonner.Toaster, {})]
194
+ })
195
+ });
196
+
197
+ // On web, minimal wrappers (GestureHandler and SafeArea work via react-native-web)
198
+ if (isWeb) {
199
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSafeAreaContext.SafeAreaProvider, {
200
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
201
+ style: {
202
+ flex: 1
203
+ },
204
+ children: coreContent
205
+ })
206
+ });
207
+ }
208
+
209
+ // On native, full wrappers including KeyboardProvider
133
210
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSafeAreaContext.SafeAreaProvider, {
134
211
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
135
212
  style: {
136
213
  flex: 1
137
214
  },
138
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardProvider, {
139
- children: queryClient && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuery.QueryClientProvider, {
140
- client: queryClient,
141
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_OxyContext.OxyContextProvider, {
142
- oxyServices: oxyServices,
143
- baseURL: baseURL,
144
- authWebUrl: authWebUrl,
145
- authRedirectUri: authRedirectUri,
146
- storageKeyPrefix: storageKeyPrefix,
147
- onAuthStateChange: onAuthStateChange,
148
- children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheetRouter.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sonner.Toaster, {})]
149
- })
150
- })
215
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(KeyboardProvider, {
216
+ children: coreContent
151
217
  })
152
218
  })
153
219
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeSafeAreaContext","_reactNativeKeyboardController","_OxyContext","_reactQuery","_FontLoader","_BottomSheetRouter","_interopRequireDefault","_sonner","_queryClient","_storageHelpers","_jsxRuntime","e","__esModule","default","_interopRequireWildcard","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","setupFonts","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","baseURL","authWebUrl","authRedirectUri","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","error","__DEV__","console","warn","subscription","AppState","addEventListener","state","focusManager","setFocused","remove","cleanup","setupNetworkMonitoring","window","navigator","product","NetInfo","Promise","resolve","fetch","onlineManager","setOnline","isConnected","unsubscribe","onLine","handleOnline","handleOffline","removeEventListener","jsx","SafeAreaProvider","GestureHandlerRootView","style","flex","KeyboardProvider","QueryClientProvider","jsxs","OxyContextProvider","Toaster","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeSafeAreaContext","_OxyContext","_reactQuery","_FontLoader","_sonner","_queryClient","_storageHelpers","_jsxRuntime","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","setupFonts","isWeb","Platform","OS","KeyboardProvider","children","BottomSheetRouter","OxyProvider","oxyServices","onAuthStateChange","storageKeyPrefix","baseURL","authWebUrl","authRedirectUri","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","error","__DEV__","console","warn","handleVisibilityChange","focusManager","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","AppState","state","remove","cleanup","setupNetworkMonitoring","onlineManager","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","Promise","resolve","fetch","isConnected","unsubscribe","coreContent","jsx","QueryClientProvider","jsxs","OxyContextProvider","Toaster","SafeAreaProvider","GestureHandlerRootView","style","flex","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,18 +11,20 @@ var _queryClient = require("../hooks/queryClient.js");
11
11
  var _storageHelpers = require("../utils/storageHelpers.js");
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  /**
14
- * WebOxyProvider - OxyProvider for web apps (Next.js, React)
14
+ * WebOxyProvider - Lightweight provider for pure React/Next.js apps
15
15
  *
16
- * This provider is specifically for web environments and doesn't include
17
- * React Native-specific dependencies. It provides:
16
+ * Use this provider for web apps that DON'T use Expo/React Native.
17
+ * For Expo apps (native + web), use `OxyProvider` instead - it works on all platforms.
18
+ *
19
+ * Features:
18
20
  * - Automatic cross-domain SSO via FedCM (Chrome 108+, Safari 16.4+, Edge 108+)
21
+ * - No React Native dependencies
19
22
  * - Session management
20
23
  * - All useOxy/useAuth functionality
21
24
  *
22
- * Zero-config: Just wrap your app and SSO works automatically across domains.
23
- *
24
25
  * Usage:
25
26
  * ```tsx
27
+ * // For pure React/Next.js apps (no Expo):
26
28
  * import { WebOxyProvider, useAuth } from '@oxyhq/services';
27
29
  *
28
30
  * function App() {
@@ -33,11 +35,8 @@ var _jsxRuntime = require("react/jsx-runtime");
33
35
  * );
34
36
  * }
35
37
  *
36
- * function LoginButton() {
37
- * const { isAuthenticated, signIn, user } = useAuth();
38
- * if (isAuthenticated) return <span>Welcome, {user?.username}!</span>;
39
- * return <button onClick={() => signIn()}>Sign In</button>;
40
- * }
38
+ * // For Expo apps (native + web), use OxyProvider instead:
39
+ * import { OxyProvider, useAuth } from '@oxyhq/services';
41
40
  * ```
42
41
  */
43
42
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OxyContext","_reactQuery","_queryClient","_storageHelpers","_jsxRuntime","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","storageKeyPrefix","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","jsx","QueryClientProvider","OxyContextProvider","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/WebOxyProvider.tsx"],"mappings":";;;;;;AA+BA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAAuF,IAAAK,WAAA,GAAAL,OAAA;AAnCvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,cAAuC,GAAGA,CAAC;EAC/CC,QAAQ;EACRC,OAAO;EACPC,UAAU;EACVC,iBAAiB;EACjBC,gBAAgB;EAChBC,WAAW,EAAEC;AACf,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACxD,MAAMC,cAAc,GAAG,IAAAD,aAAM,EAA8C,IAAI,CAAC;EAChF,MAAM,CAACH,WAAW,EAAEK,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAA8C,IAAI,CAAC;EAEjG,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIN,mBAAmB,EAAE;MACvBG,cAAc,CAACI,OAAO,GAAGP,mBAAmB;MAC5CI,cAAc,CAACJ,mBAAmB,CAAC;MACnC;IACF;IAEA,IAAIQ,OAAO,GAAG,IAAI;IAClB,IAAAC,qCAAqB,EAAC,CAAC,CACpBC,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIH,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtCN,UAAU,CAACM,OAAO,GAAGI,OAAO;QAC5B,MAAMC,MAAM,GAAG,IAAAC,8BAAiB,EAACF,OAAO,CAAC;QACzCR,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC,CACDE,KAAK,CAAC,MAAM;MACX,IAAIN,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtC,MAAMK,MAAM,GAAG,IAAAC,8BAAiB,EAAC,IAAI,CAAC;QACtCV,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXJ,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,CAACR,mBAAmB,CAAC,CAAC;;EAEzB;EACA,IAAI,CAACD,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,oBACE,IAAAP,WAAA,CAAAuB,GAAA,EAAC1B,WAAA,CAAA2B,mBAAmB;IAACJ,MAAM,EAAEb,WAAY;IAAAL,QAAA,eACvC,IAAAF,WAAA,CAAAuB,GAAA,EAAC3B,WAAA,CAAA6B,kBAAkB;MACjBtB,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBE,gBAAgB,EAAEA,gBAAiB;MACnCD,iBAAiB,EAAEA,iBAAkB;MAAAH,QAAA,EAEpCA;IAAQ,CACS;EAAC,CACF,CAAC;AAE1B,CAAC;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa3B,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OxyContext","_reactQuery","_queryClient","_storageHelpers","_jsxRuntime","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","storageKeyPrefix","queryClient","providedQueryClient","storageRef","useRef","queryClientRef","setQueryClient","useState","useEffect","current","mounted","createPlatformStorage","then","storage","client","createQueryClient","catch","jsx","QueryClientProvider","OxyContextProvider","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/WebOxyProvider.tsx"],"mappings":";;;;;;AA8BA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAAuF,IAAAK,WAAA,GAAAL,OAAA;AAlCvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,cAAuC,GAAGA,CAAC;EAC/CC,QAAQ;EACRC,OAAO;EACPC,UAAU;EACVC,iBAAiB;EACjBC,gBAAgB;EAChBC,WAAW,EAAEC;AACf,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACxD,MAAMC,cAAc,GAAG,IAAAD,aAAM,EAA8C,IAAI,CAAC;EAChF,MAAM,CAACH,WAAW,EAAEK,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAA8C,IAAI,CAAC;EAEjG,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIN,mBAAmB,EAAE;MACvBG,cAAc,CAACI,OAAO,GAAGP,mBAAmB;MAC5CI,cAAc,CAACJ,mBAAmB,CAAC;MACnC;IACF;IAEA,IAAIQ,OAAO,GAAG,IAAI;IAClB,IAAAC,qCAAqB,EAAC,CAAC,CACpBC,IAAI,CAAEC,OAAO,IAAK;MACjB,IAAIH,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtCN,UAAU,CAACM,OAAO,GAAGI,OAAO;QAC5B,MAAMC,MAAM,GAAG,IAAAC,8BAAiB,EAACF,OAAO,CAAC;QACzCR,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC,CACDE,KAAK,CAAC,MAAM;MACX,IAAIN,OAAO,IAAI,CAACL,cAAc,CAACI,OAAO,EAAE;QACtC,MAAMK,MAAM,GAAG,IAAAC,8BAAiB,EAAC,IAAI,CAAC;QACtCV,cAAc,CAACI,OAAO,GAAGK,MAAM;QAC/BR,cAAc,CAACQ,MAAM,CAAC;MACxB;IACF,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXJ,OAAO,GAAG,KAAK;IACjB,CAAC;EACH,CAAC,EAAE,CAACR,mBAAmB,CAAC,CAAC;;EAEzB;EACA,IAAI,CAACD,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,oBACE,IAAAP,WAAA,CAAAuB,GAAA,EAAC1B,WAAA,CAAA2B,mBAAmB;IAACJ,MAAM,EAAEb,WAAY;IAAAL,QAAA,eACvC,IAAAF,WAAA,CAAAuB,GAAA,EAAC3B,WAAA,CAAA6B,kBAAkB;MACjBtB,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBE,gBAAgB,EAAEA,gBAAiB;MACnCD,iBAAiB,EAAEA,iBAAkB;MAAAH,QAAA,EAEpCA;IAAQ,CACS;EAAC,CACF,CAAC;AAE1B,CAAC;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa3B,cAAc","ignoreList":[]}
@@ -64,8 +64,12 @@ function useAuth() {
64
64
  showBottomSheet
65
65
  } = (0, _OxyContext.useOxy)();
66
66
  const signIn = (0, _react.useCallback)(async publicKey => {
67
- // Web: Use popup-based authentication
68
- if ((0, _useWebSSO.isWebBrowser)() && !publicKey) {
67
+ // Check if we're on the identity provider itself (auth.oxy.so)
68
+ // Only auth.oxy.so has local login forms - accounts.oxy.so is a client app
69
+ const isIdentityProvider = (0, _useWebSSO.isWebBrowser)() && window.location.hostname === 'auth.oxy.so';
70
+
71
+ // Web (not on IdP): Use FedCM or popup-based authentication
72
+ if ((0, _useWebSSO.isWebBrowser)() && !publicKey && !isIdentityProvider) {
69
73
  try {
70
74
  // Try FedCM first (instant if user already signed in)
71
75
  if (oxyServices.isFedCMSupported?.()) {
@@ -102,13 +106,22 @@ function useAuth() {
102
106
  }
103
107
  }
104
108
 
105
- // No identity - show auth UI (native bottom sheet)
106
- showBottomSheet?.('OxyAuth');
109
+ // No identity - show auth UI
110
+ if (showBottomSheet) {
111
+ showBottomSheet('OxyAuth');
112
+ // Return a promise that resolves when auth completes
113
+ return new Promise((_, reject) => {
114
+ reject(new Error('Please complete sign-in in the auth sheet'));
115
+ });
116
+ }
107
117
 
108
- // Return a promise that resolves when auth completes
109
- return new Promise((_, reject) => {
110
- reject(new Error('Please complete sign-in in the auth sheet'));
111
- });
118
+ // Web fallback: navigate to login page on auth domain
119
+ if ((0, _useWebSSO.isWebBrowser)()) {
120
+ const loginUrl = window.location.hostname.includes('oxy.so') ? '/login' : 'https://accounts.oxy.so/login';
121
+ window.location.href = loginUrl;
122
+ return new Promise(() => {}); // Never resolves, page will redirect
123
+ }
124
+ throw new Error('No authentication method available');
112
125
  }, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet, oxyServices]);
113
126
  const signOut = (0, _react.useCallback)(async () => {
114
127
  await logout();
@@ -1 +1 @@
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":[]}
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","isIdentityProvider","isWebBrowser","window","location","hostname","isFedCMSupported","fedcmSession","signInWithFedCM","popupSession","signInWithPopup","Error","message","includes","hasExisting","existingKey","Promise","_","reject","loginUrl","href","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":"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","ignoreList":[]}