@tellescope/sdk 1.254.1 → 1.255.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/cjs/sdk.d.ts +4 -0
  2. package/lib/cjs/sdk.d.ts.map +1 -1
  3. package/lib/cjs/sdk.js +5 -0
  4. package/lib/cjs/sdk.js.map +1 -1
  5. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -0
  6. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -0
  7. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js +236 -0
  8. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -0
  9. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.d.ts.map +1 -1
  10. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.js +108 -73
  11. package/lib/cjs/tests/api_tests/calendar_events_bulk_update.test.js.map +1 -1
  12. package/lib/cjs/tests/api_tests/group_event_attendee_status_triggers.test.d.ts +6 -0
  13. package/lib/cjs/tests/api_tests/group_event_attendee_status_triggers.test.d.ts.map +1 -0
  14. package/lib/cjs/tests/api_tests/group_event_attendee_status_triggers.test.js +587 -0
  15. package/lib/cjs/tests/api_tests/group_event_attendee_status_triggers.test.js.map +1 -0
  16. package/lib/cjs/tests/api_tests/healthie_force_sync.test.d.ts +6 -0
  17. package/lib/cjs/tests/api_tests/healthie_force_sync.test.d.ts.map +1 -0
  18. package/lib/cjs/tests/api_tests/healthie_force_sync.test.js +165 -0
  19. package/lib/cjs/tests/api_tests/healthie_force_sync.test.js.map +1 -0
  20. package/lib/cjs/tests/api_tests/order_status_equals_frequency.test.d.ts +6 -0
  21. package/lib/cjs/tests/api_tests/order_status_equals_frequency.test.d.ts.map +1 -0
  22. package/lib/cjs/tests/api_tests/order_status_equals_frequency.test.js +254 -0
  23. package/lib/cjs/tests/api_tests/order_status_equals_frequency.test.js.map +1 -0
  24. package/lib/cjs/tests/api_tests/organization_api_keys.test.d.ts +6 -0
  25. package/lib/cjs/tests/api_tests/organization_api_keys.test.d.ts.map +1 -0
  26. package/lib/cjs/tests/api_tests/organization_api_keys.test.js +226 -0
  27. package/lib/cjs/tests/api_tests/organization_api_keys.test.js.map +1 -0
  28. package/lib/cjs/tests/tests.d.ts.map +1 -1
  29. package/lib/cjs/tests/tests.js +560 -305
  30. package/lib/cjs/tests/tests.js.map +1 -1
  31. package/lib/esm/sdk.d.ts +6 -2
  32. package/lib/esm/sdk.d.ts.map +1 -1
  33. package/lib/esm/sdk.js +5 -0
  34. package/lib/esm/sdk.js.map +1 -1
  35. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -0
  36. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -0
  37. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js +232 -0
  38. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -0
  39. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.d.ts.map +1 -1
  40. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.js +109 -74
  41. package/lib/esm/tests/api_tests/calendar_events_bulk_update.test.js.map +1 -1
  42. package/lib/esm/tests/api_tests/group_event_attendee_status_triggers.test.d.ts +6 -0
  43. package/lib/esm/tests/api_tests/group_event_attendee_status_triggers.test.d.ts.map +1 -0
  44. package/lib/esm/tests/api_tests/group_event_attendee_status_triggers.test.js +583 -0
  45. package/lib/esm/tests/api_tests/group_event_attendee_status_triggers.test.js.map +1 -0
  46. package/lib/esm/tests/api_tests/healthie_force_sync.test.d.ts +6 -0
  47. package/lib/esm/tests/api_tests/healthie_force_sync.test.d.ts.map +1 -0
  48. package/lib/esm/tests/api_tests/healthie_force_sync.test.js +161 -0
  49. package/lib/esm/tests/api_tests/healthie_force_sync.test.js.map +1 -0
  50. package/lib/esm/tests/api_tests/order_status_equals_frequency.test.d.ts +6 -0
  51. package/lib/esm/tests/api_tests/order_status_equals_frequency.test.d.ts.map +1 -0
  52. package/lib/esm/tests/api_tests/order_status_equals_frequency.test.js +250 -0
  53. package/lib/esm/tests/api_tests/order_status_equals_frequency.test.js.map +1 -0
  54. package/lib/esm/tests/api_tests/organization_api_keys.test.d.ts +6 -0
  55. package/lib/esm/tests/api_tests/organization_api_keys.test.d.ts.map +1 -0
  56. package/lib/esm/tests/api_tests/organization_api_keys.test.js +222 -0
  57. package/lib/esm/tests/api_tests/organization_api_keys.test.js.map +1 -0
  58. package/lib/esm/tests/tests.d.ts.map +1 -1
  59. package/lib/esm/tests/tests.js +560 -305
  60. package/lib/esm/tests/tests.js.map +1 -1
  61. package/lib/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +10 -10
  63. package/src/sdk.ts +11 -0
  64. package/src/tests/api_tests/appointment_no_showed_trigger.test.ts +144 -0
  65. package/src/tests/api_tests/calendar_events_bulk_update.test.ts +22 -0
  66. package/src/tests/api_tests/group_event_attendee_status_triggers.test.ts +381 -0
  67. package/src/tests/api_tests/organization_api_keys.test.ts +207 -0
  68. package/src/tests/tests.ts +196 -3
  69. package/test_generated.pdf +0 -0
@@ -84,6 +84,8 @@ import { concurrent_build_threads_tests } from "./api_tests/concurrent_build_thr
84
84
  import { appointment_completed_trigger_tests } from "./api_tests/appointment_completed_trigger.test";
85
85
  import { purchase_made_trigger_tests } from "./api_tests/purchase_made_trigger.test";
86
86
  import { appointment_rescheduled_trigger_tests } from "./api_tests/appointment_rescheduled_trigger.test";
87
+ import { appointment_no_showed_trigger_tests } from "./api_tests/appointment_no_showed_trigger.test";
88
+ import { group_event_attendee_status_triggers_tests } from "./api_tests/group_event_attendee_status_triggers.test";
87
89
  import { journey_error_branching_tests } from "./api_tests/journey_error_branching.test";
88
90
  import { afteraction_day_of_month_delay_tests } from "./api_tests/afteraction_day_of_month_delay.test";
89
91
  import { push_forms_to_portal_group_completion_tests } from "./api_tests/push_forms_to_portal_group_completion.test";
@@ -99,6 +101,7 @@ import { enduser_login_tests } from "./api_tests/enduser_login.test";
99
101
  import { enduser_login_rate_limits_tests } from "./api_tests/enduser_login_rate_limits.test";
100
102
  import { eom_procedure_codes_tests } from "./api_tests/eom_procedure_codes.test";
101
103
  import { cross_org_api_key_tests } from "./api_tests/cross_org_api_key.test";
104
+ import { organization_api_keys_tests } from "./api_tests/organization_api_keys.test";
102
105
  import { custom_dashboards_tests } from "./api_tests/custom_dashboards.test";
103
106
  import { message_assignment_trigger_tests } from "./api_tests/message_assignment_trigger.test";
104
107
  import { outbound_chat_sent_trigger_tests } from "./api_tests/outbound_chat_sent_trigger.test";
@@ -4135,7 +4138,7 @@ var order_created_tests = function () { return __awaiter(void 0, void 0, void 0,
4135
4138
  });
4136
4139
  }); };
4137
4140
  var order_status_equals_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
4138
- var t1, t2, t3, t4, t5, t6, t7, t8, t9, e, u;
4141
+ var t1, t2, t3, t4, t5, t6, t7, t8, t9, tf1, tf2, tf3, tf4, tf5, e, u, ef;
4139
4142
  return __generator(this, function (_a) {
4140
4143
  switch (_a.label) {
4141
4144
  case 0:
@@ -4209,48 +4212,91 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4209
4212
  action: { type: 'Add Tags', info: { tags: ['Protocol Match'] } },
4210
4213
  status: 'Active',
4211
4214
  title: "Protocol Condition"
4212
- })];
4215
+ })
4216
+ // Frequency filter triggers (exact-match array filter, mirrors fills/skus). All use a dedicated
4217
+ // source/status so their assertions stay isolated from the t1-t9 incremental tag-count checks above.
4218
+ ];
4213
4219
  case 9:
4214
4220
  t9 = _a.sent();
4215
- return [4 /*yield*/, sdk.api.endusers.createOne({})];
4221
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4222
+ event: { type: 'Order Status Equals', info: { source: 'FreqSource', status: "FreqStatus" } },
4223
+ action: { type: 'Add Tags', info: { tags: ['Freq No Filter'] } },
4224
+ status: 'Active',
4225
+ title: "Frequency - no filter (backward compat)"
4226
+ })];
4216
4227
  case 10:
4228
+ tf1 = _a.sent();
4229
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4230
+ event: { type: 'Order Status Equals', info: { source: 'FreqSource', status: "FreqStatus", frequencies: ['4', '12'] } },
4231
+ action: { type: 'Add Tags', info: { tags: ['Freq Match'] } },
4232
+ status: 'Active',
4233
+ title: "Frequency - multi-value match"
4234
+ })];
4235
+ case 11:
4236
+ tf2 = _a.sent();
4237
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4238
+ event: { type: 'Order Status Equals', info: { source: 'FreqSource', status: "FreqStatus", frequencies: [] } },
4239
+ action: { type: 'Add Tags', info: { tags: ['Freq Empty All'] } },
4240
+ status: 'Active',
4241
+ title: "Frequency - empty array means all"
4242
+ })];
4243
+ case 12:
4244
+ tf3 = _a.sent();
4245
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4246
+ event: { type: 'Order Status Equals', info: { source: 'FreqSource', status: "FreqShipped", frequencies: ['4'] } },
4247
+ action: { type: 'Add Tags', info: { tags: ['Freq Status Combo'] } },
4248
+ status: 'Active',
4249
+ title: "Frequency + status combination (AND semantics)"
4250
+ })];
4251
+ case 13:
4252
+ tf4 = _a.sent();
4253
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
4254
+ event: { type: 'Order Status Equals', info: { source: 'FreqSource', status: "FreqStatus", frequencies: ['12'] } },
4255
+ action: { type: 'Add Tags', info: { tags: ['Freq Match 12'] } },
4256
+ status: 'Active',
4257
+ title: "Frequency - second listed value"
4258
+ })];
4259
+ case 14:
4260
+ tf5 = _a.sent();
4261
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
4262
+ case 15:
4217
4263
  e = _a.sent();
4218
4264
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Nooo', source: 'Source', title: 'nomatch', externalId: '1', enduserId: e.id })];
4219
- case 11:
4265
+ case 16:
4220
4266
  _a.sent();
4221
4267
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4222
- case 12:
4268
+ case 17:
4223
4269
  _a.sent(); // allow triggers to happen
4224
4270
  return [4 /*yield*/, async_test("No tag is added (no fill)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })];
4225
- case 13:
4271
+ case 18:
4226
4272
  _a.sent();
4227
4273
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Filled', source: 'Source', title: 'nomatch', externalId: '2', enduserId: e.id, fill: 'nomatch' })];
4228
- case 14:
4274
+ case 19:
4229
4275
  _a.sent();
4230
4276
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4231
- case 15:
4277
+ case 20:
4232
4278
  _a.sent(); // allow triggers to happen
4233
4279
  return [4 /*yield*/, async_test("No tag is added (fill mistmatch)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length); } })];
4234
- case 16:
4280
+ case 21:
4235
4281
  _a.sent();
4236
4282
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '3', enduserId: e.id, title: "Title" })];
4237
- case 17:
4283
+ case 22:
4238
4284
  _a.sent();
4239
4285
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4240
- case 18:
4286
+ case 23:
4241
4287
  _a.sent(); // allow triggers to happen
4242
4288
  return [4 /*yield*/, async_test("First tag is added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4243
4289
  var _a, _b;
4244
4290
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 1
4245
4291
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source')));
4246
4292
  } })];
4247
- case 19:
4293
+ case 24:
4248
4294
  _a.sent();
