@turnkey/core 2.6.0 → 2.7.0
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/dist/__clients__/core.d.ts +21 -2
- package/dist/__clients__/core.d.ts.map +1 -1
- package/dist/__clients__/core.js +108 -39
- package/dist/__clients__/core.js.map +1 -1
- package/dist/__clients__/core.mjs +101 -32
- package/dist/__clients__/core.mjs.map +1 -1
- package/dist/__generated__/sdk-client-base.d.ts +9 -0
- package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
- package/dist/__generated__/sdk-client-base.js +59 -1
- package/dist/__generated__/sdk-client-base.js.map +1 -1
- package/dist/__generated__/sdk-client-base.mjs +60 -2
- package/dist/__generated__/sdk-client-base.mjs.map +1 -1
- package/dist/__generated__/version.d.ts +1 -1
- package/dist/__generated__/version.js +1 -1
- package/dist/__generated__/version.mjs +1 -1
- package/dist/__stampers__/api/base.d.ts +2 -1
- package/dist/__stampers__/api/base.d.ts.map +1 -1
- package/dist/__stampers__/api/base.js +11 -14
- package/dist/__stampers__/api/base.js.map +1 -1
- package/dist/__stampers__/api/base.mjs +11 -14
- package/dist/__stampers__/api/base.mjs.map +1 -1
- package/dist/__stampers__/attested/base.d.ts +22 -0
- package/dist/__stampers__/attested/base.d.ts.map +1 -0
- package/dist/__stampers__/attested/base.js +50 -0
- package/dist/__stampers__/attested/base.js.map +1 -0
- package/dist/__stampers__/attested/base.mjs +48 -0
- package/dist/__stampers__/attested/base.mjs.map +1 -0
- package/dist/__types__/config.d.ts +42 -1
- package/dist/__types__/config.d.ts.map +1 -1
- package/dist/__types__/enums.d.ts +2 -1
- package/dist/__types__/enums.d.ts.map +1 -1
- package/dist/__types__/enums.js +1 -0
- package/dist/__types__/enums.js.map +1 -1
- package/dist/__types__/enums.mjs +1 -0
- package/dist/__types__/enums.mjs.map +1 -1
- package/dist/__types__/method-types/shared.d.ts +21 -1
- package/dist/__types__/method-types/shared.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -1
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +3 -1
- package/dist/utils.mjs.map +1 -1
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VERSION } from './version.mjs';
|
|
2
|
-
import { TERMINAL_ACTIVITY_STATUSES, TurnkeyRequestError, TurnkeyError, TurnkeyErrorCodes } from '@turnkey/sdk-types';
|
|
2
|
+
import { TERMINAL_ACTIVITY_STATUSES, ActivityStatus, TurnkeyRequestError, TurnkeyError, TurnkeyErrorCodes } from '@turnkey/sdk-types';
|
|
3
3
|
import { StamperType } from '../__types__/enums.mjs';
|
|
4
4
|
|
|
5
5
|
/* @generated by codegen. DO NOT EDIT BY HAND */
|
|
@@ -6044,6 +6044,9 @@ class TurnkeySDKClientBase {
|
|
|
6044
6044
|
if (config.walletStamper) {
|
|
6045
6045
|
this.walletStamper = config.walletStamper;
|
|
6046
6046
|
}
|
|
6047
|
+
if (config.attestedStamper) {
|
|
6048
|
+
this.attestedStamper = config.attestedStamper;
|
|
6049
|
+
}
|
|
6047
6050
|
if (config.storageManager) {
|
|
6048
6051
|
this.storageManager = config.storageManager;
|
|
6049
6052
|
}
|
|
@@ -6061,6 +6064,9 @@ class TurnkeySDKClientBase {
|
|
|
6061
6064
|
else if (this.walletStamper) {
|
|
6062
6065
|
this.defaultStamperType = StamperType.Wallet;
|
|
6063
6066
|
}
|
|
6067
|
+
else if (this.attestedStamper) {
|
|
6068
|
+
this.defaultStamperType = StamperType.Attested;
|
|
6069
|
+
}
|
|
6064
6070
|
else {
|
|
6065
6071
|
this.defaultStamperType = undefined;
|
|
6066
6072
|
}
|
|
@@ -6078,6 +6084,8 @@ class TurnkeySDKClientBase {
|
|
|
6078
6084
|
return this.passkeyStamper;
|
|
6079
6085
|
case StamperType.Wallet:
|
|
6080
6086
|
return this.walletStamper;
|
|
6087
|
+
case StamperType.Attested:
|
|
6088
|
+
return this.attestedStamper;
|
|
6081
6089
|
default:
|
|
6082
6090
|
return this.apiKeyStamper;
|
|
6083
6091
|
}
|
|
@@ -6108,7 +6116,7 @@ class TurnkeySDKClientBase {
|
|
|
6108
6116
|
*/
|
|
6109
6117
|
handleActivityResponse(activityData, resultKey) {
|
|
6110
6118
|
const { result, status } = activityData.activity;
|
|
6111
|
-
if (status ===
|
|
6119
|
+
if (status === ActivityStatus.COMPLETED && result) {
|
|
6112
6120
|
// If a specific resultKey was provided, use it
|
|
6113
6121
|
if (resultKey && result[resultKey]) {
|
|
6114
6122
|
return {
|
|
@@ -6128,6 +6136,52 @@ class TurnkeySDKClientBase {
|
|
|
6128
6136
|
}
|
|
6129
6137
|
return activityData;
|
|
6130
6138
|
}
|
|
6139
|
+
/**
|
|
6140
|
+
* If the activity requires MFA (AUTHENTICATORS_NEEDED) or consensus
|
|
6141
|
+
* (CONSENSUS_NEEDED) and an onMfaRequired callback is configured, fetch the
|
|
6142
|
+
* MFA statuses for the activity, invoke the callback, and then poll for
|
|
6143
|
+
* completion. Returns the (possibly updated) activity data.
|
|
6144
|
+
* @internal
|
|
6145
|
+
*/
|
|
6146
|
+
async handleMfaIfNeeded(activityData, stampWith) {
|
|
6147
|
+
const AUTHENTICATORS_NEEDED = ActivityStatus.AUTHENTICATORS_NEEDED;
|
|
6148
|
+
// We need to check for CONSENSUS_NEEDED as well, since that can also involve MFA (user is NOT the proposer but has MFA).
|
|
6149
|
+
const CONSENSUS_NEEDED = ActivityStatus.CONSENSUS_NEEDED;
|
|
6150
|
+
const activityStatus = activityData.activity.status;
|
|
6151
|
+
// Only AUTHENTICATORS_NEEDED and CONSENSUS_NEEDED can involve MFA.
|
|
6152
|
+
// Anything else is returned as-is.
|
|
6153
|
+
if (activityStatus !== AUTHENTICATORS_NEEDED &&
|
|
6154
|
+
activityStatus !== CONSENSUS_NEEDED) {
|
|
6155
|
+
return activityData;
|
|
6156
|
+
}
|
|
6157
|
+
if (!this.config.onMfaRequired) {
|
|
6158
|
+
return activityData;
|
|
6159
|
+
}
|
|
6160
|
+
// Fetch the MFA statuses for this activity.
|
|
6161
|
+
const { mfaStatuses } = await this.getMfaStatus({
|
|
6162
|
+
activityId: activityData.activity.id,
|
|
6163
|
+
organizationId: activityData.activity.organizationId,
|
|
6164
|
+
}, stampWith);
|
|
6165
|
+
// For CONSENSUS_NEEDED there may be no MFA statuses.
|
|
6166
|
+
// In that case, return the activity as-is.
|
|
6167
|
+
if (activityStatus === CONSENSUS_NEEDED &&
|
|
6168
|
+
(!mfaStatuses || mfaStatuses.length === 0)) {
|
|
6169
|
+
return activityData;
|
|
6170
|
+
}
|
|
6171
|
+
const mfaContext = {
|
|
6172
|
+
activityId: activityData.activity.id,
|
|
6173
|
+
fingerprint: activityData.activity.fingerprint,
|
|
6174
|
+
organizationId: activityData.activity.organizationId,
|
|
6175
|
+
activityType: activityData.activity.type,
|
|
6176
|
+
activityStatus,
|
|
6177
|
+
mfaStatuses,
|
|
6178
|
+
};
|
|
6179
|
+
// Await the callback — it should resolve when MFA approval is complete
|
|
6180
|
+
await this.config.onMfaRequired(mfaContext);
|
|
6181
|
+
// After callback resolves, poll for the updated activity status
|
|
6182
|
+
activityData = await this.pollForCompletion(activityData.activity.id, stampWith);
|
|
6183
|
+
return activityData;
|
|
6184
|
+
}
|
|
6131
6185
|
async request(url, body, stampWith) {
|
|
6132
6186
|
const fullUrl = this.config.apiBaseUrl + url;
|
|
6133
6187
|
const stringifiedBody = JSON.stringify(body);
|
|
@@ -6167,6 +6221,8 @@ class TurnkeySDKClientBase {
|
|
|
6167
6221
|
if (!TERMINAL_ACTIVITY_STATUSES.includes(activityData.activity.status)) {
|
|
6168
6222
|
activityData = await this.pollForCompletion(activityData.activity.id, stampWith);
|
|
6169
6223
|
}
|
|
6224
|
+
// Handle MFA if needed (callback gate + re-poll)
|
|
6225
|
+
activityData = await this.handleMfaIfNeeded(activityData, stampWith);
|
|
6170
6226
|
return this.handleActivityResponse(activityData, resultKey);
|
|
6171
6227
|
}
|
|
6172
6228
|
async activityDecision(url, body, stampWith) {
|
|
@@ -6252,6 +6308,8 @@ class TurnkeySDKClientBase {
|
|
|
6252
6308
|
if (!TERMINAL_ACTIVITY_STATUSES.includes(activityData.activity.status)) {
|
|
6253
6309
|
activityData = await this.pollForCompletion(activityData.activity.id);
|
|
6254
6310
|
}
|
|
6311
|
+
// Handle MFA if needed (callback gate + re-poll)
|
|
6312
|
+
activityData = await this.handleMfaIfNeeded(activityData);
|
|
6255
6313
|
return this.handleActivityResponse(activityData, options?.resultKey);
|
|
6256
6314
|
}
|
|
6257
6315
|
return data;
|