@tellescope/sdk 1.255.3 → 1.255.5

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 (36) hide show
  1. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.d.ts +6 -0
  2. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.d.ts.map +1 -0
  3. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.js +316 -0
  4. package/lib/cjs/tests/api_tests/healthie_multi_integration.test.js.map +1 -0
  5. package/lib/cjs/tests/api_tests/medication_added_trigger.test.d.ts.map +1 -1
  6. package/lib/cjs/tests/api_tests/medication_added_trigger.test.js +206 -136
  7. package/lib/cjs/tests/api_tests/medication_added_trigger.test.js.map +1 -1
  8. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts +10 -0
  9. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts.map +1 -1
  10. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js +184 -41
  11. package/lib/cjs/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js.map +1 -1
  12. package/lib/cjs/tests/tests.d.ts.map +1 -1
  13. package/lib/cjs/tests/tests.js +131 -127
  14. package/lib/cjs/tests/tests.js.map +1 -1
  15. package/lib/esm/sdk.d.ts +2 -2
  16. package/lib/esm/tests/api_tests/healthie_multi_integration.test.d.ts +6 -0
  17. package/lib/esm/tests/api_tests/healthie_multi_integration.test.d.ts.map +1 -0
  18. package/lib/esm/tests/api_tests/healthie_multi_integration.test.js +309 -0
  19. package/lib/esm/tests/api_tests/healthie_multi_integration.test.js.map +1 -0
  20. package/lib/esm/tests/api_tests/medication_added_trigger.test.d.ts.map +1 -1
  21. package/lib/esm/tests/api_tests/medication_added_trigger.test.js +206 -136
  22. package/lib/esm/tests/api_tests/medication_added_trigger.test.js.map +1 -1
  23. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts +10 -0
  24. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.d.ts.map +1 -1
  25. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js +184 -41
  26. package/lib/esm/tests/api_tests/security/F-0005-ai-conversations-rbac.test.js.map +1 -1
  27. package/lib/esm/tests/tests.d.ts.map +1 -1
  28. package/lib/esm/tests/tests.js +131 -127
  29. package/lib/esm/tests/tests.js.map +1 -1
  30. package/lib/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +10 -10
  32. package/src/tests/api_tests/healthie_multi_integration.test.ts +245 -0
  33. package/src/tests/api_tests/medication_added_trigger.test.ts +59 -1
  34. package/src/tests/api_tests/security/F-0005-ai-conversations-rbac.test.ts +123 -0
  35. package/src/tests/tests.ts +2 -0
  36. package/test_generated.pdf +0 -0
