@dynamic-labs/react-native-extension 4.53.0 → 4.53.2
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/index.cjs +31 -2
- package/index.js +31 -2
- package/package.json +6 -6
package/index.cjs
CHANGED
|
@@ -33,7 +33,7 @@ function _interopNamespace(e) {
|
|
|
33
33
|
return Object.freeze(n);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
var version = "4.53.
|
|
36
|
+
var version = "4.53.2";
|
|
37
37
|
|
|
38
38
|
function _extends() {
|
|
39
39
|
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
@@ -246,6 +246,8 @@ const assignEnvironmentIdToUrl = (url, environmentId) => {
|
|
|
246
246
|
return _url;
|
|
247
247
|
};
|
|
248
248
|
|
|
249
|
+
const waasOrigins = ['https://app.dynamic-preprod.xyz', 'https://app.dynamicauth.com'];
|
|
250
|
+
const turnkeyOrigins = ['https://recovery.turnkey.com', 'https://export.turnkey.com'];
|
|
249
251
|
const WebView = ({
|
|
250
252
|
webviewUrl: initialWebViewUrl,
|
|
251
253
|
core,
|
|
@@ -331,9 +333,36 @@ const WebView = ({
|
|
|
331
333
|
webviewDebuggingEnabled: _webviewDebuggingEnabled,
|
|
332
334
|
onContentProcessDidTerminate: blockAndReloadWebView,
|
|
333
335
|
onRenderProcessGone: blockAndReloadWebView,
|
|
334
|
-
onError: () => setWebViewLoadError()
|
|
336
|
+
onError: () => setWebViewLoadError(),
|
|
337
|
+
setSupportMultipleWindows: false,
|
|
338
|
+
onShouldStartLoadWithRequest: request => {
|
|
339
|
+
const requestUrl = getUrl(request.url);
|
|
340
|
+
// Invalid URL, never navigate to it
|
|
341
|
+
if (!requestUrl) return false;
|
|
342
|
+
// Same origin as the webview, allow navigation
|
|
343
|
+
if (webViewUrl.origin === requestUrl.origin) {
|
|
344
|
+
return true;
|
|
345
|
+
}
|
|
346
|
+
// Allow WAAS iframe to load
|
|
347
|
+
if (requestUrl.pathname.startsWith('/waas-v1') && waasOrigins.includes(requestUrl.origin)) {
|
|
348
|
+
return true;
|
|
349
|
+
}
|
|
350
|
+
// Allow TurnkeyV1 iframe to load
|
|
351
|
+
if (turnkeyOrigins.includes(requestUrl.origin)) {
|
|
352
|
+
return true;
|
|
353
|
+
}
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
335
356
|
}, webViewKey);
|
|
336
357
|
};
|
|
358
|
+
const getUrl = url => {
|
|
359
|
+
try {
|
|
360
|
+
return new URL(url);
|
|
361
|
+
} catch (error) {
|
|
362
|
+
logger.error('Failed to get origin from url', error);
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
};
|
|
337
366
|
const createWebView = internalProps => {
|
|
338
367
|
const WebViewWrapper = props => /*#__PURE__*/jsxRuntime.jsx(WebView, _extends({}, internalProps, props));
|
|
339
368
|
return WebViewWrapper;
|
package/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { openAuthSessionAsync } from 'expo-web-browser';
|
|
|
11
11
|
import { getItemAsync, deleteItemAsync, setItemAsync } from 'expo-secure-store';
|
|
12
12
|
import { createPasskey, PasskeyStamper } from '@turnkey/react-native-passkey-stamper';
|
|
13
13
|
|
|
14
|
-
var version = "4.53.
|
|
14
|
+
var version = "4.53.2";
|
|
15
15
|
|
|
16
16
|
function _extends() {
|
|
17
17
|
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
@@ -224,6 +224,8 @@ const assignEnvironmentIdToUrl = (url, environmentId) => {
|
|
|
224
224
|
return _url;
|
|
225
225
|
};
|
|
226
226
|
|
|
227
|
+
const waasOrigins = ['https://app.dynamic-preprod.xyz', 'https://app.dynamicauth.com'];
|
|
228
|
+
const turnkeyOrigins = ['https://recovery.turnkey.com', 'https://export.turnkey.com'];
|
|
227
229
|
const WebView = ({
|
|
228
230
|
webviewUrl: initialWebViewUrl,
|
|
229
231
|
core,
|
|
@@ -309,9 +311,36 @@ const WebView = ({
|
|
|
309
311
|
webviewDebuggingEnabled: _webviewDebuggingEnabled,
|
|
310
312
|
onContentProcessDidTerminate: blockAndReloadWebView,
|
|
311
313
|
onRenderProcessGone: blockAndReloadWebView,
|
|
312
|
-
onError: () => setWebViewLoadError()
|
|
314
|
+
onError: () => setWebViewLoadError(),
|
|
315
|
+
setSupportMultipleWindows: false,
|
|
316
|
+
onShouldStartLoadWithRequest: request => {
|
|
317
|
+
const requestUrl = getUrl(request.url);
|
|
318
|
+
// Invalid URL, never navigate to it
|
|
319
|
+
if (!requestUrl) return false;
|
|
320
|
+
// Same origin as the webview, allow navigation
|
|
321
|
+
if (webViewUrl.origin === requestUrl.origin) {
|
|
322
|
+
return true;
|
|
323
|
+
}
|
|
324
|
+
// Allow WAAS iframe to load
|
|
325
|
+
if (requestUrl.pathname.startsWith('/waas-v1') && waasOrigins.includes(requestUrl.origin)) {
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
// Allow TurnkeyV1 iframe to load
|
|
329
|
+
if (turnkeyOrigins.includes(requestUrl.origin)) {
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
313
334
|
}, webViewKey);
|
|
314
335
|
};
|
|
336
|
+
const getUrl = url => {
|
|
337
|
+
try {
|
|
338
|
+
return new URL(url);
|
|
339
|
+
} catch (error) {
|
|
340
|
+
logger.error('Failed to get origin from url', error);
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
315
344
|
const createWebView = internalProps => {
|
|
316
345
|
const WebViewWrapper = props => /*#__PURE__*/jsx(WebView, _extends({}, internalProps, props));
|
|
317
346
|
return WebViewWrapper;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/react-native-extension",
|
|
3
|
-
"version": "4.53.
|
|
3
|
+
"version": "4.53.2",
|
|
4
4
|
"main": "./index.cjs",
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"@turnkey/react-native-passkey-stamper": "1.1.3",
|
|
19
19
|
"@react-native-documents/picker": "^11.0.0",
|
|
20
20
|
"react-native-fs": ">=2.20.0",
|
|
21
|
-
"@dynamic-labs/assert-package-version": "4.53.
|
|
22
|
-
"@dynamic-labs/client": "4.53.
|
|
23
|
-
"@dynamic-labs/logger": "4.53.
|
|
24
|
-
"@dynamic-labs/message-transport": "4.53.
|
|
25
|
-
"@dynamic-labs/webview-messages": "4.53.
|
|
21
|
+
"@dynamic-labs/assert-package-version": "4.53.2",
|
|
22
|
+
"@dynamic-labs/client": "4.53.2",
|
|
23
|
+
"@dynamic-labs/logger": "4.53.2",
|
|
24
|
+
"@dynamic-labs/message-transport": "4.53.2",
|
|
25
|
+
"@dynamic-labs/webview-messages": "4.53.2"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18.0.0 <20.0.0",
|