@dynamic-labs/embedded-wallet 4.0.0-alpha.4 → 4.0.0-alpha.40
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/CHANGELOG.md +349 -0
- package/package.cjs +8 -0
- package/package.js +4 -0
- package/package.json +11 -18
- package/src/index.cjs +7 -4
- package/src/index.d.ts +1 -1
- package/src/index.js +6 -2
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs +13 -21
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.d.ts +274 -51
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js +13 -21
- package/src/lib/BaseTurnkeyHandler.cjs +22 -0
- package/src/lib/BaseTurnkeyHandler.d.ts +10 -0
- package/src/lib/BaseTurnkeyHandler.js +18 -0
- package/src/lib/ExportHandler/{ExportHandler.cjs → TurnkeyExportHandler.cjs} +10 -19
- package/src/lib/ExportHandler/{ExportHandler.d.ts → TurnkeyExportHandler.d.ts} +275 -50
- package/src/lib/ExportHandler/{ExportHandler.js → TurnkeyExportHandler.js} +10 -19
- package/src/lib/ExportHandler/index.d.ts +1 -1
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.cjs +34 -4
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.d.ts +11 -3
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.js +34 -4
- package/src/lib/constants.cjs +6 -3
- package/src/lib/constants.d.ts +2 -1
- package/src/lib/constants.js +5 -3
|
@@ -6,16 +6,18 @@ import { DynamicError, getTLD, PlatformService } from '@dynamic-labs/utils';
|
|
|
6
6
|
import { PasskeyService } from '../utils/PasskeyService/PasskeyService.js';
|
|
7
7
|
import '../utils/convertAttestationTransports/convertAttestationTransports.js';
|
|
8
8
|
import { logger } from '../utils/logger/logger.js';
|
|
9
|
+
import { BaseTurnkeyHandler } from '../BaseTurnkeyHandler.js';
|
|
10
|
+
import { TURNKEY_API_BASE_URL } from '../constants.js';
|
|
9
11
|
|
|
10
|
-
const turnkeyBaseUrl = 'https://api.turnkey.com';
|
|
11
12
|
const turnkeyPasskeyRecoveryUrl = 'https://recovery.turnkey.com';
|
|
12
13
|
const turnkeyEmailRecoveryUrl = 'https://auth.turnkey.com';
|
|
13
14
|
const TURNKEY_RECOVERY_CREDENTIAL_EXPIRATION_SECONDS = 900; // 15 seconds
|
|
14
15
|
const TURNKEY_SESSION_EXPIRATION_SECONDS = 1800; //30 seconds
|
|
15
16
|
const EMAIL_AUTH_CREDENTIAL_TYPE = 'CREDENTIAL_TYPE_API_KEY_P256';
|
|
16
17
|
const PASSKEY_RECOVERY_CREDENTIAL_TYPE = 'CREDENTIAL_TYPE_RECOVER_USER_KEY_P256';
|
|
17
|
-
class TurnkeyAuthenticatorRecoveryHandler {
|
|
18
|
+
class TurnkeyAuthenticatorRecoveryHandler extends BaseTurnkeyHandler {
|
|
18
19
|
constructor() {
|
|
20
|
+
super(...arguments);
|
|
19
21
|
this.isSessionActive = () => {
|
|
20
22
|
// it's only used for email auth session
|
|
21
23
|
if (!this.__createdAt || this.__recoveryType !== 'email') {
|
|
@@ -33,7 +35,7 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
33
35
|
if (!organizationId || !this.__turnkeyRecoveryUserId) {
|
|
34
36
|
throw new DynamicError('Cannot proceed with your request');
|
|
35
37
|
}
|
|
36
|
-
const userResponse = yield ((_a = this.
|
|
38
|
+
const userResponse = yield ((_a = this.__turnkeyClient) === null || _a === void 0 ? void 0 : _a.getUser({
|
|
37
39
|
organizationId,
|
|
38
40
|
userId: this.__turnkeyRecoveryUserId,
|
|
39
41
|
}));
|
|
@@ -61,12 +63,6 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
61
63
|
return false;
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
|
-
get publicKey() {
|
|
65
|
-
return this.__publicKey;
|
|
66
|
-
}
|
|
67
|
-
get client() {
|
|
68
|
-
return this.__client;
|
|
69
|
-
}
|
|
70
66
|
get recoveryType() {
|
|
71
67
|
return this.__recoveryType;
|
|
72
68
|
}
|
|
@@ -77,12 +73,8 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
77
73
|
this.__turnkeyRecoveryUserId = turnkeyRecoveryUserId;
|
|
78
74
|
}
|
|
79
75
|
clear() {
|
|
80
|
-
|
|
81
|
-
(_a = this.__iframeStamper) === null || _a === void 0 ? void 0 : _a.clear();
|
|
76
|
+
super.clear();
|
|
82
77
|
this.__recoveryType = undefined;
|
|
83
|
-
this.__iframeStamper = undefined;
|
|
84
|
-
this.__publicKey = undefined;
|
|
85
|
-
this.__client = undefined;
|
|
86
78
|
this.__turnkeyRecoveryUserId = undefined;
|
|
87
79
|
this.__createdAt = undefined;
|
|
88
80
|
}
|
|
@@ -113,8 +105,8 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
113
105
|
}
|
|
114
106
|
try {
|
|
115
107
|
yield this.__iframeStamper.injectCredentialBundle(recoveryBundle);
|
|
116
|
-
this.
|
|
117
|
-
baseUrl:
|
|
108
|
+
this.__turnkeyClient = new TurnkeyClient({
|
|
109
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
118
110
|
}, this.__iframeStamper);
|
|
119
111
|
if (!organizationId || !this.__turnkeyRecoveryUserId) {
|
|
120
112
|
throw new DynamicError('Cannot proceed with your request');
|
|
@@ -134,11 +126,11 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
134
126
|
}
|
|
135
127
|
completeRecovery(_a) {
|
|
136
128
|
return __awaiter(this, arguments, void 0, function* ({ attestation, challenge, turnkeySubOrganizationId, }) {
|
|
137
|
-
if (!this.
|
|
129
|
+
if (!this.__turnkeyClient || !this.__turnkeyRecoveryUserId) {
|
|
138
130
|
throw new DynamicError('Cannot proceed with your request');
|
|
139
131
|
}
|
|
140
132
|
try {
|
|
141
|
-
return this.
|
|
133
|
+
return this.__turnkeyClient.recoverUser({
|
|
142
134
|
organizationId: turnkeySubOrganizationId,
|
|
143
135
|
parameters: {
|
|
144
136
|
authenticator: {
|
|
@@ -160,11 +152,11 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
160
152
|
}
|
|
161
153
|
addPasskeyAuthenticator(_a) {
|
|
162
154
|
return __awaiter(this, arguments, void 0, function* ({ attestation, challenge, turnkeySubOrganizationId, }) {
|
|
163
|
-
if (!this.
|
|
155
|
+
if (!this.__turnkeyClient || !this.__turnkeyRecoveryUserId) {
|
|
164
156
|
throw new DynamicError('Cannot proceed with your request');
|
|
165
157
|
}
|
|
166
158
|
try {
|
|
167
|
-
return this.
|
|
159
|
+
return this.__turnkeyClient.createAuthenticators({
|
|
168
160
|
organizationId: turnkeySubOrganizationId,
|
|
169
161
|
parameters: {
|
|
170
162
|
authenticators: [
|
|
@@ -196,7 +188,7 @@ class TurnkeyAuthenticatorRecoveryHandler {
|
|
|
196
188
|
rpId,
|
|
197
189
|
});
|
|
198
190
|
const client = new TurnkeyClient({
|
|
199
|
-
baseUrl:
|
|
191
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
200
192
|
}, stamper);
|
|
201
193
|
try {
|
|
202
194
|
const signedRequest = yield client.stampUpdateUser({
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
class BaseTurnkeyHandler {
|
|
7
|
+
get client() {
|
|
8
|
+
return this.__turnkeyClient;
|
|
9
|
+
}
|
|
10
|
+
get publicKey() {
|
|
11
|
+
return this.__publicKey;
|
|
12
|
+
}
|
|
13
|
+
clear() {
|
|
14
|
+
var _a;
|
|
15
|
+
(_a = this.__iframeStamper) === null || _a === void 0 ? void 0 : _a.clear();
|
|
16
|
+
this.__iframeStamper = undefined;
|
|
17
|
+
this.__publicKey = undefined;
|
|
18
|
+
this.__turnkeyClient = undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.BaseTurnkeyHandler = BaseTurnkeyHandler;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IframeStamper } from '@turnkey/iframe-stamper';
|
|
2
|
+
import { TurnkeyClient } from '@turnkey/http';
|
|
3
|
+
export declare abstract class BaseTurnkeyHandler {
|
|
4
|
+
__turnkeyClient: TurnkeyClient | undefined;
|
|
5
|
+
protected __iframeStamper: IframeStamper | undefined;
|
|
6
|
+
protected __publicKey: string | undefined | null;
|
|
7
|
+
get client(): TurnkeyClient | undefined;
|
|
8
|
+
get publicKey(): string | null | undefined;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
class BaseTurnkeyHandler {
|
|
3
|
+
get client() {
|
|
4
|
+
return this.__turnkeyClient;
|
|
5
|
+
}
|
|
6
|
+
get publicKey() {
|
|
7
|
+
return this.__publicKey;
|
|
8
|
+
}
|
|
9
|
+
clear() {
|
|
10
|
+
var _a;
|
|
11
|
+
(_a = this.__iframeStamper) === null || _a === void 0 ? void 0 : _a.clear();
|
|
12
|
+
this.__iframeStamper = undefined;
|
|
13
|
+
this.__publicKey = undefined;
|
|
14
|
+
this.__turnkeyClient = undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { BaseTurnkeyHandler };
|
|
@@ -11,20 +11,11 @@ var TurnkeyAuthenticatorRecoveryHandler = require('../AuthenticatorHandler/Turnk
|
|
|
11
11
|
var PasskeyService = require('../utils/PasskeyService/PasskeyService.cjs');
|
|
12
12
|
require('../utils/convertAttestationTransports/convertAttestationTransports.cjs');
|
|
13
13
|
var logger = require('../utils/logger/logger.cjs');
|
|
14
|
+
var BaseTurnkeyHandler = require('../BaseTurnkeyHandler.cjs');
|
|
15
|
+
var constants = require('../constants.cjs');
|
|
14
16
|
|
|
15
|
-
const turnkeyBaseUrl = 'https://api.turnkey.com';
|
|
16
17
|
const turnkeyExportUrl = 'https://export.turnkey.com';
|
|
17
|
-
class
|
|
18
|
-
get publicKey() {
|
|
19
|
-
return this.__publicKey;
|
|
20
|
-
}
|
|
21
|
-
clear() {
|
|
22
|
-
var _a;
|
|
23
|
-
(_a = this.__iframeStamper) === null || _a === void 0 ? void 0 : _a.clear();
|
|
24
|
-
this.__iframeStamper = undefined;
|
|
25
|
-
this.__publicKey = undefined;
|
|
26
|
-
this.__turnkeyClient = undefined;
|
|
27
|
-
}
|
|
18
|
+
class TurnkeyExportHandler extends BaseTurnkeyHandler.BaseTurnkeyHandler {
|
|
28
19
|
initExport(iframeContainer, iframeElementId) {
|
|
29
20
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
30
21
|
this.__iframeStamper = new iframeStamper.IframeStamper({
|
|
@@ -45,10 +36,10 @@ class ExportHandler {
|
|
|
45
36
|
const passkeyStamper = PasskeyService.PasskeyService.createWebauthnStamper({
|
|
46
37
|
rpId,
|
|
47
38
|
});
|
|
48
|
-
const apiKeyStamper =
|
|
39
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
49
40
|
const stamper = apiKeyStamper !== null && apiKeyStamper !== void 0 ? apiKeyStamper : passkeyStamper;
|
|
50
41
|
this.__turnkeyClient = new http.TurnkeyClient({
|
|
51
|
-
baseUrl:
|
|
42
|
+
baseUrl: constants.TURNKEY_API_BASE_URL,
|
|
52
43
|
}, stamper);
|
|
53
44
|
}
|
|
54
45
|
return this.__publicKey;
|
|
@@ -87,10 +78,10 @@ class ExportHandler {
|
|
|
87
78
|
}
|
|
88
79
|
exportPrivateKey(_a) {
|
|
89
80
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ privateKeyId, organizationId, }) {
|
|
90
|
-
const apiKeyStamper =
|
|
81
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
91
82
|
if (apiKeyStamper) {
|
|
92
83
|
this.__turnkeyClient = new http.TurnkeyClient({
|
|
93
|
-
baseUrl:
|
|
84
|
+
baseUrl: constants.TURNKEY_API_BASE_URL,
|
|
94
85
|
}, apiKeyStamper);
|
|
95
86
|
}
|
|
96
87
|
if (!this.__iframeStamper ||
|
|
@@ -116,10 +107,10 @@ class ExportHandler {
|
|
|
116
107
|
}
|
|
117
108
|
exportWallet(_a) {
|
|
118
109
|
return _tslib.__awaiter(this, arguments, void 0, function* ({ walletId, organizationId, address, }) {
|
|
119
|
-
const apiKeyStamper =
|
|
110
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
120
111
|
if (apiKeyStamper) {
|
|
121
112
|
this.__turnkeyClient = new http.TurnkeyClient({
|
|
122
|
-
baseUrl:
|
|
113
|
+
baseUrl: constants.TURNKEY_API_BASE_URL,
|
|
123
114
|
}, apiKeyStamper);
|
|
124
115
|
}
|
|
125
116
|
if (!this.__iframeStamper ||
|
|
@@ -154,4 +145,4 @@ class ExportHandler {
|
|
|
154
145
|
}
|
|
155
146
|
}
|
|
156
147
|
|
|
157
|
-
exports.
|
|
148
|
+
exports.TurnkeyExportHandler = TurnkeyExportHandler;
|