@@ -45,7 +45,7 @@ var host = process.env.API_URL || "http://localhost:8080";
45
45
  var medication_added_trigger_tests = function (_a) {
46
46
  var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
47
47
  return __awaiter(void 0, void 0, void 0, function () {
48
- var t1, t2, t3, t4, t5, enduser1, enduser2, enduser3, enduser4, enduser5, enduser6, med1, med2, med3, med4, med5, med6, belugaForm, belugaEnduser, belugaFormResponse, belugaTrigger, webhookResponse, _b, _c, _d, belugaMeds, belugaMedSemaglutide, belugaMedMetformin, belugaFormNoCategory, belugaEnduserNoCategory, belugaFormResponseNoCategory, webhookResponseNoCategory, _e, _f, _g, belugaMedsNoCategory, belugaMedNoCategory, setFieldsTrigger, setFieldsEnduser, setFieldsMed, setFieldsTriggerFiltered, setFieldsEnduser2, setFieldsMed2, setFieldsCategoryTrigger, setFieldsCategoryEnduser, setFieldsCategoryMed, setFieldsCategoryEnduserEmpty, setFieldsCategoryMedEmpty, c1Trigger, c1MatchEnduser, c1MissEnduser, c2Trigger, c2MatchEnduser, c2MissEnduser, c3Trigger, c3MatchEnduser, c3MissEnduser, c4Trigger, c4MatchA, c4MatchB, c4Miss, c5Trigger, c5Match, c5Miss, c6Trigger, c6Match;
48
+ var t1, t2, t3, t4, t5, enduser1, enduser2, enduser3, enduser4, enduser5, enduser6, med1, med2, med3, med4, med5, med6, belugaForm, belugaEnduser, belugaFormResponse, belugaTrigger, webhookResponse, _b, _c, _d, belugaMeds, belugaMedSemaglutide, belugaMedMetformin, belugaFormNoCategory, belugaEnduserNoCategory, belugaFormResponseNoCategory, webhookResponseNoCategory, _e, _f, _g, belugaMedsNoCategory, belugaMedNoCategory, setFieldsTrigger, setFieldsEnduser, setFieldsMed, setFieldsTriggerFiltered, setFieldsEnduser2, setFieldsMed2, setFieldsCategoryTrigger, setFieldsCategoryEnduser, setFieldsCategoryMed, setFieldsCategoryEnduserEmpty, setFieldsCategoryMedEmpty, setFieldsPharmacyNotesTrigger, setFieldsPharmacyNotesEnduser, setFieldsPharmacyNotesMed, setFieldsPharmacyNotesEnduserEmpty, setFieldsPharmacyNotesMedEmpty, c1Trigger, c1MatchEnduser, c1MissEnduser, c2Trigger, c2MatchEnduser, c2MissEnduser, c3Trigger, c3MatchEnduser, c3MissEnduser, c4Trigger, c4MatchA, c4MatchB, c4Miss, c5Trigger, c5Match, c5Miss, c6Trigger, c6Match;
49
49
  return __generator(this, function (_h) {
50
50
  switch (_h.label) {
51
51
  case 0:
@@ -283,7 +283,7 @@ var medication_added_trigger_tests = function (_a) {
283
283
  status: 'Active',
284
284
  title: "Medication - Beluga Protocol Test"
285
285
  })
286
- // Simulate the Beluga RX_WRITTEN webhook with two meds covering category present (typical) and "N/A"
286
+ // Simulate the Beluga RX_WRITTEN webhook with two meds covering category/pharmacyNotes present (typical) and "N/A"/absent
287
287
  ];
288
288
  case 47:
289
289
  belugaTrigger = _h.sent();
@@ -302,6 +302,7 @@ var medication_added_trigger_tests = function (_a) {
302
302
  medId: 'test-ndc-123',
303
303
  rxId: 'test-rx-456',
304
304
  category: 'weightloss1',
305
+ pharmacyNotes: 'Dispense with syringes',
305
306
  }, {
306
307
  name: 'Metformin',
307
308
  strength: '500mg',
@@ -352,19 +353,29 @@ var medication_added_trigger_tests = function (_a) {
352
353
  _h.sent();
353
354
  return [4 /*yield*/, (0, testing_1.async_test)("Beluga RX_WRITTEN - Medication preserves N/A category verbatim", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
354
355
  return [2 /*return*/, belugaMedMetformin];
355
- }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.category) === 'N/A'; } })
356
+ }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.category) === 'N/A'; } })];
357
+ case 56:
358
+ _h.sent();
359
+ return [4 /*yield*/, (0, testing_1.async_test)("Beluga RX_WRITTEN - Medication has notes from webhook pharmacyNotes", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
360
+ return [2 /*return*/, belugaMedSemaglutide];
361
+ }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.notes) === 'Dispense with syringes'; } })];
362
+ case 57:
363
+ _h.sent();
364
+ return [4 /*yield*/, (0, testing_1.async_test)("Beluga RX_WRITTEN - Medication omits notes when pharmacyNotes not provided on med", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
365
+ return [2 /*return*/, belugaMedMetformin];
366
+ }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.notes) === undefined || (m === null || m === void 0 ? void 0 : m.notes) === null; } })
356
367
  // Backwards-compatibility: a webhook with no category on any med should result in undefined category
357
368
  ];
358
- case 56:
369
+ case 58:
359
370
  _h.sent();
360
371
  return [4 /*yield*/, sdk.api.forms.createOne({
361
372
  title: 'Beluga Protocol Test Form (no category)',
362
373
  belugaVisitType: 'Weight Loss',
363
374
  })];
364
- case 57:
375
+ case 59:
365
376
  belugaFormNoCategory = _h.sent();
366
377
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
367
- case 58:
378
+ case 60:
368
379
  belugaEnduserNoCategory = _h.sent();
369
380
  return [4 /*yield*/, sdk.api.form_responses.createOne({
370
381
  formId: belugaFormNoCategory.id,
@@ -376,7 +387,7 @@ var medication_added_trigger_tests = function (_a) {
376
387
  answer: { type: 'string', value: 'test' },
377
388
  }],
378
389
  })];
