@dynamic-labs/react-native-extension 4.0.0-alpha.11 → 4.0.0-alpha.12
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
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var assertPackageVersion = require('@dynamic-labs/assert-package-version');
|
|
6
|
+
var reactNative = require('react-native');
|
|
6
7
|
var react = require('react');
|
|
7
8
|
var reactNativeWebview = require('react-native-webview');
|
|
8
9
|
var messageTransport = require('@dynamic-labs/message-transport');
|
|
9
10
|
var logger$1 = require('@dynamic-labs/logger');
|
|
10
|
-
var reactNative = require('react-native');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
var reactNativePasskeyStamper = require('@turnkey/react-native-passkey-stamper');
|
|
13
13
|
var expoLinking = require('expo-linking');
|
|
14
14
|
var expoWebBrowser = require('expo-web-browser');
|
|
15
15
|
var expoSecureStore = require('expo-secure-store');
|
|
16
16
|
|
|
17
|
-
var version = "4.0.0-alpha.
|
|
17
|
+
var version = "4.0.0-alpha.12";
|
|
18
18
|
|
|
19
19
|
function _extends() {
|
|
20
20
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -189,21 +189,6 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
189
189
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
190
190
|
};
|
|
191
191
|
|
|
192
|
-
const setupFetchHandler = core => {
|
|
193
|
-
const fetchRequestChannel = messageTransport.createRequestChannel(core.messageTransport);
|
|
194
|
-
fetchRequestChannel.handle('fetch', (input, init) => __awaiter(void 0, void 0, void 0, function* () {
|
|
195
|
-
const response = yield fetch(input, init);
|
|
196
|
-
const responseBody = yield response.text();
|
|
197
|
-
return {
|
|
198
|
-
body: responseBody,
|
|
199
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
-
headers: Object.fromEntries(response.headers.entries()),
|
|
201
|
-
status: response.status,
|
|
202
|
-
statusText: response.statusText
|
|
203
|
-
};
|
|
204
|
-
}));
|
|
205
|
-
};
|
|
206
|
-
|
|
207
192
|
const setupPasskeyHandler = core => {
|
|
208
193
|
const passkeysRequestChannel = messageTransport.createRequestChannel(core.messageTransport);
|
|
209
194
|
passkeysRequestChannel.handle('createPasskey', _a => __awaiter(void 0, [_a], void 0, function* ({
|
|
@@ -267,9 +252,20 @@ const ReactNativeExtension = ({
|
|
|
267
252
|
webviewDebuggingEnabled,
|
|
268
253
|
appOrigin
|
|
269
254
|
} = {}) => (_, core) => {
|
|
255
|
+
const isPlatformSupportedByWebView = reactNative.Platform.OS === 'android' || reactNative.Platform.OS === 'ios';
|
|
256
|
+
/**
|
|
257
|
+
* If react-native-webview does not supported it will return
|
|
258
|
+
* a dummy webview component so it does not break expo for web
|
|
259
|
+
*/
|
|
260
|
+
if (!isPlatformSupportedByWebView) {
|
|
261
|
+
return {
|
|
262
|
+
reactNative: {
|
|
263
|
+
WebView: () => null
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
}
|
|
270
267
|
if (appOrigin) core.manifest.setAppOrigin(appOrigin);
|
|
271
268
|
setupPasskeyHandler(core);
|
|
272
|
-
setupFetchHandler(core);
|
|
273
269
|
setupPlatformHandler(core);
|
|
274
270
|
setupSecureStorageHandler(core);
|
|
275
271
|
return {
|
package/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
|
|
2
|
+
import { StyleSheet, Platform } from 'react-native';
|
|
2
3
|
import { useRef, useEffect, useCallback, useState } from 'react';
|
|
3
4
|
import { WebView as WebView$1 } from 'react-native-webview';
|
|
4
5
|
import { parseMessageTransportData, createRequestChannel } from '@dynamic-labs/message-transport';
|
|
5
6
|
import { Logger } from '@dynamic-labs/logger';
|
|
6
|
-
import { StyleSheet } from 'react-native';
|
|
7
7
|
import { jsx } from 'react/jsx-runtime';
|
|
8
8
|
import { createPasskey, PasskeyStamper } from '@turnkey/react-native-passkey-stamper';
|
|
9
9
|
import { createURL, openURL } from 'expo-linking';
|
|
10
10
|
import { openAuthSessionAsync } from 'expo-web-browser';
|
|
11
11
|
import { getItemAsync, setItemAsync, deleteItemAsync } from 'expo-secure-store';
|
|
12
12
|
|
|
13
|
-
var version = "4.0.0-alpha.
|
|
13
|
+
var version = "4.0.0-alpha.12";
|
|
14
14
|
|
|
15
15
|
function _extends() {
|
|
16
16
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -185,21 +185,6 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
185
185
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
186
186
|
};
|
|
187
187
|
|
|
188
|
-
const setupFetchHandler = core => {
|
|
189
|
-
const fetchRequestChannel = createRequestChannel(core.messageTransport);
|
|
190
|
-
fetchRequestChannel.handle('fetch', (input, init) => __awaiter(void 0, void 0, void 0, function* () {
|
|
191
|
-
const response = yield fetch(input, init);
|
|
192
|
-
const responseBody = yield response.text();
|
|
193
|
-
return {
|
|
194
|
-
body: responseBody,
|
|
195
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
-
headers: Object.fromEntries(response.headers.entries()),
|
|
197
|
-
status: response.status,
|
|
198
|
-
statusText: response.statusText
|
|
199
|
-
};
|
|
200
|
-
}));
|
|
201
|
-
};
|
|
202
|
-
|
|
203
188
|
const setupPasskeyHandler = core => {
|
|
204
189
|
const passkeysRequestChannel = createRequestChannel(core.messageTransport);
|
|
205
190
|
passkeysRequestChannel.handle('createPasskey', _a => __awaiter(void 0, [_a], void 0, function* ({
|
|
@@ -263,9 +248,20 @@ const ReactNativeExtension = ({
|
|
|
263
248
|
webviewDebuggingEnabled,
|
|
264
249
|
appOrigin
|
|
265
250
|
} = {}) => (_, core) => {
|
|
251
|
+
const isPlatformSupportedByWebView = Platform.OS === 'android' || Platform.OS === 'ios';
|
|
252
|
+
/**
|
|
253
|
+
* If react-native-webview does not supported it will return
|
|
254
|
+
* a dummy webview component so it does not break expo for web
|
|
255
|
+
*/
|
|
256
|
+
if (!isPlatformSupportedByWebView) {
|
|
257
|
+
return {
|
|
258
|
+
reactNative: {
|
|
259
|
+
WebView: () => null
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
}
|
|
266
263
|
if (appOrigin) core.manifest.setAppOrigin(appOrigin);
|
|
267
264
|
setupPasskeyHandler(core);
|
|
268
|
-
setupFetchHandler(core);
|
|
269
265
|
setupPlatformHandler(core);
|
|
270
266
|
setupSecureStorageHandler(core);
|
|
271
267
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/react-native-extension",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.12",
|
|
4
4
|
"main": "./index.cjs",
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@turnkey/react-native-passkey-stamper": "0.2.5",
|
|
18
|
-
"@dynamic-labs/assert-package-version": "4.0.0-alpha.
|
|
19
|
-
"@dynamic-labs/client": "4.0.0-alpha.
|
|
20
|
-
"@dynamic-labs/logger": "4.0.0-alpha.
|
|
21
|
-
"@dynamic-labs/message-transport": "4.0.0-alpha.
|
|
18
|
+
"@dynamic-labs/assert-package-version": "4.0.0-alpha.12",
|
|
19
|
+
"@dynamic-labs/client": "4.0.0-alpha.12",
|
|
20
|
+
"@dynamic-labs/logger": "4.0.0-alpha.12",
|
|
21
|
+
"@dynamic-labs/message-transport": "4.0.0-alpha.12"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": "^18.2.0",
|
|
@@ -16,7 +16,7 @@ export type ReactNativeExtensionProps = {
|
|
|
16
16
|
};
|
|
17
17
|
export type IReactNativeExtension = {
|
|
18
18
|
reactNative: {
|
|
19
|
-
WebView: () => JSX.Element;
|
|
19
|
+
WebView: () => JSX.Element | null;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
export declare const ReactNativeExtension: ({ webviewUrl, webviewDebuggingEnabled, appOrigin, }?: ReactNativeExtensionProps) => Extension<IReactNativeExtension>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { setupFetchHandler } from './setupFetchHandler';
|