@oxyhq/services 5.22.0 → 5.24.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.
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WebOxyProvider = WebOxyProvider;
7
+ exports.useAuth = useAuth;
8
+ exports.useWebOxy = useWebOxy;
9
+ var _react = require("react");
10
+ var _index = require("../core/index.js");
11
+ var _reactQuery = require("@tanstack/react-query");
12
+ var _queryClient = require("../ui/hooks/queryClient.js");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * Web-Only Oxy Context
16
+ * Clean implementation with ZERO React Native dependencies
17
+ */
18
+
19
+ const WebOxyContext = /*#__PURE__*/(0, _react.createContext)(null);
20
+ /**
21
+ * Web-only Oxy Provider
22
+ * Minimal, clean implementation for web apps
23
+ */
24
+ function WebOxyProvider({
25
+ children,
26
+ baseURL,
27
+ authWebUrl,
28
+ onAuthStateChange
29
+ }) {
30
+ const [oxyServices] = (0, _react.useState)(() => new _index.OxyServices({
31
+ baseURL,
32
+ authWebUrl
33
+ }));
34
+ const [user, setUser] = (0, _react.useState)(null);
35
+ const [isLoading, setIsLoading] = (0, _react.useState)(true);
36
+ const [error, setError] = (0, _react.useState)(null);
37
+ const [queryClient] = (0, _react.useState)(() => (0, _queryClient.createQueryClient)());
38
+ const isAuthenticated = !!user;
39
+
40
+ // Initialize - check for existing session
41
+ (0, _react.useEffect)(() => {
42
+ let mounted = true;
43
+ const initAuth = async () => {
44
+ try {
45
+ // Try to get current user (will use existing auth token if available)
46
+ const currentUser = await oxyServices.getCurrentUser();
47
+ if (mounted && currentUser) {
48
+ setUser(currentUser);
49
+ }
50
+ } catch (err) {
51
+ // No active session - this is fine
52
+ console.log('[WebOxy] No active session');
53
+ } finally {
54
+ if (mounted) {
55
+ setIsLoading(false);
56
+ }
57
+ }
58
+ };
59
+ initAuth();
60
+ return () => {
61
+ mounted = false;
62
+ };
63
+ }, [oxyServices]);
64
+
65
+ // Notify parent of auth state changes
66
+ (0, _react.useEffect)(() => {
67
+ onAuthStateChange?.(user);
68
+ }, [user, onAuthStateChange]);
69
+ const signIn = (0, _react.useCallback)(async () => {
70
+ setError(null);
71
+ setIsLoading(true);
72
+ try {
73
+ // Open popup to auth.oxy.so
74
+ const popup = window.open(`${authWebUrl || 'https://auth.oxy.so'}/login?origin=${encodeURIComponent(window.location.origin)}`, 'oxy-auth', 'width=500,height=700,popup=yes');
75
+ if (!popup) {
76
+ throw new Error('Popup blocked. Please allow popups for this site.');
77
+ }
78
+
79
+ // Listen for message from popup
80
+ const handleMessage = async event => {
81
+ if (event.origin !== (authWebUrl || 'https://auth.oxy.so')) {
82
+ return;
83
+ }
84
+ if (event.data.type === 'oxy-auth-success') {
85
+ const {
86
+ accessToken,
87
+ user: authUser
88
+ } = event.data;
89
+
90
+ // Store the access token for API requests
91
+ if (typeof window !== 'undefined' && accessToken) {
92
+ localStorage.setItem('oxy-access-token', accessToken);
93
+ }
94
+ setUser(authUser);
95
+ setIsLoading(false);
96
+ window.removeEventListener('message', handleMessage);
97
+ popup.close();
98
+ } else if (event.data.type === 'oxy-auth-error') {
99
+ setError(event.data.error || 'Authentication failed');
100
+ setIsLoading(false);
101
+ window.removeEventListener('message', handleMessage);
102
+ popup.close();
103
+ }
104
+ };
105
+ window.addEventListener('message', handleMessage);
106
+
107
+ // Check if popup was closed
108
+ const checkClosed = setInterval(() => {
109
+ if (popup.closed) {
110
+ clearInterval(checkClosed);
111
+ window.removeEventListener('message', handleMessage);
112
+ setIsLoading(false);
113
+ }
114
+ }, 500);
115
+ } catch (err) {
116
+ console.error('[WebOxy] Sign in error:', err);
117
+ setError(err instanceof Error ? err.message : 'Sign in failed');
118
+ setIsLoading(false);
119
+ }
120
+ }, [authWebUrl]);
121
+ const signOut = (0, _react.useCallback)(async () => {
122
+ setError(null);
123
+ try {
124
+ // Clear stored token
125
+ if (typeof window !== 'undefined') {
126
+ localStorage.removeItem('oxy-access-token');
127
+ }
128
+ setUser(null);
129
+ } catch (err) {
130
+ console.error('[WebOxy] Sign out error:', err);
131
+ setError(err instanceof Error ? err.message : 'Sign out failed');
132
+ }
133
+ }, []);
134
+ const contextValue = {
135
+ user,
136
+ isAuthenticated,
137
+ isLoading,
138
+ error,
139
+ signIn,
140
+ signOut,
141
+ oxyServices
142
+ };
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQuery.QueryClientProvider, {
144
+ client: queryClient,
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(WebOxyContext.Provider, {
146
+ value: contextValue,
147
+ children: children
148
+ })
149
+ });
150
+ }
151
+ function useWebOxy() {
152
+ const context = (0, _react.useContext)(WebOxyContext);
153
+ if (!context) {
154
+ throw new Error('useWebOxy must be used within WebOxyProvider');
155
+ }
156
+ return context;
157
+ }
158
+ function useAuth() {
159
+ const {
160
+ user,
161
+ isAuthenticated,
162
+ isLoading,
163
+ error,
164
+ signIn,
165
+ signOut,
166
+ oxyServices
167
+ } = useWebOxy();
168
+ return {
169
+ user,
170
+ isAuthenticated,
171
+ isLoading,
172
+ isReady: !isLoading,
173
+ error,
174
+ signIn,
175
+ signOut,
176
+ oxyServices
177
+ };
178
+ }
179
+ //# sourceMappingURL=WebOxyContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_index","_reactQuery","_queryClient","_jsxRuntime","WebOxyContext","createContext","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","oxyServices","useState","OxyServices","user","setUser","isLoading","setIsLoading","error","setError","queryClient","createQueryClient","isAuthenticated","useEffect","mounted","initAuth","currentUser","getCurrentUser","err","console","log","signIn","useCallback","popup","window","open","encodeURIComponent","location","origin","Error","handleMessage","event","data","type","accessToken","authUser","localStorage","setItem","removeEventListener","close","addEventListener","checkClosed","setInterval","closed","clearInterval","message","signOut","removeItem","contextValue","jsx","QueryClientProvider","client","Provider","value","useWebOxy","context","useContext","useAuth","isReady"],"sourceRoot":"../../../src","sources":["web/WebOxyContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CrossDomainAuth", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _index.CrossDomainAuth;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "DeviceManager", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _index.DeviceManager;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "OXY_CLOUD_URL", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _index.OXY_CLOUD_URL;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "OxyAuthenticationError", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _index.OxyAuthenticationError;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "OxyAuthenticationTimeoutError", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _index.OxyAuthenticationTimeoutError;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "OxyServices", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _index.OxyServices;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "SUPPORTED_LANGUAGES", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _languageUtils.SUPPORTED_LANGUAGES;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "WebOxyProvider", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _WebOxyContext.WebOxyProvider;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "createCrossDomainAuth", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _index.createCrossDomainAuth;
58
+ }
59
+ });
60
+ exports.default = void 0;
61
+ Object.defineProperty(exports, "getLanguageMetadata", {
62
+ enumerable: true,
63
+ get: function () {
64
+ return _languageUtils.getLanguageMetadata;
65
+ }
66
+ });
67
+ Object.defineProperty(exports, "getLanguageName", {
68
+ enumerable: true,
69
+ get: function () {
70
+ return _languageUtils.getLanguageName;
71
+ }
72
+ });
73
+ Object.defineProperty(exports, "getNativeLanguageName", {
74
+ enumerable: true,
75
+ get: function () {
76
+ return _languageUtils.getNativeLanguageName;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, "normalizeLanguageCode", {
80
+ enumerable: true,
81
+ get: function () {
82
+ return _languageUtils.normalizeLanguageCode;
83
+ }
84
+ });
85
+ Object.defineProperty(exports, "oxyClient", {
86
+ enumerable: true,
87
+ get: function () {
88
+ return _index.oxyClient;
89
+ }
90
+ });
91
+ Object.defineProperty(exports, "useAuth", {
92
+ enumerable: true,
93
+ get: function () {
94
+ return _WebOxyContext.useAuth;
95
+ }
96
+ });
97
+ Object.defineProperty(exports, "useWebOxy", {
98
+ enumerable: true,
99
+ get: function () {
100
+ return _WebOxyContext.useWebOxy;
101
+ }
102
+ });
103
+ var _index = require("../core/index.js");
104
+ var _WebOxyContext = require("./WebOxyContext.js");
105
+ var _languageUtils = require("../utils/languageUtils.js");
106
+ /**
107
+ * @oxyhq/services/web - Web-Only Module
108
+ *
109
+ * Clean, professional web module with ZERO React Native dependencies.
110
+ * Perfect for Next.js, Vite, Create React App, and other pure React web apps.
111
+ *
112
+ * Features:
113
+ * - WebOxyProvider for React context
114
+ * - useAuth hook for authentication
115
+ * - Cross-domain SSO via FedCM
116
+ * - Full TypeScript support
117
+ * - Zero bundler configuration needed
118
+ *
119
+ * Usage:
120
+ * ```tsx
121
+ * import { WebOxyProvider, useAuth } from '@oxyhq/services/web';
122
+ *
123
+ * function App() {
124
+ * return (
125
+ * <WebOxyProvider baseURL="https://api.oxy.so">
126
+ * <YourApp />
127
+ * </WebOxyProvider>
128
+ * );
129
+ * }
130
+ *
131
+ * function YourApp() {
132
+ * const { user, isAuthenticated, signIn, signOut } = useAuth();
133
+ * // ... your app logic
134
+ * }
135
+ * ```
136
+ */
137
+ // ==================== Core API ====================
138
+ // Re-export core services (zero React Native deps)
139
+ // ==================== Web Components ====================
140
+ // ==================== Models & Types ====================
141
+ // Re-export commonly used types
142
+ // Re-export session types
143
+ // ==================== Utilities ====================
144
+ // Default export for convenience
145
+ var _default = exports.default = _WebOxyContext.WebOxyProvider;
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_index","require","_WebOxyContext","_languageUtils","_default","exports","default","WebOxyProvider"],"sourceRoot":"../../../src","sources":["web/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAAA,MAAA,GAAAC,OAAA;AAkBA,IAAAC,cAAA,GAAAD,OAAA;AAsBA,IAAAE,cAAA,GAAAF,OAAA;AA1EA;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;AACA;AAEA;AACA;AAkBA;AAIA;AACA;AAcA;AAGA;AAWA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEeC,6BAAc","ignoreList":[]}
@@ -73,8 +73,6 @@ var _exportNames = {
73
73
  SessionSyncRequiredError: true,
74
74
  AuthenticationFailedError: true,
75
75
  useFileFiltering: true,
76
- OxySignInButton: true,
77
- OxyLogo: true,
78
76
  ErrorCodes: true,
79
77
  createApiError: true,
80
78
  handleHttpError: true,
@@ -82,7 +80,6 @@ var _exportNames = {
82
80
  retryWithBackoff: true,
83
81
  logger: true,
84
82
  LogLevel: true,
85
- LogContext: true,
86
83
  logAuth: true,
87
84
  logApi: true,
88
85
  logSession: true,
@@ -121,12 +118,6 @@ Object.defineProperty(exports, "KeyManager", {
121
118
  return _index2.KeyManager;
122
119
  }
123
120
  });
124
- Object.defineProperty(exports, "LogContext", {
125
- enumerable: true,
126
- get: function () {
127
- return _loggerUtils.LogContext;
128
- }
129
- });
130
121
  Object.defineProperty(exports, "LogLevel", {
131
122
  enumerable: true,
132
123
  get: function () {
@@ -151,24 +142,12 @@ Object.defineProperty(exports, "OxyAuthenticationTimeoutError", {
151
142
  return _index.OxyAuthenticationTimeoutError;
152
143
  }
153
144
  });
154
- Object.defineProperty(exports, "OxyLogo", {
155
- enumerable: true,
156
- get: function () {
157
- return _OxyLogo.OxyLogo;
158
- }
159
- });
160
145
  Object.defineProperty(exports, "OxyServices", {
161
146
  enumerable: true,
162
147
  get: function () {
163
148
  return _index.OxyServices;
164
149
  }
165
150
  });
166
- Object.defineProperty(exports, "OxySignInButton", {
167
- enumerable: true,
168
- get: function () {
169
- return _OxySignInButton.OxySignInButton;
170
- }
171
- });
172
151
  Object.defineProperty(exports, "RecoveryPhraseService", {
173
152
  enumerable: true,
174
153
  get: function () {
@@ -626,8 +605,6 @@ var _index4 = require("./ui/hooks/mutations/index.js");
626
605
  var _mutationFactory = require("./ui/hooks/mutations/mutationFactory.js");
627
606
  var _authHelpers = require("./ui/utils/authHelpers.js");
628
607
  var _useFileFiltering = require("./ui/hooks/useFileFiltering.js");
629
- var _OxySignInButton = require("./ui/components/OxySignInButton.js");
630
- var _OxyLogo = require("./ui/components/OxyLogo.js");
631
608
  var _apiUtils = require("./utils/apiUtils.js");
632
609
  Object.keys(_apiUtils).forEach(function (key) {
633
610
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["require","_index","_index2","_OxyContext","_useAuth","_WebOxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_interfaces","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_index3","_index4","_mutationFactory","_authHelpers","_useFileFiltering","_OxySignInButton","_OxyLogo","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["require","_index","_index2","_OxyContext","_useAuth","_WebOxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_interfaces","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_index3","_index4","_mutationFactory","_authHelpers","_useFileFiltering","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["web.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Web-Only Oxy Context
5
+ * Clean implementation with ZERO React Native dependencies
6
+ */
7
+
8
+ import { createContext, useCallback, useContext, useEffect, useState } from 'react';
9
+ import { OxyServices } from "../core/index.js";
10
+ import { QueryClientProvider } from '@tanstack/react-query';
11
+ import { createQueryClient } from "../ui/hooks/queryClient.js";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ const WebOxyContext = /*#__PURE__*/createContext(null);
14
+ /**
15
+ * Web-only Oxy Provider
16
+ * Minimal, clean implementation for web apps
17
+ */
18
+ export function WebOxyProvider({
19
+ children,
20
+ baseURL,
21
+ authWebUrl,
22
+ onAuthStateChange
23
+ }) {
24
+ const [oxyServices] = useState(() => new OxyServices({
25
+ baseURL,
26
+ authWebUrl
27
+ }));
28
+ const [user, setUser] = useState(null);
29
+ const [isLoading, setIsLoading] = useState(true);
30
+ const [error, setError] = useState(null);
31
+ const [queryClient] = useState(() => createQueryClient());
32
+ const isAuthenticated = !!user;
33
+
34
+ // Initialize - check for existing session
35
+ useEffect(() => {
36
+ let mounted = true;
37
+ const initAuth = async () => {
38
+ try {
39
+ // Try to get current user (will use existing auth token if available)
40
+ const currentUser = await oxyServices.getCurrentUser();
41
+ if (mounted && currentUser) {
42
+ setUser(currentUser);
43
+ }
44
+ } catch (err) {
45
+ // No active session - this is fine
46
+ console.log('[WebOxy] No active session');
47
+ } finally {
48
+ if (mounted) {
49
+ setIsLoading(false);
50
+ }
51
+ }
52
+ };
53
+ initAuth();
54
+ return () => {
55
+ mounted = false;
56
+ };
57
+ }, [oxyServices]);
58
+
59
+ // Notify parent of auth state changes
60
+ useEffect(() => {
61
+ onAuthStateChange?.(user);
62
+ }, [user, onAuthStateChange]);
63
+ const signIn = useCallback(async () => {
64
+ setError(null);
65
+ setIsLoading(true);
66
+ try {
67
+ // Open popup to auth.oxy.so
68
+ const popup = window.open(`${authWebUrl || 'https://auth.oxy.so'}/login?origin=${encodeURIComponent(window.location.origin)}`, 'oxy-auth', 'width=500,height=700,popup=yes');
69
+ if (!popup) {
70
+ throw new Error('Popup blocked. Please allow popups for this site.');
71
+ }
72
+
73
+ // Listen for message from popup
74
+ const handleMessage = async event => {
75
+ if (event.origin !== (authWebUrl || 'https://auth.oxy.so')) {
76
+ return;
77
+ }
78
+ if (event.data.type === 'oxy-auth-success') {
79
+ const {
80
+ accessToken,
81
+ user: authUser
82
+ } = event.data;
83
+
84
+ // Store the access token for API requests
85
+ if (typeof window !== 'undefined' && accessToken) {
86
+ localStorage.setItem('oxy-access-token', accessToken);
87
+ }
88
+ setUser(authUser);
89
+ setIsLoading(false);
90
+ window.removeEventListener('message', handleMessage);
91
+ popup.close();
92
+ } else if (event.data.type === 'oxy-auth-error') {
93
+ setError(event.data.error || 'Authentication failed');
94
+ setIsLoading(false);
95
+ window.removeEventListener('message', handleMessage);
96
+ popup.close();
97
+ }
98
+ };
99
+ window.addEventListener('message', handleMessage);
100
+
101
+ // Check if popup was closed
102
+ const checkClosed = setInterval(() => {
103
+ if (popup.closed) {
104
+ clearInterval(checkClosed);
105
+ window.removeEventListener('message', handleMessage);
106
+ setIsLoading(false);
107
+ }
108
+ }, 500);
109
+ } catch (err) {
110
+ console.error('[WebOxy] Sign in error:', err);
111
+ setError(err instanceof Error ? err.message : 'Sign in failed');
112
+ setIsLoading(false);
113
+ }
114
+ }, [authWebUrl]);
115
+ const signOut = useCallback(async () => {
116
+ setError(null);
117
+ try {
118
+ // Clear stored token
119
+ if (typeof window !== 'undefined') {
120
+ localStorage.removeItem('oxy-access-token');
121
+ }
122
+ setUser(null);
123
+ } catch (err) {
124
+ console.error('[WebOxy] Sign out error:', err);
125
+ setError(err instanceof Error ? err.message : 'Sign out failed');
126
+ }
127
+ }, []);
128
+ const contextValue = {
129
+ user,
130
+ isAuthenticated,
131
+ isLoading,
132
+ error,
133
+ signIn,
134
+ signOut,
135
+ oxyServices
136
+ };
137
+ return /*#__PURE__*/_jsx(QueryClientProvider, {
138
+ client: queryClient,
139
+ children: /*#__PURE__*/_jsx(WebOxyContext.Provider, {
140
+ value: contextValue,
141
+ children: children
142
+ })
143
+ });
144
+ }
145
+ export function useWebOxy() {
146
+ const context = useContext(WebOxyContext);
147
+ if (!context) {
148
+ throw new Error('useWebOxy must be used within WebOxyProvider');
149
+ }
150
+ return context;
151
+ }
152
+ export function useAuth() {
153
+ const {
154
+ user,
155
+ isAuthenticated,
156
+ isLoading,
157
+ error,
158
+ signIn,
159
+ signOut,
160
+ oxyServices
161
+ } = useWebOxy();
162
+ return {
163
+ user,
164
+ isAuthenticated,
165
+ isLoading,
166
+ isReady: !isLoading,
167
+ error,
168
+ signIn,
169
+ signOut,
170
+ oxyServices
171
+ };
172
+ }
173
+ //# sourceMappingURL=WebOxyContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useCallback","useContext","useEffect","useState","OxyServices","QueryClientProvider","createQueryClient","jsx","_jsx","WebOxyContext","WebOxyProvider","children","baseURL","authWebUrl","onAuthStateChange","oxyServices","user","setUser","isLoading","setIsLoading","error","setError","queryClient","isAuthenticated","mounted","initAuth","currentUser","getCurrentUser","err","console","log","signIn","popup","window","open","encodeURIComponent","location","origin","Error","handleMessage","event","data","type","accessToken","authUser","localStorage","setItem","removeEventListener","close","addEventListener","checkClosed","setInterval","closed","clearInterval","message","signOut","removeItem","contextValue","client","Provider","value","useWebOxy","context","useAuth","isReady"],"sourceRoot":"../../../src","sources":["web/WebOxyContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * @oxyhq/services/web - Web-Only Module
5
+ *
6
+ * Clean, professional web module with ZERO React Native dependencies.
7
+ * Perfect for Next.js, Vite, Create React App, and other pure React web apps.
8
+ *
9
+ * Features:
10
+ * - WebOxyProvider for React context
11
+ * - useAuth hook for authentication
12
+ * - Cross-domain SSO via FedCM
13
+ * - Full TypeScript support
14
+ * - Zero bundler configuration needed
15
+ *
16
+ * Usage:
17
+ * ```tsx
18
+ * import { WebOxyProvider, useAuth } from '@oxyhq/services/web';
19
+ *
20
+ * function App() {
21
+ * return (
22
+ * <WebOxyProvider baseURL="https://api.oxy.so">
23
+ * <YourApp />
24
+ * </WebOxyProvider>
25
+ * );
26
+ * }
27
+ *
28
+ * function YourApp() {
29
+ * const { user, isAuthenticated, signIn, signOut } = useAuth();
30
+ * // ... your app logic
31
+ * }
32
+ * ```
33
+ */
34
+
35
+ // ==================== Core API ====================
36
+ // Re-export core services (zero React Native deps)
37
+ export { OxyServices, OxyAuthenticationError, OxyAuthenticationTimeoutError, OXY_CLOUD_URL, oxyClient, CrossDomainAuth, createCrossDomainAuth, DeviceManager } from "../core/index.js";
38
+ // ==================== Web Components ====================
39
+ export { WebOxyProvider, useWebOxy, useAuth } from "./WebOxyContext.js";
40
+
41
+ // ==================== Models & Types ====================
42
+ // Re-export commonly used types
43
+
44
+ // Re-export session types
45
+
46
+ // ==================== Utilities ====================
47
+ export { SUPPORTED_LANGUAGES, getLanguageMetadata, getLanguageName, getNativeLanguageName, normalizeLanguageCode } from "../utils/languageUtils.js";
48
+ // Default export for convenience
49
+ import { WebOxyProvider } from "./WebOxyContext.js";
50
+ export default WebOxyProvider;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyServices","OxyAuthenticationError","OxyAuthenticationTimeoutError","OXY_CLOUD_URL","oxyClient","CrossDomainAuth","createCrossDomainAuth","DeviceManager","WebOxyProvider","useWebOxy","useAuth","SUPPORTED_LANGUAGES","getLanguageMetadata","getLanguageName","getNativeLanguageName","normalizeLanguageCode"],"sourceRoot":"../../../src","sources":["web/index.ts"],"mappings":";;AAAA;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;AACA;;AAEA;AACA;AACA,SACEA,WAAW,EACXC,sBAAsB,EACtBC,6BAA6B,EAC7BC,aAAa,EACbC,SAAS,EACTC,eAAe,EACfC,qBAAqB,EACrBC,aAAa,QACR,kBAAS;AAQhB;AACA,SAASC,cAAc,EAAEC,SAAS,EAAEC,OAAO,QAAQ,oBAAiB;;AAGpE;AACA;;AAcA;;AAGA;AACA,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB,QAChB,2BAAwB;AAI/B;AACA,SAASP,cAAc,QAAQ,oBAAiB;AAChD,eAAeA,cAAc","ignoreList":[]}