@23blocks/block-authentication 3.0.3 → 3.1.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 (32) hide show
  1. package/dist/index.esm.js +721 -7
  2. package/dist/src/index.d.ts +2 -2
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/lib/authentication.block.d.ts +20 -0
  5. package/dist/src/lib/authentication.block.d.ts.map +1 -1
  6. package/dist/src/lib/services/auth.service.d.ts +22 -2
  7. package/dist/src/lib/services/auth.service.d.ts.map +1 -1
  8. package/dist/src/lib/services/avatars.service.d.ts +45 -0
  9. package/dist/src/lib/services/avatars.service.d.ts.map +1 -0
  10. package/dist/src/lib/services/index.d.ts +4 -0
  11. package/dist/src/lib/services/index.d.ts.map +1 -1
  12. package/dist/src/lib/services/mfa.service.d.ts +32 -0
  13. package/dist/src/lib/services/mfa.service.d.ts.map +1 -0
  14. package/dist/src/lib/services/oauth.service.d.ts +59 -0
  15. package/dist/src/lib/services/oauth.service.d.ts.map +1 -0
  16. package/dist/src/lib/services/tenants.service.d.ts +41 -0
  17. package/dist/src/lib/services/tenants.service.d.ts.map +1 -0
  18. package/dist/src/lib/services/users.service.d.ts +41 -1
  19. package/dist/src/lib/services/users.service.d.ts.map +1 -1
  20. package/dist/src/lib/types/auth.d.ts +44 -0
  21. package/dist/src/lib/types/auth.d.ts.map +1 -1
  22. package/dist/src/lib/types/index.d.ts +5 -1
  23. package/dist/src/lib/types/index.d.ts.map +1 -1
  24. package/dist/src/lib/types/mfa.d.ts +52 -0
  25. package/dist/src/lib/types/mfa.d.ts.map +1 -0
  26. package/dist/src/lib/types/oauth.d.ts +105 -0
  27. package/dist/src/lib/types/oauth.d.ts.map +1 -0
  28. package/dist/src/lib/types/tenant.d.ts +84 -0
  29. package/dist/src/lib/types/tenant.d.ts.map +1 -0
  30. package/dist/src/lib/types/user-extended.d.ts +226 -0
  31. package/dist/src/lib/types/user-extended.d.ts.map +1 -0
  32. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -861,7 +861,7 @@ import { _ } from '@swc/helpers/_/_extends';
861
861
  };
862
862
  /**
863
863
  * Mapper for TenantUser resources (not a standard REST resource)
864
- */ const tenantUserMapper = {
864
+ */ const tenantUserMapper$1 = {
865
865
  type: 'tenant_users',
866
866
  map (resource, _included) {
867
867
  var _resource_attributes;
@@ -1071,14 +1071,162 @@ import { _ } from '@swc/helpers/_/_extends';
1071
1071
  });
1072
1072
  return decodeOne(response, userMapper);
1073
1073
  },
