@tellescope/sdk 2.0.0-beta.2 → 2.0.0-beta.3

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 (717) hide show
  1. package/lib/cjs/sdk.d.ts +6 -5
  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/ai_conversations.test.d.ts +14 -5
  6. package/lib/cjs/tests/api_tests/ai_conversations.test.d.ts.map +1 -1
  7. package/lib/cjs/tests/api_tests/ai_conversations.test.js +163 -149
  8. package/lib/cjs/tests/api_tests/ai_conversations.test.js.map +1 -1
  9. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.d.ts +22 -0
  10. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.d.ts.map +1 -0
  11. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.js +518 -0
  12. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.js.map +1 -0
  13. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts +6 -5
  14. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -1
  15. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js +135 -73
  16. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
  17. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -5
  18. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -1
  19. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js +240 -174
  20. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -1
  21. package/lib/cjs/tests/api_tests/availability_block_buffer.test.d.ts +22 -0
  22. package/lib/cjs/tests/api_tests/availability_block_buffer.test.d.ts.map +1 -0
  23. package/lib/cjs/tests/api_tests/availability_block_buffer.test.js +311 -0
  24. package/lib/cjs/tests/api_tests/availability_block_buffer.test.js.map +1 -0
  25. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts +6 -5
  26. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -1
  27. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js +235 -192
  28. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js.map +1 -1
  29. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -5
  30. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
  31. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js +351 -264
  32. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
  33. package/lib/cjs/tests/api_tests/bulk_assignment.test.d.ts +16 -5
  34. package/lib/cjs/tests/api_tests/bulk_assignment.test.d.ts.map +1 -1
  35. package/lib/cjs/tests/api_tests/bulk_assignment.test.js +336 -243
  36. package/lib/cjs/tests/api_tests/bulk_assignment.test.js.map +1 -1
  37. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.d.ts +13 -5
  38. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.d.ts.map +1 -1
  39. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js +131 -108
  40. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  41. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts +15 -5
  42. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -1
  43. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js +240 -252
  44. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -1
  45. package/lib/cjs/tests/api_tests/chats_analytics.test.d.ts +14 -5
  46. package/lib/cjs/tests/api_tests/chats_analytics.test.d.ts.map +1 -1
  47. package/lib/cjs/tests/api_tests/chats_analytics.test.js +190 -189
  48. package/lib/cjs/tests/api_tests/chats_analytics.test.js.map +1 -1
  49. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.d.ts +23 -5
  50. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.d.ts.map +1 -1
  51. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.js +121 -118
  52. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.js.map +1 -1
  53. package/lib/cjs/tests/api_tests/configurations_public_read.test.d.ts +21 -5
  54. package/lib/cjs/tests/api_tests/configurations_public_read.test.d.ts.map +1 -1
  55. package/lib/cjs/tests/api_tests/configurations_public_read.test.js +235 -119
  56. package/lib/cjs/tests/api_tests/configurations_public_read.test.js.map +1 -1
  57. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts +7 -0
  58. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts.map +1 -0
  59. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.js +356 -0
  60. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.js.map +1 -0
  61. package/lib/cjs/tests/api_tests/create_note_action.test.d.ts +18 -5
  62. package/lib/cjs/tests/api_tests/create_note_action.test.d.ts.map +1 -1
  63. package/lib/cjs/tests/api_tests/create_note_action.test.js +218 -173
  64. package/lib/cjs/tests/api_tests/create_note_action.test.js.map +1 -1
  65. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.d.ts +17 -4
  66. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.d.ts.map +1 -1
  67. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.js +144 -205
  68. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.js.map +1 -1
  69. package/lib/cjs/tests/api_tests/custom_aggregation.test.d.ts +15 -5
  70. package/lib/cjs/tests/api_tests/custom_aggregation.test.d.ts.map +1 -1
  71. package/lib/cjs/tests/api_tests/custom_aggregation.test.js +284 -223
  72. package/lib/cjs/tests/api_tests/custom_aggregation.test.js.map +1 -1
  73. package/lib/cjs/tests/api_tests/database_cascade_delete.test.d.ts +13 -5
  74. package/lib/cjs/tests/api_tests/database_cascade_delete.test.d.ts.map +1 -1
  75. package/lib/cjs/tests/api_tests/database_cascade_delete.test.js +218 -242
  76. package/lib/cjs/tests/api_tests/database_cascade_delete.test.js.map +1 -1
  77. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts +21 -5
  78. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts.map +1 -1
  79. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.js +168 -112
  80. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.js.map +1 -1
  81. package/lib/cjs/tests/api_tests/elation_user_id.test.d.ts +17 -5
  82. package/lib/cjs/tests/api_tests/elation_user_id.test.d.ts.map +1 -1
  83. package/lib/cjs/tests/api_tests/elation_user_id.test.js +121 -54
  84. package/lib/cjs/tests/api_tests/elation_user_id.test.js.map +1 -1
  85. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts +6 -5
  86. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -1
  87. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js +193 -143
  88. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js.map +1 -1
  89. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.d.ts +7 -0
  90. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.d.ts.map +1 -0
  91. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.js +532 -0
  92. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.js.map +1 -0
  93. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts +25 -5
  94. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -1
  95. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js +395 -366
  96. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js.map +1 -1
  97. package/lib/cjs/tests/api_tests/form_translations.test.d.ts +6 -5
  98. package/lib/cjs/tests/api_tests/form_translations.test.d.ts.map +1 -1
  99. package/lib/cjs/tests/api_tests/form_translations.test.js +269 -189
  100. package/lib/cjs/tests/api_tests/form_translations.test.js.map +1 -1
  101. package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts +29 -5
  102. package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -1
  103. package/lib/cjs/tests/api_tests/formsort_header_auth.test.js +179 -162
  104. package/lib/cjs/tests/api_tests/formsort_header_auth.test.js.map +1 -1
  105. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts +12 -6
  106. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -1
  107. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js +98 -84
  108. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js.map +1 -1
  109. package/lib/cjs/tests/api_tests/get_some_projection.test.d.ts +20 -5
  110. package/lib/cjs/tests/api_tests/get_some_projection.test.d.ts.map +1 -1
  111. package/lib/cjs/tests/api_tests/get_some_projection.test.js +342 -298
  112. package/lib/cjs/tests/api_tests/get_some_projection.test.js.map +1 -1
  113. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.d.ts +6 -5
  114. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.d.ts.map +1 -1
  115. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.js +294 -223
  116. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.js.map +1 -1
  117. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts +6 -5
  118. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts.map +1 -1
  119. package/lib/cjs/tests/api_tests/integrations_redacted.test.js +307 -213
  120. package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -1
  121. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.d.ts +6 -5
  122. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.d.ts.map +1 -1
  123. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.js +179 -178
  124. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.js.map +1 -1
  125. package/lib/cjs/tests/api_tests/load_team_chat.test.d.ts.map +1 -1
  126. package/lib/cjs/tests/api_tests/load_team_chat.test.js +181 -124
  127. package/lib/cjs/tests/api_tests/load_team_chat.test.js.map +1 -1
  128. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.d.ts +24 -5
  129. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.d.ts.map +1 -1
  130. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.js +261 -227
  131. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.js.map +1 -1
  132. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts +6 -0
  133. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
  134. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js +115 -31
  135. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js.map +1 -1
  136. package/lib/cjs/tests/api_tests/managed_content_file_access.test.d.ts +15 -5
  137. package/lib/cjs/tests/api_tests/managed_content_file_access.test.d.ts.map +1 -1
  138. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js +285 -311
  139. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  140. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts +20 -5
  141. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts.map +1 -1
  142. package/lib/cjs/tests/api_tests/mdb_sort.test.js +361 -305
  143. package/lib/cjs/tests/api_tests/mdb_sort.test.js.map +1 -1
  144. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.d.ts +27 -0
  145. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.d.ts.map +1 -0
  146. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.js +395 -0
  147. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.js.map +1 -0
  148. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.d.ts +6 -5
  149. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.d.ts.map +1 -1
  150. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.js +259 -209
  151. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.js.map +1 -1
  152. package/lib/cjs/tests/api_tests/mdi_webhooks.test.d.ts +12 -5
  153. package/lib/cjs/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  154. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js +67 -61
  155. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  156. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.d.ts +23 -14
  157. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.d.ts.map +1 -1
  158. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.js +258 -306
  159. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.js.map +1 -1
  160. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts +6 -5
  161. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -1
  162. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js +301 -238
  163. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js.map +1 -1
  164. package/lib/cjs/tests/api_tests/organization_api_keys.test.d.ts.map +1 -1
  165. package/lib/cjs/tests/api_tests/organization_api_keys.test.js +226 -59
  166. package/lib/cjs/tests/api_tests/organization_api_keys.test.js.map +1 -1
  167. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts +19 -5
  168. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -1
  169. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js +335 -222
  170. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js.map +1 -1
  171. package/lib/cjs/tests/api_tests/organization_signup.test.d.ts.map +1 -1
  172. package/lib/cjs/tests/api_tests/organization_signup.test.js +218 -51
  173. package/lib/cjs/tests/api_tests/organization_signup.test.js.map +1 -1
  174. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -1
  175. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js +109 -1
  176. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js.map +1 -1
  177. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.d.ts +6 -6
  178. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.d.ts.map +1 -1
  179. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.js +309 -361
  180. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.js.map +1 -1
  181. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.d.ts +6 -5
  182. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  183. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js +246 -165
  184. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  185. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts +15 -5
  186. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -1
  187. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js +130 -47
  188. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -1
  189. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.d.ts +6 -5
  190. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.d.ts.map +1 -1
  191. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.js +180 -132
  192. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.js.map +1 -1
  193. package/lib/cjs/tests/api_tests/programs.test.d.ts.map +1 -1
  194. package/lib/cjs/tests/api_tests/programs.test.js +417 -50
  195. package/lib/cjs/tests/api_tests/programs.test.js.map +1 -1
  196. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts +10 -5
  197. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -1
  198. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js +401 -282
  199. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -1
  200. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts +9 -5
  201. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -1
  202. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js +228 -211
  203. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -1
  204. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +13 -8
  205. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -1
  206. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js +270 -254
  207. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  208. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +16 -6
  209. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -1
  210. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +167 -142
  211. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -1
  212. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +10 -5
  213. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -1
  214. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js +296 -221
  215. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -1
  216. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +12 -5
  217. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -1
  218. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +221 -216
  219. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -1
  220. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +11 -5
  221. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  222. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +300 -203
  223. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  224. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts +11 -5
  225. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -1
  226. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js +415 -275
  227. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  228. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts +11 -5
  229. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -1
  230. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js +347 -228
  231. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  232. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +18 -7
  233. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -1
  234. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js +164 -75
  235. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -1
  236. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +15 -9
  237. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -1
  238. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +99 -102
  239. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -1
  240. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts +11 -5
  241. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -1
  242. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js +132 -89
  243. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -1
  244. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +12 -5
  245. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -1
  246. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +190 -138
  247. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -1
  248. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.d.ts +18 -16
  249. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.d.ts.map +1 -1
  250. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js +164 -124
  251. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
  252. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  253. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +122 -2
  254. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  255. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +11 -5
  256. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -1
  257. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js +288 -274
  258. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -1
  259. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts +17 -10
  260. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -1
  261. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js +173 -138
  262. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -1
  263. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -5
  264. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -1
  265. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +310 -265
  266. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -1
  267. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts +9 -5
  268. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -1
  269. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js +108 -83
  270. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js.map +1 -1
  271. package/lib/cjs/tests/api_tests/stedi_approval.test.d.ts +6 -5
  272. package/lib/cjs/tests/api_tests/stedi_approval.test.d.ts.map +1 -1
  273. package/lib/cjs/tests/api_tests/stedi_approval.test.js +206 -137
  274. package/lib/cjs/tests/api_tests/stedi_approval.test.js.map +1 -1
  275. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.d.ts +7 -0
  276. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.d.ts.map +1 -0
  277. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.js +344 -0
  278. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.js.map +1 -0
  279. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -5
  280. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -1
  281. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js +165 -149
  282. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -1
  283. package/lib/cjs/tests/api_tests/translations.test.d.ts +6 -5
  284. package/lib/cjs/tests/api_tests/translations.test.d.ts.map +1 -1
  285. package/lib/cjs/tests/api_tests/translations.test.js +104 -75
  286. package/lib/cjs/tests/api_tests/translations.test.js.map +1 -1
  287. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.d.ts +21 -4
  288. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.d.ts.map +1 -1
  289. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.js +238 -370
  290. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.js.map +1 -1
  291. package/lib/cjs/tests/api_tests/user_preferences.test.d.ts +30 -0
  292. package/lib/cjs/tests/api_tests/user_preferences.test.d.ts.map +1 -0
  293. package/lib/cjs/tests/api_tests/user_preferences.test.js +279 -0
  294. package/lib/cjs/tests/api_tests/user_preferences.test.js.map +1 -0
  295. package/lib/cjs/tests/api_tests/webhook_error_handling.test.d.ts +17 -5
  296. package/lib/cjs/tests/api_tests/webhook_error_handling.test.d.ts.map +1 -1
  297. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js +204 -195
  298. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  299. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts +15 -5
  300. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -1
  301. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js +154 -179
  302. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js.map +1 -1
  303. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts +6 -5
  304. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts.map +1 -1
  305. package/lib/cjs/tests/api_tests/welle_partner_token.test.js +393 -251
  306. package/lib/cjs/tests/api_tests/welle_partner_token.test.js.map +1 -1
  307. package/lib/cjs/tests/setup_isolated.d.ts +7 -0
  308. package/lib/cjs/tests/setup_isolated.d.ts.map +1 -1
  309. package/lib/cjs/tests/setup_isolated.js.map +1 -1
  310. package/lib/cjs/tests/tests.d.ts.map +1 -1
  311. package/lib/cjs/tests/tests.js +229 -461
  312. package/lib/cjs/tests/tests.js.map +1 -1
  313. package/lib/cjs/tests/unit_tests/date_string_validation.test.d.ts +2 -0
  314. package/lib/cjs/tests/unit_tests/date_string_validation.test.d.ts.map +1 -0
  315. package/lib/cjs/tests/unit_tests/date_string_validation.test.js +112 -0
  316. package/lib/cjs/tests/unit_tests/date_string_validation.test.js.map +1 -0
  317. package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  318. package/lib/esm/sdk.d.ts +6 -5
  319. package/lib/esm/sdk.d.ts.map +1 -1
  320. package/lib/esm/sdk.js +5 -0
  321. package/lib/esm/sdk.js.map +1 -1
  322. package/lib/esm/tests/api_tests/ai_conversations.test.d.ts +14 -5
  323. package/lib/esm/tests/api_tests/ai_conversations.test.d.ts.map +1 -1
  324. package/lib/esm/tests/api_tests/ai_conversations.test.js +161 -148
  325. package/lib/esm/tests/api_tests/ai_conversations.test.js.map +1 -1
  326. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.d.ts +22 -0
  327. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.d.ts.map +1 -0
  328. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.js +510 -0
  329. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.js.map +1 -0
  330. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts +6 -5
  331. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -1
  332. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js +132 -71
  333. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
  334. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -5
  335. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -1
  336. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js +238 -173
  337. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -1
  338. package/lib/esm/tests/api_tests/availability_block_buffer.test.d.ts +22 -0
  339. package/lib/esm/tests/api_tests/availability_block_buffer.test.d.ts.map +1 -0
  340. package/lib/esm/tests/api_tests/availability_block_buffer.test.js +306 -0
  341. package/lib/esm/tests/api_tests/availability_block_buffer.test.js.map +1 -0
  342. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts +6 -5
  343. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -1
  344. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js +232 -190
  345. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js.map +1 -1
  346. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -5
  347. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
  348. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js +348 -262
  349. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
  350. package/lib/esm/tests/api_tests/bulk_assignment.test.d.ts +16 -5
  351. package/lib/esm/tests/api_tests/bulk_assignment.test.d.ts.map +1 -1
  352. package/lib/esm/tests/api_tests/bulk_assignment.test.js +333 -241
  353. package/lib/esm/tests/api_tests/bulk_assignment.test.js.map +1 -1
  354. package/lib/esm/tests/api_tests/calendar_event_references_update.test.d.ts +13 -5
  355. package/lib/esm/tests/api_tests/calendar_event_references_update.test.d.ts.map +1 -1
  356. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js +129 -107
  357. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  358. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts +15 -5
  359. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -1
  360. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js +238 -251
  361. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -1
  362. package/lib/esm/tests/api_tests/chats_analytics.test.d.ts +14 -5
  363. package/lib/esm/tests/api_tests/chats_analytics.test.d.ts.map +1 -1
  364. package/lib/esm/tests/api_tests/chats_analytics.test.js +188 -188
  365. package/lib/esm/tests/api_tests/chats_analytics.test.js.map +1 -1
  366. package/lib/esm/tests/api_tests/concurrent_build_threads.test.d.ts +23 -5
  367. package/lib/esm/tests/api_tests/concurrent_build_threads.test.d.ts.map +1 -1
  368. package/lib/esm/tests/api_tests/concurrent_build_threads.test.js +119 -117
  369. package/lib/esm/tests/api_tests/concurrent_build_threads.test.js.map +1 -1
  370. package/lib/esm/tests/api_tests/configurations_public_read.test.d.ts +21 -5
  371. package/lib/esm/tests/api_tests/configurations_public_read.test.d.ts.map +1 -1
  372. package/lib/esm/tests/api_tests/configurations_public_read.test.js +233 -118
  373. package/lib/esm/tests/api_tests/configurations_public_read.test.js.map +1 -1
  374. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts +7 -0
  375. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts.map +1 -0
  376. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.js +351 -0
  377. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.js.map +1 -0
  378. package/lib/esm/tests/api_tests/create_note_action.test.d.ts +18 -5
  379. package/lib/esm/tests/api_tests/create_note_action.test.d.ts.map +1 -1
  380. package/lib/esm/tests/api_tests/create_note_action.test.js +216 -172
  381. package/lib/esm/tests/api_tests/create_note_action.test.js.map +1 -1
  382. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.d.ts +17 -4
  383. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.d.ts.map +1 -1
  384. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.js +141 -203
  385. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.js.map +1 -1
  386. package/lib/esm/tests/api_tests/custom_aggregation.test.d.ts +15 -5
  387. package/lib/esm/tests/api_tests/custom_aggregation.test.d.ts.map +1 -1
  388. package/lib/esm/tests/api_tests/custom_aggregation.test.js +282 -222
  389. package/lib/esm/tests/api_tests/custom_aggregation.test.js.map +1 -1
  390. package/lib/esm/tests/api_tests/database_cascade_delete.test.d.ts +13 -5
  391. package/lib/esm/tests/api_tests/database_cascade_delete.test.d.ts.map +1 -1
  392. package/lib/esm/tests/api_tests/database_cascade_delete.test.js +216 -241
  393. package/lib/esm/tests/api_tests/database_cascade_delete.test.js.map +1 -1
  394. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts +21 -5
  395. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts.map +1 -1
  396. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.js +165 -110
  397. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.js.map +1 -1
  398. package/lib/esm/tests/api_tests/elation_user_id.test.d.ts +17 -5
  399. package/lib/esm/tests/api_tests/elation_user_id.test.d.ts.map +1 -1
  400. package/lib/esm/tests/api_tests/elation_user_id.test.js +119 -53
  401. package/lib/esm/tests/api_tests/elation_user_id.test.js.map +1 -1
  402. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts +6 -5
  403. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -1
  404. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js +190 -141
  405. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js.map +1 -1
  406. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.d.ts +7 -0
  407. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.d.ts.map +1 -0
  408. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.js +527 -0
  409. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.js.map +1 -0
  410. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts +25 -5
  411. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -1
  412. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js +393 -365
  413. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js.map +1 -1
  414. package/lib/esm/tests/api_tests/form_translations.test.d.ts +6 -5
  415. package/lib/esm/tests/api_tests/form_translations.test.d.ts.map +1 -1
  416. package/lib/esm/tests/api_tests/form_translations.test.js +268 -189
  417. package/lib/esm/tests/api_tests/form_translations.test.js.map +1 -1
  418. package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts +29 -5
  419. package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -1
  420. package/lib/esm/tests/api_tests/formsort_header_auth.test.js +177 -161
  421. package/lib/esm/tests/api_tests/formsort_header_auth.test.js.map +1 -1
  422. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts +12 -6
  423. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -1
  424. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js +96 -83
  425. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js.map +1 -1
  426. package/lib/esm/tests/api_tests/get_some_projection.test.d.ts +20 -5
  427. package/lib/esm/tests/api_tests/get_some_projection.test.d.ts.map +1 -1
  428. package/lib/esm/tests/api_tests/get_some_projection.test.js +339 -296
  429. package/lib/esm/tests/api_tests/get_some_projection.test.js.map +1 -1
  430. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.d.ts +6 -5
  431. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.d.ts.map +1 -1
  432. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.js +292 -222
  433. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.js.map +1 -1
  434. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts +6 -5
  435. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts.map +1 -1
  436. package/lib/esm/tests/api_tests/integrations_redacted.test.js +304 -211
  437. package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -1
  438. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.d.ts +6 -5
  439. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.d.ts.map +1 -1
  440. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.js +177 -154
  441. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.js.map +1 -1
  442. package/lib/esm/tests/api_tests/load_team_chat.test.d.ts.map +1 -1
  443. package/lib/esm/tests/api_tests/load_team_chat.test.js +181 -124
  444. package/lib/esm/tests/api_tests/load_team_chat.test.js.map +1 -1
  445. package/lib/esm/tests/api_tests/load_threads_autobuild.test.d.ts +24 -5
  446. package/lib/esm/tests/api_tests/load_threads_autobuild.test.d.ts.map +1 -1
  447. package/lib/esm/tests/api_tests/load_threads_autobuild.test.js +259 -226
  448. package/lib/esm/tests/api_tests/load_threads_autobuild.test.js.map +1 -1
  449. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts +6 -0
  450. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
  451. package/lib/esm/tests/api_tests/load_threads_care_team.test.js +115 -31
  452. package/lib/esm/tests/api_tests/load_threads_care_team.test.js.map +1 -1
  453. package/lib/esm/tests/api_tests/managed_content_file_access.test.d.ts +15 -5
  454. package/lib/esm/tests/api_tests/managed_content_file_access.test.d.ts.map +1 -1
  455. package/lib/esm/tests/api_tests/managed_content_file_access.test.js +283 -287
  456. package/lib/esm/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  457. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts +20 -5
  458. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts.map +1 -1
  459. package/lib/esm/tests/api_tests/mdb_sort.test.js +358 -303
  460. package/lib/esm/tests/api_tests/mdb_sort.test.js.map +1 -1
  461. package/lib/esm/tests/api_tests/mdi_manual_sync.test.d.ts +27 -0
  462. package/lib/esm/tests/api_tests/mdi_manual_sync.test.d.ts.map +1 -0
  463. package/lib/esm/tests/api_tests/mdi_manual_sync.test.js +390 -0
  464. package/lib/esm/tests/api_tests/mdi_manual_sync.test.js.map +1 -0
  465. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.d.ts +6 -5
  466. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.d.ts.map +1 -1
  467. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.js +257 -208
  468. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.js.map +1 -1
  469. package/lib/esm/tests/api_tests/mdi_webhooks.test.d.ts +12 -5
  470. package/lib/esm/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  471. package/lib/esm/tests/api_tests/mdi_webhooks.test.js +65 -60
  472. package/lib/esm/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  473. package/lib/esm/tests/api_tests/message_assignment_trigger.test.d.ts +23 -14
  474. package/lib/esm/tests/api_tests/message_assignment_trigger.test.d.ts.map +1 -1
  475. package/lib/esm/tests/api_tests/message_assignment_trigger.test.js +256 -305
  476. package/lib/esm/tests/api_tests/message_assignment_trigger.test.js.map +1 -1
  477. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts +6 -5
  478. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -1
  479. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js +298 -236
  480. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js.map +1 -1
  481. package/lib/esm/tests/api_tests/organization_api_keys.test.d.ts.map +1 -1
  482. package/lib/esm/tests/api_tests/organization_api_keys.test.js +226 -59
  483. package/lib/esm/tests/api_tests/organization_api_keys.test.js.map +1 -1
  484. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts +19 -5
  485. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -1
  486. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js +332 -220
  487. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js.map +1 -1
  488. package/lib/esm/tests/api_tests/organization_signup.test.d.ts.map +1 -1
  489. package/lib/esm/tests/api_tests/organization_signup.test.js +218 -51
  490. package/lib/esm/tests/api_tests/organization_signup.test.js.map +1 -1
  491. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -1
  492. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js +109 -1
  493. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js.map +1 -1
  494. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.d.ts +6 -6
  495. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.d.ts.map +1 -1
  496. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.js +308 -361
  497. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.js.map +1 -1
  498. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.d.ts +6 -5
  499. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  500. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js +243 -163
  501. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  502. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts +15 -5
  503. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -1
  504. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js +127 -45
  505. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -1
  506. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.d.ts +6 -5
  507. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.d.ts.map +1 -1
  508. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.js +177 -130
  509. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.js.map +1 -1
  510. package/lib/esm/tests/api_tests/programs.test.d.ts.map +1 -1
  511. package/lib/esm/tests/api_tests/programs.test.js +417 -50
  512. package/lib/esm/tests/api_tests/programs.test.js.map +1 -1
  513. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts +10 -5
  514. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -1
  515. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js +399 -281
  516. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -1
  517. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts +9 -5
  518. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -1
  519. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js +225 -209
  520. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -1
  521. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +13 -8
  522. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -1
  523. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js +268 -253
  524. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  525. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +16 -6
  526. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -1
  527. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +165 -141
  528. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -1
  529. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +10 -5
  530. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -1
  531. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js +294 -220
  532. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -1
  533. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +12 -5
  534. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -1
  535. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +219 -215
  536. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -1
  537. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +11 -5
  538. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  539. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +298 -202
  540. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  541. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts +11 -5
  542. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -1
  543. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js +413 -274
  544. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  545. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts +11 -5
  546. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -1
  547. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js +345 -227
  548. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  549. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +18 -7
  550. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -1
  551. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js +162 -74
  552. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -1
  553. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +15 -9
  554. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -1
  555. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +96 -100
  556. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -1
  557. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts +11 -5
  558. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -1
  559. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js +129 -87
  560. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -1
  561. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +12 -5
  562. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -1
  563. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +187 -136
  564. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -1
  565. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.d.ts +18 -16
  566. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.d.ts.map +1 -1
  567. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js +162 -123
  568. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
  569. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  570. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +122 -2
  571. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  572. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +11 -5
  573. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -1
  574. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js +285 -272
  575. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -1
  576. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts +17 -10
  577. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -1
  578. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js +171 -137
  579. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -1
  580. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -5
  581. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -1
  582. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +307 -263
  583. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -1
  584. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts +9 -5
  585. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -1
  586. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js +105 -81
  587. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js.map +1 -1
  588. package/lib/esm/tests/api_tests/stedi_approval.test.d.ts +6 -5
  589. package/lib/esm/tests/api_tests/stedi_approval.test.d.ts.map +1 -1
  590. package/lib/esm/tests/api_tests/stedi_approval.test.js +204 -136
  591. package/lib/esm/tests/api_tests/stedi_approval.test.js.map +1 -1
  592. package/lib/esm/tests/api_tests/ticket_stage_archive.test.d.ts +7 -0
  593. package/lib/esm/tests/api_tests/ticket_stage_archive.test.d.ts.map +1 -0
  594. package/lib/esm/tests/api_tests/ticket_stage_archive.test.js +339 -0
  595. package/lib/esm/tests/api_tests/ticket_stage_archive.test.js.map +1 -0
  596. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -5
  597. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -1
  598. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js +162 -147
  599. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -1
  600. package/lib/esm/tests/api_tests/translations.test.d.ts +6 -5
  601. package/lib/esm/tests/api_tests/translations.test.d.ts.map +1 -1
  602. package/lib/esm/tests/api_tests/translations.test.js +102 -74
  603. package/lib/esm/tests/api_tests/translations.test.js.map +1 -1
  604. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.d.ts +21 -4
  605. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.d.ts.map +1 -1
  606. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.js +236 -369
  607. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.js.map +1 -1
  608. package/lib/esm/tests/api_tests/user_preferences.test.d.ts +30 -0
  609. package/lib/esm/tests/api_tests/user_preferences.test.d.ts.map +1 -0
  610. package/lib/esm/tests/api_tests/user_preferences.test.js +274 -0
  611. package/lib/esm/tests/api_tests/user_preferences.test.js.map +1 -0
  612. package/lib/esm/tests/api_tests/webhook_error_handling.test.d.ts +17 -5
  613. package/lib/esm/tests/api_tests/webhook_error_handling.test.d.ts.map +1 -1
  614. package/lib/esm/tests/api_tests/webhook_error_handling.test.js +202 -194
  615. package/lib/esm/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  616. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts +15 -5
  617. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -1
  618. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js +152 -178
  619. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js.map +1 -1
  620. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts +6 -5
  621. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts.map +1 -1
  622. package/lib/esm/tests/api_tests/welle_partner_token.test.js +391 -250
  623. package/lib/esm/tests/api_tests/welle_partner_token.test.js.map +1 -1
  624. package/lib/esm/tests/setup_isolated.d.ts +7 -0
  625. package/lib/esm/tests/setup_isolated.d.ts.map +1 -1
  626. package/lib/esm/tests/setup_isolated.js.map +1 -1
  627. package/lib/esm/tests/tests.d.ts.map +1 -1
  628. package/lib/esm/tests/tests.js +229 -461
  629. package/lib/esm/tests/tests.js.map +1 -1
  630. package/lib/esm/tests/unit_tests/date_string_validation.test.d.ts +2 -0
  631. package/lib/esm/tests/unit_tests/date_string_validation.test.d.ts.map +1 -0
  632. package/lib/esm/tests/unit_tests/date_string_validation.test.js +108 -0
  633. package/lib/esm/tests/unit_tests/date_string_validation.test.js.map +1 -0
  634. package/lib/tsconfig.tsbuildinfo +1 -1
  635. package/package.json +10 -10
  636. package/src/sdk.ts +14 -3
  637. package/src/tests/api_tests/ai_conversations.test.ts +170 -138
  638. package/src/tests/api_tests/ai_conversations_agent_message.test.ts +491 -0
  639. package/src/tests/api_tests/appointment_link_expiration.test.ts +94 -35
  640. package/src/tests/api_tests/appointment_no_showed_trigger.test.ts +181 -128
  641. package/src/tests/api_tests/availability_block_buffer.test.ts +286 -0
  642. package/src/tests/api_tests/beluga_manual_sync.test.ts +103 -53
  643. package/src/tests/api_tests/beluga_trigger_refill.test.ts +131 -46
  644. package/src/tests/api_tests/bulk_assignment.test.ts +307 -220
  645. package/src/tests/api_tests/calendar_event_references_update.test.ts +97 -54
  646. package/src/tests/api_tests/calendar_event_webhook_template.test.ts +198 -158
  647. package/src/tests/api_tests/chats_analytics.test.ts +161 -123
  648. package/src/tests/api_tests/concurrent_build_threads.test.ts +80 -69
  649. package/src/tests/api_tests/configurations_public_read.test.ts +154 -67
  650. package/src/tests/api_tests/copied_form_response_no_enduser_sync.test.ts +307 -0
  651. package/src/tests/api_tests/create_note_action.test.ts +149 -70
  652. package/src/tests/api_tests/create_user_notifications_trigger.test.ts +116 -144
  653. package/src/tests/api_tests/custom_aggregation.test.ts +163 -92
  654. package/src/tests/api_tests/database_cascade_delete.test.ts +101 -87
  655. package/src/tests/api_tests/dont_sync_to_elation_form_submission.test.ts +122 -51
  656. package/src/tests/api_tests/elation_user_id.test.ts +105 -42
  657. package/src/tests/api_tests/file_download_unicode_names.test.ts +171 -122
  658. package/src/tests/api_tests/form_intake_email_normalization.test.ts +489 -0
  659. package/src/tests/api_tests/form_submitted_trigger.test.ts +152 -86
  660. package/src/tests/api_tests/form_translations.test.ts +117 -48
  661. package/src/tests/api_tests/formsort_header_auth.test.ts +147 -97
  662. package/src/tests/api_tests/gcal_sync_retry.test.ts +71 -49
  663. package/src/tests/api_tests/get_some_projection.test.ts +333 -169
  664. package/src/tests/api_tests/group_event_attendee_self_update.test.ts +103 -52
  665. package/src/tests/api_tests/integrations_redacted.test.ts +161 -84
  666. package/src/tests/api_tests/journey_delete_cancels_actions.test.ts +93 -64
  667. package/src/tests/api_tests/load_team_chat.test.ts +62 -6
  668. package/src/tests/api_tests/load_threads_autobuild.test.ts +163 -67
  669. package/src/tests/api_tests/load_threads_care_team.test.ts +103 -0
  670. package/src/tests/api_tests/managed_content_file_access.test.ts +132 -108
  671. package/src/tests/api_tests/mdb_sort.test.ts +247 -161
  672. package/src/tests/api_tests/mdi_manual_sync.test.ts +277 -0
  673. package/src/tests/api_tests/mdi_trigger_refill.test.ts +132 -78
  674. package/src/tests/api_tests/mdi_webhooks.test.ts +52 -22
  675. package/src/tests/api_tests/message_assignment_trigger.test.ts +129 -155
  676. package/src/tests/api_tests/metriport_push_form_response.test.ts +109 -49
  677. package/src/tests/api_tests/organization_api_keys.test.ts +170 -2
  678. package/src/tests/api_tests/organization_settings_duplicates.test.ts +291 -181
  679. package/src/tests/api_tests/organization_signup.test.ts +170 -5
  680. package/src/tests/api_tests/out_of_office_endpoint.test.ts +98 -0
  681. package/src/tests/api_tests/outbound_chat_sent_trigger.test.ts +163 -175
  682. package/src/tests/api_tests/phone_calls_cold_transfer.test.ts +195 -133
  683. package/src/tests/api_tests/phone_calls_conference_hold.test.ts +112 -42
  684. package/src/tests/api_tests/phone_tree_enduser_condition.test.ts +81 -32
  685. package/src/tests/api_tests/programs.test.ts +350 -0
  686. package/src/tests/api_tests/security/ai-conversations-rbac.test.ts +248 -128
  687. package/src/tests/api_tests/security/automated-actions-process-gate.test.ts +47 -42
  688. package/src/tests/api_tests/security/booking-info-idor-token-mint.test.ts +53 -45
  689. package/src/tests/api_tests/security/cascade-role-rename-cross-tenant.test.ts +100 -73
  690. package/src/tests/api_tests/security/data-sync-redaction-bypass.test.ts +125 -59
  691. package/src/tests/api_tests/security/develop-health-benefit-verification-rbac.test.ts +131 -103
  692. package/src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts +161 -68
  693. package/src/tests/api_tests/security/enduser-cross-create.test.ts +200 -61
  694. package/src/tests/api_tests/security/enduser-write-restrictions.test.ts +179 -61
  695. package/src/tests/api_tests/security/globalunique-conflict-redaction.test.ts +163 -44
  696. package/src/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.ts +78 -70
  697. package/src/tests/api_tests/security/load-inbox-redaction.test.ts +79 -44
  698. package/src/tests/api_tests/security/proxy-image-unauth-ssrf.test.ts +95 -52
  699. package/src/tests/api_tests/security/register_business_id_injection.test.ts +132 -93
  700. package/src/tests/api_tests/security/sanitize-user-html-with-iframes.test.ts +127 -0
  701. package/src/tests/api_tests/security/schema-adminonly-enforcement.test.ts +42 -37
  702. package/src/tests/api_tests/security/self-admin-role-assignment.test.ts +92 -54
  703. package/src/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.ts +76 -34
  704. package/src/tests/api_tests/security/webhook-timeout.test.ts +67 -36
  705. package/src/tests/api_tests/stedi_approval.test.ts +156 -90
  706. package/src/tests/api_tests/ticket_stage_archive.test.ts +314 -0
  707. package/src/tests/api_tests/tickets_bulk_assign_care_team.test.ts +138 -103
  708. package/src/tests/api_tests/translations.test.ts +69 -46
  709. package/src/tests/api_tests/trigger_set_fields_date_difference.test.ts +198 -256
  710. package/src/tests/api_tests/user_preferences.test.ts +227 -0
  711. package/src/tests/api_tests/webhook_error_handling.test.ts +121 -60
  712. package/src/tests/api_tests/webhook_raw_json_number.test.ts +127 -109
  713. package/src/tests/api_tests/welle_partner_token.test.ts +217 -90
  714. package/src/tests/setup_isolated.ts +7 -0
  715. package/src/tests/tests.ts +41 -147
  716. package/src/tests/{api_tests → unit_tests}/date_string_validation.test.ts +2 -23
  717. package/test_generated.pdf +0 -0