4249
4295
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '4', enduserId: e.id, title: "Title", fill: '1' })];
4250
- case 20:
4296
+ case 25:
4251
4297
  _a.sent();
4252
4298
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4253
- case 21:
4299
+ case 26:
4254
4300
  _a.sent(); // allow triggers to happen
4255
4301
  return [4 /*yield*/, async_test("Fill tag not added yet (mismatch)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4256
4302
  var _a, _b, _c;
@@ -4258,13 +4304,13 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4258
4304
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source'))
4259
4305
  && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Fill')));
4260
4306
  } })];
4261
- case 22:
4307
+ case 27:
4262
4308
  _a.sent();
4263
4309
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Filled', source: 'Source', externalId: '5', enduserId: e.id, title: "Title", fill: "Fill" })];
4264
- case 23:
4310
+ case 28:
4265
4311
  _a.sent();
4266
4312
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4267
- case 24:
4313
+ case 29:
4268
4314
  _a.sent(); // allow triggers to happen
4269
4315
  return [4 /*yield*/, async_test("Fill tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4270
4316
  var _a, _b, _c;
@@ -4272,16 +4318,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4272
4318
  && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Source'))
4273
4319
  && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Fill')));
4274
4320
  } })];
4275
- case 25:
4321
+ case 30:
4276
4322
  _a.sent();
4277
4323
  return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'Status', source: 'Source', externalId: '6', enduserId: e.id, title: "Title" })];
4278
- case 26:
4324
+ case 31:
4279
4325
  u = _a.sent();
4280
4326
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Update' })];
4281
- case 27:
4327
+ case 32:
4282
4328
  _a.sent();
4283
4329
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4284
- case 28:
4330
+ case 33:
4285
4331
  _a.sent(); // allow triggers to happen
4286
4332
  return [4 /*yield*/, async_test("Status update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4287
4333
  var _a, _b, _c, _d;
@@ -4292,18 +4338,18 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4292
4338
  } })
4293
4339
  // duplicate updates get rate limited, so we need to make each update unique
4294
4340
  ];
4295
- case 29:
4341
+ case 34:
4296
4342
  _a.sent();
4297
4343
  // duplicate updates get rate limited, so we need to make each update unique
4298
4344
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle' })];
4299
- case 30:
4345
+ case 35:
4300
4346
  // duplicate updates get rate limited, so we need to make each update unique
4301
4347
  _a.sent();
4302
4348
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", fill: 'Update', externalId: 'avoid rate limiting' })];
4303
- case 31:
4349
+ case 36:
4304
4350
  _a.sent();
4305
4351
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4306
- case 32:
4352
+ case 37:
4307
4353
  _a.sent(); // allow triggers to happen
4308
4354
  return [4 /*yield*/, async_test("Fill update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4309
4355
  var _a, _b, _c, _d, _f;
@@ -4313,16 +4359,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4313
4359
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Status Update'))
4314
4360
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update')));
4315
4361
  } })];
4316
- case 33:
4362
+ case 38:
4317
4363
  _a.sent();
4318
4364
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 1" })];
4319
- case 34:
4365
+ case 39:
4320
4366
  _a.sent();
4321
4367
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: 'SK', externalId: 'avoid rate limiting 2' })];
4322
- case 35:
4368
+ case 40:
4323
4369
  _a.sent();
4324
4370
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4325
- case 36:
4371
+ case 41:
4326
4372
  _a.sent(); // allow triggers to happen
4327
4373
  return [4 /*yield*/, async_test("SKU update no match", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4328
4374
  var _a, _b, _c, _d, _f;
@@ -4332,16 +4378,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4332
4378
  && ((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Status Update'))
4333
4379
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update')));
4334
4380
  } })];
4335
- case 37:
4381
+ case 42:
4336
4382
  _a.sent();
4337
4383
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 2" })];
4338
- case 38:
4384
+ case 43:
4339
4385
  _a.sent();
4340
4386
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: 'SKU', externalId: 'avoid rate limiting 3' })];
4341
- case 39:
4387
+ case 44:
4342
4388
  _a.sent();
4343
4389
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4344
- case 40:
4390
+ case 45:
4345
4391
  _a.sent(); // allow triggers to happen
4346
4392
  return [4 /*yield*/, async_test("SKU update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4347
4393
  var _a, _b, _c, _d, _f, _g;
@@ -4352,16 +4398,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4352
4398
  && ((_f = e.tags) === null || _f === void 0 ? void 0 : _f.includes('Fill Update'))
4353
4399
  && ((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('SKU Update')));
4354
4400
  } })];
4355
- case 41:
4401
+ case 46:
4356
4402
  _a.sent();
4357
4403
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 3" })];
4358
- case 42:
4404
+ case 47:
4359
4405
  _a.sent();
4360
4406
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", sku: '___SKU-PARTIAL--_' })];
4361
- case 43:
4407
+ case 48:
4362
4408
  _a.sent();
4363
4409
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4364
- case 44:
4410
+ case 49:
4365
4411
  _a.sent(); // allow triggers to happen
4366
4412
  return [4 /*yield*/, async_test("SKU partial update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4367
4413
  var _a, _b, _c, _d, _f, _g, _h;
@@ -4373,16 +4419,16 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4373
4419
  && ((_g = e.tags) === null || _g === void 0 ? void 0 : _g.includes('SKU Update'))
4374
4420
  && ((_h = e.tags) === null || _h === void 0 ? void 0 : _h.includes('SKU Partial Update')));
4375
4421
  } })];
4376
- case 45:
4422
+ case 50:
4377
4423
  _a.sent();
4378
4424
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 4" })];
4379
- case 46:
4425
+ case 51:
4380
4426
  _a.sent();
4381
4427
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "TITLE-PARTIAL" })];
4382
- case 47:
4428
+ case 52:
4383
4429
  _a.sent();
4384
4430
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4385
- case 48:
4431
+ case 53:
4386
4432
  _a.sent(); // allow triggers to happen
4387
4433
  return [4 /*yield*/, async_test("Title partial update tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4388
4434
  var _a, _b, _c, _d, _f, _g, _h, _j;
@@ -4395,32 +4441,32 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4395
4441
  && ((_h = e.tags) === null || _h === void 0 ? void 0 : _h.includes('SKU Partial Update'))
4396
4442
  && ((_j = e.tags) === null || _j === void 0 ? void 0 : _j.includes('Title Partial Update')));
4397
4443
  } })];
4398
- case 49:
4444
+ case 54:
4399
4445
  _a.sent();
4400
4446
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 5" })];
4401
- case 50:
4447
+ case 55:
4402
4448
  _a.sent();
4403
4449
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "PARTIAL-A only" })];
4404
- case 51:
4450
+ case 56:
4405
4451
  _a.sent();
4406
4452
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4407
- case 52:
4453
+ case 57:
4408
4454
  _a.sent(); // allow triggers to happen
4409
4455
  return [4 /*yield*/, async_test("Title partial AND no match (only one partial present)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4410
4456
  var _a, _b;
4411
4457
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 7
4412
4458
  && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Title Partial And Update')));
4413
4459
  } })];
4414
- case 53:
4460
+ case 58:
4415
4461
  _a.sent();
4416
4462
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 6" })];
4417
- case 54:
4463
+ case 59:
4418
4464
  _a.sent();
4419
4465
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", title: "PARTIAL-A and PARTIAL-B together" })];
4420
- case 55:
4466
+ case 60:
4421
4467
  _a.sent();
4422
4468
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4423
- case 56:
4469
+ case 61:
4424
4470
  _a.sent(); // allow triggers to happen
4425
4471
  return [4 /*yield*/, async_test("Title partial AND update tag added (both partials present)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4426
4472
  var _a, _b, _c, _d, _f, _g, _h, _j, _k;
@@ -4434,32 +4480,32 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4434
4480
  && ((_j = e.tags) === null || _j === void 0 ? void 0 : _j.includes('Title Partial Update'))
4435
4481
  && ((_k = e.tags) === null || _k === void 0 ? void 0 : _k.includes('Title Partial And Update')));
4436
4482
  } })];
4437
- case 57:
4483
+ case 62:
4438
4484
  _a.sent();
4439
4485
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 7" })];
4440
- case 58:
4486
+ case 63:
4441
4487
  _a.sent();
4442
4488
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", protocol: 'Protocol-Mismatch', externalId: 'avoid rate limiting 7' })];
4443
- case 59:
4489
+ case 64:
4444
4490
  _a.sent();
4445
4491
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4446
- case 60:
4492
+ case 65:
4447
4493
  _a.sent(); // allow triggers to happen
4448
4494
  return [4 /*yield*/, async_test("Protocol no match (wrong protocol)", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4449
4495
  var _a, _b;
4450
4496
  return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 8
4451
4497
  && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Protocol Match')));
4452
4498
  } })];
4453
- case 61:
4499
+ case 66:
4454
4500
  _a.sent();
4455
4501
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: 'Toggle', externalId: "also avoid rate limit 8" })];
4456
- case 62:
4502
+ case 67:
4457
4503
  _a.sent();
4458
4504
  return [4 /*yield*/, sdk.api.enduser_orders.updateOne(u.id, { status: "Update", protocol: 'Protocol-A', externalId: 'avoid rate limiting 8' })];
4459
- case 63:
4505
+ case 68:
4460
4506
  _a.sent();
4461
4507
  return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4462
- case 64:
4508
+ case 69:
4463
4509
  _a.sent(); // allow triggers to happen