379
- case 59:
390
+ case 61:
380
391
  belugaFormResponseNoCategory = _h.sent();
381
392
  return [4 /*yield*/, fetch("".concat(host, "/v1/webhooks/beluga"), {
382
393
  method: 'POST',
@@ -395,48 +406,53 @@ var medication_added_trigger_tests = function (_a) {
395
406
  }],
396
407
  }),
397
408
  })];
398
- case 60:
409
+ case 62:
399
410
  webhookResponseNoCategory = _h.sent();
400
- if (!!webhookResponseNoCategory.ok) return [3 /*break*/, 62];
411
+ if (!!webhookResponseNoCategory.ok) return [3 /*break*/, 64];
401
412
  _e = Error.bind;
402
413
  _g = (_f = "Beluga webhook (no category) failed with status ".concat(webhookResponseNoCategory.status, ": ")).concat;
403
414
  return [4 /*yield*/, webhookResponseNoCategory.text()];
404
- case 61: throw new (_e.apply(Error, [void 0, _g.apply(_f, [_h.sent()])]))();
405
- case 62: return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
406
- case 63:
415
+ case 63: throw new (_e.apply(Error, [void 0, _g.apply(_f, [_h.sent()])]))();
416
+ case 64: return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
417
+ case 65:
407
418
  _h.sent();
408
419
  return [4 /*yield*/, sdk.api.enduser_medications.getSome({ filter: { enduserId: belugaEnduserNoCategory.id } })];
409
- case 64:
420
+ case 66:
410
421
  belugaMedsNoCategory = _h.sent();
411
422
  belugaMedNoCategory = belugaMedsNoCategory[0];
412
423
  return [4 /*yield*/, (0, testing_1.async_test)("Beluga RX_WRITTEN - Medication omits category when not provided", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
413
424
  return [2 /*return*/, belugaMedNoCategory];
414
425
  }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.category) === undefined || (m === null || m === void 0 ? void 0 : m.category) === null; } })];
415
- case 65:
426
+ case 67:
416
427
  _h.sent();
417
- _h.label = 66;
418
- case 66:
419
- _h.trys.push([66, , 72, 73]);
428
+ return [4 /*yield*/, (0, testing_1.async_test)("Beluga RX_WRITTEN - Medication omits notes when pharmacyNotes not provided", function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
429
+ return [2 /*return*/, belugaMedNoCategory];
430
+ }); }); }, { onResult: function (m) { return (m === null || m === void 0 ? void 0 : m.notes) === undefined || (m === null || m === void 0 ? void 0 : m.notes) === null; } })];
431
+ case 68:
432
+ _h.sent();
433
+ _h.label = 69;
434
+ case 69:
435
+ _h.trys.push([69, , 75, 76]);
420
436
  // Clean up Beluga test data
421
437
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(belugaTrigger.id)];
422
- case 67:
438
+ case 70:
423
439
  // Clean up Beluga test data
424
440
  _h.sent();
425
441
  return [4 /*yield*/, sdk.api.forms.deleteOne(belugaForm.id)];
426
- case 68:
442
+ case 71:
427
443
  _h.sent();
428
444
  return [4 /*yield*/, sdk.api.forms.deleteOne(belugaFormNoCategory.id)];
429
- case 69:
445
+ case 72:
430
446
  _h.sent();
431
447
  return [4 /*yield*/, sdk.api.endusers.deleteOne(belugaEnduser.id)]; // also cleans up form response and medications
432
- case 70:
448
+ case 73:
433
449
  _h.sent(); // also cleans up form response and medications
434
450
  return [4 /*yield*/, sdk.api.endusers.deleteOne(belugaEnduserNoCategory.id)]; // also cleans up form response and medications
435
- case 71:
451
+ case 74:
436
452
  _h.sent(); // also cleans up form response and medications
437
- return [3 /*break*/, 73];
438
- case 72: return [7 /*endfinally*/];
439
- case 73:
453
+ return [3 /*break*/, 76];
454
+ case 75: return [7 /*endfinally*/];
455
+ case 76:
440
456
  // ---- Set Fields with {{medication.name}} Test ----
441
457
  (0, testing_1.log_header)("Medication Added - Set Fields with {{medication.name}}");
