@tellescope/sdk 1.74.0 → 1.74.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.
@@ -634,139 +634,139 @@ var updatesTests = function () { return __awaiter(void 0, void 0, void 0, functi
634
634
  }); };
635
635
  var generate_user_auth_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
636
636
  var info, externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
637
- return __generator(this, function (_e) {
638
- switch (_e.label) {
637
+ return __generator(this, function (_f) {
638
+ switch (_f.label) {
639
639
  case 0:
640
640
  log_header("Generated User/Enduser authToken");
641
641
  return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: sdk.userInfo.id })];
642
642
  case 1:
643
- info = _e.sent();
643
+ info = _f.sent();
644
644
  sdk.authToken = info.authToken;
645
645
  sdk.userInfo = info.user;
646
646
  externalId = '1029f9v9sjd0as';
647
647
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
648
648
  case 2:
649
- e = _e.sent();
649
+ e = _f.sent();
650
650
  return [4 /*yield*/, sdk.api.users.generate_auth_token({ id: e.id })];
651
651
  case 3:
652
- _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
652
+ _a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
653
653
  if (!enduser)
654
654
  throw new Error("Didn't get enduser when generate_auth_token called");
655
655
  assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authTokea and get enduser');
656
656
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
657
657
  case 4:
658
- isAuthenticated = (_e.sent()).isAuthenticated;
658
+ isAuthenticated = (_f.sent()).isAuthenticated;
659
659
  assert(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
660
660
  _b = assert;
661
661
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
662
662
  case 5:
663
- _b.apply(void 0, [(_e.sent()).isAuthenticated,
663
+ _b.apply(void 0, [(_f.sent()).isAuthenticated,
664
664
  'id omitted results in failed authentication',
665
665
  'id optional for is_authenticated']);
666
666
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
667
667
  case 6:
668
- withDurationResult = _e.sent();
668
+ withDurationResult = _f.sent();
669
669
  assert(!!withDurationResult, 'no result for id with duration', 'id with duration');
670
670
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
671
671
  case 7:
672
- _c = _e.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
672
+ _c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
673
673
  assert(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
674
674
  _d = assert;
675
675
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
676
676
  case 8:
677
- _d.apply(void 0, [(_e.sent()).isAuthenticated,
677
+ _d.apply(void 0, [(_f.sent()).isAuthenticated,
678
678
  'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
679
679
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
680
680
  case 9:
681
- withDurationResult = _e.sent();
681
+ withDurationResult = _f.sent();
682
682
  assert(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
683
683
  return [4 /*yield*/, async_test("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
684
684
  case 10:
685
- _e.sent();
685
+ _f.sent();
686
686
  return [4 /*yield*/, async_test("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
687
687
  case 11:
688
- _e.sent();
688
+ _f.sent();
689
689
  return [4 /*yield*/, async_test("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
690
690
  case 12:
691
- _e.sent();
691
+ _f.sent();
692
692
  return [4 /*yield*/, async_test("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
693
693
  case 13:
694
- _e.sent();
694
+ _f.sent();
695
695
  return [4 /*yield*/, async_test("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
696
696
  case 14:
697
- _e.sent();
697
+ _f.sent();
698
698
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
699
699
  case 15:
700
- _e.sent();
700
+ _f.sent();
701
701
  return [2 /*return*/];
702
702
  }
703
703
  });
704
704
  }); };
705
705
  var generateEnduserAuthTests = function () { return __awaiter(void 0, void 0, void 0, function () {
706
706
  var externalId, e, _a, authToken, enduser, isAuthenticated, _b, withDurationResult, _c, authTokenUID, enduser2, _d;
707
- return __generator(this, function (_e) {
708
- switch (_e.label) {
707
+ return __generator(this, function (_f) {
708
+ switch (_f.label) {
709
709
  case 0:
710
710
  log_header("Generated Enduser authToken");
711
711
  externalId = '1029f9v9sjd0as';
712
712
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'generated@tellescope.com', phone: '+15555555555', externalId: externalId })];
713
713
  case 1:
714
- e = _e.sent();
714
+ e = _f.sent();
715
715
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id })];
716
716
  case 2:
717
- _a = _e.sent(), authToken = _a.authToken, enduser = _a.enduser;
717
+ _a = _f.sent(), authToken = _a.authToken, enduser = _a.enduser;
718
718
  assert(!!authToken && !!enduser, 'invalid returned values', 'Generate authToken and get enduser');
719
719
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser.id, authToken: authToken })];
720
720
  case 3:
721
- isAuthenticated = (_e.sent()).isAuthenticated;
721
+ isAuthenticated = (_f.sent()).isAuthenticated;
722
722
  assert(isAuthenticated, 'invalid authToken generated for enduser', 'Generate authToken for enduser is valid');
723
723
  _b = assert;
724
724
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ authToken: authToken })];
725
725
  case 4:
726
- _b.apply(void 0, [(_e.sent()).isAuthenticated,
726
+ _b.apply(void 0, [(_f.sent()).isAuthenticated,
727
727
  'id omitted results in failed authentication',
728
728
  'id optional for is_authenticated']);
729
729
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ id: e.id, durationInSeconds: 1000 })];
730
730
  case 5:
731
- withDurationResult = _e.sent();
731
+ withDurationResult = _f.sent();
732
732
  assert(!!withDurationResult, 'no result for id with duration', 'id with duration');
733
733
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId })];
734
734
  case 6:
735
- _c = _e.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
735
+ _c = _f.sent(), authTokenUID = _c.authToken, enduser2 = _c.enduser;
736
736
  assert(!!authTokenUID && !!enduser2, 'invalid returned values eid', 'Generate authToken and get enduser eid');
737
737
  _d = assert;
738
738
  return [4 /*yield*/, sdk.api.endusers.is_authenticated({ id: enduser2.id, authToken: authTokenUID })];
739
739
  case 7:
740
- _d.apply(void 0, [(_e.sent()).isAuthenticated,
740
+ _d.apply(void 0, [(_f.sent()).isAuthenticated,
741
741
  'invalid authToken generated for enduser', 'Generate authToken for enduser is valid']);
742
742
  return [4 /*yield*/, sdk.api.endusers.generate_auth_token({ externalId: externalId, durationInSeconds: 1000 })];
743
743
  case 8:
744
- withDurationResult = _e.sent();
744
+ withDurationResult = _f.sent();
745
745
  assert(!!withDurationResult, 'no result for externalId with duration', 'externalId with duration');
746
746
  return [4 /*yield*/, async_test("auth by externalId", function () { return sdk.api.endusers.generate_auth_token({ externalId: e.externalId }); }, passOnVoid)];
747
747
  case 9:
748
- _e.sent();
748
+ _f.sent();
749
749
  return [4 /*yield*/, async_test("auth by email", function () { return sdk.api.endusers.generate_auth_token({ email: e.email }); }, passOnVoid)];
750
750
  case 10:
751
- _e.sent();
751
+ _f.sent();
752
752
  return [4 /*yield*/, async_test("auth by phone", function () { return sdk.api.endusers.generate_auth_token({ phone: e.phone }); }, passOnVoid)];
753
753
  case 11:
754
- _e.sent();
754
+ _f.sent();
755
755
  return [4 /*yield*/, async_test("auth by nothing throws error", function () { return sdk.api.endusers.generate_auth_token({ phone: undefined }); }, { shouldError: true, onError: function (e) { return e.message === "One of id, externalId, email, or phone is required"; } })];
756
756
  case 12:
757
- _e.sent();
757
+ _f.sent();
758
758
  return [4 /*yield*/, async_test("auth by bad field throws error", function () { return sdk.api.endusers.generate_auth_token({ email: "notavalidemail@tellescope.com" }); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a corresponding enduser"; } })];
759
759
  case 13:
760
- _e.sent();
760
+ _f.sent();
761
761
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
762
762
  case 14:
763
- _e.sent();
763
+ _f.sent();
764
764
  return [2 /*return*/];
765
765
  }
766
766
  });
767
767
  }); };
768
768
  var instanceForModel = function (model, i) {
769
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
769
+ var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m;
770
770
  if (i === void 0) { i = 0; }
771
771
  var instance = {};
772
772
  var updates = {};
@@ -775,12 +775,12 @@ var instanceForModel = function (model, i) {
775
775
  if (model.fields[k].readonly)
776
776
  continue;
777
777
  if (((_c = (_b = (_a = model.fields[k]) === null || _a === void 0 ? void 0 : _a.examples) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > i) {
778
- instance[k] = (_e = (_d = model.fields[k]) === null || _d === void 0 ? void 0 : _d.examples) === null || _e === void 0 ? void 0 : _e[i];
779
- if ((_f = model === null || model === void 0 ? void 0 : model.readFilter) === null || _f === void 0 ? void 0 : _f[k]) {
780
- filter[k] = (_h = (_g = model.fields[k]) === null || _g === void 0 ? void 0 : _g.examples) === null || _h === void 0 ? void 0 : _h[i];
778
+ instance[k] = (_f = (_d = model.fields[k]) === null || _d === void 0 ? void 0 : _d.examples) === null || _f === void 0 ? void 0 : _f[i];
779
+ if ((_g = model === null || model === void 0 ? void 0 : model.readFilter) === null || _g === void 0 ? void 0 : _g[k]) {
780
+ filter[k] = (_j = (_h = model.fields[k]) === null || _h === void 0 ? void 0 : _h.examples) === null || _j === void 0 ? void 0 : _j[i];
781
781
  }
782
- if (((_j = model === null || model === void 0 ? void 0 : model.fields) === null || _j === void 0 ? void 0 : _j[k].updatesDisabled) !== true) {
783
- updates[k] = (_l = (_k = model.fields[k]) === null || _k === void 0 ? void 0 : _k.examples) === null || _l === void 0 ? void 0 : _l[i];
782
+ if (((_k = model === null || model === void 0 ? void 0 : model.fields) === null || _k === void 0 ? void 0 : _k[k].updatesDisabled) !== true) {
783
+ updates[k] = (_m = (_l = model.fields[k]) === null || _l === void 0 ? void 0 : _l.examples) === null || _m === void 0 ? void 0 : _m[i];
784
784
  }
785
785
  }
786
786
  }
@@ -791,8 +791,8 @@ var verify_missing_defaults = function (_a) {
791
791
  var queries = _a.queries, model = _a.model, name = _a.name;
792
792
  return __awaiter(void 0, void 0, void 0, function () {
793
793
  var queryForOperation, o, _b, _c, _d, _i;
794
- return __generator(this, function (_e) {
795
- switch (_e.label) {
794
+ return __generator(this, function (_f) {
795
+ switch (_f.label) {
796
796
  case 0:
797
797
  queryForOperation = {
798
798
  create: function () { return queries.createOne({}); },
@@ -807,7 +807,7 @@ var verify_missing_defaults = function (_a) {
807
807
  for (_d in _b)
808
808
  _c.push(_d);
809
809
  _i = 0;
810
- _e.label = 1;
810
+ _f.label = 1;
811
811
  case 1:
812
812
  if (!(_i < _c.length)) return [3 /*break*/, 4];
813
813
  _d = _c[_i];
@@ -817,8 +817,8 @@ var verify_missing_defaults = function (_a) {
817
817
  return [3 /*break*/, 3]; // action is implemented
818
818
  return [4 /*yield*/, async_test("".concat(o, " unavailable for ").concat(name), function () { return queryForOperation[o](); }, { shouldError: true, onError: function (e) { return e.message === 'This action is not allowed' || e.message === 'Inaccessible'; } })];
819
819
  case 2:
820
- _e.sent();
821
- _e.label = 3;
820
+ _f.sent();
821
+ _f.label = 3;
822
822
  case 3:
823
823
  _i++;
824
824
  return [3 /*break*/, 1];
@@ -1089,21 +1089,21 @@ var journey_tests = function (queries) {
1089
1089
  if (queries === void 0) { queries = sdk.api.journeys; }
1090
1090
  return __awaiter(void 0, void 0, void 0, function () {
1091
1091
  var journey, journey2, updated, fetchAfterDeletion, withAddedState, e1, e2, engagement, es;
1092
- var _a, _b, _c, _d, _e, _f;
1093
- return __generator(this, function (_g) {
1094
- switch (_g.label) {
1092
+ var _a, _b, _c, _d, _f, _g;
1093
+ return __generator(this, function (_h) {
1094
+ switch (_h.label) {
1095
1095
  case 0: return [4 /*yield*/, async_test("create-journey - states missing defaultState", function () { return queries.createOne({ title: 'Error', defaultState: 'default', states: [{ name: 'not-default', priority: 'N/A' }] }); }, { shouldError: true, onError: function (e) { return e.message === 'defaultState does not exist in states'; } })];
1096
1096
  case 1:
1097
- _g.sent();
1097
+ _h.sent();
1098
1098
  return [4 /*yield*/, async_test("create-journey - duplicate states", function () { return queries.createOne({ title: 'Error', defaultState: 'default', states: [{ name: 'default', priority: 'N/A' }, { name: 'default', priority: 'N/A' }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1099
1099
  case 2:
1100
- _g.sent();
1100
+ _h.sent();
1101
1101
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey' })];
1102
1102
  case 3:
1103
- journey = _g.sent();
1103
+ journey = _h.sent();
1104
1104
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'Test Journey 2' })];
1105
1105
  case 4:
1106
- journey2 = _g.sent();
1106
+ journey2 = _h.sent();
1107
1107
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, {
1108
1108
  states: [
1109
1109
  { name: 'Delete Me 1', priority: 'N/A' },
@@ -1111,89 +1111,89 @@ var journey_tests = function (queries) {
1111
1111
  ]
1112
1112
  })];
1113
1113
  case 5:
1114
- _g.sent();
1114
+ _h.sent();
1115
1115
  return [4 /*yield*/, sdk.api.journeys.delete_states({ id: journey.id, states: ['Delete Me 1', 'Delete Me 2'] })];
1116
1116
  case 6:
1117
- updated = (_g.sent()).updated;
1117
+ updated = (_h.sent()).updated;
1118
1118
  assert(!!updated.id && updated.states.length === 1 && updated.states[0].name === 'New', 'delete states fail on returned update', 'delete states returns updated value');
1119
1119
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1120
1120
  case 7:
1121
- fetchAfterDeletion = _g.sent();
1121
+ fetchAfterDeletion = _h.sent();
1122
1122
  assert(fetchAfterDeletion.states.length === 1 && fetchAfterDeletion.states[0].name === 'New', 'delete states fail', 'delete states worked');
1123
1123
  assert(journey.defaultState === 'New', 'defaultState not set on create', 'journey-create - defaultState initialized');
1124
1124
  assert(journey.states[0].name === 'New', 'defaultState not set on create', 'journey-create - states initialized');
1125
1125
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'ToDuplicate', priority: "N/A" }] })];
1126
1126
  case 8:
1127
- _g.sent();
1127
+ _h.sent();
1128
1128
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1129
1129
  case 9:
1130
- withAddedState = _g.sent();
1130
+ withAddedState = _h.sent();
1131
1131
  assert(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'ToDuplicate'; }) !== undefined, 'new state added', 'journey-update - push state change');
1132
1132
  return [4 /*yield*/, async_test("create-journey - add duplicate state", function () { return sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'ToDuplicate', priority: "N/A" }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1133
1133
  case 10:
1134
- _g.sent();
1134
+ _h.sent();
1135
1135
  return [4 /*yield*/, async_test("create-journey - add duplicate states in update", function () { return sdk.api.journeys.updateOne(journey.id, { states: [{ name: 'DuplicateUpdate', priority: "N/A" }, { name: 'DuplicateUpdate', priority: "N/A" }] }); }, { shouldError: true, onError: function (e) { return e.message === 'Uniqueness Violation'; } })];
1136
1136
  case 11:
1137
- _g.sent();
1137
+ _h.sent();
1138
1138
  return [4 /*yield*/, sdk.api.journeys.updateOne(journey.id, { defaultState: 'Added', states: [{ name: 'Added', priority: "N/A" }, { name: "Other", priority: "N/A" }] }, { replaceObjectFields: true })];
1139
1139
  case 12:
1140
- _g.sent();
1140
+ _h.sent();
1141
1141
  return [4 /*yield*/, sdk.api.journeys.getOne(journey.id)];
1142
1142
  case 13:
1143
- withAddedState = _g.sent();
1143
+ withAddedState = _h.sent();
1144
1144
  assert(withAddedState.states.length === 2 && withAddedState.states.find(function (s) { return s.name === 'Added'; }) !== undefined
1145
1145
  && withAddedState.defaultState === 'Added', 'duplicate state not added', 'journey-update - replace states');
1146
1146
  return [4 /*yield*/, async_test("journey-update - states replace with missing default", function () { return queries.updateOne(journey.id, { states: [{ name: 'Not Default', priority: "N/A" }] }, { replaceObjectFields: true }); }, { shouldError: true, onError: function (e) { return e.message === 'defaultState does not exist in states'; } })];
1147
1147
  case 14:
1148
- _g.sent();
1148
+ _h.sent();
1149
1149
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset1@tellescope.com', journeys: (_a = {}, _a[journey.id] = 'Added', _a) })];
1150
1150
  case 15:
1151
- e1 = _g.sent();
1151
+ e1 = _h.sent();
1152
1152
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'journeyunset2@tellescope.com', journeys: (_b = {}, _b[journey.id] = 'Added', _b[journey2.id] = 'New', _b) })];
1153
1153
  case 16:
1154
- e2 = _g.sent();
1154
+ e2 = _h.sent();
1155
1155
  return [4 /*yield*/, async_test("create-enduser - invalid journey id", function () {
1156
1156
  var _a;
1157
1157
  return sdk.api.endusers.createOne({ email: 'journeyunset3@tellescope.com', journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
1158
1158
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1159
1159
  case 17:
1160
- _g.sent();
1160
+ _h.sent();
1161
1161
  return [4 /*yield*/, async_test("update-enduser - invalid journey id", function () {
1162
1162
  var _a;
1163
1163
  return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[e1.id] = 'Added', _a) });
1164
1164
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1165
1165
  case 18:
1166
- _g.sent();
1166
+ _h.sent();
1167
1167
  return [4 /*yield*/, async_test("update-enduser - one invalid journey id", function () {
1168
1168
  var _a;
1169
1169
  return sdk.api.endusers.updateOne(e1.id, { journeys: (_a = {}, _a[journey.id] = 'Added', _a[e1.id] = 'Added', _a) });
1170
1170
  }, { shouldError: true, onError: function (e) { return e.message === 'Could not find a related record for the given id(s)'; } })];
1171
1171
  case 19:
1172
- _g.sent();
1172
+ _h.sent();
1173
1173
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[journey.id] = 'Other', _c) })]; // valid state change
1174
1174
  case 20:
1175
- _g.sent(); // valid state change
1175
+ _h.sent(); // valid state change
1176
1176
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_d = {}, _d[journey.id] = 'Added', _d) })]; // change back
1177
1177
  case 21:
1178
- _g.sent(); // change back
1178
+ _h.sent(); // change back
1179
1179
  return [4 /*yield*/, wait(undefined, 25)]; // wait for side effects to add engagement
1180
1180
  case 22:
1181
- _g.sent(); // wait for side effects to add engagement
1181
+ _h.sent(); // wait for side effects to add engagement
1182
1182
  return [4 /*yield*/, sdk.api.engagement_events.getSome()];
1183
1183
  case 23:
1184
- engagement = _g.sent();
1184
+ engagement = _h.sent();
1185
1185
  assert(engagement.filter(function (e) { return e.enduserId === e1.id && e.type === "STATE_CHANGE"; }).length === 2, 'STATE_CHANGE engagement not tracked', 'Update enduser tracks state changes');
1186
- return [4 /*yield*/, sdk.api.endusers.createSome([{ email: "1@tellescope.com", journeys: (_e = {}, _e[journey.id] = 'Added', _e) }, { email: "2@tellescope.com", journeys: (_f = {}, _f[journey.id] = 'Added', _f) }])];
1186
+ return [4 /*yield*/, sdk.api.endusers.createSome([{ email: "1@tellescope.com", journeys: (_f = {}, _f[journey.id] = 'Added', _f) }, { email: "2@tellescope.com", journeys: (_g = {}, _g[journey.id] = 'Added', _g) }])];
1187
1187
  case 24:
1188
- es = (_g.sent()).created;
1188
+ es = (_h.sent()).created;
1189
1189
  return [4 /*yield*/, sdk.api.engagement_events.getSome()];
1190
1190
  case 25:
1191
- engagement = _g.sent();
1191
+ engagement = _h.sent();
1192
1192
  assert(engagement.filter(function (e) { return e.enduserId === es[0].id && e.type === "JOURNEY_SET"; }).length === 1, 'JOURNEY_SET engagement not tracked', 'Create endusers tracks engagement events (1)');
1193
1193
  assert(engagement.filter(function (e) { return e.enduserId === es[1].id && e.type === "JOURNEY_SET"; }).length === 1, 'JOURNEY_SET engagement not tracked', 'Create endusers tracks engagement events (2)');
1194
1194
  return [4 /*yield*/, queries.updateOne(journey.id, { states: [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }] }, { replaceObjectFields: true })];
1195
1195
  case 26:
1196
- _g.sent();
1196
+ _h.sent();
1197
1197
  return [4 /*yield*/, async_test("journey-update - insert new state at front", function () { return queries.getOne(journey.id); }, { onResult: function (j) { return objects_equivalent(j.states, [{ name: 'First', priority: "N/A" }, { name: 'Added', priority: "N/A" }]); } })
1198
1198
  // removed
1199
1199
  // await async_test(
@@ -1214,7 +1214,7 @@ var journey_tests = function (queries) {
1214
1214
  // )
1215
1215
  ];
1216
1216
  case 27:
1217
- _g.sent();
1217
+ _h.sent();
1218
1218
  // removed
1219
1219
  // await async_test(
1220
1220
  // `journey-updateState`,
@@ -1251,19 +1251,19 @@ var journey_tests = function (queries) {
1251
1251
  // () => sdk.api.endusers.getOne(e2.id),
1252
1252
  // { onResult: e => objects_equivalent(e.journeys, { [journey.id]: 'Updated', [journey2.id]: 'New' })},
1253
1253
  // )
1254
- _g.sent();
1254
+ _h.sent();
1255
1255
  return [4 /*yield*/, wait(undefined, 25)]; // wait for side effects to update endusers
1256
1256
  case 29:
1257
- _g.sent(); // wait for side effects to update endusers
1257
+ _h.sent(); // wait for side effects to update endusers
1258
1258
  return [4 /*yield*/, async_test("journey-delete - corresponding enduser journeys are unset 1", function () { return sdk.api.endusers.getOne(e1.id); }, { onResult: function (e) { return objects_equivalent(e.journeys, {}); } })];
1259
1259
  case 30:
1260
- _g.sent();
1260
+ _h.sent();
1261
1261
  return [4 /*yield*/, async_test("journey-delete - corresponding enduser journeys are unset, others left", function () { return sdk.api.endusers.getOne(e2.id); }, { onResult: function (e) {
1262
1262
  var _a;
1263
1263
  return objects_equivalent(e.journeys, (_a = {}, _a[journey2.id] = 'New', _a));
1264
1264
  } })];
1265
1265
  case 31:
1266
- _g.sent();
1266
+ _h.sent();
1267
1267
  return [2 /*return*/];
1268
1268
  }
1269
1269
  });
@@ -1436,32 +1436,32 @@ var sms_tests = function (queries) {
1436
1436
  var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
1437
1437
  var sdk2, email, password, enduser, enduserLoggedIn, room, roomWithMessage, verifyRoomDisplayInfo, emptyRoom, loggedOutEnduser;
1438
1438
  var _a;
1439
- var _b, _c, _d, _e, _f, _g, _h;
1440
- return __generator(this, function (_j) {
1441
- switch (_j.label) {
1439
+ var _b, _c, _d, _f, _g, _h, _j;
1440
+ return __generator(this, function (_k) {
1441
+ switch (_k.label) {
1442
1442
  case 0:
1443
1443
  log_header("Chat Room Tests");
1444
1444
  sdk2 = new Session({ host: host });
1445
1445
  return [4 /*yield*/, sdk2.authenticate(nonAdminEmail, nonAdminPassword)]; // non-admin has access restrictions we want to test
1446
1446
  case 1:
1447
- _j.sent(); // non-admin has access restrictions we want to test
1447
+ _k.sent(); // non-admin has access restrictions we want to test
1448
1448
  email = 'enduser@tellescope.com', password = 'enduserPassword!';
1449
1449
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1450
1450
  case 2:
1451
- enduser = _j.sent();
1451
+ enduser = _k.sent();
1452
1452
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1453
1453
  case 3:
1454
- _j.sent();
1454
+ _k.sent();
1455
1455
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1456
1456
  case 4:
1457
- _j.sent();
1457
+ _k.sent();
1458
1458
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1459
1459
  case 5:
1460
- enduserLoggedIn = _j.sent();
1460
+ enduserLoggedIn = _k.sent();
1461
1461
  assert(new Date(enduserLoggedIn.lastActive).getTime() > Date.now() - 100, 'lastActive fail for enduser', 'lastActive for enduser');
1462
1462
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({ type: 'internal', userIds: [userId], enduserIds: [enduserSDK.userInfo.id] })];
1463
1463
  case 6:
1464
- room = _j.sent();
1464
+ room = _k.sent();
1465
1465
  assert(room.numMessages === 0, 'num mesages no update', 'num messages on creation');
1466
1466
  return [4 /*yield*/, async_test("get-chat-room (not a user)", function () { return sdk2.api.chat_rooms.getOne(room.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })
1467
1467
  // await async_test(
@@ -1471,7 +1471,7 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1471
1471
  // )
1472
1472
  ];
1473
1473
  case 7:
1474
- _j.sent();
1474
+ _k.sent();
1475
1475
  // await async_test(
1476
1476
  // `user_display_info for room (not a user)`,
1477
1477
  // () => sdk2.api.chat_rooms.display_info({ id: room.id }),
@@ -1484,18 +1484,18 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1484
1484
  // () => sdk2.api.chat_rooms.display_info({ id: room.id }),
1485
1485
  // { shouldError: true, onError: e => e.message === "Could not find a record for the given id" }
1486
1486
  // )
1487
- _j.sent();
1487
+ _k.sent();
1488
1488
  return [4 /*yield*/, sdk.api.chat_rooms.getOne(room.id)];
1489
1489
  case 9:
1490
- roomWithMessage = _j.sent();
1490
+ roomWithMessage = _k.sent();
1491
1491
  assert(roomWithMessage.numMessages === 1, 'num mesages no update', 'num messages on send message');
1492
1492
  assert(((_b = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.recentMessageSentAt) !== null && _b !== void 0 ? _b : 0) > Date.now() - 1000, 'recent message timestamp bad', 'recent message timestamp');
1493
1493
  assert(((_d = (_c = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _c === void 0 ? void 0 : _c[userId]) === null || _d === void 0 ? void 0 : _d.unreadCount) === undefined, 'bad unread count for user', 'unread count for user');
1494
- assert(((_f = (_e = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _e === void 0 ? void 0 : _e[enduserSDK.userInfo.id]) === null || _f === void 0 ? void 0 : _f.unreadCount) === 1, 'bad unread count for enduser', 'unread count for enduser');
1494
+ assert(((_g = (_f = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _f === void 0 ? void 0 : _f[enduserSDK.userInfo.id]) === null || _g === void 0 ? void 0 : _g.unreadCount) === 1, 'bad unread count for enduser', 'unread count for enduser');
1495
1495
  return [4 /*yield*/, sdk.api.chat_rooms.updateOne(roomWithMessage.id, { infoForUser: (_a = {}, _a[userId] = { unreadCount: 0 }, _a) })];
1496
1496
  case 10:
1497
- roomWithMessage = _j.sent();
1498
- assert(((_h = (_g = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _g === void 0 ? void 0 : _g[userId]) === null || _h === void 0 ? void 0 : _h.unreadCount) === 0, 'bad reset unread count for user', 'reset unread count for user');
1497
+ roomWithMessage = _k.sent();
1498
+ assert(((_j = (_h = roomWithMessage === null || roomWithMessage === void 0 ? void 0 : roomWithMessage.infoForUser) === null || _h === void 0 ? void 0 : _h[userId]) === null || _j === void 0 ? void 0 : _j.unreadCount) === 0, 'bad reset unread count for user', 'reset unread count for user');
1499
1499
  verifyRoomDisplayInfo = function (info) {
1500
1500
  if (!info)
1501
1501
  return false;
@@ -1528,53 +1528,53 @@ var chat_room_tests = function () { return __awaiter(void 0, void 0, void 0, fun
1528
1528
  };
1529
1529
  return [4 /*yield*/, async_test("user_display_info for room (for user)", function () { return sdk.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
1530
1530
  case 11:
1531
- _j.sent();
1531
+ _k.sent();
1532
1532
  return [4 /*yield*/, async_test("user_display_info for room (for enduser)", function () { return enduserSDK.api.chat_rooms.display_info({ id: room.id }); }, { onResult: function (r) { return r.id === room.id && verifyRoomDisplayInfo(r.display_info); } })];
1533
1533
  case 12:
1534
- _j.sent();
1534
+ _k.sent();
1535
1535
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(room.id)];
1536
1536
  case 13:
1537
- _j.sent();
1537
+ _k.sent();
1538
1538
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
1539
1539
  case 14:
1540
- emptyRoom = _j.sent();
1540
+ emptyRoom = _k.sent();
1541
1541
  return [4 /*yield*/, async_test("get-chat-room (creator can access, even when not in userIds)", function () { return sdk.api.chat_rooms.getOne(emptyRoom.id); }, { onResult: function (r) { return r.id === emptyRoom.id; } })];
1542
1542
  case 15:
1543
- _j.sent();
1543
+ _k.sent();
1544
1544
  return [4 /*yield*/, async_test("get-chat-room (not in empty room)", function () { return sdk2.api.chat_rooms.getOne(emptyRoom.id); }, { shouldError: true, onError: function (e) { return e.message === "Could not find a record for the given id"; } })];
1545
1545
  case 16:
1546
- _j.sent();
1546
+ _k.sent();
1547
1547
  return [4 /*yield*/, async_test("join-room", function () { return sdk2.api.chat_rooms.join_room({ id: emptyRoom.id }); }, { onResult: function (_a) {
1548
1548
  var room = _a.room;
1549
1549
  return room.id === emptyRoom.id;
1550
1550
  } })];
1551
1551
  case 17:
1552
- _j.sent();
1552
+ _k.sent();
1553
1553
  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; } })];
1554
1554
  case 18:
1555
- _j.sent();
1555
+ _k.sent();
1556
1556
  return [4 /*yield*/, async_test("create-chat (join successful)", function () { return sdk2.api.chats.createOne({ roomId: emptyRoom.id, message: 'test' }); }, passOnAnyResult)];
1557
1557
  case 19:
1558
- _j.sent();
1558
+ _k.sent();
1559
1559
  return [4 /*yield*/, async_test("get-chat (join successful)", function () { return sdk2.api.chats.getSome({ filter: { roomId: emptyRoom.id } }); }, { onResult: function (r) { return r.length > 0; } })];
1560
1560
  case 20:
1561
- _j.sent();
1561
+ _k.sent();
1562
1562
  return [4 /*yield*/, async_test("[bulk] get-chat-room (join successful)", function () { return sdk2.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; }); } })];
1563
1563
  case 21:
1564
- _j.sent();
1564
+ _k.sent();
1565
1565
  return [4 /*yield*/, enduserSDK.logout()];
1566
1566
  case 22:
1567
- _j.sent();
1567
+ _k.sent();
1568
1568
  return [4 /*yield*/, sdk.api.endusers.getOne(enduser.id)];
1569
1569
  case 23:
1570
- loggedOutEnduser = _j.sent();
1570
+ loggedOutEnduser = _k.sent();
1571
1571
  assert(new Date(loggedOutEnduser.lastLogout).getTime() > Date.now() - 100, 'lastLogout fail for enduser', 'lastLogout for enduser');
1572
1572
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1573
1573
  case 24:
1574
- _j.sent();
1574
+ _k.sent();
1575
1575
  return [4 /*yield*/, sdk.api.chat_rooms.deleteOne(emptyRoom.id)];
1576
1576
  case 25:
1577
- _j.sent();
1577
+ _k.sent();
1578
1578
  return [2 /*return*/];
1579
1579
  }
1580
1580
  });
@@ -1771,42 +1771,42 @@ var chat_tests = function () { return __awaiter(void 0, void 0, void 0, function
1771
1771
  }); };
1772
1772
  var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0, function () {
1773
1773
  var email, password, enduser, enduser2, uInfo, originalAuthToken, _loop_1, _a, _b, _c, _i, n, ticketAccessible, ticketInaccessible;
1774
- var _d, _e, _f, _g, _h, _j;
1775
- return __generator(this, function (_k) {
1776
- switch (_k.label) {
1774
+ var _d, _f, _g, _h, _j, _k;
1775
+ return __generator(this, function (_l) {
1776
+ switch (_l.label) {
1777
1777
  case 0:
1778
1778
  log_header("Enduser Access");
1779
1779
  email = 'enduser@tellescope.com';
1780
1780
  password = 'testpassword';
1781
1781
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: email })];
1782
1782
  case 1:
1783
- enduser = _k.sent();
1783
+ enduser = _l.sent();
1784
1784
  return [4 /*yield*/, sdk.api.endusers.createOne({ email: 'hi' + email })];
1785
1785
  case 2:
1786
- enduser2 = _k.sent();
1786
+ enduser2 = _l.sent();
1787
1787
  return [4 /*yield*/, sdk.api.endusers.set_password({ id: enduser.id, password: password }).catch(console.error)];
1788
1788
  case 3:
1789
- _k.sent();
1789
+ _l.sent();
1790
1790
  return [4 /*yield*/, enduserSDK.authenticate(email, password).catch(console.error)];
1791
1791
  case 4:
1792
- _k.sent();
1792
+ _l.sent();
1793
1793
  return [4 /*yield*/, wait(undefined, 1000)]; // wait so that refresh_session generates a new authToken (different timestamp)
1794
1794
  case 5:
1795
- _k.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1795
+ _l.sent(); // wait so that refresh_session generates a new authToken (different timestamp)
1796
1796
  uInfo = enduserSDK.userInfo;
1797
1797
  originalAuthToken = enduserSDK.authToken;
1798
1798
  return [4 /*yield*/, enduserSDK.refresh_session()];
1799
1799
  case 6:
1800
- _k.sent();
1800
+ _l.sent();
1801
1801
  assert(uInfo.id === enduserSDK.userInfo.id, 'userInfo mismatch', 'userInfo id preserved after refresh');
1802
1802
  assert(!!originalAuthToken && !!enduserSDK.authToken && enduserSDK.authToken !== originalAuthToken, 'same authToken after refresh', 'authToken refresh');
1803
1803
  return [4 /*yield*/, async_test("no-enduser-access for different businessId", function () { return enduserSDKDifferentBusinessId.authenticate(email, password); }, { shouldError: true, onError: function (e) { return (e === null || e === void 0 ? void 0 : e.message) === "Login details are invalid"; } })];
1804
1804
  case 7:
1805
- _k.sent();
1805
+ _l.sent();
1806
1806
  _loop_1 = function (n) {
1807
1807
  var endpoint, model;
1808
- return __generator(this, function (_l) {
1809
- switch (_l.label) {
1808
+ return __generator(this, function (_m) {
1809
+ switch (_m.label) {
1810
1810
  case 0:
1811
1811
  endpoint = url_safe_path(n);
1812
1812
  model = schema[n];
@@ -1815,38 +1815,38 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1815
1815
  if (!(!((_d = model === null || model === void 0 ? void 0 : model.enduserActions) === null || _d === void 0 ? void 0 : _d.read) && (model.defaultActions.read || model.customActions.read))) return [3 /*break*/, 2];
1816
1816
  return [4 /*yield*/, async_test("no-enduser-access getOne (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1817
1817
  case 1:
1818
- _l.sent();
1819
- _l.label = 2;
1818
+ _m.sent();
1819
+ _m.label = 2;
1820
1820
  case 2:
1821
- if (!(!((_e = model.enduserActions) === null || _e === void 0 ? void 0 : _e.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1821
+ if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.readMany) && (model.defaultActions.readMany || model.customActions.readMany))) return [3 /*break*/, 4];
1822
1822
  return [4 /*yield*/, async_test("no-enduser-access getSome (".concat(endpoint, ")"), function () { return enduserSDK.GET("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1823
1823
  case 3:
1824
- _l.sent();
1825
- _l.label = 4;
1824
+ _m.sent();
1825
+ _m.label = 4;
1826
1826
  case 4:
1827
- if (!(!((_f = model.enduserActions) === null || _f === void 0 ? void 0 : _f.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1827
+ if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.create) && (model.defaultActions.create || model.customActions.create))) return [3 /*break*/, 6];
1828
1828
  return [4 /*yield*/, async_test("no-enduser-access createOne (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint.substring(0, endpoint.length - 1))); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1829
1829
  case 5:
1830
- _l.sent();
1831
- _l.label = 6;
1830
+ _m.sent();
1831
+ _m.label = 6;
1832
1832
  case 6:
1833
- if (!(!((_g = model.enduserActions) === null || _g === void 0 ? void 0 : _g.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1833
+ if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.createMany) && (model.defaultActions.createMany || model.customActions.createMany))) return [3 /*break*/, 8];
1834
1834
  return [4 /*yield*/, async_test("no-enduser-access createMany (".concat(endpoint, ")"), function () { return enduserSDK.POST("/v1/".concat(endpoint)); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1835
1835
  case 7:
1836
- _l.sent();
1837
- _l.label = 8;
1836
+ _m.sent();
1837
+ _m.label = 8;
1838
1838
  case 8:
1839
- if (!(!((_h = model.enduserActions) === null || _h === void 0 ? void 0 : _h.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1839
+ if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.update) && (model.defaultActions.update || model.customActions.update))) return [3 /*break*/, 10];
1840
1840
  return [4 /*yield*/, async_test("no-enduser-access update (".concat(endpoint, ")"), function () { return enduserSDK.PATCH("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1841
1841
  case 9:
1842
- _l.sent();
1843
- _l.label = 10;
1842
+ _m.sent();
1843
+ _m.label = 10;
1844
1844
  case 10:
1845
- if (!(!((_j = model.enduserActions) === null || _j === void 0 ? void 0 : _j.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1845
+ if (!(!((_k = model.enduserActions) === null || _k === void 0 ? void 0 : _k.delete) && (model.defaultActions.delete || model.customActions.delete))) return [3 /*break*/, 12];
1846
1846
  return [4 /*yield*/, async_test("no-enduser-access delete (".concat(endpoint, ")"), function () { return enduserSDK.DELETE("/v1/".concat(endpoint.substring(0, endpoint.length - 1), "/:id")); }, { shouldError: true, onError: function (e) { return e === 'Unauthenticated' || (e === null || e === void 0 ? void 0 : e.message) === 'This action is not allowed'; } })];
1847
1847
  case 11:
1848
- _l.sent();
1849
- _l.label = 12;
1848
+ _m.sent();
1849
+ _m.label = 12;
1850
1850
  case 12: return [2 /*return*/];
1851
1851
  }
1852
1852
  });
@@ -1856,7 +1856,7 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1856
1856
  for (_c in _a)
1857
1857
  _b.push(_c);
1858
1858
  _i = 0;
1859
- _k.label = 8;
1859
+ _l.label = 8;
1860
1860
  case 8:
1861
1861
  if (!(_i < _b.length)) return [3 /*break*/, 11];
1862
1862
  _c = _b[_i];
@@ -1864,47 +1864,47 @@ var enduserAccessTests = function () { return __awaiter(void 0, void 0, void 0,
1864
1864
  n = _c;
1865
1865
  return [5 /*yield**/, _loop_1(n)];
1866
1866
  case 9:
1867
- _k.sent();
1868
- _k.label = 10;
1867
+ _l.sent();
1868
+ _l.label = 10;
1869
1869
  case 10:
1870
1870
  _i++;
1871
1871
  return [3 /*break*/, 8];
1872
1872
  case 11: return [4 /*yield*/, async_test("enduser can update self", function () { return enduserSDK.api.endusers.updateOne(enduser.id, { fname: "Sebastian", lname: "Coates" }); }, { onResult: function (e) { return e.id === enduser.id && e.fname === 'Sebastian' && e.lname === "Coates"; } })];
1873
1873
  case 12:
1874
- _k.sent();
1874
+ _l.sent();
1875
1875
  return [4 /*yield*/, async_test("enduser can't update other enduser", function () { return enduserSDK.api.endusers.updateOne(enduser2.id, { fname: "Shouldn't Work" }); }, { shouldError: true, onError: function (e) { return e.message === "Endusers may only update their own profile"; } })];
1876
1876
  case 13:
1877
- _k.sent();
1877
+ _l.sent();
1878
1878
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser.id, title: "Accessible ticket" })];
1879
1879
  case 14:
1880
- ticketAccessible = _k.sent();
1880
+ ticketAccessible = _l.sent();
1881
1881
  return [4 /*yield*/, sdk.api.tickets.createOne({ enduserId: enduser2.id, title: "Inaccessible ticket" })];
1882
1882
  case 15:
1883
- ticketInaccessible = _k.sent();
1883
+ ticketInaccessible = _l.sent();
1884
1884
  return [4 /*yield*/, async_test("enduser cannot create ticket for another enduser", function () { return enduserSDK.api.tickets.createOne({ enduserId: sdk.userInfo.id, title: "Error on Creation" }); }, { shouldError: true, onError: function (e) { return !!e.message; } })];
1885
1885
  case 16:
1886
- _k.sent();
1886
+ _l.sent();
1887
1887
  return [4 /*yield*/, async_test("enduser-access default, no access constraints, matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketAccessible.id); }, { onResult: function (t) { return t.id === ticketAccessible.id; } })];
1888
1888
  case 17:
1889
- _k.sent();
1889
+ _l.sent();
1890
1890
  return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, non-matching enduserId", function () { return enduserSDK.api.tickets.getOne(ticketInaccessible.id); }, { shouldError: true, onError: function (e) { return e.message.startsWith("Could not find"); } })];
1891
1891
  case 18:
1892
- _k.sent();
1892
+ _l.sent();
1893
1893
  return [4 /*yield*/, async_test("no-enduser-access default, no access constraints, get many", function () { return enduserSDK.api.tickets.getSome(); }, { onResult: function (ts) { return ts.length === 1; } })];
1894
1894
  case 19:
1895
- _k.sent();
1895
+ _l.sent();
1896
1896
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketAccessible.id)];
1897
1897
  case 20:
1898
- _k.sent();
1898
+ _l.sent();
1899
1899
  return [4 /*yield*/, sdk.api.tickets.deleteOne(ticketInaccessible.id)];
1900
1900
  case 21:
1901
- _k.sent();
1901
+ _l.sent();
1902
1902
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser.id)];
1903
1903
  case 22:
1904
- _k.sent();
1904
+ _l.sent();
1905
1905
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
1906
1906
  case 23:
1907
- _k.sent();
1907
+ _l.sent();
1908
1908
  return [2 /*return*/];
1909
1909
  }
1910
1910
  });
@@ -3500,26 +3500,26 @@ var automation_events_tests = function () { return __awaiter(void 0, void 0, voi
3500
3500
  }); };
3501
3501
  var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, void 0, function () {
3502
3502
  var enduser, journey1, journey2, journey3, form, field, active, dupActive, inactive, noConditions, equals, equalsFalse, existsTrue, existsFalse, doesNotContainTrue, doesNotContainFalse, containFalse, containTrue, accessCode;
3503
- var _a, _b, _c, _d, _e, _f, _g, _h;
3504
- return __generator(this, function (_j) {
3505
- switch (_j.label) {
3503
+ var _a, _b, _c, _d, _f, _g, _h, _j;
3504
+ return __generator(this, function (_k) {
3505
+ switch (_k.label) {
3506
3506
  case 0:
3507
3507
  log_header("Automation Trigger: Form Response --> Add To Journey");
3508
3508
  return [4 /*yield*/, sdk.api.endusers.createOne({ fname: 'test' })];
3509
3509
  case 1:
3510
- enduser = _j.sent();
3510
+ enduser = _k.sent();
3511
3511
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey' })];
3512
3512
  case 2:
3513
- journey1 = _j.sent();
3513
+ journey1 = _k.sent();
3514
3514
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey2' })];
3515
3515
  case 3:
3516
- journey2 = _j.sent();
3516
+ journey2 = _k.sent();
3517
3517
  return [4 /*yield*/, sdk.api.journeys.createOne({ title: 'journey3' })];
3518
3518
  case 4:
3519
- journey3 = _j.sent();
3519
+ journey3 = _k.sent();
3520
3520
  return [4 /*yield*/, sdk.api.forms.createOne({ title: 'form' })];
3521
3521
  case 5:
3522
- form = _j.sent();
3522
+ form = _k.sent();
3523
3523
  return [4 /*yield*/, sdk.api.form_fields.createOne({
3524
3524
  formId: form.id,
3525
3525
  type: 'string',
@@ -3532,7 +3532,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3532
3532
  ],
3533
3533
  })];
3534
3534
  case 6:
3535
- field = _j.sent();
3535
+ field = _k.sent();
3536
3536
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3537
3537
  event: { type: 'Form Submitted', info: { formId: form.id } },
3538
3538
  action: { type: 'Add To Journey', info: { journeyId: journey1.id } },
@@ -3540,7 +3540,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3540
3540
  title: "Active"
3541
3541
  })];
3542
3542
  case 7:
3543
- active = _j.sent();
3543
+ active = _k.sent();
3544
3544
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3545
3545
  event: { type: 'Form Submitted', info: { formId: form.id } },
3546
3546
  action: { type: 'Add To Journey', info: { journeyId: journey2.id } },
@@ -3548,7 +3548,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3548
3548
  title: "Dup Active"
3549
3549
  })];
3550
3550
  case 8:
3551
- dupActive = _j.sent();
3551
+ dupActive = _k.sent();
3552
3552
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3553
3553
  event: { type: 'Form Submitted', info: { formId: form.id } },
3554
3554
  action: { type: 'Add To Journey', info: { journeyId: journey3.id } },
@@ -3556,7 +3556,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3556
3556
  title: "Inactive"
3557
3557
  })];
3558
3558
  case 9:
3559
- inactive = _j.sent();
3559
+ inactive = _k.sent();
3560
3560
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3561
3561
  event: {
3562
3562
  type: 'Form Submitted',
@@ -3569,7 +3569,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3569
3569
  title: "No Conditions"
3570
3570
  })];
3571
3571
  case 10:
3572
- noConditions = _j.sent();
3572
+ noConditions = _k.sent();
3573
3573
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3574
3574
  event: {
3575
3575
  type: 'Form Submitted',
@@ -3591,7 +3591,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3591
3591
  title: "Equals"
3592
3592
  })];
3593
3593
  case 11:
3594
- equals = _j.sent();
3594
+ equals = _k.sent();
3595
3595
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3596
3596
  event: {
3597
3597
  type: 'Form Submitted',
@@ -3613,7 +3613,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3613
3613
  title: "Equals False"
3614
3614
  })];
3615
3615
  case 12:
3616
- equalsFalse = _j.sent();
3616
+ equalsFalse = _k.sent();
3617
3617
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3618
3618
  event: {
3619
3619
  type: 'Form Submitted',
@@ -3635,7 +3635,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3635
3635
  title: "Exists true"
3636
3636
  })];
3637
3637
  case 13:
3638
- existsTrue = _j.sent();
3638
+ existsTrue = _k.sent();
3639
3639
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3640
3640
  event: {
3641
3641
  type: 'Form Submitted',
@@ -3657,7 +3657,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3657
3657
  title: "Exists False"
3658
3658
  })];
3659
3659
  case 14:
3660
- existsFalse = _j.sent();
3660
+ existsFalse = _k.sent();
3661
3661
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3662
3662
  event: {
3663
3663
  type: 'Form Submitted',
@@ -3667,11 +3667,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3667
3667
  conditions: {
3668
3668
  "$and": [
3669
3669
  {
3670
- "condition": (_e = {},
3671
- _e[field.id] = {
3670
+ "condition": (_f = {},
3671
+ _f[field.id] = {
3672
3672
  "$doesNotContain": "tri2"
3673
3673
  },
3674
- _e)
3674
+ _f)
3675
3675
  }
3676
3676
  ]
3677
3677
  },
@@ -3681,7 +3681,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3681
3681
  title: "doesNotContainTrue"
3682
3682
  })];
3683
3683
  case 15:
3684
- doesNotContainTrue = _j.sent();
3684
+ doesNotContainTrue = _k.sent();
3685
3685
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3686
3686
  event: {
3687
3687
  type: 'Form Submitted',
@@ -3691,11 +3691,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3691
3691
  conditions: {
3692
3692
  "$and": [
3693
3693
  {
3694
- "condition": (_f = {},
3695
- _f[field.id] = {
3694
+ "condition": (_g = {},
3695
+ _g[field.id] = {
3696
3696
  "$doesNotContain": "tri"
3697
3697
  },
3698
- _f)
3698
+ _g)
3699
3699
  }
3700
3700
  ]
3701
3701
  },
@@ -3705,7 +3705,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3705
3705
  title: "doesNotContainFalse"
3706
3706
  })];
3707
3707
  case 16:
3708
- doesNotContainFalse = _j.sent();
3708
+ doesNotContainFalse = _k.sent();
3709
3709
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3710
3710
  event: {
3711
3711
  type: 'Form Submitted',
@@ -3715,11 +3715,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3715
3715
  conditions: {
3716
3716
  "$and": [
3717
3717
  {
3718
- "condition": (_g = {},
3719
- _g[field.id] = {
3718
+ "condition": (_h = {},
3719
+ _h[field.id] = {
3720
3720
  "$contains": "tri2"
3721
3721
  },
3722
- _g)
3722
+ _h)
3723
3723
  }
3724
3724
  ]
3725
3725
  },
@@ -3729,7 +3729,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3729
3729
  title: "containFalse"
3730
3730
  })];
3731
3731
  case 17:
3732
- containFalse = _j.sent();
3732
+ containFalse = _k.sent();
3733
3733
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
3734
3734
  event: {
3735
3735
  type: 'Form Submitted',
@@ -3739,11 +3739,11 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3739
3739
  conditions: {
3740
3740
  "$and": [
3741
3741
  {
3742
- "condition": (_h = {},
3743
- _h[field.id] = {
3742
+ "condition": (_j = {},
3743
+ _j[field.id] = {
3744
3744
  "$contains": "tri"
3745
3745
  },
3746
- _h)
3746
+ _j)
3747
3747
  }
3748
3748
  ]
3749
3749
  },
@@ -3753,13 +3753,13 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3753
3753
  title: "containTrue"
3754
3754
  })];
3755
3755
  case 18:
3756
- containTrue = _j.sent();
3756
+ containTrue = _k.sent();
3757
3757
  return [4 /*yield*/, sdk.api.form_responses.prepare_form_response({
3758
3758
  enduserId: enduser.id,
3759
3759
  formId: form.id,
3760
3760
  })];
3761
3761
  case 19:
3762
- accessCode = (_j.sent()).accessCode;
3762
+ accessCode = (_k.sent()).accessCode;
3763
3763
  return [4 /*yield*/, sdk.api.form_responses.submit_form_response({
3764
3764
  accessCode: accessCode,
3765
3765
  responses: [
@@ -3776,23 +3776,23 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3776
3776
  // allow triggers to happen
3777
3777
  ];
3778
3778
  case 20:
3779
- _j.sent();
3779
+ _k.sent();
3780
3780
  // allow triggers to happen
3781
3781
  return [4 /*yield*/, wait(undefined, 1000)];
3782
3782
  case 21:
3783
3783
  // allow triggers to happen
3784
- _j.sent();
3784
+ _k.sent();
3785
3785
  return [4 /*yield*/, async_test("Triggers with conditional works", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
3786
- var _a, _b, _c, _d, _e, _f;
3786
+ var _a, _b, _c, _d, _f, _g;
3787
3787
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Equals'))
3788
3788
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('contains'))
3789
3789
  && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('exists'))
3790
3790
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('No Conditions'))
3791
- && ((_e = e.tags) === null || _e === void 0 ? void 0 : _e.includes('doesNotContain'))
3792
- && !((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('No')));
3791
+ && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('doesNotContain'))
3792
+ && !((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('No')));
3793
3793
  } })];
3794
3794
  case 22:
3795
- _j.sent();
3795
+ _k.sent();
3796
3796
  return [4 /*yield*/, async_test("Automated triggers work", function () { return sdk.api.endusers.getOne(enduser.id); }, { onResult: function (e) {
3797
3797
  var _a, _b, _c;
3798
3798
  return !!(((_a = e.journeys) === null || _a === void 0 ? void 0 : _a[journey1.id]) === ''
@@ -3800,7 +3800,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3800
3800
  && ((_c = e.journeys) === null || _c === void 0 ? void 0 : _c[journey3.id]) === undefined);
3801
3801
  } })];
3802
3802
  case 23:
3803
- _j.sent();
3803
+ _k.sent();
3804
3804
  return [4 /*yield*/, Promise.all([
3805
3805
  sdk.api.journeys.deleteOne(journey1.id),
3806
3806
  sdk.api.journeys.deleteOne(journey2.id),
@@ -3821,7 +3821,7 @@ var formSubmittedTriggerTests = function () { return __awaiter(void 0, void 0, v
3821
3821
  sdk.api.automation_triggers.deleteOne(doesNotContainFalse.id),
3822
3822
  ])];
3823
3823
  case 24:
3824
- _j.sent();
3824
+ _k.sent();
3825
3825
  return [2 /*return*/];
3826
3826
  }
3827
3827
  });
@@ -5429,8 +5429,8 @@ var auto_reply_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5429
5429
  }); };
5430
5430
  var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5431
5431
  var _a, source, destination, otherEnduser, _b, emailToMove, email, _c, eventToMove, event, _d, roomToMove, room, chatToMove, chat;
5432
- return __generator(this, function (_e) {
5433
- switch (_e.label) {
5432
+ return __generator(this, function (_f) {
5433
+ switch (_f.label) {
5434
5434
  case 0:
5435
5435
  log_header("Merge Endusers");
5436
5436
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5439,68 +5439,68 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
5439
5439
  { email: 'other@tellescope.com' },
5440
5440
  ])];
5441
5441
  case 1:
5442
- _a = (_e.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
5442
+ _a = (_f.sent()).created, source = _a[0], destination = _a[1], otherEnduser = _a[2];
5443
5443
  return [4 /*yield*/, sdk.api.emails.createSome([
5444
5444
  { enduserId: source.id, subject: 'subject', logOnly: true, textContent: 'email' },
5445
5445
  { enduserId: otherEnduser.id, subject: 'subject', logOnly: true, textContent: 'email' },
5446
5446
  ])];
5447
5447
  case 2:
5448
- _b = (_e.sent()).created, emailToMove = _b[0], email = _b[1];
5448
+ _b = (_f.sent()).created, emailToMove = _b[0], email = _b[1];
5449
5449
  return [4 /*yield*/, sdk.api.calendar_events.createSome([
5450
5450
  { attendees: [{ type: 'enduser', id: source.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
5451
5451
  { attendees: [{ type: 'enduser', id: otherEnduser.id }], durationInMinutes: 5, startTimeInMS: Date.now(), title: 'title' },
5452
5452
  ])];
5453
5453
  case 3:
5454
- _c = (_e.sent()).created, eventToMove = _c[0], event = _c[1];
5454
+ _c = (_f.sent()).created, eventToMove = _c[0], event = _c[1];
5455
5455
  return [4 /*yield*/, sdk.api.chat_rooms.createSome([
5456
5456
  { enduserIds: [source.id], title: 'title' },
5457
5457
  { enduserIds: [otherEnduser.id], title: 'title' },
5458
5458
  ])];
5459
5459
  case 4:
5460
- _d = (_e.sent()).created, roomToMove = _d[0], room = _d[1];
5460
+ _d = (_f.sent()).created, roomToMove = _d[0], room = _d[1];
5461
5461
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: roomToMove.id, senderId: source.id, message: 'test' })];
5462
5462
  case 5:
5463
- chatToMove = _e.sent();
5463
+ chatToMove = _f.sent();
5464
5464
  return [4 /*yield*/, sdk.api.chats.createOne({
5465
5465
  roomId: room.id, senderId: otherEnduser.id, message: 'test'
5466
5466
  })];
5467
5467
  case 6:
5468
- chat = _e.sent();
5468
+ chat = _f.sent();
5469
5469
  return [4 /*yield*/, sdk.api.endusers.merge({ sourceEnduserId: source.id, destinationEnduserId: destination.id })];
5470
5470
  case 7:
5471
- _e.sent();
5471
+ _f.sent();
5472
5472
  return [4 /*yield*/, async_test("Source is deleted", function () { return sdk.api.endusers.getOne(source.id); }, handleAnyError)];
5473
5473
  case 8:
5474
- _e.sent();
5474
+ _f.sent();
5475
5475
  return [4 /*yield*/, async_test("Destination merged", function () { return sdk.api.endusers.getOne(destination.id); }, { onResult: function (e) { return (e.email === destination.email
5476
5476
  && e.fname === source.fname
5477
5477
  && e.lname === source.lname); } })];
5478
5478
  case 9:
5479
- _e.sent();
5479
+ _f.sent();
5480
5480
  return [4 /*yield*/, async_test("Other email is unchanged", function () { return sdk.api.emails.getOne(email.id); }, { onResult: function (e) { return e.enduserId === otherEnduser.id; } })];
5481
5481
  case 10:
5482
- _e.sent();
5482
+ _f.sent();
5483
5483
  return [4 /*yield*/, async_test("Other event is unchanged", function () { return sdk.api.calendar_events.getOne(event.id); }, { onResult: function (e) { var _a; return ((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!e.attendees.find(function (e) { return e.id === otherEnduser.id; }); } })];
5484
5484
  case 11:
5485
- _e.sent();
5485
+ _f.sent();
5486
5486
  return [4 /*yield*/, async_test("Other room is unchanged", function () { return sdk.api.chat_rooms.getOne(room.id); }, { onResult: function (e) { var _a, _b; return ((_a = room.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.find(function (id) { return id === otherEnduser.id; })); } })];
5487
5487
  case 12:
5488
- _e.sent();
5488
+ _f.sent();
5489
5489
  return [4 /*yield*/, async_test("Other chat is unchanged", function () { return sdk.api.chats.getOne(chat.id); }, { onResult: function (e) { return e.senderId === otherEnduser.id; } })];
5490
5490
  case 13:
5491
- _e.sent();
5491
+ _f.sent();
5492
5492
  return [4 /*yield*/, async_test("Email moved", function () { return sdk.api.emails.getOne(emailToMove.id); }, { onResult: function (e) { return e.enduserId === destination.id; } })];
5493
5493
  case 14:
5494
- _e.sent();
5494
+ _f.sent();
5495
5495
  return [4 /*yield*/, async_test("Chat moved", function () { return sdk.api.chats.getOne(chatToMove.id); }, { onResult: function (e) { return e.senderId === destination.id; } })];
5496
5496
  case 15:
5497
- _e.sent();
5497
+ _f.sent();
5498
5498
  return [4 /*yield*/, async_test("Room moved", function () { return sdk.api.chat_rooms.getOne(roomToMove.id); }, { onResult: function (e) { var _a, _b; return ((_a = e.enduserIds) === null || _a === void 0 ? void 0 : _a.length) === 1 && !!((_b = e.enduserIds) === null || _b === void 0 ? void 0 : _b.includes(destination.id)); } })];
5499
5499
  case 16:
5500
- _e.sent();
5500
+ _f.sent();
5501
5501
  return [4 /*yield*/, async_test("Event moved", function () { return sdk.api.calendar_events.getOne(eventToMove.id); }, { onResult: function (e) { var _a; return e.attendees.length === 1 && !!((_a = e.attendees) === null || _a === void 0 ? void 0 : _a.find(function (a) { return a.id === destination.id; })); } })];
5502
5502
  case 17:
5503
- _e.sent();
5503
+ _f.sent();
5504
5504
  return [4 /*yield*/, Promise.all([
5505
5505
  sdk.api.endusers.deleteOne(destination.id),
5506
5506
  sdk.api.endusers.deleteOne(otherEnduser.id),
@@ -5508,7 +5508,7 @@ var merge_enduser_tests = function () { return __awaiter(void 0, void 0, void 0,
5508
5508
  sdk.api.calendar_events.deleteOne(eventToMove.id),
5509
5509
  ])];
5510
5510
  case 18:
5511
- _e.sent();
5511
+ _f.sent();
5512
5512
  return [2 /*return*/];
5513
5513
  }
5514
5514
  });
@@ -5608,8 +5608,8 @@ var wait_for_trigger_tests = function () { return __awaiter(void 0, void 0, void
5608
5608
  var handleRateLimitError = { shouldError: true, onError: function (e) { return e.message === 'Rate limit exceeded'; } };
5609
5609
  var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5610
5610
  var _a, e1, e2, _b, email1, email2, _c, sms1, sms2, _d, email3, email4, email5;
5611
- return __generator(this, function (_e) {
5612
- switch (_e.label) {
5611
+ return __generator(this, function (_f) {
5612
+ switch (_f.label) {
5613
5613
  case 0:
5614
5614
  log_header("Rate Limits");
5615
5615
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5617,7 +5617,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5617
5617
  { fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
5618
5618
  ])];
5619
5619
  case 1:
5620
- _a = (_e.sent()).created, e1 = _a[0], e2 = _a[1];
5620
+ _a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
5621
5621
  return [4 /*yield*/, async_test("Same template email rate limit 1-per-minute", function () { return sdk.api.emails.createSome([
5622
5622
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
5623
5623
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
@@ -5625,13 +5625,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5625
5625
  // these should work, as 1 each is safe
5626
5626
  ];
5627
5627
  case 2:
5628
- _e.sent();
5628
+ _f.sent();
5629
5629
  return [4 /*yield*/, sdk.api.emails.createSome([
5630
5630
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
5631
5631
  { logOnly: true, enduserId: e2.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID },
5632
5632
  ])];
5633
5633
  case 3:
5634
- _b = (_e.sent()).created, email1 = _b[0], email2 = _b[1];
5634
+ _b = (_f.sent()).created, email1 = _b[0], email2 = _b[1];
5635
5635
  // already has 1 created
5636
5636
  return [4 /*yield*/, async_test("Same enduser rate limit 5 per 5 seconds", function () { return sdk.api.emails.createSome([
5637
5637
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', },
@@ -5642,15 +5642,15 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5642
5642
  ]); }, handleRateLimitError)];
5643
5643
  case 4:
5644
5644
  // already has 1 created
5645
- _e.sent();
5645
+ _f.sent();
5646
5646
  return [4 /*yield*/, wait(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5647
5647
  case 5:
5648
- _e.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5648
+ _f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5649
5649
  return [4 /*yield*/, async_test("Same template email rate limit 1-per-minute after creating", function () { return sdk.api.emails.createOne({
5650
5650
  logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit', templateId: PLACEHOLDER_ID
5651
5651
  }); }, handleRateLimitError)];
5652
5652
  case 6:
5653
- _e.sent();
5653
+ _f.sent();
5654
5654
  return [4 /*yield*/, async_test("Same template sms rate limit 1-per-minute", function () { return sdk.api.sms_messages.createSome([
5655
5655
  { logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
5656
5656
  { logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
@@ -5658,13 +5658,13 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5658
5658
  // these should work, as 1 each is safe
5659
5659
  ];
5660
5660
  case 7:
5661
- _e.sent();
5661
+ _f.sent();
5662
5662
  return [4 /*yield*/, sdk.api.sms_messages.createSome([
5663
5663
  { logOnly: true, enduserId: e1.id, templateId: PLACEHOLDER_ID, message: 'hi' },
5664
5664
  { logOnly: true, enduserId: e2.id, templateId: PLACEHOLDER_ID, message: 'hi' },
5665
5665
  ])];
5666
5666
  case 8:
5667
- _c = (_e.sent()).created, sms1 = _c[0], sms2 = _c[1];
5667
+ _c = (_f.sent()).created, sms1 = _c[0], sms2 = _c[1];
5668
5668
  // already has 1 created, so 3 new should error (4 > 3)
5669
5669
  return [4 /*yield*/, async_test("Same enduser sms rate limit 3 per 3 seconds", function () { return sdk.api.sms_messages.createSome([
5670
5670
  { logOnly: true, enduserId: e1.id, message: 'hi' },
@@ -5673,24 +5673,24 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5673
5673
  ]); }, handleRateLimitError)];
5674
5674
  case 9:
5675
5675
  // already has 1 created, so 3 new should error (4 > 3)
5676
- _e.sent();
5676
+ _f.sent();
5677
5677
  return [4 /*yield*/, wait(undefined, 2500)]; // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5678
5678
  case 10:
5679
- _e.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5679
+ _f.sent(); // give it some time before trying again, to ensure still blocked after 2.5 < 60 seconds
5680
5680
  return [4 /*yield*/, async_test("Same template sms rate limit 1-per-minute after creating", function () { return sdk.api.sms_messages.createOne({
5681
5681
  logOnly: true, enduserId: e2.id, templateId: PLACEHOLDER_ID, message: 'hi'
5682
5682
  }); }, handleRateLimitError)
5683
5683
  // these should work, as they do not have the same template
5684
5684
  ];
5685
5685
  case 11:
5686
- _e.sent();
5686
+ _f.sent();
5687
5687
  return [4 /*yield*/, sdk.api.emails.createSome([
5688
5688
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5689
5689
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5690
5690
  { logOnly: true, enduserId: e1.id, subject: 'ratelimit', textContent: 'rate limit' },
5691
5691
  ])];
5692
5692
  case 12:
5693
- _d = (_e.sent()).created, email3 = _d[0], email4 = _d[1], email5 = _d[2];
5693
+ _d = (_f.sent()).created, email3 = _d[0], email4 = _d[1], email5 = _d[2];
5694
5694
  return [4 /*yield*/, Promise.all([
5695
5695
  sdk.api.endusers.deleteOne(e1.id),
5696
5696
  sdk.api.endusers.deleteOne(e2.id),
@@ -5703,7 +5703,7 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5703
5703
  sdk.api.sms_messages.deleteOne(sms2.id),
5704
5704
  ])];
5705
5705
  case 13:
5706
- _e.sent();
5706
+ _f.sent();
5707
5707
  return [2 /*return*/];
5708
5708
  }
5709
5709
  });
@@ -5711,8 +5711,8 @@ var rate_limit_tests = function () { return __awaiter(void 0, void 0, void 0, fu
5711
5711
  var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
5712
5712
  var _a, e1, e2, _b, jRemove, jDontRemove, removeStep1, removeStep2, dontRemoveStep1, dontRemoveStep2, room;
5713
5713
  var _c, _d;
5714
- return __generator(this, function (_e) {
5715
- switch (_e.label) {
5714
+ return __generator(this, function (_f) {
5715
+ switch (_f.label) {
5716
5716
  case 0:
5717
5717
  log_header("Remove From Journey (Incoming Comms)");
5718
5718
  return [4 /*yield*/, sdk.api.endusers.createSome([
@@ -5720,56 +5720,56 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5720
5720
  { fname: '2', email: 'e2@tellescope.com', phone: '+15555555555' },
5721
5721
  ])];
5722
5722
  case 1:
5723
- _a = (_e.sent()).created, e1 = _a[0], e2 = _a[1];
5723
+ _a = (_f.sent()).created, e1 = _a[0], e2 = _a[1];
5724
5724
  return [4 /*yield*/, sdk.api.journeys.createSome([
5725
5725
  { title: "j1", onIncomingEnduserCommunication: 'Remove' },
5726
5726
  { title: "j2" },
5727
5727
  ])];
5728
5728
  case 2:
5729
- _b = (_e.sent()).created, jRemove = _b[0], jDontRemove = _b[1];
5729
+ _b = (_f.sent()).created, jRemove = _b[0], jDontRemove = _b[1];
5730
5730
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5731
5731
  journeyId: jRemove.id,
5732
5732
  events: [{ type: 'onJourneyStart', info: {} }],
5733
5733
  action: { type: 'setEnduserStatus', info: { status: 'Started' } },
5734
5734
  })];
5735
5735
  case 3:
5736
- removeStep1 = _e.sent();
5736
+ removeStep1 = _f.sent();
5737
5737
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5738
5738
  journeyId: jRemove.id,
5739
5739
  events: [{ type: 'afterAction', info: { automationStepId: removeStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
5740
5740
  action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
5741
5741
  })];
5742
5742
  case 4:
5743
- removeStep2 = _e.sent();
5743
+ removeStep2 = _f.sent();
5744
5744
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5745
5745
  journeyId: jDontRemove.id,
5746
5746
  events: [{ type: 'onJourneyStart', info: {} }],
5747
5747
  action: { type: 'setEnduserStatus', info: { status: 'Started' } },
5748
5748
  })];
5749
5749
  case 5:
5750
- dontRemoveStep1 = _e.sent();
5750
+ dontRemoveStep1 = _f.sent();
5751
5751
  return [4 /*yield*/, sdk.api.automation_steps.createOne({
5752
5752
  journeyId: jDontRemove.id,
5753
5753
  events: [{ type: 'afterAction', info: { automationStepId: dontRemoveStep1.id, delay: 0, delayInMS: 1000000, unit: 'Days' } }],
5754
5754
  action: { type: 'setEnduserStatus', info: { status: 'Continued' } },
5755
5755
  })];
5756
5756
  case 6:
5757
- dontRemoveStep2 = _e.sent();
5757
+ dontRemoveStep2 = _f.sent();
5758
5758
  return [4 /*yield*/, sdk.api.endusers.updateOne(e1.id, { journeys: (_c = {}, _c[jRemove.id] = '', _c[jDontRemove.id] = '', _c) })];
5759
5759
  case 7:
5760
- _e.sent();
5760
+ _f.sent();
5761
5761
  return [4 /*yield*/, sdk.api.endusers.updateOne(e2.id, { journeys: (_d = {}, _d[jRemove.id] = '', _d[jDontRemove.id] = '', _d) })];
5762
5762
  case 8:
5763
- _e.sent();
5763
+ _f.sent();
5764
5764
  return [4 /*yield*/, wait(undefined, 100)];
5765
5765
  case 9:
5766
- _e.sent();
5766
+ _f.sent();
5767
5767
  return [4 /*yield*/, sdk.api.chat_rooms.createOne({})];
5768
5768
  case 10:
5769
- room = _e.sent();
5769
+ room = _f.sent();
5770
5770
  return [4 /*yield*/, sdk.api.chats.createOne({ roomId: room.id, senderId: e1.id, message: 'cancel' })];
5771
5771
  case 11:
5772
- _e.sent();
5772
+ _f.sent();
5773
5773
  return [4 /*yield*/, async_test("Appropriate Automated Actions are cancelled on incoming message", function () { return pollForResults(sdk.api.automated_actions.getSome, function (actions) { return (!!actions.find(function (a) {
5774
5774
  return a.journeyId === jRemove.id
5775
5775
  && a.automationStepId === removeStep1.id
@@ -5795,10 +5795,10 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5795
5795
  && a.status === 'active';
5796
5796
  })); }, 25, 400); }, passOnAnyResult)];
5797
5797
  case 12:
5798
- _e.sent();
5798
+ _f.sent();
5799
5799
  return [4 /*yield*/, sdk.api.journeys.handle_incoming_communication({ enduserId: e2.id })];
5800
5800
  case 13:
5801
- _e.sent();
5801
+ _f.sent();
5802
5802
  return [4 /*yield*/, async_test("handle_incoming_communication test for other enduser", function () { return pollForResults(sdk.api.automated_actions.getSome, function (actions) { return (!!actions.find(function (a) {
5803
5803
  return a.journeyId === jRemove.id
5804
5804
  && a.automationStepId === removeStep1.id
@@ -5806,7 +5806,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5806
5806
  && a.status === 'cancelled';
5807
5807
  })); }, 100, 25); }, passOnAnyResult)];
5808
5808
  case 14:
5809
- _e.sent();
5809
+ _f.sent();
5810
5810
  return [4 /*yield*/, Promise.all([
5811
5811
  sdk.api.endusers.deleteOne(e1.id),
5812
5812
  sdk.api.endusers.deleteOne(e2.id),
@@ -5815,7 +5815,7 @@ var remove_from_journey_on_incoming_comms_tests = function () { return __awaiter
5815
5815
  sdk.api.chat_rooms.deleteOne(room.id),
5816
5816
  ])];
5817
5817
  case 15:
5818
- _e.sent();
5818
+ _f.sent();
5819
5819
  return [2 /*return*/];
5820
5820
  }
5821
5821
  });
@@ -7518,11 +7518,11 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
7518
7518
  case 14:
7519
7519
  _a.sent();
7520
7520
  return [4 /*yield*/, async_test("Reminder processed after delay", function () { return pollForResults(function () { return sdk.api.tickets.getOne(tToRemind.id); }, function (t) {
7521
- var _a, _b, _c, _d, _e, _f;
7521
+ var _a, _b, _c, _d, _f, _g;
7522
7522
  return (((_b = (_a = t.reminders) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.didRemind) === true
7523
7523
  && t.nextReminderInMS === -1
7524
7524
  && ((_d = (_c = t.reminders) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.didRemind) === true
7525
- && ((_f = (_e = t.reminders) === null || _e === void 0 ? void 0 : _e.filter(function (r) { return r.didRemind; })) === null || _f === void 0 ? void 0 : _f.length) === 2);
7525
+ && ((_g = (_f = t.reminders) === null || _f === void 0 ? void 0 : _f.filter(function (r) { return r.didRemind; })) === null || _g === void 0 ? void 0 : _g.length) === 2);
7526
7526
  }, 100, 50); }, passOnAnyResult)
7527
7527
  // cleanup
7528
7528
  ];
@@ -7537,26 +7537,67 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
7537
7537
  }
7538
7538
  });
7539
7539
  }); };
7540
+ var bulk_read_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
7541
+ var numEndusers, endusers, _i, endusers_1, e;
7542
+ return __generator(this, function (_a) {
7543
+ switch (_a.label) {
7544
+ case 0:
7545
+ log_header("Bulk Read (ID-lookup) Tests");
7546
+ numEndusers = 101;
7547
+ return [4 /*yield*/, sdk.api.endusers.createSome(Array.from(Array(numEndusers).keys()).map(function () { return 0; }).map(function () { return ({}); }))];
7548
+ case 1:
7549
+ endusers = (_a.sent()).created;
7550
+ return [4 /*yield*/, async_test("bulk id lookup isn't limited to 100 (default for backend)", function () { return sdk.api.endusers.getByIds({ ids: endusers.map(function (e) { return e.id; }) }); }, { onResult: function (result) { return (result.matches.length === numEndusers
7551
+ && result.matches.filter(function (e) { return endusers.find(function (_e) { return _e.id === e.id; }); }).length === result.matches.length); } })];
7552
+ case 2:
7553
+ _a.sent();
7554
+ return [4 /*yield*/, async_test("bulk id lookup limited to 1000 (success)", function () { return sdk.api.endusers.getByIds({ ids: Array.from(Array(1000).keys()).map(function () { return endusers[0].id; }) }); }, passOnAnyResult)];
7555
+ case 3:
7556
+ _a.sent();
7557
+ return [4 /*yield*/, async_test("bulk id lookup limited to 1000", function () { return sdk.api.endusers.getByIds({ ids: Array.from(Array(1001).keys()).map(function () { return endusers[0].id; }) }); }, {
7558
+ shouldError: true,
7559
+ onError: function (e) { return e.message === 'Error parsing field ids: Arrays should not contain more than 1000 elements'; }
7560
+ })
7561
+ // cleanup
7562
+ ];
7563
+ case 4:
7564
+ _a.sent();
7565
+ _i = 0, endusers_1 = endusers;
7566
+ _a.label = 5;
7567
+ case 5:
7568
+ if (!(_i < endusers_1.length)) return [3 /*break*/, 8];
7569
+ e = endusers_1[_i];
7570
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(e.id)];
7571
+ case 6:
7572
+ _a.sent();
7573
+ _a.label = 7;
7574
+ case 7:
7575
+ _i++;
7576
+ return [3 /*break*/, 5];
7577
+ case 8: return [2 /*return*/];
7578
+ }
7579
+ });
7580
+ }); };
7540
7581
  (function () { return __awaiter(void 0, void 0, void 0, function () {
7541
- var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _e, _f, _g, err_2;
7542
- var _h, _j;
7543
- return __generator(this, function (_k) {
7544
- switch (_k.label) {
7582
+ var err_1, n, _a, _b, _c, _i, returnValidation, t, _d, _f, _g, _h, err_2;
7583
+ var _j, _k;
7584
+ return __generator(this, function (_l) {
7585
+ switch (_l.label) {
7545
7586
  case 0:
7546
7587
  log_header("API");
7547
7588
  return [4 /*yield*/, async_test("email-image tracking endpoint is live", function () { return axios.get('http://localhost:8080/email-image/'); }, { onResult: function (result) { return result.data === TRACK_OPEN_IMAGE.toString('utf-8'); } })];
7548
7589
  case 1:
7549
- _k.sent();
7550
- _k.label = 2;
7590
+ _l.sent();
7591
+ _l.label = 2;
7551
7592
  case 2:
7552
- _k.trys.push([2, 44, , 45]);
7593
+ _l.trys.push([2, 45, , 46]);
7553
7594
  form_conditional_logic_tests();
7554
7595
  return [4 /*yield*/, test_weighted_round_robin()];
7555
7596
  case 3:
7556
- _k.sent();
7597
+ _l.sent();
7557
7598
  return [4 /*yield*/, validate_schema()];
7558
7599
  case 4:
7559
- _k.sent();
7600
+ _l.sent();
7560
7601
  return [4 /*yield*/, Promise.all([
7561
7602
  sdk.authenticate(email, password),
7562
7603
  sdkSub.authenticate(subUserEmail, password),
@@ -7567,128 +7608,131 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
7567
7608
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7568
7609
  ];
7569
7610
  case 5:
7570
- _k.sent();
7611
+ _l.sent();
7571
7612
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7572
7613
  return [4 /*yield*/, async_test("count exists",
7573
7614
  // @ts-ignore
7574
7615
  function () { return sdk.api.endusers.getSome({ returnCount: true }); }, { onResult: function (result) { return typeof result.count === 'number'; } })];
7575
7616
  case 6:
7576
7617
  // console.log(JSON.stringify(await sdk.bulk_load({ load: [{ model: 'users' }]}), null, 2))
7577
- _k.sent();
7618
+ _l.sent();
7578
7619
  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'; } })];
7579
7620
  case 7:
7580
- _k.sent();
7621
+ _l.sent();
7581
7622
  return [4 /*yield*/, mfa_tests()];
7582
7623
  case 8:
7583
- _k.sent();
7624
+ _l.sent();
7584
7625
  return [4 /*yield*/, setup_tests()];
7585
7626
  case 9:
7586
- _k.sent();
7627
+ _l.sent();
7587
7628
  return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
7588
7629
  case 10:
7589
- _k.sent(); // should come right after setup tests
7590
- return [4 /*yield*/, ticket_reminder_tests()];
7630
+ _l.sent(); // should come right after setup tests
7631
+ return [4 /*yield*/, bulk_read_tests()];
7591
7632
  case 11:
7592
- _k.sent();
7593
- return [4 /*yield*/, enduser_access_tags_tests()];
7633
+ _l.sent();
7634
+ return [4 /*yield*/, ticket_reminder_tests()];
7594
7635
  case 12:
7595
- _k.sent();
7596
- return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7636
+ _l.sent();
7637
+ return [4 /*yield*/, enduser_access_tags_tests()];
7597
7638
  case 13:
7598
- _k.sent();
7599
- return [4 /*yield*/, unique_strings_tests()];
7639
+ _l.sent();
7640
+ return [4 /*yield*/, marketing_email_unsubscribe_tests()];
7600
7641
  case 14:
7601
- _k.sent();
7602
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
7642
+ _l.sent();
7643
+ return [4 /*yield*/, unique_strings_tests()];
7603
7644
  case 15:
7604
- _k.sent();
7605
- return [4 /*yield*/, alternate_phones_tests()];
7645
+ _l.sent();
7646
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
7606
7647
  case 16:
7607
- _k.sent();
7608
- return [4 /*yield*/, ticket_queue_tests()];
7648
+ _l.sent();
7649
+ return [4 /*yield*/, alternate_phones_tests()];
7609
7650
  case 17:
7610
- _k.sent();
7611
- return [4 /*yield*/, no_chained_triggers_tests()];
7651
+ _l.sent();
7652
+ return [4 /*yield*/, ticket_queue_tests()];
7612
7653
  case 18:
7613
- _k.sent();
7614
- return [4 /*yield*/, field_equals_trigger_tests()];
7654
+ _l.sent();
7655
+ return [4 /*yield*/, no_chained_triggers_tests()];
7615
7656
  case 19:
7616
- _k.sent();
7617
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7657
+ _l.sent();
7658
+ return [4 /*yield*/, field_equals_trigger_tests()];
7618
7659
  case 20:
7619
- _k.sent();
7620
- return [4 /*yield*/, role_based_access_tests()];
7660
+ _l.sent();
7661
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
7621
7662
  case 21:
7622
- _k.sent();
7623
- return [4 /*yield*/, automation_trigger_tests()];
7663
+ _l.sent();
7664
+ return [4 /*yield*/, role_based_access_tests()];
7624
7665
  case 22:
7625
- _k.sent();
7626
- return [4 /*yield*/, enduser_session_tests()];
7666
+ _l.sent();
7667
+ return [4 /*yield*/, automation_trigger_tests()];
7627
7668
  case 23:
7628
- _k.sent();
7629
- return [4 /*yield*/, nextReminderInMS_tests()];
7669
+ _l.sent();
7670
+ return [4 /*yield*/, enduser_session_tests()];
7630
7671
  case 24:
7631
- _k.sent();
7632
- return [4 /*yield*/, search_tests()];
7672
+ _l.sent();
7673
+ return [4 /*yield*/, nextReminderInMS_tests()];
7633
7674
  case 25:
7634
- _k.sent();
7635
- return [4 /*yield*/, wait_for_trigger_tests()];
7675
+ _l.sent();
7676
+ return [4 /*yield*/, search_tests()];
7636
7677
  case 26:
7637
- _k.sent();
7638
- return [4 /*yield*/, pdf_generation()];
7678
+ _l.sent();
7679
+ return [4 /*yield*/, wait_for_trigger_tests()];
7639
7680
  case 27:
7640
- _k.sent();
7641
- return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7681
+ _l.sent();
7682
+ return [4 /*yield*/, pdf_generation()];
7642
7683
  case 28:
7643
- _k.sent();
7644
- return [4 /*yield*/, rate_limit_tests()];
7684
+ _l.sent();
7685
+ return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests()];
7645
7686
  case 29:
7646
- _k.sent();
7647
- return [4 /*yield*/, merge_enduser_tests()];
7687
+ _l.sent();
7688
+ return [4 /*yield*/, rate_limit_tests()];
7648
7689
  case 30:
7649
- _k.sent();
7650
- return [4 /*yield*/, auto_reply_tests()];
7690
+ _l.sent();
7691
+ return [4 /*yield*/, merge_enduser_tests()];
7651
7692
  case 31:
7652
- _k.sent();
7653
- return [4 /*yield*/, sub_organization_enduser_tests()];
7693
+ _l.sent();
7694
+ return [4 /*yield*/, auto_reply_tests()];
7654
7695
  case 32:
7655
- _k.sent();
7656
- return [4 /*yield*/, sub_organization_tests()];
7696
+ _l.sent();
7697
+ return [4 /*yield*/, sub_organization_enduser_tests()];
7657
7698
  case 33:
7658
- _k.sent();
7659
- return [4 /*yield*/, filter_by_date_tests()];
7699
+ _l.sent();
7700
+ return [4 /*yield*/, sub_organization_tests()];
7660
7701
  case 34:
7661
- _k.sent();
7662
- return [4 /*yield*/, generate_user_auth_tests()];
7702
+ _l.sent();
7703
+ return [4 /*yield*/, filter_by_date_tests()];
7663
7704
  case 35:
7664
- _k.sent();
7665
- return [4 /*yield*/, generateEnduserAuthTests()];
7705
+ _l.sent();
7706
+ return [4 /*yield*/, generate_user_auth_tests()];
7666
7707
  case 36:
7667
- _k.sent();
7668
- return [4 /*yield*/, public_form_tests()];
7708
+ _l.sent();
7709
+ return [4 /*yield*/, generateEnduserAuthTests()];
7669
7710
  case 37:
7670
- _k.sent();
7671
- return [4 /*yield*/, badInputTests()];
7711
+ _l.sent();
7712
+ return [4 /*yield*/, public_form_tests()];
7672
7713
  case 38:
7673
- _k.sent();
7674
- return [4 /*yield*/, filterTests()];
7714
+ _l.sent();
7715
+ return [4 /*yield*/, badInputTests()];
7675
7716
  case 39:
7676
- _k.sent();
7677
- return [4 /*yield*/, updatesTests()];
7717
+ _l.sent();
7718
+ return [4 /*yield*/, filterTests()];
7678
7719
  case 40:
7679
- _k.sent();
7680
- return [4 /*yield*/, threadKeyTests()];
7720
+ _l.sent();
7721
+ return [4 /*yield*/, updatesTests()];
7681
7722
  case 41:
7682
- _k.sent();
7683
- return [4 /*yield*/, enduserAccessTests()];
7723
+ _l.sent();
7724
+ return [4 /*yield*/, threadKeyTests()];
7684
7725
  case 42:
7685
- _k.sent();
7686
- return [4 /*yield*/, enduser_redaction_tests()];
7726
+ _l.sent();
7727
+ return [4 /*yield*/, enduserAccessTests()];
7687
7728
  case 43:
7688
- _k.sent();
7689
- return [3 /*break*/, 45];
7729
+ _l.sent();
7730
+ return [4 /*yield*/, enduser_redaction_tests()];
7690
7731
  case 44:
7691
- err_1 = _k.sent();
7732
+ _l.sent();
7733
+ return [3 /*break*/, 46];
7734
+ case 45:
7735
+ err_1 = _l.sent();
7692
7736
  console.error("Failed during custom test");
7693
7737
  if (err_1.message && err_1.info) {
7694
7738
  console.error(err_1.message, JSON.stringify(err_1.info, null, 2));
@@ -7697,20 +7741,20 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
7697
7741
  console.error(err_1);
7698
7742
  }
7699
7743
  process.exit(1);
7700
- return [3 /*break*/, 45];
7701
- case 45:
7744
+ return [3 /*break*/, 46];
7745
+ case 46:
7702
7746
  _a = schema;
7703
7747
  _b = [];
7704
7748
  for (_c in _a)
7705
7749
  _b.push(_c);
7706
7750
  _i = 0;
7707
- _k.label = 46;
7708
- case 46:
7709
- if (!(_i < _b.length)) return [3 /*break*/, 49];
7751
+ _l.label = 47;
7752
+ case 47:
7753
+ if (!(_i < _b.length)) return [3 /*break*/, 50];
7710
7754
  _c = _b[_i];
7711
- if (!(_c in _a)) return [3 /*break*/, 48];
7755
+ if (!(_c in _a)) return [3 /*break*/, 49];
7712
7756
  n = _c;
7713
- returnValidation = (_j = (_h = schema[n].customActions) === null || _h === void 0 ? void 0 : _h.create) === null || _j === void 0 ? void 0 : _j.returns;
7757
+ returnValidation = (_k = (_j = schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
7714
7758
  return [4 /*yield*/, run_generated_tests({
7715
7759
  queries: sdk.api[n],
7716
7760
  model: schema[n],
@@ -7719,41 +7763,41 @@ export var ticket_reminder_tests = function () { return __awaiter(void 0, void 0
7719
7763
  create: returnValidation // ModelFields<ClientModel>,
7720
7764
  }
7721
7765
  })];
7722
- case 47:
7723
- _k.sent();
7724
- _k.label = 48;
7725
7766
  case 48:
7726
- _i++;
7727
- return [3 /*break*/, 46];
7767
+ _l.sent();
7768
+ _l.label = 49;
7728
7769
  case 49:
7729
- _d = tests;
7730
- _e = [];
7731
- for (_f in _d)
7732
- _e.push(_f);
7733
- _g = 0;
7734
- _k.label = 50;
7770
+ _i++;
7771
+ return [3 /*break*/, 47];
7735
7772
  case 50:
7736
- if (!(_g < _e.length)) return [3 /*break*/, 55];
7737
- _f = _e[_g];
7738
- if (!(_f in _d)) return [3 /*break*/, 54];
7739
- t = _f;
7740
- _k.label = 51;
7773
+ _d = tests;
7774
+ _f = [];
7775
+ for (_g in _d)
7776
+ _f.push(_g);
7777
+ _h = 0;
7778
+ _l.label = 51;
7741
7779
  case 51:
7742
- _k.trys.push([51, 53, , 54]);
7743
- return [4 /*yield*/, tests[t]()];
7780
+ if (!(_h < _f.length)) return [3 /*break*/, 56];
7781
+ _g = _f[_h];
7782
+ if (!(_g in _d)) return [3 /*break*/, 55];
7783
+ t = _g;
7784
+ _l.label = 52;
7744
7785
  case 52:
7745
- _k.sent();
7746
- return [3 /*break*/, 54];
7786
+ _l.trys.push([52, 54, , 55]);
7787
+ return [4 /*yield*/, tests[t]()];
7747
7788
  case 53:
7748
- err_2 = _k.sent();
7789
+ _l.sent();
7790
+ return [3 /*break*/, 55];
7791
+ case 54:
7792
+ err_2 = _l.sent();
7749
7793
  console.error("Error running test:");
7750
7794
  console.error(err_2);
7751
7795
  process.exit(1);
7752
- return [3 /*break*/, 54];
7753
- case 54:
7754
- _g++;
7755
- return [3 /*break*/, 50];
7796
+ return [3 /*break*/, 55];
7756
7797
  case 55:
7798
+ _h++;
7799
+ return [3 /*break*/, 51];
7800
+ case 56:
7757
7801
  process.exit();
7758
7802
  return [2 /*return*/];
7759
7803
  }