@tellescope/sdk 1.63.1 → 1.64.0

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.
@@ -1493,18 +1493,21 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1493
1493
  return [4 /*yield*/, async_test("get-chat-room (join successful)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1494
1494
  case 18:
1495
1495
  _j.sent();
1496
- return [4 /*yield*/, enduserSDK.logout()];
1496
+ return [4 /*yield*/, async_test("[bulk] get-chat-room (join successful)", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === emptyRoom.id; }); } })];
1497
1497
  case 19:
1498
1498
  _j.sent();
1499
- return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1499
+ return [4 /*yield*/, enduserSDK.logout()];
1500
1500
  case 20:
1501
+ _j.sent();
1502
+ return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1503
+ case 21:
1501
1504
  loggedOutEnduser = _j.sent();
1502
1505
  assert(new Date(loggedOutEnduser.lastLogout).getTime() > Date.now() - 100, 'lastLogout fail for enduser', 'lastLogout for enduser');
1503
1506
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1504
- case 21:
1507
+ case 22:
1505
1508
  _j.sent();
1506
1509
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
1507
- case 22:
1510
+ case 23:
1508
1511
  _j.sent();
1509
1512
  return [2 /*return*/];
1510
1513
  }
@@ -3767,95 +3770,138 @@ var role_based_access_tests = function () { return __awaiter(void 0, void 0, voi
3767
3770
  return [4 /*yield*/, async_test("non-admin for enduser ticket bad", function () { return sdkNonAdmin.api.tickets.getOne(adminTicket.id); }, handleAnyError)];
3768
3771
  case 12:
3769
3772
  _a.sent();
3770
- return [4 /*yield*/, async_test("Non-admin for own ticket", function () { return sdkNonAdmin.api.tickets.getOne(ticketCreatedByNonAdmin.id); }, passOnAnyResult)];
3773
+ return [4 /*yield*/, async_test("[bulkd] Admin / creator can access enduser without being assigned", function () { return sdk.bulk_load({ load: [{ model: 'endusers' }] }); }, { onResult: function (r) { var _a, _b; return ((_a = r.results[0]) === null || _a === void 0 ? void 0 : _a.records) !== undefined && ((_b = r.results[0].records) === null || _b === void 0 ? void 0 : _b.find(function (r) { return r.id === e.id; })); } })];
3771
3774
  case 13:
3772
3775
  _a.sent();
3773
- return [4 /*yield*/, async_test("Non-admin for tickets", function () { return sdkNonAdmin.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
3776
+ return [4 /*yield*/, async_test("[bulk] Unassigned non-admin can't access enduser without being assigned", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'endusers' }] }); }, { onResult: function (r) { var _a, _b; return ((_a = r.results[0]) === null || _a === void 0 ? void 0 : _a.records) !== undefined && !((_b = r.results[0].records) === null || _b === void 0 ? void 0 : _b.find(function (r) { return r.id === e.id; })); } })];
3774
3777
  case 14:
3775
3778
  _a.sent();