@@ -105,23 +105,23 @@ var poll_for = function (get, done, attempts) {
105
105
  });
106
106
  };
107
107
  export var programs_checks = function () { return __awaiter(void 0, void 0, void 0, function () {
108
- var checks, record, tenant, sdk_1, programsEnduser, createdPrograms, replacedPrograms, missingNameError, err_1, authToken, enduserSession, selfRead, selfUpdateError, err_2, afterSelfUpdate, ORDER_SOURCE_1, create_order_1, tags_after_order, orderMatching, orderNonMatching, orderNoPrograms, configuration, tags_after_reading, vitalMatching, vitalNonMatching, CONDITION_FIELD_1, tags_after_create, conditionMatching, conditionNonMatching, e_1;
109
- var _a, _b;
110
- return __generator(this, function (_c) {
111
- switch (_c.label) {
108
+ var checks, record, tenant, sdk_1, programsEnduser, createdPrograms, replacedPrograms, missingNameError, err_1, authToken, enduserSession, selfRead, selfUpdateError, err_2, afterSelfUpdate, ORDER_SOURCE_1, create_order_1, tags_after_order, orderMatching, orderNonMatching, orderNoPrograms, configuration, tags_after_reading, vitalMatching, vitalNonMatching, CONDITION_FIELD_1, tags_after_create, conditionMatching, conditionNonMatching, MUTATION_FIELD_1, PROGRAM_1, save_trigger_error, unknownMatchKey, unknownValueKey, operatorKey, emptyMatch, emptyUpdate, unknownField, fire_mutation, programs_once_1, settled_enduser, addedId, added, duplicateId, afterDuplicate, updatedId, afterUpdate, clearedId, afterClear, clearedEntry, removedId, afterRemove, noMatchRemoveId, noMatchUpdateId, afterNoMatchRemove, afterNoMatchUpdate, alreadyDischargedId, afterAlreadyDischarged, fieldsChangedEnduser_1, fieldsChangedTags, emptiedEnduser_1, emptiedTags, _a, _b, _c, _d, _e, _f, cascadeId, afterCascade, fieldEqualsTags, feMatching, feNonMatching, BULK_SOURCE_1, BULK_PROGRAM_1, bulkEndusers, _g, bulkPrograms, e_1;
109
+ var _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
110
+ return __generator(this, function (_v) {
111
+ switch (_v.label) {
112
112
  case 0:
113
113
  checks = [];
114
114
  record = function (label, pass, detail) { return checks.push({ label: label, pass: pass, detail: detail }); };
115
- _c.label = 1;
115
+ _v.label = 1;
116
116
  case 1:
117
- _c.trys.push([1, , 33, 38]);
117
+ _v.trys.push([1, , 80, 85]);
118
118
  return [4 /*yield*/, setup_isolated_tenant({
119
119
  name: "ProgramFilters ".concat(RAND()),
120
120
  users: [{ isAdmin: true }],
121
121
  apiKeys: 0,
122
122
  })];
123
123
  case 2:
124
- tenant = _c.sent();
124
+ tenant = _v.sent();
125
125
  sdk_1 = tenant.sdk;
126
126
  return [4 /*yield*/, sdk_1.api.endusers.createOne({
127
127
  fname: 'Programs',
@@ -134,10 +134,10 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
134
134
  ],
135
135
  })];
136
136
  case 3:
137
- programsEnduser = _c.sent();
137
+ programsEnduser = _v.sent();
138
138
  return [4 /*yield*/, sdk_1.api.endusers.getOne(programsEnduser.id)];
139
139
  case 4:
140
- createdPrograms = (_c.sent()).programs;
140
+ createdPrograms = (_v.sent()).programs;
141
141
  record('F: Enduser.programs round-trips on create, with and without deviceIds / status', (createdPrograms === null || createdPrograms === void 0 ? void 0 : createdPrograms.length) === 2
142
142
  && createdPrograms[0].name === 'CHF'
143
143
  && JSON.stringify(createdPrograms[0].deviceIds) === JSON.stringify(['dev-a'])
@@ -147,53 +147,53 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
147
147
  && createdPrograms[1].status === undefined, "programs=".concat(JSON.stringify(createdPrograms)));
148
148
  return [4 /*yield*/, sdk_1.api.endusers.updateOne(programsEnduser.id, { programs: [{ name: 'CHF', deviceIds: ['dev-a', 'dev-b'] }] }, { replaceObjectFields: true })];
149
149
  case 5:
150
- _c.sent();
150
+ _v.sent();
151
151
  return [4 /*yield*/, sdk_1.api.endusers.getOne(programsEnduser.id)];
152
152
  case 6:
153
- replacedPrograms = (_c.sent()).programs;
153
+ replacedPrograms = (_v.sent()).programs;
154
154
  record('G: updating programs with replaceObjectFields replaces the whole list', (replacedPrograms === null || replacedPrograms === void 0 ? void 0 : replacedPrograms.length) === 1
155
155
  && replacedPrograms[0].name === 'CHF'
156
156
  && JSON.stringify(replacedPrograms[0].deviceIds) === JSON.stringify(['dev-a', 'dev-b']), "programs=".concat(JSON.stringify(replacedPrograms)));
157
157
  missingNameError = '';
158
- _c.label = 7;
158
+ _v.label = 7;
159
159
  case 7:
160
- _c.trys.push([7, 9, , 10]);
160
+ _v.trys.push([7, 9, , 10]);
161
161
  return [4 /*yield*/, sdk_1.api.endusers.updateOne(programsEnduser.id, { programs: [{ deviceIds: ['dev-a'] }] })];
162
162
  case 8:
163
- _c.sent();
163
+ _v.sent();
164
164
  return [3 /*break*/, 10];
165
165
  case 9:
166
- err_1 = _c.sent();
167
- missingNameError = (_a = err_1 === null || err_1 === void 0 ? void 0 : err_1.message) !== null && _a !== void 0 ? _a : String(err_1);
166
+ err_1 = _v.sent();
167
+ missingNameError = (_h = err_1 === null || err_1 === void 0 ? void 0 : err_1.message) !== null && _h !== void 0 ? _h : String(err_1);
168
168
  return [3 /*break*/, 10];
169
169
  case 10:
170
170
  record('H: a program entry without a name is rejected', missingNameError.includes('name'), "error=".concat(JSON.stringify(missingNameError) || '(none — the write was ACCEPTED)'));
171
171
  return [4 /*yield*/, sdk_1.api.endusers.generate_auth_token({ id: programsEnduser.id })];
172
172
  case 11:
173
- authToken = (_c.sent()).authToken;
173
+ authToken = (_v.sent()).authToken;
174
174
  enduserSession = new EnduserSession({ host: host, authToken: authToken, businessId: tenant.businessId });
175
175
  return [4 /*yield*/, enduserSession.refresh_session()];
176
176
  case 12:
177
- _c.sent();
177
+ _v.sent();
178
178
  return [4 /*yield*/, enduserSession.api.endusers.getOne(programsEnduser.id)];
179
179
  case 13:
180
- selfRead = _c.sent();
180
+ selfRead = _v.sent();
181
181
  record('I: Enduser.programs is redacted from the enduser\'s own read of their record', selfRead.programs === undefined, "enduser-session programs=".concat(JSON.stringify(selfRead.programs)));
182
182
  selfUpdateError = '';
183
- _c.label = 14;
183
+ _v.label = 14;
184
184
  case 14:
185
- _c.trys.push([14, 16, , 17]);
185
+ _v.trys.push([14, 16, , 17]);
186
186
  return [4 /*yield*/, enduserSession.api.endusers.updateOne(programsEnduser.id, { programs: [{ name: 'Self Assigned' }] })];
187
187
  case 15:
188
- _c.sent();
188
+ _v.sent();
189
189
  return [3 /*break*/, 17];
190
190
  case 16:
191
- err_2 = _c.sent();
192
- selfUpdateError = (_b = err_2 === null || err_2 === void 0 ? void 0 : err_2.message) !== null && _b !== void 0 ? _b : String(err_2);
191
+ err_2 = _v.sent();
192
+ selfUpdateError = (_j = err_2 === null || err_2 === void 0 ? void 0 : err_2.message) !== null && _j !== void 0 ? _j : String(err_2);
193
193
  return [3 /*break*/, 17];
194
194
  case 17: return [4 /*yield*/, sdk_1.api.endusers.getOne(programsEnduser.id)];
195
195
  case 18:
196
- afterSelfUpdate = (_c.sent()).programs;
196
+ afterSelfUpdate = (_v.sent()).programs;
197
197
  record('J: an enduser cannot update their own programs', selfUpdateError.includes('cannot be updated by endusers')
198
198
  && (afterSelfUpdate === null || afterSelfUpdate === void 0 ? void 0 : afterSelfUpdate.length) === 1 && afterSelfUpdate[0].name === 'CHF', "error=".concat(JSON.stringify(selfUpdateError) || '(none — the write was ACCEPTED)')
199
199
  + " programs=".concat(JSON.stringify(afterSelfUpdate)));
@@ -207,7 +207,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
207
207
  // no programs filter — the shape of every trigger that exists today; must match regardless
208
208
  ];
209
209
  case 19:
210
- _c.sent();
210
+ _v.sent();
211
211
  // no programs filter — the shape of every trigger that exists today; must match regardless
212
212
  return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
213
213
  event: { type: 'Order Status Equals', info: { source: ORDER_SOURCE_1, status: 'shipped' } },
@@ -217,7 +217,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
217
217
  })];
218
218
  case 20:
219
219
  // no programs filter — the shape of every trigger that exists today; must match regardless
220
- _c.sent();
220
+ _v.sent();
221
221
  create_order_1 = function (enduserId, programs) { return __awaiter(void 0, void 0, void 0, function () {
222
222
  return __generator(this, function (_a) {
223
223
  return [2 /*return*/, (sdk_1.api.enduser_orders.createOne(__assign({ enduserId: enduserId, source: ORDER_SOURCE_1, externalId: "ext-".concat(RAND()), title: 'Program filter order', status: 'shipped' }, (programs ? { programs: programs } : {}))))];
@@ -245,15 +245,15 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
245
245
  }); };
246
246
  return [4 /*yield*/, tags_after_order([{ name: 'CHF' }])];
247
247
  case 21:
248
- orderMatching = _c.sent();
248
+ orderMatching = _v.sent();
249
249
  record('A: Order Status Equals with programs=[CHF] fires for an order in program CHF', orderMatching.includes('order-chf') && orderMatching.includes('order-any'), "tags=".concat(JSON.stringify(orderMatching)));
250
250
  return [4 /*yield*/, tags_after_order([{ name: 'Diabetes' }])];
251
251
  case 22:
252
- orderNonMatching = _c.sent();
252
+ orderNonMatching = _v.sent();
253
253
  record('B: Order Status Equals with programs=[CHF] does NOT fire for an order in program Diabetes', !orderNonMatching.includes('order-chf') && orderNonMatching.includes('order-any'), "tags=".concat(JSON.stringify(orderNonMatching)));
254
254
  return [4 /*yield*/, tags_after_order(undefined)];
255
255
  case 23:
256
- orderNoPrograms = _c.sent();
256
+ orderNoPrograms = _v.sent();
257
257
  record('C: Order Status Equals with programs=[CHF] does NOT fire for an order with no programs,'
258
258
  + ' while the unfiltered trigger still does (back-compat)', !orderNoPrograms.includes('order-chf') && orderNoPrograms.includes('order-any'), "tags=".concat(JSON.stringify(orderNoPrograms)));
259
259
  return [4 /*yield*/, sdk_1.api.vital_configurations.createOne({
@@ -267,7 +267,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
267
267
  ],
268
268
  })];
269
269
  case 24:
270
- configuration = _c.sent();
270
+ configuration = _v.sent();
271
271
  return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
272
272
  event: {
273
273
  type: 'Vital Update',
@@ -278,7 +278,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
278
278
  title: "Vital programs=[CHF] ".concat(RAND()),
279
279
  })];
280
280
  case 25:
281
- _c.sent();
281
+ _v.sent();
282
282
  return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
283
283
  event: {
284
284
  type: 'Vital Update',
@@ -289,7 +289,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
289
289
  title: "Vital programs unset ".concat(RAND()),
290
290
  })];
291
291
  case 26:
292
- _c.sent();
292
+ _v.sent();
293
293
  tags_after_reading = function (programs) { return __awaiter(void 0, void 0, void 0, function () {
294
294
  var enduser, after;
295
295
  var _a;
@@ -310,11 +310,11 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
310
310
  }); };
311
311
  return [4 /*yield*/, tags_after_reading([{ name: 'CHF' }])];
312
312
  case 27:
313
- vitalMatching = _c.sent();
313
+ vitalMatching = _v.sent();
314
314
  record('D: Vital Update with programs=[CHF] fires for a reading in program CHF', vitalMatching.includes('vital-chf') && vitalMatching.includes('vital-any'), "tags=".concat(JSON.stringify(vitalMatching)));
315
315
  return [4 /*yield*/, tags_after_reading([{ name: 'Diabetes' }])];
316
316
  case 28:
317
- vitalNonMatching = _c.sent();
317
+ vitalNonMatching = _v.sent();
318
318
  record('E: Vital Update with programs=[CHF] does NOT fire for a reading in program Diabetes,'
319
319
  + ' while the unfiltered trigger still does (back-compat)', !vitalNonMatching.includes('vital-chf') && vitalNonMatching.includes('vital-any'), "tags=".concat(JSON.stringify(vitalNonMatching)));
320
320
  CONDITION_FIELD_1 = "ProgramConditionKey".concat(RAND());
@@ -328,7 +328,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
328
328
  // the same event with no enduserCondition — the barrier that makes an absence above meaningful
329
329
  ];