442
458
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
@@ -445,24 +461,24 @@ var medication_added_trigger_tests = function (_a) {
445
461
  status: 'Active',
446
462
  title: "Medication - Set Fields medication.name"
447
463
  })];
448
- case 74:
464
+ case 77:
449
465
  setFieldsTrigger = _h.sent();
450
466
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
451
- case 75:
467
+ case 78:
452
468
  setFieldsEnduser = _h.sent();
453
469
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({
454
470
  enduserId: setFieldsEnduser.id,
455
471
  title: 'Lisinopril 10mg',
456
472
  })];
457
- case 76:
473
+ case 79:
458
474
  setFieldsMed = _h.sent();
459
475
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
460
- case 77:
476
+ case 80:
461
477
  _h.sent();
462
478
  return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields copies medication.name to enduser field", function () { return sdk.api.endusers.getOne(setFieldsEnduser.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Name']) === 'Lisinopril 10mg'; } })
463
479
  // Test with title-filtered trigger to verify medication context is passed correctly
464
480
  ];
465
- case 78:
481
+ case 81:
466
482
  _h.sent();
467
483
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
468
484
  event: { type: 'Medication Added', info: { titles: ['Metformin 500mg'], protocols: [] } },
@@ -470,24 +486,24 @@ var medication_added_trigger_tests = function (_a) {
470
486
  status: 'Active',
471
487
  title: "Medication - Set Fields filtered"
472
488
  })];
473
- case 79:
489
+ case 82:
474
490
  setFieldsTriggerFiltered = _h.sent();
475
491
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
476
- case 80:
492
+ case 83:
477
493
  setFieldsEnduser2 = _h.sent();
478
494
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({
479
495
  enduserId: setFieldsEnduser2.id,
480
496
  title: 'Metformin 500mg',
481
497
  })];
482
- case 81:
498
+ case 84:
483
499
  setFieldsMed2 = _h.sent();
484
500
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
485
- case 82:
501
+ case 85:
486
502
  _h.sent();
487
503
  return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields with title filter copies medication.name", function () { return sdk.api.endusers.getOne(setFieldsEnduser2.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Specific Med']) === 'Metformin 500mg'; } })
488
504
  // ---- Set Fields with {{medication.category}} Test ----
489
505
  ];
490
- case 83:
506
+ case 86:
491
507
  _h.sent();
492
508
  // ---- Set Fields with {{medication.category}} Test ----
493
509
  (0, testing_1.log_header)("Medication Added - Set Fields with {{medication.category}}");
@@ -497,68 +513,122 @@ var medication_added_trigger_tests = function (_a) {
497
513
  status: 'Active',
498
514
  title: "Medication - Set Fields medication.category"
499
515
  })];
500
- case 84:
516
+ case 87:
501
517
  setFieldsCategoryTrigger = _h.sent();
502
518
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
503
- case 85:
519
+ case 88:
504
520
  setFieldsCategoryEnduser = _h.sent();
505
521
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({
506
522
  enduserId: setFieldsCategoryEnduser.id,
507
523
  title: 'Ozempic 0.5mg',
508
524
  category: 'weightloss1',
509
525
  })];
510
- case 86:
526
+ case 89:
511
527
  setFieldsCategoryMed = _h.sent();
512
528
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
513
- case 87:
529
+ case 90:
514
530
  _h.sent();
515
531
  return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields copies medication.category to enduser field", function () { return sdk.api.endusers.getOne(setFieldsCategoryEnduser.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Category']) === 'weightloss1'; } })
516
532
  // Category absent on medication → placeholder resolves to empty string
517
533
  ];
518
- case 88:
534
+ case 91:
519
535
  _h.sent();
520
536
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
521
- case 89:
537
+ case 92:
522
538
  setFieldsCategoryEnduserEmpty = _h.sent();
523
539
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({
524
540
  enduserId: setFieldsCategoryEnduserEmpty.id,
525
541
  title: 'Lisinopril 20mg',
526
542
  })];
527
- case 90:
543
+ case 93:
528
544
  setFieldsCategoryMedEmpty = _h.sent();
529
545
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
530
- case 91:
546
+ case 94:
531
547
  _h.sent();