3776
- return [4 /*yield*/, async_test("non-admin for email bad", function () { return sdkNonAdmin.api.emails.getOne(email.id); }, handleAnyError)];
3779
+ return [4 /*yield*/, async_test("non-admin for enduser ticket bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }); }, { onResult: function (r) { var _a, _b; return ((_a = r.results[0]) === null || _a === void 0 ? void 0 : _a.records) !== undefined && !((_b = r.results[0].records) === null || _b === void 0 ? void 0 : _b.find(function (r) { return r.id === adminTicket.id; })); } })];
3777
3780
  case 15:
3778
3781
  _a.sent();
3779
- return [4 /*yield*/, async_test("non-admin for sms bad", function () { return sdkNonAdmin.api.sms_messages.getOne(sms.id); }, handleAnyError)];
3782
+ return [4 /*yield*/, async_test("Non-admin for own ticket", function () { return sdkNonAdmin.api.tickets.getOne(ticketCreatedByNonAdmin.id); }, passOnAnyResult)];
3780
3783
  case 16:
3781
3784
  _a.sent();
3782
- return [4 /*yield*/, async_test("admin for calendar", function () { return sdk.api.calendar_events.getOne(calendarEvent.id); }, passOnAnyResult)];
3785
+ return [4 /*yield*/, async_test("Non-admin for tickets", function () { return sdkNonAdmin.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
3783
3786
  case 17:
3784
3787
  _a.sent();
3785
- return [4 /*yield*/, async_test("non-admin for calendar bad", function () { return sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id); }, handleAnyError)];
3788
+ return [4 /*yield*/, async_test("[bulk] Non-admin for tickets", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }); }, { onResult: function (r) { var _a, _b, _c; return ((_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 1; } })];
3786
3789
  case 18:
3787
3790
  _a.sent();
3788
- return [4 /*yield*/, async_test("non-admin for chat room bad", function () { return sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id); }, handleAnyError)];
3791
+ return [4 /*yield*/, async_test("non-admin for email bad", function () { return sdkNonAdmin.api.emails.getOne(email.id); }, handleAnyError)];
3789
3792
  case 19:
3790
3793
  _a.sent();
3791
- return [4 /*yield*/, async_test("non-admin for chat message bad", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, handleAnyError)];
3794
+ return [4 /*yield*/, async_test("[bulk] non-admin for email bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }); }, { onResult: function (r) { var _a, _b, _c; return ((_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 0; } })];
3792
3795
  case 20:
3793
3796
  _a.sent();
3794
- return [4 /*yield*/, async_test("Non-admin for chats", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }); }, handleAnyError)
3797
+ return [4 /*yield*/, async_test("non-admin for sms bad", function () { return sdkNonAdmin.api.sms_messages.getOne(sms.id); }, handleAnyError)];
3798
+ case 21:
3799
+ _a.sent();
3800
+ return [4 /*yield*/, async_test("admin for calendar", function () { return sdk.api.calendar_events.getOne(calendarEvent.id); }, passOnAnyResult)];
3801
+ case 22:
3802
+ _a.sent();
3803
+ return [4 /*yield*/, async_test("non-admin for calendar bad", function () { return sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id); }, handleAnyError)];
3804
+ case 23:
3805
+ _a.sent();
3806
+ return [4 /*yield*/, async_test("[bulk] non-admin for calendar bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }); }, { onResult: function (r) { var _a, _b, _c; return ((_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 0; } })];
3807
+ case 24:
3808
+ _a.sent();
3809
+ return [4 /*yield*/, async_test("non-admin for chat room bad", function () { return sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id); }, handleAnyError)];
3810
+ case 25:
3811
+ _a.sent();
3812
+ return [4 /*yield*/, async_test("[bulk] non-admin for chat room bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }); }, { onResult: function (r) { var _a, _b, _c; return ((_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 0; } })];
3813
+ case 26:
3814
+ _a.sent();
3815
+ return [4 /*yield*/, async_test("non-admin for chat message bad", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, handleAnyError)];
3816
+ case 27:
3817
+ _a.sent();
3818
+ return [4 /*yield*/, async_test("[bulk] non-admin for chat message bad", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }); }, handleAnyError // throws error in this case in enforceForeignAccessConstraints because there are no accessible chats
3819
+ )];
3820
+ case 28:
3821
+ _a.sent();
3822
+ return [4 /*yield*/, async_test("Non-admin for chats", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }); }, handleAnyError)];
3823
+ case 29:
3824
+ _a.sent();
3825
+ return [4 /*yield*/, async_test("Non-admin for tickets with enduserId in filter", function () { return sdkNonAdmin.api.tickets.getSome({ filter: { enduserId: e.id } }); }, { onResult: function (r) { return !r.find(function (t) { return t.id === adminTicket.id; }); } })
3795
3826
  // unassigned update / delete coverage
3796
3827
  ];
3797
- case 21:
3828
+ case 30:
3798
3829
  _a.sent();
3799
3830
  // unassigned update / delete coverage
3800
3831
  return [4 /*yield*/, async_test("non-admin for enduser ticket update bad", function () { return sdkNonAdmin.api.tickets.updateOne(adminTicket.id, { title: 'updated' }); }, handleAnyError)];
3801
- case 22:
3832
+ case 31:
3802
3833
  // unassigned update / delete coverage
