@tellescope/sdk 2.0.0-beta.1 → 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 (957) hide show
  1. package/CLAUDE.md +24 -0
  2. package/env.example +6 -0
  3. package/lib/cjs/sdk.d.ts +375 -4
  4. package/lib/cjs/sdk.d.ts.map +1 -1
  5. package/lib/cjs/sdk.js +5 -0
  6. package/lib/cjs/sdk.js.map +1 -1
  7. package/lib/cjs/tests/api_tests/ai_conversations.test.d.ts +14 -5
  8. package/lib/cjs/tests/api_tests/ai_conversations.test.d.ts.map +1 -1
  9. package/lib/cjs/tests/api_tests/ai_conversations.test.js +163 -149
  10. package/lib/cjs/tests/api_tests/ai_conversations.test.js.map +1 -1
  11. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.d.ts +22 -0
  12. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.d.ts.map +1 -0
  13. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.js +518 -0
  14. package/lib/cjs/tests/api_tests/ai_conversations_agent_message.test.js.map +1 -0
  15. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts +6 -5
  16. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -1
  17. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js +135 -73
  18. package/lib/cjs/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
  19. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -5
  20. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -1
  21. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js +240 -174
  22. package/lib/cjs/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -1
  23. package/lib/cjs/tests/api_tests/availability_block_buffer.test.d.ts +22 -0
  24. package/lib/cjs/tests/api_tests/availability_block_buffer.test.d.ts.map +1 -0
  25. package/lib/cjs/tests/api_tests/availability_block_buffer.test.js +311 -0
  26. package/lib/cjs/tests/api_tests/availability_block_buffer.test.js.map +1 -0
  27. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts +6 -5
  28. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -1
  29. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js +235 -192
  30. package/lib/cjs/tests/api_tests/beluga_manual_sync.test.js.map +1 -1
  31. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -5
  32. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
  33. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js +351 -264
  34. package/lib/cjs/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
  35. package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts +22 -0
  36. package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts.map +1 -0
  37. package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.js +506 -0
  38. package/lib/cjs/tests/api_tests/booking_prevent_upcoming_duplicate.test.js.map +1 -0
  39. package/lib/cjs/tests/api_tests/bulk_assignment.test.d.ts +16 -5
  40. package/lib/cjs/tests/api_tests/bulk_assignment.test.d.ts.map +1 -1
  41. package/lib/cjs/tests/api_tests/bulk_assignment.test.js +336 -243
  42. package/lib/cjs/tests/api_tests/bulk_assignment.test.js.map +1 -1
  43. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.d.ts +13 -5
  44. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.d.ts.map +1 -1
  45. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js +131 -108
  46. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  47. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts +15 -5
  48. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -1
  49. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js +240 -252
  50. package/lib/cjs/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -1
  51. package/lib/cjs/tests/api_tests/chats_analytics.test.d.ts +14 -5
  52. package/lib/cjs/tests/api_tests/chats_analytics.test.d.ts.map +1 -1
  53. package/lib/cjs/tests/api_tests/chats_analytics.test.js +190 -189
  54. package/lib/cjs/tests/api_tests/chats_analytics.test.js.map +1 -1
  55. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.d.ts +23 -5
  56. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.d.ts.map +1 -1
  57. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.js +121 -118
  58. package/lib/cjs/tests/api_tests/concurrent_build_threads.test.js.map +1 -1
  59. package/lib/cjs/tests/api_tests/configurations_public_read.test.d.ts +21 -5
  60. package/lib/cjs/tests/api_tests/configurations_public_read.test.d.ts.map +1 -1
  61. package/lib/cjs/tests/api_tests/configurations_public_read.test.js +235 -119
  62. package/lib/cjs/tests/api_tests/configurations_public_read.test.js.map +1 -1
  63. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts +7 -0
  64. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts.map +1 -0
  65. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.js +356 -0
  66. package/lib/cjs/tests/api_tests/copied_form_response_no_enduser_sync.test.js.map +1 -0
  67. package/lib/cjs/tests/api_tests/create_note_action.test.d.ts +18 -5
  68. package/lib/cjs/tests/api_tests/create_note_action.test.d.ts.map +1 -1
  69. package/lib/cjs/tests/api_tests/create_note_action.test.js +218 -173
  70. package/lib/cjs/tests/api_tests/create_note_action.test.js.map +1 -1
  71. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.d.ts +17 -4
  72. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.d.ts.map +1 -1
  73. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.js +144 -205
  74. package/lib/cjs/tests/api_tests/create_user_notifications_trigger.test.js.map +1 -1
  75. package/lib/cjs/tests/api_tests/custom_aggregation.test.d.ts +15 -5
  76. package/lib/cjs/tests/api_tests/custom_aggregation.test.d.ts.map +1 -1
  77. package/lib/cjs/tests/api_tests/custom_aggregation.test.js +284 -223
  78. package/lib/cjs/tests/api_tests/custom_aggregation.test.js.map +1 -1
  79. package/lib/cjs/tests/api_tests/database_cascade_delete.test.d.ts +13 -5
  80. package/lib/cjs/tests/api_tests/database_cascade_delete.test.d.ts.map +1 -1
  81. package/lib/cjs/tests/api_tests/database_cascade_delete.test.js +218 -242
  82. package/lib/cjs/tests/api_tests/database_cascade_delete.test.js.map +1 -1
  83. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts +21 -5
  84. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts.map +1 -1
  85. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.js +168 -112
  86. package/lib/cjs/tests/api_tests/dont_sync_to_elation_form_submission.test.js.map +1 -1
  87. package/lib/cjs/tests/api_tests/elation_user_id.test.d.ts +17 -5
  88. package/lib/cjs/tests/api_tests/elation_user_id.test.d.ts.map +1 -1
  89. package/lib/cjs/tests/api_tests/elation_user_id.test.js +121 -54
  90. package/lib/cjs/tests/api_tests/elation_user_id.test.js.map +1 -1
  91. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts +3 -1
  92. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -1
  93. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js +3 -1
  94. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js.map +1 -1
  95. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts +3 -1
  96. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -1
  97. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js +3 -1
  98. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -1
  99. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts +6 -5
  100. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -1
  101. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js +193 -143
  102. package/lib/cjs/tests/api_tests/file_download_unicode_names.test.js.map +1 -1
  103. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.d.ts +7 -0
  104. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.d.ts.map +1 -0
  105. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.js +532 -0
  106. package/lib/cjs/tests/api_tests/form_intake_email_normalization.test.js.map +1 -0
  107. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts +25 -5
  108. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -1
  109. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js +395 -366
  110. package/lib/cjs/tests/api_tests/form_submitted_trigger.test.js.map +1 -1
  111. package/lib/cjs/tests/api_tests/form_translations.test.d.ts +6 -5
  112. package/lib/cjs/tests/api_tests/form_translations.test.d.ts.map +1 -1
  113. package/lib/cjs/tests/api_tests/form_translations.test.js +269 -189
  114. package/lib/cjs/tests/api_tests/form_translations.test.js.map +1 -1
  115. package/lib/cjs/tests/api_tests/form_vital_reading.test.d.ts +7 -0
  116. package/lib/cjs/tests/api_tests/form_vital_reading.test.d.ts.map +1 -0
  117. package/lib/cjs/tests/api_tests/form_vital_reading.test.js +461 -0
  118. package/lib/cjs/tests/api_tests/form_vital_reading.test.js.map +1 -0
  119. package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts +29 -5
  120. package/lib/cjs/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -1
  121. package/lib/cjs/tests/api_tests/formsort_header_auth.test.js +179 -162
  122. package/lib/cjs/tests/api_tests/formsort_header_auth.test.js.map +1 -1
  123. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts +12 -6
  124. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -1
  125. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js +98 -84
  126. package/lib/cjs/tests/api_tests/gcal_sync_retry.test.js.map +1 -1
  127. package/lib/cjs/tests/api_tests/get_some_projection.test.d.ts +20 -5
  128. package/lib/cjs/tests/api_tests/get_some_projection.test.d.ts.map +1 -1
  129. package/lib/cjs/tests/api_tests/get_some_projection.test.js +342 -298
  130. package/lib/cjs/tests/api_tests/get_some_projection.test.js.map +1 -1
  131. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.d.ts +6 -5
  132. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.d.ts.map +1 -1
  133. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.js +294 -223
  134. package/lib/cjs/tests/api_tests/group_event_attendee_self_update.test.js.map +1 -1
  135. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts +6 -5
  136. package/lib/cjs/tests/api_tests/integrations_redacted.test.d.ts.map +1 -1
  137. package/lib/cjs/tests/api_tests/integrations_redacted.test.js +307 -213
  138. package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -1
  139. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.d.ts +6 -5
  140. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.d.ts.map +1 -1
  141. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.js +179 -178
  142. package/lib/cjs/tests/api_tests/journey_delete_cancels_actions.test.js.map +1 -1
  143. package/lib/cjs/tests/api_tests/journey_statistics_cache.test.d.ts +26 -0
  144. package/lib/cjs/tests/api_tests/journey_statistics_cache.test.d.ts.map +1 -0
  145. package/lib/cjs/tests/api_tests/journey_statistics_cache.test.js +232 -0
  146. package/lib/cjs/tests/api_tests/journey_statistics_cache.test.js.map +1 -0
  147. package/lib/cjs/tests/api_tests/journey_step_manual_count.test.d.ts +34 -0
  148. package/lib/cjs/tests/api_tests/journey_step_manual_count.test.d.ts.map +1 -0
  149. package/lib/cjs/tests/api_tests/journey_step_manual_count.test.js +243 -0
  150. package/lib/cjs/tests/api_tests/journey_step_manual_count.test.js.map +1 -0
  151. package/lib/cjs/tests/api_tests/load_team_chat.test.d.ts.map +1 -1
  152. package/lib/cjs/tests/api_tests/load_team_chat.test.js +181 -124
  153. package/lib/cjs/tests/api_tests/load_team_chat.test.js.map +1 -1
  154. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.d.ts +24 -5
  155. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.d.ts.map +1 -1
  156. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.js +261 -227
  157. package/lib/cjs/tests/api_tests/load_threads_autobuild.test.js.map +1 -1
  158. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts +9 -1
  159. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
  160. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js +118 -32
  161. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js.map +1 -1
  162. package/lib/cjs/tests/api_tests/managed_content_file_access.test.d.ts +15 -5
  163. package/lib/cjs/tests/api_tests/managed_content_file_access.test.d.ts.map +1 -1
  164. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js +285 -311
  165. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  166. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts +20 -5
  167. package/lib/cjs/tests/api_tests/mdb_sort.test.d.ts.map +1 -1
  168. package/lib/cjs/tests/api_tests/mdb_sort.test.js +361 -305
  169. package/lib/cjs/tests/api_tests/mdb_sort.test.js.map +1 -1
  170. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.d.ts +27 -0
  171. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.d.ts.map +1 -0
  172. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.js +395 -0
  173. package/lib/cjs/tests/api_tests/mdi_manual_sync.test.js.map +1 -0
  174. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.d.ts +6 -5
  175. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.d.ts.map +1 -1
  176. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.js +259 -209
  177. package/lib/cjs/tests/api_tests/mdi_trigger_refill.test.js.map +1 -1
  178. package/lib/cjs/tests/api_tests/mdi_webhooks.test.d.ts +12 -5
  179. package/lib/cjs/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  180. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js +67 -61
  181. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  182. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.d.ts +23 -14
  183. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.d.ts.map +1 -1
  184. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.js +258 -306
  185. package/lib/cjs/tests/api_tests/message_assignment_trigger.test.js.map +1 -1
  186. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts +6 -5
  187. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -1
  188. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js +301 -238
  189. package/lib/cjs/tests/api_tests/metriport_push_form_response.test.js.map +1 -1
  190. package/lib/cjs/tests/api_tests/organization_api_keys.test.d.ts.map +1 -1
  191. package/lib/cjs/tests/api_tests/organization_api_keys.test.js +226 -59
  192. package/lib/cjs/tests/api_tests/organization_api_keys.test.js.map +1 -1
  193. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts +19 -5
  194. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -1
  195. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js +335 -222
  196. package/lib/cjs/tests/api_tests/organization_settings_duplicates.test.js.map +1 -1
  197. package/lib/cjs/tests/api_tests/organization_signup.test.d.ts +3 -1
  198. package/lib/cjs/tests/api_tests/organization_signup.test.d.ts.map +1 -1
  199. package/lib/cjs/tests/api_tests/organization_signup.test.js +221 -52
  200. package/lib/cjs/tests/api_tests/organization_signup.test.js.map +1 -1
  201. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -1
  202. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js +109 -1
  203. package/lib/cjs/tests/api_tests/out_of_office_endpoint.test.js.map +1 -1
  204. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.d.ts +6 -6
  205. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.d.ts.map +1 -1
  206. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.js +309 -361
  207. package/lib/cjs/tests/api_tests/outbound_chat_sent_trigger.test.js.map +1 -1
  208. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.d.ts +6 -5
  209. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  210. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js +246 -165
  211. package/lib/cjs/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  212. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts +15 -5
  213. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -1
  214. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js +130 -47
  215. package/lib/cjs/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -1
  216. package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.d.ts +7 -0
  217. package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.d.ts.map +1 -0
  218. package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.js +571 -0
  219. package/lib/cjs/tests/api_tests/phone_embed_leave_message.test.js.map +1 -0
  220. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.d.ts +6 -5
  221. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.d.ts.map +1 -1
  222. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.js +180 -132
  223. package/lib/cjs/tests/api_tests/phone_tree_enduser_condition.test.js.map +1 -1
  224. package/lib/cjs/tests/api_tests/programs.test.d.ts +3 -1
  225. package/lib/cjs/tests/api_tests/programs.test.d.ts.map +1 -1
  226. package/lib/cjs/tests/api_tests/programs.test.js +474 -51
  227. package/lib/cjs/tests/api_tests/programs.test.js.map +1 -1
  228. package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.d.ts +7 -0
  229. package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.d.ts.map +1 -0
  230. package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.js +733 -0
  231. package/lib/cjs/tests/api_tests/public_form_case_insensitive_match.test.js.map +1 -0
  232. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +3 -1
  233. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -1
  234. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +3 -1
  235. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -1
  236. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts +10 -5
  237. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -1
  238. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js +401 -282
  239. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -1
  240. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +3 -1
  241. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -1
  242. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js +3 -1
  243. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -1
  244. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts +9 -5
  245. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -1
  246. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js +228 -211
  247. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -1
  248. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +13 -8
  249. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -1
  250. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js +270 -254
  251. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  252. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +16 -6
  253. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -1
  254. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +167 -142
  255. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -1
  256. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +10 -5
  257. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -1
  258. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js +296 -221
  259. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -1
  260. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +12 -5
  261. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -1
  262. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +221 -216
  263. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -1
  264. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +11 -5
  265. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  266. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +300 -203
  267. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  268. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts +11 -5
  269. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -1
  270. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js +415 -275
  271. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  272. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts +11 -5
  273. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -1
  274. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js +347 -228
  275. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  276. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts +3 -1
  277. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -1
  278. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js +3 -1
  279. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -1
  280. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts +3 -1
  281. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -1
  282. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js +3 -1
  283. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -1
  284. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -1
  285. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +424 -39
  286. package/lib/cjs/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -1
  287. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +18 -7
  288. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -1
  289. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js +164 -75
  290. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -1
  291. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +15 -9
  292. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -1
  293. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +99 -102
  294. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -1
  295. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts +11 -5
  296. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -1
  297. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js +132 -89
  298. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -1
  299. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +12 -5
  300. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -1
  301. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +190 -138
  302. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -1
  303. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.d.ts +18 -16
  304. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.d.ts.map +1 -1
  305. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js +164 -124
  306. package/lib/cjs/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
  307. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +3 -1
  308. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -1
  309. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +3 -1
  310. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -1
  311. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  312. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +122 -2
  313. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  314. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +11 -5
  315. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -1
  316. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js +288 -274
  317. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -1
  318. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts +17 -10
  319. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -1
  320. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js +173 -138
  321. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -1
  322. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -5
  323. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -1
  324. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +310 -265
  325. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -1
  326. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts +9 -5
  327. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -1
  328. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js +108 -83
  329. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js.map +1 -1
  330. package/lib/cjs/tests/api_tests/session_for_join_link.test.d.ts +10 -0
  331. package/lib/cjs/tests/api_tests/session_for_join_link.test.d.ts.map +1 -0
  332. package/lib/cjs/tests/api_tests/session_for_join_link.test.js +147 -0
  333. package/lib/cjs/tests/api_tests/session_for_join_link.test.js.map +1 -0
  334. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -1
  335. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js +191 -88
  336. package/lib/cjs/tests/api_tests/set_fields_order_templates.test.js.map +1 -1
  337. package/lib/cjs/tests/api_tests/stedi_approval.test.d.ts +6 -5
  338. package/lib/cjs/tests/api_tests/stedi_approval.test.d.ts.map +1 -1
  339. package/lib/cjs/tests/api_tests/stedi_approval.test.js +206 -137
  340. package/lib/cjs/tests/api_tests/stedi_approval.test.js.map +1 -1
  341. package/lib/cjs/tests/api_tests/stripe_checkout_items.test.d.ts +17 -0
  342. package/lib/cjs/tests/api_tests/stripe_checkout_items.test.d.ts.map +1 -0
  343. package/lib/cjs/tests/api_tests/stripe_checkout_items.test.js +219 -0
  344. package/lib/cjs/tests/api_tests/stripe_checkout_items.test.js.map +1 -0
  345. package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.d.ts +5 -0
  346. package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.d.ts.map +1 -0
  347. package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.js +396 -0
  348. package/lib/cjs/tests/api_tests/stripe_multiple_customer_ids.test.js.map +1 -0
  349. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.d.ts +7 -0
  350. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.d.ts.map +1 -0
  351. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.js +344 -0
  352. package/lib/cjs/tests/api_tests/ticket_stage_archive.test.js.map +1 -0
  353. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -5
  354. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -1
  355. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js +165 -149
  356. package/lib/cjs/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -1
  357. package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts +3 -1
  358. package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts.map +1 -1
  359. package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.js +3 -1
  360. package/lib/cjs/tests/api_tests/tickets_bulk_assign_from_queue.test.js.map +1 -1
  361. package/lib/cjs/tests/api_tests/totp_mfa.test.d.ts.map +1 -1
  362. package/lib/cjs/tests/api_tests/totp_mfa.test.js +37 -31
  363. package/lib/cjs/tests/api_tests/totp_mfa.test.js.map +1 -1
  364. package/lib/cjs/tests/api_tests/translations.test.d.ts +6 -5
  365. package/lib/cjs/tests/api_tests/translations.test.d.ts.map +1 -1
  366. package/lib/cjs/tests/api_tests/translations.test.js +104 -75
  367. package/lib/cjs/tests/api_tests/translations.test.js.map +1 -1
  368. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts +3 -1
  369. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -1
  370. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js +3 -1
  371. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js.map +1 -1
  372. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.d.ts +21 -4
  373. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.d.ts.map +1 -1
  374. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.js +238 -370
  375. package/lib/cjs/tests/api_tests/trigger_set_fields_date_difference.test.js.map +1 -1
  376. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts +3 -1
  377. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -1
  378. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js +3 -1
  379. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -1
  380. package/lib/cjs/tests/api_tests/user_preferences.test.d.ts +30 -0
  381. package/lib/cjs/tests/api_tests/user_preferences.test.d.ts.map +1 -0
  382. package/lib/cjs/tests/api_tests/user_preferences.test.js +279 -0
  383. package/lib/cjs/tests/api_tests/user_preferences.test.js.map +1 -0
  384. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts +3 -1
  385. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -1
  386. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js +3 -1
  387. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js.map +1 -1
  388. package/lib/cjs/tests/api_tests/vitl_push.test.d.ts +7 -0
  389. package/lib/cjs/tests/api_tests/vitl_push.test.d.ts.map +1 -0
  390. package/lib/cjs/tests/api_tests/vitl_push.test.js +341 -0
  391. package/lib/cjs/tests/api_tests/vitl_push.test.js.map +1 -0
  392. package/lib/cjs/tests/api_tests/webhook_error_handling.test.d.ts +17 -5
  393. package/lib/cjs/tests/api_tests/webhook_error_handling.test.d.ts.map +1 -1
  394. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js +204 -195
  395. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  396. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts +15 -5
  397. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -1
  398. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js +154 -179
  399. package/lib/cjs/tests/api_tests/webhook_raw_json_number.test.js.map +1 -1
  400. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts +6 -5
  401. package/lib/cjs/tests/api_tests/welle_partner_token.test.d.ts.map +1 -1
  402. package/lib/cjs/tests/api_tests/welle_partner_token.test.js +393 -251
  403. package/lib/cjs/tests/api_tests/welle_partner_token.test.js.map +1 -1
  404. package/lib/cjs/tests/setup_isolated.d.ts +55 -0
  405. package/lib/cjs/tests/setup_isolated.d.ts.map +1 -1
  406. package/lib/cjs/tests/setup_isolated.js +119 -1
  407. package/lib/cjs/tests/setup_isolated.js.map +1 -1
  408. package/lib/cjs/tests/tests.d.ts.map +1 -1
  409. package/lib/cjs/tests/tests.js +385 -535
  410. package/lib/cjs/tests/tests.js.map +1 -1
  411. package/lib/cjs/tests/unit_tests/date_string_validation.test.d.ts +2 -0
  412. package/lib/cjs/tests/unit_tests/date_string_validation.test.d.ts.map +1 -0
  413. package/lib/cjs/tests/unit_tests/date_string_validation.test.js +112 -0
  414. package/lib/cjs/tests/unit_tests/date_string_validation.test.js.map +1 -0
  415. package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.d.ts +2 -0
  416. package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.d.ts.map +1 -0
  417. package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.js +201 -0
  418. package/lib/cjs/tests/unit_tests/isolated_suite_discovery.test.js.map +1 -0
  419. package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.d.ts +3 -0
  420. package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.d.ts.map +1 -0
  421. package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.js +120 -0
  422. package/lib/cjs/tests/unit_tests/programs_conditional_logic.test.js.map +1 -0
  423. package/lib/cjs/tests/webhooks_tests.js +44 -34
  424. package/lib/cjs/tests/webhooks_tests.js.map +1 -1
  425. package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  426. package/lib/esm/sdk.d.ts +375 -4
  427. package/lib/esm/sdk.d.ts.map +1 -1
  428. package/lib/esm/sdk.js +5 -0
  429. package/lib/esm/sdk.js.map +1 -1
  430. package/lib/esm/tests/api_tests/ai_conversations.test.d.ts +14 -5
  431. package/lib/esm/tests/api_tests/ai_conversations.test.d.ts.map +1 -1
  432. package/lib/esm/tests/api_tests/ai_conversations.test.js +161 -148
  433. package/lib/esm/tests/api_tests/ai_conversations.test.js.map +1 -1
  434. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.d.ts +22 -0
  435. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.d.ts.map +1 -0
  436. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.js +510 -0
  437. package/lib/esm/tests/api_tests/ai_conversations_agent_message.test.js.map +1 -0
  438. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts +6 -5
  439. package/lib/esm/tests/api_tests/appointment_link_expiration.test.d.ts.map +1 -1
  440. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js +132 -71
  441. package/lib/esm/tests/api_tests/appointment_link_expiration.test.js.map +1 -1
  442. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts +6 -5
  443. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.d.ts.map +1 -1
  444. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js +238 -173
  445. package/lib/esm/tests/api_tests/appointment_no_showed_trigger.test.js.map +1 -1
  446. package/lib/esm/tests/api_tests/availability_block_buffer.test.d.ts +22 -0
  447. package/lib/esm/tests/api_tests/availability_block_buffer.test.d.ts.map +1 -0
  448. package/lib/esm/tests/api_tests/availability_block_buffer.test.js +306 -0
  449. package/lib/esm/tests/api_tests/availability_block_buffer.test.js.map +1 -0
  450. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts +6 -5
  451. package/lib/esm/tests/api_tests/beluga_manual_sync.test.d.ts.map +1 -1
  452. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js +232 -190
  453. package/lib/esm/tests/api_tests/beluga_manual_sync.test.js.map +1 -1
  454. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts +6 -5
  455. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.d.ts.map +1 -1
  456. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js +348 -262
  457. package/lib/esm/tests/api_tests/beluga_trigger_refill.test.js.map +1 -1
  458. package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts +22 -0
  459. package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.d.ts.map +1 -0
  460. package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.js +501 -0
  461. package/lib/esm/tests/api_tests/booking_prevent_upcoming_duplicate.test.js.map +1 -0
  462. package/lib/esm/tests/api_tests/bulk_assignment.test.d.ts +16 -5
  463. package/lib/esm/tests/api_tests/bulk_assignment.test.d.ts.map +1 -1
  464. package/lib/esm/tests/api_tests/bulk_assignment.test.js +333 -241
  465. package/lib/esm/tests/api_tests/bulk_assignment.test.js.map +1 -1
  466. package/lib/esm/tests/api_tests/calendar_event_references_update.test.d.ts +13 -5
  467. package/lib/esm/tests/api_tests/calendar_event_references_update.test.d.ts.map +1 -1
  468. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js +129 -107
  469. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  470. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts +15 -5
  471. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.d.ts.map +1 -1
  472. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js +238 -251
  473. package/lib/esm/tests/api_tests/calendar_event_webhook_template.test.js.map +1 -1
  474. package/lib/esm/tests/api_tests/chats_analytics.test.d.ts +14 -5
  475. package/lib/esm/tests/api_tests/chats_analytics.test.d.ts.map +1 -1
  476. package/lib/esm/tests/api_tests/chats_analytics.test.js +188 -188
  477. package/lib/esm/tests/api_tests/chats_analytics.test.js.map +1 -1
  478. package/lib/esm/tests/api_tests/concurrent_build_threads.test.d.ts +23 -5
  479. package/lib/esm/tests/api_tests/concurrent_build_threads.test.d.ts.map +1 -1
  480. package/lib/esm/tests/api_tests/concurrent_build_threads.test.js +119 -117
  481. package/lib/esm/tests/api_tests/concurrent_build_threads.test.js.map +1 -1
  482. package/lib/esm/tests/api_tests/configurations_public_read.test.d.ts +21 -5
  483. package/lib/esm/tests/api_tests/configurations_public_read.test.d.ts.map +1 -1
  484. package/lib/esm/tests/api_tests/configurations_public_read.test.js +233 -118
  485. package/lib/esm/tests/api_tests/configurations_public_read.test.js.map +1 -1
  486. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts +7 -0
  487. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.d.ts.map +1 -0
  488. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.js +351 -0
  489. package/lib/esm/tests/api_tests/copied_form_response_no_enduser_sync.test.js.map +1 -0
  490. package/lib/esm/tests/api_tests/create_note_action.test.d.ts +18 -5
  491. package/lib/esm/tests/api_tests/create_note_action.test.d.ts.map +1 -1
  492. package/lib/esm/tests/api_tests/create_note_action.test.js +216 -172
  493. package/lib/esm/tests/api_tests/create_note_action.test.js.map +1 -1
  494. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.d.ts +17 -4
  495. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.d.ts.map +1 -1
  496. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.js +141 -203
  497. package/lib/esm/tests/api_tests/create_user_notifications_trigger.test.js.map +1 -1
  498. package/lib/esm/tests/api_tests/custom_aggregation.test.d.ts +15 -5
  499. package/lib/esm/tests/api_tests/custom_aggregation.test.d.ts.map +1 -1
  500. package/lib/esm/tests/api_tests/custom_aggregation.test.js +282 -222
  501. package/lib/esm/tests/api_tests/custom_aggregation.test.js.map +1 -1
  502. package/lib/esm/tests/api_tests/database_cascade_delete.test.d.ts +13 -5
  503. package/lib/esm/tests/api_tests/database_cascade_delete.test.d.ts.map +1 -1
  504. package/lib/esm/tests/api_tests/database_cascade_delete.test.js +216 -241
  505. package/lib/esm/tests/api_tests/database_cascade_delete.test.js.map +1 -1
  506. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts +21 -5
  507. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.d.ts.map +1 -1
  508. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.js +165 -110
  509. package/lib/esm/tests/api_tests/dont_sync_to_elation_form_submission.test.js.map +1 -1
  510. package/lib/esm/tests/api_tests/elation_user_id.test.d.ts +17 -5
  511. package/lib/esm/tests/api_tests/elation_user_id.test.d.ts.map +1 -1
  512. package/lib/esm/tests/api_tests/elation_user_id.test.js +119 -53
  513. package/lib/esm/tests/api_tests/elation_user_id.test.js.map +1 -1
  514. package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts +3 -1
  515. package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -1
  516. package/lib/esm/tests/api_tests/enduser_fields_sync.test.js +2 -0
  517. package/lib/esm/tests/api_tests/enduser_fields_sync.test.js.map +1 -1
  518. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts +3 -1
  519. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -1
  520. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js +2 -0
  521. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -1
  522. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts +6 -5
  523. package/lib/esm/tests/api_tests/file_download_unicode_names.test.d.ts.map +1 -1
  524. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js +190 -141
  525. package/lib/esm/tests/api_tests/file_download_unicode_names.test.js.map +1 -1
  526. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.d.ts +7 -0
  527. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.d.ts.map +1 -0
  528. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.js +527 -0
  529. package/lib/esm/tests/api_tests/form_intake_email_normalization.test.js.map +1 -0
  530. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts +25 -5
  531. package/lib/esm/tests/api_tests/form_submitted_trigger.test.d.ts.map +1 -1
  532. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js +393 -365
  533. package/lib/esm/tests/api_tests/form_submitted_trigger.test.js.map +1 -1
  534. package/lib/esm/tests/api_tests/form_translations.test.d.ts +6 -5
  535. package/lib/esm/tests/api_tests/form_translations.test.d.ts.map +1 -1
  536. package/lib/esm/tests/api_tests/form_translations.test.js +268 -189
  537. package/lib/esm/tests/api_tests/form_translations.test.js.map +1 -1
  538. package/lib/esm/tests/api_tests/form_vital_reading.test.d.ts +7 -0
  539. package/lib/esm/tests/api_tests/form_vital_reading.test.d.ts.map +1 -0
  540. package/lib/esm/tests/api_tests/form_vital_reading.test.js +456 -0
  541. package/lib/esm/tests/api_tests/form_vital_reading.test.js.map +1 -0
  542. package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts +29 -5
  543. package/lib/esm/tests/api_tests/formsort_header_auth.test.d.ts.map +1 -1
  544. package/lib/esm/tests/api_tests/formsort_header_auth.test.js +177 -161
  545. package/lib/esm/tests/api_tests/formsort_header_auth.test.js.map +1 -1
  546. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts +12 -6
  547. package/lib/esm/tests/api_tests/gcal_sync_retry.test.d.ts.map +1 -1
  548. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js +96 -83
  549. package/lib/esm/tests/api_tests/gcal_sync_retry.test.js.map +1 -1
  550. package/lib/esm/tests/api_tests/get_some_projection.test.d.ts +20 -5
  551. package/lib/esm/tests/api_tests/get_some_projection.test.d.ts.map +1 -1
  552. package/lib/esm/tests/api_tests/get_some_projection.test.js +339 -296
  553. package/lib/esm/tests/api_tests/get_some_projection.test.js.map +1 -1
  554. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.d.ts +6 -5
  555. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.d.ts.map +1 -1
  556. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.js +292 -222
  557. package/lib/esm/tests/api_tests/group_event_attendee_self_update.test.js.map +1 -1
  558. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts +6 -5
  559. package/lib/esm/tests/api_tests/integrations_redacted.test.d.ts.map +1 -1
  560. package/lib/esm/tests/api_tests/integrations_redacted.test.js +304 -211
  561. package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -1
  562. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.d.ts +6 -5
  563. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.d.ts.map +1 -1
  564. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.js +177 -154
  565. package/lib/esm/tests/api_tests/journey_delete_cancels_actions.test.js.map +1 -1
  566. package/lib/esm/tests/api_tests/journey_statistics_cache.test.d.ts +26 -0
  567. package/lib/esm/tests/api_tests/journey_statistics_cache.test.d.ts.map +1 -0
  568. package/lib/esm/tests/api_tests/journey_statistics_cache.test.js +227 -0
  569. package/lib/esm/tests/api_tests/journey_statistics_cache.test.js.map +1 -0
  570. package/lib/esm/tests/api_tests/journey_step_manual_count.test.d.ts +34 -0
  571. package/lib/esm/tests/api_tests/journey_step_manual_count.test.d.ts.map +1 -0
  572. package/lib/esm/tests/api_tests/journey_step_manual_count.test.js +238 -0
  573. package/lib/esm/tests/api_tests/journey_step_manual_count.test.js.map +1 -0
  574. package/lib/esm/tests/api_tests/load_team_chat.test.d.ts.map +1 -1
  575. package/lib/esm/tests/api_tests/load_team_chat.test.js +181 -124
  576. package/lib/esm/tests/api_tests/load_team_chat.test.js.map +1 -1
  577. package/lib/esm/tests/api_tests/load_threads_autobuild.test.d.ts +24 -5
  578. package/lib/esm/tests/api_tests/load_threads_autobuild.test.d.ts.map +1 -1
  579. package/lib/esm/tests/api_tests/load_threads_autobuild.test.js +259 -226
  580. package/lib/esm/tests/api_tests/load_threads_autobuild.test.js.map +1 -1
  581. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts +9 -1
  582. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -1
  583. package/lib/esm/tests/api_tests/load_threads_care_team.test.js +117 -31
  584. package/lib/esm/tests/api_tests/load_threads_care_team.test.js.map +1 -1
  585. package/lib/esm/tests/api_tests/managed_content_file_access.test.d.ts +15 -5
  586. package/lib/esm/tests/api_tests/managed_content_file_access.test.d.ts.map +1 -1
  587. package/lib/esm/tests/api_tests/managed_content_file_access.test.js +283 -287
  588. package/lib/esm/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  589. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts +20 -5
  590. package/lib/esm/tests/api_tests/mdb_sort.test.d.ts.map +1 -1
  591. package/lib/esm/tests/api_tests/mdb_sort.test.js +358 -303
  592. package/lib/esm/tests/api_tests/mdb_sort.test.js.map +1 -1
  593. package/lib/esm/tests/api_tests/mdi_manual_sync.test.d.ts +27 -0
  594. package/lib/esm/tests/api_tests/mdi_manual_sync.test.d.ts.map +1 -0
  595. package/lib/esm/tests/api_tests/mdi_manual_sync.test.js +390 -0
  596. package/lib/esm/tests/api_tests/mdi_manual_sync.test.js.map +1 -0
  597. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.d.ts +6 -5
  598. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.d.ts.map +1 -1
  599. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.js +257 -208
  600. package/lib/esm/tests/api_tests/mdi_trigger_refill.test.js.map +1 -1
  601. package/lib/esm/tests/api_tests/mdi_webhooks.test.d.ts +12 -5
  602. package/lib/esm/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  603. package/lib/esm/tests/api_tests/mdi_webhooks.test.js +65 -60
  604. package/lib/esm/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  605. package/lib/esm/tests/api_tests/message_assignment_trigger.test.d.ts +23 -14
  606. package/lib/esm/tests/api_tests/message_assignment_trigger.test.d.ts.map +1 -1
  607. package/lib/esm/tests/api_tests/message_assignment_trigger.test.js +256 -305
  608. package/lib/esm/tests/api_tests/message_assignment_trigger.test.js.map +1 -1
  609. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts +6 -5
  610. package/lib/esm/tests/api_tests/metriport_push_form_response.test.d.ts.map +1 -1
  611. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js +298 -236
  612. package/lib/esm/tests/api_tests/metriport_push_form_response.test.js.map +1 -1
  613. package/lib/esm/tests/api_tests/organization_api_keys.test.d.ts.map +1 -1
  614. package/lib/esm/tests/api_tests/organization_api_keys.test.js +226 -59
  615. package/lib/esm/tests/api_tests/organization_api_keys.test.js.map +1 -1
  616. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts +19 -5
  617. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.d.ts.map +1 -1
  618. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js +332 -220
  619. package/lib/esm/tests/api_tests/organization_settings_duplicates.test.js.map +1 -1
  620. package/lib/esm/tests/api_tests/organization_signup.test.d.ts +3 -1
  621. package/lib/esm/tests/api_tests/organization_signup.test.d.ts.map +1 -1
  622. package/lib/esm/tests/api_tests/organization_signup.test.js +220 -51
  623. package/lib/esm/tests/api_tests/organization_signup.test.js.map +1 -1
  624. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.d.ts.map +1 -1
  625. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js +109 -1
  626. package/lib/esm/tests/api_tests/out_of_office_endpoint.test.js.map +1 -1
  627. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.d.ts +6 -6
  628. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.d.ts.map +1 -1
  629. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.js +308 -361
  630. package/lib/esm/tests/api_tests/outbound_chat_sent_trigger.test.js.map +1 -1
  631. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.d.ts +6 -5
  632. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.d.ts.map +1 -1
  633. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js +243 -163
  634. package/lib/esm/tests/api_tests/phone_calls_cold_transfer.test.js.map +1 -1
  635. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts +15 -5
  636. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.d.ts.map +1 -1
  637. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js +127 -45
  638. package/lib/esm/tests/api_tests/phone_calls_conference_hold.test.js.map +1 -1
  639. package/lib/esm/tests/api_tests/phone_embed_leave_message.test.d.ts +7 -0
  640. package/lib/esm/tests/api_tests/phone_embed_leave_message.test.d.ts.map +1 -0
  641. package/lib/esm/tests/api_tests/phone_embed_leave_message.test.js +566 -0
  642. package/lib/esm/tests/api_tests/phone_embed_leave_message.test.js.map +1 -0
  643. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.d.ts +6 -5
  644. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.d.ts.map +1 -1
  645. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.js +177 -130
  646. package/lib/esm/tests/api_tests/phone_tree_enduser_condition.test.js.map +1 -1
  647. package/lib/esm/tests/api_tests/programs.test.d.ts +3 -1
  648. package/lib/esm/tests/api_tests/programs.test.d.ts.map +1 -1
  649. package/lib/esm/tests/api_tests/programs.test.js +473 -50
  650. package/lib/esm/tests/api_tests/programs.test.js.map +1 -1
  651. package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.d.ts +7 -0
  652. package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.d.ts.map +1 -0
  653. package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.js +728 -0
  654. package/lib/esm/tests/api_tests/public_form_case_insensitive_match.test.js.map +1 -0
  655. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +3 -1
  656. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -1
  657. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +2 -0
  658. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -1
  659. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts +10 -5
  660. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -1
  661. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js +399 -281
  662. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -1
  663. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +3 -1
  664. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -1
  665. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js +2 -0
  666. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -1
  667. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts +9 -5
  668. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -1
  669. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js +225 -209
  670. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -1
  671. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +13 -8
  672. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -1
  673. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js +268 -253
  674. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  675. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +16 -6
  676. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -1
  677. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +165 -141
  678. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -1
  679. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +10 -5
  680. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -1
  681. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js +294 -220
  682. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -1
  683. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +12 -5
  684. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -1
  685. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +219 -215
  686. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -1
  687. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts +11 -5
  688. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.d.ts.map +1 -1
  689. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +298 -202
  690. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  691. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts +11 -5
  692. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -1
  693. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js +413 -274
  694. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  695. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts +11 -5
  696. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -1
  697. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js +345 -227
  698. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  699. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts +3 -1
  700. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -1
  701. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js +2 -0
  702. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -1
  703. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts +3 -1
  704. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -1
  705. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js +2 -0
  706. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -1
  707. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.d.ts.map +1 -1
  708. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js +424 -39
  709. package/lib/esm/tests/api_tests/security/formsort_webhook_auth_field_lock.test.js.map +1 -1
  710. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +18 -7
  711. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -1
  712. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js +162 -74
  713. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -1
  714. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +15 -9
  715. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -1
  716. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +96 -100
  717. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -1
  718. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts +11 -5
  719. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -1
  720. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js +129 -87
  721. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -1
  722. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +12 -5
  723. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -1
  724. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +187 -136
  725. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -1
  726. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.d.ts +18 -16
  727. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.d.ts.map +1 -1
  728. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js +162 -123
  729. package/lib/esm/tests/api_tests/security/register_business_id_injection.test.js.map +1 -1
  730. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +3 -1
  731. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -1
  732. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +2 -0
  733. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -1
  734. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  735. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +122 -2
  736. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  737. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +11 -5
  738. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -1
  739. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js +285 -272
  740. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -1
  741. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts +17 -10
  742. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -1
  743. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js +171 -137
  744. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -1
  745. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -5
  746. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -1
  747. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +307 -263
  748. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -1
  749. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts +9 -5
  750. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -1
  751. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js +105 -81
  752. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js.map +1 -1
  753. package/lib/esm/tests/api_tests/session_for_join_link.test.d.ts +10 -0
  754. package/lib/esm/tests/api_tests/session_for_join_link.test.d.ts.map +1 -0
  755. package/lib/esm/tests/api_tests/session_for_join_link.test.js +142 -0
  756. package/lib/esm/tests/api_tests/session_for_join_link.test.js.map +1 -0
  757. package/lib/esm/tests/api_tests/set_fields_order_templates.test.d.ts.map +1 -1
  758. package/lib/esm/tests/api_tests/set_fields_order_templates.test.js +191 -88
  759. package/lib/esm/tests/api_tests/set_fields_order_templates.test.js.map +1 -1
  760. package/lib/esm/tests/api_tests/stedi_approval.test.d.ts +6 -5
  761. package/lib/esm/tests/api_tests/stedi_approval.test.d.ts.map +1 -1
  762. package/lib/esm/tests/api_tests/stedi_approval.test.js +204 -136
  763. package/lib/esm/tests/api_tests/stedi_approval.test.js.map +1 -1
  764. package/lib/esm/tests/api_tests/stripe_checkout_items.test.d.ts +17 -0
  765. package/lib/esm/tests/api_tests/stripe_checkout_items.test.d.ts.map +1 -0
  766. package/lib/esm/tests/api_tests/stripe_checkout_items.test.js +214 -0
  767. package/lib/esm/tests/api_tests/stripe_checkout_items.test.js.map +1 -0
  768. package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.d.ts +5 -0
  769. package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.d.ts.map +1 -0
  770. package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.js +388 -0
  771. package/lib/esm/tests/api_tests/stripe_multiple_customer_ids.test.js.map +1 -0
  772. package/lib/esm/tests/api_tests/ticket_stage_archive.test.d.ts +7 -0
  773. package/lib/esm/tests/api_tests/ticket_stage_archive.test.d.ts.map +1 -0
  774. package/lib/esm/tests/api_tests/ticket_stage_archive.test.js +339 -0
  775. package/lib/esm/tests/api_tests/ticket_stage_archive.test.js.map +1 -0
  776. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts +6 -5
  777. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.d.ts.map +1 -1
  778. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js +162 -147
  779. package/lib/esm/tests/api_tests/tickets_bulk_assign_care_team.test.js.map +1 -1
  780. package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts +3 -1
  781. package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.d.ts.map +1 -1
  782. package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.js +2 -0
  783. package/lib/esm/tests/api_tests/tickets_bulk_assign_from_queue.test.js.map +1 -1
  784. package/lib/esm/tests/api_tests/totp_mfa.test.d.ts.map +1 -1
  785. package/lib/esm/tests/api_tests/totp_mfa.test.js +37 -31
  786. package/lib/esm/tests/api_tests/totp_mfa.test.js.map +1 -1
  787. package/lib/esm/tests/api_tests/translations.test.d.ts +6 -5
  788. package/lib/esm/tests/api_tests/translations.test.d.ts.map +1 -1
  789. package/lib/esm/tests/api_tests/translations.test.js +102 -74
  790. package/lib/esm/tests/api_tests/translations.test.js.map +1 -1
  791. package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts +3 -1
  792. package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -1
  793. package/lib/esm/tests/api_tests/trigger_contains_matching.test.js +2 -0
  794. package/lib/esm/tests/api_tests/trigger_contains_matching.test.js.map +1 -1
  795. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.d.ts +21 -4
  796. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.d.ts.map +1 -1
  797. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.js +236 -369
  798. package/lib/esm/tests/api_tests/trigger_set_fields_date_difference.test.js.map +1 -1
  799. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts +3 -1
  800. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -1
  801. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js +2 -0
  802. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -1
  803. package/lib/esm/tests/api_tests/user_preferences.test.d.ts +30 -0
  804. package/lib/esm/tests/api_tests/user_preferences.test.d.ts.map +1 -0
  805. package/lib/esm/tests/api_tests/user_preferences.test.js +274 -0
  806. package/lib/esm/tests/api_tests/user_preferences.test.js.map +1 -0
  807. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts +3 -1
  808. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -1
  809. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js +2 -0
  810. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js.map +1 -1
  811. package/lib/esm/tests/api_tests/vitl_push.test.d.ts +7 -0
  812. package/lib/esm/tests/api_tests/vitl_push.test.d.ts.map +1 -0
  813. package/lib/esm/tests/api_tests/vitl_push.test.js +333 -0
  814. package/lib/esm/tests/api_tests/vitl_push.test.js.map +1 -0
  815. package/lib/esm/tests/api_tests/webhook_error_handling.test.d.ts +17 -5
  816. package/lib/esm/tests/api_tests/webhook_error_handling.test.d.ts.map +1 -1
  817. package/lib/esm/tests/api_tests/webhook_error_handling.test.js +202 -194
  818. package/lib/esm/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  819. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts +15 -5
  820. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.d.ts.map +1 -1
  821. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js +152 -178
  822. package/lib/esm/tests/api_tests/webhook_raw_json_number.test.js.map +1 -1
  823. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts +6 -5
  824. package/lib/esm/tests/api_tests/welle_partner_token.test.d.ts.map +1 -1
  825. package/lib/esm/tests/api_tests/welle_partner_token.test.js +391 -250
  826. package/lib/esm/tests/api_tests/welle_partner_token.test.js.map +1 -1
  827. package/lib/esm/tests/setup_isolated.d.ts +55 -0
  828. package/lib/esm/tests/setup_isolated.d.ts.map +1 -1
  829. package/lib/esm/tests/setup_isolated.js +114 -0
  830. package/lib/esm/tests/setup_isolated.js.map +1 -1
  831. package/lib/esm/tests/tests.d.ts.map +1 -1
  832. package/lib/esm/tests/tests.js +386 -536
  833. package/lib/esm/tests/tests.js.map +1 -1
  834. package/lib/esm/tests/unit_tests/date_string_validation.test.d.ts +2 -0
  835. package/lib/esm/tests/unit_tests/date_string_validation.test.d.ts.map +1 -0
  836. package/lib/esm/tests/unit_tests/date_string_validation.test.js +108 -0
  837. package/lib/esm/tests/unit_tests/date_string_validation.test.js.map +1 -0
  838. package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.d.ts +2 -0
  839. package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.d.ts.map +1 -0
  840. package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.js +174 -0
  841. package/lib/esm/tests/unit_tests/isolated_suite_discovery.test.js.map +1 -0
  842. package/lib/esm/tests/unit_tests/programs_conditional_logic.test.d.ts +3 -0
  843. package/lib/esm/tests/unit_tests/programs_conditional_logic.test.d.ts.map +1 -0
  844. package/lib/esm/tests/unit_tests/programs_conditional_logic.test.js +117 -0
  845. package/lib/esm/tests/unit_tests/programs_conditional_logic.test.js.map +1 -0
  846. package/lib/esm/tests/webhooks_tests.js +44 -34
  847. package/lib/esm/tests/webhooks_tests.js.map +1 -1
  848. package/lib/tsconfig.tsbuildinfo +1 -1
  849. package/package.json +12 -11
  850. package/src/sdk.ts +14 -2
  851. package/src/tests/api_tests/ai_conversations.test.ts +170 -138
  852. package/src/tests/api_tests/ai_conversations_agent_message.test.ts +491 -0
  853. package/src/tests/api_tests/appointment_link_expiration.test.ts +94 -35
  854. package/src/tests/api_tests/appointment_no_showed_trigger.test.ts +181 -128
  855. package/src/tests/api_tests/availability_block_buffer.test.ts +286 -0
  856. package/src/tests/api_tests/beluga_manual_sync.test.ts +103 -53
  857. package/src/tests/api_tests/beluga_trigger_refill.test.ts +131 -46
  858. package/src/tests/api_tests/booking_prevent_upcoming_duplicate.test.ts +541 -0
  859. package/src/tests/api_tests/bulk_assignment.test.ts +307 -220
  860. package/src/tests/api_tests/calendar_event_references_update.test.ts +97 -54
  861. package/src/tests/api_tests/calendar_event_webhook_template.test.ts +198 -158
  862. package/src/tests/api_tests/chats_analytics.test.ts +161 -123
  863. package/src/tests/api_tests/concurrent_build_threads.test.ts +80 -69
  864. package/src/tests/api_tests/configurations_public_read.test.ts +154 -67
  865. package/src/tests/api_tests/copied_form_response_no_enduser_sync.test.ts +307 -0
  866. package/src/tests/api_tests/create_note_action.test.ts +149 -70
  867. package/src/tests/api_tests/create_user_notifications_trigger.test.ts +116 -144
  868. package/src/tests/api_tests/custom_aggregation.test.ts +163 -92
  869. package/src/tests/api_tests/database_cascade_delete.test.ts +101 -87
  870. package/src/tests/api_tests/dont_sync_to_elation_form_submission.test.ts +122 -51
  871. package/src/tests/api_tests/elation_user_id.test.ts +105 -42
  872. package/src/tests/api_tests/enduser_fields_sync.test.ts +4 -0
  873. package/src/tests/api_tests/enduser_observations_auto_review.test.ts +4 -0
  874. package/src/tests/api_tests/file_download_unicode_names.test.ts +171 -122
  875. package/src/tests/api_tests/form_intake_email_normalization.test.ts +489 -0
  876. package/src/tests/api_tests/form_submitted_trigger.test.ts +152 -86
  877. package/src/tests/api_tests/form_translations.test.ts +117 -48
  878. package/src/tests/api_tests/form_vital_reading.test.ts +393 -0
  879. package/src/tests/api_tests/formsort_header_auth.test.ts +147 -97
  880. package/src/tests/api_tests/gcal_sync_retry.test.ts +71 -49
  881. package/src/tests/api_tests/get_some_projection.test.ts +333 -169
  882. package/src/tests/api_tests/group_event_attendee_self_update.test.ts +103 -52
  883. package/src/tests/api_tests/integrations_redacted.test.ts +161 -84
  884. package/src/tests/api_tests/journey_delete_cancels_actions.test.ts +93 -64
  885. package/src/tests/api_tests/journey_statistics_cache.test.ts +237 -0
  886. package/src/tests/api_tests/journey_step_manual_count.test.ts +220 -0
  887. package/src/tests/api_tests/load_team_chat.test.ts +62 -6
  888. package/src/tests/api_tests/load_threads_autobuild.test.ts +163 -67
  889. package/src/tests/api_tests/load_threads_care_team.test.ts +107 -0
  890. package/src/tests/api_tests/managed_content_file_access.test.ts +132 -108
  891. package/src/tests/api_tests/mdb_sort.test.ts +247 -161
  892. package/src/tests/api_tests/mdi_manual_sync.test.ts +277 -0
  893. package/src/tests/api_tests/mdi_trigger_refill.test.ts +132 -78
  894. package/src/tests/api_tests/mdi_webhooks.test.ts +52 -22
  895. package/src/tests/api_tests/message_assignment_trigger.test.ts +129 -155
  896. package/src/tests/api_tests/metriport_push_form_response.test.ts +109 -49
  897. package/src/tests/api_tests/organization_api_keys.test.ts +170 -2
  898. package/src/tests/api_tests/organization_settings_duplicates.test.ts +291 -181
  899. package/src/tests/api_tests/organization_signup.test.ts +174 -5
  900. package/src/tests/api_tests/out_of_office_endpoint.test.ts +98 -0
  901. package/src/tests/api_tests/outbound_chat_sent_trigger.test.ts +163 -175
  902. package/src/tests/api_tests/phone_calls_cold_transfer.test.ts +195 -133
  903. package/src/tests/api_tests/phone_calls_conference_hold.test.ts +112 -42
  904. package/src/tests/api_tests/phone_embed_leave_message.test.ts +541 -0
  905. package/src/tests/api_tests/phone_tree_enduser_condition.test.ts +81 -32
  906. package/src/tests/api_tests/programs.test.ts +701 -0
  907. package/src/tests/api_tests/public_form_case_insensitive_match.test.ts +632 -0
  908. package/src/tests/api_tests/security/add-to-journey-foreign-enduserid.test.ts +4 -0
  909. package/src/tests/api_tests/security/ai-conversations-rbac.test.ts +248 -128
  910. package/src/tests/api_tests/security/appointment-reschedule-ownership.test.ts +4 -0
  911. package/src/tests/api_tests/security/automated-actions-process-gate.test.ts +47 -42
  912. package/src/tests/api_tests/security/booking-info-idor-token-mint.test.ts +53 -45
  913. package/src/tests/api_tests/security/cascade-role-rename-cross-tenant.test.ts +100 -73
  914. package/src/tests/api_tests/security/data-sync-redaction-bypass.test.ts +125 -59
  915. package/src/tests/api_tests/security/develop-health-benefit-verification-rbac.test.ts +131 -103
  916. package/src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts +161 -68
  917. package/src/tests/api_tests/security/enduser-cross-create.test.ts +200 -61
  918. package/src/tests/api_tests/security/enduser-write-restrictions.test.ts +179 -61
  919. package/src/tests/api_tests/security/file-link-session-confinement.test.ts +4 -0
  920. package/src/tests/api_tests/security/form-logic-js-execution.test.ts +4 -0
  921. package/src/tests/api_tests/security/formsort_webhook_auth_field_lock.test.ts +225 -0
  922. package/src/tests/api_tests/security/globalunique-conflict-redaction.test.ts +163 -44
  923. package/src/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.ts +78 -70
  924. package/src/tests/api_tests/security/load-inbox-redaction.test.ts +79 -44
  925. package/src/tests/api_tests/security/proxy-image-unauth-ssrf.test.ts +95 -52
  926. package/src/tests/api_tests/security/register_business_id_injection.test.ts +132 -93
  927. package/src/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.ts +4 -0
  928. package/src/tests/api_tests/security/sanitize-user-html-with-iframes.test.ts +127 -0
  929. package/src/tests/api_tests/security/schema-adminonly-enforcement.test.ts +42 -37
  930. package/src/tests/api_tests/security/self-admin-role-assignment.test.ts +92 -54
  931. package/src/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.ts +76 -34
  932. package/src/tests/api_tests/security/webhook-timeout.test.ts +67 -36
  933. package/src/tests/api_tests/session_for_join_link.test.ts +99 -0
  934. package/src/tests/api_tests/set_fields_order_templates.test.ts +94 -9
  935. package/src/tests/api_tests/stedi_approval.test.ts +156 -90
  936. package/src/tests/api_tests/stripe_checkout_items.test.ts +186 -0
  937. package/src/tests/api_tests/ticket_stage_archive.test.ts +314 -0
  938. package/src/tests/api_tests/tickets_bulk_assign_care_team.test.ts +138 -103
  939. package/src/tests/api_tests/tickets_bulk_assign_from_queue.test.ts +4 -0
  940. package/src/tests/api_tests/totp_mfa.test.ts +10 -5
  941. package/src/tests/api_tests/translations.test.ts +69 -46
  942. package/src/tests/api_tests/trigger_contains_matching.test.ts +4 -0
  943. package/src/tests/api_tests/trigger_set_fields_date_difference.test.ts +198 -256
  944. package/src/tests/api_tests/user_logs_restore_deleted.test.ts +4 -0
  945. package/src/tests/api_tests/user_preferences.test.ts +227 -0
  946. package/src/tests/api_tests/vital_review_trigger_action.test.ts +455 -0
  947. package/src/tests/api_tests/vitl_push.test.ts +323 -0
  948. package/src/tests/api_tests/webhook_error_handling.test.ts +121 -60
  949. package/src/tests/api_tests/webhook_raw_json_number.test.ts +127 -109
  950. package/src/tests/api_tests/welle_partner_token.test.ts +217 -90
  951. package/src/tests/setup_isolated.ts +147 -0
  952. package/src/tests/tests.ts +165 -177
  953. package/src/tests/{api_tests → unit_tests}/date_string_validation.test.ts +2 -23
  954. package/src/tests/unit_tests/isolated_suite_discovery.test.ts +178 -0
  955. package/src/tests/unit_tests/programs_conditional_logic.test.ts +189 -0
  956. package/src/tests/webhooks_tests.ts +6 -1
  957. package/test_generated.pdf +0 -0