330
330
  case 29:
331
- _c.sent();
331
+ _v.sent();
332
332
  // the same event with no enduserCondition — the barrier that makes an absence above meaningful
333
333
  return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
334
334
  event: { type: 'Field Equals', info: { field: CONDITION_FIELD_1, value: 'go' } },
@@ -343,7 +343,7 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
343
343
  ];
344
344
  case 30:
345
345
  // the same event with no enduserCondition — the barrier that makes an absence above meaningful
346
- _c.sent();
346
+ _v.sent();
347
347
  tags_after_create = function (programs, waitFor) { return __awaiter(void 0, void 0, void 0, function () {
348
348
  var enduser, after;
349
349
  var _a;
@@ -362,29 +362,396 @@ export var programs_checks = function () { return __awaiter(void 0, void 0, void
362
362
  }); };
363
363
  return [4 /*yield*/, tags_after_create([{ name: 'CHF', status: 'active' }], 'condition-chf')];
364
364
  case 31:
365
- conditionMatching = _c.sent();
365
+ conditionMatching = _v.sent();
366
366
  record('K: a trigger with a Programs Is In CHF enduserCondition fires for a patient in program CHF', conditionMatching.includes('condition-chf') && conditionMatching.includes('condition-any'), "tags=".concat(JSON.stringify(conditionMatching)));
367
367
  return [4 /*yield*/, tags_after_create(undefined, 'condition-any')];
368
368
  case 32:
369
- conditionNonMatching = _c.sent();
369
+ conditionNonMatching = _v.sent();
370
370
  record('L: the same trigger does NOT fire for a patient with no programs,'
371
371
  + ' while the unconditioned trigger still does', !conditionNonMatching.includes('condition-chf') && conditionNonMatching.includes('condition-any'), "tags=".concat(JSON.stringify(conditionNonMatching)));
372
- return [3 /*break*/, 38];
372
+ MUTATION_FIELD_1 = "ProgramMutation".concat(RAND());
373
+ PROGRAM_1 = 'CHF';
374
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
375
+ event: { type: 'Field Equals', info: { field: MUTATION_FIELD_1, value: '$exists' } },
376
+ action: { type: 'Add Tags', info: { tags: ['mutation-any'] } },
377
+ status: 'Active',
378
+ title: "Mutation barrier ".concat(RAND()),
379
+ })];
373
380
  case 33:
