@dynamic-labs/embedded-wallet 3.0.0-alpha.8

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.
Files changed (53) hide show
  1. package/CHANGELOG.md +3494 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -0
  4. package/_virtual/_tslib.cjs +36 -0
  5. package/_virtual/_tslib.js +32 -0
  6. package/package.json +39 -0
  7. package/src/index.cjs +23 -0
  8. package/src/index.d.ts +7 -0
  9. package/src/index.js +9 -0
  10. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs +226 -0
  11. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.d.ts +1640 -0
  12. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js +222 -0
  13. package/src/lib/AuthenticatorHandler/index.d.ts +1 -0
  14. package/src/lib/ExportHandler/ExportHandler.cjs +141 -0
  15. package/src/lib/ExportHandler/ExportHandler.d.ts +1630 -0
  16. package/src/lib/ExportHandler/ExportHandler.js +137 -0
  17. package/src/lib/ExportHandler/index.d.ts +1 -0
  18. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.cjs +217 -0
  19. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.d.ts +68 -0
  20. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.js +213 -0
  21. package/src/lib/TurnkeyWalletConnectorBase/index.d.ts +1 -0
  22. package/src/lib/constants.cjs +8 -0
  23. package/src/lib/constants.d.ts +1 -0
  24. package/src/lib/constants.js +4 -0
  25. package/src/lib/utils/PasskeyService/PasskeyService.cjs +41 -0
  26. package/src/lib/utils/PasskeyService/PasskeyService.d.ts +23 -0
  27. package/src/lib/utils/PasskeyService/PasskeyService.js +37 -0
  28. package/src/lib/utils/PasskeyService/index.d.ts +2 -0
  29. package/src/lib/utils/PasskeyService/types.d.ts +6 -0
  30. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.cjs +14 -0
  31. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.d.ts +2 -0
  32. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.js +10 -0
  33. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/index.d.ts +1 -0
  34. package/src/lib/utils/base64UrlEncode/base64UrlEncode.cjs +12 -0
  35. package/src/lib/utils/base64UrlEncode/base64UrlEncode.d.ts +1 -0
  36. package/src/lib/utils/base64UrlEncode/base64UrlEncode.js +8 -0
  37. package/src/lib/utils/base64UrlEncode/index.d.ts +1 -0
  38. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.cjs +17 -0
  39. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.d.ts +4 -0
  40. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.js +13 -0
  41. package/src/lib/utils/convertAttestationTransports/index.d.ts +1 -0
  42. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.cjs +8 -0
  43. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.d.ts +2 -0
  44. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.js +4 -0
  45. package/src/lib/utils/findTurnkeyVerifiedCredential/index.d.ts +1 -0
  46. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.cjs +12 -0
  47. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.d.ts +1 -0
  48. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.js +8 -0
  49. package/src/lib/utils/generateRandomBuffer/index.d.ts +1 -0
  50. package/src/lib/utils/index.d.ts +4 -0
  51. package/src/types.cjs +17 -0
  52. package/src/types.d.ts +8 -0
  53. package/src/types.js +13 -0