3803
3834
  _a.sent();
3804
3835
  return [4 /*yield*/, async_test("non-admin for enduser ticket delete bad", function () { return sdkNonAdmin.api.tickets.deleteOne(adminTicket.id); }, handleAnyError)
3805
3836
  // set assignees
3806
3837
  ];
3807
- case 23:
3838
+ case 32:
3808
3839
  _a.sent();
3809
3840
  // set assignees
3810
3841
  return [4 /*yield*/, sdk.api.endusers.updateOne(e.id, { assignedTo: [sdk.userInfo.id, sdkNonAdmin.userInfo.id] })
3811
3842
  // assigned access tests
3812
3843
  ];
3813
- case 24:
3844
+ case 33:
3814
3845
  // set assignees
3815
3846
  _a.sent();
3816
3847
  // assigned access tests
3817
3848
  return [4 /*yield*/, async_test("Admin / creator can access enduser while assigned", function () { return sdk.api.endusers.getOne(e.id); }, passOnAnyResult)];
3818
- case 25:
3849
+ case 34:
3819
3850
  // assigned access tests
3820
3851
  _a.sent();
3821
3852
  return [4 /*yield*/, async_test("Unassigned non-admin can access enduser while assigned", function () { return sdkNonAdmin.api.endusers.getOne(e.id); }, passOnAnyResult)];
3822
- case 26:
3853
+ case 35:
3823
3854
  _a.sent();
3824
3855
  return [4 /*yield*/, async_test("non-admin for enduser ticket", function () { return sdkNonAdmin.api.tickets.getOne(adminTicket.id); }, passOnAnyResult)];
3825
- case 27:
3856
+ case 36:
3857
+ _a.sent();
3858
+ return [4 /*yield*/, async_test("[bulk] non-admin for enduser ticket", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'tickets' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === adminTicket.id; }); } })];
3859
+ case 37:
3826
3860
  _a.sent();
3827
3861
  return [4 /*yield*/, async_test("Non-admin for tickets", function () { return sdkNonAdmin.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 2; } })];
3828
- case 28:
3862
+ case 38:
3829
3863
  _a.sent();
3830
3864
  return [4 /*yield*/, async_test("non-admin for email", function () { return sdkNonAdmin.api.emails.getOne(email.id); }, passOnAnyResult)];
3831
- case 29:
3865
+ case 39:
3866
+ _a.sent();
3867
+ return [4 /*yield*/, async_test("[bulk] non-admin for email", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'emails' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === email.id; }); } })];
3868
+ case 40:
3832
3869
  _a.sent();
3833
3870
  return [4 /*yield*/, async_test("non-admin for sms", function () { return sdkNonAdmin.api.sms_messages.getOne(sms.id); }, passOnAnyResult)];
3834
- case 30:
3871
+ case 41:
3835
3872
  _a.sent();
3836
3873
  return [4 /*yield*/, async_test("non-admin for calendar", function () { return sdkNonAdmin.api.calendar_events.getOne(calendarEvent.id); }, passOnAnyResult)];
3837
- case 31:
3874
+ case 42:
3875
+ _a.sent();
3876
+ return [4 /*yield*/, async_test("[bulk] non-admin for calendar", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'calendar_events' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === calendarEvent.id; }); } })];
3877
+ case 43:
3838
3878
  _a.sent();
3839
3879
  return [4 /*yield*/, async_test("non-admin for chat room", function () { return sdkNonAdmin.api.chat_rooms.getOne(chatRoom.id); }, passOnAnyResult)];
