@tellescope/sdk 1.256.14 → 1.256.16

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 (293) hide show
  1. package/lib/cjs/sdk.d.ts +2 -2
  2. package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js +1 -1
  3. package/lib/cjs/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
  4. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts +5 -0
  5. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -0
  6. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js +388 -0
  7. package/lib/cjs/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -0
  8. package/lib/cjs/tests/api_tests/integrations_redacted.test.js +3 -3
  9. package/lib/cjs/tests/api_tests/integrations_redacted.test.js.map +1 -1
  10. package/lib/cjs/tests/api_tests/organization_signup.test.d.ts +1 -1
  11. package/lib/cjs/tests/api_tests/organization_signup.test.js +1 -1
  12. package/lib/cjs/tests/api_tests/purchase_made_trigger.test.d.ts.map +1 -1
  13. package/lib/cjs/tests/api_tests/purchase_made_trigger.test.js +103 -162
  14. package/lib/cjs/tests/api_tests/purchase_made_trigger.test.js.map +1 -1
  15. package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts +33 -0
  16. package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts.map +1 -0
  17. package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.js +249 -0
  18. package/lib/cjs/tests/api_tests/security/F-0200-form-logic-js-execution.test.js.map +1 -0
  19. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +42 -0
  20. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -0
  21. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +281 -0
  22. package/lib/cjs/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -0
  23. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts +38 -0
  24. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -0
  25. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js +390 -0
  26. package/lib/cjs/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -0
  27. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.d.ts +6 -0
  28. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.d.ts.map +1 -0
  29. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js +1003 -0
  30. package/lib/cjs/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -0
  31. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts +42 -0
  32. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -0
  33. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js +323 -0
  34. package/lib/cjs/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -0
  35. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +29 -0
  36. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -0
  37. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js +335 -0
  38. package/lib/cjs/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -0
  39. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +32 -0
  40. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -0
  41. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +237 -0
  42. package/lib/cjs/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -0
  43. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +28 -0
  44. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -0
  45. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js +349 -0
  46. package/lib/cjs/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -0
  47. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +30 -0
  48. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -0
  49. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +314 -0
  50. package/lib/cjs/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -0
  51. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts +21 -0
  52. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -0
  53. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js +362 -0
  54. package/lib/cjs/tests/api_tests/security/enduser-cross-create.test.js.map +1 -0
  55. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts +21 -0
  56. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -0
  57. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js +366 -0
  58. package/lib/cjs/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -0
  59. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts +5 -0
  60. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -0
  61. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js +357 -0
  62. package/lib/cjs/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -0
  63. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts +32 -0
  64. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -0
  65. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js +248 -0
  66. package/lib/cjs/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -0
  67. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +19 -0
  68. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -0
  69. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js +138 -0
  70. package/lib/cjs/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -0
  71. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +24 -0
  72. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
  73. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +201 -0
  74. package/lib/cjs/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -0
  75. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.d.ts +29 -0
  76. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.d.ts.map +1 -0
  77. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js +278 -0
  78. package/lib/cjs/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -0
  79. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts +17 -0
  80. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -0
  81. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js +155 -0
  82. package/lib/cjs/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -0
  83. package/lib/cjs/tests/api_tests/security/prototype-pollution.test.d.ts +2 -0
  84. package/lib/cjs/tests/api_tests/security/prototype-pollution.test.d.ts.map +1 -0
  85. package/lib/cjs/tests/api_tests/security/prototype-pollution.test.js +88 -0
  86. package/lib/cjs/tests/api_tests/security/prototype-pollution.test.js.map +1 -0
  87. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +34 -0
  88. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -0
  89. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +230 -0
  90. package/lib/cjs/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -0
  91. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts +2 -0
  92. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -0
  93. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +242 -0
  94. package/lib/cjs/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -0
  95. package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.d.ts +2 -0
  96. package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.d.ts.map +1 -0
  97. package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.js +148 -0
  98. package/lib/cjs/tests/api_tests/security/sanitize-user-html.test.js.map +1 -0
  99. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +45 -0
  100. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -0
  101. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js +388 -0
  102. package/lib/cjs/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -0
  103. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts +38 -0
  104. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -0
  105. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js +222 -0
  106. package/lib/cjs/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -0
  107. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -0
  108. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -0
  109. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +354 -0
  110. package/lib/cjs/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -0
  111. package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts +28 -0
  112. package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts.map +1 -0
  113. package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.js +442 -0
  114. package/lib/cjs/tests/api_tests/security/webhook-outbound-ssrf.test.js.map +1 -0
  115. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts +19 -0
  116. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -0
  117. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js +156 -0
  118. package/lib/cjs/tests/api_tests/security/webhook-timeout.test.js.map +1 -0
  119. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js +2 -2
  120. package/lib/cjs/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  121. package/lib/cjs/tests/tests.d.ts.map +1 -1
  122. package/lib/cjs/tests/tests.js +60 -46
  123. package/lib/cjs/tests/tests.js.map +1 -1
  124. package/lib/cjs/tests/unit_tests/openapi_spec_freshness.test.d.ts +1 -1
  125. package/lib/cjs/tests/unit_tests/openapi_spec_freshness.test.js +1 -1
  126. package/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  127. package/lib/esm/enduser.d.ts +0 -1
  128. package/lib/esm/enduser.d.ts.map +1 -1
  129. package/lib/esm/sdk.d.ts +4 -5
  130. package/lib/esm/sdk.d.ts.map +1 -1
  131. package/lib/esm/session.d.ts +0 -1
  132. package/lib/esm/session.d.ts.map +1 -1
  133. package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js +1 -1
  134. package/lib/esm/tests/api_tests/auto_merge_form_submission.test.js.map +1 -1
  135. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts +5 -0
  136. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.d.ts.map +1 -0
  137. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js +383 -0
  138. package/lib/esm/tests/api_tests/enduser_observations_auto_review.test.js.map +1 -0
  139. package/lib/esm/tests/api_tests/integrations_redacted.test.js +3 -3
  140. package/lib/esm/tests/api_tests/integrations_redacted.test.js.map +1 -1
  141. package/lib/esm/tests/api_tests/organization_signup.test.d.ts +1 -1
  142. package/lib/esm/tests/api_tests/organization_signup.test.js +1 -1
  143. package/lib/esm/tests/api_tests/purchase_made_trigger.test.d.ts.map +1 -1
  144. package/lib/esm/tests/api_tests/purchase_made_trigger.test.js +104 -163
  145. package/lib/esm/tests/api_tests/purchase_made_trigger.test.js.map +1 -1
  146. package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts +33 -0
  147. package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.d.ts.map +1 -0
  148. package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.js +244 -0
  149. package/lib/esm/tests/api_tests/security/F-0200-form-logic-js-execution.test.js.map +1 -0
  150. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts +42 -0
  151. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.d.ts.map +1 -0
  152. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js +276 -0
  153. package/lib/esm/tests/api_tests/security/add-to-journey-foreign-enduserid.test.js.map +1 -0
  154. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts +38 -0
  155. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.d.ts.map +1 -0
  156. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js +386 -0
  157. package/lib/esm/tests/api_tests/security/ai-conversations-rbac.test.js.map +1 -0
  158. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.d.ts +6 -0
  159. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.d.ts.map +1 -0
  160. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js +996 -0
  161. package/lib/esm/tests/api_tests/security/allowed-paths-confinement.test.js.map +1 -0
  162. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts +42 -0
  163. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.d.ts.map +1 -0
  164. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js +316 -0
  165. package/lib/esm/tests/api_tests/security/automated-actions-process-gate.test.js.map +1 -0
  166. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts +29 -0
  167. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.d.ts.map +1 -0
  168. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js +331 -0
  169. package/lib/esm/tests/api_tests/security/booking-info-idor-token-mint.test.js.map +1 -0
  170. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts +32 -0
  171. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.d.ts.map +1 -0
  172. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js +233 -0
  173. package/lib/esm/tests/api_tests/security/cascade-role-rename-cross-tenant.test.js.map +1 -0
  174. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts +28 -0
  175. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.d.ts.map +1 -0
  176. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js +345 -0
  177. package/lib/esm/tests/api_tests/security/data-sync-redaction-bypass.test.js.map +1 -0
  178. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts +30 -0
  179. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.d.ts.map +1 -0
  180. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js +310 -0
  181. package/lib/esm/tests/api_tests/security/develop-health-benefit-verification-rbac.test.js.map +1 -0
  182. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts +21 -0
  183. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.d.ts.map +1 -0
  184. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js +358 -0
  185. package/lib/esm/tests/api_tests/security/enduser-cross-create.test.js.map +1 -0
  186. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts +21 -0
  187. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.d.ts.map +1 -0
  188. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js +362 -0
  189. package/lib/esm/tests/api_tests/security/enduser-write-restrictions.test.js.map +1 -0
  190. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts +5 -0
  191. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.d.ts.map +1 -0
  192. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js +349 -0
  193. package/lib/esm/tests/api_tests/security/file-link-session-confinement.test.js.map +1 -0
  194. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts +32 -0
  195. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.d.ts.map +1 -0
  196. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js +243 -0
  197. package/lib/esm/tests/api_tests/security/form-logic-js-execution.test.js.map +1 -0
  198. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts +19 -0
  199. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.d.ts.map +1 -0
  200. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js +134 -0
  201. package/lib/esm/tests/api_tests/security/globalunique-conflict-redaction.test.js.map +1 -0
  202. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts +24 -0
  203. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.d.ts.map +1 -0
  204. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js +194 -0
  205. package/lib/esm/tests/api_tests/security/handle-incoming-communication-cross-tenant.test.js.map +1 -0
  206. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.d.ts +29 -0
  207. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.d.ts.map +1 -0
  208. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js +271 -0
  209. package/lib/esm/tests/api_tests/security/invite-user-enumeration.test.js.map +1 -0
  210. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts +17 -0
  211. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.d.ts.map +1 -0
  212. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js +151 -0
  213. package/lib/esm/tests/api_tests/security/load-inbox-redaction.test.js.map +1 -0
  214. package/lib/esm/tests/api_tests/security/prototype-pollution.test.d.ts +2 -0
  215. package/lib/esm/tests/api_tests/security/prototype-pollution.test.d.ts.map +1 -0
  216. package/lib/esm/tests/api_tests/security/prototype-pollution.test.js +84 -0
  217. package/lib/esm/tests/api_tests/security/prototype-pollution.test.js.map +1 -0
  218. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts +34 -0
  219. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.d.ts.map +1 -0
  220. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js +223 -0
  221. package/lib/esm/tests/api_tests/security/proxy-image-unauth-ssrf.test.js.map +1 -0
  222. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts +2 -0
  223. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.d.ts.map +1 -0
  224. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js +238 -0
  225. package/lib/esm/tests/api_tests/security/sanitize-user-html-with-iframes.test.js.map +1 -0
  226. package/lib/esm/tests/api_tests/security/sanitize-user-html.test.d.ts +2 -0
  227. package/lib/esm/tests/api_tests/security/sanitize-user-html.test.d.ts.map +1 -0
  228. package/lib/esm/tests/api_tests/security/sanitize-user-html.test.js +144 -0
  229. package/lib/esm/tests/api_tests/security/sanitize-user-html.test.js.map +1 -0
  230. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts +45 -0
  231. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.d.ts.map +1 -0
  232. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js +381 -0
  233. package/lib/esm/tests/api_tests/security/schema-adminonly-enforcement.test.js.map +1 -0
  234. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts +38 -0
  235. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.d.ts.map +1 -0
  236. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js +218 -0
  237. package/lib/esm/tests/api_tests/security/self-admin-role-assignment.test.js.map +1 -0
  238. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts +6 -0
  239. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.d.ts.map +1 -0
  240. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js +350 -0
  241. package/lib/esm/tests/api_tests/security/startlinktoken-enduser-staff-escalation.test.js.map +1 -0
  242. package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts +28 -0
  243. package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.d.ts.map +1 -0
  244. package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.js +435 -0
  245. package/lib/esm/tests/api_tests/security/webhook-outbound-ssrf.test.js.map +1 -0
  246. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts +19 -0
  247. package/lib/esm/tests/api_tests/security/webhook-timeout.test.d.ts.map +1 -0
  248. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js +149 -0
  249. package/lib/esm/tests/api_tests/security/webhook-timeout.test.js.map +1 -0
  250. package/lib/esm/tests/api_tests/webhook_error_handling.test.js +2 -2
  251. package/lib/esm/tests/api_tests/webhook_error_handling.test.js.map +1 -1
  252. package/lib/esm/tests/tests.d.ts.map +1 -1
  253. package/lib/esm/tests/tests.js +38 -24
  254. package/lib/esm/tests/tests.js.map +1 -1
  255. package/lib/esm/tests/unit_tests/openapi_spec_freshness.test.d.ts +1 -1
  256. package/lib/esm/tests/unit_tests/openapi_spec_freshness.test.js +1 -1
  257. package/lib/tsconfig.tsbuildinfo +1 -1
  258. package/package.json +10 -10
  259. package/src/tests/api_tests/auto_merge_form_submission.test.ts +1 -1
  260. package/src/tests/api_tests/enduser_observations_auto_review.test.ts +358 -0
  261. package/src/tests/api_tests/integrations_redacted.test.ts +1 -1
  262. package/src/tests/api_tests/organization_signup.test.ts +2 -2
  263. package/src/tests/api_tests/purchase_made_trigger.test.ts +29 -41
  264. package/src/tests/api_tests/security/{F-0196-add-to-journey-foreign-enduserid.test.ts → add-to-journey-foreign-enduserid.test.ts} +6 -7
  265. package/src/tests/api_tests/security/{F-0005-ai-conversations-rbac.test.ts → ai-conversations-rbac.test.ts} +14 -14
  266. package/src/tests/api_tests/security/{F-0166-allowed-paths-wildcard-bypass.test.ts → allowed-paths-confinement.test.ts} +11 -11
  267. package/src/tests/api_tests/security/{F-0192-automated-actions-process-gate.test.ts → automated-actions-process-gate.test.ts} +6 -7
  268. package/src/tests/api_tests/security/{F-0179-booking-info-idor-token-mint.test.ts → booking-info-idor-token-mint.test.ts} +5 -6
  269. package/src/tests/api_tests/security/{F-0053-cascade-role-rename-cross-tenant.test.ts → cascade-role-rename-cross-tenant.test.ts} +10 -10
  270. package/src/tests/api_tests/security/{F-0001-data-sync-redaction-bypass.test.ts → data-sync-redaction-bypass.test.ts} +9 -9
  271. package/src/tests/api_tests/security/{F-0006-develop-health-benefit-verification-rbac.test.ts → develop-health-benefit-verification-rbac.test.ts} +7 -8
  272. package/src/tests/api_tests/security/{F-0116-F-0119-enduser-cross-create.test.ts → enduser-cross-create.test.ts} +25 -25
  273. package/src/tests/api_tests/security/{F-0106-F-0110-enduser-write-restrictions.test.ts → enduser-write-restrictions.test.ts} +12 -14
  274. package/src/tests/api_tests/security/file-link-session-confinement.test.ts +291 -0
  275. package/src/tests/api_tests/security/form-logic-js-execution.test.ts +183 -0
  276. package/src/tests/api_tests/security/{F-0145-globalunique-leak.test.ts → globalunique-conflict-redaction.test.ts} +5 -6
  277. package/src/tests/api_tests/security/{F-0008-handle-incoming-communication-cross-tenant.test.ts → handle-incoming-communication-cross-tenant.test.ts} +8 -8
  278. package/src/tests/api_tests/security/{F-0007-invite-user-enumeration.test.ts → invite-user-enumeration.test.ts} +8 -8
  279. package/src/tests/api_tests/security/{F-0151-load-inbox-redaction.test.ts → load-inbox-redaction.test.ts} +5 -6
  280. package/src/tests/api_tests/security/{F-0016-prototype-pollution.test.ts → prototype-pollution.test.ts} +4 -4
  281. package/src/tests/api_tests/security/{F-0025-proxy-image-unauth-ssrf.test.ts → proxy-image-unauth-ssrf.test.ts} +11 -12
  282. package/src/tests/api_tests/security/{F-0013-sanitize-user-html-with-iframes.test.ts → sanitize-user-html-with-iframes.test.ts} +5 -5
  283. package/src/tests/api_tests/security/{F-0013-sanitize-user-html.test.ts → sanitize-user-html.test.ts} +4 -4
  284. package/src/tests/api_tests/security/{F-0191-schema-adminonly-enforcement.test.ts → schema-adminonly-enforcement.test.ts} +6 -7
  285. package/src/tests/api_tests/security/{F-0076-self-admin-role-assignment.test.ts → self-admin-role-assignment.test.ts} +13 -13
  286. package/src/tests/api_tests/security/{F-0185-startlinktoken-enduser-staff-escalation.test.ts → startlinktoken-enduser-staff-escalation.test.ts} +6 -6
  287. package/src/tests/api_tests/security/{F-0015-webhook-outbound-ssrf.test.ts → webhook-outbound-ssrf.test.ts} +13 -14
  288. package/src/tests/api_tests/security/{F-0155-webhook-timeout.test.ts → webhook-timeout.test.ts} +6 -7
  289. package/src/tests/api_tests/webhook_error_handling.test.ts +1 -1
  290. package/src/tests/tests.ts +43 -24
  291. package/src/tests/unit_tests/openapi_spec_freshness.test.ts +1 -1
  292. package/test_generated.pdf +0 -0
  293. package/src/tests/api_tests/security/readonly-enduser-preview.test.ts +0 -301