532
- return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields with no category resolves to empty string", function () { return sdk.api.endusers.getOne(setFieldsCategoryEnduserEmpty.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Category']) === ''; } })];
533
- case 92:
548
+ return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields with no category resolves to empty string", function () { return sdk.api.endusers.getOne(setFieldsCategoryEnduserEmpty.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Category']) === ''; } })
549
+ // ---- Set Fields with {{medication.notes}} Test ----
550
+ ];
551
+ case 95:
534
552
  _h.sent();
535
- _h.label = 93;
536
- case 93:
537
- _h.trys.push([93, , 101, 102]);
553
+ // ---- Set Fields with {{medication.notes}} Test ----
554
+ (0, testing_1.log_header)("Medication Added - Set Fields with {{medication.notes}}");
555
+ return [4 /*yield*/, sdk.api.automation_triggers.createOne({
556
+ event: { type: 'Medication Added', info: { titles: [], protocols: [] } },
557
+ action: { type: 'Set Fields', info: { fields: [{ name: 'Medication Notes', type: 'Custom Value', value: '{{medication.notes}}' }] } },
558
+ status: 'Active',
559
+ title: "Medication - Set Fields medication.notes"
560
+ })];
561
+ case 96:
562
+ setFieldsPharmacyNotesTrigger = _h.sent();
563
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
564
+ case 97:
565
+ setFieldsPharmacyNotesEnduser = _h.sent();
566
+ return [4 /*yield*/, sdk.api.enduser_medications.createOne({
567
+ enduserId: setFieldsPharmacyNotesEnduser.id,
568
+ title: 'Ozempic 1mg',
569
+ notes: 'Dispense with syringes',
570
+ })];
571
+ case 98:
572
+ setFieldsPharmacyNotesMed = _h.sent();
573
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
574
+ case 99:
575
+ _h.sent();
576
+ return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields copies medication.notes to enduser field", function () { return sdk.api.endusers.getOne(setFieldsPharmacyNotesEnduser.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Notes']) === 'Dispense with syringes'; } })
577
+ // notes absent on medication → placeholder resolves to empty string
578
+ ];
579
+ case 100:
580
+ _h.sent();
581
+ return [4 /*yield*/, sdk.api.endusers.createOne({})];
582
+ case 101:
583
+ setFieldsPharmacyNotesEnduserEmpty = _h.sent();
584
+ return [4 /*yield*/, sdk.api.enduser_medications.createOne({
585
+ enduserId: setFieldsPharmacyNotesEnduserEmpty.id,
586
+ title: 'Lisinopril 40mg',
587
+ })];
588
+ case 102:
589
+ setFieldsPharmacyNotesMedEmpty = _h.sent();
590
+ return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
591
+ case 103:
592
+ _h.sent();
593
+ return [4 /*yield*/, (0, testing_1.async_test)("Medication Added - Set Fields with no notes resolves to empty string", function () { return sdk.api.endusers.getOne(setFieldsPharmacyNotesEnduserEmpty.id); }, { onResult: function (e) { var _a; return ((_a = e.fields) === null || _a === void 0 ? void 0 : _a['Medication Notes']) === ''; } })];
594
+ case 104:
595
+ _h.sent();
596
+ _h.label = 105;
597
+ case 105:
598
+ _h.trys.push([105, , 116, 117]);
538
599
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(setFieldsTrigger.id)];
539
- case 94:
600
+ case 106:
540
601
  _h.sent();
541
602
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(setFieldsTriggerFiltered.id)];
542
- case 95:
603
+ case 107:
543
604
  _h.sent();
544
605
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(setFieldsCategoryTrigger.id)];
545
- case 96:
606
+ case 108:
607
+ _h.sent();
608
+ return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(setFieldsPharmacyNotesTrigger.id)];
609
+ case 109:
546
610
  _h.sent();
547
611
  return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsEnduser.id)];
548
- case 97:
612
+ case 110:
549
613
  _h.sent();
550
614
  return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsEnduser2.id)];
551
- case 98:
615
+ case 111:
552
616
  _h.sent();
553
617
  return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsCategoryEnduser.id)];
554
- case 99:
618
+ case 112:
555
619
  _h.sent();
556
620
  return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsCategoryEnduserEmpty.id)];
557
- case 100:
621
+ case 113:
558
622
  _h.sent();
