@@ -70,6 +70,7 @@ export class SignUp extends BaseResource implements SignUpResource {
70
70
createdSessionId : string | null = null ;
71
71
createdUserId : string | null = null ;
72
72
abandonAt : number | null = null ;
73
+ legalAcceptedAt : number | null = null ;
73
74
74
75
constructor ( data : SignUpJSON | null = null ) {
75
76
super ( ) ;
@@ -111,6 +112,12 @@ export class SignUp extends BaseResource implements SignUpResource {
111
112
paramsWithCaptcha . strategy = SignUp . clerk . client ?. signIn . firstFactorVerification . strategy ;
112
113
}
113
114
115
+ // TODO(@vaggelis): Remove this once the legalAccepted is stable
116
+ if ( typeof params . __experimental_legalAccepted !== 'undefined' ) {
117
+ paramsWithCaptcha . legalAccepted = params . __experimental_legalAccepted ;
118
+ paramsWithCaptcha . __experimental_legalAccepted = undefined ;
119
+ }
120
+
114
121
return this . _basePost ( {
115
122
path : this . pathRoot ,
116
123
body : normalizeUnsafeMetadata ( paramsWithCaptcha ) ,
@@ -190,17 +197,26 @@ export class SignUp extends BaseResource implements SignUpResource {
190
197
} ;
191
198
192
199
public authenticateWithWeb3 = async (
193
- params : AuthenticateWithWeb3Params & { unsafeMetadata ?: SignUpUnsafeMetadata } ,
200
+ params : AuthenticateWithWeb3Params & {
201
+ unsafeMetadata ?: SignUpUnsafeMetadata ;
202
+ __experimental_legalAccepted ?: boolean ;
203
+ } ,
194
204
) : Promise < SignUpResource > => {
195
- const { generateSignature, identifier, unsafeMetadata, strategy = 'web3_metamask_signature' } = params || { } ;
205
+ const {
206
+ generateSignature,
207
+ identifier,
208
+ unsafeMetadata,
209
+ strategy = 'web3_metamask_signature' ,
210
+ __experimental_legalAccepted,
211
+ } = params || { } ;
196
212
const provider = strategy . replace ( 'web3_' , '' ) . replace ( '_signature' , '' ) as Web3Provider ;
197
213
198
214
if ( ! ( typeof generateSignature === 'function' ) ) {
199
215
clerkMissingOptionError ( 'generateSignature' ) ;
200
216
}
201
217
202
218
const web3Wallet = identifier || this . web3wallet ! ;
203
- await this . create ( { web3Wallet, unsafeMetadata } ) ;
219
+ await this . create ( { web3Wallet, unsafeMetadata, __experimental_legalAccepted : __experimental_legalAccepted } ) ;
204
220
await this . prepareWeb3WalletVerification ( { strategy } ) ;
205
221
206
222
const { message } = this . verifications . web3Wallet ;
@@ -229,25 +245,33 @@ export class SignUp extends BaseResource implements SignUpResource {
229
245
return this . attemptWeb3WalletVerification ( { signature, strategy } ) ;
230
246
} ;
231
247
232
- public authenticateWithMetamask = async ( params ?: SignUpAuthenticateWithWeb3Params ) : Promise < SignUpResource > => {
248
+ public authenticateWithMetamask = async (
249
+ params ?: SignUpAuthenticateWithWeb3Params & {
250
+ __experimental_legalAccepted ?: boolean ;
251
+ } ,
252
+ ) : Promise < SignUpResource > => {
233
253
const identifier = await getMetamaskIdentifier ( ) ;
234
254
return this . authenticateWithWeb3 ( {
235
255
identifier,
236
256
generateSignature : generateSignatureWithMetamask ,
237
257
unsafeMetadata : params ?. unsafeMetadata ,
238
258
strategy : 'web3_metamask_signature' ,
259
+ __experimental_legalAccepted : params ?. __experimental_legalAccepted ,
239
260
} ) ;
240
261
} ;
241
262
242
263
public authenticateWithCoinbaseWallet = async (
243
- params ?: SignUpAuthenticateWithWeb3Params ,
264
+ params ?: SignUpAuthenticateWithWeb3Params & {
265
+ __experimental_legalAccepted ?: boolean ;
266
+ } ,
244
267
) : Promise < SignUpResource > => {
245
268
const identifier = await getCoinbaseWalletIdentifier ( ) ;
246
269
return this . authenticateWithWeb3 ( {
247
270
identifier,
248
271
generateSignature : generateSignatureWithCoinbaseWallet ,
249
272
unsafeMetadata : params ?. unsafeMetadata ,
250
273
strategy : 'web3_coinbase_wallet_signature' ,
274
+ __experimental_legalAccepted : params ?. __experimental_legalAccepted ,
251
275
} ) ;
252
276
} ;
253
277
@@ -258,6 +282,7 @@ export class SignUp extends BaseResource implements SignUpResource {
258
282
continueSignUp = false ,
259
283
unsafeMetadata,
260
284
emailAddress,
285
+ __experimental_legalAccepted,
261
286
} : AuthenticateWithRedirectParams & {
262
287
unsafeMetadata ?: SignUpUnsafeMetadata ;
263
288
} ) : Promise < void > => {
@@ -268,6 +293,7 @@ export class SignUp extends BaseResource implements SignUpResource {
268
293
actionCompleteRedirectUrl : redirectUrlComplete ,
269
294
unsafeMetadata,
270
295
emailAddress,
296
+ __experimental_legalAccepted,
271
297
} ;
272
298
return continueSignUp && this . id ? this . update ( params ) : this . create ( params ) ;
273
299
} ;
@@ -294,6 +320,13 @@ export class SignUp extends BaseResource implements SignUpResource {
294
320
} ;
295
321
296
322
update = ( params : SignUpUpdateParams ) : Promise < SignUpResource > => {
323
+ // TODO(@vaggelis): Remove this once the legalAccepted is stable
324
+ if ( typeof params . __experimental_legalAccepted !== 'undefined' ) {
325
+ // @ts -expect-error - We need to remove the __experimental_legalAccepted key from the params
326
+ params . legalAccepted = params . __experimental_legalAccepted ;
327
+ params . __experimental_legalAccepted = undefined ;
328
+ }
329
+
297
330
return this . _basePatch ( {
298
331
body : normalizeUnsafeMetadata ( params ) ,
299
332
} ) ;
@@ -328,6 +361,7 @@ export class SignUp extends BaseResource implements SignUpResource {
328
361
this . createdUserId = data . created_user_id ;
329
362
this . abandonAt = data . abandon_at ;
330
363
this . web3wallet = data . web3_wallet ;
364
+ this . legalAcceptedAt = data . legal_accepted_at ;
331
365
}
332
366
return this ;
333
367
}
0 commit comments