@@ -0,0 +1,41 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var createTurnkeyPasskeyService = require('./utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.cjs');
7
+
8
+ class PasskeyService {
9
+ /**
10
+ * Gets the current passkey service implementation.
11
+ * If no implementation is set, it will create a new turnkey passkey service.
12
+ * @returns {IPasskeyService} The passkey service implementation.
13
+ */
14
+ static get implementation() {
15
+ if (!PasskeyService._implementation) {
16
+ return createTurnkeyPasskeyService.createTurnkeyPasskeyService();
17
+ }
18
+ return PasskeyService._implementation;
19
+ }
20
+ /**
21
+ * Sets the passkey service implementation.
22
+ * @param {IPasskeyService} implementation The passkey service implementation to set.
23
+ */
24
+ static setImplementation(implementation) {
25
+ PasskeyService._implementation = implementation;
26
+ }
27
+ /**
28
+ * Gets the WebAuthn attestation method from the current implementation.
29
+ */
30
+ static get getWebAuthnAttestation() {
31
+ return PasskeyService.implementation.getWebAuthnAttestation;
32
+ }
33
+ /**
34
+ * Gets the createWebauthnStamper method from the current implementation.
35
+ */
36
+ static get createWebauthnStamper() {
37
+ return PasskeyService.implementation.createWebauthnStamper;
38
+ }
39
+ }
40
+
41
+ exports.PasskeyService = PasskeyService;
@@ -0,0 +1,23 @@
1
+ import { IPasskeyService } from './types';
2
+ export declare class PasskeyService {
3
+ static _implementation: IPasskeyService;
4
+ /**
5
+ * Gets the current passkey service implementation.
6
+ * If no implementation is set, it will create a new turnkey passkey service.
7
+ * @returns {IPasskeyService} The passkey service implementation.
8
+ */
9
+ static get implementation(): IPasskeyService;
10
+ /**
11
+ * Sets the passkey service implementation.
12
+ * @param {IPasskeyService} implementation The passkey service implementation to set.
13
+ */
14
+ static setImplementation(implementation: IPasskeyService): void;
15
+ /**
16
+ * Gets the WebAuthn attestation method from the current implementation.
17
+ */
18
+ static get getWebAuthnAttestation(): typeof import("@turnkey/http").getWebAuthnAttestation;
19
+ /**
20
+ * Gets the createWebauthnStamper method from the current implementation.
21
+ */
22
+ static get createWebauthnStamper(): (config: import("@turnkey/webauthn-stamper").TWebauthnStamperConfig) => import("@turnkey/webauthn-stamper").WebauthnStamper;
23
+ }
@@ -0,0 +1,37 @@
1
+ 'use client'
2
+ import { createTurnkeyPasskeyService } from './utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.js';
3
+
4
+ class PasskeyService {
5
+ /**
6
+ * Gets the current passkey service implementation.
7
+ * If no implementation is set, it will create a new turnkey passkey service.
8
+ * @returns {IPasskeyService} The passkey service implementation.
9
+ */
10
+ static get implementation() {
11
+ if (!PasskeyService._implementation) {
12
+ return createTurnkeyPasskeyService();
13
+ }
14
+ return PasskeyService._implementation;
15
+ }
16
+ /**
17
+ * Sets the passkey service implementation.
18
+ * @param {IPasskeyService} implementation The passkey service implementation to set.
19
+ */
20
+ static setImplementation(implementation) {
21
+ PasskeyService._implementation = implementation;
22
+ }
23
+ /**
24
+ * Gets the WebAuthn attestation method from the current implementation.
25
+ */
26
+ static get getWebAuthnAttestation() {
27
+ return PasskeyService.implementation.getWebAuthnAttestation;
28
+ }
29
+ /**
30
+ * Gets the createWebauthnStamper method from the current implementation.
31
+ */
32
+ static get createWebauthnStamper() {
33
+ return PasskeyService.implementation.createWebauthnStamper;
34
+ }
35
+ }
36
+
37
+ export { PasskeyService };
@@ -0,0 +1,2 @@
1
+ export { PasskeyService } from './PasskeyService';
2
+ export type { IPasskeyService } from './types';
@@ -0,0 +1,6 @@
1
+ import { getWebAuthnAttestation } from '@turnkey/http';
2
+ import { TWebauthnStamperConfig, WebauthnStamper } from '@turnkey/webauthn-stamper';
3
+ export type IPasskeyService = {
4
+ getWebAuthnAttestation: typeof getWebAuthnAttestation;
5
+ createWebauthnStamper: (config: TWebauthnStamperConfig) => WebauthnStamper;
6
+ };
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var http = require('@turnkey/http');
7
+ var webauthnStamper = require('@turnkey/webauthn-stamper');
8
+
9
+ const createTurnkeyPasskeyService = () => ({
10
+ createWebauthnStamper: (config) => new webauthnStamper.WebauthnStamper(config),
11
+ getWebAuthnAttestation: http.getWebAuthnAttestation,
12
+ });
13
+
14
+ exports.createTurnkeyPasskeyService = createTurnkeyPasskeyService;
@@ -0,0 +1,2 @@
1
+ import { IPasskeyService } from '../../types';
2
+ export declare const createTurnkeyPasskeyService: () => IPasskeyService;
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ import { getWebAuthnAttestation } from '@turnkey/http';
3
+ import { WebauthnStamper } from '@turnkey/webauthn-stamper';
4
+
5
+ const createTurnkeyPasskeyService = () => ({
6
+ createWebauthnStamper: (config) => new WebauthnStamper(config),
7
+ getWebAuthnAttestation,
8
+ });
9
+
10
+ export { createTurnkeyPasskeyService };
@@ -0,0 +1 @@
1
+ export { createTurnkeyPasskeyService } from './createTurnkeyPasskeyService';
@@ -0,0 +1,12 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const base64UrlEncode = (challenge) => Buffer.from(challenge)
7
+ .toString('base64')
8
+ .replace(/\+/g, '-')
9
+ .replace(/\//g, '_')
10
+ .replace(/=/g, '');
11
+
12
+ exports.base64UrlEncode = base64UrlEncode;
@@ -0,0 +1 @@
1
+ export declare const base64UrlEncode: (challenge: ArrayBuffer) => string;
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ const base64UrlEncode = (challenge) => Buffer.from(challenge)
3
+ .toString('base64')
4
+ .replace(/\+/g, '-')
5
+ .replace(/\//g, '_')
6
+ .replace(/=/g, '');
7
+
8
+ export { base64UrlEncode };
@@ -0,0 +1 @@
1
+ export { base64UrlEncode } from './base64UrlEncode';
@@ -0,0 +1,17 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
7
+
8
+ const transportMap = {
9
+ AUTHENTICATOR_TRANSPORT_BLE: sdkApiCore.AuthenticatorTransportProtocol.Ble,
10
+ AUTHENTICATOR_TRANSPORT_HYBRID: sdkApiCore.AuthenticatorTransportProtocol.Hybrid,
11
+ AUTHENTICATOR_TRANSPORT_INTERNAL: sdkApiCore.AuthenticatorTransportProtocol.Internal,
12
+ AUTHENTICATOR_TRANSPORT_NFC: sdkApiCore.AuthenticatorTransportProtocol.Nfc,
13
+ AUTHENTICATOR_TRANSPORT_USB: sdkApiCore.AuthenticatorTransportProtocol.Usb,
14
+ };
15
+ const convertAttestationTransports = (attestationTransports) => attestationTransports.map((transport) => transportMap[transport]);
16
+
17
+ exports.convertAttestationTransports = convertAttestationTransports;
@@ -0,0 +1,4 @@
1
+ import { AuthenticatorTransportProtocol } from '@dynamic-labs/sdk-api-core';
2
+ type AttestationTransports = 'AUTHENTICATOR_TRANSPORT_BLE' | 'AUTHENTICATOR_TRANSPORT_INTERNAL' | 'AUTHENTICATOR_TRANSPORT_NFC' | 'AUTHENTICATOR_TRANSPORT_HYBRID' | 'AUTHENTICATOR_TRANSPORT_USB';
3
+ export declare const convertAttestationTransports: (attestationTransports: AttestationTransports[]) => AuthenticatorTransportProtocol[];
4
+ export {};
@@ -0,0 +1,13 @@
1
+ 'use client'
2
+ import { AuthenticatorTransportProtocol } from '@dynamic-labs/sdk-api-core';
3
+
4
+ const transportMap = {
5
+ AUTHENTICATOR_TRANSPORT_BLE: AuthenticatorTransportProtocol.Ble,
6
+ AUTHENTICATOR_TRANSPORT_HYBRID: AuthenticatorTransportProtocol.Hybrid,
7
+ AUTHENTICATOR_TRANSPORT_INTERNAL: AuthenticatorTransportProtocol.Internal,
8
+ AUTHENTICATOR_TRANSPORT_NFC: AuthenticatorTransportProtocol.Nfc,
9
+ AUTHENTICATOR_TRANSPORT_USB: AuthenticatorTransportProtocol.Usb,
10
+ };
11
+ const convertAttestationTransports = (attestationTransports) => attestationTransports.map((transport) => transportMap[transport]);
12
+
13
+ export { convertAttestationTransports };
@@ -0,0 +1 @@
1
+ export { convertAttestationTransports } from './convertAttestationTransports';
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const findTurnkeyVerifiedCredential = (verifiedCredentials, chain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ walletName, chain: vcChain }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && chain === vcChain);
7
+
8
+ exports.findTurnkeyVerifiedCredential = findTurnkeyVerifiedCredential;
@@ -0,0 +1,2 @@
1
+ import type { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
2
+ export declare const findTurnkeyVerifiedCredential: (verifiedCredentials: JwtVerifiedCredential[], chain: string) => JwtVerifiedCredential | undefined;
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ const findTurnkeyVerifiedCredential = (verifiedCredentials, chain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ walletName, chain: vcChain }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && chain === vcChain);
3
+
4
+ export { findTurnkeyVerifiedCredential };
@@ -0,0 +1 @@
1
+ export { findTurnkeyVerifiedCredential } from './findTurnkeyVerifiedCredential';
@@ -0,0 +1,12 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const generateRandomBuffer = () => {
7
+ const arr = new Uint8Array(32);
8
+ crypto.getRandomValues(arr);
9
+ return arr.buffer;
10
+ };
11
+
12
+ exports.generateRandomBuffer = generateRandomBuffer;
@@ -0,0 +1 @@
1
+ export declare const generateRandomBuffer: () => ArrayBuffer;
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ const generateRandomBuffer = () => {
3
+ const arr = new Uint8Array(32);
4
+ crypto.getRandomValues(arr);
5
+ return arr.buffer;
6
+ };
7
+
8
+ export { generateRandomBuffer };
@@ -0,0 +1 @@
1
+ export { generateRandomBuffer } from './generateRandomBuffer';
@@ -0,0 +1,4 @@
1
+ export * from './findTurnkeyVerifiedCredential';
2
+ export * from './base64UrlEncode';
3
+ export * from './generateRandomBuffer';
4
+ export * from './convertAttestationTransports';
package/src/types.cjs ADDED
@@ -0,0 +1,17 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const TurnkeyWalletConnectorInfo = {
7
+ Turnkey: {
8
+ key: 'turnkey',
9
+ name: 'Turnkey',
10
+ },
11
+ TurnkeyHD: {
12
+ key: 'turnkeyhd',
13
+ name: 'Turnkey HD',
14
+ },
15
+ };
16
+
17
+ exports.TurnkeyWalletConnectorInfo = TurnkeyWalletConnectorInfo;
package/src/types.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export type TurnkeyWalletConnectorNameAndKey = {
2
+ key: string;
3
+ name: string;
4
+ };
5
+ export declare const TurnkeyWalletConnectorInfo: {
6
+ Turnkey: TurnkeyWalletConnectorNameAndKey;
7
+ TurnkeyHD: TurnkeyWalletConnectorNameAndKey;
8
+ };
package/src/types.js ADDED
@@ -0,0 +1,13 @@
1
+ 'use client'
2
+ const TurnkeyWalletConnectorInfo = {
3
+ Turnkey: {
4
+ key: 'turnkey',
5
+ name: 'Turnkey',
6
+ },
7
+ TurnkeyHD: {
8
+ key: 'turnkeyhd',
9
+ name: 'Turnkey HD',
10
+ },
11
+ };
12
+
13
+ export { TurnkeyWalletConnectorInfo };