4464
4510
  return [4 /*yield*/, async_test("Protocol match tag added", function () { return sdk.api.endusers.getOne(e.id); }, { onResult: function (e) {
4465
4511
  var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l;
@@ -4473,8 +4519,121 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4473
4519
  && ((_j = e.tags) === null || _j === void 0 ? void 0 : _j.includes('Title Partial Update'))
4474
4520
  && ((_k = e.tags) === null || _k === void 0 ? void 0 : _k.includes('Title Partial And Update'))
4475
4521
  && ((_l = e.tags) === null || _l === void 0 ? void 0 : _l.includes('Protocol Match')));
4522
+ } })
4523
+ // --- Frequency filter coverage (fresh enduser keeps tag-count assertions isolated) ---
4524
+ ];
4525
+ case 70:
4526
+ _a.sent();
4527
+ return [4 /*yield*/, sdk.api.endusers.createOne({})
4528
+ // Order with NO frequency: no-filter trigger (tf1) and empty-array trigger (tf3) both fire;
4529
+ // populated-filter trigger (tf2) does NOT (missing frequency must never match a populated filter).
4530
+ ];
4531
+ case 71:
4532
+ ef = _a.sent();
4533
+ // Order with NO frequency: no-filter trigger (tf1) and empty-array trigger (tf3) both fire;
4534
+ // populated-filter trigger (tf2) does NOT (missing frequency must never match a populated filter).
4535
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqStatus', source: 'FreqSource', externalId: 'f1', enduserId: ef.id, title: "Freq No Frequency" })];
4536
+ case 72:
4537
+ // Order with NO frequency: no-filter trigger (tf1) and empty-array trigger (tf3) both fire;
4538
+ // populated-filter trigger (tf2) does NOT (missing frequency must never match a populated filter).
4539
+ _a.sent();
4540
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4541
+ case 73:
4542
+ _a.sent(); // allow triggers to happen
4543
+ return [4 /*yield*/, async_test("Frequency: no-filter + empty-array fire for order with no frequency (backward compat)", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4544
+ var _a, _b, _c, _d;
4545
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 2
4546
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq No Filter'))
4547
+ && ((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Freq Empty All'))
4548
+ && !((_d = e.tags) === null || _d === void 0 ? void 0 : _d.includes('Freq Match')));
4549
+ } })
4550
+ // Order with a frequency NOT in ['4','12'] -> populated-filter trigger still does not fire.
4551
+ ];
4552
+ case 74:
4553
+ _a.sent();
4554
+ // Order with a frequency NOT in ['4','12'] -> populated-filter trigger still does not fire.
4555
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqStatus', source: 'FreqSource', externalId: 'f2', enduserId: ef.id, title: "Freq 8", frequency: '8' })];
4556
+ case 75:
4557
+ // Order with a frequency NOT in ['4','12'] -> populated-filter trigger still does not fire.
4558
+ _a.sent();
4559
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4560
+ case 76:
4561
+ _a.sent(); // allow triggers to happen
4562
+ return [4 /*yield*/, async_test("Frequency: no match (order frequency '8' not in ['4','12'])", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4563
+ var _a, _b;
4564
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 2
4565
+ && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq Match')));
4566
+ } })
4567
+ // Order with frequency '4' -> ['4','12'] trigger fires.
4568
+ ];
4569
+ case 77:
4570
+ _a.sent();
4571
+ // Order with frequency '4' -> ['4','12'] trigger fires.
4572
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqStatus', source: 'FreqSource', externalId: 'f3', enduserId: ef.id, title: "Freq 4", frequency: '4' })];
4573
+ case 78:
4574
+ // Order with frequency '4' -> ['4','12'] trigger fires.
4575
+ _a.sent();
4576
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4577
+ case 79:
4578
+ _a.sent(); // allow triggers to happen
4579
+ return [4 /*yield*/, async_test("Frequency: match (order frequency '4' is in ['4','12'])", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4580
+ var _a, _b, _c;
4581
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 3
4582
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq Match'))
4583
+ && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Freq Match 12')));
4584
+ } })
4585
+ // Order with frequency '12' -> the second listed value also matches (tf5 frequencies: ['12']).
4586
+ ];
4587
+ case 80:
4588
+ _a.sent();
4589
+ // Order with frequency '12' -> the second listed value also matches (tf5 frequencies: ['12']).
4590
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqStatus', source: 'FreqSource', externalId: 'f4', enduserId: ef.id, title: "Freq 12", frequency: '12' })];
4591
+ case 81:
4592
+ // Order with frequency '12' -> the second listed value also matches (tf5 frequencies: ['12']).
4593
+ _a.sent();
4594
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4595
+ case 82:
4596
+ _a.sent(); // allow triggers to happen
4597
+ return [4 /*yield*/, async_test("Frequency: second listed value '12' also matches", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4598
+ var _a, _b;
4599
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 4
4600
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq Match 12')));
4601
+ } })
4602
+ // AND semantics: frequency + status must BOTH match. Right frequency, wrong status -> no fire.
4603
+ ];
4604
+ case 83:
4605
+ _a.sent();
4606
+ // AND semantics: frequency + status must BOTH match. Right frequency, wrong status -> no fire.
4607
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqShipped', source: 'FreqSource', externalId: 'f5', enduserId: ef.id, title: "Freq Combo Wrong Freq", frequency: '8' })];
4608
+ case 84:
4609
+ // AND semantics: frequency + status must BOTH match. Right frequency, wrong status -> no fire.
4610
+ _a.sent();
4611
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4612
+ case 85:
4613
+ _a.sent(); // allow triggers to happen
4614
+ return [4 /*yield*/, async_test("Frequency + status combo: status matches but frequency does not -> no fire", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4615
+ var _a, _b;
4616
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 4
4617
+ && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq Status Combo')));
4618
+ } })
4619
+ // AND semantics: right status AND right frequency -> fires.
4620
+ ];
4621
+ case 86:
4622
+ _a.sent();
4623
+ // AND semantics: right status AND right frequency -> fires.
4624
+ return [4 /*yield*/, sdk.api.enduser_orders.createOne({ status: 'FreqShipped', source: 'FreqSource', externalId: 'f6', enduserId: ef.id, title: "Freq Combo Match", frequency: '4' })];
4625
+ case 87:
4626
+ // AND semantics: right status AND right frequency -> fires.
4627
+ _a.sent();
4628
+ return [4 /*yield*/, wait(undefined, 500)]; // allow triggers to happen
4629
+ case 88:
4630
+ _a.sent(); // allow triggers to happen
4631
+ return [4 /*yield*/, async_test("Frequency + status combo: both match -> fires (AND semantics)", function () { return sdk.api.endusers.getOne(ef.id); }, { onResult: function (e) {
4632
+ var _a, _b;
4633
+ return !!(((_a = e.tags) === null || _a === void 0 ? void 0 : _a.length) === 5
4634
+ && ((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Freq Status Combo')));
4476
4635
  } })];
4477
- case 65:
4636
+ case 89:
4478
4637
  _a.sent();
4479
4638
  return [4 /*yield*/, Promise.all([
4480
4639
  sdk.api.automation_triggers.deleteOne(t1.id),
@@ -4486,9 +4645,15 @@ var order_status_equals_tests = function () { return __awaiter(void 0, void 0, v
4486
4645
  sdk.api.automation_triggers.deleteOne(t7.id),
4487
4646
  sdk.api.automation_triggers.deleteOne(t8.id),
4488
4647
  sdk.api.automation_triggers.deleteOne(t9.id),
4648
+ sdk.api.automation_triggers.deleteOne(tf1.id),
4649
+ sdk.api.automation_triggers.deleteOne(tf2.id),
4650
+ sdk.api.automation_triggers.deleteOne(tf3.id),
4651
+ sdk.api.automation_triggers.deleteOne(tf4.id),
4652
+ sdk.api.automation_triggers.deleteOne(tf5.id),
4489
4653
  sdk.api.endusers.deleteOne(e.id),
4654
+ sdk.api.endusers.deleteOne(ef.id),
4490
4655
  ])];
4491
- case 66:
4656
+ case 90:
4492
4657
  _a.sent();
4493
4658
  return [2 /*return*/];
4494
4659
  }
@@ -6797,68 +6962,74 @@ var automation_trigger_tests = function () { return __awaiter(void 0, void 0, vo
6797
6962
  switch (_a.label) {
6798
6963
  case 0:
6799
6964
  log_header("Automation Trigger Tests");
6800
- return [4 /*yield*/, assign_care_team_tests()];
6965
+ return [4 /*yield*/, appointment_no_showed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6801
6966
  case 1:
6802
6967
  _a.sent();
6803
- return [4 /*yield*/, push_forms_to_portal_group_completion_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6968
+ return [4 /*yield*/, group_event_attendee_status_triggers_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6804
6969
  case 2:
6805
6970
  _a.sent();
6806
- return [4 /*yield*/, order_status_equals_tests()];
6971
+ return [4 /*yield*/, assign_care_team_tests()];
6807
6972
  case 3:
6808
6973
  _a.sent();
6809
- return [4 /*yield*/, order_status_blank_tests()];
6974
+ return [4 /*yield*/, push_forms_to_portal_group_completion_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6810
6975
  case 4:
6811
6976
  _a.sent();
6812
- return [4 /*yield*/, set_fields_order_templates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6977
+ return [4 /*yield*/, order_status_equals_tests()];
6813
6978
  case 5:
6814
6979
  _a.sent();
6815
- return [4 /*yield*/, medication_added_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6980
+ return [4 /*yield*/, order_status_blank_tests()];
6816
6981
  case 6:
6817
6982
  _a.sent();
6818
- return [4 /*yield*/, appointment_cancelled_tests()];
6983
+ return [4 /*yield*/, set_fields_order_templates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6819
6984
  case 7:
6820
6985
  _a.sent();
6821
- return [4 /*yield*/, set_fields_tests()];
6986
+ return [4 /*yield*/, medication_added_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6822
6987
  case 8:
6823
6988
  _a.sent();
6824
- return [4 /*yield*/, purchase_made_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6989
+ return [4 /*yield*/, appointment_cancelled_tests()];
6825
6990
  case 9:
6826
6991
  _a.sent();
6827
- return [4 /*yield*/, appointment_rescheduled_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6992
+ return [4 /*yield*/, set_fields_tests()];
6828
6993
  case 10:
6829
6994
  _a.sent();
6830
- return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6995
+ return [4 /*yield*/, purchase_made_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6831
6996
  case 11:
6832
6997
  _a.sent();
6833
- return [4 /*yield*/, form_response_set_fields_journey_tests()];
6998
+ return [4 /*yield*/, appointment_rescheduled_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6834
6999
  case 12:
6835
7000
  _a.sent();
6836
- return [4 /*yield*/, appointment_completed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
7001
+ return [4 /*yield*/, form_response_set_fields_trigger_tests()];
6837
7002
  case 13:
6838
7003
  _a.sent();
6839
- return [4 /*yield*/, trigger_events_api_tests()];
7004
+ return [4 /*yield*/, form_response_set_fields_journey_tests()];
6840
7005
  case 14:
6841
7006
  _a.sent();
6842
- return [4 /*yield*/, fields_changed_tests()];
7007
+ return [4 /*yield*/, appointment_completed_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
6843
7008
  case 15:
6844
7009
  _a.sent();
6845
- return [4 /*yield*/, field_equals_trigger_tests()];
7010
+ return [4 /*yield*/, trigger_events_api_tests()];
6846
7011
  case 16:
6847
7012
  _a.sent();
6848
- return [4 /*yield*/, contact_created_tests()];
7013
+ return [4 /*yield*/, fields_changed_tests()];
6849
7014
  case 17:
6850
7015
  _a.sent();
6851
- return [4 /*yield*/, appointment_created_tests()];
7016
+ return [4 /*yield*/, field_equals_trigger_tests()];
6852
7017
  case 18:
6853
7018
  _a.sent();
6854
- return [4 /*yield*/, tag_added_tests()];
7019
+ return [4 /*yield*/, contact_created_tests()];
6855
7020
  case 19:
6856
7021
  _a.sent();
6857
- return [4 /*yield*/, order_created_tests()];
7022
+ return [4 /*yield*/, appointment_created_tests()];
6858
7023
  case 20:
6859
7024
  _a.sent();
6860
- return [4 /*yield*/, formSubmittedTriggerTests()];
7025
+ return [4 /*yield*/, tag_added_tests()];
6861
7026
  case 21:
7027
+ _a.sent();
7028
+ return [4 /*yield*/, order_created_tests()];
7029
+ case 22:
7030
+ _a.sent();
7031
+ return [4 /*yield*/, formSubmittedTriggerTests()];
7032
+ case 23:
6862
7033
  _a.sent();
6863
7034
  return [2 /*return*/];
6864
7035
  }
@@ -8013,7 +8184,7 @@ export var filter_by_date_tests = function () { return __awaiter(void 0, void 0,
8013
8184
  });
8014
8185
  }); };
8015
8186
  export var self_serve_appointment_booking_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
8016
- var e1, e2, e3, event15min, event30min, event30minGroup, dayOfWeekStartingSundayIndexedByZero, enduserSDK2, enduserSDK3, nySlots, bookedAppointment, conflict, groupEvent, multiSlots, bookedMultiAppointment, conflict2, conflict3, rescheduleSlots, templatePreserveHosts, originalMultiHostAppt, rescheduledPreserveHosts, templateReplaceHosts, originalForReplace, rescheduledReplaceHosts;
8187
+ var e1, e2, e3, event15min, event30min, event30minGroup, event30minTwilio, event30minZoom, dayOfWeekStartingSundayIndexedByZero, enduserSDK2, enduserSDK3, nySlots, bookedAppointment, conflict, groupEvent, multiSlots, bookedMultiAppointment, conflict2, conflict3, rescheduleSlots, templatePreserveHosts, originalMultiHostAppt, rescheduledPreserveHosts, templateReplaceHosts, originalForReplace, rescheduledReplaceHosts, twilioSlots, bookedTwilioAppointment, zoomSlots, bookedZoomAppointment;
8017
8188
  return __generator(this, function (_a) {
8018
8189
  switch (_a.label) {
8019
8190
  case 0:
@@ -8055,12 +8226,30 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8055
8226
  confirmationEmailDisabled: true,
8056
8227
  confirmationSMSDisabled: true,
8057
8228
  enduserAttendeeLimit: 2,
8058
- })
8059
- // ensure it doesn't match current day, to avoid errors on testing
8060
- ];
8229
+ })];
8061
8230
  case 9:
8062
8231
  event30minGroup = _a.sent();
8063
- dayOfWeekStartingSundayIndexedByZero = (new Date().getDay() + 1) % 7;
8232
+ return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
8233
+ title: 'test twilio', durationInMinutes: 30,
8234
+ confirmationEmailDisabled: true,
8235
+ confirmationSMSDisabled: true,
8236
+ enableVideoCall: true,
8237
+ videoIntegration: 'Twilio',
8238
+ })];
8239
+ case 10:
8240
+ event30minTwilio = _a.sent();
8241
+ return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
8242
+ title: 'test zoom', durationInMinutes: 30,
8243
+ confirmationEmailDisabled: true,
8244
+ confirmationSMSDisabled: true,
8245
+ enableVideoCall: true,
8246
+ videoIntegration: 'Zoom',
8247
+ })
8248
+ // ensure it doesn't match current day, to avoid errors on testing
8249
+ ];
8250
+ case 11:
8251
+ event30minZoom = _a.sent();
8252
+ dayOfWeekStartingSundayIndexedByZero = (new Date().getDay() + 1) % 7;
8064
8253
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
8065
8254
  weeklyAvailabilities: [
8066
8255
  {
@@ -8079,7 +8268,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8079
8268
  }, {
8080
8269
  replaceObjectFields: true,
8081
8270
  })];
8082
- case 10:
8271
+ case 12:
8083
8272
  _a.sent();
8084
8273
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
8085
8274
  weeklyAvailabilities: [
@@ -8094,21 +8283,21 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8094
8283
  }, {
8095
8284
  replaceObjectFields: true,
8096
8285
  })];
8097
- case 11:
8286
+ case 13:
8098
8287
  _a.sent();
8099
8288
  enduserSDK2 = new EnduserSession({ host: host, businessId: businessId });
8100
8289
  return [4 /*yield*/, enduserSDK2.authenticate('sebass+ca@tellescope.com', password).catch(console.error)];
8101
- case 12:
8290
+ case 14:
8102
8291
  _a.sent();
8103
8292
  enduserSDK3 = new EnduserSession({ host: host, businessId: businessId });
8104
8293
  return [4 /*yield*/, enduserSDK3.authenticate('sebass+3@tellescope.com', password).catch(console.error)
8105
8294
  // NY Enduser Tests
8106
8295
  ];
8107
- case 13:
8296
+ case 15:
8108
8297
  _a.sent();
8109
8298
  // NY Enduser Tests
8110
8299
  return [4 /*yield*/, enduserSDK.authenticate('sebass+ny@tellescope.com', password).catch(console.error)];
8111
- case 14:
8300
+ case 16:
8112
8301
  // NY Enduser Tests
8113
8302
  _a.sent();
8114
8303
  return [4 /*yield*/, async_test('30 minute slots for state restriction', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
@@ -8117,7 +8306,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8117
8306
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8118
8307
  restrictedByState: true,
8119
8308
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
8120
- case 15:
8309
+ case 17:
8121
8310
  _a.sent();
8122
8311
  return [4 /*yield*/, async_test('30 minute slots for state restriction (called as user)', function () { return sdk.api.calendar_events.get_appointment_availability({
8123
8312
  calendarEventTemplateId: event30min.id,
@@ -8126,7 +8315,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8126
8315
  restrictedByState: true,
8127
8316
  state: "NY", // same state as enduserSDK
8128
8317
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
8129
- case 16:
8318
+ case 18:
8130
8319
  _a.sent();
8131
8320
  return [4 /*yield*/, async_test('30 minute slots for state restriction with 15 min interval', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8132
8321
  calendarEventTemplateId: event30min.id,
@@ -8135,7 +8324,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8135
8324
  restrictedByState: true,
8136
8325
  intervalInMinutes: 15,
8137
8326
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
8138
- case 17:
8327
+ case 19:
8139
8328
  _a.sent();
8140
8329
  return [4 /*yield*/, async_test('30 minute slots for state restriction with 10 min interval', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8141
8330
  calendarEventTemplateId: event30min.id,
@@ -8144,7 +8333,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8144
8333
  restrictedByState: true,
8145
8334
  intervalInMinutes: 10,
8146
8335
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 4; } })];
8147
- case 18:
8336
+ case 20:
8148
8337
  _a.sent();
8149
8338
  return [4 /*yield*/, async_test('30 minute slots for no state restrictions', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8150
8339
  calendarEventTemplateId: event30min.id,
@@ -8163,7 +8352,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8163
8352
  }
8164
8353
  return true;
8165
8354
  } })];
8166
- case 19:
8355
+ case 21:
8167
8356
  _a.sent();
8168
8357
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
8169
8358
  calendarEventTemplateId: event30min.id,
@@ -8171,7 +8360,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8171
8360
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8172
8361
  restrictedByState: true,
8173
8362
  })];
8174
- case 20:
8363
+ case 22:
8175
8364
  nySlots = _a.sent();
8176
8365
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8177
8366
  calendarEventTemplateId: event30min.id,
@@ -8182,7 +8371,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8182
8371
  fields: "Test",
8183
8372
  }
8184
8373
  })];
8185
- case 21:
8374
+ case 23:
8186
8375
  bookedAppointment = (_a.sent()).createdEvent;
8187
8376
  assert(bookedAppointment.attendees.length === 2, 'did not get 2 attendees', '2 attendees fo non-multi-event');
8188
8377
  return [4 /*yield*/, async_test('double-booking prevented', function () { return enduserSDK.api.calendar_events.book_appointment({
@@ -8190,7 +8379,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8190
8379
  startTime: new Date(nySlots.availabilityBlocks[0].startTimeInMS),
8191
8380
  userId: nySlots.availabilityBlocks[0].userId,
8192
8381
  }); }, handleAnyError)];
8193
- case 22:
8382
+ case 24:
8194
8383
  _a.sent();
8195
8384
  return [4 /*yield*/, async_test('30 minute slots for state restriction with 1 overlapping conflict', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8196
8385
  calendarEventTemplateId: event30min.id,
@@ -8202,7 +8391,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8202
8391
  && r.availabilityBlocks[0].startTimeInMS === nySlots.availabilityBlocks[1].startTimeInMS;
8203
8392
  } // the first slot of nySlots is booked
8204
8393
  })];