559
- return [3 /*break*/, 102];
560
- case 101: return [7 /*endfinally*/];
561
- case 102:
623
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsPharmacyNotesEnduser.id)];
624
+ case 114:
625
+ _h.sent();
626
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(setFieldsPharmacyNotesEnduserEmpty.id)];
627
+ case 115:
628
+ _h.sent();
629
+ return [3 /*break*/, 117];
630
+ case 116: return [7 /*endfinally*/];
631
+ case 117:
562
632
  // ---- titleCondition (compound conditional logic on title) ----
563
633
  (0, testing_1.log_header)("Medication Added - titleCondition compound logic");
564
634
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
@@ -574,33 +644,33 @@ var medication_added_trigger_tests = function (_a) {
574
644
  status: 'Active',
575
645
  title: "Medication - titleCondition contains GLP"
576
646
  })];
577
- case 103:
647
+ case 118:
578
648
  c1Trigger = _h.sent();
579
649
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
580
- case 104:
650
+ case 119:
581
651
  c1MatchEnduser = _h.sent();
582
652
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c1MatchEnduser.id, title: 'Semaglutide GLP-1' })];
583
- case 105:
653
+ case 120:
584
654
  _h.sent();
585
655
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
586
- case 106:
656
+ case 121:
587
657
  _h.sent();
588
658
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $contains - matching medication fires", function () { return sdk.api.endusers.getOne(c1MatchEnduser.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Contains-GLP')); } })];
589
- case 107:
659
+ case 122:
590
660
  _h.sent();
591
661
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
592
- case 108:
662
+ case 123:
593
663
  c1MissEnduser = _h.sent();
594
664
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c1MissEnduser.id, title: 'Aspirin' })];
595
- case 109:
665
+ case 124:
596
666
  _h.sent();
597
667
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
598
- case 110:
668
+ case 125:
599
669
  _h.sent();
600
670
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $contains - non-matching medication does NOT fire", function () { return sdk.api.endusers.getOne(c1MissEnduser.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Contains-GLP')); } })
601
671
  // C2: $ne — fires for everything except 'Placebo'
602
672
  ];
603
- case 111:
673
+ case 126:
604
674
  _h.sent();
605
675
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
606
676
  event: {
@@ -615,33 +685,33 @@ var medication_added_trigger_tests = function (_a) {
615
685
  status: 'Active',
616
686
  title: "Medication - titleCondition ne Placebo"
617
687
  })];
618
- case 112:
688
+ case 127:
619
689
  c2Trigger = _h.sent();
620
690
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
621
- case 113:
691
+ case 128:
622
692
  c2MatchEnduser = _h.sent();
623
693
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c2MatchEnduser.id, title: 'Metformin' })];
624
- case 114:
694
+ case 129:
625
695
  _h.sent();
626
696
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
627
- case 115:
697
+ case 130:
628
698
  _h.sent();
629
699
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $ne - non-Placebo medication fires", function () { return sdk.api.endusers.getOne(c2MatchEnduser.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Ne-Placebo')); } })];
630
- case 116:
700
+ case 131:
631
701
  _h.sent();
632
702
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
633
- case 117:
703
+ case 132:
634
704
  c2MissEnduser = _h.sent();
635
705
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c2MissEnduser.id, title: 'Placebo' })];
636
- case 118:
706
+ case 133:
637
707
  _h.sent();
638
708
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
639
- case 119:
709
+ case 134:
640
710
  _h.sent();
641
711
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $ne - Placebo medication does NOT fire", function () { return sdk.api.endusers.getOne(c2MissEnduser.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Ne-Placebo')); } })
642
712
  // C3: compound $and — contains 'mg' AND does not contain 'Placebo' (case-sensitive)
643
713
  ];
644
- case 120:
714
+ case 135:
645
715
  _h.sent();
646
716
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
647
717
  event: {
@@ -661,33 +731,33 @@ var medication_added_trigger_tests = function (_a) {
661
731
  status: 'Active',
662
732
  title: "Medication - titleCondition compound AND"
663
733
  })];
664
- case 121:
734
+ case 136:
665
735
  c3Trigger = _h.sent();
666
736
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
667
- case 122:
737
+ case 137:
668
738
  c3MatchEnduser = _h.sent();
669
739
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c3MatchEnduser.id, title: 'Lisinopril 10mg' })];
670
- case 123:
740
+ case 138:
671
741
  _h.sent();
672
742
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
673
- case 124:
743
+ case 139:
674
744
  _h.sent();
