woodsportal-client-sdk 1.1.5-dev.0 → 4.0.0-dev.1

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/README.md +171 -77
  3. package/dist/adapters/angular/index.d.ts +68 -5
  4. package/dist/adapters/angular/index.js +8 -7
  5. package/dist/adapters/angular/index.js.map +1 -1
  6. package/dist/adapters/react/index.d.ts +68 -5
  7. package/dist/adapters/react/index.js +7 -6
  8. package/dist/adapters/react/index.js.map +1 -1
  9. package/dist/adapters/vue/index.d.ts +68 -5
  10. package/dist/adapters/vue/index.js +8 -7
  11. package/dist/adapters/vue/index.js.map +1 -1
  12. package/dist/auth-utils-VT7HSLMA.js +3 -0
  13. package/dist/{auth-utils-A4WPJMPK.js.map → auth-utils-VT7HSLMA.js.map} +1 -1
  14. package/dist/authentication-BfYhAeMs.d.ts +463 -0
  15. package/dist/cache-purge-G5WkHckd.d.ts +236 -0
  16. package/dist/chunk-3FUHGFAQ.js +167 -0
  17. package/dist/chunk-3FUHGFAQ.js.map +1 -0
  18. package/dist/chunk-4CEUGRRD.js +2034 -0
  19. package/dist/chunk-4CEUGRRD.js.map +1 -0
  20. package/dist/chunk-4CTHZLKL.js +20 -0
  21. package/dist/chunk-4CTHZLKL.js.map +1 -0
  22. package/dist/chunk-5TLHHOP5.js +1424 -0
  23. package/dist/chunk-5TLHHOP5.js.map +1 -0
  24. package/dist/chunk-7KE6XWM5.js +95 -0
  25. package/dist/chunk-7KE6XWM5.js.map +1 -0
  26. package/dist/{chunk-Y5MRAAGK.js → chunk-AYTO6ND7.js} +3 -3
  27. package/dist/chunk-AYTO6ND7.js.map +1 -0
  28. package/dist/chunk-DZKNBN72.js +399 -0
  29. package/dist/chunk-DZKNBN72.js.map +1 -0
  30. package/dist/chunk-F7B4FHUQ.js +504 -0
  31. package/dist/chunk-F7B4FHUQ.js.map +1 -0
  32. package/dist/entries/auth.d.ts +68 -0
  33. package/dist/entries/auth.js +13 -0
  34. package/dist/entries/auth.js.map +1 -0
  35. package/dist/entries/crm.d.ts +218 -0
  36. package/dist/entries/crm.js +24 -0
  37. package/dist/entries/crm.js.map +1 -0
  38. package/dist/index-CCwMopD8.d.ts +38 -0
  39. package/dist/index.d.ts +415 -406
  40. package/dist/index.js +23 -1720
  41. package/dist/index.js.map +1 -1
  42. package/dist/use-sync-DpazhM4d.d.ts +60 -0
  43. package/dist/use-uploader-2F1zc7Cl.d.ts +23 -0
  44. package/package.json +53 -8
  45. package/dist/auth-utils-A4WPJMPK.js +0 -4
  46. package/dist/chunk-J7MDPY5P.js +0 -54
  47. package/dist/chunk-J7MDPY5P.js.map +0 -1
  48. package/dist/chunk-NB7AINV4.js +0 -35
  49. package/dist/chunk-NB7AINV4.js.map +0 -1
  50. package/dist/chunk-RDCT25UV.js +0 -1066
  51. package/dist/chunk-RDCT25UV.js.map +0 -1
  52. package/dist/chunk-Y5MRAAGK.js.map +0 -1
  53. package/dist/chunk-YLZA5S7A.js +0 -102
  54. package/dist/chunk-YLZA5S7A.js.map +0 -1
  55. package/dist/use-sync-LbURBOs_.d.ts +0 -29