3840
- case 32:
3880
+ case 44:
3881
+ _a.sent();
3882
+ return [4 /*yield*/, async_test("[bulk] non-admin for chat room", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chat_rooms' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === chatRoom.id; }); } })];
3883
+ case 45:
3841
3884
  _a.sent();
3842
3885
  return [4 /*yield*/, async_test("non-admin for chat message", function () { return sdkNonAdmin.api.chats.getOne(chatMessage.id); }, passOnAnyResult)];
3843
- case 33:
3886
+ case 46:
3887
+ _a.sent();
3888
+ return [4 /*yield*/, async_test("[bulk] non-admin for chat message", function () { return sdkNonAdmin.bulk_load({ load: [{ model: 'chats' }] }); }, { onResult: function (r) { var _a, _b, _c; return (_c = (_b = (_a = r.results) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.find(function (r) { return r.id === chatMessage.id; }); } })];
3889
+ case 47:
3844
3890
  _a.sent();
3845
3891
  return [4 /*yield*/, async_test("Non-admin for chats", function () { return sdkNonAdmin.api.chats.getSome({ filter: { roomId: chatRoom.id } }); }, { onResult: function (cs) { return cs.length === 2; } })
3846
3892
  // update / delete coverage for assigned tickets
3847
3893
  ];
3848
- case 34:
3894
+ case 48:
3849
3895
  _a.sent();
3850
3896
  // update / delete coverage for assigned tickets
3851
3897
  return [4 /*yield*/, async_test("non-admin assigned enduser ticket update find", function () { return sdkNonAdmin.api.tickets.updateOne(adminTicket.id, { title: 'updated' }); }, passOnAnyResult)];
3852
- case 35:
3898
+ case 49:
3853
3899
  // update / delete coverage for assigned tickets
3854
3900
  _a.sent();
3855
3901
  return [4 /*yield*/, async_test("non-admin for enduser ticket delete still bad", function () { return sdkNonAdmin.api.tickets.deleteOne(adminTicket.id); }, handleAnyError)
3856
3902
  // cleanup
3857
3903
  ];
3858
- case 36:
3904
+ case 50:
3859
3905
  _a.sent();
3860
3906
  // cleanup
3861
3907
  return [4 /*yield*/, Promise.all([
@@ -3867,7 +3913,7 @@ var role_based_access_tests = function () { return __awaiter(void 0, void 0, voi
3867
3913
  sdk.api.calendar_events.deleteOne(calendarEvent.id),
3868
3914
  sdk.api.chat_rooms.deleteOne(chatRoom.id),
3869
3915
  ])];
3870
- case 37:
3916
+ case 51:
3871
3917
  // cleanup
3872
3918
  _a.sent();
3873
3919
  return [2 /*return*/];
@@ -5515,13 +5561,17 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
5515
5561
  sdkOtherSub.authenticate(otherSubUserEmail, password),
5516
5562
  sdkSubSub.authenticate(subSubUserEmail, password),
5517
5563
  sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword),
5518
- ])];
5564
+ ])
5565
+ // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
5566
+ ];
5519
5567
  case 3:
5520
5568
  _k.sent();
5569
+ // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
5521
5570
  return [4 /*yield*/, async_test("count exists",
5522
5571
  // @ts-ignore
5523
5572
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
5524
5573
  case 4:
5574
+ // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
5525
5575
  _k.sent();
5526
5576
  return [4 /*yield*/, async_test("push_to_EHR allows missing addedResponses", function () { return sdk.api.form_responses.push_to_EHR({ id: PLACEHOLDER_ID }); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === 'Could not find a record for the given id'; } })];
5527
5577
  case 5:
@@ -5532,19 +5582,19 @@ var TRACK_OPEN_IMAGE = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwC
5532
5582
  return [4 /*yield*/, setup_tests()];
5533
5583
  case 7:
5534
5584
  _k.sent();
5535
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
5585
+ return [4 /*yield*/, role_based_access_tests()];
5536
5586
  case 8:
5587
+ _k.sent();
5588
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
5589
+ case 9:
5537
5590
  _k.sent(); // should come right after setup tests
5538
5591
  return [4 /*yield*/, pdf_generation()];
5539
- case 9:
5540
- _k.sent();
5541
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
5542
5592
  case 10:
5543
5593
  _k.sent();
5544
- return [4 /*yield*/, rate_limit_tests()];
5594
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
5545
5595
  case 11:
5546
5596
  _k.sent();
5547
- return [4 /*yield*/, role_based_access_tests()];
5597
+ return [4 /*yield*/, rate_limit_tests()];
5548
5598
  case 12:
5549
5599
  _k.sent();
5550
5600
  return [4 /*yield*/, wait_for_trigger_tests()];