@@ -36,23 +36,31 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.welle_partner_token_tests = void 0;
39
+ exports.ISOLATED_SUITE = exports.welle_partner_token_tests = exports.welle_partner_token_checks = void 0;
40
40
  require('source-map-support').install();
41
41
  var crypto_1 = require("crypto");
42
42
  var sdk_1 = require("../../sdk");
43
- var testing_1 = require("@tellescope/testing");
44
43
  var constants_1 = require("@tellescope/constants");
45
- var setup_1 = require("../setup");
44
+ var setup_isolated_1 = require("../setup_isolated");
46
45
  var host = process.env.API_URL || 'http://localhost:8080';
46
+ var RAND = function () { return Math.random().toString(36).slice(2, 10); };
47
47
  var SIGNING_KEY = 'welle_test_signing_key_do_not_use_in_prod';
48
48
  var HEALTHIE_PATIENT_ID = '999888777';
49
49
  // decoding needs no dependency: these tests assert on CLAIMS, and verify the signature separately with crypto
50
50
  var decode_jwt_header = function (token) { return (JSON.parse(Buffer.from(token.split('.')[0], 'base64url').toString())); };
51
51
  var decode_jwt_payload = function (token) { return JSON.parse(Buffer.from(token.split('.')[1], 'base64url').toString()); };