374
- if (!tenant) return [3 /*break*/, 37];
375
- _c.label = 34;
381
+ _v.sent();
382
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
383
+ event: { type: 'Field Equals', info: { field: MUTATION_FIELD_1, value: 'add' } },
384
+ action: { type: 'Add List Item', info: { field: 'programs', match: { name: PROGRAM_1 }, values: { status: 'Active' } } },
385
+ status: 'Active',
386
+ title: "Add List Item ".concat(RAND()),
387
+ })];
376
388
  case 34:
377
- _c.trys.push([34, 36, , 37]);
378
- return [4 /*yield*/, tenant.teardown()];
389
+ _v.sent();
390
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
391
+ event: { type: 'Field Equals', info: { field: MUTATION_FIELD_1, value: 'status' } },
392
+ action: { type: 'Update List Item', info: { field: 'programs', match: { name: PROGRAM_1 }, values: { status: 'Discharged' } } },
393
+ status: 'Active',
394
+ title: "Update List Item ".concat(RAND()),
395
+ })];
379
396
  case 35:
380
- _c.sent();
381
- return [3 /*break*/, 37];
397
+ _v.sent();
398
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
399
+ // a BLANK value clears that sub-field, rather than being a no-op — the $unset half of the action
400
+ event: { type: 'Field Equals', info: { field: MUTATION_FIELD_1, value: 'clear' } },
401
+ action: { type: 'Update List Item', info: { field: 'programs', match: { name: PROGRAM_1 }, values: { status: '' } } },
402
+ status: 'Active',
403
+ title: "Clear List Item status ".concat(RAND()),
404
+ })];
382
405
  case 36:
