@onairos/react-native 3.0.24 → 3.0.26
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/lib/commonjs/components/OnairosButton.js +2 -3
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/components/TrainingModal.js +120 -16
- package/lib/commonjs/components/TrainingModal.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +196 -94
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/onboarding/OAuthWebView.js +138 -27
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/constants/index.js +3 -3
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +95 -44
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/module/components/OnairosButton.js +2 -3
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/components/TrainingModal.js +120 -17
- package/lib/module/components/TrainingModal.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +197 -95
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +139 -28
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/constants/index.js +3 -3
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/services/platformAuthService.js +92 -42
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
- package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/services/platformAuthService.d.ts +11 -4
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/OnairosButton.tsx +1 -4
- package/src/components/TrainingModal.tsx +202 -61
- package/src/components/UniversalOnboarding.tsx +188 -83
- package/src/components/onboarding/OAuthWebView.tsx +135 -25
- package/src/constants/index.ts +3 -3
- package/src/services/platformAuthService.ts +111 -40
|
@@ -9,6 +9,7 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _reactNativeWebview = require("react-native-webview");
|
|
10
10
|
var _MaterialIcons = _interopRequireDefault(require("react-native-vector-icons/MaterialIcons"));
|
|
11
11
|
var _constants = require("../../constants");
|
|
12
|
+
var _platformAuthService = require("../../services/platformAuthService");
|
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
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); }
|
|
14
15
|
const OAuthWebView = ({
|
|
@@ -19,36 +20,78 @@ const OAuthWebView = ({
|
|
|
19
20
|
onSuccess
|
|
20
21
|
}) => {
|
|
21
22
|
const [loading, setLoading] = (0, _react.useState)(true);
|
|
23
|
+
const [currentUrl, setCurrentUrl] = (0, _react.useState)(url);
|
|
22
24
|
const handleNavigationStateChange = (0, _react.useCallback)(navState => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
console.log(`[OAuthWebView] Navigation state changed for ${platform}:`, navState.url);
|
|
26
|
+
setCurrentUrl(navState.url);
|
|
27
|
+
|
|
28
|
+
// Check for final redirect to onairos.uk/Home (indicates proxy has processed the callback)
|
|
29
|
+
if (navState.url.includes('onairos.uk/Home')) {
|
|
30
|
+
console.log(`[OAuthWebView] Detected final redirect to onairos.uk/Home for ${platform}`);
|
|
31
|
+
|
|
32
|
+
// Add a small delay to ensure the redirect is fully processed
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
onSuccess('success');
|
|
35
|
+
if (onComplete) {
|
|
36
|
+
onComplete();
|
|
37
|
+
}
|
|
38
|
+
}, 500);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Check for platform-specific success patterns using the service
|
|
43
|
+
if (platform && (0, _platformAuthService.isOAuthSuccess)(navState.url, platform)) {
|
|
44
|
+
console.log(`[OAuthWebView] Detected platform-specific success pattern for ${platform}`);
|
|
45
|
+
|
|
46
|
+
// For YouTube/Google, wait for the final redirect
|
|
47
|
+
if (platform === 'youtube') {
|
|
48
|
+
console.log(`[OAuthWebView] YouTube success detected, waiting for final redirect...`);
|
|
49
|
+
// Don't close immediately for YouTube, wait for the onairos.uk/Home redirect
|
|
50
|
+
return;
|
|
29
51
|
}
|
|
30
52
|
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
53
|
+
// For other platforms, close immediately
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
onSuccess('success');
|
|
56
|
+
if (onComplete) {
|
|
57
|
+
onComplete();
|
|
58
|
+
}
|
|
59
|
+
}, 300);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Check for callback URLs with authorization codes
|
|
64
|
+
if (navState.url.includes('/callback') || navState.url.includes('code=')) {
|
|
65
|
+
console.log(`[OAuthWebView] Detected callback URL for ${platform}:`, navState.url);
|
|
66
|
+
|
|
67
|
+
// Extract the authorization code
|
|
68
|
+
const authCode = (0, _platformAuthService.handleOAuthCallback)(navState.url);
|
|
69
|
+
if (authCode) {
|
|
70
|
+
console.log(`[OAuthWebView] Extracted auth code for ${platform}:`, authCode);
|
|
71
|
+
onSuccess(authCode);
|
|
72
|
+
if (onComplete) {
|
|
73
|
+
onComplete();
|
|
74
|
+
}
|
|
34
75
|
}
|
|
35
76
|
return;
|
|
36
77
|
}
|
|
37
|
-
}, [onComplete, onSuccess]);
|
|
78
|
+
}, [platform, onComplete, onSuccess]);
|
|
79
|
+
const handleLoadStart = (0, _react.useCallback)(() => {
|
|
80
|
+
setLoading(true);
|
|
81
|
+
}, []);
|
|
38
82
|
const handleLoadEnd = (0, _react.useCallback)(() => {
|
|
39
83
|
setLoading(false);
|
|
40
84
|
}, []);
|
|
85
|
+
const handleError = (0, _react.useCallback)(syntheticEvent => {
|
|
86
|
+
const {
|
|
87
|
+
nativeEvent
|
|
88
|
+
} = syntheticEvent;
|
|
89
|
+
console.error(`[OAuthWebView] WebView error for ${platform}:`, nativeEvent);
|
|
90
|
+
setLoading(false);
|
|
91
|
+
}, [platform]);
|
|
41
92
|
|
|
42
|
-
//
|
|
43
|
-
const
|
|
44
|
-
try {
|
|
45
|
-
const url = new URL(redirectUrl);
|
|
46
|
-
return url.searchParams.get('code') || '';
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.error('Error extracting auth code:', error);
|
|
49
|
-
return '';
|
|
50
|
-
}
|
|
51
|
-
};
|
|
93
|
+
// Get iOS Safari user agent for better compatibility
|
|
94
|
+
const userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1';
|
|
52
95
|
return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
|
|
53
96
|
style: styles.container
|
|
54
97
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
@@ -66,21 +109,57 @@ const OAuthWebView = ({
|
|
|
66
109
|
name: getPlatformIcon(platform || 'default'),
|
|
67
110
|
size: 20,
|
|
68
111
|
color: getPlatformColor(platform || 'default')
|
|
69
|
-
})
|
|
112
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
113
|
+
style: styles.platformTitle
|
|
114
|
+
}, "Connect ", platform ? platform.charAt(0).toUpperCase() + platform.slice(1) : 'Account')), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
115
|
+
style: styles.placeholder
|
|
116
|
+
})), /*#__PURE__*/_react.default.createElement(_reactNativeWebview.WebView, {
|
|
70
117
|
source: {
|
|
71
118
|
uri: url
|
|
72
119
|
},
|
|
73
120
|
onNavigationStateChange: handleNavigationStateChange,
|
|
121
|
+
onLoadStart: handleLoadStart,
|
|
74
122
|
onLoadEnd: handleLoadEnd,
|
|
123
|
+
onError: handleError,
|
|
75
124
|
startInLoadingState: true,
|
|
76
125
|
renderLoading: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
77
126
|
style: styles.webView
|
|
127
|
+
// Essential WebView configuration for OAuth
|
|
128
|
+
,
|
|
129
|
+
javaScriptEnabled: true,
|
|
130
|
+
domStorageEnabled: true,
|
|
131
|
+
cacheEnabled: true,
|
|
132
|
+
incognito: false // Allow session persistence
|
|
133
|
+
,
|
|
134
|
+
sharedCookiesEnabled: true // Critical for Google/YouTube OAuth
|
|
135
|
+
,
|
|
136
|
+
thirdPartyCookiesEnabled: true // Required for OAuth flows
|
|
137
|
+
,
|
|
138
|
+
userAgent: userAgent // iOS Safari for better compatibility
|
|
139
|
+
// Additional settings for better OAuth support
|
|
140
|
+
,
|
|
141
|
+
allowsInlineMediaPlayback: true,
|
|
142
|
+
mediaPlaybackRequiresUserAction: false,
|
|
143
|
+
allowsBackForwardNavigationGestures: true
|
|
144
|
+
// Security settings
|
|
145
|
+
,
|
|
146
|
+
allowsLinkPreview: false,
|
|
147
|
+
allowFileAccess: false,
|
|
148
|
+
allowUniversalAccessFromFileURLs: false,
|
|
149
|
+
mixedContentMode: "compatibility"
|
|
78
150
|
}), loading && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
79
151
|
style: styles.loadingContainer
|
|
80
152
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
81
153
|
size: "large",
|
|
82
154
|
color: _constants.COLORS.primary
|
|
83
|
-
})
|
|
155
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
156
|
+
style: styles.loadingText
|
|
157
|
+
}, "Connecting to ", platform ? platform.charAt(0).toUpperCase() + platform.slice(1) : 'platform', "...")), __DEV__ && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
158
|
+
style: styles.debugContainer
|
|
159
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
160
|
+
style: styles.debugText,
|
|
161
|
+
numberOfLines: 1
|
|
162
|
+
}, currentUrl)));
|
|
84
163
|
};
|
|
85
164
|
|
|
86
165
|
/**
|
|
@@ -97,6 +176,8 @@ const getPlatformIcon = platform => {
|
|
|
97
176
|
return 'push-pin';
|
|
98
177
|
case 'reddit':
|
|
99
178
|
return 'forum';
|
|
179
|
+
case 'email':
|
|
180
|
+
return 'email';
|
|
100
181
|
default:
|
|
101
182
|
return 'link';
|
|
102
183
|
}
|
|
@@ -115,6 +196,8 @@ const getPlatformColor = platform => {
|
|
|
115
196
|
return '#E60023';
|
|
116
197
|
case 'reddit':
|
|
117
198
|
return '#FF4500';
|
|
199
|
+
case 'email':
|
|
200
|
+
return '#4285F4';
|
|
118
201
|
default:
|
|
119
202
|
return _constants.COLORS.primary;
|
|
120
203
|
}
|
|
@@ -135,22 +218,50 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
135
218
|
},
|
|
136
219
|
titleContainer: {
|
|
137
220
|
flex: 1,
|
|
138
|
-
|
|
221
|
+
flexDirection: 'row',
|
|
222
|
+
alignItems: 'center',
|
|
223
|
+
justifyContent: 'center'
|
|
224
|
+
},
|
|
225
|
+
platformTitle: {
|
|
226
|
+
fontSize: 16,
|
|
227
|
+
fontWeight: '600',
|
|
228
|
+
color: '#000',
|
|
229
|
+
marginLeft: 8
|
|
139
230
|
},
|
|
140
231
|
closeButton: {
|
|
141
232
|
padding: 8,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
233
|
+
width: 40
|
|
234
|
+
},
|
|
235
|
+
placeholder: {
|
|
236
|
+
width: 40
|
|
145
237
|
},
|
|
146
238
|
webView: {
|
|
147
239
|
flex: 1
|
|
148
240
|
},
|
|
149
241
|
loadingContainer: {
|
|
150
242
|
..._reactNative.StyleSheet.absoluteFillObject,
|
|
151
|
-
backgroundColor: 'rgba(255, 255, 255, 0.
|
|
243
|
+
backgroundColor: 'rgba(255, 255, 255, 0.9)',
|
|
152
244
|
alignItems: 'center',
|
|
153
245
|
justifyContent: 'center'
|
|
246
|
+
},
|
|
247
|
+
loadingText: {
|
|
248
|
+
fontSize: 16,
|
|
249
|
+
color: '#666',
|
|
250
|
+
marginTop: 16,
|
|
251
|
+
textAlign: 'center'
|
|
252
|
+
},
|
|
253
|
+
debugContainer: {
|
|
254
|
+
position: 'absolute',
|
|
255
|
+
bottom: 0,
|
|
256
|
+
left: 0,
|
|
257
|
+
right: 0,
|
|
258
|
+
backgroundColor: 'rgba(0, 0, 0, 0.8)',
|
|
259
|
+
padding: 8
|
|
260
|
+
},
|
|
261
|
+
debugText: {
|
|
262
|
+
color: '#fff',
|
|
263
|
+
fontSize: 12,
|
|
264
|
+
fontFamily: 'monospace'
|
|
154
265
|
}
|
|
155
266
|
});
|
|
156
267
|
//# sourceMappingURL=OAuthWebView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_MaterialIcons","_interopRequireDefault","_constants","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OAuthWebView","url","platform","onComplete","onClose","onSuccess","loading","setLoading","useState","handleNavigationStateChange","useCallback","navState","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_MaterialIcons","_interopRequireDefault","_constants","_platformAuthService","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OAuthWebView","url","platform","onComplete","onClose","onSuccess","loading","setLoading","useState","currentUrl","setCurrentUrl","handleNavigationStateChange","useCallback","navState","console","log","includes","setTimeout","isOAuthSuccess","authCode","handleOAuthCallback","handleLoadStart","handleLoadEnd","handleError","syntheticEvent","nativeEvent","error","userAgent","createElement","SafeAreaView","style","styles","container","View","header","TouchableOpacity","onPress","closeButton","name","size","color","titleContainer","getPlatformIcon","getPlatformColor","Text","platformTitle","charAt","toUpperCase","slice","placeholder","WebView","source","uri","onNavigationStateChange","onLoadStart","onLoadEnd","onError","startInLoadingState","renderLoading","webView","javaScriptEnabled","domStorageEnabled","cacheEnabled","incognito","sharedCookiesEnabled","thirdPartyCookiesEnabled","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","allowsBackForwardNavigationGestures","allowsLinkPreview","allowFileAccess","allowUniversalAccessFromFileURLs","mixedContentMode","loadingContainer","ActivityIndicator","COLORS","primary","loadingText","__DEV__","debugContainer","debugText","numberOfLines","exports","StyleSheet","create","flex","backgroundColor","flexDirection","alignItems","height","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","fontSize","fontWeight","marginLeft","padding","width","absoluteFillObject","marginTop","textAlign","position","bottom","left","right","fontFamily"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -76,8 +76,8 @@ const PIN_REQUIREMENTS = exports.PIN_REQUIREMENTS = {
|
|
|
76
76
|
requireSpecialChar: true
|
|
77
77
|
};
|
|
78
78
|
const DEEP_LINK_CONFIG = exports.DEEP_LINK_CONFIG = {
|
|
79
|
-
scheme: '
|
|
80
|
-
host: '
|
|
81
|
-
redirectUri: '
|
|
79
|
+
scheme: 'onairosevents',
|
|
80
|
+
host: 'auth',
|
|
81
|
+
redirectUri: 'onairosevents://auth/callback'
|
|
82
82
|
};
|
|
83
83
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COLORS","exports","primary","headerBg","text","secondary","border","success","error","instagram","pinterest","reddit","youtube","white","black","gray","lightGray","PLATFORMS","name","icon","color","description","API_ENDPOINTS","base","oauth","callback","STORAGE_KEYS","credentials","connections","PIN_REQUIREMENTS","minLength","requireUppercase","requireLowercase","requireNumber","requireSpecialChar","DEEP_LINK_CONFIG","scheme","host","redirectUri"],"sourceRoot":"..\\..\\..\\src","sources":["constants/index.ts"],"mappings":";;;;;;AAEO,MAAMA,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,SAAS;EACnBC,IAAI,EAAE;IACJF,OAAO,EAAE,SAAS;IAClBG,SAAS,EAAE;EACb,CAAC;EACDC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,SAAS,EAAE,SAAS;EACpBC,SAAS,EAAE,SAAS;EACpBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE;AACb,CAAC;AAEM,MAAMC,SAAyC,GAAAhB,OAAA,CAAAgB,SAAA,GAAG;EACvDR,SAAS,EAAE;IACTS,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEpB,MAAM,CAACS,SAAS;IACvBY,WAAW,EAAE;EACf,CAAC;EACDX,SAAS,EAAE;IACTQ,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEpB,MAAM,CAACU,SAAS;IACvBW,WAAW,EAAE;EACf,CAAC;EACDV,MAAM,EAAE;IACNO,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE,QAAQ;IACdC,KAAK,EAAEpB,MAAM,CAACW,MAAM;IACpBU,WAAW,EAAE;EACf,CAAC;EACDT,OAAO,EAAE;IACPM,IAAI,EAAE,SAAS;IACfC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAEpB,MAAM,CAACY,OAAO;IACrBS,WAAW,EAAE;EACf;AACF,CAAC;AAEM,MAAMC,aAAa,GAAArB,OAAA,CAAAqB,aAAA,GAAG;EAC3BC,IAAI,EAAE,yBAAyB;EAC/BC,KAAK,EAAE;IACLf,SAAS,EAAE,iBAAiB;IAC5BC,SAAS,EAAE,iBAAiB;IAC5BC,MAAM,EAAE,cAAc;IACtBC,OAAO,EAAE;EACX,CAAC;EACDa,QAAQ,EAAE;IACRhB,SAAS,EAAE,qBAAqB;IAChCC,SAAS,EAAE,qBAAqB;IAChCC,MAAM,EAAE,kBAAkB;IAC1BC,OAAO,EAAE;EACX;AACF,CAAC;AAEM,MAAMc,YAAY,GAAAzB,OAAA,CAAAyB,YAAA,GAAG;EAC1BC,WAAW,EAAE,qBAAqB;EAClCC,WAAW,EAAE;AACf,CAAC;AAEM,MAAMC,gBAAgB,GAAA5B,OAAA,CAAA4B,gBAAA,GAAG;EAC9BC,SAAS,EAAE,CAAC;EACZC,gBAAgB,EAAE,IAAI;EACtBC,gBAAgB,EAAE,IAAI;EACtBC,aAAa,EAAE,IAAI;EACnBC,kBAAkB,EAAE;AACtB,CAAC;AAEM,MAAMC,gBAAgB,GAAAlC,OAAA,CAAAkC,gBAAA,GAAG;EAC9BC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"names":["COLORS","exports","primary","headerBg","text","secondary","border","success","error","instagram","pinterest","reddit","youtube","white","black","gray","lightGray","PLATFORMS","name","icon","color","description","API_ENDPOINTS","base","oauth","callback","STORAGE_KEYS","credentials","connections","PIN_REQUIREMENTS","minLength","requireUppercase","requireLowercase","requireNumber","requireSpecialChar","DEEP_LINK_CONFIG","scheme","host","redirectUri"],"sourceRoot":"..\\..\\..\\src","sources":["constants/index.ts"],"mappings":";;;;;;AAEO,MAAMA,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,SAAS;EACnBC,IAAI,EAAE;IACJF,OAAO,EAAE,SAAS;IAClBG,SAAS,EAAE;EACb,CAAC;EACDC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,SAAS,EAAE,SAAS;EACpBC,SAAS,EAAE,SAAS;EACpBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE;AACb,CAAC;AAEM,MAAMC,SAAyC,GAAAhB,OAAA,CAAAgB,SAAA,GAAG;EACvDR,SAAS,EAAE;IACTS,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEpB,MAAM,CAACS,SAAS;IACvBY,WAAW,EAAE;EACf,CAAC;EACDX,SAAS,EAAE;IACTQ,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEpB,MAAM,CAACU,SAAS;IACvBW,WAAW,EAAE;EACf,CAAC;EACDV,MAAM,EAAE;IACNO,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE,QAAQ;IACdC,KAAK,EAAEpB,MAAM,CAACW,MAAM;IACpBU,WAAW,EAAE;EACf,CAAC;EACDT,OAAO,EAAE;IACPM,IAAI,EAAE,SAAS;IACfC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAEpB,MAAM,CAACY,OAAO;IACrBS,WAAW,EAAE;EACf;AACF,CAAC;AAEM,MAAMC,aAAa,GAAArB,OAAA,CAAAqB,aAAA,GAAG;EAC3BC,IAAI,EAAE,yBAAyB;EAC/BC,KAAK,EAAE;IACLf,SAAS,EAAE,iBAAiB;IAC5BC,SAAS,EAAE,iBAAiB;IAC5BC,MAAM,EAAE,cAAc;IACtBC,OAAO,EAAE;EACX,CAAC;EACDa,QAAQ,EAAE;IACRhB,SAAS,EAAE,qBAAqB;IAChCC,SAAS,EAAE,qBAAqB;IAChCC,MAAM,EAAE,kBAAkB;IAC1BC,OAAO,EAAE;EACX;AACF,CAAC;AAEM,MAAMc,YAAY,GAAAzB,OAAA,CAAAyB,YAAA,GAAG;EAC1BC,WAAW,EAAE,qBAAqB;EAClCC,WAAW,EAAE;AACf,CAAC;AAEM,MAAMC,gBAAgB,GAAA5B,OAAA,CAAA4B,gBAAA,GAAG;EAC9BC,SAAS,EAAE,CAAC;EACZC,gBAAgB,EAAE,IAAI;EACtBC,gBAAgB,EAAE,IAAI;EACtBC,aAAa,EAAE,IAAI;EACnBC,kBAAkB,EAAE;AACtB,CAAC;AAEM,MAAMC,gBAAgB,GAAAlC,OAAA,CAAAkC,gBAAA,GAAG;EAC9BC,MAAM,EAAE,eAAe;EACvBC,IAAI,EAAE,MAAM;EACZC,WAAW,EAAE;AACf,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isOAuthCallback = exports.initiateOAuth = exports.initiateNativeAuth = exports.hasNativeSDK = exports.handleOAuthCallback = exports.getPlatformColor = exports.getAuthEndpoint = void 0;
|
|
6
|
+
exports.isOAuthSuccess = exports.isOAuthCallback = exports.initiateOAuth = exports.initiateNativeAuth = exports.hasNativeSDK = exports.handleOAuthCallback = exports.getPlatformColor = exports.getAuthEndpoint = void 0;
|
|
7
7
|
// Define types for platform auth configuration
|
|
8
8
|
|
|
9
9
|
// Configuration for each platform's authentication
|
|
@@ -15,9 +15,8 @@ const PLATFORM_AUTH_CONFIG = {
|
|
|
15
15
|
color: '#E1306C'
|
|
16
16
|
},
|
|
17
17
|
youtube: {
|
|
18
|
-
hasNativeSDK:
|
|
19
|
-
//
|
|
20
|
-
nativeSDKPackage: '@react-native-google-signin/google-signin',
|
|
18
|
+
hasNativeSDK: false,
|
|
19
|
+
// Changed to false to use OAuth flow through proxy
|
|
21
20
|
authEndpoint: 'https://api2.onairos.uk/youtube/authorize',
|
|
22
21
|
color: '#FF0000'
|
|
23
22
|
},
|
|
@@ -65,57 +64,73 @@ const getPlatformColor = platform => {
|
|
|
65
64
|
};
|
|
66
65
|
|
|
67
66
|
/**
|
|
68
|
-
* Initiates the OAuth flow for a platform
|
|
67
|
+
* Initiates the OAuth flow for a platform using Onairos proxy
|
|
69
68
|
* @param platform The platform to authenticate with
|
|
70
|
-
* @param
|
|
71
|
-
* @returns A Promise that resolves to the OAuth URL to open in a WebView
|
|
69
|
+
* @param userEmail The authenticated user's email (not random username)
|
|
70
|
+
* @returns A Promise that resolves to the OAuth URL to open in a WebView
|
|
72
71
|
*/
|
|
73
72
|
exports.getPlatformColor = getPlatformColor;
|
|
74
|
-
const initiateOAuth = async (platform,
|
|
73
|
+
const initiateOAuth = async (platform, userEmail) => {
|
|
75
74
|
try {
|
|
76
75
|
// Check if the platform is supported
|
|
77
76
|
if (!PLATFORM_AUTH_CONFIG[platform]) {
|
|
78
77
|
throw new Error(`Unsupported platform: ${platform}`);
|
|
79
78
|
}
|
|
79
|
+
console.log(`Initiating OAuth for ${platform} with user: ${userEmail}`);
|
|
80
80
|
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
// Return null to indicate that we should use the native SDK
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Prepare the request body
|
|
88
|
-
const jsonData = {
|
|
81
|
+
// Prepare the request body according to Onairos proxy schema
|
|
82
|
+
const requestBody = {
|
|
89
83
|
session: {
|
|
90
|
-
username:
|
|
84
|
+
username: userEmail || 'anonymous@example.com',
|
|
85
|
+
platform: platform,
|
|
86
|
+
timestamp: new Date().toISOString()
|
|
91
87
|
}
|
|
92
88
|
};
|
|
89
|
+
console.log(`Making request to: ${PLATFORM_AUTH_CONFIG[platform].authEndpoint}`);
|
|
90
|
+
console.log('Request body:', JSON.stringify(requestBody, null, 2));
|
|
93
91
|
|
|
94
|
-
// Make the request to get the OAuth URL
|
|
92
|
+
// Make the request to get the OAuth URL from Onairos proxy
|
|
95
93
|
const response = await fetch(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
|
|
96
94
|
method: 'POST',
|
|
97
95
|
headers: {
|
|
98
|
-
'Content-Type': 'application/json'
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
'Accept': 'application/json'
|
|
99
98
|
},
|
|
100
|
-
body: JSON.stringify(
|
|
99
|
+
body: JSON.stringify(requestBody)
|
|
101
100
|
});
|
|
101
|
+
console.log(`Response status: ${response.status}`);
|
|
102
|
+
console.log(`Response headers:`, response.headers);
|
|
103
|
+
if (!response.ok) {
|
|
104
|
+
const errorText = await response.text();
|
|
105
|
+
console.error(`HTTP error! status: ${response.status}, body: ${errorText}`);
|
|
106
|
+
throw new Error(`HTTP error! status: ${response.status} - ${errorText}`);
|
|
107
|
+
}
|
|
102
108
|
|
|
103
109
|
// Parse the response
|
|
104
110
|
const data = await response.json();
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
console.log(`OAuth response for ${platform}:`, data);
|
|
112
|
+
|
|
113
|
+
// Check for platform-specific response keys according to schema
|
|
114
|
+
let oauthUrl = null;
|
|
115
|
+
if (platform === 'youtube' && data.youtubeURL) {
|
|
116
|
+
oauthUrl = data.youtubeURL;
|
|
117
|
+
} else if (platform === 'reddit' && data.redditURL) {
|
|
118
|
+
oauthUrl = data.redditURL;
|
|
109
119
|
} else if (platform === 'pinterest' && data.pinterestURL) {
|
|
110
|
-
|
|
111
|
-
} else if (platform === 'youtube' && data.youtubeURL) {
|
|
112
|
-
return data.youtubeURL;
|
|
120
|
+
oauthUrl = data.pinterestURL;
|
|
113
121
|
} else if (platform === 'email' && data.emailURL) {
|
|
114
|
-
|
|
122
|
+
oauthUrl = data.emailURL;
|
|
123
|
+
} else if (platform === 'instagram' && data.instagramURL) {
|
|
124
|
+
oauthUrl = data.instagramURL;
|
|
115
125
|
} else if (data.url) {
|
|
116
|
-
|
|
126
|
+
// Generic fallback
|
|
127
|
+
oauthUrl = data.url;
|
|
128
|
+
}
|
|
129
|
+
if (!oauthUrl) {
|
|
130
|
+
throw new Error(`No OAuth URL found in response for ${platform}. Response: ${JSON.stringify(data)}`);
|
|
117
131
|
}
|
|
118
|
-
|
|
132
|
+
console.log(`Successfully received OAuth URL for ${platform}: ${oauthUrl}`);
|
|
133
|
+
return oauthUrl;
|
|
119
134
|
} catch (error) {
|
|
120
135
|
console.error(`Error initiating OAuth for ${platform}:`, error);
|
|
121
136
|
throw error;
|
|
@@ -130,17 +145,9 @@ const initiateOAuth = async (platform, username) => {
|
|
|
130
145
|
exports.initiateOAuth = initiateOAuth;
|
|
131
146
|
const initiateNativeAuth = async platform => {
|
|
132
147
|
try {
|
|
133
|
-
// Currently
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// In a real implementation, you would import and use the Google Sign-In SDK
|
|
137
|
-
console.log('Initiating native Google Sign-In for YouTube');
|
|
138
|
-
|
|
139
|
-
// Simulate a successful authentication
|
|
140
|
-
// In a real implementation, this would be the result of the Google Sign-In flow
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
throw new Error(`Native authentication not supported for ${platform}`);
|
|
148
|
+
// Currently no platforms use native SDK - all go through Onairos proxy
|
|
149
|
+
console.log(`Native authentication not available for ${platform}, use OAuth flow instead`);
|
|
150
|
+
return false;
|
|
144
151
|
} catch (error) {
|
|
145
152
|
console.error(`Error initiating native auth for ${platform}:`, error);
|
|
146
153
|
throw error;
|
|
@@ -155,11 +162,15 @@ const initiateNativeAuth = async platform => {
|
|
|
155
162
|
exports.initiateNativeAuth = initiateNativeAuth;
|
|
156
163
|
const handleOAuthCallback = url => {
|
|
157
164
|
try {
|
|
165
|
+
console.log('Handling OAuth callback URL:', url);
|
|
166
|
+
|
|
158
167
|
// Parse the URL
|
|
159
168
|
const parsedUrl = new URL(url);
|
|
160
169
|
|
|
161
170
|
// Extract the authorization code
|
|
162
|
-
|
|
171
|
+
const code = parsedUrl.searchParams.get('code');
|
|
172
|
+
console.log('Extracted authorization code:', code);
|
|
173
|
+
return code;
|
|
163
174
|
} catch (error) {
|
|
164
175
|
console.error('Error handling OAuth callback:', error);
|
|
165
176
|
return null;
|
|
@@ -173,8 +184,48 @@ const handleOAuthCallback = url => {
|
|
|
173
184
|
*/
|
|
174
185
|
exports.handleOAuthCallback = handleOAuthCallback;
|
|
175
186
|
const isOAuthCallback = url => {
|
|
176
|
-
//
|
|
177
|
-
|
|
187
|
+
// Updated to use correct deep link scheme
|
|
188
|
+
const isCallback = url.startsWith('onairosevents://auth/callback') || url.includes('/callback') || url.includes('code=') || url.includes('onairos.uk/Home');
|
|
189
|
+
console.log(`Checking if URL is OAuth callback: ${url} -> ${isCallback}`);
|
|
190
|
+
return isCallback;
|
|
178
191
|
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Detects if OAuth flow has completed successfully based on URL patterns
|
|
195
|
+
* @param url The current URL in the WebView
|
|
196
|
+
* @param platform The platform being authenticated
|
|
197
|
+
* @returns True if the OAuth flow has completed successfully
|
|
198
|
+
*/
|
|
179
199
|
exports.isOAuthCallback = isOAuthCallback;
|
|
200
|
+
const isOAuthSuccess = (url, platform) => {
|
|
201
|
+
console.log(`Checking OAuth success for ${platform} with URL: ${url}`);
|
|
202
|
+
|
|
203
|
+
// Check for final redirect to Onairos home page (indicates proxy has processed the callback)
|
|
204
|
+
if (url.includes('onairos.uk/Home')) {
|
|
205
|
+
console.log('Detected final redirect to onairos.uk/Home - OAuth success');
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Platform-specific success patterns
|
|
210
|
+
switch (platform) {
|
|
211
|
+
case 'youtube':
|
|
212
|
+
// YouTube/Google OAuth success patterns
|
|
213
|
+
return url.includes('accounts.google.com/o/oauth2/approval') || url.includes('consent.google.com/ml/save') || url.includes('myaccount.google.com');
|
|
214
|
+
case 'reddit':
|
|
215
|
+
// Reddit OAuth success patterns
|
|
216
|
+
return url.includes('/api/v1/authorize?done=true') || url.includes('reddit.com/api/v1/authorize/compact');
|
|
217
|
+
case 'pinterest':
|
|
218
|
+
// Pinterest OAuth success patterns
|
|
219
|
+
return url.includes('/oauth/success') || url.includes('/oauth/complete');
|
|
220
|
+
case 'instagram':
|
|
221
|
+
// Instagram OAuth success patterns
|
|
222
|
+
return url.includes('/oauth/authorize/?response_type=code') || url.includes('instagram.com/oauth/authorize');
|
|
223
|
+
case 'email':
|
|
224
|
+
// Email verification success patterns
|
|
225
|
+
return url.includes('/email/verify/success') || url.includes('/email/confirmed');
|
|
226
|
+
default:
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
exports.isOAuthSuccess = isOAuthSuccess;
|
|
180
231
|
//# sourceMappingURL=platformAuthService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","
|
|
1
|
+
{"version":3,"names":["PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","reddit","pinterest","email","platform","config","exports","getAuthEndpoint","getPlatformColor","initiateOAuth","userEmail","Error","console","log","requestBody","session","username","timestamp","Date","toISOString","JSON","stringify","response","fetch","method","headers","body","status","ok","errorText","text","error","data","json","oauthUrl","youtubeURL","redditURL","pinterestURL","emailURL","instagramURL","url","initiateNativeAuth","handleOAuthCallback","parsedUrl","URL","code","searchParams","get","isOAuthCallback","isCallback","startsWith","includes","isOAuthSuccess"],"sourceRoot":"..\\..\\..\\src","sources":["services/platformAuthService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,6 @@ import { UniversalOnboarding } from './UniversalOnboarding';
|
|
|
4
4
|
import { Overlay } from './Overlay';
|
|
5
5
|
import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
|
|
6
6
|
import { onairosApi } from '../api';
|
|
7
|
-
import { Portal } from '../utils/Portal';
|
|
8
7
|
/**
|
|
9
8
|
* OnairosButton Component - A sign-in button similar to Google/Apple sign-in
|
|
10
9
|
*/
|
|
@@ -246,14 +245,14 @@ export const OnairosButton = /*#__PURE__*/forwardRef(({
|
|
|
246
245
|
debug: debug,
|
|
247
246
|
test: testMode,
|
|
248
247
|
preferredPlatform: preferredPlatform
|
|
249
|
-
}), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(
|
|
248
|
+
}), showOverlay && storedCredentials && /*#__PURE__*/React.createElement(Overlay, {
|
|
250
249
|
data: requestData || {},
|
|
251
250
|
username: storedCredentials.username,
|
|
252
251
|
modelKey: storedCredentials.userPin || '',
|
|
253
252
|
onResolved: handleOverlayResolved,
|
|
254
253
|
appName: AppName,
|
|
255
254
|
darkMode: darkMode
|
|
256
|
-
}))
|
|
255
|
+
}));
|
|
257
256
|
});
|
|
258
257
|
const styles = StyleSheet.create({
|
|
259
258
|
button: {
|