675
745
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $and - both pass fires", function () { return sdk.api.endusers.getOne(c3MatchEnduser.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-And')); } })];
676
- case 125:
746
+ case 140:
677
747
  _h.sent();
678
748
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
679
- case 126:
749
+ case 141:
680
750
  c3MissEnduser = _h.sent();
681
751
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c3MissEnduser.id, title: 'Placebo 5mg' })];
682
- case 127:
752
+ case 142:
683
753
  _h.sent();
684
754
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
685
- case 128:
755
+ case 143:
686
756
  _h.sent();
687
757
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $and - second branch fails does NOT fire", function () { return sdk.api.endusers.getOne(c3MissEnduser.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-And')); } })
688
758
  // C4: compound $or — equals 'Aspirin' OR contains 'pril'
689
759
  ];
690
- case 129:
760
+ case 144:
691
761
  _h.sent();
692
762
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
693
763
  event: {
@@ -707,45 +777,45 @@ var medication_added_trigger_tests = function (_a) {
707
777
  status: 'Active',
708
778
  title: "Medication - titleCondition compound OR"
709
779
  })];
710
- case 130:
780
+ case 145:
711
781
  c4Trigger = _h.sent();
712
782
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
713
- case 131:
783
+ case 146:
714
784
  c4MatchA = _h.sent();
715
785
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c4MatchA.id, title: 'Aspirin' })];
716
- case 132:
786
+ case 147:
717
787
  _h.sent();
718
788
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
719
- case 133:
789
+ case 148:
720
790
  _h.sent();
721
791
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $or - first branch matches fires", function () { return sdk.api.endusers.getOne(c4MatchA.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Or')); } })];
722
- case 134:
792
+ case 149:
723
793
  _h.sent();
724
794
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
725
- case 135:
795
+ case 150:
726
796
  c4MatchB = _h.sent();
727
797
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c4MatchB.id, title: 'Lisinopril' })];
728
- case 136:
798
+ case 151:
729
799
  _h.sent();
730
800
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
731
- case 137:
801
+ case 152:
732
802
  _h.sent();
733
803
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $or - second branch matches fires", function () { return sdk.api.endusers.getOne(c4MatchB.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Or')); } })];
734
- case 138:
804
+ case 153:
735
805
  _h.sent();
736
806
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
737
- case 139:
807
+ case 154:
738
808
  c4Miss = _h.sent();
739
809
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c4Miss.id, title: 'Metformin' })];
740
- case 140:
810
+ case 155:
741
811
  _h.sent();
742
812
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
743
- case 141:
813
+ case 156:
744
814
  _h.sent();
745
815
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition $or - neither branch matches does NOT fire", function () { return sdk.api.endusers.getOne(c4Miss.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Or')); } })
746
816
  // C5: backwards compatibility — no titleCondition, titles array still works
747
817
  ];
748
- case 142:
818
+ case 157:
749
819
  _h.sent();
750
820
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
751
821
  event: { type: 'Medication Added', info: { titles: ['Atorvastatin'], protocols: [] } },
@@ -753,33 +823,33 @@ var medication_added_trigger_tests = function (_a) {
753
823
  status: 'Active',
754
824
  title: "Medication - titles array back-compat"
755
825
  })];
756
- case 143:
826
+ case 158:
757
827
  c5Trigger = _h.sent();
758
828
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
759
- case 144:
829
+ case 159:
760
830
  c5Match = _h.sent();
761
831
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c5Match.id, title: 'Atorvastatin' })];
762
- case 145:
832
+ case 160:
763
833
  _h.sent();
764
834
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
765
- case 146:
835
+ case 161:
766
836
  _h.sent();