383
- e_1 = _c.sent();
406
+ _v.sent();
407
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
408
+ event: { type: 'Field Equals', info: { field: MUTATION_FIELD_1, value: 'remove' } },
409
+ action: { type: 'Remove List Item', info: { field: 'programs', match: { name: PROGRAM_1 } } },
410
+ status: 'Active',
411
+ title: "Remove List Item ".concat(RAND()),
412
+ })
413
+ /**
414
+ * The sub-fields a mutation may touch are ENDUSER_LIST_FIELD_CONFIG's, checked when the trigger is
415
+ * SAVED (an automation_triggers constraint, sharing list_item_mutation_error with the editor).
416
+ *
417
+ * Rejecting here rather than at fire time is the point: an accepted-but-ignored key leaves a
418
+ * trigger that looks configured and silently never does what it says. It is also what keeps a
419
+ * `$`-prefixed or dotted key out of the Mongo paths the action builds from these keys.
420
+ */
421
+ ];
422
+ case 37:
423
+ _v.sent();
424
+ save_trigger_error = function (action) { return __awaiter(void 0, void 0, void 0, function () {
425
+ var created, err_3;
426
+ var _a;
427
+ return __generator(this, function (_b) {
428
+ switch (_b.label) {
429
+ case 0:
430
+ _b.trys.push([0, 3, , 4]);
431
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
432
+ event: { type: 'Field Equals', info: { field: "Never".concat(RAND()), value: 'never' } },
433
+ action: action,
434
+ status: 'Inactive', title: "Rejected ".concat(RAND()),
435
+ })
436
+ // it saved; leave nothing behind for the later checks to trip over
437
+ ];
438
+ case 1:
439
+ created = _b.sent();
440
+ // it saved; leave nothing behind for the later checks to trip over
441
+ return [4 /*yield*/, sdk_1.api.automation_triggers.deleteOne(created.id)];
442
+ case 2:
443
+ // it saved; leave nothing behind for the later checks to trip over
444
+ _b.sent();
445
+ return [2 /*return*/, ''];
446
+ case 3:
447
+ err_3 = _b.sent();
448
+ return [2 /*return*/, (_a = err_3 === null || err_3 === void 0 ? void 0 : err_3.message) !== null && _a !== void 0 ? _a : String(err_3)];
449
+ case 4: return [2 /*return*/];
450
+ }
451
+ });
452
+ }); };
453
+ return [4 /*yield*/, save_trigger_error({
454
+ type: 'Add List Item', info: { field: 'programs', match: { title: PROGRAM_1 } },
455
+ })];
456
+ case 38:
457
+ unknownMatchKey = _v.sent();
458
+ return [4 /*yield*/, save_trigger_error({
459
+ type: 'Update List Item', info: { field: 'programs', match: { name: PROGRAM_1 }, values: { deviceIds: 'x' } },
460
+ })];
461
+ case 39:
462
+ unknownValueKey = _v.sent();
463
+ return [4 /*yield*/, save_trigger_error({
464
+ type: 'Add List Item', info: { field: 'programs', match: { '$where': PROGRAM_1 } },
465
+ })];
466
+ case 40:
467
+ operatorKey = _v.sent();
468
+ return [4 /*yield*/, save_trigger_error({
469
+ type: 'Remove List Item', info: { field: 'programs', match: {} },
470
+ })];
471
+ case 41:
472
+ emptyMatch = _v.sent();
473
+ return [4 /*yield*/, save_trigger_error({
474
+ type: 'Update List Item', info: { field: 'programs', match: { name: PROGRAM_1 }, values: {} },
475
+ })];
476
+ case 42:
477
+ emptyUpdate = _v.sent();
478
+ return [4 /*yield*/, save_trigger_error({
479
+ type: 'Add List Item', info: { field: 'diagnoses', match: { code: 'I50' } },
480
+ })];
481
+ case 43:
482
+ unknownField = _v.sent();
483
+ record('Y: a list mutation naming a sub-field (or field) outside the registry is rejected ON SAVE,'
484
+ + ' naming the offending key',
485
+ // the message, not merely "an error": the point of sharing list_item_mutation_error with the
486
+ // editor is that both reject the same action with the same wording, and a rejection for some
487
+ // unrelated reason would pass a non-empty check while proving nothing
488
+ unknownMatchKey.includes('title') && unknownValueKey.includes('deviceIds')
489
+ && operatorKey.includes('$where') && unknownField.includes('diagnoses'), "match=".concat(JSON.stringify(unknownMatchKey), " values=").concat(JSON.stringify(unknownValueKey))
490
+ + " operator=".concat(JSON.stringify(operatorKey), " field=").concat(JSON.stringify(unknownField)));
491
+ record('Z: a list mutation that matches nothing, or an Update that sets nothing, is rejected ON SAVE', !!emptyMatch && !!emptyUpdate, "emptyMatch=".concat(JSON.stringify(emptyMatch), " emptyUpdate=").concat(JSON.stringify(emptyUpdate)));
492
+ fire_mutation = function (value, programs) { return __awaiter(void 0, void 0, void 0, function () {
493
+ var enduser;
494
+ var _a;
495
+ return __generator(this, function (_b) {
496
+ switch (_b.label) {
497
+ case 0: return [4 /*yield*/, sdk_1.api.endusers.createOne(__assign({ fname: 'Programs', lname: 'Mutation' }, (programs ? { programs: programs } : {})))
498
+ // an UPDATE, not a create: the mutation actions are reached through the update path, and Field
499
+ // Equals on programs (below) is update-only
500
+ ];
501
+ case 1:
502
+ enduser = _b.sent();
503
+ // an UPDATE, not a create: the mutation actions are reached through the update path, and Field
504
+ // Equals on programs (below) is update-only
505
+ return [4 /*yield*/, sdk_1.api.endusers.updateOne(enduser.id, { fields: (_a = {}, _a[MUTATION_FIELD_1] = value, _a) })];
506
+ case 2:
507
+ // an UPDATE, not a create: the mutation actions are reached through the update path, and Field
508
+ // Equals on programs (below) is update-only
509
+ _b.sent();
510
+ return [2 /*return*/, enduser.id];
511
+ }
512
+ });
513
+ }); };
514
+ programs_once_1 = function (id, done, attempts) { return __awaiter(void 0, void 0, void 0, function () {
515
+ var _a;
516
+ return __generator(this, function (_b) {
517
+ switch (_b.label) {
518
+ case 0: return [4 /*yield*/, poll_for(function () { return sdk_1.api.endusers.getOne(id); }, function (e) { var _a; return done((_a = e.programs) !== null && _a !== void 0 ? _a : []); }, attempts)];
519
+ case 1: return [2 /*return*/, ((_a = (_b.sent()).programs) !== null && _a !== void 0 ? _a : [])
520
+ /**
521
+ * For the checks that assert NOTHING changed. The barrier tag proves trigger processing happened for
522
+ * this patient, but the barrier and the mutation are two triggers dispatched from one loop in
523
+ * whatever order the trigger page came back in, so the tag alone does not prove the mutation already
524
+ * ran. The extra settle closes that window; the positive checks need none of this, since they poll
525
+ * for their own effect.
526
+ */
527
+ ];
528
+ }
529
+ });
530
+ }); };
531
+ settled_enduser = function (id) { return __awaiter(void 0, void 0, void 0, function () {
532
+ return __generator(this, function (_a) {
533
+ switch (_a.label) {
534
+ case 0: return [4 /*yield*/, poll_for(function () { return sdk_1.api.endusers.getOne(id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('mutation-any')); })];
535
+ case 1:
536
+ _a.sent();
537
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 2000); })];
538
+ case 2:
539
+ _a.sent();
540
+ return [2 /*return*/, sdk_1.api.endusers.getOne(id)];
541
+ }
542
+ });
543
+ }); };
544
+ return [4 /*yield*/, fire_mutation('add')];
545
+ case 44:
546
+ addedId = _v.sent();
547
+ return [4 /*yield*/, programs_once_1(addedId, function (p) { return p.length > 0; })];
548
+ case 45:
549
+ added = _v.sent();
550
+ record('M: Add List Item adds the configured program, with the status the action carries', added.length === 1 && added[0].name === PROGRAM_1 && added[0].status === 'Active', "programs=".concat(JSON.stringify(added)));
551
+ return [4 /*yield*/, fire_mutation('add', [{ name: PROGRAM_1, status: 'Discharged' }])];
552
+ case 46:
553
+ duplicateId = _v.sent();
554
+ return [4 /*yield*/, settled_enduser(duplicateId)];
555
+ case 47:
556
+ afterDuplicate = (_k = (_v.sent()).programs) !== null && _k !== void 0 ? _k : [];
557
+ record('N: Add List Item no-ops when the patient is already in that program, and does NOT reset its status', afterDuplicate.length === 1
558
+ && afterDuplicate[0].name === PROGRAM_1 && afterDuplicate[0].status === 'Discharged', "programs=".concat(JSON.stringify(afterDuplicate)));
559
+ return [4 /*yield*/, fire_mutation('status', [
560
+ { name: PROGRAM_1, status: 'Active' }, { name: 'Diabetes', status: 'Active' }, { name: PROGRAM_1 },
561
+ ])];
562
+ case 48:
563
+ updatedId = _v.sent();
564
+ return [4 /*yield*/, programs_once_1(updatedId, function (p) { return p.filter(function (x) { return x.name === PROGRAM_1 && x.status === 'Discharged'; }).length === 2; })];
565
+ case 49:
566
+ afterUpdate = _v.sent();
567
+ record('O: Update List Item sets the status on EVERY entry with that name, and on no other entry', afterUpdate.length === 3
568
+ && afterUpdate.filter(function (p) { return p.name === PROGRAM_1 && p.status === 'Discharged'; }).length === 2
569
+ && ((_l = afterUpdate.find(function (p) { return p.name === 'Diabetes'; })) === null || _l === void 0 ? void 0 : _l.status) === 'Active', "programs=".concat(JSON.stringify(afterUpdate)));
570
+ return [4 /*yield*/, fire_mutation('clear', [
571
+ { name: PROGRAM_1, status: 'Active' }, { name: 'Diabetes', status: 'Active' },
572
+ ])];
573
+ case 50:
574
+ clearedId = _v.sent();
575
+ return [4 /*yield*/, programs_once_1(clearedId, function (p) { return p.some(function (x) { return x.name === PROGRAM_1 && x.status === undefined; }); })];
576
+ case 51:
577
+ afterClear = _v.sent();
578
+ clearedEntry = afterClear.find(function (p) { return p.name === PROGRAM_1; });
579
+ record('AA: Update List Item with a blank value CLEARS that sub-field, leaving no key behind', afterClear.length === 2
580
+ && !!clearedEntry && !('status' in clearedEntry)
581
+ && ((_m = afterClear.find(function (p) { return p.name === 'Diabetes'; })) === null || _m === void 0 ? void 0 : _m.status) === 'Active', "programs=".concat(JSON.stringify(afterClear))
582
+ + " keys=".concat(JSON.stringify(Object.keys(clearedEntry !== null && clearedEntry !== void 0 ? clearedEntry : {}))));
583
+ return [4 /*yield*/, fire_mutation('remove', [
584
+ { name: PROGRAM_1 }, { name: 'Diabetes', status: 'Active' }, { name: PROGRAM_1, status: 'Active' },
585
+ ])];
586
+ case 52:
587
+ removedId = _v.sent();
588
+ return [4 /*yield*/, programs_once_1(removedId, function (p) { return !p.some(function (x) { return x.name === PROGRAM_1; }); })];
589
+ case 53:
590
+ afterRemove = _v.sent();
591
+ record('P: Remove List Item removes EVERY entry with that name, whatever status they hold, and nothing else', afterRemove.length === 1 && afterRemove[0].name === 'Diabetes' && afterRemove[0].status === 'Active', "programs=".concat(JSON.stringify(afterRemove)));
592
+ return [4 /*yield*/, fire_mutation('remove', [{ name: 'Diabetes', status: 'Active' }])];
593
+ case 54:
594
+ noMatchRemoveId = _v.sent();
595
+ return [4 /*yield*/, fire_mutation('status', [{ name: 'Diabetes', status: 'Active' }])];
596
+ case 55:
597
+ noMatchUpdateId = _v.sent();
598
+ return [4 /*yield*/, settled_enduser(noMatchRemoveId)];
599
+ case 56:
600
+ afterNoMatchRemove = (_o = (_v.sent()).programs) !== null && _o !== void 0 ? _o : [];
601
+ return [4 /*yield*/, settled_enduser(noMatchUpdateId)];
602
+ case 57:
603
+ afterNoMatchUpdate = (_p = (_v.sent()).programs) !== null && _p !== void 0 ? _p : [];
604
+ record('Q: Remove and Update List Item both no-op when no entry carries that name', JSON.stringify(afterNoMatchRemove) === JSON.stringify([{ name: 'Diabetes', status: 'Active' }])
605
+ && JSON.stringify(afterNoMatchUpdate) === JSON.stringify([{ name: 'Diabetes', status: 'Active' }]), "afterRemove=".concat(JSON.stringify(afterNoMatchRemove), " afterUpdate=").concat(JSON.stringify(afterNoMatchUpdate)));
606
+ return [4 /*yield*/, fire_mutation('status', [{ name: PROGRAM_1, status: 'Discharged' }])];
607
+ case 58:
608
+ alreadyDischargedId = _v.sent();
609
+ return [4 /*yield*/, settled_enduser(alreadyDischargedId)];
610
+ case 59:
611
+ afterAlreadyDischarged = (_q = (_v.sent()).programs) !== null && _q !== void 0 ? _q : [];
612
+ record('X: Update List Item leaves an entry alone when it already carries the target status', JSON.stringify(afterAlreadyDischarged) === JSON.stringify([{ name: PROGRAM_1, status: 'Discharged' }]), "programs=".concat(JSON.stringify(afterAlreadyDischarged)));
613
+ /* ============ Fields Changed on programs, and the no-cascade rule ============ */
614
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
615
+ event: { type: 'Fields Changed', info: { fields: ['programs'] } },
616
+ action: { type: 'Add Tags', info: { tags: ['programs-fc'] } },
617
+ status: 'Active',
618
+ title: "Fields Changed programs ".concat(RAND()),
619
+ })];
620
+ case 60:
621
+ /* ============ Fields Changed on programs, and the no-cascade rule ============ */
622
+ _v.sent();
623
+ return [4 /*yield*/, sdk_1.api.endusers.createOne({ fname: 'Programs', lname: 'Changed' })];
624
+ case 61:
625
+ fieldsChangedEnduser_1 = _v.sent();
626
+ return [4 /*yield*/, sdk_1.api.endusers.updateOne(fieldsChangedEnduser_1.id, { programs: [{ name: PROGRAM_1 }] }, { replaceObjectFields: true })];
627
+ case 62:
628
+ _v.sent();
629
+ return [4 /*yield*/, poll_for(function () { return sdk_1.api.endusers.getOne(fieldsChangedEnduser_1.id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('programs-fc')); })];
630
+ case 63:
631
+ fieldsChangedTags = (_r = (_v.sent()).tags) !== null && _r !== void 0 ? _r : [];
632
+ record('R: a Fields Changed trigger on programs fires for a direct staff/API write', fieldsChangedTags.includes('programs-fc'), "tags=".concat(JSON.stringify(fieldsChangedTags)));
633
+ return [4 /*yield*/, sdk_1.api.endusers.createOne({
634
+ fname: 'Programs', lname: 'Emptied', programs: [{ name: PROGRAM_1, status: 'Active' }],
635
+ })];
636
+ case 64:
637
+ emptiedEnduser_1 = _v.sent();
638
+ return [4 /*yield*/, sdk_1.api.endusers.updateOne(emptiedEnduser_1.id, { programs: [] }, { replaceObjectFields: true })];
639
+ case 65:
640
+ _v.sent();
641
+ return [4 /*yield*/, poll_for(function () { return sdk_1.api.endusers.getOne(emptiedEnduser_1.id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('programs-fc')); })];
642
+ case 66:
643
+ emptiedTags = (_s = (_v.sent()).tags) !== null && _s !== void 0 ? _s : [];
644
+ _a = record;
645
+ _b = ['W: a Fields Changed trigger on programs still fires when the patient\'s LAST program is removed',
646
+ emptiedTags.includes('programs-fc')];
647
+ _c = "tags=".concat(JSON.stringify(emptiedTags));
648
+ _d = " programs=".concat;
649
+ _f = (_e = JSON).stringify;
650
+ return [4 /*yield*/, sdk_1.api.endusers.getOne(emptiedEnduser_1.id)];
651
+ case 67:
652
+ _a.apply(void 0, _b.concat([_c + _d.apply(" programs=", [_f.apply(_e, [(_v.sent()).programs])])]));
653
+ return [4 /*yield*/, fire_mutation('add')];
654
+ case 68:
655
+ cascadeId = _v.sent();
656
+ return [4 /*yield*/, programs_once_1(cascadeId, function (p) { return p.some(function (x) { return x.name === PROGRAM_1; }); })]; // the trigger's write landed
657
+ case 69:
658
+ _v.sent(); // the trigger's write landed
659
+ return [4 /*yield*/, settled_enduser(cascadeId)];
660
+ case 70:
661
+ afterCascade = _v.sent();
662
+ record('S: a program written by a trigger does NOT re-fire programs automations (no cascade),'
663
+ + ' while trigger processing demonstrably ran for this patient', !((_t = afterCascade.tags) === null || _t === void 0 ? void 0 : _t.includes('programs-fc')) && !!((_u = afterCascade.tags) === null || _u === void 0 ? void 0 : _u.includes('mutation-any')), "tags=".concat(JSON.stringify(afterCascade.tags), " programs=").concat(JSON.stringify(afterCascade.programs)));
664
+ /* ============ Field Equals on programs ============ */
665
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
666
+ event: { type: 'Field Equals', info: { field: 'programs', value: PROGRAM_1 } },
667
+ action: { type: 'Add Tags', info: { tags: ['programs-fe'] } },
668
+ status: 'Active',
669
+ title: "Field Equals programs ".concat(RAND()),
670
+ })];
671
+ case 71:
672
+ /* ============ Field Equals on programs ============ */
673
+ _v.sent();
674
+ fieldEqualsTags = function (programs, waitFor) { return __awaiter(void 0, void 0, void 0, function () {
675
+ var enduser, after;
676
+ var _a;
677
+ return __generator(this, function (_b) {
678
+ switch (_b.label) {
679
+ case 0: return [4 /*yield*/, sdk_1.api.endusers.createOne({ fname: 'Programs', lname: 'FieldEquals' })];
680
+ case 1:
681
+ enduser = _b.sent();
682
+ return [4 /*yield*/, sdk_1.api.endusers.updateOne(enduser.id, { programs: programs }, { replaceObjectFields: true })];
683
+ case 2:
684
+ _b.sent();
685
+ return [4 /*yield*/, poll_for(function () { return sdk_1.api.endusers.getOne(enduser.id); }, function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes(waitFor)); })];
686
+ case 3:
687
+ after = _b.sent();
688
+ return [2 /*return*/, (_a = after.tags) !== null && _a !== void 0 ? _a : []];
689
+ }
690
+ });
691
+ }); };
692
+ return [4 /*yield*/, fieldEqualsTags([{ name: PROGRAM_1, status: 'Active' }], 'programs-fe')];
693
+ case 72:
694
+ feMatching = _v.sent();
695
+ record('T: Field Equals on programs fires for a patient put into a program of that name', feMatching.includes('programs-fe'), "tags=".concat(JSON.stringify(feMatching)));
696
+ return [4 /*yield*/, fieldEqualsTags([{ name: 'Diabetes' }], 'programs-fc')];
697
+ case 73:
698
+ feNonMatching = _v.sent();
699
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 2000); })];
700
+ case 74:
701
+ _v.sent();
702
+ record('U: Field Equals on programs does NOT fire for a different program name,'
703
+ + ' while the Fields Changed trigger on the same write still does', !feNonMatching.includes('programs-fe') && feNonMatching.includes('programs-fc'), "tags=".concat(JSON.stringify(feNonMatching)));
704
+ BULK_SOURCE_1 = "ProgramBulkSource".concat(RAND());
705
+ BULK_PROGRAM_1 = 'Bulk Program';
706
+ return [4 /*yield*/, sdk_1.api.automation_triggers.createOne({
707
+ event: { type: 'Order Status Equals', info: { source: BULK_SOURCE_1, status: 'shipped' } },
708
+ action: { type: 'Add List Item', info: { field: 'programs', match: { name: BULK_PROGRAM_1 } } },
709
+ status: 'Active',
710
+ title: "Bulk Add List Item ".concat(RAND()),
711
+ })];
712
+ case 75:
713
+ _v.sent();
714
+ return [4 /*yield*/, sdk_1.api.endusers.createOne({ fname: 'Programs', lname: 'BulkA' })];
715
+ case 76:
716
+ _g = [
717
+ _v.sent()
718
+ ];
719
+ return [4 /*yield*/, sdk_1.api.endusers.createOne({ fname: 'Programs', lname: 'BulkB' })];
720
+ case 77:
721
+ bulkEndusers = _g.concat([
722
+ _v.sent()
723
+ ]);
724
+ return [4 /*yield*/, sdk_1.api.enduser_orders.createSome(bulkEndusers.map(function (e) { return ({
725
+ enduserId: e.id,
726
+ source: BULK_SOURCE_1,
727
+ externalId: "ext-".concat(RAND()),
728
+ title: 'Bulk program order',
729
+ status: 'shipped',
730
+ }); }))];
731
+ case 78:
732
+ _v.sent();
733
+ return [4 /*yield*/, Promise.all(bulkEndusers.map(function (e) { return (programs_once_1(e.id, function (p) { return p.some(function (x) { return x.name === BULK_PROGRAM_1; }); }, 240) // up to 60s; worker-paced
734
+ ); }))];
735
+ case 79:
736
+ bulkPrograms = _v.sent();
737
+ record('V: an Add List Item action dispatched in bulk is deferred to the single-record path and applied'
738
+ + ' to every patient in the batch', bulkPrograms.every(function (p) { return p.length === 1 && p[0].name === BULK_PROGRAM_1; }), "programs=".concat(JSON.stringify(bulkPrograms), " (needs a worker running to drain delayed_events)"));
739
+ return [3 /*break*/, 85];
740
+ case 80:
741
+ if (!tenant) return [3 /*break*/, 84];
742
+ _v.label = 81;
743
+ case 81:
744
+ _v.trys.push([81, 83, , 84]);
745
+ return [4 /*yield*/, tenant.teardown()];
746
+ case 82:
747
+ _v.sent();
748
+ return [3 /*break*/, 84];
749
+ case 83:
750
+ e_1 = _v.sent();
384
751
  console.error('teardown failed', e_1);
385
- return [3 /*break*/, 37];
386
- case 37: return [7 /*endfinally*/];
387
- case 38: return [2 /*return*/, checks];
752
+ return [3 /*break*/, 84];
753
+ case 84: return [7 /*endfinally*/];
754
+ case 85: return [2 /*return*/, checks];
388
755
  }
389
756
  });
390
757
  }); };