@@ -0,0 +1,504 @@
1
+ import { getAuthRefreshToken, createMutation, Client, setConfig } from './chunk-4CEUGRRD.js';
2
+ import { getParam, actions6 } from './chunk-5TLHHOP5.js';
3
+ import { isCookieExpired, isExpiresAccessToken, isAccessTokenExpired, isAuthenticateApp, isAuthenticated, getAccessToken, getRefreshToken, clearAccessToken, removeAllCookie, setAccessToken, setPortal, setSubscriptionType, setRefreshToken, setLoggedInDetails } from './chunk-3FUHGFAQ.js';
4
+
5
+ // src/main/core/http/login-session.ts
6
+ async function completeLoginSession(response) {
7
+ const tokenData = response?.data?.tokenData || {};
8
+ const loggedInDetails = response?.data?.loggedInDetails || {};
9
+ const currentPortal = response?.data?.loggedInDetails?.currentPortal || {};
10
+ const currentPortalId = currentPortal?.portalId || null;
11
+ const subscriptionType = loggedInDetails?.subscriptionType || "BASIC";
12
+ const token = tokenData?.token;
13
+ const refreshToken = tokenData?.refreshToken;
14
+ const expiresIn = tokenData?.expiresIn;
15
+ const rExpiresIn = tokenData?.refreshExpiresIn;
16
+ setPortal(currentPortal);
17
+ setSubscriptionType(subscriptionType);
18
+ await setAccessToken(token, expiresIn);
19
+ await setRefreshToken(refreshToken, rExpiresIn);
20
+ await setLoggedInDetails(response.data);
21
+ actions6.setProfile(response);
22
+ setConfig.setDevPortalId(currentPortalId);
23
+ return response;
24
+ }
25
+ async function applyLoginResponse(response) {
26
+ const data = response?.data ?? response;
27
+ if (data?.twoFactorRequired === true) {
28
+ const tokenData = data?.tokenData || {};
29
+ const token = tokenData?.token;
30
+ const expiresIn = tokenData?.expiresIn;
31
+ if (token) {
32
+ await setAccessToken(token, expiresIn);
33
+ }
34
+ return response;
35
+ }
36
+ return completeLoginSession(response);
37
+ }
38
+
39
+ // src/main/features/auth/api/authentication.ts
40
+ function preLogin(options) {
41
+ const { mutate, isLoading } = createMutation(async (payload) => {
42
+ const response = await Client.authentication.preLogin(payload);
43
+ return response;
44
+ }, options);
45
+ return {
46
+ mutate,
47
+ preLogin: mutate,
48
+ isLoading
49
+ };
50
+ }
51
+ function login(options) {
52
+ const { mutate, isLoading } = createMutation(async (payload) => {
53
+ const response = await Client.authentication.login(payload);
54
+ await applyLoginResponse(response);
55
+ return response;
56
+ }, options);
57
+ return {
58
+ mutate,
59
+ login: mutate,
60
+ isLoading
61
+ };
62
+ }
63
+ function clientSession(options) {
64
+ const { mutate, isLoading } = createMutation(async (payload) => {
65
+ const response = await Client.authentication.clientSession(payload);
66
+ await applyLoginResponse(response);
67
+ return response;
68
+ }, options);
69
+ return {
70
+ mutate,
71
+ clientSession: mutate,
72
+ isLoading
73
+ };
74
+ }
75
+ function verifyEmail(options) {
76
+ const { mutate, isLoading } = createMutation(async (payload) => {
77
+ const verifyEmailPayload = payload || {};
78
+ const token = getParam("token");
79
+ if (!verifyEmailPayload?.token) verifyEmailPayload.token = token;
80
+ const response = await Client.authentication.verifyEmail(verifyEmailPayload);
81
+ return response;
82
+ }, options);
83
+ return {
84
+ mutate,
85
+ verifyEmail: mutate,
86
+ isLoading
87
+ };
88
+ }
89
+ function resetPasswordVerifyToken(options) {
90
+ const { mutate, isLoading } = createMutation(async (payload) => {
91
+ const resetPasswordVerifyTokenPayload = payload || {};
92
+ const token = getParam("token");
93
+ if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token;
94
+ const response = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload);
95
+ return response;
96
+ }, options);
97
+ return {
98
+ mutate,
99
+ resetPasswordVerifyToken: mutate,
100
+ isLoading
101
+ };
102
+ }
103
+ function resetPassword(options) {
104
+ const { mutate, isLoading } = createMutation(async (payload) => {
105
+ const response = await Client.authentication.resetPassword(payload);
106
+ return response;
107
+ }, options);
108
+ return {
109
+ mutate,
110
+ resetPassword: mutate,
111
+ isLoading
112
+ };
113
+ }
114
+ function forgetPassword(options) {
115
+ const { mutate, isLoading } = createMutation(async (payload) => {
116
+ const response = await Client.authentication.forgetPassword(payload);
117
+ return response;
118
+ }, options);
119
+ return {
120
+ mutate,
121
+ forgetPassword: mutate,
122
+ isLoading
123
+ };
124
+ }
125
+ function logout(options) {
126
+ const { mutate, isLoading } = createMutation(async () => {
127
+ const response = await Client.authentication.logout();
128
+ clearAccessToken();
129
+ removeAllCookie();
130
+ return response;
131
+ }, options);
132
+ return {
133
+ mutate,
134
+ logout: mutate,
135
+ isLoading
136
+ };
137
+ }
138
+ function registerExistingUser(options) {
139
+ const { mutate, isLoading } = createMutation(async (payload) => {
140
+ const response = await Client.authentication.registerExistingUser(payload);
141
+ return response;
142
+ }, options);
143
+ return {
144
+ mutate,
145
+ registerExistingUser: mutate,
146
+ isLoading
147
+ };
148
+ }
149
+ function verifyEmailResend(options) {
150
+ const { mutate, isLoading } = createMutation(async (payload) => {
151
+ const response = await Client.authentication.verifyEmailResend(payload);
152
+ return response;
153
+ }, options);
154
+ return {
155
+ mutate,
156
+ verifyEmailResend: mutate,
157
+ isLoading
158
+ };
159
+ }
160
+ function resendEmail(options) {
161
+ const { mutate, isLoading } = createMutation(async (payload) => {
162
+ const response = await Client.authentication.resendEmail(payload);
163
+ return response;
164
+ }, options);
165
+ return {
166
+ mutate,
167
+ resendEmail: mutate,
168
+ isLoading
169
+ };
170
+ }
171
+
172
+ // src/main/features/auth/api/mfa.ts
173
+ function verifyOtp(options) {
174
+ const { mutate, isLoading } = createMutation(async (payload) => {
175
+ const response = await Client.authentication.verifyOtp(payload);
176
+ await applyLoginResponse(response);
177
+ return response;
178
+ }, options);
179
+ return { mutate, verifyOtp: mutate, isLoading };
180
+ }
181
+ function sendMfaOtp(options) {
182
+ const { mutate, isLoading } = createMutation(
183
+ async (payload) => Client.mfa.sendPendingOtp(payload),
184
+ options
185
+ );
186
+ return { mutate, sendOtp: mutate, sendMfaOtp: mutate, isLoading };
187
+ }
188
+ function pendingPasskeyOptions(options) {
189
+ const { mutate, isLoading } = createMutation(
190
+ async (payload) => Client.mfa.pendingPasskeyOptions(payload),
191
+ options
192
+ );
193
+ return { mutate, pendingPasskeyOptions: mutate, isLoading };
194
+ }
195
+ function pendingPasskeyVerify(options) {
196
+ const { mutate, isLoading } = createMutation(async (payload) => {
197
+ const response = await Client.mfa.pendingPasskeyVerify(payload);
198
+ await applyLoginResponse(response);
199
+ return response;
200
+ }, options);
201
+ return { mutate, pendingPasskeyVerify: mutate, isLoading };
202
+ }
203
+ function getMfaStatus(options) {
204
+ const { mutate, isLoading } = createMutation(async (payload) => Client.mfa.getStatus(payload), options);
205
+ return { mutate, getStatus: mutate, getMfaStatus: mutate, isLoading };
206
+ }
207
+ function setMfaPreferences(options) {
208
+ const { mutate, isLoading } = createMutation(
209
+ async (payload) => {
210
+ const { portalId, ...data } = payload;
211
+ return Client.mfa.setPreferences(data, { portalId });
212
+ },
213
+ options
214
+ );
215
+ return { mutate, setPreferences: mutate, setMfaPreferences: mutate, isLoading };
216
+ }
217
+ function startPhoneVerify(options) {
218
+ const { mutate, isLoading } = createMutation(
219
+ async (payload) => Client.mfa.startPhoneVerify(payload),
220
+ options
221
+ );
222
+ return { mutate, startPhoneVerify: mutate, isLoading };
223
+ }
224
+ function confirmPhoneVerify(options) {
225
+ const { mutate, isLoading } = createMutation(
226
+ async (payload) => Client.mfa.confirmPhoneVerify(payload),
227
+ options
228
+ );
229
+ return { mutate, confirmPhoneVerify: mutate, isLoading };
230
+ }
231
+ function totpEnrollStart(options) {
232
+ const { mutate, isLoading } = createMutation(async (payload) => Client.mfa.totpEnrollStart(payload), options);
233
+ return { mutate, totpEnrollStart: mutate, isLoading };
234
+ }
235
+ function totpEnrollVerify(options) {
236
+ const { mutate, isLoading } = createMutation(
237
+ async (payload) => Client.mfa.totpEnrollVerify(payload),
238
+ options
239
+ );
240
+ return { mutate, totpEnrollVerify: mutate, isLoading };
241
+ }
242
+ function totpDisable(options) {
243
+ const { mutate, isLoading } = createMutation(
244
+ async (payload) => Client.mfa.totpDisable(payload),
245
+ options
246
+ );
247
+ return { mutate, totpDisable: mutate, isLoading };
248
+ }
249
+ function webauthnRegisterOptions(options) {
250
+ const { mutate, isLoading } = createMutation(
251
+ async (payload) => Client.mfa.webauthnRegisterOptions(payload),
252
+ options
253
+ );
254
+ return { mutate, webauthnRegisterOptions: mutate, isLoading };
255
+ }
256
+ function webauthnRegisterVerify(options) {
257
+ const { mutate, isLoading } = createMutation(
258
+ async (payload) => Client.mfa.webauthnRegisterVerify(payload),
259
+ options
260
+ );
261
+ return { mutate, webauthnRegisterVerify: mutate, isLoading };
262
+ }
263
+ function webauthnAuthOptions(options) {
264
+ const { mutate, isLoading } = createMutation(async (payload) => Client.mfa.webauthnAuthOptions(payload), options);
265
+ return { mutate, webauthnAuthOptions: mutate, isLoading };
266
+ }
267
+ function webauthnAuthVerify(options) {
268
+ const { mutate, isLoading } = createMutation(
269
+ async (payload) => Client.mfa.webauthnAuthVerify(payload),
270
+ options
271
+ );
272
+ return { mutate, webauthnAuthVerify: mutate, isLoading };
273
+ }
274
+ function listWebauthnCredentials(options) {
275
+ const { mutate, isLoading } = createMutation(
276
+ async (payload) => Client.mfa.listWebauthnCredentials(payload),
277
+ options
278
+ );
279
+ return { mutate, listWebauthnCredentials: mutate, isLoading };
280
+ }
281
+ function deleteWebauthnCredential(options) {
282
+ const { mutate, isLoading } = createMutation(
283
+ async (payload) => {
284
+ const { credentialRecordId, portalId } = payload;
285
+ return Client.mfa.deleteWebauthnCredential(credentialRecordId, { portalId });
286
+ },
287
+ options
288
+ );
289
+ return { mutate, deleteWebauthnCredential: mutate, isLoading };
290
+ }
291
+ function passkeyLoginOptions(options) {
292
+ const { mutate, isLoading } = createMutation(
293
+ async (payload) => Client.mfa.passkeyLoginOptions(payload),
294
+ options
295
+ );
296
+ return { mutate, passkeyLoginOptions: mutate, isLoading };
297
+ }
298
+ function passkeyLoginVerify(options) {
299
+ const { mutate, isLoading } = createMutation(async (payload) => {
300
+ const response = await Client.mfa.passkeyLoginVerify(payload);
301
+ await applyLoginResponse(response);
302
+ return response;
303
+ }, options);
304
+ return { mutate, passkeyLoginVerify: mutate, isLoading };
305
+ }
306
+
307
+ // src/main/features/auth/api/security.ts
308
+ function getSecurityOverview(options) {
309
+ const { mutate, isLoading } = createMutation(
310
+ async (payload) => Client.security.getOverview(payload),
311
+ options
312
+ );
313
+ return { mutate, getOverview: mutate, getSecurityOverview: mutate, isLoading };
314
+ }
315
+ function getSecurityLoginActivity(options) {
316
+ const { mutate, isLoading } = createMutation(
317
+ async (payload) => Client.security.getLoginActivity(payload),
318
+ options
319
+ );
320
+ return { mutate, getLoginActivity: mutate, getSecurityLoginActivity: mutate, isLoading };
321
+ }
322
+ function getSecuritySessions(options) {
323
+ const { mutate, isLoading } = createMutation(
324
+ async (payload) => Client.security.getSessions(payload),
325
+ options
326
+ );
327
+ return { mutate, getSessions: mutate, getSecuritySessions: mutate, isLoading };
328
+ }
329
+ function revokeSecuritySession(options) {
330
+ const { mutate, isLoading } = createMutation(
331
+ async (payload) => Client.security.revokeSession(payload),
332
+ options
333
+ );
334
+ return { mutate, revokeSession: mutate, revokeSecuritySession: mutate, isLoading };
335
+ }
336
+ function revokeOtherSecuritySessions(options) {
337
+ const { mutate, isLoading } = createMutation(
338
+ async (payload) => Client.security.revokeOtherSessions(payload?.refreshToken),
339
+ options
340
+ );
341
+ return { mutate, revokeOtherSessions: mutate, revokeOtherSecuritySessions: mutate, isLoading };
342
+ }
343
+
344
+ // src/main/features/auth/api/sso.ts
345
+ function getSsoDetails(options) {
346
+ const { mutate, isLoading } = createMutation(async () => {
347
+ const response = await Client.sso.getSsoDetails();
348
+ return response;
349
+ }, options);
350
+ return {
351
+ mutate,
352
+ getDetails: mutate,
353
+ getSsoDetails: mutate,
354
+ isLoading
355
+ };
356
+ }
357
+ function generateSsoUrl(options) {
358
+ const { mutate, isLoading } = createMutation(async (payload) => {
359
+ const response = await Client.sso.generateSsoUrl(payload);
360
+ return response;
361
+ }, options);
362
+ return {
363
+ mutate,
364
+ generateUrl: mutate,
365
+ generateSsoUrl: mutate,
366
+ isLoading
367
+ };
368
+ }
369
+ function ssoCallback(options) {
370
+ const { mutate, isLoading } = createMutation(async (payload) => {
371
+ const response = await Client.sso.ssoCallback(payload);
372
+ await applyLoginResponse(response);
373
+ return response;
374
+ }, options);
375
+ return {
376
+ mutate,
377
+ callback: mutate,
378
+ ssoCallback: mutate,
379
+ isLoading
380
+ };
381
+ }
382
+
383
+ // src/main/features/auth/api/users.ts
384
+ var meRequestInFlight = null;
385
+ async function fetchMeOnce() {
386
+ if (!meRequestInFlight) {
387
+ meRequestInFlight = Client.user.me().finally(() => {
388
+ meRequestInFlight = null;
389
+ });
390
+ }
391
+ return meRequestInFlight;
392
+ }
393
+ function me(options) {
394
+ const { mutate, isLoading } = createMutation(async () => {
395
+ const response = await fetchMeOnce();
396
+ actions6.setProfile(response);
397
+ return response?.data;
398
+ }, options);
399
+ return {
400
+ mutate,
401
+ me: mutate,
402
+ isLoading
403
+ };
404
+ }
405
+ function profile(options) {
406
+ const { mutate, isLoading } = createMutation(async (paylaod) => {
407
+ const response = await Client.user.profile(paylaod);
408
+ return response;
409
+ }, options);
410
+ return {
411
+ mutate,
412
+ profile: mutate,
413
+ isLoading
414
+ };
415
+ }
416
+ function profileUpdate(options) {
417
+ const { mutate, isLoading } = createMutation(async (paylaod) => {
418
+ const response = await Client.user.profileUpdate(paylaod);
419
+ return response;
420
+ }, options);
421
+ return {
422
+ mutate,
423
+ updateProfile: mutate,
424
+ profileUpdate: mutate,
425
+ isLoading
426
+ };
427
+ }
428
+ function changePassword(options) {
429
+ const { mutate, isLoading } = createMutation(async (payload) => {
430
+ const response = await Client.user.changePassword(payload);
431
+ return response;
432
+ }, options);
433
+ return {
434
+ mutate,
435
+ changePassword: mutate,
436
+ isLoading
437
+ };
438
+ }
439
+
440
+ // src/main/api/nested-auth-api.ts
441
+ var authApi = {
442
+ preLogin,
443
+ login,
444
+ clientSession,
445
+ logout,
446
+ verifyEmail,
447
+ registerExistingUser,
448
+ forgetPassword,
449
+ resetPassword,
450
+ resetPasswordVerifyToken,
451
+ verifyEmailResend,
452
+ resendEmail,
453
+ changePassword,
454
+ me,
455
+ profile,
456
+ updateProfile: profileUpdate,
457
+ mfa: {
458
+ verifyOtp,
459
+ sendOtp: sendMfaOtp,
460
+ pendingPasskeyOptions,
461
+ pendingPasskeyVerify,
462
+ getStatus: getMfaStatus,
463
+ setPreferences: setMfaPreferences,
464
+ startPhoneVerify,
465
+ confirmPhoneVerify,
466
+ totpEnrollStart,
467
+ totpEnrollVerify,
468
+ totpDisable,
469
+ webauthnRegisterOptions,
470
+ webauthnRegisterVerify,
471
+ webauthnAuthOptions,
472
+ webauthnAuthVerify,
473
+ listWebauthnCredentials,
474
+ deleteWebauthnCredential,
475
+ passkeyLoginOptions,
476
+ passkeyLoginVerify
477
+ },
478
+ security: {
479
+ getOverview: getSecurityOverview,
480
+ getLoginActivity: getSecurityLoginActivity,
481
+ getSessions: getSecuritySessions,
482
+ revokeSession: revokeSecuritySession,
483
+ revokeOtherSessions: revokeOtherSecuritySessions
484
+ },
485
+ sso: {
486
+ getDetails: getSsoDetails,
487
+ generateUrl: generateSsoUrl,
488
+ callback: ssoCallback
489
+ },
490
+ session: {
491
+ getRefreshToken,
492
+ refreshAccessToken: getAuthRefreshToken,
493
+ getAccessToken,
494
+ isAuthenticated,
495
+ isAuthenticateApp,
496
+ isAccessTokenExpired,
497
+ isExpiresAccessToken,
498
+ isCookieExpired
499
+ }
500
+ };
501
+
502
+ export { authApi };
503
+ //# sourceMappingURL=chunk-F7B4FHUQ.js.map
504
+ //# sourceMappingURL=chunk-F7B4FHUQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/core/http/login-session.ts","../src/main/features/auth/api/authentication.ts","../src/main/features/auth/api/mfa.ts","../src/main/features/auth/api/security.ts","../src/main/features/auth/api/sso.ts","../src/main/features/auth/api/users.ts","../src/main/api/nested-auth-api.ts"],"names":["actions"],"mappings":"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","file":"chunk-F7B4FHUQ.js","sourcesContent":["import { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from './auth-utils'\nimport { setConfig } from '../utils/hub-context'\nimport { actions as userActions } from '../../state/crm/use-user'\n\n/**\n * Persists a full authenticated session (access + refresh tokens, portal, login details).\n * Use after successful login or MFA verify when `twoFactorRequired` is false.\n */\nexport async function completeLoginSession(response: any): Promise<any> {\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const subscriptionType = loggedInDetails?.subscriptionType || 'BASIC'\n\n const token = tokenData?.token\n const refreshToken = tokenData?.refreshToken\n const expiresIn = tokenData?.expiresIn\n const rExpiresIn = tokenData?.refreshExpiresIn\n\n setPortal(currentPortal)\n setSubscriptionType(subscriptionType)\n await setAccessToken(token, expiresIn)\n await setRefreshToken(refreshToken, rExpiresIn)\n await setLoggedInDetails(response.data)\n userActions.setProfile(response)\n\n setConfig.setDevPortalId(currentPortalId)\n\n return response\n}\n\n/**\n * Applies login/MFA-step response token rules:\n * - MFA pending: temp access JWT only (no refresh until verify completes)\n * - Full session: {@link completeLoginSession}\n */\nexport async function applyLoginResponse(response: any): Promise<any> {\n const data = response?.data ?? response\n if (data?.twoFactorRequired === true) {\n const tokenData: any = data?.tokenData || {}\n const token = tokenData?.token\n const expiresIn = tokenData?.expiresIn\n if (token) {\n await setAccessToken(token, expiresIn)\n }\n return response\n }\n return completeLoginSession(response)\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type {\n LoginPayload,\n MutationOptions,\n PreLoginPayload,\n ForgetPasswordPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload\n} from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\nimport { getParam } from '../../../core/utils/param'\nimport { removeAllCookie } from '../../../core/utils/cookie'\nimport { clearAccessToken } from '../../../core/http/token-store'\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload)\n return response\n }, options)\n\n return {\n mutate,\n preLogin: mutate,\n isLoading\n }\n}\n\n/**\n * Password login for the client portal.\n *\n * **API:** `POST /api/auth/login?hubId={hubId}`\n * **Session:** When `twoFactorRequired` is true, stores only the temp access JWT (no refresh until MFA completes).\n */\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.login(payload)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n login: mutate,\n isLoading\n }\n}\n\nexport interface ClientSessionPayload {\n accessToken: string\n refreshToken?: string\n}\n\n/**\n * Exchange a management/deep-link token for a portal client session.\n *\n * **API:** `POST /api/auth/client-session`\n * **Auth:** Bearer access token header; optional refresh token in body.\n */\nexport function clientSession(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ClientSessionPayload, any>(async (payload?: ClientSessionPayload) => {\n const response: any = await Client.authentication.clientSession(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n clientSession: mutate,\n isLoading\n }\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {}\n const token: any = getParam('token')\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload)\n return response\n }, options)\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading\n }\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {}\n const token: any = getParam('token')\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload)\n return response\n }, options)\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading\n }\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading\n }\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading\n }\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await Client.authentication.logout()\n\n clearAccessToken()\n removeAllCookie()\n\n return response\n }, options)\n\n return {\n mutate,\n logout: mutate,\n isLoading\n }\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload)\n return response\n }, options)\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading\n }\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload)\n return response\n }, options)\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading\n }\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload)\n return response\n }, options)\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\nimport type {\n MfaOtpSendRequest,\n MfaPendingPasskeyOptionsRequest,\n MfaPendingPasskeyVerifyRequest,\n MfaPreferenceRequest,\n MfaStatusQuery,\n MutationOptions,\n PasskeyLoginOptionsRequest,\n PasskeyLoginVerifyRequest,\n PhoneVerifyConfirmRequest,\n PhoneVerifyStartRequest,\n TotpDisableRequest,\n TotpEnrollVerifyRequest,\n TwoFaVerificationRequest,\n WebAuthnVerifyRequest\n} from '../../../core/types'\n\n/**\n * Complete the MFA login step after `api.login()` returned `twoFactorRequired: true`.\n *\n * **API:** `POST /api/auth/verify-otp?hubId={hubId}`\n * **Auth:** Bearer temp JWT; body `{ token, otp, method }` (`EMAIL_OTP` | `SMS_OTP` | `TOTP` | `BACKUP_CODE`).\n * **Session:** On success persists full access + refresh tokens (skips when still MFA-pending).\n */\nexport function verifyOtp(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TwoFaVerificationRequest, any>(async (payload?: TwoFaVerificationRequest) => {\n const response: any = await Client.authentication.verifyOtp(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, verifyOtp: mutate, isLoading }\n}\n\n/**\n * Resend OTP or switch to email/SMS on the MFA login gate.\n *\n * **API:** `POST /api/auth/mfa/pending/otp/send`\n * **Auth:** Bearer temp JWT; body `{ token, method }`.\n */\nexport function sendMfaOtp(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaOtpSendRequest, any>(\n async (payload?: MfaOtpSendRequest) => Client.mfa.sendPendingOtp(payload!),\n options\n )\n\n return { mutate, sendOtp: mutate, sendMfaOtp: mutate, isLoading }\n}\n\n/**\n * Start WebAuthn ceremony for passkey as second factor during login.\n *\n * **API:** `POST /api/auth/mfa/pending/passkey/authenticate/options`\n * **Auth:** Bearer temp JWT; body `{ token, portalId? }`.\n */\nexport function pendingPasskeyOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPendingPasskeyOptionsRequest, any>(\n async (payload?: MfaPendingPasskeyOptionsRequest) => Client.mfa.pendingPasskeyOptions(payload!),\n options\n )\n\n return { mutate, pendingPasskeyOptions: mutate, isLoading }\n}\n\n/**\n * Finish passkey MFA-step and complete login when successful.\n *\n * **API:** `POST /api/auth/mfa/pending/passkey/authenticate/verify?hubId={hubId}`\n * **Auth:** Bearer temp JWT; body `{ token, challengeId, credential, portalId? }`.\n * **Session:** On success persists full access + refresh tokens.\n */\nexport function pendingPasskeyVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPendingPasskeyVerifyRequest, any>(async (payload?: MfaPendingPasskeyVerifyRequest) => {\n const response: any = await Client.mfa.pendingPasskeyVerify(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, pendingPasskeyVerify: mutate, isLoading }\n}\n\n/**\n * MFA enrollment and policy snapshot for the security settings UI.\n *\n * **API:** `GET /api/auth/mfa/status?portalId={portalId}`\n * **Auth:** Bearer access JWT (full session).\n */\nexport function getMfaStatus(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.getStatus(payload), options)\n\n return { mutate, getStatus: mutate, getMfaStatus: mutate, isLoading }\n}\n\n/**\n * Set the user's default MFA method for this hub/portal scope.\n *\n * **API:** `PUT /api/auth/mfa/preferences?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ defaultMethod }`.\n */\nexport function setMfaPreferences(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPreferenceRequest & MfaStatusQuery, any>(\n async (payload?: MfaPreferenceRequest & MfaStatusQuery) => {\n const { portalId, ...data } = payload!\n return Client.mfa.setPreferences(data, { portalId })\n },\n options\n )\n\n return { mutate, setPreferences: mutate, setMfaPreferences: mutate, isLoading }\n}\n\n/**\n * Send OTP to verify the user's phone number (enables SMS OTP at login).\n *\n * **API:** `POST /api/auth/mfa/phone/verify/start`\n * **Auth:** Bearer access JWT; body `{ phone }` (E.164, e.g. `+14155552671`).\n */\nexport function startPhoneVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PhoneVerifyStartRequest, any>(\n async (payload?: PhoneVerifyStartRequest) => Client.mfa.startPhoneVerify(payload!),\n options\n )\n\n return { mutate, startPhoneVerify: mutate, isLoading }\n}\n\n/**\n * Confirm phone verification with the OTP code.\n *\n * **API:** `POST /api/auth/mfa/phone/verify/confirm`\n * **Auth:** Bearer access JWT; body `{ phone, code }`.\n */\nexport function confirmPhoneVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PhoneVerifyConfirmRequest, any>(\n async (payload?: PhoneVerifyConfirmRequest) => Client.mfa.confirmPhoneVerify(payload!),\n options\n )\n\n return { mutate, confirmPhoneVerify: mutate, isLoading }\n}\n\n/**\n * Start TOTP authenticator enrollment for the current portal scope.\n *\n * **API:** `POST /api/auth/mfa/totp/enroll/start?portalId={portalId}`\n * **Auth:** Bearer access JWT. Returns `secret`, `otpauthUri`, `scopeKey`.\n */\nexport function totpEnrollStart(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.totpEnrollStart(payload), options)\n\n return { mutate, totpEnrollStart: mutate, isLoading }\n}\n\n/**\n * Confirm TOTP enrollment and receive one-time backup codes.\n *\n * **API:** `POST /api/auth/mfa/totp/enroll/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ code, portalId? }`.\n */\nexport function totpEnrollVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TotpEnrollVerifyRequest, any>(\n async (payload?: TotpEnrollVerifyRequest) => Client.mfa.totpEnrollVerify(payload!),\n options\n )\n\n return { mutate, totpEnrollVerify: mutate, isLoading }\n}\n\n/**\n * Disable TOTP for the current scope (requires current password).\n *\n * **API:** `POST /api/auth/mfa/totp/disable`\n * **Auth:** Bearer access JWT; body `{ password }`.\n */\nexport function totpDisable(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TotpDisableRequest, any>(\n async (payload?: TotpDisableRequest) => Client.mfa.totpDisable(payload!),\n options\n )\n\n return { mutate, totpDisable: mutate, isLoading }\n}\n\n/**\n * Start passkey (WebAuthn) registration ceremony.\n *\n * **API:** `POST /api/auth/mfa/webauthn/register/options?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function webauthnRegisterOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(\n async (payload) => Client.mfa.webauthnRegisterOptions(payload),\n options\n )\n\n return { mutate, webauthnRegisterOptions: mutate, isLoading }\n}\n\n/**\n * Complete passkey registration after `@simplewebauthn/browser` ceremony.\n *\n * **API:** `POST /api/auth/mfa/webauthn/register/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ challengeId, credential, nickname?, portalId? }`.\n */\nexport function webauthnRegisterVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<WebAuthnVerifyRequest, any>(\n async (payload?: WebAuthnVerifyRequest) => Client.mfa.webauthnRegisterVerify(payload!),\n options\n )\n\n return { mutate, webauthnRegisterVerify: mutate, isLoading }\n}\n\n/**\n * Start passkey authentication ceremony while logged in (re-verify).\n *\n * **API:** `POST /api/auth/mfa/webauthn/authenticate/options?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function webauthnAuthOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.webauthnAuthOptions(payload), options)\n\n return { mutate, webauthnAuthOptions: mutate, isLoading }\n}\n\n/**\n * Complete logged-in passkey re-verification.\n *\n * **API:** `POST /api/auth/mfa/webauthn/authenticate/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ challengeId, credential, portalId? }`.\n */\nexport function webauthnAuthVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<WebAuthnVerifyRequest, any>(\n async (payload?: WebAuthnVerifyRequest) => Client.mfa.webauthnAuthVerify(payload!),\n options\n )\n\n return { mutate, webauthnAuthVerify: mutate, isLoading }\n}\n\n/**\n * List passkeys registered for the portal scope.\n *\n * **API:** `GET /api/auth/mfa/webauthn/credentials?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function listWebauthnCredentials(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(\n async (payload) => Client.mfa.listWebauthnCredentials(payload),\n options\n )\n\n return { mutate, listWebauthnCredentials: mutate, isLoading }\n}\n\n/**\n * Remove a registered passkey.\n *\n * **API:** `DELETE /api/auth/mfa/webauthn/credentials/{credentialRecordId}?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function deleteWebauthnCredential(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<{ credentialRecordId: string | number } & MfaStatusQuery, any>(\n async (payload?: { credentialRecordId: string | number } & MfaStatusQuery) => {\n const { credentialRecordId, portalId } = payload!\n return Client.mfa.deleteWebauthnCredential(credentialRecordId, { portalId })\n },\n options\n )\n\n return { mutate, deleteWebauthnCredential: mutate, isLoading }\n}\n\n/**\n * Start passwordless passkey login (when `PASSKEY_PRIMARY` is allowed).\n *\n * **API:** `POST /api/auth/passkey/login/options?hubId={hubId}`\n * **Auth:** Public; body `{ email, hubId?, portalId? }`.\n */\nexport function passkeyLoginOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PasskeyLoginOptionsRequest, any>(\n async (payload?: PasskeyLoginOptionsRequest) => Client.mfa.passkeyLoginOptions(payload!),\n options\n )\n\n return { mutate, passkeyLoginOptions: mutate, isLoading }\n}\n\n/**\n * Finish passwordless passkey login; may return `twoFactorRequired` if policy requires MFA.\n *\n * **API:** `POST /api/auth/passkey/login/verify?hubId={hubId}`\n * **Auth:** Public; body `{ challengeId, credential, portalId? }`.\n * **Session:** Applies MFA-aware token rules via {@link applyLoginResponse}.\n */\nexport function passkeyLoginVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PasskeyLoginVerifyRequest, any>(async (payload?: PasskeyLoginVerifyRequest) => {\n const response: any = await Client.mfa.passkeyLoginVerify(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, passkeyLoginVerify: mutate, isLoading }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport type {\n MutationOptions,\n RevokeSecuritySessionPayload,\n SecurityLoginActivityQuery,\n SecurityOverviewQuery,\n SecuritySessionsQuery\n} from '../../../core/types'\n\n/**\n * Security settings overview (password age, MFA methods, policy flags).\n * Use this for the Security page — not `api.me()` + `api.getMfaStatus()`.\n *\n * **API:** `GET /api/auth/security/overview?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function getSecurityOverview(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecurityOverviewQuery | undefined, any>(\n async (payload) => Client.security.getOverview(payload),\n options\n )\n\n return { mutate, getOverview: mutate, getSecurityOverview: mutate, isLoading }\n}\n\n/**\n * Paginated login activity for the Security page.\n *\n * **API:** `GET /api/auth/security/login-activity?page=&limit=&sort=`\n * **Auth:** Bearer access JWT.\n */\nexport function getSecurityLoginActivity(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecurityLoginActivityQuery | undefined, any>(\n async (payload) => Client.security.getLoginActivity(payload),\n options\n )\n\n return { mutate, getLoginActivity: mutate, getSecurityLoginActivity: mutate, isLoading }\n}\n\n/**\n * List active sessions (refresh-token families) for the Security page.\n *\n * **API:** `GET /api/auth/security/sessions?currentFamilyId=`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload → `X-Refresh-Token` header to mark current session.\n */\nexport function getSecuritySessions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecuritySessionsQuery | undefined, any>(\n async (payload) => Client.security.getSessions(payload),\n options\n )\n\n return { mutate, getSessions: mutate, getSecuritySessions: mutate, isLoading }\n}\n\n/**\n * Sign out a single device/session by `familyId`.\n *\n * **API:** `POST /api/auth/security/sessions/{familyId}/revoke`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload.\n */\nexport function revokeSecuritySession(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<RevokeSecuritySessionPayload, any>(\n async (payload?: RevokeSecuritySessionPayload) => Client.security.revokeSession(payload!),\n options\n )\n\n return { mutate, revokeSession: mutate, revokeSecuritySession: mutate, isLoading }\n}\n\n/**\n * Sign out all other devices; keeps the current session when `refreshToken` is provided.\n *\n * **API:** `POST /api/auth/security/sessions/revoke-others`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload → `X-Refresh-Token` header.\n */\nexport function revokeOtherSecuritySessions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<{ refreshToken?: string } | undefined, any>(\n async (payload) => Client.security.revokeOtherSessions(payload?.refreshToken),\n options\n )\n\n return { mutate, revokeOtherSessions: mutate, revokeOtherSecuritySessions: mutate, isLoading }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions, PreLoginPayload } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await Client.sso.getSsoDetails()\n return response\n }, options)\n\n return {\n mutate,\n getDetails: mutate,\n getSsoDetails: mutate,\n isLoading\n }\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload)\n return response\n }, options)\n\n return {\n mutate,\n generateUrl: mutate,\n generateSsoUrl: mutate,\n isLoading\n }\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n callback: mutate,\n ssoCallback: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { ChangePasswordPayload, MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as userActions } from '../../../state/crm/use-user'\n\nlet meRequestInFlight: Promise<any> | null = null\n\nasync function fetchMeOnce() {\n if (!meRequestInFlight) {\n meRequestInFlight = Client.user.me().finally(() => {\n meRequestInFlight = null\n })\n }\n return meRequestInFlight\n}\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await fetchMeOnce()\n userActions.setProfile(response)\n return response?.data\n }, options)\n\n return {\n mutate,\n me: mutate,\n isLoading\n }\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod)\n return response\n }, options)\n\n return {\n mutate,\n profile: mutate,\n isLoading\n }\n}\n\nexport function profileUpdate(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async (paylaod: any) => {\n const response: any = await Client.user.profileUpdate(paylaod)\n return response\n }, options)\n\n return {\n mutate,\n updateProfile: mutate,\n profileUpdate: mutate,\n isLoading\n }\n}\n\n/** @deprecated Use {@link profileUpdate} — same factory; 3.0 nested key is `updateProfile`. */\nexport const updateProfile = profileUpdate\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.user.changePassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n changePassword: mutate,\n isLoading\n }\n}\n","import {\n preLogin,\n login,\n clientSession,\n verifyEmail,\n forgetPassword,\n logout,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail\n} from '../features/auth/api/authentication'\nimport {\n verifyOtp,\n sendMfaOtp,\n pendingPasskeyOptions,\n pendingPasskeyVerify,\n getMfaStatus,\n setMfaPreferences,\n startPhoneVerify,\n confirmPhoneVerify,\n totpEnrollStart,\n totpEnrollVerify,\n totpDisable,\n webauthnRegisterOptions,\n webauthnRegisterVerify,\n webauthnAuthOptions,\n webauthnAuthVerify,\n listWebauthnCredentials,\n deleteWebauthnCredential,\n passkeyLoginOptions,\n passkeyLoginVerify\n} from '../features/auth/api/mfa'\nimport {\n getSecurityOverview,\n getSecurityLoginActivity,\n getSecuritySessions,\n revokeSecuritySession,\n revokeOtherSecuritySessions\n} from '../features/auth/api/security'\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from '../features/auth/api/sso'\nimport { changePassword, me, profile, profileUpdate } from '../features/auth/api/users'\nimport { getRefreshToken } from '../core/http/auth-utils'\nimport { getAuthRefreshToken } from '../core/http/http-client'\nimport { getAccessToken, isAuthenticateApp, isAuthenticated, isExpiresAccessToken, isAccessTokenExpired } from '../core/http/token-store'\nimport { isCookieExpired } from '../core/utils/cookie'\n\n/** Canonical nested auth API (SDK 3.0). */\nexport const authApi = {\n preLogin,\n login,\n clientSession,\n logout,\n verifyEmail,\n registerExistingUser,\n forgetPassword,\n resetPassword,\n resetPasswordVerifyToken,\n verifyEmailResend,\n resendEmail,\n changePassword,\n me,\n profile,\n updateProfile: profileUpdate,\n mfa: {\n verifyOtp,\n sendOtp: sendMfaOtp,\n pendingPasskeyOptions,\n pendingPasskeyVerify,\n getStatus: getMfaStatus,\n setPreferences: setMfaPreferences,\n startPhoneVerify,\n confirmPhoneVerify,\n totpEnrollStart,\n totpEnrollVerify,\n totpDisable,\n webauthnRegisterOptions,\n webauthnRegisterVerify,\n webauthnAuthOptions,\n webauthnAuthVerify,\n listWebauthnCredentials,\n deleteWebauthnCredential,\n passkeyLoginOptions,\n passkeyLoginVerify\n },\n security: {\n getOverview: getSecurityOverview,\n getLoginActivity: getSecurityLoginActivity,\n getSessions: getSecuritySessions,\n revokeSession: revokeSecuritySession,\n revokeOtherSessions: revokeOtherSecuritySessions\n },\n sso: {\n getDetails: getSsoDetails,\n generateUrl: generateSsoUrl,\n callback: ssoCallback\n },\n session: {\n getRefreshToken,\n refreshAccessToken: getAuthRefreshToken,\n getAccessToken,\n isAuthenticated,\n isAuthenticateApp,\n isAccessTokenExpired,\n isExpiresAccessToken,\n isCookieExpired\n }\n}\n"]}
@@ -0,0 +1,68 @@
1
+ import { p as preLogin, l as login, c as clientSession, a as logout, v as verifyEmail, r as registerExistingUser, f as forgetPassword, b as resetPassword, d as resetPasswordVerifyToken, e as verifyEmailResend, g as resendEmail, h as changePassword, m as me, i as profile, j as profileUpdate, k as verifyOtp, s as sendMfaOtp, n as pendingPasskeyOptions, o as pendingPasskeyVerify, q as getMfaStatus, t as setMfaPreferences, u as startPhoneVerify, w as confirmPhoneVerify, x as totpEnrollStart, y as totpEnrollVerify, z as totpDisable, A as webauthnRegisterOptions, B as webauthnRegisterVerify, C as webauthnAuthOptions, D as webauthnAuthVerify, E as listWebauthnCredentials, F as deleteWebauthnCredential, G as passkeyLoginOptions, H as passkeyLoginVerify, I as getSecurityOverview, J as getSecurityLoginActivity, K as getSecuritySessions, L as revokeSecuritySession, M as revokeOtherSecuritySessions, N as getSsoDetails, O as generateSsoUrl, P as ssoCallback, Q as getRefreshToken, R as getAuthRefreshToken, S as getAccessToken, T as isAuthenticated, U as isAuthenticateApp, V as isAccessTokenExpired, W as isExpiresAccessToken } from '../authentication-BfYhAeMs.js';
2
+ export { ad as ActiveSession, ae as HttpClientConfig, ag as LoginHistoryRow, ah as LoginResponseData, ai as MfaEnrollmentStatus, aj as MfaMethod, ak as MfaMethodOption, al as PaginationResponse, am as SecurityOverview, Y as TwoFaVerificationRequest, ao as getFieldErrors, ap as getFormErrors, aq as initializeHttpClient } from '../authentication-BfYhAeMs.js';
3
+ export { C as ChangePasswordPayload, F as ForgetPasswordPayload, L as LoginPayload, P as PreLoginPayload, a as ResetPasswordPayload, R as ResetPasswordVerifyTokenPayload, V as VerifyEmailPayload } from '../index-CCwMopD8.js';
4
+
5
+ declare const api: {
6
+ auth: {
7
+ preLogin: typeof preLogin;
8
+ login: typeof login;
9
+ clientSession: typeof clientSession;
10
+ logout: typeof logout;
11
+ verifyEmail: typeof verifyEmail;
12
+ registerExistingUser: typeof registerExistingUser;
13
+ forgetPassword: typeof forgetPassword;
14
+ resetPassword: typeof resetPassword;
15
+ resetPasswordVerifyToken: typeof resetPasswordVerifyToken;
16
+ verifyEmailResend: typeof verifyEmailResend;
17
+ resendEmail: typeof resendEmail;
18
+ changePassword: typeof changePassword;
19
+ me: typeof me;
20
+ profile: typeof profile;
21
+ updateProfile: typeof profileUpdate;
22
+ mfa: {
23
+ verifyOtp: typeof verifyOtp;
24
+ sendOtp: typeof sendMfaOtp;
25
+ pendingPasskeyOptions: typeof pendingPasskeyOptions;
26
+ pendingPasskeyVerify: typeof pendingPasskeyVerify;
27
+ getStatus: typeof getMfaStatus;
28
+ setPreferences: typeof setMfaPreferences;
29
+ startPhoneVerify: typeof startPhoneVerify;
30
+ confirmPhoneVerify: typeof confirmPhoneVerify;
31
+ totpEnrollStart: typeof totpEnrollStart;
32
+ totpEnrollVerify: typeof totpEnrollVerify;
33
+ totpDisable: typeof totpDisable;
34
+ webauthnRegisterOptions: typeof webauthnRegisterOptions;
35
+ webauthnRegisterVerify: typeof webauthnRegisterVerify;
36
+ webauthnAuthOptions: typeof webauthnAuthOptions;
37
+ webauthnAuthVerify: typeof webauthnAuthVerify;
38
+ listWebauthnCredentials: typeof listWebauthnCredentials;
39
+ deleteWebauthnCredential: typeof deleteWebauthnCredential;
40
+ passkeyLoginOptions: typeof passkeyLoginOptions;
41
+ passkeyLoginVerify: typeof passkeyLoginVerify;
42
+ };
43
+ security: {
44
+ getOverview: typeof getSecurityOverview;
45
+ getLoginActivity: typeof getSecurityLoginActivity;
46
+ getSessions: typeof getSecuritySessions;
47
+ revokeSession: typeof revokeSecuritySession;
48
+ revokeOtherSessions: typeof revokeOtherSecuritySessions;
49
+ };
50
+ sso: {
51
+ getDetails: typeof getSsoDetails;
52
+ generateUrl: typeof generateSsoUrl;
53
+ callback: typeof ssoCallback;
54
+ };
55
+ session: {
56
+ getRefreshToken: typeof getRefreshToken;
57
+ refreshAccessToken: typeof getAuthRefreshToken;
58
+ getAccessToken: typeof getAccessToken;
59
+ isAuthenticated: typeof isAuthenticated;
60
+ isAuthenticateApp: typeof isAuthenticateApp;
61
+ isAccessTokenExpired: typeof isAccessTokenExpired;
62
+ isExpiresAccessToken: typeof isExpiresAccessToken;
63
+ isCookieExpired: (key: string) => boolean;
64
+ };
65
+ };
66
+ };
67
+
68
+ export { api };