767
837
  return [4 /*yield*/, (0, testing_1.async_test)("titles back-compat - title match still fires without titleCondition", function () { return sdk.api.endusers.getOne(c5Match.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-BackCompat')); } })];
768
- case 147:
838
+ case 162:
769
839
  _h.sent();
770
840
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
771
- case 148:
841
+ case 163:
772
842
  c5Miss = _h.sent();
773
843
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c5Miss.id, title: 'Aspirin' })];
774
- case 149:
844
+ case 164:
775
845
  _h.sent();
776
846
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
777
- case 150:
847
+ case 165:
778
848
  _h.sent();
779
849
  return [4 /*yield*/, (0, testing_1.async_test)("titles back-compat - non-match does NOT fire without titleCondition", function () { return sdk.api.endusers.getOne(c5Miss.id); }, { onResult: function (e) { var _a; return !((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-BackCompat')); } })
780
850
  // C6: combined — titles array AND titleCondition compose (both must pass)
781
851
  ];
782
- case 151:
852
+ case 166:
783
853
  _h.sent();
784
854
  return [4 /*yield*/, sdk.api.automation_triggers.createOne({
785
855
  event: {
@@ -794,80 +864,80 @@ var medication_added_trigger_tests = function (_a) {
794
864
  status: 'Active',
795
865
  title: "Medication - titles + titleCondition combined"
796
866
  })];
797
- case 152:
867
+ case 167:
798
868
  c6Trigger = _h.sent();
799
869
  return [4 /*yield*/, sdk.api.endusers.createOne({})];
800
- case 153:
870
+ case 168:
801
871
  c6Match = _h.sent();
802
872
  return [4 /*yield*/, sdk.api.enduser_medications.createOne({ enduserId: c6Match.id, title: 'Lisinopril' })];
803
- case 154:
873
+ case 169:
804
874
  _h.sent();
805
875
  return [4 /*yield*/, (0, testing_1.wait)(undefined, 500)];
806
- case 155:
876
+ case 170:
807
877
  _h.sent();
808
878
  return [4 /*yield*/, (0, testing_1.async_test)("titleCondition combined - both pass fires", function () { return sdk.api.endusers.getOne(c6Match.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Med-Cond-Combined')); } })];
809
- case 156:
879
+ case 171:
810
880
  _h.sent();
811
- _h.label = 157;
812
- case 157:
813
- _h.trys.push([157, , 176, 177]);
881
+ _h.label = 172;
882
+ case 172:
883
+ _h.trys.push([172, , 191, 192]);
814
884
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c1Trigger.id)];
815
- case 158:
885
+ case 173:
816
886
  _h.sent();
817
887
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c2Trigger.id)];
818
- case 159:
888
+ case 174:
819
889
  _h.sent();
820
890
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c3Trigger.id)];
821
- case 160:
891
+ case 175:
822
892
  _h.sent();
823
893
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c4Trigger.id)];
824
- case 161:
894
+ case 176:
825
895
  _h.sent();
826
896
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c5Trigger.id)];
827
- case 162:
897
+ case 177:
828
898
  _h.sent();
829
899
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(c6Trigger.id)];
830
- case 163:
900
+ case 178:
831
901
  _h.sent();
832
902
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c1MatchEnduser.id)];
833
- case 164:
903
+ case 179:
834
904
  _h.sent();
835
905
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c1MissEnduser.id)];
836
- case 165:
906
+ case 180:
837
907
  _h.sent();
838
908
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c2MatchEnduser.id)];
839
- case 166:
909
+ case 181:
840
910
  _h.sent();
841
911
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c2MissEnduser.id)];
842
- case 167:
912
+ case 182:
843
913
  _h.sent();
844
914
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c3MatchEnduser.id)];
845
- case 168:
915
+ case 183:
846
916
  _h.sent();
847
917
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c3MissEnduser.id)];
848
- case 169:
918
+ case 184:
849
919
  _h.sent();
850
920
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c4MatchA.id)];
851
- case 170:
921
+ case 185:
852
922
  _h.sent();
853
923
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c4MatchB.id)];
854
- case 171:
924
+ case 186:
855
925
  _h.sent();
856
926
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c4Miss.id)];
857
- case 172:
927
+ case 187:
858
928
  _h.sent();
859
929
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c5Match.id)];
860
- case 173:
930
+ case 188:
861
931
  _h.sent();
862
932
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c5Miss.id)];
863
- case 174:
933
+ case 189:
864
934
  _h.sent();
865
935
  return [4 /*yield*/, sdk.api.endusers.deleteOne(c6Match.id)];
866
- case 175:
936
+ case 190:
867
937
  _h.sent();
868
- return [3 /*break*/, 177];
869
- case 176: return [7 /*endfinally*/];
870
- case 177: return [2 /*return*/];
938
+ return [3 /*break*/, 192];
939
+ case 191: return [7 /*endfinally*/];
940
+ case 192: return [2 /*return*/];
871
941
  }
872
942
  });
873
943
  });