8205
- case 23:
8394
+ case 25:
8206
8395
  _a.sent();
8207
8396
  return [4 /*yield*/, sdk.api.calendar_events.createOne({
8208
8397
  title: 'conflict',
@@ -8210,7 +8399,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8210
8399
  durationInMinutes: nySlots.availabilityBlocks[1].durationInMinutes,
8211
8400
  attendees: [{ type: 'user', id: sdk.userInfo.id }]
8212
8401
  })];
8213
- case 24:
8402
+ case 26:
8214
8403
  conflict = _a.sent();
8215
8404
  return [4 /*yield*/, async_test('30 minute slots for state restriction with 2 overlapping conflict', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8216
8405
  calendarEventTemplateId: event30min.id,
@@ -8218,7 +8407,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8218
8407
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8219
8408
  restrictedByState: true,
8220
8409
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 0; } })];
8221
- case 25:
8410
+ case 27:
8222
8411
  _a.sent();
8223
8412
  return [4 /*yield*/, async_test('booking against conflict prevented', function () { return enduserSDK.api.calendar_events.book_appointment({
8224
8413
  calendarEventTemplateId: event30min.id,
@@ -8227,11 +8416,11 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8227
8416
  }); }, handleAnyError)
8228
8417
  // test group bookings
8229
8418
  ];
8230
- case 26:
8419
+ case 28:
8231
8420
  _a.sent();
8232
8421
  // test group bookings
8233
8422
  return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict.id, { enduserAttendeeLimit: 2 })];
8234
- case 27:
8423
+ case 29:
8235
8424
  // test group bookings
8236
8425
  _a.sent();
8237
8426
  return [4 /*yield*/, async_test('[group booking] different event type conflict as group still blocks availability', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
@@ -8239,52 +8428,52 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8239
8428
  from: new Date(Date.now() - 10000),
8240
8429
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8241
8430
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
8242
- case 28:
8431
+ case 30:
8243
8432
  _a.sent();
8244
8433
  return [4 /*yield*/, sdk.api.calendar_events.deleteOne(conflict.id)];
8245
- case 29:
8434
+ case 31:
8246
8435
  _a.sent();
8247
8436
  return [4 /*yield*/, async_test('[group booking] availability', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8248
8437
  calendarEventTemplateId: event30minGroup.id,
8249
8438
  from: new Date(Date.now() - 10000),
8250
8439
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8251
8440
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
8252
- case 30:
8441
+ case 32:
8253
8442
  _a.sent();
8254
8443
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8255
8444
  calendarEventTemplateId: event30minGroup.id,
8256
8445
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
8257
8446
  userId: nySlots.availabilityBlocks[1].userId,
8258
8447
  })];
8259
- case 31:
8448
+ case 33:
8260
8449
  groupEvent = (_a.sent()).createdEvent;
8261
8450
  return [4 /*yield*/, async_test('[group booking] more booking allowed', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8262
8451
  calendarEventTemplateId: event30minGroup.id,
8263
8452
  from: new Date(Date.now() - 10000),
8264
8453
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8265
8454
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 3; } })];
8266
- case 32:
8455
+ case 34:
8267
8456
  _a.sent();
8268
8457
  return [4 /*yield*/, async_test('[group booking] prevent double-book same-enduser', function () { return enduserSDK.api.calendar_events.book_appointment({
8269
8458
  calendarEventTemplateId: event30minGroup.id,
8270
8459
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
8271
8460
  userId: nySlots.availabilityBlocks[1].userId,
8272
8461
  }); }, handleAnyError)];
8273
- case 33:
8462
+ case 35:
8274
8463
  _a.sent();
8275
8464
  return [4 /*yield*/, async_test('[group booking] allow other enduser to book', function () { return enduserSDK2.api.calendar_events.book_appointment({
8276
8465
  calendarEventTemplateId: event30minGroup.id,
8277
8466
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
8278
8467
  userId: nySlots.availabilityBlocks[1].userId,
8279
8468
  }); }, passOnAnyResult)];
8280
- case 34:
8469
+ case 36:
8281
8470
  _a.sent();
8282
8471
  return [4 /*yield*/, async_test('[group booking] no more booking allowed', function () { return enduserSDK.api.calendar_events.get_appointment_availability({
8283
8472
  calendarEventTemplateId: event30minGroup.id,
8284
8473
  from: new Date(Date.now() - 10000),
8285
8474
  to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8286
8475
  }); }, { onResult: function (r) { return r.availabilityBlocks.length === 2; } })];
8287
- case 35:
8476
+ case 37:
8288
8477
  _a.sent();
8289
8478
  return [4 /*yield*/, async_test('[group booking] other enduser cant book over capacity', function () { return enduserSDK3.api.calendar_events.book_appointment({
8290
8479
  calendarEventTemplateId: event30minGroup.id,
@@ -8293,7 +8482,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8293
8482
  }); }, handleAnyError)
8294
8483
  // test 'multi' flag for booking multiple providers for a given patient
8295
8484
  ];
8296
- case 36:
8485
+ case 38:
8297
8486
  _a.sent();
8298
8487
  // test 'multi' flag for booking multiple providers for a given patient
8299
8488
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
@@ -8308,7 +8497,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8308
8497
  }, {
8309
8498
  replaceObjectFields: true,
8310
8499
  })];
8311
- case 37:
8500
+ case 39:
8312
8501
  // test 'multi' flag for booking multiple providers for a given patient
8313
8502
  _a.sent();
8314
8503
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
@@ -8323,7 +8512,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8323
8512
  }, {
8324
8513
  replaceObjectFields: true,
8325
8514
  })];
8326
- case 38:
8515
+ case 40:
8327
8516
  _a.sent();
8328
8517
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
8329
8518
  calendarEventTemplateId: event30min.id,
@@ -8332,7 +8521,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8332
8521
  multi: true,
8333
8522
  userIds: [sdk.userInfo.id, sdkNonAdmin.userInfo.id]
8334
8523
  })];
8335
- case 39:
8524
+ case 41:
8336
8525
  multiSlots = _a.sent();