1074
- async resendConfirmation (email) {
1075
- await transport.post('/auth/confirmation', {
1076
- email
1074
+ async resendConfirmation (request) {
1075
+ await transport.post('/users/reconfirm', {
1076
+ confirm_success_url: request.confirmSuccessUrl,
1077
+ user: {
1078
+ email: request.email
1079
+ }
1080
+ });
1081
+ },
1082
+ async validateEmail (request) {
1083
+ const response = await transport.post('/users/validate-email', {
1084
+ email: request.email
1077
1085
  });
1086
+ const attrs = response.data.attributes;
1087
+ return {
1088
+ email: attrs.email,
1089
+ exists: attrs.exists,
1090
+ maskedEmail: attrs.masked_email,
1091
+ wellFormed: attrs.well_formed,
1092
+ canRecover: attrs.can_recover,
1093
+ accountStatus: attrs.account_status
1094
+ };
1095
+ },
1096
+ async validateDocument (request) {
1097
+ const response = await transport.post('/users/validate-document', {
1098
+ document_type: request.documentType,
1099
+ document_number: request.documentNumber
1100
+ });
1101
+ const attrs = response.data.attributes;
1102
+ return {
1103
+ documentType: attrs.document_type,
1104
+ documentNumber: attrs.document_number,
1105
+ exists: attrs.exists,
1106
+ maskedEmail: attrs.masked_email,
1107
+ maskedDocument: attrs.masked_document,
1108
+ canRecover: attrs.can_recover,
1109
+ accountStatus: attrs.account_status
1110
+ };
1111
+ },
1112
+ async resendInvitation (request) {
1113
+ const response = await transport.post('/auth/invitation/resend', {
1114
+ invitation: {
1115
+ email: request.email,
1116
+ appid: request.appid,
1117
+ accept_invitation_url: request.acceptInvitationUrl
1118
+ }
1119
+ });
1120
+ return decodeOne(response, userMapper);
1121
+ },
1122
+ async requestAccountRecovery (request) {
1123
+ const response = await transport.post('/users/recover', {
1124
+ email: request.email,
1125
+ recovery_url: request.recoveryUrl
1126
+ });
1127
+ return {
1128
+ success: response.data.attributes.success,
1129
+ message: response.data.attributes.message
1130
+ };
1131
+ },
1132
+ async completeAccountRecovery (request) {
1133
+ const response = await transport.put('/users/recover', {
1134
+ recovery_token: request.recoveryToken,
1135
+ password: request.password,
1136
+ password_confirmation: request.passwordConfirmation
1137
+ });
1138
+ return decodeOne(response, userMapper);
1078
1139
  }
1079
1140
  };
1080
1141
  }
1081
1142
 
1143
+ // Profile mapper
1144
+ const profileMapper = {
1145
+ type: 'user_profile',
1146
+ map: (data)=>{
1147
+ var _data_id, _data_unique_id, _data_user_id, _data_user_unique_id;
1148
+ return {
1149
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
1150
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
1151
+ userId: String((_data_user_id = data['user_id']) != null ? _data_user_id : ''),
1152
+ userUniqueId: String((_data_user_unique_id = data['user_unique_id']) != null ? _data_user_unique_id : ''),
1153
+ firstName: data['first_name'],
1154
+ middleName: data['middle_name'],
1155
+ lastName: data['last_name'],
1156
+ gender: data['gender'],
1157
+ ethnicity: data['ethnicity'],
1158
+ zipcode: data['zipcode'],
1159
+ maritalStatus: data['marital_status'],
1160
+ birthdate: data['birthdate'],
1161
+ hhi: data['hhi'],
1162
+ children: data['children'],
1163
+ source: data['source'],
1164
+ email: data['email'],
1165
+ phoneNumber: data['phone_number'],
1166
+ preferredDevice: data['preferred_device'],
1167
+ preferredLanguage: data['preferred_language'],
1168
+ webSite: data['web_site'],
1169
+ twitter: data['twitter'],
1170
+ fb: data['fb'],
1171
+ instagram: data['instagram'],
1172
+ linkedin: data['linkedin'],
1173
+ youtube: data['youtube'],
1174
+ blog: data['blog'],
1175
+ networkA: data['network_a'],
1176
+ networkB: data['network_b'],
1177
+ timeZone: data['time_zone'],
1178
+ payload: data['payload'],
1179
+ status: data['status'],
1180
+ createdAt: data['created_at'],
1181
+ updatedAt: data['updated_at']
1182
+ };
1183
+ }
1184
+ };
1185
+ // Device mapper
1186
+ const deviceMapper = {
1187
+ type: 'user_device',
1188
+ map: (data)=>{
1189
+ var _data_id, _data_unique_id, _data_user_id, _data_user_unique_id;
1190
+ return {
1191
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
1192
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
1193
+ userId: String((_data_user_id = data['user_id']) != null ? _data_user_id : ''),
1194
+ userUniqueId: String((_data_user_unique_id = data['user_unique_id']) != null ? _data_user_unique_id : ''),
1195
+ deviceType: data['device_type'],
1196
+ pushId: data['push_id'],
1197
+ osType: data['os_type'],
1198
+ defaultDevice: data['default_device'],
1199
+ locationEnabled: data['location_enabled'],
1200
+ notificationsEnabled: data['notifications_enabled'],
1201
+ status: data['status'],
1202
+ enabled: data['enabled'],
1203
+ createdAt: data['created_at'],
1204
+ updatedAt: data['updated_at']
1205
+ };
1206
+ }
1207
+ };
1208
+ // Subscription mapper
1209
+ const subscriptionMapper = {
1210
+ type: 'user_subscription',
1211
+ map: (data)=>{
1212
+ var _data_id, _data_unique_id;
1213
+ return {
1214
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
1215
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
1216
+ userId: data['user_id'],
1217
+ userUniqueId: data['user_unique_id'],
1218
+ subscriptionModelId: data['subscription_model_id'],
1219
+ code: data['code'],
1220
+ programCode: data['program_code'],
1221
+ status: data['status'],
1222
+ recurringPaymentFees: data['recurring_payment_fees'],
1223
+ recurringPaymentAmount: data['recurring_payment_amount'],
1224
+ payload: data['payload'],
1225
+ createdAt: data['created_at'],
1226
+ updatedAt: data['updated_at']
1227
+ };
1228
+ }
1229
+ };
1082
1230
  /**
1083
1231
  * Build filter params for list operations
1084
1232
  */ function buildListParams$4(params) {
@@ -1196,6 +1344,119 @@ import { _ } from '@swc/helpers/_/_extends';
1196
1344
  params: queryParams
1197
1345
  });