52
52
  var sign_hs256 = function (signingInput, key) { return ((0, crypto_1.createHmac)('sha256', key).update(signingInput).digest('base64url')); };
53
- // reset_db does NOT clear integrations, so a crashed prior run can leave a Welle record behind.
54
- // The partner-token branch does findOne({ title: WELLE_TITLE }), so a stray record would make the
55
- // "disconnected" assertion pass spuriously — clear them all rather than only the one we created.
53
+ /**
54
+ * Deletes this tenant's Welle integration records.
55
+ *
56
+ * Scenario 7 below (the "disconnected" rejection) is what needs it: the partner-token branch does
57
+ * findOne({ title: WELLE_TITLE }), so the record has to be gone for that assertion to mean anything.
58
+ * It is deliberately a delete-by-title rather than a delete of the id created here, because
59
+ * add_api_key_integration later creates a second record the same way the product does.
60
+ *
61
+ * On a provisioned tenant it can only ever see this suite's own records — on the shared organization
62
+ * it deleted other suites' Welle integrations too, which is one of the reasons this suite moved.
63
+ */
56
64
  var delete_all_welle_integrations = function (sdk) { return __awaiter(void 0, void 0, void 0, function () {
57
65
  var existing, _i, _a, integration;
58
66
  return __generator(this, function (_b) {
@@ -76,270 +84,404 @@ var delete_all_welle_integrations = function (sdk) { return __awaiter(void 0, vo
76
84
  }
77
85
  });
78
86
  }); };
79
- var welle_partner_token_tests = function (_a) {
80
- var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
81
- return __awaiter(void 0, void 0, void 0, function () {
82
- var suffix, linkedEmail, unlinkedEmail, linkedId, unlinkedId, linked, unlinked, linkedSDK_1, unlinkedSDK_1, issuedToken_1, _b, header, payload, signature, _i, _c, id;
83
- return __generator(this, function (_d) {
84
- switch (_d.label) {
85
- case 0:
86
- (0, testing_1.log_header)("Welle Partner Token Tests");
87
- suffix = Math.random().toString(36).slice(2, 10);
88
- linkedEmail = "welle.linked.".concat(suffix, "@tellescope.com");
89
- unlinkedEmail = "welle.unlinked.".concat(suffix, "@tellescope.com");
90
- linkedId = '';
91
- unlinkedId = '';
92
- _d.label = 1;
93
- case 1:
94
- _d.trys.push([1, , 27, 34]);
95
- return [4 /*yield*/, delete_all_welle_integrations(sdk)];
96
- case 2:
97
- _d.sent();
98
- return [4 /*yield*/, sdk.api.integrations.createOne({
99
- title: constants_1.WELLE_TITLE,
100
- authentication: {
101
- type: 'apiKey',
102
- info: {
103
- access_token: SIGNING_KEY,
104
- refresh_token: 'unused',
105
- scope: '',
106
- token_type: 'Bearer',
107
- expiry_date: 0,
108
- },
87
+ // Welle partner-token (SSO launch) coverage: HS256 claims for a Healthie-linked patient, jti
88
+ // uniqueness, the 60s expiry, the non-forgeable subject, the disconnected / unlinked / staff-session
89
+ // rejections, and the real add_api_key_integration / remove_api_key_integration connect paths.
90
+ //
91
+ // Runs on its own provisioned tenant, so no pre-run "clear every Welle record in the org" reset is
92
+ // needed and no other suite's integrations are ever touched.
93
+ var welle_partner_token_checks = function () { return __awaiter(void 0, void 0, void 0, function () {
94
+ var checks, record, describe, errorMessage, expect_result, expect_rejected, record_sync, tenant, suffix, linkedEmail, unlinkedEmail, linkedId, unlinkedId, sdk_2, sdkNonAdmin_1, businessId_1, linked, unlinked, enduser_session, linkedSDK_1, unlinkedSDK_1, issuedToken_1, sdk, businessId, _i, _a, id, e_1;
95
+ return __generator(this, function (_b) {
96
+ switch (_b.label) {
97
+ case 0:
98
+ checks = [];
99
+ record = function (label, pass, detail) { return checks.push({ label: label, pass: pass, detail: detail }); };
100
+ describe = function (value) {
101
+ if (value === undefined || value === null)
102
+ return String(value);
103
+ var stringified = JSON.stringify(value);
104
+ return stringified === undefined ? String(value) : stringified;
105
+ };
106
+ errorMessage = function (e) { return (typeof (e === null || e === void 0 ? void 0 : e.message) === 'string' && e.message !== '' ? e.message : describe(e)); };
107
+ expect_result = function (label, fn, onResult) { return __awaiter(void 0, void 0, void 0, function () {
108
+ var resolved, e_2, value;
109
+ var _a;
110
+ return __generator(this, function (_b) {
111
+ switch (_b.label) {
112
+ case 0:
113
+ _b.trys.push([0, 2, , 3]);
114
+ _a = {};
115
+ return [4 /*yield*/, fn()];
116
+ case 1:
117
+ resolved = (_a.value = _b.sent(), _a);
118
+ return [3 /*break*/, 3];
119
+ case 2:
120
+ e_2 = _b.sent();
121
+ record(label, false, "rejected instead of resolving: ".concat(errorMessage(e_2)));
122
+ return [2 /*return*/];
123
+ case 3:
124
+ value = resolved.value;
125
+ try {
126
+ record(label, onResult(value), "result=".concat(describe(value)));
127
+ }
128
+ catch (predicateError) {
129
+ record(label, false, "predicate threw on result=".concat(describe(value), ": ").concat(errorMessage(predicateError)));
130
+ }
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ }); };
135
+ expect_rejected = function (label, fn, onError) {
136
+ if (onError === void 0) { onError = function () { return true; }; }
137
+ return __awaiter(void 0, void 0, void 0, function () {
138
+ var rejection, unexpected, e_3;
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0:
142
+ _a.trys.push([0, 2, , 3]);
143
+ return [4 /*yield*/, fn()];
144
+ case 1:
145
+ unexpected = _a.sent();
146
+ record(label, false, "resolved instead of rejecting; result=".concat(describe(unexpected)));
147
+ return [2 /*return*/];
148
+ case 2:
149
+ e_3 = _a.sent();
150
+ rejection = { e: e_3 };
151
+ return [3 /*break*/, 3];
152
+ case 3:
153
+ // Outside the catch on purpose: a predicate that throws here would otherwise escape the suite
154
+ // and, per run_isolated_in_parallel, abort every remaining batch instead of failing one check.
155
+ try {
156
+ record(label, onError(rejection.e), "rejected with ".concat(errorMessage(rejection.e)));
157
+ }
158
+ catch (predicateError) {
159
+ record(label, false, "predicate threw on rejection ".concat(errorMessage(rejection.e), ": ").concat(errorMessage(predicateError)));
160
+ }
161
+ return [2 /*return*/];
162
+ }
163
+ });
164
+ });
165
+ };
166
+ record_sync = function (label, evaluate) {
167
+ try {
168
+ var _a = evaluate(), pass = _a.pass, detail = _a.detail;
169
+ record(label, pass, detail);
170
+ }
171
+ catch (e) {
172
+ record(label, false, "evaluation threw: ".concat(errorMessage(e)));
173
+ }
174
+ };
175
+ suffix = RAND();
176
+ linkedEmail = "welle.linked.".concat(suffix, "@tellescope.com");
177
+ unlinkedEmail = "welle.unlinked.".concat(suffix, "@tellescope.com");
178
+ linkedId = '';
179
+ unlinkedId = '';
180
+ _b.label = 1;
181
+ case 1:
182
+ _b.trys.push([1, , 27, 37]);
183
+ return [4 /*yield*/, (0, setup_isolated_1.setup_isolated_tenant)({
184
+ name: "Welle partner token ".concat(RAND()),
185
+ apiKeys: 0,
186
+ })];
187
+ case 2:
188
+ // the default user spec provisions an Admin plus a non-admin — sdkNonAdmin is the staff session
189
+ // checked below, which must also not be served a partner token
190
+ tenant = _b.sent();
191
+ sdk_2 = tenant.sdk, sdkNonAdmin_1 = tenant.sdkNonAdmin, businessId_1 = tenant.businessId;
192
+ return [4 /*yield*/, sdk_2.api.integrations.createOne({
193
+ title: constants_1.WELLE_TITLE,
194
+ authentication: {
195
+ type: 'apiKey',
196
+ info: {
197
+ access_token: SIGNING_KEY,
198
+ refresh_token: 'unused',
199
+ scope: '',
200
+ token_type: 'Bearer',
201
+ expiry_date: 0,
109
202
  },
110
- })
111
- // an enduser linked to Healthie — eligible for a partner token
112
- ];
113
- case 3:
114
- _d.sent();
115
- return [4 /*yield*/, sdk.api.endusers.createOne({ email: linkedEmail, fname: 'Welle', lname: 'Linked' })];
116
- case 4:
117
- linked = _d.sent();
118
- linkedId = linked.id;
119
- return [4 /*yield*/, sdk.api.endusers.updateOne(linkedId, { references: [{ type: constants_1.HEALTHIE_TITLE, id: HEALTHIE_PATIENT_ID }] }, { replaceObjectFields: true })
120
- // an enduser with no Healthie reference
121
- ];
122
- case 5:
123
- _d.sent();
124
- return [4 /*yield*/, sdk.api.endusers.createOne({ email: unlinkedEmail, fname: 'Welle', lname: 'Unlinked' })];
125
- case 6:
126
- unlinked = _d.sent();
127
- unlinkedId = unlinked.id;
128
- linkedSDK_1 = new sdk_1.EnduserSession({ host: host, businessId: sdk.userInfo.businessId });
129
- return [4 /*yield*/, (0, setup_1.authenticate_enduser_via_token)(sdk, linkedSDK_1, { email: linkedEmail })];
130
- case 7:
131
- _d.sent();
132
- unlinkedSDK_1 = new sdk_1.EnduserSession({ host: host, businessId: sdk.userInfo.businessId });
133
- return [4 /*yield*/, (0, setup_1.authenticate_enduser_via_token)(sdk, unlinkedSDK_1, { email: unlinkedEmail })
134
- // 1) happy path — claims are correct
135
- ];
136
- case 8:
137
- _d.sent();
138
- issuedToken_1 = '';
139
- return [4 /*yield*/, (0, testing_1.async_test)("enduser can mint a Welle partner token with the expected claims", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) {
140
- var _a;
141
- issuedToken_1 = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
142
- if (!issuedToken_1)
143
- return false;
144
- var header = decode_jwt_header(issuedToken_1);
145
- var payload = decode_jwt_payload(issuedToken_1);
146
- var expectedExp = Math.floor(Date.now() / 1000) + 60;
147
- return (header.alg === 'HS256'
148
- && payload.sub === HEALTHIE_PATIENT_ID
149
- && payload.iss === 'tellescope'
150
- && payload.aud === 'welle:sso-launch'
151
- && typeof payload.jti === 'string' && payload.jti.length > 0
152
- && Math.abs(payload.exp - expectedExp) < 10);
153
- } })
154
- // each launch gets a unique jti
155
- ];
156
- case 9:
157
- _d.sent();
158
- // each launch gets a unique jti
159
- return [4 /*yield*/, (0, testing_1.async_test)("back-to-back tokens carry distinct jti values", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) {
160
- var _a;
161
- var second = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
162
- if (!second)
163
- return false;
164
- return decode_jwt_payload(second).jti !== decode_jwt_payload(issuedToken_1).jti;
165
- } })
166
- // optional deep-link target — allowlisted value is echoed as a claim
167
- ];
168
- case 10:
203
+ },
204
+ })
205
+ // an enduser linked to Healthie — eligible for a partner token
206
+ ];
207
+ case 3:
208
+ _b.sent();
209
+ return [4 /*yield*/, sdk_2.api.endusers.createOne({ email: linkedEmail, fname: 'Welle', lname: 'Linked' })];
210
+ case 4:
211
+ linked = _b.sent();
212
+ linkedId = linked.id;
213
+ return [4 /*yield*/, sdk_2.api.endusers.updateOne(linkedId, { references: [{ type: constants_1.HEALTHIE_TITLE, id: HEALTHIE_PATIENT_ID }] }, { replaceObjectFields: true })
214
+ // an enduser with no Healthie reference
215
+ ];
216
+ case 5:
217
+ _b.sent();
218
+ return [4 /*yield*/, sdk_2.api.endusers.createOne({ email: unlinkedEmail, fname: 'Welle', lname: 'Unlinked' })];
219
+ case 6:
220
+ unlinked = _b.sent();
221
+ unlinkedId = unlinked.id;
222
+ enduser_session = function (filter) { return __awaiter(void 0, void 0, void 0, function () {
223
+ var enduserSDK, _a, authToken, enduser;
224
+ return __generator(this, function (_b) {
225
+ switch (_b.label) {
226
+ case 0:
227
+ enduserSDK = new sdk_1.EnduserSession({ host: host, businessId: businessId_1 });
228
+ return [4 /*yield*/, sdk_2.api.endusers.generate_auth_token(filter)];
229
+ case 1:
230
+ _a = _b.sent(), authToken = _a.authToken, enduser = _a.enduser;
231
+ return [4 /*yield*/, enduserSDK.handle_new_session({ authToken: authToken, enduser: enduser })];
232
+ case 2:
233
+ _b.sent();
234
+ return [2 /*return*/, enduserSDK];
235
+ }
236
+ });
237
+ }); };
238
+ return [4 /*yield*/, enduser_session({ email: linkedEmail })];
239
+ case 7:
240
+ linkedSDK_1 = _b.sent();
241
+ return [4 /*yield*/, enduser_session({ email: unlinkedEmail })
242
+ // 1) happy path — claims are correct
243
+ ];
244
+ case 8:
245
+ unlinkedSDK_1 = _b.sent();
246
+ issuedToken_1 = '';
247
+ return [4 /*yield*/, expect_result("enduser can mint a Welle partner token with the expected claims", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (r) {
248
+ var _a;
249
+ issuedToken_1 = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
250
+ if (!issuedToken_1)
251
+ return false;
252
+ var header = decode_jwt_header(issuedToken_1);
253
+ var payload = decode_jwt_payload(issuedToken_1);
254
+ var expectedExp = Math.floor(Date.now() / 1000) + 60;
255
+ return (header.alg === 'HS256'
256
+ && payload.sub === HEALTHIE_PATIENT_ID
257
+ && payload.iss === 'tellescope'
258
+ && payload.aud === 'welle:sso-launch'
259
+ && typeof payload.jti === 'string' && payload.jti.length > 0
260
+ && Math.abs(payload.exp - expectedExp) < 10);
261
+ })
169
262
  // each launch gets a unique jti
170
- _d.sent();
171
- // optional deep-link target — allowlisted value is echoed as a claim
172
- return [4 /*yield*/, (0, testing_1.async_test)("target: 'plan' is included as a target claim", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token', target: 'plan' }); }, { onResult: function (r) {
173
- var _a;
174
- return (!!((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token) && decode_jwt_payload(r.data.token).target === 'plan');
175
- } })
176
- // omitted target → no target claim at all (the happy-path token above was minted without one)
177
- ];
178
- case 11:
263
+ ];
264
+ case 9:
265
+ _b.sent();
266
+ // each launch gets a unique jti
267
+ return [4 /*yield*/, expect_result("back-to-back tokens carry distinct jti values", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (r) {
268
+ var _a;
269
+ var second = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
270
+ if (!second || !issuedToken_1)
271
+ return false;
272
+ return decode_jwt_payload(second).jti !== decode_jwt_payload(issuedToken_1).jti;
273
+ })
179
274
  // optional deep-link target — allowlisted value is echoed as a claim
180
- _d.sent();
275
+ ];
276
+ case 10:
277
+ // each launch gets a unique jti
278
+ _b.sent();
279
+ // optional deep-link target — allowlisted value is echoed as a claim
280
+ return [4 /*yield*/, expect_result("target: 'plan' is included as a target claim", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token', target: 'plan' }); }, function (r) { var _a; return !!((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token) && decode_jwt_payload(r.data.token).target === 'plan'; })
181
281
  // omitted target → no target claim at all (the happy-path token above was minted without one)
182
- (0, testing_1.assert)(decode_jwt_payload(issuedToken_1).target === undefined, "token minted without a target has a target claim", "token minted without a target has no target claim");
183
- // non-allowlisted target is rejected at the API boundary by schema validation
184
- return [4 /*yield*/, (0, testing_1.async_test)("invalid target is rejected by schema validation", function () { return linkedSDK_1.api.integrations.proxy_read({
185
- integration: constants_1.WELLE_TITLE,
186
- type: 'partner-redirect-token',
187
- target: 'admin',
188
- }); }, { shouldError: true, onError: function () { return true; } })
189
- // 2) the signature is real — verifies against the stored signing key, and only that key
190
- ];
191
- case 12:
192
- // non-allowlisted target is rejected at the API boundary by schema validation
193
- _d.sent();
194
- _b = issuedToken_1.split('.'), header = _b[0], payload = _b[1], signature = _b[2];
195
- (0, testing_1.assert)(sign_hs256("".concat(header, ".").concat(payload), SIGNING_KEY) === signature, "token signature does not verify against the stored Welle signing key", "token is signed with the organization's Welle signing key");
196
- (0, testing_1.assert)(sign_hs256("".concat(header, ".").concat(payload), "".concat(SIGNING_KEY, "_wrong")) !== signature, "token signature verified against the WRONG key", "token signature does not verify against a different key");
197
- // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
198
- return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot mint a token for another enduser by passing id", function () { return linkedSDK_1.api.integrations.proxy_read({
199
- integration: constants_1.WELLE_TITLE,
200
- type: 'partner-redirect-token',
201
- id: unlinkedId,
202
- }); }, { onResult: function (r) {
203
- var _a;
204
- return (!!((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token) && decode_jwt_payload(r.data.token).sub === HEALTHIE_PATIENT_ID);
205
- } })
206
- // 4) an enduser with no Healthie reference gets no token
207
- ];
208
- case 13:
209
- // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
210
- _d.sent();
211
- // 4) an enduser with no Healthie reference gets no token
212
- return [4 /*yield*/, (0, testing_1.async_test)("enduser without a Healthie reference cannot mint a token", function () { return unlinkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser has no Healthie reference'); } })
213
- // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
214
- ];
215
- case 14:
282
+ ];
283
+ case 11:
284
+ // optional deep-link target — allowlisted value is echoed as a claim
285
+ _b.sent();
286
+ // omitted target → no target claim at all (the happy-path token above was minted without one)
287
+ record_sync("token minted without a target has no target claim", function () { return ({
288
+ pass: !!issuedToken_1 && decode_jwt_payload(issuedToken_1).target === undefined,
289
+ detail: issuedToken_1
290
+ ? "target=".concat(describe(decode_jwt_payload(issuedToken_1).target))
291
+ : 'no token was minted above, so the claim could not be read',
292
+ }); });
293
+ // non-allowlisted target is rejected at the API boundary by schema validation
294
+ return [4 /*yield*/, expect_rejected("invalid target is rejected by schema validation", function () { return linkedSDK_1.api.integrations.proxy_read({
295
+ integration: constants_1.WELLE_TITLE,
296
+ type: 'partner-redirect-token',
297
+ target: 'admin',
298
+ }); })
299
+ // 2) the signature is real — verifies against the stored signing key, and only that key
300
+ ];
301
+ case 12:
302
+ // non-allowlisted target is rejected at the API boundary by schema validation
303
+ _b.sent();
304
+ // 2) the signature is real — verifies against the stored signing key, and only that key
305
+ record_sync("token is signed with the organization's Welle signing key", function () {
306
+ if (!issuedToken_1)
307
+ return { pass: false, detail: 'no token was minted above, so the signature could not be checked' };
308
+ var _a = issuedToken_1.split('.'), header = _a[0], payload = _a[1], signature = _a[2];
309
+ return {
310
+ pass: sign_hs256("".concat(header, ".").concat(payload), SIGNING_KEY) === signature,
311
+ detail: "signature=".concat(describe(signature)),
312
+ };
313
+ });
314
+ record_sync("token signature does not verify against a different key", function () {
315
+ if (!issuedToken_1)
316
+ return { pass: false, detail: 'no token was minted above, so the signature could not be checked' };
317
+ var _a = issuedToken_1.split('.'), header = _a[0], payload = _a[1], signature = _a[2];
318
+ return {
319
+ pass: sign_hs256("".concat(header, ".").concat(payload), "".concat(SIGNING_KEY, "_wrong")) !== signature,
320
+ detail: "signature=".concat(describe(signature)),
321
+ };
322
+ });
323
+ // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
324
+ return [4 /*yield*/, expect_result("enduser cannot mint a token for another enduser by passing id", function () { return linkedSDK_1.api.integrations.proxy_read({
325
+ integration: constants_1.WELLE_TITLE,
326
+ type: 'partner-redirect-token',
327
+ id: unlinkedId,
328
+ }); }, function (r) { var _a; return !!((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token) && decode_jwt_payload(r.data.token).sub === HEALTHIE_PATIENT_ID; })
216
329
  // 4) an enduser with no Healthie reference gets no token
217
- _d.sent();
218
- // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
219
- return [4 /*yield*/, (0, testing_1.async_test)("admin user session is not issued a Welle partner token", function () { return sdk.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); } })];
220
- case 15:
330
+ ];
331
+ case 13:
332
+ // 3) the subject is non-forgeable — the branch ignores the id param and uses the session's enduser
333
+ _b.sent();
334
+ // 4) an enduser with no Healthie reference gets no token
335
+ return [4 /*yield*/, expect_rejected("enduser without a Healthie reference cannot mint a token", function () { return unlinkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser has no Healthie reference'); })
221
336
  // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
222
- _d.sent();
223
- return [4 /*yield*/, (0, testing_1.async_test)("non-admin user session is not issued a Welle partner token", function () { return sdkNonAdmin.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); } })
224
- // 6) no other Welle proxy_read type is reachable by an enduser
225
- ];
226
- case 16:
227
- _d.sent();
228
- // 6) no other Welle proxy_read type is reachable by an enduser
229
- return [4 /*yield*/, (0, testing_1.async_test)("enduser cannot read other Welle proxy types", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'anything-else' }); }, { shouldError: true, onError: function (e) { return (((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser session type not valid for this integration type')); } })
230
- // 7) with the integration disconnected, no token can be minted
231
- ];
232
- case 17:
337
+ ];
338
+ case 14:
339
+ // 4) an enduser with no Healthie reference gets no token
340
+ _b.sent();
341
+ // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
342
+ return [4 /*yield*/, expect_result("admin user session is not issued a Welle partner token", function () { return sdk_2.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); })];
343
+ case 15:
344
+ // 5) staff sessions are not served by this branch (it is enduser-gated) — falls through to an empty result
345
+ _b.sent();
346
+ return [4 /*yield*/, expect_result("non-admin user session is not issued a Welle partner token", function () { return sdkNonAdmin_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (r) { var _a; return !((_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token); })
233
347
  // 6) no other Welle proxy_read type is reachable by an enduser
234
- _d.sent();
235
- // 7) with the integration disconnected, no token can be minted
236
- return [4 /*yield*/, delete_all_welle_integrations(sdk)];
237
- case 18:
348
+ ];
349
+ case 16:
350
+ _b.sent();
351
+ // 6) no other Welle proxy_read type is reachable by an enduser
352
+ return [4 /*yield*/, expect_rejected("enduser cannot read other Welle proxy types", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'anything-else' }); }, function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('enduser session type not valid for this integration type'); })
238
353
  // 7) with the integration disconnected, no token can be minted
239
- _d.sent();
240
- return [4 /*yield*/, (0, testing_1.async_test)("no token is issued once the Welle integration is disconnected", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); } })
241
- // 8) the real connect path — add_api_key_integration, not integrations.createOne.
242
- // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
243
- // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
244
- ];
245
- case 19:
246
- _d.sent();
247
- // 8) the real connect path — add_api_key_integration, not integrations.createOne.
248
- // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
249
- // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
250
- return [4 /*yield*/, (0, testing_1.async_test)("add_api_key_integration connects Welle", function () { return sdk.api.integrations.add_api_key_integration({ integration: constants_1.WELLE_TITLE, API_KEY: SIGNING_KEY }); }, { onResult: function (r) { var _a; return ((_a = r === null || r === void 0 ? void 0 : r.integration) === null || _a === void 0 ? void 0 : _a.title) === constants_1.WELLE_TITLE; } })];
251
- case 20:
354
+ ];
355
+ case 17:
356
+ // 6) no other Welle proxy_read type is reachable by an enduser
357
+ _b.sent();
358
+ // 7) with the integration disconnected, no token can be minted
359
+ return [4 /*yield*/, delete_all_welle_integrations(sdk_2)];
360
+ case 18:
361
+ // 7) with the integration disconnected, no token can be minted
362
+ _b.sent();
363
+ return [4 /*yield*/, expect_rejected("no token is issued once the Welle integration is disconnected", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); })
252
364
  // 8) the real connect path — add_api_key_integration, not integrations.createOne.
253
365
  // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
254
366
  // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
255
- _d.sent();
256
- return [4 /*yield*/, (0, testing_1.async_test)("add_api_key_integration sets hasConnectedWelle", function () { return sdk.api.organizations.getOne(sdk.userInfo.businessId); }, { onResult: function (o) { return (o === null || o === void 0 ? void 0 : o.hasConnectedWelle) === true; } })
257
- // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
258
- // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
259
- ];
260
- case 21:
261
- _d.sent();
262
- // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
263
- // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
264
- return [4 /*yield*/, (0, testing_1.async_test)("token minted from the add_api_key_integration credential verifies", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { onResult: function (r) {
265
- var _a;
266
- var token = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
267
- if (!token)
268
- return false;
269
- var _b = token.split('.'), h = _b[0], p = _b[1], s = _b[2];
270
- return sign_hs256("".concat(h, ".").concat(p), SIGNING_KEY) === s
271
- && decode_jwt_payload(token).sub === HEALTHIE_PATIENT_ID;
272
- } })
273
- // 9) the real disconnect path — remove_api_key_integration
274
- ];
275
- case 22:
367
+ ];
368
+ case 19:
369
+ _b.sent();
370
+ // 8) the real connect path — add_api_key_integration, not integrations.createOne.
371
+ // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
372
+ // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
373
+ return [4 /*yield*/, expect_result("add_api_key_integration connects Welle", function () { return sdk_2.api.integrations.add_api_key_integration({ integration: constants_1.WELLE_TITLE, API_KEY: SIGNING_KEY }); }, function (r) { var _a; return ((_a = r === null || r === void 0 ? void 0 : r.integration) === null || _a === void 0 ? void 0 : _a.title) === constants_1.WELLE_TITLE; })];
374
+ case 20:
375
+ // 8) the real connect path — add_api_key_integration, not integrations.createOne.
376
+ // Welle has no credential-validation branch (an opaque HMAC key has nothing to authenticate
377
+ // against), so unlike Canvas/Candid/MDI this endpoint makes no upstream call and is testable.
378
+ _b.sent();
379
+ return [4 /*yield*/, expect_result("add_api_key_integration sets hasConnectedWelle", function () { return sdk_2.api.organizations.getOne(businessId_1); }, function (o) { return (o === null || o === void 0 ? void 0 : o.hasConnectedWelle) === true; })
276
380
  // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
277
381
  // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
278
- _d.sent();
279
- // 9) the real disconnect path — remove_api_key_integration
280
- return [4 /*yield*/, (0, testing_1.async_test)("remove_api_key_integration disconnects Welle", function () { return sdk.api.integrations.remove_api_key_integration({ integration: constants_1.WELLE_TITLE }); }, { onResult: function () { return true; } })
281
- // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
282
- ];
283
- case 23:
382
+ ];
383
+ case 21:
384
+ _b.sent();
385
+ // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
386
+ // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
387
+ return [4 /*yield*/, expect_result("token minted from the add_api_key_integration credential verifies", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (r) {
388
+ var _a;
389
+ var token = (_a = r === null || r === void 0 ? void 0 : r.data) === null || _a === void 0 ? void 0 : _a.token;
390
+ if (!token)
391
+ return false;
392
+ var _b = token.split('.'), h = _b[0], p = _b[1], s = _b[2];
393
+ return sign_hs256("".concat(h, ".").concat(p), SIGNING_KEY) === s
394
+ && decode_jwt_payload(token).sub === HEALTHIE_PATIENT_ID;
395
+ })
284
396
  // 9) the real disconnect path — remove_api_key_integration
285
- _d.sent();
286
- // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
287
- return [4 /*yield*/, (0, testing_1.wait)(undefined, 250)];
288
- case 24:
397
+ ];
398
+ case 22:
399
+ // the key stored by add_api_key_integration must land in the field the proxy_read branch reads
400
+ // (authentication.info.access_token) — minting a verifiable token proves the two paths agree
401
+ _b.sent();
402
+ // 9) the real disconnect path — remove_api_key_integration
403
+ return [4 /*yield*/, expect_result("remove_api_key_integration disconnects Welle", function () { return sdk_2.api.integrations.remove_api_key_integration({ integration: constants_1.WELLE_TITLE }); }, function () { return true; })
289
404
  // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
290
- _d.sent();
291
- return [4 /*yield*/, (0, testing_1.async_test)("remove_api_key_integration clears hasConnectedWelle", function () { return sdk.api.organizations.getOne(sdk.userInfo.businessId); }, { onResult: function (o) { return !(o === null || o === void 0 ? void 0 : o.hasConnectedWelle); } })];
292
- case 25:
293
- _d.sent();
294
- return [4 /*yield*/, (0, testing_1.async_test)("no token is issued after remove_api_key_integration", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, { shouldError: true, onError: function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); } })];
295
- case 26:
296
- _d.sent();
297
- return [3 /*break*/, 34];
298
- case 27: return [4 /*yield*/, delete_all_welle_integrations(sdk).catch(console.error)];
299
- case 28:
300
- _d.sent();
301
- return [4 /*yield*/, sdk.api.organizations.updateOne(sdk.userInfo.businessId, { hasConnectedWelle: false }).catch(console.error)];
302
- case 29:
303
- _d.sent();
304
- _i = 0, _c = [linkedId, unlinkedId];
305
- _d.label = 30;
306
- case 30:
307
- if (!(_i < _c.length)) return [3 /*break*/, 33];
308
- id = _c[_i];
309
- if (!id)
310
- return [3 /*break*/, 32];
311
- return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(console.error)];
312
- case 31:
313
- _d.sent();
314
- _d.label = 32;
315
- case 32:
316
- _i++;
317
- return [3 /*break*/, 30];
318
- case 33: return [7 /*endfinally*/];
319
- case 34: return [2 /*return*/];
320
- }
321
- });
405
+ ];
406
+ case 23:
407
+ // 9) the real disconnect path — remove_api_key_integration
408
+ _b.sent();
409
+ // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
410
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 250); })];
411
+ case 24:
412
+ // the org flag update is fire-and-forget on this handler (res.end() returns before the .then chain)
413
+ _b.sent();
414
+ return [4 /*yield*/, expect_result("remove_api_key_integration clears hasConnectedWelle", function () { return sdk_2.api.organizations.getOne(businessId_1); }, function (o) { return !(o === null || o === void 0 ? void 0 : o.hasConnectedWelle); })];
415
+ case 25:
416
+ _b.sent();
417
+ return [4 /*yield*/, expect_rejected("no token is issued after remove_api_key_integration", function () { return linkedSDK_1.api.integrations.proxy_read({ integration: constants_1.WELLE_TITLE, type: 'partner-redirect-token' }); }, function (e) { return ((e === null || e === void 0 ? void 0 : e.message) || '').includes('Welle integration not found'); })];
418
+ case 26:
419
+ _b.sent();
420
+ return [3 /*break*/, 37];
421
+ case 27:
422
+ if (!tenant) return [3 /*break*/, 36];
423
+ sdk = tenant.sdk, businessId = tenant.businessId;
424
+ return [4 /*yield*/, delete_all_welle_integrations(sdk).catch(console.error)];
425
+ case 28:
426
+ _b.sent();
427
+ return [4 /*yield*/, sdk.api.organizations.updateOne(businessId, { hasConnectedWelle: false }).catch(console.error)];
428
+ case 29:
429
+ _b.sent();
430
+ _i = 0, _a = [linkedId, unlinkedId];
431
+ _b.label = 30;
432
+ case 30:
433
+ if (!(_i < _a.length)) return [3 /*break*/, 33];
434
+ id = _a[_i];
435
+ if (!id)
436
+ return [3 /*break*/, 32];
437
+ return [4 /*yield*/, sdk.api.endusers.deleteOne(id).catch(console.error)];
438
+ case 31:
439
+ _b.sent();
440
+ _b.label = 32;
441
+ case 32:
442
+ _i++;
443
+ return [3 /*break*/, 30];
444
+ case 33:
445
+ _b.trys.push([33, 35, , 36]);
446
+ return [4 /*yield*/, tenant.teardown()];
447
+ case 34:
448
+ _b.sent();
449
+ return [3 /*break*/, 36];
450
+ case 35:
451
+ e_1 = _b.sent();
452
+ console.error('teardown failed', e_1);
453
+ return [3 /*break*/, 36];
454
+ case 36: return [7 /*endfinally*/];
455
+ case 37: return [2 /*return*/, checks];
456
+ }
322
457
  });
