@dynamic-labs/react-native-extension 4.22.8 → 4.23.1

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
@@ -9,12 +9,13 @@ var reactNativeWebview = require('react-native-webview');
9
9
  var logger$1 = require('@dynamic-labs/logger');
10
10
  var messageTransport = require('@dynamic-labs/message-transport');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
+ var reactNativePasskey = require('react-native-passkey');
12
13
  var expoLinking = require('expo-linking');
13
14
  var expoWebBrowser = require('expo-web-browser');
14
15
  var expoSecureStore = require('expo-secure-store');
15
16
  var reactNativePasskeyStamper = require('@turnkey/react-native-passkey-stamper');
16
17
 
17
- var version = "4.22.8";
18
+ var version = "4.23.1";
18
19
 
19
20
  function _extends() {
20
21
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
@@ -364,6 +365,37 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
364
365
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
365
366
  };
366
367
 
368
+ const setupPasskeyHandler = core => {
369
+ const passkeyRequestChannel = messageTransport.createRequestChannel(core.messageTransport);
370
+ passkeyRequestChannel.handle('passkey_register', _a => __awaiter(void 0, [_a], void 0, function* ({
371
+ optionsJSON
372
+ }) {
373
+ /**
374
+ * It is safe to cast the request type here because the react-native-passkey
375
+ * package follow the web API spec but typescript does not match both types
376
+ * correctly
377
+ */
378
+ const result = yield reactNativePasskey.Passkey.create(
379
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
380
+ optionsJSON);
381
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
382
+ return result;
383
+ }));
384
+ passkeyRequestChannel.handle('passkey_authenticate', _b => __awaiter(void 0, [_b], void 0, function* ({
385
+ optionsJSON
386
+ }) {
387
+ /**
388
+ * It is safe to cast the request type here because the react-native-passkey
389
+ * package follow the web API spec but typescript does not match both types
390
+ * correctly
391
+ */
392
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
393
+ const result = yield reactNativePasskey.Passkey.get(optionsJSON);
394
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
395
+ return result;
396
+ }));
397
+ };
398
+
367
399
  const setupPlatformHandler = core => {
368
400
  const platformChannel = messageTransport.createRequestChannel(core.messageTransport);
369
401
  core.manifest.setPlatform('react-native');
@@ -464,6 +496,7 @@ const ReactNativeExtension = ({
464
496
  };
465
497
  }
466
498
  if (appOrigin) core.manifest.setAppOrigin(appOrigin);
499
+ setupPasskeyHandler(core);
467
500
  setupTurnkeyPasskeyHandler(core);
468
501
  setupPlatformHandler(core);
469
502
  setupStorageHandler(core);
package/index.js CHANGED
@@ -5,12 +5,13 @@ import { WebView as WebView$1 } from 'react-native-webview';
5
5
  import { Logger } from '@dynamic-labs/logger';
6
6
  import { parseMessageTransportData, createRequestChannel } from '@dynamic-labs/message-transport';
7
7
  import { jsx } from 'react/jsx-runtime';
8
+ import { Passkey } from 'react-native-passkey';
8
9
  import { createURL, openURL } from 'expo-linking';
9
10
  import { openAuthSessionAsync } from 'expo-web-browser';
10
11
  import { getItemAsync, deleteItemAsync, setItemAsync } from 'expo-secure-store';
11
12
  import { createPasskey, PasskeyStamper } from '@turnkey/react-native-passkey-stamper';
12
13
 
13
- var version = "4.22.8";
14
+ var version = "4.23.1";
14
15
 
15
16
  function _extends() {
16
17
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
@@ -360,6 +361,37 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
360
361
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
361
362
  };
362
363
 
364
+ const setupPasskeyHandler = core => {
365
+ const passkeyRequestChannel = createRequestChannel(core.messageTransport);
366
+ passkeyRequestChannel.handle('passkey_register', _a => __awaiter(void 0, [_a], void 0, function* ({
367
+ optionsJSON
368
+ }) {
369
+ /**
370
+ * It is safe to cast the request type here because the react-native-passkey
371
+ * package follow the web API spec but typescript does not match both types
372
+ * correctly
373
+ */
374
+ const result = yield Passkey.create(
375
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
376
+ optionsJSON);
377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
378
+ return result;
379
+ }));
380
+ passkeyRequestChannel.handle('passkey_authenticate', _b => __awaiter(void 0, [_b], void 0, function* ({
381
+ optionsJSON
382
+ }) {
383
+ /**
384
+ * It is safe to cast the request type here because the react-native-passkey
385
+ * package follow the web API spec but typescript does not match both types
386
+ * correctly
387
+ */
388
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
389
+ const result = yield Passkey.get(optionsJSON);
390
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
391
+ return result;
392
+ }));
393
+ };
394
+
363
395
  const setupPlatformHandler = core => {
364
396
  const platformChannel = createRequestChannel(core.messageTransport);
365
397
  core.manifest.setPlatform('react-native');
@@ -460,6 +492,7 @@ const ReactNativeExtension = ({
460
492
  };
461
493
  }
462
494
  if (appOrigin) core.manifest.setAppOrigin(appOrigin);
495
+ setupPasskeyHandler(core);
463
496
  setupTurnkeyPasskeyHandler(core);
464
497
  setupPlatformHandler(core);
465
498
  setupStorageHandler(core);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/react-native-extension",
3
- "version": "4.22.8",
3
+ "version": "4.23.1",
4
4
  "main": "./index.cjs",
5
5
  "module": "./index.js",
6
6
  "types": "./src/index.d.ts",
@@ -14,11 +14,12 @@
14
14
  "./package.json": "./package.json"
15
15
  },
16
16
  "dependencies": {
17
- "@turnkey/react-native-passkey-stamper": "0.2.15",
18
- "@dynamic-labs/assert-package-version": "4.22.8",
19
- "@dynamic-labs/client": "4.22.8",
20
- "@dynamic-labs/logger": "4.22.8",
21
- "@dynamic-labs/message-transport": "4.22.8"
17
+ "react-native-passkey": "3.1.0",
18
+ "@turnkey/react-native-passkey-stamper": "1.0.17",
19
+ "@dynamic-labs/assert-package-version": "4.23.1",
20
+ "@dynamic-labs/client": "4.23.1",
21
+ "@dynamic-labs/logger": "4.23.1",
22
+ "@dynamic-labs/message-transport": "4.23.1"
22
23
  },
23
24
  "peerDependencies": {
24
25
  "react": ">=18.0.0 <20.0.0",
@@ -0,0 +1 @@
1
+ export { setupPasskeyHandler } from './setupPasskeyHandler';
@@ -0,0 +1,2 @@
1
+ import { Core } from '@dynamic-labs/client';
2
+ export declare const setupPasskeyHandler: (core: Core) => void;