1198
1346
  return decodePageResult(response, userMapper);
1347
+ },
1348
+ async searchAdvanced (request, params) {
1349
+ const queryParams = {};
1350
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1351
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1352
+ const response = await transport.post('/users/search', {
1353
+ search: {
1354
+ search_by: request.searchBy,
1355
+ payload: request.payload,
1356
+ order_by: request.orderBy
1357
+ }
1358
+ }, {
1359
+ params: queryParams
1360
+ });
1361
+ return decodePageResult(response, userMapper);
1362
+ },
1363
+ async getProfile (userUniqueId) {
1364
+ const response = await transport.get(`/users/${userUniqueId}/profile`);
1365
+ return decodeOne(response, profileMapper);
1366
+ },
1367
+ async createProfile (request) {
1368
+ const payload = typeof request.payload === 'string' ? request.payload : JSON.stringify(request.payload);
1369
+ const response = await transport.post('/users/profile', {
1370
+ profile: {
1371
+ first_name: request.firstName,
1372
+ middle_name: request.middleName,
1373
+ last_name: request.lastName,
1374
+ gender: request.gender,
1375
+ ethnicity: request.ethnicity,
1376
+ zipcode: request.zipcode,
1377
+ marital_status: request.maritalStatus,
1378
+ birthdate: request.birthdate,
1379
+ hhi: request.hhi,
1380
+ children: request.children,
1381
+ source: request.source,
1382
+ email: request.email,
1383
+ phone_number: request.phoneNumber,
1384
+ preferred_device: request.preferredDevice,
1385
+ preferred_language: request.preferredLanguage,
1386
+ web_site: request.webSite,
1387
+ twitter: request.twitter,
1388
+ fb: request.fb,
1389
+ instagram: request.instagram,
1390
+ linkedin: request.linkedin,
1391
+ youtube: request.youtube,
1392
+ blog: request.blog,
1393
+ network_a: request.networkA,
1394
+ network_b: request.networkB,
1395
+ time_zone: request.timeZone,
1396
+ payload: payload
1397
+ }
1398
+ });
1399
+ return decodeOne(response, profileMapper);
1400
+ },
1401
+ async updateEmail (userUniqueId, request) {
1402
+ const response = await transport.put(`/users/${userUniqueId}/email`, {
1403
+ user: {
1404
+ email: request.email,
1405
+ password: request.password,
1406
+ confirm_success_url: request.confirmSuccessUrl
1407
+ }
1408
+ });
1409
+ return decodeOne(response, userMapper);
1410
+ },
1411
+ async getDevices (userUniqueId, params) {
1412
+ const queryParams = {};
1413
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1414
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1415
+ const response = await transport.get(`/users/${userUniqueId}/devices`, {
1416
+ params: queryParams
1417
+ });
1418
+ return decodePageResult(response, deviceMapper);
1419
+ },
1420
+ async addDevice (request) {
1421
+ const response = await transport.post('/users/device', {
1422
+ device: {
1423
+ unique_id: request.uniqueId,
1424
+ device_type: request.deviceType,
1425
+ push_id: request.pushId,
1426
+ os_type: request.osType,
1427
+ default_device: request.defaultDevice,
1428
+ location_enabled: request.locationEnabled,
1429
+ notifications_enabled: request.notificationsEnabled
1430
+ }
1431
+ });
1432
+ return decodeOne(response, deviceMapper);
1433
+ },
1434
+ async getCompanies (userUniqueId) {
1435
+ const response = await transport.get(`/users/${userUniqueId}/companies`);
1436
+ return (response.data || []).map((item)=>companyMapper.map(item));
1437
+ },
1438
+ async addSubscription (userUniqueId, request) {
1439
+ const payload = typeof request.payload === 'string' ? request.payload : JSON.stringify(request.payload);
1440
+ const response = await transport.post(`/users/${userUniqueId}/subscription`, {
1441
+ subscription: {
1442
+ subscription_unique_id: request.subscriptionUniqueId,
1443
+ payload: payload
1444
+ }
1445
+ });
1446
+ return decodeOne(response, subscriptionMapper);
1447
+ },
1448
+ async updateSubscription (userUniqueId, request) {
1449
+ const payload = typeof request.payload === 'string' ? request.payload : JSON.stringify(request.payload);
1450
+ const response = await transport.put(`/users/${userUniqueId}/subscription`, {
1451
+ subscription: {
1452
+ subscription_unique_id: request.subscriptionUniqueId,
1453
+ payload: payload
1454
+ }
1455
+ });
1456
+ return decodeOne(response, subscriptionMapper);
1457
+ },
1458
+ async resendConfirmationByUniqueId (userUniqueId) {
1459
+ await transport.post(`/users/${userUniqueId}/confirmation`, {});
1199
1460
  }
