@dynamic-labs/react-native-extension 4.0.0-alpha.11 → 4.0.0-alpha.13

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.11";
17
+ var version = "4.0.0-alpha.13";
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.11";
13
+ var version = "4.0.0-alpha.13";
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.11",
3
+ "version": "4.0.0-alpha.13",
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.11",
19
- "@dynamic-labs/client": "4.0.0-alpha.11",
20
- "@dynamic-labs/logger": "4.0.0-alpha.11",
21
- "@dynamic-labs/message-transport": "4.0.0-alpha.11"
18
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.13",
19
+ "@dynamic-labs/client": "4.0.0-alpha.13",
20
+ "@dynamic-labs/logger": "4.0.0-alpha.13",
21
+ "@dynamic-labs/message-transport": "4.0.0-alpha.13"
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';
@@ -1,2 +0,0 @@
1
- import { Core } from '@dynamic-labs/client';
2
- export declare const setupFetchHandler: (core: Core) => void;