8337
8526
  assert(multiSlots.availabilityBlocks.length === 2, 'expected 2 slots', 'multi slots are intersection of availability');
8338
8527
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
@@ -8341,7 +8530,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8341
8530
  userId: sdk.userInfo.id,
8342
8531
  otherUserIds: [sdkNonAdmin.userInfo.id]
8343
8532
  })];
8344
- case 40:
8533
+ case 42:
8345
8534
  bookedMultiAppointment = (_a.sent()).createdEvent;
8346
8535
  assert((bookedMultiAppointment.attendees.length === 3
8347
8536
  && bookedMultiAppointment.attendees.filter(function (a) { return a.type === 'enduser'; }).length === 1), 'did not get valid attendees', 'Multi attendees fo multi-event');
@@ -8350,14 +8539,14 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8350
8539
  startTime: new Date(multiSlots.availabilityBlocks[0].startTimeInMS),
8351
8540
  userId: sdk.userInfo.id,
8352
8541
  }); }, handleAnyError)];
8353
- case 41:
8542
+ case 43:
8354
8543
  _a.sent();
8355
8544
  return [4 /*yield*/, async_test('booking against conflict prevented other user', function () { return enduserSDK.api.calendar_events.book_appointment({
8356
8545
  calendarEventTemplateId: event30min.id,
8357
8546
  startTime: new Date(multiSlots.availabilityBlocks[0].startTimeInMS),
8358
8547
  userId: sdkNonAdmin.userInfo.id,
8359
8548
  }); }, handleAnyError)];
8360
- case 42:
8549
+ case 44:
8361
8550
  _a.sent();
8362
8551
  return [4 /*yield*/, async_test('booking against conflict prevented 2 users', function () { return enduserSDK.api.calendar_events.book_appointment({
8363
8552
  calendarEventTemplateId: event30min.id,
@@ -8365,7 +8554,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8365
8554
  userId: sdk.userInfo.id,
8366
8555
  otherUserIds: [sdkNonAdmin.userInfo.id],
8367
8556
  }); }, handleAnyError)];
8368
- case 43:
8557
+ case 45:
8369
8558
  _a.sent();
8370
8559
  return [4 /*yield*/, sdk.api.calendar_events.createOne({
8371
8560
  title: 'conflict',
@@ -8373,36 +8562,36 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8373
8562
  durationInMinutes: nySlots.availabilityBlocks[0].durationInMinutes,
8374
8563
  attendees: [{ type: 'user', id: sdk.userInfo.id }]
8375
8564
  })];
8376
- case 44:
8565
+ case 46:
8377
8566
  conflict2 = _a.sent();
8378
8567
  return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict2.id, { bufferEndMinutes: 30 })];
8379
- case 45:
8568
+ case 47:
8380
8569
  _a.sent();
8381
8570
  return [4 /*yield*/, async_test('Event buffer end prevents booking', function () { return enduserSDK.api.calendar_events.book_appointment({
8382
8571
  calendarEventTemplateId: event30min.id,
8383
8572
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
8384
8573
  userId: nySlots.availabilityBlocks[1].userId,
8385
8574
  }); }, handleAnyError)];
8386
- case 46:
8575
+ case 48:
8387
8576
  _a.sent();
8388
8577
  return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict2.id, { bufferEndMinutes: 0 })];
8389
- case 47:
8578
+ case 49:
8390
8579
  _a.sent();
8391
8580
  return [4 /*yield*/, sdk.api.calendar_event_templates.updateOne(event30min.id, { bufferStartMinutes: 30 })];
8392
- case 48:
8581
+ case 50:
8393
8582
  _a.sent();
8394
8583
  return [4 /*yield*/, async_test('Template buffer start prevents booking', function () { return enduserSDK.api.calendar_events.book_appointment({
8395
8584
  calendarEventTemplateId: event30min.id,
8396
8585
  startTime: new Date(nySlots.availabilityBlocks[1].startTimeInMS),
8397
8586
  userId: nySlots.availabilityBlocks[1].userId,
8398
8587
  }); }, handleAnyError)];
8399
- case 49:
8588
+ case 51:
8400
8589
  _a.sent();
8401
8590
  return [4 /*yield*/, sdk.api.calendar_event_templates.updateOne(event30min.id, { bufferStartMinutes: 0 })];
8402
- case 50:
8591
+ case 52:
8403
8592
  _a.sent();
8404
8593
  return [4 /*yield*/, sdk.api.calendar_events.deleteOne(conflict2.id)];
8405
- case 51:
8594
+ case 53:
8406
8595
  _a.sent();
8407
8596
  return [4 /*yield*/, sdk.api.calendar_events.createOne({
8408
8597
  title: 'conflict',
@@ -8410,23 +8599,23 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8410
8599
  durationInMinutes: nySlots.availabilityBlocks[1].durationInMinutes,
8411
8600
  attendees: [{ type: 'user', id: sdk.userInfo.id }]
8412
8601
  })];
8413
- case 52:
8602
+ case 54:
8414
8603
  conflict3 = _a.sent();
8415
8604
  return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict3.id, { bufferStartMinutes: 30 })];
8416
- case 53:
8605
+ case 55:
8417
8606
  _a.sent();
8418
8607
  return [4 /*yield*/, async_test('Event buffer start prevents booking', function () { return enduserSDK.api.calendar_events.book_appointment({
8419
8608
  calendarEventTemplateId: event30min.id,
8420
8609
  startTime: new Date(nySlots.availabilityBlocks[0].startTimeInMS),
8421
8610
  userId: nySlots.availabilityBlocks[0].userId,
8422
8611
  }); }, handleAnyError)];
8423
- case 54:
8612
+ case 56:
8424
8613
  _a.sent();
8425
8614
  return [4 /*yield*/, sdk.api.calendar_events.updateOne(conflict3.id, { bufferStartMinutes: 0 })];
8426
- case 55:
8615
+ case 57:
8427
8616
  _a.sent();
8428
8617
  return [4 /*yield*/, sdk.api.calendar_event_templates.updateOne(event30min.id, { bufferEndMinutes: 30 })];
8429
- case 56:
8618
+ case 58:
8430
8619
  _a.sent();
8431
8620
  return [4 /*yield*/, async_test('Template buffer end prevents booking', function () { return enduserSDK.api.calendar_events.book_appointment({
8432
8621
  calendarEventTemplateId: event30min.id,
@@ -8435,17 +8624,17 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8435
8624
  }); }, handleAnyError)
8436
8625
  // Test reschedule functionality with replaceHostOnReschedule setting
8437
8626
  ];
8438
- case 57:
8627
+ case 59:
8439
8628
  _a.sent();
8440
8629
  // Test reschedule functionality with replaceHostOnReschedule setting
8441
8630
  return [4 /*yield*/, sdk.api.calendar_event_templates.updateOne(event30min.id, { bufferEndMinutes: 0 })];
8442
- case 58:
8631
+ case 60:
8443
8632
  // Test reschedule functionality with replaceHostOnReschedule setting
8444
8633
  _a.sent();
8445
8634
  return [4 /*yield*/, sdk.api.calendar_events.deleteOne(conflict3.id)
8446
8635
  // Setup fresh availability for reschedule tests
8447
8636
  ];
8448
- case 59:
8637
+ case 61:
8449
8638
  _a.sent();
8450
8639
  // Setup fresh availability for reschedule tests
8451
8640
  return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
@@ -8460,7 +8649,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8460
8649
  }, {
8461
8650
  replaceObjectFields: true,
8462
8651
  })];
8463
- case 60:
8652
+ case 62:
8464
8653
  // Setup fresh availability for reschedule tests
8465
8654
  _a.sent();
8466
8655
  return [4 /*yield*/, sdkNonAdmin.api.users.updateOne(sdkNonAdmin.userInfo.id, {
@@ -8475,7 +8664,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8475
8664
  }, {
8476
8665
  replaceObjectFields: true,
8477
8666
  })];
8478
- case 61:
8667
+ case 63:
8479
8668
  _a.sent();
8480
8669
  return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
8481
8670
  calendarEventTemplateId: event30min.id,
@@ -8486,7 +8675,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8486
8675
  })
8487
8676
  // Test 1: replaceHostOnReschedule: false (old behavior - preserve all attendees)
8488
8677
  ];
8489
- case 62:
8678
+ case 64:
8490
8679
  rescheduleSlots = _a.sent();
8491
8680
  return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
8492
8681
  title: 'Preserve Hosts Template',
@@ -8495,7 +8684,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8495
8684
  confirmationSMSDisabled: true,
8496
8685
  replaceHostOnReschedule: false, // explicitly set to false
8497
8686
  })];
8498
- case 63:
8687
+ case 65:
8499
8688
  templatePreserveHosts = _a.sent();
8500
8689
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8501
8690
  calendarEventTemplateId: templatePreserveHosts.id,
@@ -8503,7 +8692,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8503
8692
  userId: sdk.userInfo.id,
8504
8693
  otherUserIds: [sdkNonAdmin.userInfo.id], // book with both hosts
8505
8694
  })];
8506
- case 64:
8695
+ case 66:
8507
8696
  originalMultiHostAppt = (_a.sent()).createdEvent;
8508
8697
  assert(originalMultiHostAppt.attendees.filter(function (a) { return a.type === 'user'; }).length === 2, 'Original appointment should have 2 user attendees', 'Original multi-host appointment created');
8509
8698
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
@@ -8512,7 +8701,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8512
8701
  startTime: new Date(rescheduleSlots.availabilityBlocks[1].startTimeInMS),
8513
8702
  userId: sdkNonAdmin.userInfo.id, // reschedule with different primary host
8514
8703
  })];
8515
- case 65:
8704
+ case 67:
8516
8705
  rescheduledPreserveHosts = (_a.sent()).createdEvent;
8517
8706
  return [4 /*yield*/, async_test('[reschedule] replaceHostOnReschedule: false preserves all user attendees', function () { return sdk.api.calendar_events.getOne(rescheduledPreserveHosts.id); }, { onResult: function (event) {
8518
8707
  var userAttendees = event.attendees.filter(function (a) { return a.type === 'user'; });
@@ -8534,7 +8723,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8534
8723
  } })
8535
8724
  // Test 2: replaceHostOnReschedule: true (new behavior - replace hosts)
8536
8725
  ];
8537
- case 66:
8726
+ case 68:
8538
8727
  _a.sent();
8539
8728
  return [4 /*yield*/, sdk.api.calendar_event_templates.createOne({
8540
8729
  title: 'Replace Hosts Template',
@@ -8543,7 +8732,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8543
8732
  confirmationSMSDisabled: true,
8544
8733
  replaceHostOnReschedule: true, // new default behavior
8545
8734
  })];
8546
- case 67:
8735
+ case 69:
8547
8736
  templateReplaceHosts = _a.sent();
8548
8737
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8549
8738
  calendarEventTemplateId: templateReplaceHosts.id,
@@ -8551,7 +8740,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8551
8740
  userId: sdk.userInfo.id,
8552
8741
  otherUserIds: [sdkNonAdmin.userInfo.id], // book with both hosts
8553
8742
  })];
8554
- case 68:
8743
+ case 70:
8555
8744
  originalForReplace = (_a.sent()).createdEvent;
8556
8745
  assert(originalForReplace.attendees.filter(function (a) { return a.type === 'user'; }).length === 2, 'Original appointment should have 2 user attendees', 'Original multi-host appointment for replace test created');
8557
8746
  return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
@@ -8560,7 +8749,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8560
8749
  startTime: new Date(rescheduleSlots.availabilityBlocks[3].startTimeInMS),
8561
8750
  userId: sdkNonAdmin.userInfo.id, // reschedule with only this host
8562
8751
  })];
8563
- case 69:
8752
+ case 71:
8564
8753
  rescheduledReplaceHosts = (_a.sent()).createdEvent;
8565
8754
  return [4 /*yield*/, async_test('[reschedule] replaceHostOnReschedule: true replaces user attendees with new host only', function () { return sdk.api.calendar_events.getOne(rescheduledReplaceHosts.id); }, { onResult: function (event) {
8566
8755
  var userAttendees = event.attendees.filter(function (a) { return a.type === 'user'; });
@@ -8580,7 +8769,7 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8580
8769
  }
8581
8770
  return true;
8582
8771
  } })];