1200
1461
  };
1201
1462
  }
@@ -1990,17 +2251,17 @@ import { _ } from '@swc/helpers/_/_extends';
1990
2251
  return {
1991
2252
  async current () {
1992
2253
  const response = await transport.get('/tenant_users/current');
1993
- return decodeOne(response, tenantUserMapper);
2254
+ return decodeOne(response, tenantUserMapper$1);
1994
2255
  },
1995
2256
  async get (userUniqueId) {
1996
2257
  const response = await transport.get(`/tenant_users/${userUniqueId}`);
1997
- return decodeOne(response, tenantUserMapper);
2258
+ return decodeOne(response, tenantUserMapper$1);
1998
2259
  },
1999
2260
  async list (params) {
2000
2261
  const response = await transport.get('/tenant_users', {
2001
2262
  params: buildListParams(params)
2002
2263
  });
2003
- return decodeMany(response, tenantUserMapper);
2264
+ return decodeMany(response, tenantUserMapper$1);
2004
2265
  }
2005
2266
  };
2006
2267
  }
@@ -2042,6 +2303,455 @@ import { _ } from '@swc/helpers/_/_extends';
2042
2303
  };
2043
2304
  }
2044
2305
 
2306
+ /**
2307
+ * Create the MFA service
2308
+ */ function createMfaService(transport) {
2309
+ return {
2310
+ async setup (userUniqueId, regenerate) {
2311
+ const response = await transport.post(`/users/${userUniqueId}/mfa/setup`, {
2312
+ regenerate: regenerate ? 'true' : undefined
2313
+ });
2314
+ const attrs = response.data.attributes;
2315
+ return {
2316
+ secret: attrs.secret,
2317
+ qrCodeUri: attrs.qr_code_uri,
2318
+ backupCodes: attrs.backup_codes,
2319
+ testCode: attrs.test_code
2320
+ };
2321
+ },
2322
+ async enable (userUniqueId, request) {
2323
+ const response = await transport.post(`/users/${userUniqueId}/mfa/enable`, {
2324
+ totp_code: request.totpCode
2325
+ });
2326
+ return {
2327
+ enabled: response.data.attributes.enabled,
2328
+ message: response.data.attributes.message
2329
+ };
2330
+ },
2331
+ async disable (userUniqueId, request) {
2332
+ const response = await transport.post(`/users/${userUniqueId}/mfa/disable`, {
2333
+ password: request.password
2334
+ });
2335
+ return {
2336
+ enabled: response.data.attributes.enabled,
2337
+ message: response.data.attributes.message
2338
+ };
2339
+ },
2340
+ async verify (userUniqueId, request) {
2341
+ const response = await transport.post(`/users/${userUniqueId}/mfa/verify`, {
2342
+ code: request.code,
2343
+ backup_code: request.backupCode
2344
+ });
2345
+ return {
2346
+ valid: response.data.attributes.valid,
2347
+ message: response.data.attributes.message
2348
+ };
2349
+ },
2350
+ async status (userUniqueId) {
2351
+ const response = await transport.get(`/users/${userUniqueId}/mfa/status`);
2352
+ return {
2353
+ enabled: response.data.attributes.enabled,
2354
+ setupRequired: response.data.attributes.setup_required,
2355
+ backupCodesRemaining: response.data.attributes.backup_codes_remaining,
2356
+ lastUsedAt: response.data.attributes.last_used_at
2357
+ };
2358
+ }
2359
+ };
2360
+ }
2361
+
2362
+ /**
2363
+ * Create the OAuth service
2364
+ */ function createOAuthService(transport) {
2365
+ return {
2366
+ async facebookLogin (request) {
2367
+ var _response_meta_auth, _response_meta, _response_meta_auth1, _response_meta1, _response_meta_auth2, _response_meta2;
2368
+ const response = await transport.post('/auth/facebook', {
2369
+ token: request.token,
2370
+ subscription: request.subscription,
2371
+ role_id: request.roleId
2372
+ });
2373
+ const user = decodeOne(response, userMapper);
2374
+ var _response_meta_auth_access_token;
2375
+ return {
2376
+ user,
2377
+ accessToken: (_response_meta_auth_access_token = (_response_meta = response.meta) == null ? void 0 : (_response_meta_auth = _response_meta.auth) == null ? void 0 : _response_meta_auth.access_token) != null ? _response_meta_auth_access_token : '',
2378
+ refreshToken: (_response_meta1 = response.meta) == null ? void 0 : (_response_meta_auth1 = _response_meta1.auth) == null ? void 0 : _response_meta_auth1.refresh_token,
2379
+ tokenType: 'Bearer',
2380
+ expiresIn: (_response_meta2 = response.meta) == null ? void 0 : (_response_meta_auth2 = _response_meta2.auth) == null ? void 0 : _response_meta_auth2.expires_in
2381
+ };
2382
+ },
2383
+ async googleLogin (request) {
2384
+ var _response_meta_auth, _response_meta, _response_meta_auth1, _response_meta1, _response_meta_auth2, _response_meta2;
2385
+ const response = await transport.post('/auth/google', {
2386
+ token: request.token,
2387
+ subscription: request.subscription,
2388
+ role_id: request.roleId
2389
+ });
2390
+ const user = decodeOne(response, userMapper);
2391
+ var _response_meta_auth_access_token;
2392
+ return {
2393
+ user,
2394
+ accessToken: (_response_meta_auth_access_token = (_response_meta = response.meta) == null ? void 0 : (_response_meta_auth = _response_meta.auth) == null ? void 0 : _response_meta_auth.access_token) != null ? _response_meta_auth_access_token : '',
2395
+ refreshToken: (_response_meta1 = response.meta) == null ? void 0 : (_response_meta_auth1 = _response_meta1.auth) == null ? void 0 : _response_meta_auth1.refresh_token,
2396
+ tokenType: 'Bearer',
2397
+ expiresIn: (_response_meta2 = response.meta) == null ? void 0 : (_response_meta_auth2 = _response_meta2.auth) == null ? void 0 : _response_meta_auth2.expires_in
2398
+ };
2399
+ },
2400
+ async tenantLogin (request) {
2401
+ var _response_meta_auth, _response_meta, _response_meta_auth1, _response_meta1, _response_meta_auth2, _response_meta2;
2402
+ const response = await transport.post('/auth/tenant/login', {
2403
+ email: request.email,
2404
+ password: request.password
2405
+ });
2406
+ const user = decodeOne(response, userMapper);
2407
+ var _response_meta_auth_access_token;
2408
+ return {
2409
+ user,
2410
+ accessToken: (_response_meta_auth_access_token = (_response_meta = response.meta) == null ? void 0 : (_response_meta_auth = _response_meta.auth) == null ? void 0 : _response_meta_auth.access_token) != null ? _response_meta_auth_access_token : '',
2411
+ refreshToken: (_response_meta1 = response.meta) == null ? void 0 : (_response_meta_auth1 = _response_meta1.auth) == null ? void 0 : _response_meta_auth1.refresh_token,
2412
+ tokenType: 'Bearer',
2413
+ expiresIn: (_response_meta2 = response.meta) == null ? void 0 : (_response_meta_auth2 = _response_meta2.auth) == null ? void 0 : _response_meta_auth2.expires_in
2414
+ };
2415
+ },
2416
+ async introspectToken (token) {
2417
+ const response = await transport.post('/auth/introspect', token ? {
2418
+ token
2419
+ } : {});
2420
+ return {
2421
+ active: response.active,
2422
+ userUniqueId: response.user_unique_id,
2423
+ userRoleId: response.user_role_id,
2424
+ companyId: response.company_id,
2425
+ scopes: response.scopes,
2426
+ expiresAt: response.expires_at,
2427
+ issuedAt: response.issued_at,
2428
+ issuer: response.issuer,
2429
+ appId: response.app_id,
2430
+ appName: response.app_name,
2431
+ error: response.error
2432
+ };
2433
+ },
2434
+ async refreshToken (refreshToken) {
2435
+ const response = await transport.post('/oauth/token/refresh', {
2436
+ refresh_token: refreshToken
2437
+ });
2438
+ return {
2439
+ accessToken: response.access_token,
2440
+ refreshToken: response.refresh_token,
2441
+ tokenType: response.token_type,
2442
+ expiresIn: response.expires_in
2443
+ };
2444
+ },
2445
+ async revokeToken (request) {
2446
+ const response = await transport.post('/oauth/token/revoke', {
2447
+ token: request.token,
2448
+ token_type_hint: request.tokenTypeHint
2449
+ });
2450
+ return {
2451
+ revoked: response.revoked,
2452
+ message: response.message,
2453
+ revokedAt: response.revoked_at
2454
+ };
2455
+ },
2456
+ async revokeAllTokens (request) {
2457
+ const response = await transport.post('/oauth/token/revoke_all', {
2458
+ user_unique_id: request.userUniqueId,
2459
+ device_id: request.deviceId
2460
+ });
2461
+ return {
2462
+ revoked: response.revoked,
2463
+ message: response.message,
2464
+ revokedAt: response.revoked_at
2465
+ };
2466
+ },
2467
+ async createTenantContext (request) {
2468
+ const response = await transport.post('/auth/tenant-context', {
2469
+ tenant_context: {
2470
+ company_url_id: request.companyUrlId,
2471
+ company_id: request.companyId,
2472
+ switch_reason: request.switchReason
2473
+ }
2474
+ });
2475
+ const attrs = response.data.attributes;
2476
+ return {
2477
+ tenantContextToken: attrs.tenant_context_token,
2478
+ expiresIn: attrs.expires_in,
2479
+ expiresAt: attrs.expires_at,
2480
+ tenantInfo: {
2481
+ companyId: attrs.tenant_info.company_id,
2482
+ companyName: attrs.tenant_info.company_name,
2483
+ companyUrlId: attrs.tenant_info.company_url_id,
2484
+ roleId: attrs.tenant_info.role_id,
2485
+ roleName: attrs.tenant_info.role_name,
2486
+ permissions: attrs.tenant_info.permissions,
2487
+ schemaName: attrs.tenant_info.schema_name
2488
+ },
2489
+ auditId: attrs.audit_id
2490
+ };
2491
+ },
2492
+ async revokeTenantContext (request) {
2493
+ const response = await transport.post('/auth/tenant-context/revoke', {
2494
+ tenant_context: {
2495
+ tenant_context_token_id: request.tenantContextTokenId
2496
+ }
2497
+ });
2498
+ return response;
2499
+ },
2500
+ async getTenantContextAudit () {
2501
+ const response = await transport.get('/auth/tenant-context/audit');
2502
+ return response.data.map((item)=>({
2503
+ id: item.id,
2504
+ companyName: item.attributes.company_name,
2505
+ companyUrlId: item.attributes.company_url_id,
2506
+ switchReason: item.attributes.switch_reason,
2507
+ createdAt: item.attributes.created_at,
2508
+ expiresAt: item.attributes.expires_at,
2509
+ revoked: item.attributes.revoked,
2510
+ revokedAt: item.attributes.revoked_at,
2511
+ ipAddress: item.attributes.ip_address,
2512
+ active: item.attributes.active
2513
+ }));
2514
+ }
2515
+ };
2516
+ }
2517
+
2518
+ // Avatar mapper
2519
+ const avatarMapper = {
2520
+ type: 'user_avatar',
2521
+ map: (data)=>{
2522
+ var _data_id, _data_unique_id, _data_user_id, _data_user_unique_id;
2523
+ return {
2524
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
2525
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
2526
+ userId: String((_data_user_id = data['user_id']) != null ? _data_user_id : ''),
2527
+ userUniqueId: String((_data_user_unique_id = data['user_unique_id']) != null ? _data_user_unique_id : ''),
2528
+ bucket: data['bucket'],
2529
+ originalName: data['original_name'],
2530
+ name: data['name'],
2531
+ url: data['url'],
2532
+ thumbnail: data['thumbnail'],
2533
+ fileType: data['file_type'],
2534
+ fileSize: data['file_size'],
2535
+ description: data['description'],
2536
+ originalFile: data['original_file'],
2537
+ isPublic: data['is_public'],
2538
+ status: data['status'],
2539
+ createdAt: data['created_at'],
2540
+ updatedAt: data['updated_at']
2541
+ };
2542
+ }
2543
+ };
2544
+ /**
2545
+ * Create the Avatars service
2546
+ */ function createAvatarsService(transport) {
2547
+ return {
2548
+ async list (userUniqueId, params) {
2549
+ const queryParams = {};
2550
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
2551
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
2552
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
2553
+ const response = await transport.get(`/users/${userUniqueId}/avatars`, {
2554
+ params: queryParams
2555
+ });
2556
+ return decodePageResult(response, avatarMapper);
2557
+ },
2558
+ async get (userUniqueId) {
2559
+ const response = await transport.get(`/users/${userUniqueId}/avatars/${userUniqueId}`);
2560
+ return decodeOne(response, avatarMapper);
2561
+ },
2562
+ async create (userUniqueId, request) {
2563
+ const response = await transport.post(`/users/${userUniqueId}/avatars`, {
2564
+ avatar: {
2565
+ original_name: request.originalName,
2566
+ name: request.name,
2567
+ url: request.url,
2568
+ thumbnail: request.thumbnail,
2569
+ file_type: request.fileType,
2570
+ file_size: request.fileSize,
2571
+ description: request.description,
2572
+ original_file: request.originalFile,
2573
+ is_public: request.isPublic
2574
+ }
2575
+ });
2576
+ return decodeOne(response, avatarMapper);
2577
+ },
2578
+ async update (userUniqueId, request) {
2579
+ const response = await transport.put(`/users/${userUniqueId}/avatars/${userUniqueId}`, {
2580
+ avatar: {
2581
+ original_name: request.originalName,
2582
+ name: request.name,
2583
+ url: request.url,
2584
+ thumbnail: request.thumbnail,
2585
+ file_type: request.fileType,
2586
+ file_size: request.fileSize,
2587
+ description: request.description,
2588
+ original_file: request.originalFile,
2589
+ is_public: request.isPublic
2590
+ }
2591
+ });
2592
+ return decodeOne(response, avatarMapper);
2593
+ },
2594
+ async delete (userUniqueId) {
2595
+ await transport.delete(`/users/${userUniqueId}/avatars/${userUniqueId}`);
2596
+ },
2597
+ async presignUpload (userUniqueId, filename) {
2598
+ const response = await transport.put(`/users/${userUniqueId}/avatars/presign_upload`, {
2599
+ filename
2600
+ });
2601
+ return {
2602
+ uploadUrl: response.upload_url,
2603
+ publicUrl: response.public_url,
2604
+ key: response.key
2605
+ };
2606
+ },
2607
+ async multipartPresign (userUniqueId, request) {
2608
+ const response = await transport.post(`/users/${userUniqueId}/avatars/multipart_presign`, {
2609
+ unique_id: userUniqueId,
2610
+ filename: request.filename,
2611
+ part_count: request.partCount
2612
+ });
2613
+ return {
2614
+ uploadId: response.upload_id,
2615
+ key: response.key,
2616
+ parts: response.parts.map((p)=>({
2617
+ partNumber: p.part_number,
2618
+ uploadUrl: p.upload_url
2619
+ }))
2620
+ };
2621
+ },
2622
+ async multipartComplete (userUniqueId, request) {
2623
+ const response = await transport.post(`/users/${userUniqueId}/avatars/multipart_complete`, {
2624
+ unique_id: userUniqueId,
2625
+ filename: request.filename,
2626
+ upload_id: request.uploadId,
2627
+ parts: request.parts
2628
+ });
2629
+ return {
2630
+ publicUrl: response.public_url,
2631
+ fileName: response.file_name
2632
+ };
2633
+ }
2634
+ };
2635
+ }
2636
+
2637
+ // Tenant user mapper
2638
+ const tenantUserMapper = {
2639
+ type: 'tenant_user',
2640
+ map: (data)=>{
2641
+ var _data_id, _data_unique_id, _data_user_unique_id, _data_user_id, _data_user_name, _data_user_email, _data_tenant_id, _data_tenant_unique_id, _data_tenant_access_key, _data_tenant_url_id;
2642
+ return {
2643
+ id: String((_data_id = data['id']) != null ? _data_id : ''),
2644
+ uniqueId: String((_data_unique_id = data['unique_id']) != null ? _data_unique_id : ''),
2645
+ userUniqueId: String((_data_user_unique_id = data['user_unique_id']) != null ? _data_user_unique_id : ''),
2646
+ userId: String((_data_user_id = data['user_id']) != null ? _data_user_id : ''),
2647
+ userName: String((_data_user_name = data['user_name']) != null ? _data_user_name : ''),
2648
+ userEmail: String((_data_user_email = data['user_email']) != null ? _data_user_email : ''),
2649
+ gatewayUrl: data['gateway_url'],
2650
+ tenantId: String((_data_tenant_id = data['tenant_id']) != null ? _data_tenant_id : ''),
2651
+ tenantUniqueId: String((_data_tenant_unique_id = data['tenant_unique_id']) != null ? _data_tenant_unique_id : ''),
2652
+ tenantAccessKey: String((_data_tenant_access_key = data['tenant_access_key']) != null ? _data_tenant_access_key : ''),
2653
+ tenantUrlId: String((_data_tenant_url_id = data['tenant_url_id']) != null ? _data_tenant_url_id : ''),
2654
+ roleUniqueId: data['role_unique_id'],
2655
+ roleName: data['role_name'],
2656
+ roleId: data['role_id'],
2657
+ parentOnboardingCompleted: data['parent_onboarding_completed'],
2658
+ parentPurchaseCompleted: data['parent_purchase_completed'],
2659
+ onboardingCompleted: data['onboarding_completed'],
2660
+ purchaseCompleted: data['purchase_completed'],
2661
+ payload: data['payload'],
2662
+ status: data['status'],
2663
+ createdAt: data['created_at'],
2664
+ updatedAt: data['updated_at']
2665
+ };
2666
+ }
2667
+ };
2668
+ /**
2669
+ * Create the Tenants service
2670
+ */ function createTenantsService(transport) {
2671
+ return {
2672
+ async listChildren (params) {
2673
+ const queryParams = {};
2674
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
2675
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
2676
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
2677
+ const response = await transport.get('/auth/tenant/children', {
2678
+ params: queryParams
2679
+ });
2680
+ return decodePageResult(response, companyMapper);
2681
+ },
2682
+ async validateCode (request) {
2683
+ try {
2684
+ await transport.post('/auth/tenant/validate', {
2685
+ company: {
2686
+ code: request.code
2687
+ }
2688
+ });
2689
+ return {
2690
+ status: 'available'
2691
+ };
2692
+ } catch (error) {
2693
+ var _err_meta;
2694
+ // API returns error with suggested code if taken
2695
+ const err = error;
2696
+ return {
2697
+ status: 'taken',
2698
+ suggestedCode: (_err_meta = err.meta) == null ? void 0 : _err_meta.suggestedCode
2699
+ };
2700
+ }
2701
+ },
2702
+ async searchByName (request) {
2703
+ const response = await transport.post('/auth/tenant/search', {
2704
+ tenant: {
2705
+ name: request.name
2706
+ }
2707
+ });
2708
+ return decodeOne(response, companyMapper);
2709
+ },
2710
+ async searchByCode (request) {
2711
+ const response = await transport.post('/auth/tenant/search/code', {
2712
+ tenant: {
2713
+ code: request.code
2714
+ }
2715
+ });
2716
+ return decodeOne(response, companyMapper);
2717
+ },
2718
+ async createTenantUser (userUniqueId, request) {
2719
+ const response = await transport.post(`/users/${userUniqueId}/tenant`, {
2720
+ user: {
2721
+ parent_app_id: request.parentAppId,
2722
+ app_id: request.appId,
2723
+ id: request.id,
2724
+ email: request.email,
2725
+ name: request.name,
2726
+ role_unique_id: request.roleUniqueId,
2727
+ role_name: request.roleName,
2728
+ role_id: request.roleId,
2729
+ payload: request.payload
2730
+ }
2731
+ });
2732
+ return decodeOne(response, tenantUserMapper);
2733
+ },
2734
+ async updateOnboarding (userUniqueId, urlId, request) {
2735
+ const response = await transport.put(`/users/${userUniqueId}/tenant/${urlId}/onboarding`, {
2736
+ tenant_user: {
2737
+ onboarding_completed: request.onboardingCompleted,
2738
+ payload: request.payload
2739
+ }
2740
+ });
2741
+ return decodeOne(response, tenantUserMapper);
2742
+ },
2743
+ async updateSales (userUniqueId, urlId, request) {
2744
+ const response = await transport.put(`/users/${userUniqueId}/tenant/${urlId}/sales`, {
2745
+ tenant_user: {
2746
+ purchase_completed: request.purchaseCompleted,
2747
+ payload: request.payload
2748
+ }
2749
+ });
2750
+ return decodeOne(response, tenantUserMapper);
2751
+ }
2752
+ };
2753
+ }
2754
+
2045
2755
  /**
2046
2756
  * Create the Authentication block
2047
2757
  *
@@ -2078,6 +2788,10 @@ import { _ } from '@swc/helpers/_/_extends';
2078
2788
  users: createUsersService(transport),
2079
2789
  roles: createRolesService(transport),
2080
2790
  apiKeys: createApiKeysService(transport),
2791
+ mfa: createMfaService(transport),
2792
+ oauth: createOAuthService(transport),
2793
+ avatars: createAvatarsService(transport),
2794
+ tenants: createTenantsService(transport),
2081
2795
  apps: createAppsService(transport),
2082
2796
  blocks: createBlocksService(transport),
2083
2797
  services: createServicesRegistryService(transport),