@@ -70,6 +70,7 @@ export class SignUp extends BaseResource implements SignUpResource {
7070 createdSessionId : string | null = null ;
7171 createdUserId : string | null = null ;
7272 abandonAt : number | null = null ;
73+ legalAcceptedAt : number | null = null ;
7374
7475 constructor ( data : SignUpJSON | null = null ) {
7576 super ( ) ;
@@ -111,6 +112,12 @@ export class SignUp extends BaseResource implements SignUpResource {
111112 paramsWithCaptcha . strategy = SignUp . clerk . client ?. signIn . firstFactorVerification . strategy ;
112113 }
113114
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+
114121 return this . _basePost ( {
115122 path : this . pathRoot ,
116123 body : normalizeUnsafeMetadata ( paramsWithCaptcha ) ,
@@ -190,17 +197,26 @@ export class SignUp extends BaseResource implements SignUpResource {
190197 } ;
191198
192199 public authenticateWithWeb3 = async (
193- params : AuthenticateWithWeb3Params & { unsafeMetadata ?: SignUpUnsafeMetadata } ,
200+ params : AuthenticateWithWeb3Params & {
201+ unsafeMetadata ?: SignUpUnsafeMetadata ;
202+ __experimental_legalAccepted ?: boolean ;
203+ } ,
194204 ) : 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 || { } ;
196212 const provider = strategy . replace ( 'web3_' , '' ) . replace ( '_signature' , '' ) as Web3Provider ;
197213
198214 if ( ! ( typeof generateSignature === 'function' ) ) {
199215 clerkMissingOptionError ( 'generateSignature' ) ;
200216 }
201217
202218 const web3Wallet = identifier || this . web3wallet ! ;
203- await this . create ( { web3Wallet, unsafeMetadata } ) ;
219+ await this . create ( { web3Wallet, unsafeMetadata, __experimental_legalAccepted : __experimental_legalAccepted } ) ;
204220 await this . prepareWeb3WalletVerification ( { strategy } ) ;
205221
206222 const { message } = this . verifications . web3Wallet ;
@@ -229,25 +245,33 @@ export class SignUp extends BaseResource implements SignUpResource {
229245 return this . attemptWeb3WalletVerification ( { signature, strategy } ) ;
230246 } ;
231247
232- public authenticateWithMetamask = async ( params ?: SignUpAuthenticateWithWeb3Params ) : Promise < SignUpResource > => {
248+ public authenticateWithMetamask = async (
249+ params ?: SignUpAuthenticateWithWeb3Params & {
250+ __experimental_legalAccepted ?: boolean ;
251+ } ,
252+ ) : Promise < SignUpResource > => {
233253 const identifier = await getMetamaskIdentifier ( ) ;
234254 return this . authenticateWithWeb3 ( {
235255 identifier,
236256 generateSignature : generateSignatureWithMetamask ,
237257 unsafeMetadata : params ?. unsafeMetadata ,
238258 strategy : 'web3_metamask_signature' ,
259+ __experimental_legalAccepted : params ?. __experimental_legalAccepted ,
239260 } ) ;
240261 } ;
241262
242263 public authenticateWithCoinbaseWallet = async (
243- params ?: SignUpAuthenticateWithWeb3Params ,
264+ params ?: SignUpAuthenticateWithWeb3Params & {
265+ __experimental_legalAccepted ?: boolean ;
266+ } ,
244267 ) : Promise < SignUpResource > => {
245268 const identifier = await getCoinbaseWalletIdentifier ( ) ;
246269 return this . authenticateWithWeb3 ( {
247270 identifier,
248271 generateSignature : generateSignatureWithCoinbaseWallet ,
249272 unsafeMetadata : params ?. unsafeMetadata ,
250273 strategy : 'web3_coinbase_wallet_signature' ,
274+ __experimental_legalAccepted : params ?. __experimental_legalAccepted ,
251275 } ) ;
252276 } ;
253277
@@ -258,6 +282,7 @@ export class SignUp extends BaseResource implements SignUpResource {
258282 continueSignUp = false ,
259283 unsafeMetadata,
260284 emailAddress,
285+ __experimental_legalAccepted,
261286 } : AuthenticateWithRedirectParams & {
262287 unsafeMetadata ?: SignUpUnsafeMetadata ;
263288 } ) : Promise < void > => {
@@ -268,6 +293,7 @@ export class SignUp extends BaseResource implements SignUpResource {
268293 actionCompleteRedirectUrl : redirectUrlComplete ,
269294 unsafeMetadata,
270295 emailAddress,
296+ __experimental_legalAccepted,
271297 } ;
272298 return continueSignUp && this . id ? this . update ( params ) : this . create ( params ) ;
273299 } ;
@@ -294,6 +320,13 @@ export class SignUp extends BaseResource implements SignUpResource {
294320 } ;
295321
296322 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+
297330 return this . _basePatch ( {
298331 body : normalizeUnsafeMetadata ( params ) ,
299332 } ) ;
@@ -328,6 +361,7 @@ export class SignUp extends BaseResource implements SignUpResource {
328361 this . createdUserId = data . created_user_id ;
329362 this . abandonAt = data . abandon_at ;
330363 this . web3wallet = data . web3_wallet ;
364+ this . legalAcceptedAt = data . legal_accepted_at ;
331365 }
332366 return this ;
333367 }
0 commit comments