8583
- case 70:
8772
+ case 72:
8584
8773
  _a.sent();
8585
8774
  return [4 /*yield*/, async_test('[reschedule] replaceHostOnReschedule: true preserves enduser attendees', function () { return sdk.api.calendar_events.getOne(rescheduledReplaceHosts.id); }, { onResult: function (event) {
8586
8775
  var enduserAttendees = event.attendees.filter(function (a) { return a.type === 'enduser'; });
@@ -8596,31 +8785,88 @@ export var self_serve_appointment_booking_tests = function () { return __awaiter
8596
8785
  } })
8597
8786
  // Test 3: Verify old event is marked as rescheduled
8598
8787
  ];
8599
- case 71:
8788
+ case 73:
8600
8789
  _a.sent();
8601
8790
  // Test 3: Verify old event is marked as rescheduled
8602
- return [4 /*yield*/, async_test('[reschedule] original event marked as rescheduled', function () { return sdk.api.calendar_events.getOne(originalForReplace.id); }, { onResult: function (event) { return !!event.rescheduledAt; } })];
8603
- case 72:
8791
+ return [4 /*yield*/, async_test('[reschedule] original event marked as rescheduled', function () { return sdk.api.calendar_events.getOne(originalForReplace.id); }, { onResult: function (event) { return !!event.rescheduledAt; } })
8792
+ // videoIntegration passthrough from template to booked event (Twilio fix + Zoom regression guard)
8793
+ // set up fresh, dedicated availability so this doesn't interfere with the slot-accounting tests above
8794
+ ];
8795
+ case 74:
8604
8796
  // Test 3: Verify old event is marked as rescheduled
8605
8797
  _a.sent();
8798
+ // videoIntegration passthrough from template to booked event (Twilio fix + Zoom regression guard)
8799
+ // set up fresh, dedicated availability so this doesn't interfere with the slot-accounting tests above
8800
+ return [4 /*yield*/, sdk.api.users.updateOne(sdk.userInfo.id, {
8801
+ weeklyAvailabilities: [
8802
+ {
8803
+ dayOfWeekStartingSundayIndexedByZero: dayOfWeekStartingSundayIndexedByZero,
8804
+ startTimeInMinutes: 60 * 9,
8805
+ endTimeInMinutes: 60 * 11, // 11am,
8806
+ },
8807
+ ],
8808
+ timezone: 'America/New_York',
8809
+ }, {
8810
+ replaceObjectFields: true,
8811
+ })];
8812
+ case 75:
8813
+ // videoIntegration passthrough from template to booked event (Twilio fix + Zoom regression guard)
8814
+ // set up fresh, dedicated availability so this doesn't interfere with the slot-accounting tests above
8815
+ _a.sent();
8816
+ return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
8817
+ calendarEventTemplateId: event30minTwilio.id,
8818
+ from: new Date(Date.now() - 10000),
8819
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8820
+ userIds: [sdk.userInfo.id],
8821
+ })];
8822
+ case 76:
8823
+ twilioSlots = _a.sent();
8824
+ return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8825
+ calendarEventTemplateId: event30minTwilio.id,
8826
+ startTime: new Date(twilioSlots.availabilityBlocks[0].startTimeInMS),
8827
+ userId: sdk.userInfo.id,
8828
+ })];
8829
+ case 77:
8830
+ bookedTwilioAppointment = (_a.sent()).createdEvent;
8831
+ assert(bookedTwilioAppointment.videoIntegration === 'Twilio', 'Twilio videoIntegration not propagated to booked event', 'Twilio videoIntegration propagated to booked event');
8832
+ return [4 /*yield*/, enduserSDK.api.calendar_events.get_appointment_availability({
8833
+ calendarEventTemplateId: event30minZoom.id,
8834
+ from: new Date(Date.now() - 10000),
8835
+ to: new Date(Date.now() + 3 * 24 * 60 * 60 * 1000),
8836
+ userIds: [sdk.userInfo.id],
8837
+ })];
8838
+ case 78:
8839
+ zoomSlots = _a.sent();
8840
+ return [4 /*yield*/, enduserSDK.api.calendar_events.book_appointment({
8841
+ calendarEventTemplateId: event30minZoom.id,
8842
+ startTime: new Date(zoomSlots.availabilityBlocks[0].startTimeInMS),
8843
+ userId: sdk.userInfo.id,
8844
+ })];
8845
+ case 79:
8846
+ bookedZoomAppointment = (_a.sent()).createdEvent;
8847
+ assert(bookedZoomAppointment.videoIntegration === 'Zoom', 'Zoom videoIntegration not propagated to booked event', 'Zoom videoIntegration propagated to booked event');
8606
8848
  return [4 /*yield*/, Promise.all([
8607
8849
  sdk.api.endusers.deleteOne(e1.id),
8608
8850
  sdk.api.endusers.deleteOne(e2.id),
8609
8851
  sdk.api.endusers.deleteOne(e3.id),
8610
8852
  sdk.api.calendar_event_templates.deleteOne(event30min.id),
8611
8853
  sdk.api.calendar_event_templates.deleteOne(event30minGroup.id),
8854
+ sdk.api.calendar_event_templates.deleteOne(event30minTwilio.id),
8855
+ sdk.api.calendar_event_templates.deleteOne(event30minZoom.id),
8612
8856
  sdk.api.calendar_event_templates.deleteOne(event15min.id),
8613
8857
  sdk.api.calendar_event_templates.deleteOne(templatePreserveHosts.id),
8614
8858
  sdk.api.calendar_event_templates.deleteOne(templateReplaceHosts.id),
8615
8859
  sdk.api.calendar_events.deleteOne(bookedAppointment.id),
8616
8860
  sdk.api.calendar_events.deleteOne(bookedMultiAppointment.id),
8861
+ sdk.api.calendar_events.deleteOne(bookedTwilioAppointment.id),
8862
+ sdk.api.calendar_events.deleteOne(bookedZoomAppointment.id),
8617
8863
  sdk.api.calendar_events.deleteOne(groupEvent.id),
8618
8864
  sdk.api.calendar_events.deleteOne(originalMultiHostAppt.id),
8619
8865
  sdk.api.calendar_events.deleteOne(rescheduledPreserveHosts.id),
8620
8866
  sdk.api.calendar_events.deleteOne(originalForReplace.id),
8621
8867
  sdk.api.calendar_events.deleteOne(rescheduledReplaceHosts.id),
8622
8868
  ])];
8623
- case 73:
8869
+ case 80:
8624
8870
  _a.sent();
8625
8871
  return [2 /*return*/];
8626
8872
  }
@@ -12869,32 +13115,38 @@ var lockout_tests = function () { return __awaiter(void 0, void 0, void 0, funct
12869
13115
  return [4 /*yield*/, async_test("admin unlock to -1", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
12870
13116
  case 18:
12871
13117
  _a.sent();
12872
- return [4 /*yield*/, async_test("non-admin can re authenciate when locked to 0", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, passOnAnyResult)];
13118
+ return [4 /*yield*/, wait(undefined, 1500)]; // ensure new token's iat second clears the stale deauthenticated-<id> cache marker (1s tolerance)
12873
13119
  case 19:
13120
+ _a.sent(); // ensure new token's iat second clears the stale deauthenticated-<id> cache marker (1s tolerance)
13121
+ return [4 /*yield*/, async_test("non-admin can re authenciate when locked to 0", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, passOnAnyResult)];
13122
+ case 20:
12874
13123
  _a.sent();
12875
13124
  return [4 /*yield*/, async_test("non-admin is authenticated", sdkNonAdmin.test_authenticated, passOnAnyResult)];
12876
- case 20:
13125
+ case 21:
12877
13126
  _a.sent();
12878
13127
  return [4 /*yield*/, async_test("admin lock to future date", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: Date.now() + 10000 }); }, passOnAnyResult)];
12879
- case 21:
13128
+ case 22:
12880
13129
  _a.sent();
12881
13130
  return [4 /*yield*/, wait(undefined, 250)];
12882
- case 22:
13131
+ case 23:
12883
13132
  _a.sent();
12884
13133
  return [4 /*yield*/, async_test("non-admin is de-authenticated when locked to future date", sdkNonAdmin.test_authenticated, handleAnyError)];
12885
- case 23:
13134
+ case 24:
12886
13135
  _a.sent();
12887
13136
  return [4 /*yield*/, async_test("non-admin can't authenciate when locked to future date", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, handleAnyError)];
12888
- case 24:
13137
+ case 25:
12889
13138
  _a.sent();
12890
13139
  return [4 /*yield*/, async_test("admin unlock to -1", function () { return sdk.api.users.updateOne(nonAdminId, { lockedOutUntil: -1 }); }, passOnAnyResult)];
12891
- case 25:
13140
+ case 26:
12892
13141
  _a.sent();
13142
+ return [4 /*yield*/, wait(undefined, 1500)]; // ensure new token's iat second clears the stale deauthenticated-<id> cache marker (1s tolerance)
13143
+ case 27:
13144
+ _a.sent(); // ensure new token's iat second clears the stale deauthenticated-<id> cache marker (1s tolerance)
12893
13145
  return [4 /*yield*/, async_test("non-admin can re authenciate when locked to future date", function () { return sdkNonAdmin.authenticate(nonAdminEmail, nonAdminPassword); }, passOnAnyResult)];
12894
- case 26:
13146
+ case 28:
12895
13147
  _a.sent();
12896
13148
  return [4 /*yield*/, async_test("non-admin is authenticated", sdkNonAdmin.test_authenticated, passOnAnyResult)];
12897
- case 27:
13149
+ case 29:
12898
13150
  _a.sent();
12899
13151
  return [2 /*return*/];
12900
13152
  }
@@ -16692,7 +16944,7 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16692
16944
  assert(truncate_string(null, { length: 4, showEllipsis: false }) === '', 'truncate doesnt work for non string', 'trucate works for non-string');
16693
16945
  _l.label = 2;
16694
16946
  case 2:
16695
- _l.trys.push([2, 154, , 155]);
16947
+ _l.trys.push([2, 155, , 156]);
16696
16948
  get_next_reminder_timestamp_tests();
16697
16949
  form_conditional_logic_tests();
16698
16950
  return [4 /*yield*/, test_weighted_round_robin()];
@@ -16839,37 +17091,37 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16839
17091
  return [4 /*yield*/, setup_tests(sdk, sdkNonAdmin)];
16840
17092
  case 18:
16841
17093
  _l.sent();
