@tellescope/sdk 1.256.15 → 2.0.0-beta.0

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 (299) hide show
  1. package/CLAUDE.md +5 -0
  2. package/env.example +39 -0
  3. package/lib/cjs/enduser.d.ts +1 -0
  4. package/lib/cjs/enduser.d.ts.map +1 -1
  5. package/lib/cjs/sdk.d.ts +5 -3
  6. package/lib/cjs/sdk.d.ts.map +1 -1
  7. package/lib/cjs/sdk.js +1 -0
  8. package/lib/cjs/sdk.js.map +1 -1
  9. package/lib/cjs/session.d.ts +1 -0
  10. package/lib/cjs/session.d.ts.map +1 -1
  11. package/lib/cjs/tests/api_tests/active_patient_count.test.js +1 -1
  12. package/lib/cjs/tests/api_tests/active_patient_count.test.js.map +1 -1
  13. package/lib/cjs/tests/api_tests/appointment_rescheduled_trigger.test.js +1 -1
  14. package/lib/cjs/tests/api_tests/appointment_rescheduled_trigger.test.js.map +1 -1
  15. package/lib/cjs/tests/api_tests/calendar_event_limits.test.js +5 -5
  16. package/lib/cjs/tests/api_tests/calendar_event_limits.test.js.map +1 -1
  17. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js +1 -1
  18. package/lib/cjs/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  19. package/lib/cjs/tests/api_tests/enduser_cross_access_isolation.test.js +1 -1
  20. package/lib/cjs/tests/api_tests/enduser_cross_access_isolation.test.js.map +1 -1
  21. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts +21 -0
  22. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -0
  23. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js +215 -0
  24. package/lib/cjs/tests/api_tests/enduser_fields_sync.test.js.map +1 -0
  25. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.js +6 -6
  26. package/lib/cjs/tests/api_tests/enduser_login_rate_limits.test.js.map +1 -1
  27. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js +3 -3
  28. package/lib/cjs/tests/api_tests/enduser_session_invalidation.test.js.map +1 -1
  29. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts +32 -0
  30. package/lib/cjs/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -0
  31. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js +257 -0
  32. package/lib/cjs/tests/api_tests/load_threads_care_team.test.js.map +1 -0
  33. package/lib/cjs/tests/api_tests/managed_content_enduser_access.test.js +1 -1
  34. package/lib/cjs/tests/api_tests/managed_content_enduser_access.test.js.map +1 -1
  35. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js +1 -1
  36. package/lib/cjs/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  37. package/lib/cjs/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  38. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js +21 -8
  39. package/lib/cjs/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  40. package/lib/cjs/tests/api_tests/nutrition_tracking.test.js +1 -1
  41. package/lib/cjs/tests/api_tests/nutrition_tracking.test.js.map +1 -1
  42. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js +1 -1
  43. package/lib/cjs/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  44. package/lib/cjs/tests/api_tests/programs.test.d.ts +5 -0
  45. package/lib/cjs/tests/api_tests/programs.test.d.ts.map +1 -0
  46. package/lib/cjs/tests/api_tests/programs.test.js +370 -0
  47. package/lib/cjs/tests/api_tests/programs.test.js.map +1 -0
  48. package/lib/cjs/tests/api_tests/programs_trigger_filters.test.d.ts +5 -0
  49. package/lib/cjs/tests/api_tests/programs_trigger_filters.test.d.ts.map +1 -0
  50. package/lib/cjs/tests/api_tests/programs_trigger_filters.test.js +295 -0
  51. package/lib/cjs/tests/api_tests/programs_trigger_filters.test.js.map +1 -0
  52. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js +1 -1
  53. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -1
  54. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +42 -0
  55. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -0
  56. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js +484 -0
  57. package/lib/cjs/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -0
  58. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js +1 -1
  59. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  60. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +1 -1
  61. package/lib/cjs/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  62. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js +1 -1
  63. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  64. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js +1 -1
  65. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  66. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts +5 -0
  67. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -0
  68. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js +357 -0
  69. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -0
  70. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js +2 -2
  71. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -1
  72. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +32 -0
  73. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -0
  74. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +297 -0
  75. package/lib/cjs/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -0
  76. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  77. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +4 -1
  78. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  79. package/lib/cjs/tests/api_tests/templated_message_date_fields.test.d.ts +3 -0
  80. package/lib/cjs/tests/api_tests/templated_message_date_fields.test.d.ts.map +1 -0
  81. package/lib/cjs/tests/api_tests/templated_message_date_fields.test.js +202 -0
  82. package/lib/cjs/tests/api_tests/templated_message_date_fields.test.js.map +1 -0
  83. package/lib/cjs/tests/api_tests/templated_message_link_in_href.test.d.ts +3 -0
  84. package/lib/cjs/tests/api_tests/templated_message_link_in_href.test.d.ts.map +1 -0
  85. package/lib/cjs/tests/api_tests/templated_message_link_in_href.test.js +233 -0
  86. package/lib/cjs/tests/api_tests/templated_message_link_in_href.test.js.map +1 -0
  87. package/lib/cjs/tests/api_tests/templated_message_links.test.d.ts +3 -0
  88. package/lib/cjs/tests/api_tests/templated_message_links.test.d.ts.map +1 -0
  89. package/lib/cjs/tests/api_tests/templated_message_links.test.js +235 -0
  90. package/lib/cjs/tests/api_tests/templated_message_links.test.js.map +1 -0
  91. package/lib/cjs/tests/api_tests/time_tracks.test.js +1 -1
  92. package/lib/cjs/tests/api_tests/time_tracks.test.js.map +1 -1
  93. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts +5 -0
  94. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -0
  95. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js +395 -0
  96. package/lib/cjs/tests/api_tests/trigger_contains_matching.test.js.map +1 -0
  97. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts +5 -0
  98. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -0
  99. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js +471 -0
  100. package/lib/cjs/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -0
  101. package/lib/cjs/tests/api_tests/user_portal_settings.test.js +1 -1
  102. package/lib/cjs/tests/api_tests/user_portal_settings.test.js.map +1 -1
  103. package/lib/cjs/tests/api_tests/validation_behavior_locks.test.d.ts +2 -0
  104. package/lib/cjs/tests/api_tests/validation_behavior_locks.test.d.ts.map +1 -0
  105. package/lib/cjs/tests/api_tests/validation_behavior_locks.test.js +233 -0
  106. package/lib/cjs/tests/api_tests/validation_behavior_locks.test.js.map +1 -0
  107. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts +5 -0
  108. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -0
  109. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js +569 -0
  110. package/lib/cjs/tests/api_tests/vital_review_trigger_action.test.js.map +1 -0
  111. package/lib/cjs/tests/public_endpoint_tests.js +3 -2
  112. package/lib/cjs/tests/public_endpoint_tests.js.map +1 -1
  113. package/lib/cjs/tests/setup.d.ts +16 -0
  114. package/lib/cjs/tests/setup.d.ts.map +1 -1
  115. package/lib/cjs/tests/setup.js +55 -8
  116. package/lib/cjs/tests/setup.js.map +1 -1
  117. package/lib/cjs/tests/setup_isolated.d.ts +9 -0
  118. package/lib/cjs/tests/setup_isolated.d.ts.map +1 -1
  119. package/lib/cjs/tests/setup_isolated.js +23 -2
  120. package/lib/cjs/tests/setup_isolated.js.map +1 -1
  121. package/lib/cjs/tests/socket_tests.d.ts.map +1 -1
  122. package/lib/cjs/tests/socket_tests.js +3 -2
  123. package/lib/cjs/tests/socket_tests.js.map +1 -1
  124. package/lib/cjs/tests/tests.d.ts.map +1 -1
  125. package/lib/cjs/tests/tests.js +182 -166
  126. package/lib/cjs/tests/tests.js.map +1 -1
  127. package/lib/cjs/tests/unit_tests/trigger_title_partials.test.d.ts +3 -0
  128. package/lib/cjs/tests/unit_tests/trigger_title_partials.test.d.ts.map +1 -0
  129. package/lib/cjs/tests/unit_tests/trigger_title_partials.test.js +118 -0
  130. package/lib/cjs/tests/unit_tests/trigger_title_partials.test.js.map +1 -0
  131. package/lib/cjs/tests/webhooks_tests.js +3 -2
  132. package/lib/cjs/tests/webhooks_tests.js.map +1 -1
  133. package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  134. package/lib/esm/enduser.d.ts +2 -0
  135. package/lib/esm/enduser.d.ts.map +1 -1
  136. package/lib/esm/sdk.d.ts +8 -5
  137. package/lib/esm/sdk.d.ts.map +1 -1
  138. package/lib/esm/sdk.js +1 -0
  139. package/lib/esm/sdk.js.map +1 -1
  140. package/lib/esm/session.d.ts +2 -0
  141. package/lib/esm/session.d.ts.map +1 -1
  142. package/lib/esm/tests/api_tests/active_patient_count.test.js +1 -1
  143. package/lib/esm/tests/api_tests/active_patient_count.test.js.map +1 -1
  144. package/lib/esm/tests/api_tests/appointment_rescheduled_trigger.test.js +1 -1
  145. package/lib/esm/tests/api_tests/appointment_rescheduled_trigger.test.js.map +1 -1
  146. package/lib/esm/tests/api_tests/calendar_event_limits.test.js +5 -5
  147. package/lib/esm/tests/api_tests/calendar_event_limits.test.js.map +1 -1
  148. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js +1 -1
  149. package/lib/esm/tests/api_tests/calendar_event_references_update.test.js.map +1 -1
  150. package/lib/esm/tests/api_tests/enduser_cross_access_isolation.test.js +1 -1
  151. package/lib/esm/tests/api_tests/enduser_cross_access_isolation.test.js.map +1 -1
  152. package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts +21 -0
  153. package/lib/esm/tests/api_tests/enduser_fields_sync.test.d.ts.map +1 -0
  154. package/lib/esm/tests/api_tests/enduser_fields_sync.test.js +210 -0
  155. package/lib/esm/tests/api_tests/enduser_fields_sync.test.js.map +1 -0
  156. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.js +7 -7
  157. package/lib/esm/tests/api_tests/enduser_login_rate_limits.test.js.map +1 -1
  158. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js +4 -4
  159. package/lib/esm/tests/api_tests/enduser_session_invalidation.test.js.map +1 -1
  160. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts +32 -0
  161. package/lib/esm/tests/api_tests/load_threads_care_team.test.d.ts.map +1 -0
  162. package/lib/esm/tests/api_tests/load_threads_care_team.test.js +252 -0
  163. package/lib/esm/tests/api_tests/load_threads_care_team.test.js.map +1 -0
  164. package/lib/esm/tests/api_tests/managed_content_enduser_access.test.js +1 -1
  165. package/lib/esm/tests/api_tests/managed_content_enduser_access.test.js.map +1 -1
  166. package/lib/esm/tests/api_tests/managed_content_file_access.test.js +1 -1
  167. package/lib/esm/tests/api_tests/managed_content_file_access.test.js.map +1 -1
  168. package/lib/esm/tests/api_tests/mdi_webhooks.test.d.ts.map +1 -1
  169. package/lib/esm/tests/api_tests/mdi_webhooks.test.js +21 -8
  170. package/lib/esm/tests/api_tests/mdi_webhooks.test.js.map +1 -1
  171. package/lib/esm/tests/api_tests/nutrition_tracking.test.js +1 -1
  172. package/lib/esm/tests/api_tests/nutrition_tracking.test.js.map +1 -1
  173. package/lib/esm/tests/api_tests/openloop_webhooks.test.js +1 -1
  174. package/lib/esm/tests/api_tests/openloop_webhooks.test.js.map +1 -1
  175. package/lib/esm/tests/api_tests/programs.test.d.ts +5 -0
  176. package/lib/esm/tests/api_tests/programs.test.d.ts.map +1 -0
  177. package/lib/esm/tests/api_tests/programs.test.js +365 -0
  178. package/lib/esm/tests/api_tests/programs.test.js.map +1 -0
  179. package/lib/esm/tests/api_tests/programs_trigger_filters.test.d.ts +5 -0
  180. package/lib/esm/tests/api_tests/programs_trigger_filters.test.d.ts.map +1 -0
  181. package/lib/esm/tests/api_tests/programs_trigger_filters.test.js +290 -0
  182. package/lib/esm/tests/api_tests/programs_trigger_filters.test.js.map +1 -0
  183. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js +1 -1
  184. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -1
  185. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts +42 -0
  186. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.d.ts.map +1 -0
  187. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js +479 -0
  188. package/lib/esm/tests/api_tests/security/appointment-reschedule-ownership.test.js.map +1 -0
  189. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js +1 -1
  190. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -1
  191. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js +1 -1
  192. package/lib/esm/tests/api_tests/security/enduser-ai-summary-trust-gate.test.js.map +1 -1
  193. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js +1 -1
  194. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js.map +1 -1
  195. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js +1 -1
  196. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -1
  197. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts +5 -0
  198. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -0
  199. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js +349 -0
  200. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -0
  201. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js +3 -3
  202. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -1
  203. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts +32 -0
  204. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.d.ts.map +1 -0
  205. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js +292 -0
  206. package/lib/esm/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.js.map +1 -0
  207. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -1
  208. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +4 -1
  209. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -1
  210. package/lib/esm/tests/api_tests/templated_message_date_fields.test.d.ts +3 -0
  211. package/lib/esm/tests/api_tests/templated_message_date_fields.test.d.ts.map +1 -0
  212. package/lib/esm/tests/api_tests/templated_message_date_fields.test.js +198 -0
  213. package/lib/esm/tests/api_tests/templated_message_date_fields.test.js.map +1 -0
  214. package/lib/esm/tests/api_tests/templated_message_link_in_href.test.d.ts +3 -0
  215. package/lib/esm/tests/api_tests/templated_message_link_in_href.test.d.ts.map +1 -0
  216. package/lib/esm/tests/api_tests/templated_message_link_in_href.test.js +229 -0
  217. package/lib/esm/tests/api_tests/templated_message_link_in_href.test.js.map +1 -0
  218. package/lib/esm/tests/api_tests/templated_message_links.test.d.ts +3 -0
  219. package/lib/esm/tests/api_tests/templated_message_links.test.d.ts.map +1 -0
  220. package/lib/esm/tests/api_tests/templated_message_links.test.js +231 -0
  221. package/lib/esm/tests/api_tests/templated_message_links.test.js.map +1 -0
  222. package/lib/esm/tests/api_tests/time_tracks.test.js +1 -1
  223. package/lib/esm/tests/api_tests/time_tracks.test.js.map +1 -1
  224. package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts +5 -0
  225. package/lib/esm/tests/api_tests/trigger_contains_matching.test.d.ts.map +1 -0
  226. package/lib/esm/tests/api_tests/trigger_contains_matching.test.js +390 -0
  227. package/lib/esm/tests/api_tests/trigger_contains_matching.test.js.map +1 -0
  228. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts +5 -0
  229. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.d.ts.map +1 -0
  230. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js +466 -0
  231. package/lib/esm/tests/api_tests/user_logs_restore_deleted.test.js.map +1 -0
  232. package/lib/esm/tests/api_tests/user_portal_settings.test.js +1 -1
  233. package/lib/esm/tests/api_tests/user_portal_settings.test.js.map +1 -1
  234. package/lib/esm/tests/api_tests/validation_behavior_locks.test.d.ts +2 -0
  235. package/lib/esm/tests/api_tests/validation_behavior_locks.test.d.ts.map +1 -0
  236. package/lib/esm/tests/api_tests/validation_behavior_locks.test.js +229 -0
  237. package/lib/esm/tests/api_tests/validation_behavior_locks.test.js.map +1 -0
  238. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts +5 -0
  239. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.d.ts.map +1 -0
  240. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js +564 -0
  241. package/lib/esm/tests/api_tests/vital_review_trigger_action.test.js.map +1 -0
  242. package/lib/esm/tests/public_endpoint_tests.js +3 -2
  243. package/lib/esm/tests/public_endpoint_tests.js.map +1 -1
  244. package/lib/esm/tests/setup.d.ts +16 -0
  245. package/lib/esm/tests/setup.d.ts.map +1 -1
  246. package/lib/esm/tests/setup.js +53 -7
  247. package/lib/esm/tests/setup.js.map +1 -1
  248. package/lib/esm/tests/setup_isolated.d.ts +9 -0
  249. package/lib/esm/tests/setup_isolated.d.ts.map +1 -1
  250. package/lib/esm/tests/setup_isolated.js +21 -1
  251. package/lib/esm/tests/setup_isolated.js.map +1 -1
  252. package/lib/esm/tests/socket_tests.d.ts.map +1 -1
  253. package/lib/esm/tests/socket_tests.js +3 -2
  254. package/lib/esm/tests/socket_tests.js.map +1 -1
  255. package/lib/esm/tests/tests.d.ts.map +1 -1
  256. package/lib/esm/tests/tests.js +182 -166
  257. package/lib/esm/tests/tests.js.map +1 -1
  258. package/lib/esm/tests/unit_tests/trigger_title_partials.test.d.ts +3 -0
  259. package/lib/esm/tests/unit_tests/trigger_title_partials.test.d.ts.map +1 -0
  260. package/lib/esm/tests/unit_tests/trigger_title_partials.test.js +115 -0
  261. package/lib/esm/tests/unit_tests/trigger_title_partials.test.js.map +1 -0
  262. package/lib/esm/tests/webhooks_tests.js +3 -2
  263. package/lib/esm/tests/webhooks_tests.js.map +1 -1
  264. package/lib/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +22 -19
  266. package/src/sdk.ts +5 -1
  267. package/src/tests/api_tests/active_patient_count.test.ts +1 -1
  268. package/src/tests/api_tests/appointment_rescheduled_trigger.test.ts +1 -1
  269. package/src/tests/api_tests/calendar_event_references_update.test.ts +1 -1
  270. package/src/tests/api_tests/enduser_cross_access_isolation.test.ts +1 -1
  271. package/src/tests/api_tests/enduser_login_rate_limits.test.ts +7 -7
  272. package/src/tests/api_tests/enduser_session_invalidation.test.ts +4 -4
  273. package/src/tests/api_tests/managed_content_enduser_access.test.ts +1 -1
  274. package/src/tests/api_tests/managed_content_file_access.test.ts +1 -1
  275. package/src/tests/api_tests/mdi_webhooks.test.ts +9 -0
  276. package/src/tests/api_tests/nutrition_tracking.test.ts +1 -1
  277. package/src/tests/api_tests/openloop_webhooks.test.ts +1 -1
  278. package/src/tests/api_tests/security/allowed-paths-confinement.test.ts +1 -1
  279. package/src/tests/api_tests/security/booking-info-idor-token-mint.test.ts +1 -1
  280. package/src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts +1 -1
  281. package/src/tests/api_tests/security/enduser-cross-create.test.ts +1 -1
  282. package/src/tests/api_tests/security/enduser-write-restrictions.test.ts +1 -1
  283. package/src/tests/api_tests/security/file-link-session-confinement.test.ts +291 -0
  284. package/src/tests/api_tests/security/invite-user-enumeration.test.ts +3 -3
  285. package/src/tests/api_tests/security/rich-text-answer-sanitized-on-write.test.ts +197 -0
  286. package/src/tests/api_tests/security/sanitize-user-html-with-iframes.test.ts +4 -1
  287. package/src/tests/api_tests/templated_message_date_fields.test.ts +146 -0
  288. package/src/tests/api_tests/templated_message_links.test.ts +192 -0
  289. package/src/tests/api_tests/time_tracks.test.ts +1 -1
  290. package/src/tests/api_tests/user_portal_settings.test.ts +1 -1
  291. package/src/tests/api_tests/validation_behavior_locks.test.ts +204 -0
  292. package/src/tests/public_endpoint_tests.ts +3 -2
  293. package/src/tests/setup.ts +43 -7
  294. package/src/tests/setup_isolated.ts +10 -0
  295. package/src/tests/socket_tests.ts +3 -2
  296. package/src/tests/tests.ts +12 -2
  297. package/src/tests/webhooks_tests.ts +4 -2
  298. package/test_generated.pdf +0 -0
  299. package/tsconfig.cjs.json +17 -0