323
- };
458
+ }); };
459
+ exports.welle_partner_token_checks = welle_partner_token_checks;
460
+ /** Asserting wrapper, for standalone runs. */
461
+ var welle_partner_token_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
462
+ var _a, _b;
463
+ return __generator(this, function (_c) {
464
+ switch (_c.label) {
465
+ case 0:
466
+ _a = setup_isolated_1.assert_checks;
467
+ _b = ['Welle partner token'];
468
+ return [4 /*yield*/, (0, exports.welle_partner_token_checks)()];
469
+ case 1:
470
+ _a.apply(void 0, _b.concat([_c.sent()]));
471
+ return [2 /*return*/];
472
+ }
473
+ });
474
+ }); };
324
475
  exports.welle_partner_token_tests = welle_partner_token_tests;
476
+ /** Enrolls this suite in the auto-discovered parallel pool — see run_discovered_isolated_suites. */
477
+ exports.ISOLATED_SUITE = {
478
+ name: 'Welle partner token',
479
+ run: exports.welle_partner_token_checks,
480
+ };
325
481
  // Allow running this test file independently
326
482
  if (require.main === module) {
327
- var sdk_2 = new sdk_1.Session({ host: host });
328
- var sdkNonAdmin_1 = new sdk_1.Session({ host: host });
329
- var runTests = function () { return __awaiter(void 0, void 0, void 0, function () {
330
- return __generator(this, function (_a) {
331
- switch (_a.label) {
332
- case 0: return [4 /*yield*/, (0, setup_1.setup_tests)(sdk_2, sdkNonAdmin_1)];
333
- case 1:
334
- _a.sent();
335
- return [4 /*yield*/, (0, exports.welle_partner_token_tests)({ sdk: sdk_2, sdkNonAdmin: sdkNonAdmin_1 })];
336
- case 2:
337
- _a.sent();
338
- return [2 /*return*/];
339
- }
340
- });
341
- }); };
342
- runTests()
483
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
484
+ (0, exports.welle_partner_token_tests)()
343
485
  .then(function () {
344
486
  console.log("✅ Welle partner token test suite completed successfully");
345
487
  process.exit(0);