16842
- return [4 /*yield*/, resource_access_tags_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17094
+ return [4 /*yield*/, automation_trigger_tests()];
16843
17095
  case 19:
16844
17096
  _l.sent();
16845
- return [4 /*yield*/, beluga_manual_sync_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17097
+ return [4 /*yield*/, resource_access_tags_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16846
17098
  case 20:
16847
17099
  _l.sent();
16848
- return [4 /*yield*/, beluga_pharmacy_mappings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17100
+ return [4 /*yield*/, beluga_manual_sync_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16849
17101
  case 21:
16850
17102
  _l.sent();
16851
- return [4 /*yield*/, mdi_case_offerings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17103
+ return [4 /*yield*/, beluga_pharmacy_mappings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16852
17104
  case 22:
16853
17105
  _l.sent();
16854
- return [4 /*yield*/, enduser_write_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17106
+ return [4 /*yield*/, mdi_case_offerings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16855
17107
  case 23:
16856
17108
  _l.sent();
16857
- return [4 /*yield*/, enduser_cross_create_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17109
+ return [4 /*yield*/, enduser_write_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16858
17110
  case 24:
16859
17111
  _l.sent();
16860
- return [4 /*yield*/, globalunique_leak_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17112
+ return [4 /*yield*/, enduser_cross_create_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16861
17113
  case 25:
16862
17114
  _l.sent();
16863
- return [4 /*yield*/, load_inbox_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17115
+ return [4 /*yield*/, globalunique_leak_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16864
17116
  case 26:
16865
17117
  _l.sent();
16866
- return [4 /*yield*/, webhook_timeout_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17118
+ return [4 /*yield*/, load_inbox_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16867
17119
  case 27:
16868
17120
  _l.sent();
16869
- return [4 /*yield*/, user_portal_settings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17121
+ return [4 /*yield*/, webhook_timeout_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16870
17122
  case 28:
16871
17123
  _l.sent();
16872
- return [4 /*yield*/, automation_trigger_tests()];
17124
+ return [4 /*yield*/, user_portal_settings_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16873
17125
  case 29:
16874
17126
  _l.sent();
16875
17127
  return [4 /*yield*/, invite_user_enumeration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
@@ -16923,333 +17175,336 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
16923
17175
  return [4 /*yield*/, cross_org_api_key_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16924
17176
  case 46:
16925
17177
  _l.sent();
16926
- return [4 /*yield*/, organization_settings_duplicates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17178
+ return [4 /*yield*/, organization_api_keys_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16927
17179
  case 47:
16928
17180
  _l.sent();
16929
- return [4 /*yield*/, enduser_session_invalidation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17181
+ return [4 /*yield*/, organization_settings_duplicates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16930
17182
  case 48:
16931
17183
  _l.sent();
16932
- return [4 /*yield*/, chats_analytics_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17184
+ return [4 /*yield*/, enduser_session_invalidation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16933
17185
  case 49:
16934
17186
  _l.sent();
16935
- return [4 /*yield*/, field_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17187
+ return [4 /*yield*/, chats_analytics_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16936
17188
  case 50:
16937
17189
  _l.sent();
16938
- return [4 /*yield*/, form_submitted_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17190
+ return [4 /*yield*/, field_redaction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16939
17191
  case 51:
16940
17192
  _l.sent();
16941
- return [4 /*yield*/, date_string_validation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17193
+ return [4 /*yield*/, form_submitted_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16942
17194
  case 52:
16943
17195
  _l.sent();
16944
- return [4 /*yield*/, openloop_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17196
+ return [4 /*yield*/, date_string_validation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16945
17197
  case 53:
16946
17198
  _l.sent();
16947
- return [4 /*yield*/, mdi_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17199
+ return [4 /*yield*/, openloop_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16948
17200
  case 54:
16949
17201
  _l.sent();
16950
- return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17202
+ return [4 /*yield*/, mdi_webhooks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16951
17203
  case 55:
16952
17204
  _l.sent();
16953
- return [4 /*yield*/, mdb_sort_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17205
+ return [4 /*yield*/, integrations_redacted_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16954
17206
  case 56:
16955
17207
  _l.sent();
16956
- return [4 /*yield*/, search_tests()];
17208
+ return [4 /*yield*/, mdb_sort_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16957
17209
  case 57:
16958
17210
  _l.sent();
16959
- return [4 /*yield*/, time_tracks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17211
+ return [4 /*yield*/, search_tests()];
16960
17212
  case 58:
16961
17213
  _l.sent();
16962
- return [4 /*yield*/, time_tracks_historical_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17214
+ return [4 /*yield*/, time_tracks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16963
17215
  case 59:
16964
17216
  _l.sent();
16965
- return [4 /*yield*/, time_tracks_correction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17217
+ return [4 /*yield*/, time_tracks_historical_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16966
17218
  case 60:
16967
17219
  _l.sent();
16968
- return [4 /*yield*/, time_tracks_review_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17220
+ return [4 /*yield*/, time_tracks_correction_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16969
17221
  case 61:
16970
17222
  _l.sent();
16971
- return [4 /*yield*/, time_tracks_lock_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17223
+ return [4 /*yield*/, time_tracks_review_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16972
17224
  case 62:
16973
17225
  _l.sent();
16974
- return [4 /*yield*/, time_tracks_edge_case_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17226
+ return [4 /*yield*/, time_tracks_lock_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16975
17227
  case 63:
16976
17228
  _l.sent();
16977
- return [4 /*yield*/, time_tracks_resubmit_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17229
+ return [4 /*yield*/, time_tracks_edge_case_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16978
17230
  case 64:
16979
17231
  _l.sent();
16980
- return [4 /*yield*/, time_tracks_appointment_duration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17232
+ return [4 /*yield*/, time_tracks_resubmit_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16981
17233
  case 65:
16982
17234
  _l.sent();
16983
- return [4 /*yield*/, calendar_event_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17235
+ return [4 /*yield*/, time_tracks_appointment_duration_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16984
17236
  case 66:
16985
17237
  _l.sent();
16986
- return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17238
+ return [4 /*yield*/, calendar_event_limits_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16987
17239
  case 67:
16988
17240
  _l.sent();
16989
- return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17241
+ return [4 /*yield*/, get_some_projection_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16990
17242
  case 68:
16991
17243
  _l.sent();
16992
- return [4 /*yield*/, custom_dashboards_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17244
+ return [4 /*yield*/, elation_user_id_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16993
17245
  case 69:
16994
17246
  _l.sent();
16995
- return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17247
+ return [4 /*yield*/, custom_dashboards_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16996
17248
  case 70:
16997
17249
  _l.sent();
16998
- return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17250
+ return [4 /*yield*/, concurrent_build_threads_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
16999
17251
  case 71:
17000
17252
  _l.sent();
17001
- return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17253
+ return [4 /*yield*/, custom_aggregation_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17002
17254
  case 72:
17003
17255
  _l.sent();
17004
- return [4 /*yield*/, enduser_tests()];
17256
+ return [4 /*yield*/, no_access_permission_checks_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17005
17257
  case 73:
17006
17258
  _l.sent();
17007
- return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17259
+ return [4 /*yield*/, enduser_tests()];
17008
17260
  case 74:
17009
17261
  _l.sent();
17010
- return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17262
+ return [4 /*yield*/, form_started_trigger_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17011
17263
  case 75:
17012
17264
  _l.sent();
17013
- return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17265
+ return [4 /*yield*/, load_team_chat_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17014
17266
  case 76:
17015
17267
  _l.sent();
17016
- return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17268
+ return [4 /*yield*/, ai_conversations_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17017
17269
  case 77:
17018
17270
  _l.sent();
17019
- return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17271
+ return [4 /*yield*/, inbox_thread_assignment_updates_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17020
17272
  case 78:
17021
17273
  _l.sent();
17022
- return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17274
+ return [4 /*yield*/, inbox_thread_draft_scheduled_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17023
17275
  case 79:
17024
17276
  _l.sent();
17025
- return [4 /*yield*/, inbox_threads_new_fields_tests()];
17277
+ return [4 /*yield*/, load_threads_autobuild_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17026
17278
  case 80:
17027
17279
  _l.sent();
17028
- return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17280
+ return [4 /*yield*/, inbox_threads_new_fields_tests()];
17029
17281
  case 81:
17030
17282
  _l.sent();
17031
- return [4 /*yield*/, threadKeyTests()];
17283
+ return [4 /*yield*/, auto_merge_form_submission_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17032
17284
  case 82:
17033
17285
  _l.sent();
17034
- return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17286
+ return [4 /*yield*/, threadKeyTests()];
17035
17287
  case 83:
17036
17288
  _l.sent();
17037
- return [4 /*yield*/, managed_content_file_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17289
+ return [4 /*yield*/, managed_content_enduser_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17038
17290
  case 84:
17039
17291
  _l.sent();
17040
- return [4 /*yield*/, afteraction_day_of_month_delay_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17292
+ return [4 /*yield*/, managed_content_file_access_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17041
17293
  case 85:
17042
17294
  _l.sent();
17043
- return [4 /*yield*/, bulk_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17295
+ return [4 /*yield*/, afteraction_day_of_month_delay_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17044
17296
  case 86:
17045
17297
  _l.sent();
17046
- return [4 /*yield*/, formsort_tests()];
17298
+ return [4 /*yield*/, bulk_assignment_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17047
17299
  case 87:
17048
17300
  _l.sent();
17049
- return [4 /*yield*/, self_serve_appointment_booking_tests()];
17301
+ return [4 /*yield*/, formsort_tests()];
17050
17302
  case 88:
17051
17303
  _l.sent();
17052
- return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
17304
+ return [4 /*yield*/, self_serve_appointment_booking_tests()];
17053
17305
  case 89:
17054
17306
  _l.sent();
17055
- return [4 /*yield*/, monthly_availability_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17307
+ return [4 /*yield*/, test_ticket_automation_assignment_and_optimization()];
17056
17308
  case 90:
17057
17309
  _l.sent();
17058
- return [4 /*yield*/, journey_error_branching_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17310
+ return [4 /*yield*/, monthly_availability_restrictions_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17059
17311
  case 91:
17060
17312
  _l.sent();
17061
- return [4 /*yield*/, message_assignment_trigger_tests({ sdk: sdk })];
17313
+ return [4 /*yield*/, journey_error_branching_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17062
17314
  case 92:
17063
17315
  _l.sent();
17064
- return [4 /*yield*/, inbox_threads_building_tests()];
17316
+ return [4 /*yield*/, message_assignment_trigger_tests({ sdk: sdk })];
17065
17317
  case 93:
17066
17318
  _l.sent();
17067
- return [4 /*yield*/, inbox_threads_loading_tests()];
17319
+ return [4 /*yield*/, inbox_threads_building_tests()];
17068
17320
  case 94:
17069
17321
  _l.sent();
17070
- return [4 /*yield*/, load_inbox_data_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17322
+ return [4 /*yield*/, inbox_threads_loading_tests()];
17071
17323
  case 95:
17072
17324
  _l.sent();
17073
- return [4 /*yield*/, enduser_observations_acknowledge_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17325
+ return [4 /*yield*/, load_inbox_data_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17074
17326
  case 96:
17075
17327
  _l.sent();
17076
- return [4 /*yield*/, create_user_notifications_trigger_tests({ sdk: sdk })];
17328
+ return [4 /*yield*/, enduser_observations_acknowledge_tests({ sdk: sdk, sdkNonAdmin: sdkNonAdmin })];
17077
17329
  case 97:
17078
17330
  _l.sent();
17079
- return [4 /*yield*/, group_mms_active_tests()];
17331
+ return [4 /*yield*/, create_user_notifications_trigger_tests({ sdk: sdk })];
17080
17332
  case 98:
17081
17333
  _l.sent();
17082
- return [4 /*yield*/, auto_reply_tests()];
17334
+ return [4 /*yield*/, group_mms_active_tests()];
17083
17335
  case 99:
17084
17336
  _l.sent();
17085
- return [4 /*yield*/, relationships_tests()];
17337
+ return [4 /*yield*/, auto_reply_tests()];
17086
17338
  case 100:
17087
17339
  _l.sent();
17088
- return [4 /*yield*/, rate_limit_tests()];
17340
+ return [4 /*yield*/, relationships_tests()];
17089
17341
  case 101:
17090
17342
  _l.sent();
17091
- return [4 /*yield*/, ip_address_form_tests()];
17343
+ return [4 /*yield*/, rate_limit_tests()];
17092
17344
  case 102:
17093
17345
  _l.sent();
17094
- return [4 /*yield*/, bulk_update_tests()];
17346
+ return [4 /*yield*/, ip_address_form_tests()];
17095
17347
  case 103:
17096
17348
  _l.sent();
17097
- return [4 /*yield*/, calendar_events_bulk_update_tests({ sdk: sdk })];
17349
+ return [4 /*yield*/, bulk_update_tests()];
17098
17350
  case 104:
17099
17351
  _l.sent();
17100
- return [4 /*yield*/, cancel_upcoming_appointments_journey_action_test()];
17352
+ return [4 /*yield*/, calendar_events_bulk_update_tests({ sdk: sdk })];
17101
17353
  case 105:
17102
17354
  _l.sent();
17103
- return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17355
+ return [4 /*yield*/, cancel_upcoming_appointments_journey_action_test()];
17104
17356
  case 106:
17357
+ _l.sent();
17358
+ return [4 /*yield*/, multi_tenant_tests()]; // should come right after setup tests
17359
+ case 107:
17105
17360
  _l.sent(); // should come right after setup tests
17106
17361
  return [4 /*yield*/, sync_tests_with_access_tags()]; // should come directly after setup to avoid extra sync values
17107
- case 107:
17362
+ case 108:
17108
17363
  _l.sent(); // should come directly after setup to avoid extra sync values
17109
17364
  return [4 /*yield*/, sync_tests()]; // should come directly after setup to avoid extra sync values
17110
- case 108:
17365
+ case 109:
17111
17366
  _l.sent(); // should come directly after setup to avoid extra sync values
17112
17367
  return [4 /*yield*/, get_templated_message_tests()];
17113
- case 109:
17368
+ case 110:
17114
17369
  _l.sent();
17115
17370
  return [4 /*yield*/, updatedAt_tests()];
17116
- case 110:
17371
+ case 111:
17117
17372
  _l.sent();
17118
17373
  return [4 /*yield*/, file_source_tests()];
17119
- case 111:
17374
+ case 112:
17120
17375
  _l.sent();
17121
17376
  return [4 /*yield*/, enduser_access_tags_tests()];
17122
- case 112:
17377
+ case 113:
17123
17378
  _l.sent();
17124
17379
  return [4 /*yield*/, enduserAccessTests()];
17125
- case 113:
17380
+ case 114:
17126
17381
  _l.sent();
17127
17382
  return [4 /*yield*/, test_form_response_search()];
17128
- case 114:
17383
+ case 115:
17129
17384
  _l.sent();
17130
17385
  return [4 /*yield*/, date_parsing_tests()];
17131
- case 115:
17386
+ case 116:
17132
17387
  _l.sent();
17133
17388
  return [4 /*yield*/, fromEmailOverride_tests()];
17134
- case 116:
17389
+ case 117:
17135
17390
  _l.sent();
17136
17391
  return [4 /*yield*/, ticket_tests()];
17137
- case 117:
17392
+ case 118:
17138
17393
  _l.sent();
17139
17394
  return [4 /*yield*/, uniqueness_tests()];
17140
- case 118:
17395
+ case 119:
17141
17396
  _l.sent();
17142
17397
  return [4 /*yield*/, enduser_orders_tests()];
17143
- case 119:
17398
+ case 120:
17144
17399
  _l.sent();
17145
17400
  return [4 /*yield*/, calendar_event_care_team_tests()];
17146
- case 120:
17401
+ case 121:
17147
17402
  _l.sent();
17148
17403
  return [4 /*yield*/, merge_enduser_tests()];
17149
- case 121:
17404
+ case 122:
17150
17405
  _l.sent();
17151
17406
  return [4 /*yield*/, input_modifier_tests()];
17152
- case 122:
17407
+ case 123:
17153
17408
  _l.sent();
17154
17409
  return [4 /*yield*/, switch_to_related_contacts_tests()];
17155
- case 123:
17410
+ case 124:
17156
17411
  _l.sent();
17157
17412
  return [4 /*yield*/, redaction_tests()];
17158
- case 124:
17413
+ case 125:
17159
17414
  _l.sent();
17160
17415
  return [4 /*yield*/, no_chained_triggers_tests()];
17161
- case 125:
17416
+ case 126:
17162
17417
  _l.sent();
17163
17418
  return [4 /*yield*/, mdb_filter_tests()];
17164
- case 126:
17419
+ case 127:
17165
17420
  _l.sent();
17166
17421
  return [4 /*yield*/, superadmin_tests()];
17167
- case 127:
17422
+ case 128:
17168
17423
  _l.sent();
17169
17424
  return [4 /*yield*/, ticket_queue_tests()];
17170
- case 128:
17425
+ case 129:
17171
17426
  _l.sent();
17172
17427
  return [4 /*yield*/, vital_trigger_tests()];
17173
- case 129:
17428
+ case 130:
17174
17429
  _l.sent();
17175
17430
  return [4 /*yield*/, close_reasons_no_duplicates_tests()];
17176
- case 130:
17431
+ case 131:
17177
17432
  _l.sent();
17178
17433
  return [4 /*yield*/, register_as_enduser_tests()];
17179
- case 131:
17434
+ case 132:
17180
17435
  _l.sent();
17181
17436
  return [4 /*yield*/, lockout_tests()];
17182
- case 132:
17437
+ case 133:
17183
17438
  _l.sent();
17184
17439
  return [4 /*yield*/, delete_user_tests()
17185
17440
  // await test_send_with_template()
17186
17441
  ];
17187
- case 133:
17442
+ case 134:
17188
17443
  _l.sent();
17189
17444
  // await test_send_with_template()
17190
17445
  return [4 /*yield*/, bulk_read_tests()];
17191
- case 134:
17446
+ case 135:
17192
17447
  // await test_send_with_template()
17193
17448
  _l.sent();
17194
17449
  return [4 /*yield*/, ticket_reminder_tests()];
17195
- case 135:
17450
+ case 136:
17196
17451
  _l.sent();
17197
17452
  return [4 /*yield*/, marketing_email_unsubscribe_tests()];
17198
- case 136:
17453
+ case 137:
17199
17454
  _l.sent();
17200
17455
  return [4 /*yield*/, unique_strings_tests()];
17201
- case 137:
17456
+ case 138:
17202
17457
  _l.sent();
17203
17458
  return [4 /*yield*/, alternate_phones_tests()];
17204
- case 138:
17459
+ case 139:
17205
17460
  _l.sent();
17206
17461
  return [4 /*yield*/, role_based_access_tests()];
17207
- case 139:
17462
+ case 140:
17208
17463
  _l.sent();
17209
17464
  return [4 /*yield*/, enduser_session_tests()];
17210
- case 140:
17465
+ case 141:
17211
17466
  _l.sent();
17212
17467
  return [4 /*yield*/, nextReminderInMS_tests()];
17213
- case 141:
17468
+ case 142:
17214
17469
  _l.sent();
17215
17470
  return [4 /*yield*/, wait_for_trigger_tests()];
17216
- case 142:
17471
+ case 143:
17217
17472
  _l.sent();
17218
17473
  return [4 /*yield*/, pdf_generation()];
17219
- case 143:
17474
+ case 144:
17220
17475
  _l.sent();
17221
17476
  return [4 /*yield*/, remove_from_journey_on_incoming_comms_tests().catch(console.error)]; // timing is unreliable, uncomment if changing logic
17222
- case 144:
17477
+ case 145:
17223
17478
  _l.sent(); // timing is unreliable, uncomment if changing logic
17224
17479
  return [4 /*yield*/, sub_organization_enduser_tests()];
17225
- case 145:
17226
- _l.sent();
17227
- return [4 /*yield*/, sub_organization_tests()];
17228
17480
  case 146:
17229
17481
  _l.sent();
17230
- return [4 /*yield*/, filter_by_date_tests()];
17482
+ return [4 /*yield*/, sub_organization_tests()];
17231
17483
  case 147:
17232
17484
  _l.sent();
17233
- return [4 /*yield*/, generate_user_auth_tests()];
17485
+ return [4 /*yield*/, filter_by_date_tests()];
17234
17486
  case 148:
17235
17487
  _l.sent();
17236
- return [4 /*yield*/, generateEnduserAuthTests()];
17488
+ return [4 /*yield*/, generate_user_auth_tests()];
17237
17489
  case 149:
17238
17490
  _l.sent();
17239
- return [4 /*yield*/, public_form_tests()];
17491
+ return [4 /*yield*/, generateEnduserAuthTests()];
17240
17492
  case 150:
17241
17493
  _l.sent();
17242
- return [4 /*yield*/, badInputTests()];
17494
+ return [4 /*yield*/, public_form_tests()];
17243
17495
  case 151:
17244
17496
  _l.sent();
17245
- return [4 /*yield*/, filterTests()];
17497
+ return [4 /*yield*/, badInputTests()];
17246
17498
  case 152:
17247
17499
  _l.sent();
17248
- return [4 /*yield*/, updatesTests()];
17500
+ return [4 /*yield*/, filterTests()];
17249
17501
  case 153:
17250
17502
  _l.sent();
17251
- return [3 /*break*/, 155];
17503
+ return [4 /*yield*/, updatesTests()];
17252
17504
  case 154:
17505
+ _l.sent();
17506
+ return [3 /*break*/, 156];
17507
+ case 155:
17253
17508
  err_1 = _l.sent();
17254
17509
  console.error("Failed during custom test");
17255
17510
  if (err_1.message && err_1.info) {
@@ -17259,18 +17514,18 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
17259
17514
  console.error(err_1);
17260
17515
  }
17261
17516
  process.exit(1);
17262
- return [3 /*break*/, 155];
17263
- case 155:
17517
+ return [3 /*break*/, 156];
17518
+ case 156:
17264
17519
  _a = schema;
17265
17520
  _b = [];
17266
17521
  for (_c in _a)
17267
17522
  _b.push(_c);
17268
17523
  _i = 0;
17269
- _l.label = 156;
17270
- case 156:
17271
- if (!(_i < _b.length)) return [3 /*break*/, 159];
17524
+ _l.label = 157;
17525
+ case 157:
17526
+ if (!(_i < _b.length)) return [3 /*break*/, 160];
17272
17527
  _c = _b[_i];
17273
- if (!(_c in _a)) return [3 /*break*/, 158];
17528
+ if (!(_c in _a)) return [3 /*break*/, 159];
17274
17529
  n = _c;
17275
17530
  returnValidation = (_k = (_j = schema[n].customActions) === null || _j === void 0 ? void 0 : _j.create) === null || _k === void 0 ? void 0 : _k.returns;
17276
17531
  return [4 /*yield*/, run_generated_tests({
@@ -17281,41 +17536,41 @@ var ip_address_form_tests = function () { return __awaiter(void 0, void 0, void
17281
17536
  create: returnValidation // ModelFields<ClientModel>,
17282
17537
  }
17283
17538
  })];
17284
- case 157:
17285
- _l.sent();
17286
- _l.label = 158;
17287
17539
  case 158:
17288
- _i++;
17289
- return [3 /*break*/, 156];
17540
+ _l.sent();
17541
+ _l.label = 159;
17290
17542
  case 159:
17543
+ _i++;
17544
+ return [3 /*break*/, 157];
17545
+ case 160:
17291
17546
  _d = tests;
17292
17547
  _f = [];
17293
17548
  for (_g in _d)
17294
17549
  _f.push(_g);
17295
17550
  _h = 0;
17296
- _l.label = 160;
17297
- case 160:
17298
- if (!(_h < _f.length)) return [3 /*break*/, 165];
17299
- _g = _f[_h];
17300
- if (!(_g in _d)) return [3 /*break*/, 164];
17301
- t = _g;
17302
17551
  _l.label = 161;
17303
17552
  case 161:
17304
- _l.trys.push([161, 163, , 164]);
17305
- return [4 /*yield*/, tests[t]()];
17553
+ if (!(_h < _f.length)) return [3 /*break*/, 166];
17554
+ _g = _f[_h];
17555
+ if (!(_g in _d)) return [3 /*break*/, 165];
17556
+ t = _g;
17557
+ _l.label = 162;
17306
17558
  case 162:
17307
- _l.sent();
17308
- return [3 /*break*/, 164];
17559
+ _l.trys.push([162, 164, , 165]);
17560
+ return [4 /*yield*/, tests[t]()];
17309
17561
  case 163:
17562
+ _l.sent();
17563
+ return [3 /*break*/, 165];
17564
+ case 164:
17310
17565
  err_2 = _l.sent();
17311
17566
  console.error("Error running test:");
17312
17567
  console.error(err_2);
17313
17568
  process.exit(1);
17314
- return [3 /*break*/, 164];
17315
- case 164:
17316
- _h++;
17317
- return [3 /*break*/, 160];
17569
+ return [3 /*break*/, 165];
17318
17570
  case 165:
17571
+ _h++;
17572
+ return [3 /*break*/, 161];
17573
+ case 166:
17319
17574
  process.exit();
17320
17575
  return [2 /*return*/];
17321
17576
  }