@@ -0,0 +1,479 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ require('source-map-support').install();
49
+ import { assert_checks, setup_isolated_tenant, } from "../../setup_isolated";
50
+ import { EnduserSession } from "../../../sdk";
51
+ var host = process.env.API_URL || 'http://localhost:8080';
52
+ var RAND = function () { return Math.random().toString(36).slice(2, 10); };
53
+ var userAttendeeIds = function (event) { var _a; return ((_a = event === null || event === void 0 ? void 0 : event.attendees) !== null && _a !== void 0 ? _a : []).filter(function (a) { return a.type === 'user'; }).map(function (a) { return a.id; }); };
54
+ var enduserAttendees = function (event) { var _a; return ((_a = event === null || event === void 0 ? void 0 : event.attendees) !== null && _a !== void 0 ? _a : []).filter(function (a) { return a.type === 'enduser'; }); };
55
+ /** the first enduser attendee — what routing.ts get_enduserId, event_handlers_v2, the EHR syncs and
56
+ * session_for_join_link all resolve as "the patient for this event" */
57
+ var primaryEnduserId = function (event) { var _a, _b; return (_b = (_a = enduserAttendees(event)[0]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ''; };
58
+ /**
59
+ * `calendar_events.book_appointment` must not act on a `rescheduledCalendarEventId` belonging to
60
+ * another patient.
61
+ *
62
+ * The handler loaded the reschedule target with `buildOrganizationWideQueries`, which is
63
+ * `buildAllQueries({ unrestricted: true })` and therefore never applies the `attendees.id` access
64
+ * constraint calendar_events declares — the effective filter was businessId only. Any authenticated
65
+ * enduser could pass a co-tenant's event id and (a) have that event stamped
66
+ * `rescheduledAt` / `rescheduledTo`, which the portal renders as "rescheduled or deleted", (b) have
67
+ * the victim attached as the primary enduser attendee of the replacement event, carrying the
68
+ * victim's `joinLinkToken` (a capability that resolves an event by token), and (c) receive the whole
69
+ * stored document back, including the victim's staff-authored `internalNotes`.
70
+ *
71
+ * Both lookup sites are guarded: the initial load and the re-lookup that performs the
72
+ * `rescheduledAt` write. A guard on only the first leaves the write path reachable.
73
+ *
74
+ * Also covered here, because they are the same "the portal UI was the only gate" bug:
75
+ * - `preventRescheduleInPortal` / `preventRescheduleMinutesInAdvance` were enforced only by
76
+ * portal/src/pages/Events.tsx, so a direct API call ignored both even for the owner.
77
+ * - Group events (`enduserAttendeeLimit > 1`): being an attendee is necessary but not sufficient,
78
+ * since any attendee rescheduling moves the appointment for everyone. The server now mirrors the
79
+ * portal's gate — a group event is reschedulable only when the template set
80
+ * `allowGroupReschedule`. The attendee the appointment belongs to (the first enduser attendee) is
81
+ * preserved on the replacement event, so a co-attendee rescheduling does not re-point the
82
+ * appointment at themselves. Carrying the REMAINING co-attendees over is unchanged pre-existing
83
+ * behaviour: they come along only when `replaceHostOnReschedule` is false, and not at all on the
84
+ * group-join branch, where a reschedule landing on an existing group event only appends the caller.
85
+ *
86
+ * Sections: A cross-enduser attempt, B the owner's own reschedule, C the reschedule window, D group
87
+ * events, E the caregiver / related-contact flow, F both replaceHostOnReschedule branches (E and F are
88
+ * regression controls — F mirrors tests.ts ~7372-7460, which only runs against the shared seeded
89
+ * tenant, and the attendee-copy loop changed here).
90
+ *
91
+ * RED (pre-fix): A1-A3 fail (the victim's event is stamped and a replacement carries them), C1/C2 and
92
+ * D1 fail (no server-side enforcement at all). GREEN: every positive control (B, D2, E, F) still
93
+ * passes, before and after.
94
+ */
95
+ export var appointment_reschedule_ownership_checks = function () { return __awaiter(void 0, void 0, void 0, function () {
96
+ var checks, record, tenant, sdk_1, secondHostId_1, dayOfWeekStartingSundayIndexedByZero, availability, makeTemplate, makeEnduser, _a, victim_1, attacker_1, slotTemplate, allBlocks_1, startTimes_1, hostsByStartTime_1, usedStartTimes_1, takeSlot_1, book_1, attempt, template_1, victimEvent_1, INTERNAL_NOTE, victimJoinToken_1, eventsWithVictimBefore_1, crossAttempt, victimEventAfter, eventsWithVictimAfter, ownReschedule, replacement, originalAfter, noPortalRescheduleTemplate_1, noPortalEvent_1, noPortalAttempt, noPortalAfter, windowTemplate_1, windowEvent_1, windowAttempt, windowAfter, groupTemplate_1, groupEvent_1, groupAttempt, groupAfter, groupReschedulableTemplate_1, groupReschedulable_1, groupRescheduleAttempt, caregiver_1, relatedContactTemplate_1, bookingPage, relatedContactEvent_1, caregiverReschedule, preserveHostsTemplate_1, preserveOriginal_1, preserveReplacement, replaceHostsTemplate_1, replaceOriginal_1, replaceReplacement, e_1;
97
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
98
+ return __generator(this, function (_l) {
99
+ switch (_l.label) {
100
+ case 0:
101
+ checks = [];
102
+ record = function (label, pass, detail) { return checks.push({ label: label, pass: pass, detail: detail }); };
103
+ _l.label = 1;
104
+ case 1:
105
+ _l.trys.push([1, , 46, 51]);
106
+ return [4 /*yield*/, setup_isolated_tenant({
107
+ name: "reschedule ownership ".concat(RAND()),
108
+ users: [{ isAdmin: true }, { isAdmin: true }],
109
+ apiKeys: 0,
110
+ })];
111
+ case 2:
112
+ tenant = _l.sent();
113
+ sdk_1 = tenant.sdk;
114
+ secondHostId_1 = tenant.users[1].id;
115
+ dayOfWeekStartingSundayIndexedByZero = (new Date().getDay() + 1) % 7;
116
+ availability = {
117
+ weeklyAvailabilities: [{
118
+ dayOfWeekStartingSundayIndexedByZero: dayOfWeekStartingSundayIndexedByZero,
119
+ startTimeInMinutes: 60 * 9,
120
+ endTimeInMinutes: 60 * 17, // 5pm — 16 half-hour slots per occurrence
121
+ }],
122
+ timezone: 'America/New_York',
123
+ };
124
+ // both hosts, so the replaceHostOnReschedule branches below have a second user to swap in
125
+ return [4 /*yield*/, sdk_1.api.users.updateOne(sdk_1.userInfo.id, availability, { replaceObjectFields: true })];
126
+ case 3:
127
+ // both hosts, so the replaceHostOnReschedule branches below have a second user to swap in
128
+ _l.sent();
129
+ return [4 /*yield*/, sdk_1.api.users.updateOne(secondHostId_1, availability, { replaceObjectFields: true })];
130
+ case 4:
131
+ _l.sent();
132
+ makeTemplate = function (extra) {
133
+ if (extra === void 0) { extra = {}; }
134
+ return sdk_1.api.calendar_event_templates.createOne(__assign({ title: "reschedule test ".concat(RAND()), durationInMinutes: 30, confirmationEmailDisabled: true, confirmationSMSDisabled: true }, extra));
135
+ };
136
+ makeEnduser = function (label) { return __awaiter(void 0, void 0, void 0, function () {
137
+ var enduser, authToken, session;
138
+ return __generator(this, function (_a) {
139
+ switch (_a.label) {
140
+ case 0: return [4 /*yield*/, sdk_1.api.endusers.createOne({
141
+ email: "reschedule_".concat(label, "_").concat(Date.now(), "_").concat(RAND(), "@test.tellescope.com"),
142
+ })];
143
+ case 1:
144
+ enduser = _a.sent();
145
+ return [4 /*yield*/, sdk_1.api.endusers.generate_auth_token({ id: enduser.id })];
146
+ case 2:
147
+ authToken = (_a.sent()).authToken;
148
+ session = new EnduserSession({ host: host, authToken: authToken, enduser: enduser, businessId: tenant.businessId });
149
+ return [2 /*return*/, { enduser: enduser, session: session }];
150
+ }
151
+ });
152
+ }); };
153
+ return [4 /*yield*/, Promise.all([makeEnduser('victim'), makeEnduser('attacker')])
154
+ // Every template here is a plain 30-minute one with no restrictions, so one availability query
155
+ // describes them all. Slots are handed out from that pool and never reused — deriving each booking
156
+ // from a fresh "earliest available" query instead makes the suite race with its own bookings
157
+ // (a booking from one template can land on a slot another template still advertises).
158
+ ];
159
+ case 5:
160
+ _a = _l.sent(), victim_1 = _a[0], attacker_1 = _a[1];
161
+ return [4 /*yield*/, makeTemplate()];
162
+ case 6:
163
+ slotTemplate = _l.sent();
164
+ return [4 /*yield*/, victim_1.session.api.calendar_events.get_appointment_availability({
165
+ calendarEventTemplateId: slotTemplate.id,
166
+ from: new Date(Date.now() - 10000),
167
+ to: new Date(Date.now() + 15 * 24 * 60 * 60 * 1000),
168
+ })];
169
+ case 7:
170
+ allBlocks_1 = (_l.sent()).availabilityBlocks;
171
+ startTimes_1 = allBlocks_1.map(function (b) { return b.startTimeInMS; }).filter(function (t, i, all) { return all.indexOf(t) === i; }).sort(function (a, b) { return a - b; });
172
+ hostsByStartTime_1 = new Map(startTimes_1.map(function (t) { return [t, allBlocks_1.filter(function (b) { return b.startTimeInMS === t; }).map(function (b) { return b.userId; })]; }));
173
+ usedStartTimes_1 = new Set();
174
+ takeSlot_1 = function (hostId) {
175
+ var _a;
176
+ var startTimeInMS = startTimes_1.find(function (t) {
177
+ var _a;
178
+ return (!usedStartTimes_1.has(t) && (!hostId || ((_a = hostsByStartTime_1.get(t)) !== null && _a !== void 0 ? _a : []).includes(hostId)));
179
+ });
180
+ if (startTimeInMS === undefined)
181
+ throw new Error("no unused availability left".concat(hostId ? " for host ".concat(hostId) : ''));
182
+ usedStartTimes_1.add(startTimeInMS);
183
+ return { startTimeInMS: startTimeInMS, userId: hostId || ((_a = hostsByStartTime_1.get(startTimeInMS)) !== null && _a !== void 0 ? _a : [])[0] };
184
+ };
185
+ book_1 = function (as, templateId, opts) {
186
+ if (opts === void 0) { opts = {}; }
187
+ return __awaiter(void 0, void 0, void 0, function () {
188
+ var slot;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ slot = opts.startTimeInMS !== undefined && opts.userId
193
+ ? { startTimeInMS: opts.startTimeInMS, userId: opts.userId }
194
+ : takeSlot_1(opts.hostId);
195
+ return [4 /*yield*/, as.api.calendar_events.book_appointment(__assign(__assign(__assign({ calendarEventTemplateId: templateId, startTime: new Date(slot.startTimeInMS), userId: slot.userId }, opts.otherUserIds ? { otherUserIds: opts.otherUserIds } : {}), opts.bookingPageId ? { bookingPageId: opts.bookingPageId } : {}), opts.rescheduledCalendarEventId ? { rescheduledCalendarEventId: opts.rescheduledCalendarEventId } : {}))];
196
+ case 1: return [2 /*return*/, (_a.sent()).createdEvent];
197
+ }
198
+ });
199
+ });
200
+ };
201
+ attempt = function (run) { return __awaiter(void 0, void 0, void 0, function () {
202
+ return __generator(this, function (_a) {
203
+ return [2 /*return*/, (run()
204
+ .then(function (createdEvent) { return ({ rejected: false, createdEvent: createdEvent, payload: '' }); })
205
+ .catch(function (err) { return ({
206
+ rejected: true,
207
+ createdEvent: undefined,
208
+ payload: (function () {
209
+ var _a;
210
+ try {
211
+ return JSON.stringify({ data: (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data, message: err === null || err === void 0 ? void 0 : err.message });
212
+ }
213
+ catch (_b) {
214
+ return String((err === null || err === void 0 ? void 0 : err.message) || err);
215
+ }
216
+ })(),
217
+ }); }))];
218
+ });
219
+ }); };
220
+ template_1 = slotTemplate;
221
+ return [4 /*yield*/, book_1(victim_1.session, template_1.id)];
222
+ case 8:
223
+ victimEvent_1 = _l.sent();
224
+ INTERNAL_NOTE = "staff-only note ".concat(RAND(), " not visible to another patient");
225
+ return [4 /*yield*/, sdk_1.api.calendar_events.updateOne(victimEvent_1.id, { internalNotes: INTERNAL_NOTE })];
226
+ case 9:
227
+ _l.sent();
228
+ victimJoinToken_1 = ((_b = victimEvent_1.attendees.find(function (a) { return a.type === 'enduser'; })) === null || _b === void 0 ? void 0 : _b.joinLinkToken) || '';
229
+ record('setup: victim booked an appointment with a joinLinkToken and staff internalNotes', !!victimEvent_1.id && !!victimJoinToken_1
230
+ && victimEvent_1.attendees.some(function (a) { return a.type === 'enduser' && a.id === victim_1.enduser.id; }), "event=".concat(victimEvent_1.id, " attendees=").concat(JSON.stringify(victimEvent_1.attendees.map(function (a) { return ({ type: a.type, id: a.id }); }))));
231
+ return [4 /*yield*/, sdk_1.api.calendar_events.getSome({ limit: 100 })];
232
+ case 10:
233
+ eventsWithVictimBefore_1 = (_l.sent())
234
+ .filter(function (e) { return e.attendees.some(function (a) { return a.id === victim_1.enduser.id; }); })
235
+ .map(function (e) { return e.id; });
236
+ return [4 /*yield*/, attempt(function () { return book_1(attacker_1.session, template_1.id, {
237
+ rescheduledCalendarEventId: victimEvent_1.id,
238
+ }); })];
239
+ case 11:
240
+ crossAttempt = _l.sent();
241
+ record('A1: another enduser\'s book_appointment with the victim\'s rescheduledCalendarEventId is rejected', crossAttempt.rejected, crossAttempt.rejected
242
+ ? "rejected: ".concat(crossAttempt.payload)
243
+ : "WRONGLY SUCCEEDED, created ".concat((_c = crossAttempt.createdEvent) === null || _c === void 0 ? void 0 : _c.id));
244
+ return [4 /*yield*/, sdk_1.api.calendar_events.getOne(victimEvent_1.id)];
245
+ case 12:
246
+ victimEventAfter = _l.sent();
247
+ record('A2: the victim\'s event is not stamped rescheduledAt / rescheduledTo', !victimEventAfter.rescheduledAt && !victimEventAfter.rescheduledTo, "rescheduledAt=".concat(String(victimEventAfter.rescheduledAt), " rescheduledTo=").concat(String(victimEventAfter.rescheduledTo)));
248
+ return [4 /*yield*/, sdk_1.api.calendar_events.getSome({ limit: 100 })];
249
+ case 13:
250
+ eventsWithVictimAfter = (_l.sent())
251
+ .filter(function (e) { return e.attendees.some(function (a) { return a.id === victim_1.enduser.id; }); })
252
+ .map(function (e) { return e.id; });
253
+ record('A3: no replacement event was created with the victim as an attendee', eventsWithVictimAfter.length === eventsWithVictimBefore_1.length
254
+ && eventsWithVictimAfter.every(function (id) { return eventsWithVictimBefore_1.includes(id); }), "before=".concat(JSON.stringify(eventsWithVictimBefore_1), " after=").concat(JSON.stringify(eventsWithVictimAfter)));
255
+ record('A4: the rejection carries none of the victim\'s internalNotes, joinLinkToken or reminder config', !crossAttempt.payload.includes(INTERNAL_NOTE)
256
+ && !(victimJoinToken_1 && crossAttempt.payload.includes(victimJoinToken_1))
257
+ && !crossAttempt.payload.includes('"reminders"'), "response=".concat(crossAttempt.payload.slice(0, 400)));
258
+ return [4 /*yield*/, attempt(function () { return book_1(victim_1.session, template_1.id, {
259
+ rescheduledCalendarEventId: victimEvent_1.id,
260
+ }); })];
261
+ case 14:
262
+ ownReschedule = _l.sent();
263
+ record('B1: the owner can still reschedule their own appointment', !ownReschedule.rejected && !!((_d = ownReschedule.createdEvent) === null || _d === void 0 ? void 0 : _d.id), ownReschedule.rejected ? "rejected: ".concat(ownReschedule.payload) : "created ".concat(ownReschedule.createdEvent.id));
264
+ if (!!ownReschedule.rejected) return [3 /*break*/, 16];
265
+ replacement = ownReschedule.createdEvent;
266
+ return [4 /*yield*/, sdk_1.api.calendar_events.getOne(victimEvent_1.id)];
267
+ case 15:
268
+ originalAfter = _l.sent();
269
+ record('B2: the original event is stamped rescheduledAt / rescheduledTo -> the replacement', !!originalAfter.rescheduledAt && originalAfter.rescheduledTo === replacement.id, "rescheduledAt=".concat(String(originalAfter.rescheduledAt), " rescheduledTo=").concat(String(originalAfter.rescheduledTo), " replacement=").concat(replacement.id));
270
+ record('B3: internalNotes and the attendee set carry over to the replacement', replacement.internalNotes === INTERNAL_NOTE
271
+ && replacement.attendees.some(function (a) { return a.type === 'enduser' && a.id === victim_1.enduser.id; })
272
+ && replacement.attendees.some(function (a) { return a.type === 'user'; }), "internalNotes=".concat(JSON.stringify(replacement.internalNotes), " attendees=").concat(JSON.stringify(replacement.attendees.map(function (a) { return ({ type: a.type, id: a.id }); }))));
273
+ record('B4: the owner stays the primary attendee, keeps their OWN joinLinkToken, and no other enduser is attached', primaryEnduserId(replacement) === victim_1.enduser.id
274
+ && replacement.attendees.filter(function (a) { return a.type === 'enduser'; }).every(function (a) { return a.id === victim_1.enduser.id; })
275
+ && ((_e = replacement.attendees.find(function (a) { return a.type === 'enduser' && a.id === victim_1.enduser.id; })) === null || _e === void 0 ? void 0 : _e.joinLinkToken) === victimJoinToken_1, "enduser attendees=".concat(JSON.stringify(replacement.attendees.filter(function (a) { return a.type === 'enduser'; }).map(function (a) { return ({ id: a.id, sameToken: a.joinLinkToken === victimJoinToken_1 }); }))));
276
+ _l.label = 16;
277
+ case 16: return [4 /*yield*/, makeTemplate({ preventRescheduleInPortal: true })];
278
+ case 17:
279
+ noPortalRescheduleTemplate_1 = _l.sent();
280
+ return [4 /*yield*/, book_1(victim_1.session, noPortalRescheduleTemplate_1.id)];
281
+ case 18:
282
+ noPortalEvent_1 = _l.sent();
283
+ return [4 /*yield*/, attempt(function () { return book_1(victim_1.session, noPortalRescheduleTemplate_1.id, {
284
+ rescheduledCalendarEventId: noPortalEvent_1.id,
285
+ }); })];
286
+ case 19:
287
+ noPortalAttempt = _l.sent();
288
+ return [4 /*yield*/, sdk_1.api.calendar_events.getOne(noPortalEvent_1.id)];
289
+ case 20:
290
+ noPortalAfter = _l.sent();
291
+ record('C1: preventRescheduleInPortal is enforced on a direct API call by the owner', noPortalAttempt.rejected && !noPortalAfter.rescheduledAt, "rejected=".concat(noPortalAttempt.rejected, " detail=").concat(noPortalAttempt.payload || "created ".concat((_f = noPortalAttempt.createdEvent) === null || _f === void 0 ? void 0 : _f.id)));
292
+ return [4 /*yield*/, makeTemplate({ preventRescheduleMinutesInAdvance: 100000 })];
293
+ case 21:
294
+ windowTemplate_1 = _l.sent();
295
+ return [4 /*yield*/, book_1(victim_1.session, windowTemplate_1.id)];
296
+ case 22:
297
+ windowEvent_1 = _l.sent();
298
+ return [4 /*yield*/, attempt(function () { return book_1(victim_1.session, windowTemplate_1.id, {
299
+ rescheduledCalendarEventId: windowEvent_1.id,
300
+ }); })];
301
+ case 23:
302
+ windowAttempt = _l.sent();
303
+ return [4 /*yield*/, sdk_1.api.calendar_events.getOne(windowEvent_1.id)];
304
+ case 24:
305
+ windowAfter = _l.sent();
306
+ record('C2: preventRescheduleMinutesInAdvance is enforced on a direct API call by the owner', windowAttempt.rejected && !windowAfter.rescheduledAt, "rejected=".concat(windowAttempt.rejected, " detail=").concat(windowAttempt.payload || "created ".concat((_g = windowAttempt.createdEvent) === null || _g === void 0 ? void 0 : _g.id)));
307
+ return [4 /*yield*/, makeTemplate({ enduserAttendeeLimit: 2 })];
308
+ case 25:
309
+ groupTemplate_1 = _l.sent();
310
+ return [4 /*yield*/, book_1(victim_1.session, groupTemplate_1.id)];
311
+ case 26:
312
+ groupEvent_1 = _l.sent();
313
+ return [4 /*yield*/, book_1(attacker_1.session, groupTemplate_1.id, {
314
+ startTimeInMS: groupEvent_1.startTimeInMS,
315
+ userId: groupEvent_1.attendees.find(function (a) { return a.type === 'user'; }).id,
316
+ })];
317
+ case 27:
318
+ _l.sent();
319
+ return [4 /*yield*/, attempt(function () { return book_1(attacker_1.session, groupTemplate_1.id, {
320
+ rescheduledCalendarEventId: groupEvent_1.id,
321
+ }); })];
322
+ case 28:
323
+ groupAttempt = _l.sent();
324
+ return [4 /*yield*/, sdk_1.api.calendar_events.getOne(groupEvent_1.id)];
325
+ case 29:
326
+ groupAfter = _l.sent();
327
+ record('D1: a co-attendee cannot reschedule a group event without allowGroupReschedule', groupAttempt.rejected && !groupAfter.rescheduledAt, "rejected=".concat(groupAttempt.rejected, " rescheduledAt=").concat(String(groupAfter.rescheduledAt), " detail=").concat(groupAttempt.payload));
328
+ return [4 /*yield*/, makeTemplate({ enduserAttendeeLimit: 2, allowGroupReschedule: true })];
329
+ case 30:
330
+ groupReschedulableTemplate_1 = _l.sent();
331
+ return [4 /*yield*/, book_1(victim_1.session, groupReschedulableTemplate_1.id)];
332
+ case 31:
333
+ groupReschedulable_1 = _l.sent();
334
+ return [4 /*yield*/, book_1(attacker_1.session, groupReschedulableTemplate_1.id, {
335
+ startTimeInMS: groupReschedulable_1.startTimeInMS,
336
+ userId: groupReschedulable_1.attendees.find(function (a) { return a.type === 'user'; }).id,
337
+ })];
338
+ case 32:
339
+ _l.sent();
340
+ return [4 /*yield*/, attempt(function () { return book_1(attacker_1.session, groupReschedulableTemplate_1.id, {
341
+ rescheduledCalendarEventId: groupReschedulable_1.id,
342
+ }); })];
343
+ case 33:
344
+ groupRescheduleAttempt = _l.sent();
345
+ record('D2: with allowGroupReschedule a co-attendee may reschedule; both attend and the original primary is kept', !groupRescheduleAttempt.rejected
346
+ && !!((_h = groupRescheduleAttempt.createdEvent) === null || _h === void 0 ? void 0 : _h.attendees.some(function (a) { return a.id === victim_1.enduser.id; }))
347
+ && !!((_j = groupRescheduleAttempt.createdEvent) === null || _j === void 0 ? void 0 : _j.attendees.some(function (a) { return a.id === attacker_1.enduser.id; }))
348
+ // the co-attendee rescheduling must NOT become the event's derived patient
349
+ && primaryEnduserId(groupRescheduleAttempt.createdEvent) === victim_1.enduser.id, groupRescheduleAttempt.rejected
350
+ ? "rejected: ".concat(groupRescheduleAttempt.payload)
351
+ : "attendees=".concat(JSON.stringify(groupRescheduleAttempt.createdEvent.attendees.map(function (a) { return ({ type: a.type, id: a.id }); })))
352
+ + " primaryEnduser=".concat(primaryEnduserId(groupRescheduleAttempt.createdEvent), " (want ").concat(victim_1.enduser.id, ")"));
353
+ return [4 /*yield*/, makeEnduser('caregiver')];
354
+ case 34:
355
+ caregiver_1 = _l.sent();
356
+ return [4 /*yield*/, sdk_1.api.endusers.updateOne(victim_1.enduser.id, {
357
+ relationships: [{ type: 'Caregiver', id: caregiver_1.enduser.id }],
358
+ }, { replaceObjectFields: true })];
359
+ case 35:
360
+ _l.sent();
361
+ return [4 /*yield*/, makeTemplate()];
362
+ case 36:
363
+ relatedContactTemplate_1 = _l.sent();
364
+ return [4 /*yield*/, sdk_1.api.appointment_booking_pages.createOne({
365
+ title: "related contacts ".concat(RAND()),
366
+ locationIds: [],
367
+ calendarEventTemplateIds: [relatedContactTemplate_1.id],
368
+ includeRelatedContactTypes: ['Caregiver'],
369
+ })];
370
+ case 37:
371
+ bookingPage = _l.sent();
372
+ return [4 /*yield*/, book_1(victim_1.session, relatedContactTemplate_1.id, { bookingPageId: bookingPage.id })];
373
+ case 38:
374
+ relatedContactEvent_1 = _l.sent();
375
+ record('E1: a related contact is attached as an attendee at booking time', relatedContactEvent_1.attendees.some(function (a) { return a.id === caregiver_1.enduser.id; }), "attendees=".concat(JSON.stringify(relatedContactEvent_1.attendees.map(function (a) { return ({ type: a.type, id: a.id }); })), " caregiver=").concat(caregiver_1.enduser.id));
376
+ return [4 /*yield*/, attempt(function () { return book_1(caregiver_1.session, relatedContactTemplate_1.id, {
377
+ rescheduledCalendarEventId: relatedContactEvent_1.id,
378
+ }); })];
379
+ case 39:
380
+ caregiverReschedule = _l.sent();
381
+ record('E2: the caregiver can still reschedule, and the PATIENT stays the primary enduser attendee', !caregiverReschedule.rejected
382
+ && !!((_k = caregiverReschedule.createdEvent) === null || _k === void 0 ? void 0 : _k.attendees.some(function (a) { return a.id === caregiver_1.enduser.id; }))
383
+ // the appointment must still resolve to the patient: EHR sync, triggers/webhooks and
384
+ // session_for_join_link all read the first enduser attendee
385
+ && primaryEnduserId(caregiverReschedule.createdEvent) === victim_1.enduser.id, caregiverReschedule.rejected
386
+ ? "rejected: ".concat(caregiverReschedule.payload)
387
+ : "attendees=".concat(JSON.stringify(caregiverReschedule.createdEvent.attendees.map(function (a) { return ({ type: a.type, id: a.id }); })))
388
+ + " primaryEnduser=".concat(primaryEnduserId(caregiverReschedule.createdEvent), " (want patient ").concat(victim_1.enduser.id, ")"));
389
+ return [4 /*yield*/, makeTemplate({ replaceHostOnReschedule: false })];
390
+ case 40:
391
+ preserveHostsTemplate_1 = _l.sent();
392
+ return [4 /*yield*/, book_1(victim_1.session, preserveHostsTemplate_1.id, {
393
+ hostId: sdk_1.userInfo.id,
394
+ otherUserIds: [secondHostId_1],
395
+ })];
396
+ case 41:
397
+ preserveOriginal_1 = _l.sent();
398
+ return [4 /*yield*/, attempt(function () { return book_1(victim_1.session, preserveHostsTemplate_1.id, {
399
+ hostId: secondHostId_1,
400
+ rescheduledCalendarEventId: preserveOriginal_1.id,
401
+ }); })];
402
+ case 42:
403
+ preserveReplacement = _l.sent();
404
+ record('F1: replaceHostOnReschedule false still preserves both user attendees', !preserveReplacement.rejected
405
+ && userAttendeeIds(preserveReplacement.createdEvent).length === 2
406
+ && userAttendeeIds(preserveReplacement.createdEvent).includes(sdk_1.userInfo.id)
407
+ && userAttendeeIds(preserveReplacement.createdEvent).includes(secondHostId_1), preserveReplacement.rejected
408
+ ? "rejected: ".concat(preserveReplacement.payload)
409
+ : "user attendees=".concat(JSON.stringify(userAttendeeIds(preserveReplacement.createdEvent))));
410
+ return [4 /*yield*/, makeTemplate({ replaceHostOnReschedule: true })];
411
+ case 43:
412
+ replaceHostsTemplate_1 = _l.sent();
413
+ return [4 /*yield*/, book_1(victim_1.session, replaceHostsTemplate_1.id, {
414
+ hostId: sdk_1.userInfo.id,
415
+ otherUserIds: [secondHostId_1],
416
+ })];
417
+ case 44:
418
+ replaceOriginal_1 = _l.sent();
419
+ return [4 /*yield*/, attempt(function () { return book_1(victim_1.session, replaceHostsTemplate_1.id, {
420
+ hostId: secondHostId_1,
421
+ rescheduledCalendarEventId: replaceOriginal_1.id,
422
+ }); })];
423
+ case 45:
424
+ replaceReplacement = _l.sent();
425
+ record('F2: replaceHostOnReschedule true still replaces the hosts and keeps the enduser attendee', !replaceReplacement.rejected
426
+ && userAttendeeIds(replaceReplacement.createdEvent).length === 1
427
+ && userAttendeeIds(replaceReplacement.createdEvent)[0] === secondHostId_1
428
+ && replaceReplacement.createdEvent.attendees.filter(function (a) { return a.type === 'enduser'; }).length === 1
429
+ && replaceReplacement.createdEvent.attendees.some(function (a) { return a.id === victim_1.enduser.id; }), replaceReplacement.rejected
430
+ ? "rejected: ".concat(replaceReplacement.payload)
431
+ : "attendees=".concat(JSON.stringify(replaceReplacement.createdEvent.attendees.map(function (a) { return ({ type: a.type, id: a.id }); }))));
432
+ return [3 /*break*/, 51];
433
+ case 46:
434
+ if (!tenant) return [3 /*break*/, 50];
435
+ _l.label = 47;
436
+ case 47:
437
+ _l.trys.push([47, 49, , 50]);
438
+ return [4 /*yield*/, tenant.teardown()];
439
+ case 48:
440
+ _l.sent();
441
+ return [3 /*break*/, 50];
442
+ case 49:
443
+ e_1 = _l.sent();
444
+ console.error('teardown failed', e_1);
445
+ return [3 /*break*/, 50];
446
+ case 50: return [7 /*endfinally*/];
447
+ case 51: return [2 /*return*/, checks];
448
+ }
449
+ });
450
+ }); };
451
+ /** Asserting wrapper, for standalone runs and for sequential use in the suite. */
452
+ export var appointment_reschedule_ownership_tests = function () { return __awaiter(void 0, void 0, void 0, function () {
453
+ var _a, _b;
454
+ return __generator(this, function (_c) {
455
+ switch (_c.label) {
456
+ case 0:
457
+ _a = assert_checks;
458
+ _b = ['book_appointment reschedule ownership'];
459
+ return [4 /*yield*/, appointment_reschedule_ownership_checks()];
460
+ case 1:
461
+ _a.apply(void 0, _b.concat([_c.sent()]));
462
+ return [2 /*return*/];
463
+ }
464
+ });
465
+ }); };
466
+ // Allow running this test file independently
467
+ if (require.main === module) {
468
+ console.log("\uD83C\uDF10 Using API URL: ".concat(host));
469
+ appointment_reschedule_ownership_tests()
470
+ .then(function () {
471
+ console.log("✅ book_appointment reschedule ownership test suite completed successfully");
472
+ process.exit(0);
473
+ })
474
+ .catch(function (error) {
475
+ console.error("❌ book_appointment reschedule ownership test suite failed:", error);
476
+ process.exit(1);
477
+ });
478
+ }
479
+ //# sourceMappingURL=appointment-reschedule-ownership.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appointment-reschedule-ownership.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/appointment-reschedule-ownership.test.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ import { Session, EnduserSession } from "../../../sdk";
39
39
  import { assert, log_header, } from "@tellescope/testing";
