@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
|
@@ -6046,6 +6046,9 @@ class TurnkeySDKClientBase {
|
|
|
6046
6046
|
if (config.walletStamper) {
|
|
6047
6047
|
this.walletStamper = config.walletStamper;
|
|
6048
6048
|
}
|
|
6049
|
+
if (config.attestedStamper) {
|
|
6050
|
+
this.attestedStamper = config.attestedStamper;
|
|
6051
|
+
}
|
|
6049
6052
|
if (config.storageManager) {
|
|
6050
6053
|
this.storageManager = config.storageManager;
|
|
6051
6054
|
}
|
|
@@ -6063,6 +6066,9 @@ class TurnkeySDKClientBase {
|
|
|
6063
6066
|
else if (this.walletStamper) {
|
|
6064
6067
|
this.defaultStamperType = enums.StamperType.Wallet;
|
|
6065
6068
|
}
|
|
6069
|
+
else if (this.attestedStamper) {
|
|
6070
|
+
this.defaultStamperType = enums.StamperType.Attested;
|
|
6071
|
+
}
|
|
6066
6072
|
else {
|
|
6067
6073
|
this.defaultStamperType = undefined;
|
|
6068
6074
|
}
|
|
@@ -6080,6 +6086,8 @@ class TurnkeySDKClientBase {
|
|
|
6080
6086
|
return this.passkeyStamper;
|
|
6081
6087
|
case enums.StamperType.Wallet:
|
|
6082
6088
|
return this.walletStamper;
|
|
6089
|
+
case enums.StamperType.Attested:
|
|
6090
|
+
return this.attestedStamper;
|
|
6083
6091
|
default:
|
|
6084
6092
|
return this.apiKeyStamper;
|
|
6085
6093
|
}
|
|
@@ -6110,7 +6118,7 @@ class TurnkeySDKClientBase {
|
|
|
6110
6118
|
*/
|
|
6111
6119
|
handleActivityResponse(activityData, resultKey) {
|
|
6112
6120
|
const { result, status } = activityData.activity;
|
|
6113
|
-
if (status ===
|
|
6121
|
+
if (status === sdkTypes.ActivityStatus.COMPLETED && result) {
|
|
6114
6122
|
// If a specific resultKey was provided, use it
|
|
6115
6123
|
if (resultKey && result[resultKey]) {
|
|
6116
6124
|
return {
|
|
@@ -6130,6 +6138,52 @@ class TurnkeySDKClientBase {
|
|
|
6130
6138
|
}
|
|
6131
6139
|
return activityData;
|
|
6132
6140
|
}
|
|
6141
|
+
/**
|
|
6142
|
+
* If the activity requires MFA (AUTHENTICATORS_NEEDED) or consensus
|
|
6143
|
+
* (CONSENSUS_NEEDED) and an onMfaRequired callback is configured, fetch the
|
|
6144
|
+
* MFA statuses for the activity, invoke the callback, and then poll for
|
|
6145
|
+
* completion. Returns the (possibly updated) activity data.
|
|
6146
|
+
* @internal
|
|
6147
|
+
*/
|
|
6148
|
+
async handleMfaIfNeeded(activityData, stampWith) {
|
|
6149
|
+
const AUTHENTICATORS_NEEDED = sdkTypes.ActivityStatus.AUTHENTICATORS_NEEDED;
|
|
6150
|
+
// We need to check for CONSENSUS_NEEDED as well, since that can also involve MFA (user is NOT the proposer but has MFA).
|
|
6151
|
+
const CONSENSUS_NEEDED = sdkTypes.ActivityStatus.CONSENSUS_NEEDED;
|
|
6152
|
+
const activityStatus = activityData.activity.status;
|
|
6153
|
+
// Only AUTHENTICATORS_NEEDED and CONSENSUS_NEEDED can involve MFA.
|
|
6154
|
+
// Anything else is returned as-is.
|
|
6155
|
+
if (activityStatus !== AUTHENTICATORS_NEEDED &&
|
|
6156
|
+
activityStatus !== CONSENSUS_NEEDED) {
|
|
6157
|
+
return activityData;
|
|
6158
|
+
}
|
|
6159
|
+
if (!this.config.onMfaRequired) {
|
|
6160
|
+
return activityData;
|
|
6161
|
+
}
|
|
6162
|
+
// Fetch the MFA statuses for this activity.
|
|
6163
|
+
const { mfaStatuses } = await this.getMfaStatus({
|
|
6164
|
+
activityId: activityData.activity.id,
|
|
6165
|
+
organizationId: activityData.activity.organizationId,
|
|
6166
|
+
}, stampWith);
|
|
6167
|
+
// For CONSENSUS_NEEDED there may be no MFA statuses.
|
|
6168
|
+
// In that case, return the activity as-is.
|
|
6169
|
+
if (activityStatus === CONSENSUS_NEEDED &&
|
|
6170
|
+
(!mfaStatuses || mfaStatuses.length === 0)) {
|
|
6171
|
+
return activityData;
|
|
6172
|
+
}
|
|
6173
|
+
const mfaContext = {
|
|
6174
|
+
activityId: activityData.activity.id,
|
|
6175
|
+
fingerprint: activityData.activity.fingerprint,
|
|
6176
|
+
organizationId: activityData.activity.organizationId,
|
|
6177
|
+
activityType: activityData.activity.type,
|
|
6178
|
+
activityStatus,
|
|
6179
|
+
mfaStatuses,
|
|
6180
|
+
};
|
|
6181
|
+
// Await the callback — it should resolve when MFA approval is complete
|
|
6182
|
+
await this.config.onMfaRequired(mfaContext);
|
|
6183
|
+
// After callback resolves, poll for the updated activity status
|
|
6184
|
+
activityData = await this.pollForCompletion(activityData.activity.id, stampWith);
|
|
6185
|
+
return activityData;
|
|
6186
|
+
}
|
|
6133
6187
|
async request(url, body, stampWith) {
|
|
6134
6188
|
const fullUrl = this.config.apiBaseUrl + url;
|
|
6135
6189
|
const stringifiedBody = JSON.stringify(body);
|
|
@@ -6169,6 +6223,8 @@ class TurnkeySDKClientBase {
|
|
|
6169
6223
|
if (!sdkTypes.TERMINAL_ACTIVITY_STATUSES.includes(activityData.activity.status)) {
|
|
6170
6224
|
activityData = await this.pollForCompletion(activityData.activity.id, stampWith);
|
|
6171
6225
|
}
|
|
6226
|
+
// Handle MFA if needed (callback gate + re-poll)
|
|
6227
|
+
activityData = await this.handleMfaIfNeeded(activityData, stampWith);
|
|
6172
6228
|
return this.handleActivityResponse(activityData, resultKey);
|
|
6173
6229
|
}
|
|
6174
6230
|
async activityDecision(url, body, stampWith) {
|
|
@@ -6254,6 +6310,8 @@ class TurnkeySDKClientBase {
|
|
|
6254
6310
|
if (!sdkTypes.TERMINAL_ACTIVITY_STATUSES.includes(activityData.activity.status)) {
|
|
6255
6311
|
activityData = await this.pollForCompletion(activityData.activity.id);
|
|
6256
6312
|
}
|
|
6313
|
+
// Handle MFA if needed (callback gate + re-poll)
|
|
6314
|
+
activityData = await this.handleMfaIfNeeded(activityData);
|
|
6257
6315
|
return this.handleActivityResponse(activityData, options?.resultKey);
|
|
6258
6316
|
}
|
|
6259
6317
|
return data;
|