@@ -35,17 +35,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { Session } from "../../sdk";
38
- import { log_header, wait, async_test } from "@tellescope/testing";
38
+ import { log_header, async_test, poll_for_results } from "@tellescope/testing";
39
39
  import { setup_tests } from "../setup";
40
40
  var host = process.env.API_URL || "http://localhost:8080";
41
41
  export var purchase_made_trigger_tests = function (_a) {
42
42
  var sdk = _a.sdk, sdkNonAdmin = _a.sdkNonAdmin;
43
43
  return __awaiter(void 0, void 0, void 0, function () {
44
- var product1, product2, product3, t1, t2, t3, t4, t5, t6, t7, t8, t9, enduser1, enduser2, enduser3, enduser4, enduser5, enduser6, enduser7, enduser8, enduser9, enduser10, enduser11, enduser12, enduser13, enduser14, t10, t11, t12, enduser15, enduser16, enduser17, enduser18, enduser19, enduser20, purchase1, purchase2, purchase3, purchase4, purchase5, purchase6, purchase7, purchase8, purchase9, purchase10, purchase11, purchase12, purchase13, purchase14, purchase15, purchase16, purchase17, purchase18, purchase19, purchase20;
44
+ var enduser_with_tags, product1, product2, product3, t1, t2, t3, t4, t5, t6, t7, t8, t9, enduser1, enduser2, enduser3, enduser4, enduser5, enduser6, enduser7, enduser8, enduser9, enduser10, enduser11, enduser12, enduser13, enduser14, t10, t11, t12, enduser15, enduser16, enduser17, enduser18, enduser19, enduser20, purchase1, purchase2, purchase3, purchase4, purchase5, purchase6, purchase7, purchase8, purchase9, purchase10, purchase11, purchase12, purchase13, purchase14, purchase15, purchase16, purchase17, purchase18, purchase19, purchase20;
45
45
  return __generator(this, function (_b) {
46
46
  switch (_b.label) {
47
47
  case 0:
48
48
  log_header("Automation Trigger Tests (Purchase Made)");
49
+ enduser_with_tags = function (enduserId, tags) { return poll_for_results(function () { return sdk.api.endusers.getOne(enduserId); }, function (e) { return tags.every(function (t) { var _a; return (_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes(t); }); }); };
49
50
  return [4 /*yield*/, sdk.api.products.createOne({
50
51
  title: 'Premium Course Package',
51
52
  cost: { amount: 9999, currency: 'USD' },
@@ -252,13 +253,10 @@ export var purchase_made_trigger_tests = function (_a) {
252
253
  })];
253
254
  case 36:
254
255
  purchase1 = _b.sent();
255
- return [4 /*yield*/, wait(undefined, 500)]; // Brief wait for trigger processing
256
- case 37:
257
- _b.sent(); // Brief wait for trigger processing
258
- return [4 /*yield*/, async_test("Purchase Made - Any Purchase", function () { return sdk.api.endusers.getOne(enduser1.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')); } })
256
+ return [4 /*yield*/, async_test("Purchase Made - Any Purchase", function () { return enduser_with_tags(enduser1.id, ['Purchase-Any']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')); } })
259
257
  // Test 2: Purchase with exact title match
260
258
  ];
261
- case 38:
259
+ case 37:
262
260
  _b.sent();
263
261
  return [4 /*yield*/, sdk.api.purchases.createOne({
264
262
  enduserId: enduser2.id,
@@ -267,15 +265,12 @@ export var purchase_made_trigger_tests = function (_a) {
267
265
  cost: { amount: 9999, currency: 'USD' },
268
266
  processor: 'Stripe'
269
267
  })];
270
- case 39:
268
+ case 38:
271
269
  purchase2 = _b.sent();
272
- return [4 /*yield*/, wait(undefined, 500)];
273
- case 40:
274
- _b.sent();
275
- return [4 /*yield*/, async_test("Purchase Made - Exact Title Match", function () { return sdk.api.endusers.getOne(enduser2.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Exact-Title')); } })
270
+ return [4 /*yield*/, async_test("Purchase Made - Exact Title Match", function () { return enduser_with_tags(enduser2.id, ['Purchase-Exact-Title']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Exact-Title')); } })
276
271
  // Test 3: Purchase with product ID match
277
272
  ];
278
- case 41:
273
+ case 39:
279
274
  _b.sent();
280
275
  return [4 /*yield*/, sdk.api.purchases.createOne({
281
276
  enduserId: enduser3.id,
@@ -284,15 +279,12 @@ export var purchase_made_trigger_tests = function (_a) {
284
279
  cost: { amount: 4999, currency: 'USD' },
285
280
  processor: 'Stripe'
286
281
  })];
287
- case 42:
282
+ case 40:
288
283
  purchase3 = _b.sent();
289
- return [4 /*yield*/, wait(undefined, 500)];
290
- case 43:
291
- _b.sent();
292
- return [4 /*yield*/, async_test("Purchase Made - Product ID Match", function () { return sdk.api.endusers.getOne(enduser3.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Product-ID')); } })
284
+ return [4 /*yield*/, async_test("Purchase Made - Product ID Match", function () { return enduser_with_tags(enduser3.id, ['Purchase-Product-ID']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Product-ID')); } })
293
285
  // Test 4: Purchase with case-insensitive partial title match - "course"
294
286
  ];
295
- case 44:
287
+ case 41:
296
288
  _b.sent();
297
289
  return [4 /*yield*/, sdk.api.purchases.createOne({
298
290
  enduserId: enduser4.id,
@@ -301,15 +293,12 @@ export var purchase_made_trigger_tests = function (_a) {
301
293
  cost: { amount: 9999, currency: 'USD' },
302
294
  processor: 'Stripe'
303
295
  })];
304
- case 45:
296
+ case 42:
305
297
  purchase4 = _b.sent();
306
- return [4 /*yield*/, wait(undefined, 500)];
307
- case 46:
308
- _b.sent();
309
- return [4 /*yield*/, async_test("Purchase Made - Partial Title Match (case insensitive 'course')", function () { return sdk.api.endusers.getOne(enduser4.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Course')); } })
298
+ return [4 /*yield*/, async_test("Purchase Made - Partial Title Match (case insensitive 'course')", function () { return enduser_with_tags(enduser4.id, ['Purchase-Partial-Course']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Course')); } })
310
299
  // Test 5: Purchase with case-insensitive partial title match - "ANALYTICS" (uppercase)
311
300
  ];
312
- case 47:
301
+ case 43:
313
302
  _b.sent();
314
303
  return [4 /*yield*/, sdk.api.purchases.createOne({
315
304
  enduserId: enduser5.id,
@@ -318,15 +307,12 @@ export var purchase_made_trigger_tests = function (_a) {
318
307
  cost: { amount: 14999, currency: 'USD' },
319
308
  processor: 'Stripe'
320
309
  })];
321
- case 48:
310
+ case 44:
322
311
  purchase5 = _b.sent();
323
- return [4 /*yield*/, wait(undefined, 500)];
324
- case 49:
325
- _b.sent();
326
- return [4 /*yield*/, async_test("Purchase Made - Partial Title Match (case insensitive 'ANALYTICS')", function () { return sdk.api.endusers.getOne(enduser5.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Analytics')); } })
312
+ return [4 /*yield*/, async_test("Purchase Made - Partial Title Match (case insensitive 'ANALYTICS')", function () { return enduser_with_tags(enduser5.id, ['Purchase-Partial-Analytics']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Analytics')); } })
327
313
  // Test 6: Purchase that should NOT match partial filter
328
314
  ];
329
- case 50:
315
+ case 45:
330
316
  _b.sent();
331
317
  return [4 /*yield*/, sdk.api.purchases.createOne({
332
318
  enduserId: enduser6.id,
@@ -335,15 +321,12 @@ export var purchase_made_trigger_tests = function (_a) {
335
321
  cost: { amount: 4999, currency: 'USD' },
336
322
  processor: 'Stripe'
337
323
  })];
338
- case 51:
324
+ case 46:
339
325
  purchase6 = _b.sent();
340
- return [4 /*yield*/, wait(undefined, 500)];
341
- case 52:
342
- _b.sent();
343
- return [4 /*yield*/, async_test("Purchase Made - No Partial Title Match", function () { return sdk.api.endusers.getOne(enduser6.id); }, { onResult: function (e) { var _a, _b, _c; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Partial-Course')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Purchase-Partial-Analytics')); } })
326
+ return [4 /*yield*/, async_test("Purchase Made - No Partial Title Match", function () { return enduser_with_tags(enduser6.id, ['Purchase-Any']); }, { onResult: function (e) { var _a, _b, _c; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Partial-Course')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Purchase-Partial-Analytics')); } })
344
327
  // Test 7: Purchase with mixed case partial match
345
328
  ];
346
- case 53:
329
+ case 47:
347
330
  _b.sent();
348
331
  return [4 /*yield*/, sdk.api.purchases.createOne({
349
332
  enduserId: enduser7.id,
@@ -352,15 +335,12 @@ export var purchase_made_trigger_tests = function (_a) {
352
335
  cost: { amount: 9999, currency: 'USD' },
353
336
  processor: 'Stripe'
354
337
  })];
355
- case 54:
338
+ case 48:
356
339
  purchase7 = _b.sent();
357
- return [4 /*yield*/, wait(undefined, 500)];
358
- case 55:
359
- _b.sent();
360
- return [4 /*yield*/, async_test("Purchase Made - Mixed Case Partial Title Match", function () { return sdk.api.endusers.getOne(enduser7.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Course')); } })
340
+ return [4 /*yield*/, async_test("Purchase Made - Mixed Case Partial Title Match", function () { return enduser_with_tags(enduser7.id, ['Purchase-Partial-Course']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Partial-Course')); } })
361
341
  // Test 8: Purchase with multiple partial matches - should match 'premium'
362
342
  ];
363
- case 56:
343
+ case 49:
364
344
  _b.sent();
365
345
  return [4 /*yield*/, sdk.api.purchases.createOne({
366
346
  enduserId: enduser8.id,
@@ -369,15 +349,12 @@ export var purchase_made_trigger_tests = function (_a) {
369
349
  cost: { amount: 9999, currency: 'USD' },
370
350
  processor: 'Stripe'
371
351
  })];
372
- case 57:
352
+ case 50:
373
353
  purchase8 = _b.sent();
374
- return [4 /*yield*/, wait(undefined, 500)];
375
- case 58:
376
- _b.sent();
377
- return [4 /*yield*/, async_test("Purchase Made - Multiple Partial Matches (matches 'premium')", function () { return sdk.api.endusers.getOne(enduser8.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Multiple-Partial')); } })
354
+ return [4 /*yield*/, async_test("Purchase Made - Multiple Partial Matches (matches 'premium')", function () { return enduser_with_tags(enduser8.id, ['Purchase-Multiple-Partial']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Multiple-Partial')); } })
378
355
  // Test 9: Purchase with multiple partial matches - should match 'advanced'
379
356
  ];
380
- case 59:
357
+ case 51:
381
358
  _b.sent();
382
359
  return [4 /*yield*/, sdk.api.purchases.createOne({
383
360
  enduserId: enduser9.id,
@@ -386,15 +363,12 @@ export var purchase_made_trigger_tests = function (_a) {
386
363
  cost: { amount: 14999, currency: 'USD' },
387
364
  processor: 'Stripe'
388
365
  })];
389
- case 60:
366
+ case 52:
390
367
  purchase9 = _b.sent();
391
- return [4 /*yield*/, wait(undefined, 500)];
392
- case 61:
393
- _b.sent();
394
- return [4 /*yield*/, async_test("Purchase Made - Multiple Partial Matches (matches 'advanced')", function () { return sdk.api.endusers.getOne(enduser9.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Multiple-Partial')); } })
368
+ return [4 /*yield*/, async_test("Purchase Made - Multiple Partial Matches (matches 'advanced')", function () { return enduser_with_tags(enduser9.id, ['Purchase-Multiple-Partial']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Multiple-Partial')); } })
395
369
  // Test 10: Comprehensive case-insensitivity - lowercase filter 'mixed' matches title 'MIXED Case'
396
370
  ];
397
- case 62:
371
+ case 53:
398
372
  _b.sent();
399
373
  return [4 /*yield*/, sdk.api.purchases.createOne({
400
374
  enduserId: enduser10.id,
@@ -403,15 +377,12 @@ export var purchase_made_trigger_tests = function (_a) {
403
377
  cost: { amount: 9999, currency: 'USD' },
404
378
  processor: 'Stripe'
405
379
  })];
406
- case 63:
380
+ case 54:
407
381
  purchase10 = _b.sent();
408
- return [4 /*yield*/, wait(undefined, 500)];
409
- case 64:
410
- _b.sent();
411
- return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (lowercase filter 'mixed' matches 'MIXED')", function () { return sdk.api.endusers.getOne(enduser10.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
382
+ return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (lowercase filter 'mixed' matches 'MIXED')", function () { return enduser_with_tags(enduser10.id, ['Purchase-Case-Test']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
412
383
  // Test 11: Comprehensive case-insensitivity - uppercase filter 'UPPER' matches title 'upper'
413
384
  ];
414
- case 65:
385
+ case 55:
415
386
  _b.sent();
416
387
  return [4 /*yield*/, sdk.api.purchases.createOne({
417
388
  enduserId: enduser11.id,
@@ -420,15 +391,12 @@ export var purchase_made_trigger_tests = function (_a) {
420
391
  cost: { amount: 4999, currency: 'USD' },
421
392
  processor: 'Stripe'
422
393
  })];
423
- case 66:
394
+ case 56:
424
395
  purchase11 = _b.sent();
425
- return [4 /*yield*/, wait(undefined, 500)];
426
- case 67:
427
- _b.sent();
428
- return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (uppercase filter 'UPPER' matches 'upper')", function () { return sdk.api.endusers.getOne(enduser11.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
396
+ return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (uppercase filter 'UPPER' matches 'upper')", function () { return enduser_with_tags(enduser11.id, ['Purchase-Case-Test']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
429
397
  // Test 12: Comprehensive case-insensitivity - mixed case filter 'MiXeD' matches title 'MiXeD'
430
398
  ];
431
- case 68:
399
+ case 57:
432
400
  _b.sent();
433
401
  return [4 /*yield*/, sdk.api.purchases.createOne({
434
402
  enduserId: enduser12.id,
@@ -437,15 +405,12 @@ export var purchase_made_trigger_tests = function (_a) {
437
405
  cost: { amount: 14999, currency: 'USD' },
438
406
  processor: 'Stripe'
439
407
  })];
440
- case 69:
408
+ case 58:
441
409
  purchase12 = _b.sent();
442
- return [4 /*yield*/, wait(undefined, 500)];
443
- case 70:
444
- _b.sent();
445
- return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (mixed case filter 'MiXeD' matches 'MiXeD')", function () { return sdk.api.endusers.getOne(enduser12.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
410
+ return [4 /*yield*/, async_test("Purchase Made - Case Insensitive (mixed case filter 'MiXeD' matches 'MiXeD')", function () { return enduser_with_tags(enduser12.id, ['Purchase-Case-Test']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Case-Test')); } })
446
411
  // Test 13: Empty titlePartialMatches array - should behave like no filter
447
412
  ];
448
- case 71:
413
+ case 59:
449
414
  _b.sent();
450
415
  return [4 /*yield*/, sdk.api.purchases.createOne({
451
416
  enduserId: enduser13.id,
@@ -454,15 +419,12 @@ export var purchase_made_trigger_tests = function (_a) {
454
419
  cost: { amount: 9999, currency: 'USD' },
455
420
  processor: 'Stripe'
456
421
  })];
457
- case 72:
422
+ case 60:
458
423
  purchase13 = _b.sent();
459
- return [4 /*yield*/, wait(undefined, 500)];
460
- case 73:
461
- _b.sent();
462
- return [4 /*yield*/, async_test("Purchase Made - Empty titlePartialMatches Array (should trigger like any purchase)", function () { return sdk.api.endusers.getOne(enduser13.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Empty-Array')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Any')); } })
424
+ return [4 /*yield*/, async_test("Purchase Made - Empty titlePartialMatches Array (should trigger like any purchase)", function () { return enduser_with_tags(enduser13.id, ['Purchase-Empty-Array', 'Purchase-Any']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Empty-Array')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Any')); } })
463
425
  // Test 14: Purchase with empty title - should NOT trigger partial match filters
464
426
  ];
465
- case 74:
427
+ case 61:
466
428
  _b.sent();
467
429
  return [4 /*yield*/, sdk.api.purchases.createOne({
468
430
  enduserId: enduser14.id,
@@ -471,15 +433,12 @@ export var purchase_made_trigger_tests = function (_a) {
471
433
  cost: { amount: 4999, currency: 'USD' },
472
434
  processor: 'Stripe'
473
435
  })];
474
- case 75:
436
+ case 62:
475
437
  purchase14 = _b.sent();
476
- return [4 /*yield*/, wait(undefined, 500)];
477
- case 76:
478
- _b.sent();
479
- return [4 /*yield*/, async_test("Purchase Made - Empty Title (should not trigger partial match filters)", function () { return sdk.api.endusers.getOne(enduser14.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-No-Title-Test')); } })
438
+ return [4 /*yield*/, async_test("Purchase Made - Empty Title (should not trigger partial match filters)", function () { return enduser_with_tags(enduser14.id, ['Purchase-Any']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-No-Title-Test')); } })
480
439
  // Test 15: exact coupon code match fires the coupon-scoped trigger
481
440
  ];
482
- case 77:
441
+ case 63:
483
442
  _b.sent();
484
443
  return [4 /*yield*/, sdk.api.purchases.createOne({
485
444
  enduserId: enduser15.id,
@@ -488,16 +447,13 @@ export var purchase_made_trigger_tests = function (_a) {
488
447
  processor: 'Stripe',
489
448
  couponCodes: ['SUMMER20'],
490
449
  })];
491
- case 78:
450
+ case 64:
492
451
  purchase15 = _b.sent();
493
- return [4 /*yield*/, wait(undefined, 500)];
494
- case 79:
495
- _b.sent();
496
- return [4 /*yield*/, async_test("Purchase Made - Coupon Code Match (exact)", function () { return sdk.api.endusers.getOne(enduser15.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Coupon-Summer20')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Empty')); } })
452
+ return [4 /*yield*/, async_test("Purchase Made - Coupon Code Match (exact)", function () { return enduser_with_tags(enduser15.id, ['Purchase-Coupon-Summer20', 'Purchase-Coupon-Empty']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Coupon-Summer20')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Empty')); } })
497
453
  // Test 16: coupon match is case-sensitive — Stripe returns the canonical merchant-defined
498
454
  // code, so a differently-cased value must NOT fire the coupon-scoped trigger
499
455
  ];
500
- case 80:
456
+ case 65:
501
457
  _b.sent();
502
458
  return [4 /*yield*/, sdk.api.purchases.createOne({
503
459
  enduserId: enduser16.id,
@@ -506,15 +462,12 @@ export var purchase_made_trigger_tests = function (_a) {
506
462
  processor: 'Stripe',
507
463
  couponCodes: ['summer20'],
508
464
  })];
509
- case 81:
465
+ case 66:
510
466
  purchase16 = _b.sent();
511
- return [4 /*yield*/, wait(undefined, 500)];
512
- case 82:
513
- _b.sent();
514
- return [4 /*yield*/, async_test("Purchase Made - Coupon Code Case Mismatch (case sensitive, 'summer20' vs 'SUMMER20')", function () { return sdk.api.endusers.getOne(enduser16.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Summer20')); } })
467
+ return [4 /*yield*/, async_test("Purchase Made - Coupon Code Case Mismatch (case sensitive, 'summer20' vs 'SUMMER20')", function () { return enduser_with_tags(enduser16.id, ['Purchase-Any']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Summer20')); } })
515
468
  // Test 17: a different coupon code does NOT fire the coupon-scoped trigger
516
469
  ];
517
- case 83:
470
+ case 67:
518
471
  _b.sent();
519
472
  return [4 /*yield*/, sdk.api.purchases.createOne({
520
473
  enduserId: enduser17.id,
@@ -523,16 +476,13 @@ export var purchase_made_trigger_tests = function (_a) {
523
476
  processor: 'Stripe',
524
477
  couponCodes: ['WINTER10'],
525
478
  })];
526
- case 84:
479
+ case 68:
527
480
  purchase17 = _b.sent();
528
- return [4 /*yield*/, wait(undefined, 500)];
529
- case 85:
530
- _b.sent();
531
- return [4 /*yield*/, async_test("Purchase Made - Non-matching Coupon Code", function () { return sdk.api.endusers.getOne(enduser17.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Summer20')); } })
481
+ return [4 /*yield*/, async_test("Purchase Made - Non-matching Coupon Code", function () { return enduser_with_tags(enduser17.id, ['Purchase-Any']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Summer20')); } })
532
482
  // Test 18: a purchase with no couponCodes never matches a coupon-scoped trigger, but
533
483
  // unscoped and empty-array coupon triggers still fire (backward compat)
534
484
  ];
535
- case 86:
485
+ case 69:
536
486
  _b.sent();
537
487
  return [4 /*yield*/, sdk.api.purchases.createOne({
538
488
  enduserId: enduser18.id,
@@ -540,15 +490,12 @@ export var purchase_made_trigger_tests = function (_a) {
540
490
  cost: { amount: 9999, currency: 'USD' },
541
491
  processor: 'Stripe',
542
492
  })];
543
- case 87:
493
+ case 70:
544
494
  purchase18 = _b.sent();
545
- return [4 /*yield*/, wait(undefined, 500)];
546
- case 88:
547
- _b.sent();
548
- return [4 /*yield*/, async_test("Purchase Made - No Coupon Data (backward compat)", function () { return sdk.api.endusers.getOne(enduser18.id); }, { onResult: function (e) { var _a, _b, _c; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Empty')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Purchase-Coupon-Summer20')); } })
495
+ return [4 /*yield*/, async_test("Purchase Made - No Coupon Data (backward compat)", function () { return enduser_with_tags(enduser18.id, ['Purchase-Any', 'Purchase-Coupon-Empty']); }, { onResult: function (e) { var _a, _b, _c; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Any')) && !!((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Coupon-Empty')) && !((_c = e.tags) === null || _c === void 0 ? void 0 : _c.includes('Purchase-Coupon-Summer20')); } })
549
496
  // Test 19: combined titles + couponCodes filter fires when both match
550
497
  ];
551
- case 89:
498
+ case 71:
552
499
  _b.sent();
553
500
  return [4 /*yield*/, sdk.api.purchases.createOne({
554
501
  enduserId: enduser19.id,
@@ -557,15 +504,12 @@ export var purchase_made_trigger_tests = function (_a) {
557
504
  processor: 'Stripe',
558
505
  couponCodes: ['SUMMER20'],
559
506
  })];
560
- case 90:
507
+ case 72:
561
508
  purchase19 = _b.sent();
562
- return [4 /*yield*/, wait(undefined, 500)];
563
- case 91:
564
- _b.sent();
565
- return [4 /*yield*/, async_test("Purchase Made - Title AND Coupon Match", function () { return sdk.api.endusers.getOne(enduser19.id); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Title-And-Coupon')); } })
509
+ return [4 /*yield*/, async_test("Purchase Made - Title AND Coupon Match", function () { return enduser_with_tags(enduser19.id, ['Purchase-Title-And-Coupon']); }, { onResult: function (e) { var _a; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Title-And-Coupon')); } })
566
510
  // Test 20: combined filter does NOT fire when the title matches but the coupon does not
567
511
  ];
568
- case 92:
512
+ case 73:
569
513
  _b.sent();
570
514
  return [4 /*yield*/, sdk.api.purchases.createOne({
571
515
  enduserId: enduser20.id,
@@ -573,142 +517,139 @@ export var purchase_made_trigger_tests = function (_a) {
573
517
  cost: { amount: 9999, currency: 'USD' },
574
518
  processor: 'Stripe',
575
519
  })];
576
- case 93:
520
+ case 74:
577
521
  purchase20 = _b.sent();
578
- return [4 /*yield*/, wait(undefined, 500)];
579
- case 94:
580
- _b.sent();
581
- return [4 /*yield*/, async_test("Purchase Made - Title Matches But Coupon Missing (AND semantics)", function () { return sdk.api.endusers.getOne(enduser20.id); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Exact-Title')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Title-And-Coupon')); } })
522
+ return [4 /*yield*/, async_test("Purchase Made - Title Matches But Coupon Missing (AND semantics)", function () { return enduser_with_tags(enduser20.id, ['Purchase-Exact-Title']); }, { onResult: function (e) { var _a, _b; return !!((_a = e.tags) === null || _a === void 0 ? void 0 : _a.includes('Purchase-Exact-Title')) && !((_b = e.tags) === null || _b === void 0 ? void 0 : _b.includes('Purchase-Title-And-Coupon')); } })
582
523
  // Validator round-trip: couponCodes persists on the trigger's event.info
583
524
  ];
584
- case 95:
525
+ case 75:
585
526
  _b.sent();
586
527
  // Validator round-trip: couponCodes persists on the trigger's event.info
587
528
  return [4 /*yield*/, async_test("Purchase Made - couponCodes round-trips on trigger info", function () { return sdk.api.automation_triggers.getOne(t10.id); }, { onResult: function (t) { var _a, _b; return JSON.stringify((_b = (_a = t.event) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.couponCodes) === JSON.stringify(['SUMMER20']); } })];
588
- case 96:
529
+ case 76:
589
530
  // Validator round-trip: couponCodes persists on the trigger's event.info
590
531
  _b.sent();
591
- _b.label = 97;
592
- case 97:
593
- _b.trys.push([97, , 133, 134]);
532
+ _b.label = 77;
533
+ case 77:
534
+ _b.trys.push([77, , 113, 114]);
594
535
  // Clean up test data - triggers first
595
536
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t1.id)];
596
- case 98:
537
+ case 78:
597
538
  // Clean up test data - triggers first
598
539
  _b.sent();
599
540
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t2.id)];
600
- case 99:
541
+ case 79:
601
542
  _b.sent();
602
543
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t3.id)];
603
- case 100:
544
+ case 80:
604
545
  _b.sent();
605
546
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t4.id)];
606
- case 101:
547
+ case 81:
607
548
  _b.sent();
608
549
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t5.id)];
609
- case 102:
550
+ case 82:
610
551
  _b.sent();
611
552
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t6.id)];
612
- case 103:
553
+ case 83:
613
554
  _b.sent();
614
555
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t7.id)];
615
- case 104:
556
+ case 84:
616
557
  _b.sent();
617
558
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t8.id)];
618
- case 105:
559
+ case 85:
619
560
  _b.sent();
620
561
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t9.id)];
621
- case 106:
562
+ case 86:
622
563
  _b.sent();
623
564
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t10.id)];
624
- case 107:
565
+ case 87:
625
566
  _b.sent();
626
567
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t11.id)];
627
- case 108:
568
+ case 88:
628
569
  _b.sent();
629
570
  return [4 /*yield*/, sdk.api.automation_triggers.deleteOne(t12.id)
630
571
  // Clean up products
631
572
  ];
632
- case 109:
573
+ case 89:
633
574
  _b.sent();
634
575
  // Clean up products
635
576
  return [4 /*yield*/, sdk.api.products.deleteOne(product1.id)];
636
- case 110:
577
+ case 90:
637
578
  // Clean up products
638
579
  _b.sent();
639
580
  return [4 /*yield*/, sdk.api.products.deleteOne(product2.id)];
640
- case 111:
581
+ case 91:
641
582
  _b.sent();
642
583
  return [4 /*yield*/, sdk.api.products.deleteOne(product3.id)
643
584
  // Clean up endusers to prevent interference with other tests
644
585
  ];
645
- case 112:
586
+ case 92:
646
587
  _b.sent();
647
588
  // Clean up endusers to prevent interference with other tests
648
589
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser1.id)];
649
- case 113:
590
+ case 93:
650
591
  // Clean up endusers to prevent interference with other tests
651
592
  _b.sent();
652
593
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser2.id)];
653
- case 114:
594
+ case 94:
654
595
  _b.sent();
655
596
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser3.id)];
656
- case 115:
597
+ case 95:
657
598
  _b.sent();
658
599
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser4.id)];
659
- case 116:
600
+ case 96:
660
601
  _b.sent();
661
602
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser5.id)];
662
- case 117:
603
+ case 97:
663
604
  _b.sent();
664
605
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser6.id)];
665
- case 118:
606
+ case 98:
666
607
  _b.sent();
667
608
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser7.id)];
668
- case 119:
609
+ case 99:
669
610
  _b.sent();
670
611
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser8.id)];
671
- case 120:
612
+ case 100:
672
613
  _b.sent();
673
614
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser9.id)];
674
- case 121:
615
+ case 101:
675
616
  _b.sent();
676
617
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser10.id)];
677
- case 122:
618
+ case 102:
678
619
  _b.sent();
679
620
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser11.id)];
680
- case 123:
621
+ case 103:
681
622
  _b.sent();
682
623
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser12.id)];
683
- case 124:
624
+ case 104:
684
625
  _b.sent();
685
626
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser13.id)];
686
- case 125:
627
+ case 105:
687
628
  _b.sent();
688
629
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser14.id)];
689
- case 126:
630
+ case 106:
690
631
  _b.sent();
691
632
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser15.id)];
692
- case 127:
633
+ case 107:
693
634
  _b.sent();
694
635
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser16.id)];
695
- case 128:
636
+ case 108:
696
637
  _b.sent();
697
638
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser17.id)];
698
- case 129:
639
+ case 109:
699
640
  _b.sent();
700
641
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser18.id)];
701
- case 130:
642
+ case 110:
702
643
  _b.sent();
703
644
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser19.id)];
704
- case 131:
645
+ case 111:
705
646
  _b.sent();
706
647
  return [4 /*yield*/, sdk.api.endusers.deleteOne(enduser20.id)];
707
- case 132:
648
+ case 112:
708
649
  _b.sent();
709
- return [3 /*break*/, 134];
710
- case 133: return [7 /*endfinally*/];
711
- case 134: return [2 /*return*/];
650
+ return [3 /*break*/, 114];
651
+ case 113: return [7 /*endfinally*/];
652
+ case 114: return [2 /*return*/];
712
653
  }
713
654
  });
714
655
  });