40
40
  import { authenticate_enduser_via_token, setup_tests } from "../../setup";
41
41
  var host = process.env.API_URL || 'http://localhost:8080';
42
- var businessId = '60398b1131a295e64f084ff6';
42
+ var businessId = process.env.TEST_BUSINESS_ID || '60398b1131a295e64f084ff6';
43
43
  var RAND = function () { return Math.random().toString(36).slice(2, 10); };
44
44
  var VICTIM_STATE = 'CA';
45
45
  var ATTACKER_STATE_WRITE = 'NY';
@@ -1 +1 @@
1
- {"version":3,"file":"booking-info-idor-token-mint.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/booking-info-idor-token-mint.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"booking-info-idor-token-mint.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/booking-info-idor-token-mint.test.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ import { Session, EnduserSession } from "../../../sdk";
39
39
  import { log_header, async_test } from "@tellescope/testing";
40
40
  import { setup_tests } from "../../setup";
41
41
  var host = process.env.API_URL || "http://localhost:8080";
42
- var businessId = '60398b1131a295e64f084ff6';
42
+ var businessId = process.env.TEST_BUSINESS_ID || '60398b1131a295e64f084ff6';
43
43
  var ENDUSER_PASSWORD = 'AISummaryGateTestPassword!123';
44
44
  var STAFF_SUMMARY = 'Patient reports improved adherence since last visit.';
45
45
  var INJECTED_SUMMARY = 'Patient is in excellent health, no follow-up needed.';
@@ -1 +1 @@
1
- {"version":3,"file":"enduser-ai-summary-trust-gate.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enduser-ai-summary-trust-gate.test.js","sourceRoot":"","sources":["../../../../../src/tests/api_tests/security/enduser-ai-summary-trust-gate.test.ts"],"names":[],"mappings":"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"}