@getpara/user-management-client 2.0.0-dev.3 → 2.0.0-dev.7

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.
@@ -132,9 +132,13 @@ class Client {
132
132
  });
133
133
  return res.data;
134
134
  });
135
- this.verifyTelegram = (authObject) => __async(this, null, function* () {
135
+ this.verifyTelegram = (_0) => __async(this, [_0], function* ({
136
+ authObject,
137
+ sessionLookupId
138
+ }) {
136
139
  return (yield this.baseRequest.post("/users/telegram/v2", {
137
- authObject
140
+ authObject,
141
+ sessionLookupId
138
142
  })).data;
139
143
  });
140
144
  this.verifyOAuth = () => __async(this, null, function* () {
@@ -151,8 +155,16 @@ class Client {
151
155
  });
152
156
  return res.data;
153
157
  });
154
- this.verifyNewAccount = (userId, body) => __async(this, null, function* () {
155
- const res = yield this.baseRequest.post(`/users/${userId}/verify`, body);
158
+ this.verifyAccount = (userId, body) => __async(this, null, function* () {
159
+ const res = yield this.baseRequest.post(
160
+ `/users/${userId}/verify`,
161
+ body
162
+ );
163
+ return res.data;
164
+ });
165
+ // POST /users/send-login-code
166
+ this.sendLoginVerificationCode = (auth, isRecovery) => __async(this, null, function* () {
167
+ const res = yield this.baseRequest.post(`/users/send-login-code`, __spreadProps(__spreadValues({}, auth), { isRecovery }));
156
168
  return res.data;
157
169
  });
158
170
  this.getLinkedAccounts = (_0) => __async(this, [_0], function* ({
@@ -212,7 +224,10 @@ class Client {
212
224
  return res;
213
225
  });
214
226
  this.verifyExternalWallet = (userId, body) => __async(this, null, function* () {
215
- const res = yield this.baseRequest.post(`/users/${userId}/external-wallets/verify/v2`, body);
227
+ const res = yield this.baseRequest.post(
228
+ `/users/${userId}/external-wallets/verify/v2`,
229
+ body
230
+ );
216
231
  return res.data;
217
232
  });
218
233
  // POST /users/:userId/biometrics/key
@@ -258,11 +273,26 @@ class Client {
258
273
  const res = yield this.baseRequest.post(`/touch?regenerate=${!!regenerate}`);
259
274
  return res.data;
260
275
  });
261
- // GET /session/origin
276
+ // GET /sessions/:sessionLookupId/origin
262
277
  this.sessionOrigin = (sessionLookupId) => __async(this, null, function* () {
263
278
  const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/origin`);
264
279
  return res.data;
265
280
  });
281
+ // GET /sessions/:sessionLookupId/login-method
282
+ this.sessionLoginMethod = (sessionLookupId) => __async(this, null, function* () {
283
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/login-method`);
284
+ return res.data;
285
+ });
286
+ // GET /sessions/:sessionLookupId/auth-verified
287
+ this.sessionAuthVerified = (sessionLookupId) => __async(this, null, function* () {
288
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/auth-verified`);
289
+ return res.data;
290
+ });
291
+ // GET /sessions/:sessionLookupId/auth
292
+ this.sessionAuth = (sessionLookupId) => __async(this, null, function* () {
293
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/auth`);
294
+ return res.data;
295
+ });
266
296
  // POST /biometrics/verify
267
297
  this.verifyWebChallenge = (partnerId, body) => __async(this, null, function* () {
268
298
  const res = yield this.baseRequest.post(`/biometrics/verify`, body, {
@@ -425,6 +455,43 @@ class Client {
425
455
  this.trackReactSdkAnalytics = (opts) => __async(this, null, function* () {
426
456
  yield this.baseRequest.post("/partners/analytics/react-sdk", opts);
427
457
  });
458
+ // ENCLAVE METHODS
459
+ /**
460
+ * Get the enclave's public key for encryption
461
+ */
462
+ this.getEnclavePublicKey = () => __async(this, null, function* () {
463
+ const res = yield this.baseRequest.get(
464
+ "/enclave/public-key"
465
+ );
466
+ return res.data;
467
+ });
468
+ /**
469
+ * Persist encrypted key shares to the enclave
470
+ * @param encryptedPayload JSON string containing the encrypted ECIES payload
471
+ */
472
+ this.persistEnclaveShares = (encryptedPayload) => __async(this, null, function* () {
473
+ const body = { encryptedPayload };
474
+ const res = yield this.baseRequest.post("/enclave/key-shares", body);
475
+ return res.data;
476
+ });
477
+ /**
478
+ * Retrieve encrypted key shares from the enclave
479
+ * @param encryptedPayload JSON string containing the encrypted ECIES query
480
+ */
481
+ this.retrieveEnclaveShares = (encryptedPayload) => __async(this, null, function* () {
482
+ const res = yield this.baseRequest.get(
483
+ `/enclave/key-shares?encryptedPayload=${encodeURIComponent(encryptedPayload)}`
484
+ );
485
+ return res.data;
486
+ });
487
+ this.issueEnclaveJwt = (encryptedPayload) => __async(this, null, function* () {
488
+ const res = yield this.baseRequest.post(`/enclave/jwt/issue`, { encryptedPayload });
489
+ return res.data;
490
+ });
491
+ this.refreshEnclaveJwt = (encryptedPayload) => __async(this, null, function* () {
492
+ const res = yield this.baseRequest.post(`/enclave/jwt/refresh`, { encryptedPayload });
493
+ return res.data;
494
+ });
428
495
  const headers = __spreadValues(__spreadValues({}, apiKey && { [import_consts.API_KEY_HEADER_NAME]: apiKey }), partnerId && { [import_consts.PARTNER_ID_HEADER_NAME]: partnerId });
429
496
  const axiosConfig = {
430
497
  baseURL: userManagementHost,
@@ -600,8 +667,8 @@ class Client {
600
667
  });
601
668
  }
602
669
  getFarcasterAuthStatus() {
603
- return __async(this, null, function* () {
604
- const res = yield this.baseRequest.post(`/auth/farcaster/status/v2`);
670
+ return __async(this, arguments, function* ({ sessionLookupId } = {}) {
671
+ const res = yield this.baseRequest.post(`/auth/farcaster/status/v2`, { sessionLookupId });
605
672
  return res.data;
606
673
  });
607
674
  }
@@ -911,6 +978,17 @@ class Client {
911
978
  return res.data;
912
979
  });
913
980
  }
981
+ getSupportedAuthMethodsV2(auth) {
982
+ return __async(this, null, function* () {
983
+ const res = yield this.baseRequest.get(
984
+ "/users/supported-auth-methods/v2",
985
+ {
986
+ params: __spreadValues({}, auth)
987
+ }
988
+ );
989
+ return res.data;
990
+ });
991
+ }
914
992
  getPasswords(auth) {
915
993
  return __async(this, null, function* () {
916
994
  const res = yield this.baseRequest.get("/users/passwords", {
@@ -930,9 +1008,9 @@ class Client {
930
1008
  return res;
931
1009
  });
932
1010
  }
933
- getEncryptedWalletPrivateKey(passwordId) {
1011
+ getEncryptedWalletPrivateKey(passwordId, sessionLookupId) {
934
1012
  return __async(this, null, function* () {
935
- const query = new URLSearchParams({ passwordId }).toString();
1013
+ const query = new URLSearchParams({ passwordId, sessionLookupId }).toString();
936
1014
  const res = yield this.baseRequest.get(`/encrypted-wallet-private-keys?${query}`);
937
1015
  return res;
938
1016
  });
@@ -22,6 +22,7 @@ __export(auth_exports, {
22
22
  EncryptorType: () => EncryptorType,
23
23
  KeyShareType: () => KeyShareType,
24
24
  LINKED_ACCOUNT_TYPES: () => LINKED_ACCOUNT_TYPES,
25
+ LegacyAuthMethod: () => LegacyAuthMethod,
25
26
  OAUTH_METHODS: () => OAUTH_METHODS,
26
27
  OAuthMethod: () => OAuthMethod,
27
28
  PasswordStatus: () => PasswordStatus,
@@ -95,8 +96,15 @@ const LINKED_ACCOUNT_TYPES = [
95
96
  var AuthMethod = /* @__PURE__ */ ((AuthMethod2) => {
96
97
  AuthMethod2["PASSWORD"] = "PASSWORD";
97
98
  AuthMethod2["PASSKEY"] = "PASSKEY";
99
+ AuthMethod2["PIN"] = "PIN";
100
+ AuthMethod2["SLO"] = "SLO";
98
101
  return AuthMethod2;
99
102
  })(AuthMethod || {});
103
+ var LegacyAuthMethod = /* @__PURE__ */ ((LegacyAuthMethod2) => {
104
+ LegacyAuthMethod2["PASSWORD"] = "PASSWORD";
105
+ LegacyAuthMethod2["BIOMETRIC"] = "BIOMETRIC";
106
+ return LegacyAuthMethod2;
107
+ })(LegacyAuthMethod || {});
100
108
  // Annotate the CommonJS export names for ESM import in node:
101
109
  0 && (module.exports = {
102
110
  AUTH_TYPES,
@@ -104,6 +112,7 @@ var AuthMethod = /* @__PURE__ */ ((AuthMethod2) => {
104
112
  EncryptorType,
105
113
  KeyShareType,
106
114
  LINKED_ACCOUNT_TYPES,
115
+ LegacyAuthMethod,
107
116
  OAUTH_METHODS,
108
117
  OAuthMethod,
109
118
  PasswordStatus,
@@ -55,9 +55,13 @@ class Client {
55
55
  });
56
56
  return res.data;
57
57
  });
58
- this.verifyTelegram = (authObject) => __async(this, null, function* () {
58
+ this.verifyTelegram = (_0) => __async(this, [_0], function* ({
59
+ authObject,
60
+ sessionLookupId
61
+ }) {
59
62
  return (yield this.baseRequest.post("/users/telegram/v2", {
60
- authObject
63
+ authObject,
64
+ sessionLookupId
61
65
  })).data;
62
66
  });
63
67
  this.verifyOAuth = () => __async(this, null, function* () {
@@ -74,8 +78,16 @@ class Client {
74
78
  });
75
79
  return res.data;
76
80
  });
77
- this.verifyNewAccount = (userId, body) => __async(this, null, function* () {
78
- const res = yield this.baseRequest.post(`/users/${userId}/verify`, body);
81
+ this.verifyAccount = (userId, body) => __async(this, null, function* () {
82
+ const res = yield this.baseRequest.post(
83
+ `/users/${userId}/verify`,
84
+ body
85
+ );
86
+ return res.data;
87
+ });
88
+ // POST /users/send-login-code
89
+ this.sendLoginVerificationCode = (auth, isRecovery) => __async(this, null, function* () {
90
+ const res = yield this.baseRequest.post(`/users/send-login-code`, __spreadProps(__spreadValues({}, auth), { isRecovery }));
79
91
  return res.data;
80
92
  });
81
93
  this.getLinkedAccounts = (_0) => __async(this, [_0], function* ({
@@ -135,7 +147,10 @@ class Client {
135
147
  return res;
136
148
  });
137
149
  this.verifyExternalWallet = (userId, body) => __async(this, null, function* () {
138
- const res = yield this.baseRequest.post(`/users/${userId}/external-wallets/verify/v2`, body);
150
+ const res = yield this.baseRequest.post(
151
+ `/users/${userId}/external-wallets/verify/v2`,
152
+ body
153
+ );
139
154
  return res.data;
140
155
  });
141
156
  // POST /users/:userId/biometrics/key
@@ -181,11 +196,26 @@ class Client {
181
196
  const res = yield this.baseRequest.post(`/touch?regenerate=${!!regenerate}`);
182
197
  return res.data;
183
198
  });
184
- // GET /session/origin
199
+ // GET /sessions/:sessionLookupId/origin
185
200
  this.sessionOrigin = (sessionLookupId) => __async(this, null, function* () {
186
201
  const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/origin`);
187
202
  return res.data;
188
203
  });
204
+ // GET /sessions/:sessionLookupId/login-method
205
+ this.sessionLoginMethod = (sessionLookupId) => __async(this, null, function* () {
206
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/login-method`);
207
+ return res.data;
208
+ });
209
+ // GET /sessions/:sessionLookupId/auth-verified
210
+ this.sessionAuthVerified = (sessionLookupId) => __async(this, null, function* () {
211
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/auth-verified`);
212
+ return res.data;
213
+ });
214
+ // GET /sessions/:sessionLookupId/auth
215
+ this.sessionAuth = (sessionLookupId) => __async(this, null, function* () {
216
+ const res = yield this.baseRequest.get(`/sessions/${sessionLookupId}/auth`);
217
+ return res.data;
218
+ });
189
219
  // POST /biometrics/verify
190
220
  this.verifyWebChallenge = (partnerId, body) => __async(this, null, function* () {
191
221
  const res = yield this.baseRequest.post(`/biometrics/verify`, body, {
@@ -348,6 +378,43 @@ class Client {
348
378
  this.trackReactSdkAnalytics = (opts) => __async(this, null, function* () {
349
379
  yield this.baseRequest.post("/partners/analytics/react-sdk", opts);
350
380
  });
381
+ // ENCLAVE METHODS
382
+ /**
383
+ * Get the enclave's public key for encryption
384
+ */
385
+ this.getEnclavePublicKey = () => __async(this, null, function* () {
386
+ const res = yield this.baseRequest.get(
387
+ "/enclave/public-key"
388
+ );
389
+ return res.data;
390
+ });
391
+ /**
392
+ * Persist encrypted key shares to the enclave
393
+ * @param encryptedPayload JSON string containing the encrypted ECIES payload
394
+ */
395
+ this.persistEnclaveShares = (encryptedPayload) => __async(this, null, function* () {
396
+ const body = { encryptedPayload };
397
+ const res = yield this.baseRequest.post("/enclave/key-shares", body);
398
+ return res.data;
399
+ });
400
+ /**
401
+ * Retrieve encrypted key shares from the enclave
402
+ * @param encryptedPayload JSON string containing the encrypted ECIES query
403
+ */
404
+ this.retrieveEnclaveShares = (encryptedPayload) => __async(this, null, function* () {
405
+ const res = yield this.baseRequest.get(
406
+ `/enclave/key-shares?encryptedPayload=${encodeURIComponent(encryptedPayload)}`
407
+ );
408
+ return res.data;
409
+ });
410
+ this.issueEnclaveJwt = (encryptedPayload) => __async(this, null, function* () {
411
+ const res = yield this.baseRequest.post(`/enclave/jwt/issue`, { encryptedPayload });
412
+ return res.data;
413
+ });
414
+ this.refreshEnclaveJwt = (encryptedPayload) => __async(this, null, function* () {
415
+ const res = yield this.baseRequest.post(`/enclave/jwt/refresh`, { encryptedPayload });
416
+ return res.data;
417
+ });
351
418
  const headers = __spreadValues(__spreadValues({}, apiKey && { [API_KEY_HEADER_NAME]: apiKey }), partnerId && { [PARTNER_ID_HEADER_NAME]: partnerId });
352
419
  const axiosConfig = {
353
420
  baseURL: userManagementHost,
@@ -523,8 +590,8 @@ class Client {
523
590
  });
524
591
  }
525
592
  getFarcasterAuthStatus() {
526
- return __async(this, null, function* () {
527
- const res = yield this.baseRequest.post(`/auth/farcaster/status/v2`);
593
+ return __async(this, arguments, function* ({ sessionLookupId } = {}) {
594
+ const res = yield this.baseRequest.post(`/auth/farcaster/status/v2`, { sessionLookupId });
528
595
  return res.data;
529
596
  });
530
597
  }
@@ -834,6 +901,17 @@ class Client {
834
901
  return res.data;
835
902
  });
836
903
  }
904
+ getSupportedAuthMethodsV2(auth) {
905
+ return __async(this, null, function* () {
906
+ const res = yield this.baseRequest.get(
907
+ "/users/supported-auth-methods/v2",
908
+ {
909
+ params: __spreadValues({}, auth)
910
+ }
911
+ );
912
+ return res.data;
913
+ });
914
+ }
837
915
  getPasswords(auth) {
838
916
  return __async(this, null, function* () {
839
917
  const res = yield this.baseRequest.get("/users/passwords", {
@@ -853,9 +931,9 @@ class Client {
853
931
  return res;
854
932
  });
855
933
  }
856
- getEncryptedWalletPrivateKey(passwordId) {
934
+ getEncryptedWalletPrivateKey(passwordId, sessionLookupId) {
857
935
  return __async(this, null, function* () {
858
- const query = new URLSearchParams({ passwordId }).toString();
936
+ const query = new URLSearchParams({ passwordId, sessionLookupId }).toString();
859
937
  const res = yield this.baseRequest.get(`/encrypted-wallet-private-keys?${query}`);
860
938
  return res;
861
939
  });
@@ -65,14 +65,22 @@ const LINKED_ACCOUNT_TYPES = [
65
65
  var AuthMethod = /* @__PURE__ */ ((AuthMethod2) => {
66
66
  AuthMethod2["PASSWORD"] = "PASSWORD";
67
67
  AuthMethod2["PASSKEY"] = "PASSKEY";
68
+ AuthMethod2["PIN"] = "PIN";
69
+ AuthMethod2["SLO"] = "SLO";
68
70
  return AuthMethod2;
69
71
  })(AuthMethod || {});
72
+ var LegacyAuthMethod = /* @__PURE__ */ ((LegacyAuthMethod2) => {
73
+ LegacyAuthMethod2["PASSWORD"] = "PASSWORD";
74
+ LegacyAuthMethod2["BIOMETRIC"] = "BIOMETRIC";
75
+ return LegacyAuthMethod2;
76
+ })(LegacyAuthMethod || {});
70
77
  export {
71
78
  AUTH_TYPES,
72
79
  AuthMethod,
73
80
  EncryptorType,
74
81
  KeyShareType,
75
82
  LINKED_ACCOUNT_TYPES,
83
+ LegacyAuthMethod,
76
84
  OAUTH_METHODS,
77
85
  OAuthMethod,
78
86
  PasswordStatus,
@@ -1,5 +1,5 @@
1
1
  import { AxiosResponse } from 'axios';
2
- import { AccountMetadata, Auth, AuthIdentifier, AuthMethod, BackupKitEmailProps, BiometricLocationHint, Chain, CurrentWalletIds, EncryptedKeyShare, EncryptorType, ExternalWalletInfo, LoginExternalWalletResponse, KeyShareType, Network, OnRampAsset, OnRampConfig, OnRampProvider, OnRampPurchase, OnRampPurchaseCreateParams, OnRampPurchaseUpdateParams, PasswordStatus, PregenIds, PrimaryAuth, PublicKeyStatus, PublicKeyType, ServerAuthStateSignup, SessionInfo, Setup2faResponse, SignUpOrLogInResponse, TelegramAuthResponse, TPregenIdentifierType, VerificationEmailProps, VerifiedAuth, VerifyFarcasterResponse, VerifyTelegramResponse, VerifyThirdPartyAuth, WalletEntity, WalletParams, TWalletScheme, TWalletType, VerifyExternalWalletParams, IssueJwtParams, IssueJwtResponse, LinkAccountParams, LinkedAccounts, ResendVerificationCodeParams } from './types/index.js';
2
+ import { AccountMetadata, Auth, AuthIdentifier, AuthMethod, BackupKitEmailProps, BiometricLocationHint, Chain, CurrentWalletIds, EncryptedKeyShare, EncryptorType, ExternalWalletInfo, LoginExternalWalletResponse, KeyShareType, Network, OnRampAsset, OnRampConfig, OnRampProvider, OnRampPurchase, OnRampPurchaseCreateParams, OnRampPurchaseUpdateParams, PasswordStatus, PregenIds, PrimaryAuth, PublicKeyStatus, PublicKeyType, ServerAuthStateSignup, SessionInfo, Setup2faResponse, SignUpOrLogInResponse, TelegramAuthResponse, TPregenIdentifierType, VerificationEmailProps, VerifiedAuth, VerifyFarcasterResponse, VerifyTelegramResponse, VerifyThirdPartyAuth, WalletEntity, WalletParams, TWalletScheme, TWalletType, VerifyExternalWalletParams, IssueJwtParams, IssueJwtResponse, LinkAccountParams, LinkedAccounts, ResendVerificationCodeParams, LegacyAuthMethod, PrimaryAuthInfo, ServerAuthStateLogin, ServerAuthStateDone } from './types/index.js';
3
3
  interface ConfigOpts {
4
4
  useFetchAdapter?: boolean;
5
5
  }
@@ -18,6 +18,7 @@ interface createUserIdRes {
18
18
  }
19
19
  interface verifyBody {
20
20
  verificationCode: string;
21
+ sessionLookupId?: string;
21
22
  }
22
23
  interface getWebChallengeRes {
23
24
  challenge: string;
@@ -67,6 +68,7 @@ interface PasswordEntity {
67
68
  status: PasswordStatus;
68
69
  sigDerivedPublicKey: string;
69
70
  salt: string;
71
+ isPIN?: boolean;
70
72
  }
71
73
  interface createWalletBody {
72
74
  useTwoSigners?: boolean;
@@ -117,6 +119,7 @@ interface sessionPasswordBody {
117
119
  salt?: string;
118
120
  encryptedWalletPrivateKey?: string;
119
121
  encryptionKeyHash?: string;
122
+ isPIN?: boolean;
120
123
  }
121
124
  interface EncryptedWalletPrivateKey {
122
125
  id: string;
@@ -148,13 +151,19 @@ declare class Client {
148
151
  */
149
152
  createUser: (body: VerifiedAuth & VerificationEmailProps) => Promise<createUserIdRes>;
150
153
  checkUserExists: (auth: VerifiedAuth) => Promise<any>;
151
- verifyTelegram: (authObject: TelegramAuthResponse) => Promise<VerifyTelegramResponse>;
154
+ verifyTelegram: ({ authObject, sessionLookupId, }: {
155
+ authObject: TelegramAuthResponse;
156
+ sessionLookupId?: string;
157
+ }) => Promise<VerifyTelegramResponse>;
152
158
  verifyOAuth: () => Promise<VerifyThirdPartyAuth | null>;
153
159
  loginExternalWallet: ({ externalWallet, shouldTrackUser, }: {
154
160
  externalWallet: ExternalWalletInfo;
155
161
  shouldTrackUser?: boolean;
156
162
  }) => Promise<LoginExternalWalletResponse>;
157
- verifyNewAccount: (userId: string, body: verifyBody) => Promise<ServerAuthStateSignup>;
163
+ verifyAccount: (userId: string, body: verifyBody) => Promise<ServerAuthStateSignup | ServerAuthStateLogin | ServerAuthStateDone>;
164
+ sendLoginVerificationCode: (auth: PrimaryAuthInfo, isRecovery?: boolean) => Promise<{
165
+ userId: string;
166
+ }>;
158
167
  getLinkedAccounts: ({ userId, withMetadata, }: {
159
168
  userId: string;
160
169
  withMetadata?: boolean;
@@ -191,7 +200,7 @@ declare class Client {
191
200
  * @deprecated
192
201
  */
193
202
  verifyPhone: (userId: string, body: verifyBody) => Promise<any>;
194
- verifyExternalWallet: (userId: string, body: VerifyExternalWalletParams) => Promise<ServerAuthStateSignup>;
203
+ verifyExternalWallet: (userId: string, body: VerifyExternalWalletParams) => Promise<ServerAuthStateSignup | ServerAuthStateLogin>;
195
204
  addSessionPublicKey: (userId: string, body: sessionPublicKeyBody) => Promise<any>;
196
205
  getSessionPublicKeys: (userId: string) => Promise<any>;
197
206
  getBiometricLocationHints: (auth: PrimaryAuth) => Promise<BiometricLocationHint[]>;
@@ -202,6 +211,21 @@ declare class Client {
202
211
  sessionOrigin: (sessionLookupId: string) => Promise<{
203
212
  origin?: string;
204
213
  }>;
214
+ sessionLoginMethod: (sessionLookupId: string) => Promise<{
215
+ loginMethod?: string;
216
+ }>;
217
+ sessionAuthVerified: (sessionLookupId: string) => Promise<{
218
+ authVerified?: boolean;
219
+ }>;
220
+ sessionAuth: (sessionLookupId: string) => Promise<{
221
+ userId: string;
222
+ authVerified?: boolean;
223
+ loginAuthMethods: {
224
+ methods: AuthMethod[];
225
+ };
226
+ auth: PrimaryAuth;
227
+ isNewUser: boolean;
228
+ }>;
205
229
  verifyWebChallenge: (partnerId: string, body: verifyWebChallengeBody) => Promise<any>;
206
230
  getSessionChallenge: (userId: string) => Promise<any>;
207
231
  verifySessionChallenge: (userId: string, body: verifySessionChallengeBody) => Promise<any>;
@@ -257,7 +281,9 @@ declare class Client {
257
281
  initializeFarcasterLogin({ appScheme }?: {
258
282
  appScheme?: string;
259
283
  }): Promise<any>;
260
- getFarcasterAuthStatus(): Promise<VerifyFarcasterResponse>;
284
+ getFarcasterAuthStatus({ sessionLookupId }?: {
285
+ sessionLookupId?: string;
286
+ }): Promise<VerifyFarcasterResponse>;
261
287
  initializeRecoveryForPhone(phone: string, countryCode: string): Promise<AxiosResponse<any, any>>;
262
288
  finalizeRecovery(userId: string, walletId: string): Promise<AxiosResponse<any, any>>;
263
289
  recoverUserShares(userId: string, walletId: string): Promise<AxiosResponse<{
@@ -370,10 +396,16 @@ declare class Client {
370
396
  deletePendingTransaction(userId: string, pendingTransactionId: string): Promise<any>;
371
397
  addSessionPasswordPublicKey(userId: string, body: sessionPasswordBody): Promise<any>;
372
398
  patchSessionPassword: (partnerId: string, userId: string, passwordId: string, body: sessionPasswordBody) => Promise<any>;
373
- getSupportedAuthMethods(auth: Auth): Promise<any>;
399
+ getSupportedAuthMethods(auth: Auth): Promise<{
400
+ supportedAuthMethods: LegacyAuthMethod[];
401
+ }>;
402
+ getSupportedAuthMethodsV2(auth: Auth): Promise<{
403
+ supportedAuthMethods: AuthMethod[];
404
+ hasPasswordWithoutPIN: boolean;
405
+ }>;
374
406
  getPasswords(auth: Auth): Promise<PasswordEntity[]>;
375
407
  verifyPasswordChallenge(partnerId: string, body: verifyPasswordChallengeBody): Promise<any>;
376
- getEncryptedWalletPrivateKey(passwordId: string): Promise<{
408
+ getEncryptedWalletPrivateKey(passwordId: string, sessionLookupId: string): Promise<{
377
409
  data: {
378
410
  encryptedWalletPrivateKey: EncryptedWalletPrivateKey;
379
411
  };
@@ -400,5 +432,33 @@ declare class Client {
400
432
  props: object;
401
433
  reactSdkVersion: string;
402
434
  }) => Promise<void>;
435
+ /**
436
+ * Get the enclave's public key for encryption
437
+ */
438
+ getEnclavePublicKey: () => Promise<{
439
+ publicKey: string;
440
+ keyFingerprint: string;
441
+ generatedAt: string;
442
+ }>;
443
+ /**
444
+ * Persist encrypted key shares to the enclave
445
+ * @param encryptedPayload JSON string containing the encrypted ECIES payload
446
+ */
447
+ persistEnclaveShares: (encryptedPayload: string) => Promise<{
448
+ payload: any;
449
+ }>;
450
+ /**
451
+ * Retrieve encrypted key shares from the enclave
452
+ * @param encryptedPayload JSON string containing the encrypted ECIES query
453
+ */
454
+ retrieveEnclaveShares: (encryptedPayload: string) => Promise<{
455
+ payload: any;
456
+ }>;
457
+ issueEnclaveJwt: (encryptedPayload: string) => Promise<{
458
+ payload: string;
459
+ }>;
460
+ refreshEnclaveJwt: (encryptedPayload: string) => Promise<{
461
+ payload: string;
462
+ }>;
403
463
  }
404
464
  export default Client;
@@ -117,7 +117,13 @@ export type TLinkedAccountType = (typeof LINKED_ACCOUNT_TYPES)[number] | 'EXTERN
117
117
  export type SupportedAccountLinks = (TLinkedAccountType | TExternalWallet)[];
118
118
  export declare enum AuthMethod {
119
119
  PASSWORD = "PASSWORD",
120
- PASSKEY = "PASSKEY"
120
+ PASSKEY = "PASSKEY",
121
+ PIN = "PIN",
122
+ SLO = "SLO"
123
+ }
124
+ export declare enum LegacyAuthMethod {
125
+ PASSWORD = "PASSWORD",
126
+ BIOMETRIC = "BIOMETRIC"
121
127
  }
122
128
  export type BiometricLocationHint = {
123
129
  useragent?: string;
@@ -154,7 +160,14 @@ export type ServerAuthStateBase = AuthExtras & {
154
160
  export type ServerAuthStateVerify = ServerAuthStateBase & {
155
161
  stage: 'verify';
156
162
  signatureVerificationMessage?: string;
157
- };
163
+ isWalletSelectionNeeded?: boolean;
164
+ } & ({
165
+ nextStage: 'login';
166
+ loginAuthMethods: AuthMethod[];
167
+ } | {
168
+ nextStage: 'signup';
169
+ signupAuthMethods: AuthMethod[];
170
+ });
158
171
  export type ServerAuthStateSignup = ServerAuthStateBase & {
159
172
  stage: 'signup';
160
173
  signupAuthMethods: AuthMethod[];
@@ -164,13 +177,22 @@ export type ServerAuthStateLogin = ServerAuthStateBase & {
164
177
  biometricHints?: BiometricLocationHint[];
165
178
  loginAuthMethods: AuthMethod[];
166
179
  isWalletSelectionNeeded?: boolean;
180
+ hasPasswordWithoutPIN?: boolean;
181
+ signatureVerificationMessage?: string;
182
+ };
183
+ export type ServerAuthStateDone = ServerAuthStateBase & {
184
+ stage: 'done';
185
+ authMethods: AuthMethod[];
186
+ isWalletSelectionNeeded?: boolean;
187
+ isNewUser: boolean;
167
188
  };
168
- export type VerifyThirdPartyAuth = ServerAuthStateSignup | ServerAuthStateLogin;
189
+ export type VerifyThirdPartyAuth = ServerAuthStateSignup | ServerAuthStateLogin | ServerAuthStateDone;
169
190
  export type ExternalWalletInfo = {
191
+ partnerId: string;
170
192
  address: string;
171
193
  type: ExternalWalletType;
172
194
  provider?: string;
173
- providerId?: TExternalWallet;
195
+ providerId?: string;
174
196
  addressBech32?: string;
175
197
  withFullParaAuth?: boolean;
176
198
  ensName?: string | null;
@@ -201,7 +223,7 @@ export type LoginExternalWalletResponse = ServerAuthStateLogin | (ServerAuthStat
201
223
  });
202
224
  export type VerifyTelegramResponse = VerifyThirdPartyAuth;
203
225
  export type VerifyFarcasterResponse = VerifyThirdPartyAuth | Record<string, never>;
204
- export type ServerAuthState = ServerAuthStateVerify | ServerAuthStateSignup | ServerAuthStateLogin;
226
+ export type ServerAuthState = ServerAuthStateVerify | ServerAuthStateSignup | ServerAuthStateLogin | ServerAuthStateDone;
205
227
  export type SignUpOrLogInResponse = ServerAuthStateVerify | ServerAuthStateLogin;
206
228
  export type Setup2faResponse = {
207
229
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpara/user-management-client",
3
- "version": "2.0.0-dev.3",
3
+ "version": "2.0.0-dev.7",
4
4
  "dependencies": {
5
5
  "axios": "^1.8.4",
6
6
  "libphonenumber-js": "^1.11.7"
@@ -19,7 +19,7 @@
19
19
  "dist",
20
20
  "package.json"
21
21
  ],
22
- "gitHead": "ffe34f7d8df2dd3c2327ca1f35bcc9764e0a68a2",
22
+ "gitHead": "225cd3693edaab4dac81df7285956d2616e5717f",
23
23
  "main": "dist/cjs/index.js",
24
24
  "module": "dist/esm/index.js",
25
25
  "scripts": {