@qualified-salesforce/web 0.0.1-oidc-bootstrap

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 (560) hide show
  1. package/41842993ec71d6628e4949e9a22b146b.svg +3 -0
  2. package/7271f3433ed82fc7f56adcd9e30275f4.svg +17 -0
  3. package/LICENSE.txt +82 -0
  4. package/components/helpers/entriesStringValidations.js +69 -0
  5. package/components/helpers/languages.js +32 -0
  6. package/components/shared/assertUnreachable.js +5 -0
  7. package/components/shared/controls/imageCropperHelpers.js +43 -0
  8. package/components/shared/meetingLoadingProgressSpec.js +116 -0
  9. package/constants.generated.js +9883 -0
  10. package/css/widget/multimodal_v2/host.split-css.css +162 -0
  11. package/css/widget/multimodal_v2/index.split-css.panda.css +5240 -0
  12. package/css/widget/widget.split-css.css +100 -0
  13. package/fonts/inter/Inter-Black.woff +0 -0
  14. package/fonts/inter/Inter-Black.woff2 +0 -0
  15. package/fonts/inter/Inter-BlackItalic.woff +0 -0
  16. package/fonts/inter/Inter-BlackItalic.woff2 +0 -0
  17. package/fonts/inter/Inter-Bold.woff +0 -0
  18. package/fonts/inter/Inter-Bold.woff2 +0 -0
  19. package/fonts/inter/Inter-BoldItalic.woff +0 -0
  20. package/fonts/inter/Inter-BoldItalic.woff2 +0 -0
  21. package/fonts/inter/Inter-ExtraBold.woff +0 -0
  22. package/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  23. package/fonts/inter/Inter-ExtraBoldItalic.woff +0 -0
  24. package/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
  25. package/fonts/inter/Inter-ExtraLight.woff +0 -0
  26. package/fonts/inter/Inter-ExtraLight.woff2 +0 -0
  27. package/fonts/inter/Inter-ExtraLightItalic.woff +0 -0
  28. package/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
  29. package/fonts/inter/Inter-Italic.woff +0 -0
  30. package/fonts/inter/Inter-Italic.woff2 +0 -0
  31. package/fonts/inter/Inter-Light.woff +0 -0
  32. package/fonts/inter/Inter-Light.woff2 +0 -0
  33. package/fonts/inter/Inter-LightItalic.woff +0 -0
  34. package/fonts/inter/Inter-LightItalic.woff2 +0 -0
  35. package/fonts/inter/Inter-Medium.woff +0 -0
  36. package/fonts/inter/Inter-Medium.woff2 +0 -0
  37. package/fonts/inter/Inter-MediumItalic.woff +0 -0
  38. package/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  39. package/fonts/inter/Inter-Regular.woff +0 -0
  40. package/fonts/inter/Inter-Regular.woff2 +0 -0
  41. package/fonts/inter/Inter-SemiBold.woff +0 -0
  42. package/fonts/inter/Inter-SemiBold.woff2 +0 -0
  43. package/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  44. package/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  45. package/fonts/inter/Inter-Thin.woff +0 -0
  46. package/fonts/inter/Inter-Thin.woff2 +0 -0
  47. package/fonts/inter/Inter-ThinItalic.woff +0 -0
  48. package/fonts/inter/Inter-ThinItalic.woff2 +0 -0
  49. package/fonts/inter/Inter-italic.var.woff2 +0 -0
  50. package/fonts/inter/Inter-roman.var.woff2 +0 -0
  51. package/images/close.js +63 -0
  52. package/images/logo.js +22 -0
  53. package/js/4101.js +19721 -0
  54. package/js/daily-esm.js +9948 -0
  55. package/js/date-fns.js +427 -0
  56. package/js/multimodal_v2.js +1653 -0
  57. package/js/runtime.js +109 -0
  58. package/media/Inter-Black.796be8d8bf.woff2 +0 -0
  59. package/media/Inter-Black.b254104c56.woff +0 -0
  60. package/media/Inter-BlackItalic.70306b0eae.woff +0 -0
  61. package/media/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
  62. package/media/Inter-Bold.579e0f95ca.woff2 +0 -0
  63. package/media/Inter-Bold.b1234477a5.woff +0 -0
  64. package/media/Inter-BoldItalic.3d0d804323.woff +0 -0
  65. package/media/Inter-BoldItalic.828a494e04.woff2 +0 -0
  66. package/media/Inter-ExtraBold.208a9e6c99.woff +0 -0
  67. package/media/Inter-ExtraBold.d65f028165.woff2 +0 -0
  68. package/media/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
  69. package/media/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
  70. package/media/Inter-ExtraLight.15c082a57d.woff +0 -0
  71. package/media/Inter-ExtraLight.6824177d1e.woff2 +0 -0
  72. package/media/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
  73. package/media/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
  74. package/media/Inter-Italic.9beab78452.woff +0 -0
  75. package/media/Inter-Italic.d593a8df79.woff2 +0 -0
  76. package/media/Inter-Light.27083fa637.woff2 +0 -0
  77. package/media/Inter-Light.91dfddd842.woff +0 -0
  78. package/media/Inter-LightItalic.0a783b89b3.woff2 +0 -0
  79. package/media/Inter-LightItalic.f8ccf2813f.woff +0 -0
  80. package/media/Inter-Medium.dc792b508e.woff2 +0 -0
  81. package/media/Inter-Medium.ec7dd2d9d8.woff +0 -0
  82. package/media/Inter-MediumItalic.17301e5b40.woff +0 -0
  83. package/media/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
  84. package/media/Inter-Regular.f1f0c35b32.woff2 +0 -0
  85. package/media/Inter-Regular.f356e84aa0.woff +0 -0
  86. package/media/Inter-SemiBold.55027e4724.woff +0 -0
  87. package/media/Inter-SemiBold.fcb100c760.woff2 +0 -0
  88. package/media/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
  89. package/media/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
  90. package/media/Inter-Thin.16325d9b0f.woff +0 -0
  91. package/media/Inter-Thin.dafaa44d99.woff2 +0 -0
  92. package/media/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
  93. package/media/Inter-ThinItalic.d3d8994788.woff +0 -0
  94. package/media/Inter-italic.var.958a0b9742.woff2 +0 -0
  95. package/media/Inter-roman.var.b2129c009c.woff2 +0 -0
  96. package/package.json +20 -0
  97. package/packs/widget/api/docking/docking_host.js +97 -0
  98. package/packs/widget/api/docking/index.js +294 -0
  99. package/packs/widget/api/docking/shared.js +164 -0
  100. package/packs/widget/api/docking/viewport_lock.js +488 -0
  101. package/packs/widget/api/docking/viewport_resize.js +1203 -0
  102. package/packs/widget/esm/fonts/Inter-Black.796be8d8bf.woff2 +0 -0
  103. package/packs/widget/esm/fonts/Inter-Black.b254104c56.woff +0 -0
  104. package/packs/widget/esm/fonts/Inter-BlackItalic.70306b0eae.woff +0 -0
  105. package/packs/widget/esm/fonts/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
  106. package/packs/widget/esm/fonts/Inter-Bold.579e0f95ca.woff2 +0 -0
  107. package/packs/widget/esm/fonts/Inter-Bold.b1234477a5.woff +0 -0
  108. package/packs/widget/esm/fonts/Inter-BoldItalic.3d0d804323.woff +0 -0
  109. package/packs/widget/esm/fonts/Inter-BoldItalic.828a494e04.woff2 +0 -0
  110. package/packs/widget/esm/fonts/Inter-ExtraBold.208a9e6c99.woff +0 -0
  111. package/packs/widget/esm/fonts/Inter-ExtraBold.d65f028165.woff2 +0 -0
  112. package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
  113. package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
  114. package/packs/widget/esm/fonts/Inter-ExtraLight.15c082a57d.woff +0 -0
  115. package/packs/widget/esm/fonts/Inter-ExtraLight.6824177d1e.woff2 +0 -0
  116. package/packs/widget/esm/fonts/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
  117. package/packs/widget/esm/fonts/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
  118. package/packs/widget/esm/fonts/Inter-Italic.9beab78452.woff +0 -0
  119. package/packs/widget/esm/fonts/Inter-Italic.d593a8df79.woff2 +0 -0
  120. package/packs/widget/esm/fonts/Inter-Light.27083fa637.woff2 +0 -0
  121. package/packs/widget/esm/fonts/Inter-Light.91dfddd842.woff +0 -0
  122. package/packs/widget/esm/fonts/Inter-LightItalic.0a783b89b3.woff2 +0 -0
  123. package/packs/widget/esm/fonts/Inter-LightItalic.f8ccf2813f.woff +0 -0
  124. package/packs/widget/esm/fonts/Inter-Medium.dc792b508e.woff2 +0 -0
  125. package/packs/widget/esm/fonts/Inter-Medium.ec7dd2d9d8.woff +0 -0
  126. package/packs/widget/esm/fonts/Inter-MediumItalic.17301e5b40.woff +0 -0
  127. package/packs/widget/esm/fonts/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
  128. package/packs/widget/esm/fonts/Inter-Regular.f1f0c35b32.woff2 +0 -0
  129. package/packs/widget/esm/fonts/Inter-Regular.f356e84aa0.woff +0 -0
  130. package/packs/widget/esm/fonts/Inter-SemiBold.55027e4724.woff +0 -0
  131. package/packs/widget/esm/fonts/Inter-SemiBold.fcb100c760.woff2 +0 -0
  132. package/packs/widget/esm/fonts/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
  133. package/packs/widget/esm/fonts/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
  134. package/packs/widget/esm/fonts/Inter-Thin.16325d9b0f.woff +0 -0
  135. package/packs/widget/esm/fonts/Inter-Thin.dafaa44d99.woff2 +0 -0
  136. package/packs/widget/esm/fonts/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
  137. package/packs/widget/esm/fonts/Inter-ThinItalic.d3d8994788.woff +0 -0
  138. package/packs/widget/esm/fonts/Inter-italic.var.958a0b9742.woff2 +0 -0
  139. package/packs/widget/esm/fonts/Inter-roman.var.b2129c009c.woff2 +0 -0
  140. package/packs/widget/esm/index.js +183 -0
  141. package/packs/widget/esm/qualified.css +5502 -0
  142. package/routes/app/offers/scripts/OfferMainScript.js +154 -0
  143. package/routes/app/offers/scripts/constants.js +71 -0
  144. package/routes/app/offers/scripts/main/ButtonManager.js +65 -0
  145. package/routes/app/offers/scripts/main/FormManager.js +325 -0
  146. package/routes/app/offers/scripts/main/MainContext.js +19 -0
  147. package/routes/app/offers/scripts/main/OfferManager.js +91 -0
  148. package/routes/app/offers/scripts/main/TriggerManager.js +125 -0
  149. package/routes/app/offers/scripts/rendering/ContentManager.js +53 -0
  150. package/routes/app/offers/scripts/rendering/LocationManager.js +83 -0
  151. package/routes/app/offers/scripts/rendering/RenderedOffer.js +188 -0
  152. package/routes/app/offers/scripts/rendering/Renderer.js +69 -0
  153. package/routes/app/offers/scripts/rendering/RenderingInitializer.js +62 -0
  154. package/routes/app/offers/scripts/rendering/animations/AnimationManager.js +31 -0
  155. package/routes/app/offers/scripts/rendering/animations/AnimationManagerFooter.js +81 -0
  156. package/routes/app/offers/scripts/rendering/animations/AnimationManagerHeader.js +81 -0
  157. package/routes/app/offers/scripts/rendering/animations/AnimationManagerModal.js +117 -0
  158. package/routes/app/offers/scripts/rendering/animations/AnimationManagerSidebar.js +75 -0
  159. package/routes/app/offers/scripts/rendering/animations/AnimationResult.js +43 -0
  160. package/routes/app/offers/scripts/rendering/animations/Animator.js +78 -0
  161. package/routes/app/offers/scripts/rendering/animations/BaseAnimationManager.js +25 -0
  162. package/routes/app/offers/scripts/rendering/lib/BaseComponent.js +106 -0
  163. package/routes/app/offers/scripts/rendering/lib/FormComponent.js +134 -0
  164. package/routes/app/offers/scripts/rendering/lib/OfferComponent.js +144 -0
  165. package/routes/app/offers/scripts/rendering/lib/ScrollbarWidth.js +27 -0
  166. package/routes/app/offers/scripts/rendering/lib/decorators.js +20 -0
  167. package/routes/app/offers/scripts/rendering/locations/CSSVarsManager.js +66 -0
  168. package/routes/app/offers/scripts/rendering/locations/ElementResizeObserver.js +49 -0
  169. package/routes/app/offers/scripts/rendering/locations/footer.js +53 -0
  170. package/routes/app/offers/scripts/rendering/locations/header/AsyncBatchProcessor.js +70 -0
  171. package/routes/app/offers/scripts/rendering/locations/header/CSSTransitionObserver.js +182 -0
  172. package/routes/app/offers/scripts/rendering/locations/header/ElementStyleChangeObserver.js +138 -0
  173. package/routes/app/offers/scripts/rendering/locations/header/ExternalStyleManager.js +110 -0
  174. package/routes/app/offers/scripts/rendering/locations/header/Header.js +353 -0
  175. package/routes/app/offers/scripts/rendering/locations/header/InlineStyleManager.js +105 -0
  176. package/routes/app/offers/scripts/rendering/locations/header/MatchingElementsObserver.js +107 -0
  177. package/routes/app/offers/scripts/rendering/locations/header/NewElementsObserver.js +129 -0
  178. package/routes/app/offers/scripts/rendering/locations/header/RuleWrapper.js +46 -0
  179. package/routes/app/offers/scripts/rendering/locations/header/SelectorObservable.js +23 -0
  180. package/routes/app/offers/scripts/rendering/locations/header/SelectorObserver.js +61 -0
  181. package/routes/app/offers/scripts/rendering/locations/header/ShiftedElementsManager.js +45 -0
  182. package/routes/app/offers/scripts/rendering/locations/header/StyleElementManager.js +37 -0
  183. package/routes/app/offers/scripts/rendering/locations/header/StyleElementWrapper.js +62 -0
  184. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectorValue.js +45 -0
  185. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectors.js +62 -0
  186. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/StyleSelectorObserver.js +294 -0
  187. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/constants.js +21 -0
  188. package/routes/app/offers/scripts/rendering/locations/header/WindowResizeObserver.js +43 -0
  189. package/routes/app/offers/scripts/rendering/locations/header/utils.js +25 -0
  190. package/routes/app/offers/scripts/rendering/locations/popup.js +66 -0
  191. package/routes/app/offers/scripts/rendering/locations/sidebar.js +21 -0
  192. package/routes/app/offers/scripts/rendering/variations/ButtonBanner.js +105 -0
  193. package/routes/app/offers/scripts/rendering/variations/ButtonModal.js +114 -0
  194. package/routes/app/offers/scripts/rendering/variations/FormBanner.js +214 -0
  195. package/routes/app/offers/scripts/rendering/variations/FormModal.js +325 -0
  196. package/routes/app/offers/scripts/rendering/variations/LinkBanner.js +105 -0
  197. package/routes/app/offers/scripts/rendering/variations/components/Body.js +29 -0
  198. package/routes/app/offers/scripts/rendering/variations/components/Button.js +128 -0
  199. package/routes/app/offers/scripts/rendering/variations/components/DismissButton.js +39 -0
  200. package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageBanner.js +110 -0
  201. package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageModal.js +128 -0
  202. package/routes/app/offers/scripts/rendering/variations/components/Headline.js +94 -0
  203. package/routes/app/offers/scripts/rendering/variations/components/MultiFieldForm.js +302 -0
  204. package/routes/app/offers/scripts/rendering/variations/components/Tooltip.js +74 -0
  205. package/routes/app/offers/scripts/rendering/variations/icons.js +15 -0
  206. package/routes/app/offers/scripts/utils.js +115 -0
  207. package/routes/app/offers/utils/HTMLUtils.js +10 -0
  208. package/routes/app/offers/utils/createTypeGuard.js +32 -0
  209. package/routes/app/offers/utils/promise-utils.js +22 -0
  210. package/routes/app/websiteBuilder/stores/storeHelpers.js +18 -0
  211. package/sounds/message-initial.mp3 +0 -0
  212. package/sounds/message-received.mp3 +0 -0
  213. package/sounds/message-sent.mp3 +0 -0
  214. package/src/arrays.js +15 -0
  215. package/src/audio.js +106 -0
  216. package/src/bounded-set.js +16 -0
  217. package/src/bounding_box_observer.js +129 -0
  218. package/src/decorators.js +29 -0
  219. package/src/dom.js +128 -0
  220. package/src/dom_roots.js +26 -0
  221. package/src/embedded_forms/EmbeddedForm.js +638 -0
  222. package/src/embedded_forms/QualifiedEmbeddedForm.js +51 -0
  223. package/src/embedded_forms/QualifiedFormField.js +137 -0
  224. package/src/embedded_forms/utils.js +17 -0
  225. package/src/graphql-types.js +1686 -0
  226. package/src/iframes.js +86 -0
  227. package/src/localstorage.js +43 -0
  228. package/src/mirror/Shipper.js +133 -0
  229. package/src/mirror/constants.generated.js +13 -0
  230. package/src/mirror/constants.js +238 -0
  231. package/src/mirror/shipper/ChangeQueue.js +155 -0
  232. package/src/mirror/shipper/DOMSerializer.js +392 -0
  233. package/src/mirror/shipper/observers.js +441 -0
  234. package/src/mirror/shipper/utils.js +98 -0
  235. package/src/mixins/disposable.js +125 -0
  236. package/src/mixins/injectable.js +37 -0
  237. package/src/personalizations/personalization-manager.js +110 -0
  238. package/src/personalizations/strategies/node-freezing-strategy.js +174 -0
  239. package/src/personalizations/utils.js +187 -0
  240. package/src/promises.js +107 -0
  241. package/src/proxy.js +144 -0
  242. package/src/qualified_root.js +35 -0
  243. package/src/query_params.js +55 -0
  244. package/src/shadow-dom-helper.js +63 -0
  245. package/src/singleton_host.js +39 -0
  246. package/src/smart_website/trigger.js +49 -0
  247. package/src/smart_website/utils.js +149 -0
  248. package/src/string.js +53 -0
  249. package/src/timezone.js +57 -0
  250. package/src/timing.js +49 -0
  251. package/src/type-utils.js +76 -0
  252. package/src/url-utils.js +102 -0
  253. package/src/url.js +50 -0
  254. package/src/utils.js +72 -0
  255. package/src/validation.js.js +29 -0
  256. package/src/validation_ts.js +6 -0
  257. package/vendor/actioncable/adapters.js +6 -0
  258. package/vendor/actioncable/connection.js +204 -0
  259. package/vendor/actioncable/connection_monitor.js +129 -0
  260. package/vendor/actioncable/consumer.js +91 -0
  261. package/vendor/actioncable/index.js +34 -0
  262. package/vendor/actioncable/internal.js +22 -0
  263. package/vendor/actioncable/logger.js +28 -0
  264. package/vendor/actioncable/subscription.js +93 -0
  265. package/vendor/actioncable/subscriptions.js +89 -0
  266. package/vendor/open-telemetry-idgenerator.js +43 -0
  267. package/widget/analytics/facebook_tracker.js +8 -0
  268. package/widget/analytics/google_analytics_tracker.js +83 -0
  269. package/widget/analytics/google_tag_manager_tracker.js +22 -0
  270. package/widget/analytics.js +58 -0
  271. package/widget/api_handler/api_handler.js +730 -0
  272. package/widget/api_handler/base_api_handler.js +249 -0
  273. package/widget/booker_intent_tracker.js +391 -0
  274. package/widget/booker_outcome_tracker.js +329 -0
  275. package/widget/capture_widget_exceptions.js +150 -0
  276. package/widget/channel.js +282 -0
  277. package/widget/composite_experience_adapter.js +101 -0
  278. package/widget/constants.generated.js +350 -0
  279. package/widget/constants.js +21 -0
  280. package/widget/container.js +193 -0
  281. package/widget/content_activity_emitter.js +36 -0
  282. package/widget/data360_visitor.js +67 -0
  283. package/widget/date_provider.js +11 -0
  284. package/widget/debug_mode_state.js +175 -0
  285. package/widget/dummy_module.js +9 -0
  286. package/widget/eloqua_visitor.js +17 -0
  287. package/widget/form_cta_booker_intent.js +246 -0
  288. package/widget/hubspot_visitor.js +39 -0
  289. package/widget/inline_meeting_booker_page.js +90 -0
  290. package/widget/local_state/abstract_local_state.js +38 -0
  291. package/widget/local_state/debug_state/abstract_debug_flow.js +29 -0
  292. package/widget/local_state/debug_state/custom_form_flow.js +14 -0
  293. package/widget/local_state/debug_state/hubspot_form_flow.js +19 -0
  294. package/widget/local_state/debug_state/hubspot_v4_form_flow.js +19 -0
  295. package/widget/local_state/debug_state/marketo_form_flow.js +20 -0
  296. package/widget/local_state/debug_state/pardot_form_flow.js +18 -0
  297. package/widget/local_state/debug_state.js +362 -0
  298. package/widget/local_state/trace_state.js +20 -0
  299. package/widget/location_provider.js +9 -0
  300. package/widget/marketo_visitor.js +39 -0
  301. package/widget/meetings/tracing/buttons_forms_triggering_tracer.js +124 -0
  302. package/widget/meetings/tracing/spans/button_spans.js +18 -0
  303. package/widget/meetings/tracing/spans/form_spans.js +11 -0
  304. package/widget/multimodal_v2/assets_preloader.js +97 -0
  305. package/widget/multimodal_v2/components/AppLayout.js +93 -0
  306. package/widget/multimodal_v2/components/CursorOverlay.js +93 -0
  307. package/widget/multimodal_v2/components/PointerRectOverlay.js +74 -0
  308. package/widget/multimodal_v2/components/app/Artifact.js +109 -0
  309. package/widget/multimodal_v2/components/app/Background.js +27 -0
  310. package/widget/multimodal_v2/components/app/CalendarLoadingContent.js +255 -0
  311. package/widget/multimodal_v2/components/app/Chat.js +39 -0
  312. package/widget/multimodal_v2/components/app/CookieConsentModal.js +149 -0
  313. package/widget/multimodal_v2/components/app/Foreground.js +48 -0
  314. package/widget/multimodal_v2/components/app/HiddenInput.js +41 -0
  315. package/widget/multimodal_v2/components/app/Input.js +72 -0
  316. package/widget/multimodal_v2/components/app/LightboxExperience.js +769 -0
  317. package/widget/multimodal_v2/components/app/LoadingOverlay.js +97 -0
  318. package/widget/multimodal_v2/components/app/Main.js +985 -0
  319. package/widget/multimodal_v2/components/app/MessengerButton.js +160 -0
  320. package/widget/multimodal_v2/components/app/Multimodal.js +17 -0
  321. package/widget/multimodal_v2/components/app/OverlayControls.js +79 -0
  322. package/widget/multimodal_v2/components/app/Preview.js +32 -0
  323. package/widget/multimodal_v2/components/app/PrivacyDisclosure.js +57 -0
  324. package/widget/multimodal_v2/components/app/RotateDeviceOverlay.js +70 -0
  325. package/widget/multimodal_v2/components/app/Toolbar.js +156 -0
  326. package/widget/multimodal_v2/components/chat/ChatComposer.js +129 -0
  327. package/widget/multimodal_v2/components/chat/ChatInputForm.js +398 -0
  328. package/widget/multimodal_v2/components/chat/ColdStartQuestions.js +354 -0
  329. package/widget/multimodal_v2/components/chat/ComposerErrorBanner.js +62 -0
  330. package/widget/multimodal_v2/components/chat/PostCallSurvey.js +359 -0
  331. package/widget/multimodal_v2/components/chat/preview/FieldRequestRenderer.js +41 -0
  332. package/widget/multimodal_v2/components/chat/preview/PreviewMessageRenderer.js +60 -0
  333. package/widget/multimodal_v2/components/chat/preview/SharedOfferRenderer.js +143 -0
  334. package/widget/multimodal_v2/components/chat/preview/TextRenderer.js +27 -0
  335. package/widget/multimodal_v2/components/chat/preview/TimelinePreview.js +254 -0
  336. package/widget/multimodal_v2/components/chat/timeline/CalendarEventOfferRenderer.js +103 -0
  337. package/widget/multimodal_v2/components/chat/timeline/CalendarEventPickRenderer.js +148 -0
  338. package/widget/multimodal_v2/components/chat/timeline/FieldEntryRenderer.js +84 -0
  339. package/widget/multimodal_v2/components/chat/timeline/FieldRequestRenderer.js +56 -0
  340. package/widget/multimodal_v2/components/chat/timeline/InlinePrivacyDisclosure.js +66 -0
  341. package/widget/multimodal_v2/components/chat/timeline/LinkPreviewCard.js +70 -0
  342. package/widget/multimodal_v2/components/chat/timeline/MessageEntry.js +88 -0
  343. package/widget/multimodal_v2/components/chat/timeline/PresentContentRenderer.js +30 -0
  344. package/widget/multimodal_v2/components/chat/timeline/PresentDeckRenderer.js +279 -0
  345. package/widget/multimodal_v2/components/chat/timeline/PresentVideoRenderer.js +131 -0
  346. package/widget/multimodal_v2/components/chat/timeline/ShareContentRenderer.js +59 -0
  347. package/widget/multimodal_v2/components/chat/timeline/SharedOfferRenderer.js +131 -0
  348. package/widget/multimodal_v2/components/chat/timeline/SystemRenderer.js +82 -0
  349. package/widget/multimodal_v2/components/chat/timeline/TextRenderer.js +66 -0
  350. package/widget/multimodal_v2/components/chat/timeline/Timeline.js +158 -0
  351. package/widget/multimodal_v2/components/debug/DebugMultimodalPanel.js +327 -0
  352. package/widget/multimodal_v2/components/decks/index.js +160 -0
  353. package/widget/multimodal_v2/components/field_request/BooleanField.js +77 -0
  354. package/widget/multimodal_v2/components/field_request/FieldComponents.js +69 -0
  355. package/widget/multimodal_v2/components/field_request/Form.js +87 -0
  356. package/widget/multimodal_v2/components/field_request/MultiPicklistField.js +240 -0
  357. package/widget/multimodal_v2/components/field_request/PicklistField.js +166 -0
  358. package/widget/multimodal_v2/components/field_request/SingleLineInputField.js +69 -0
  359. package/widget/multimodal_v2/components/field_request/TextField.js +37 -0
  360. package/widget/multimodal_v2/components/field_request/index.js +170 -0
  361. package/widget/multimodal_v2/components/helpers/AutoScroll.js +37 -0
  362. package/widget/multimodal_v2/components/helpers/ErrorBoundary.js +53 -0
  363. package/widget/multimodal_v2/components/helpers/FocusTrapDialog.js +26 -0
  364. package/widget/multimodal_v2/components/helpers/ImpressionTracker.js +94 -0
  365. package/widget/multimodal_v2/components/helpers/ListRenderer.js +37 -0
  366. package/widget/multimodal_v2/components/helpers/Localization.js +76 -0
  367. package/widget/multimodal_v2/components/helpers/Persisted.js +166 -0
  368. package/widget/multimodal_v2/components/helpers/RichText.js +358 -0
  369. package/widget/multimodal_v2/components/helpers/ScreenReaderHeading.js +17 -0
  370. package/widget/multimodal_v2/components/helpers/Thumbnail.js +190 -0
  371. package/widget/multimodal_v2/components/helpers/VisuallyHidden.js +41 -0
  372. package/widget/multimodal_v2/components/helpers/content_click_payloads.js +58 -0
  373. package/widget/multimodal_v2/components/helpers/useDraggable.js +103 -0
  374. package/widget/multimodal_v2/components/helpers/useTextOverflow.js +44 -0
  375. package/widget/multimodal_v2/components/lightbox_gather/index.js +741 -0
  376. package/widget/multimodal_v2/components/meetings/ArtifactEntryPoint.js +252 -0
  377. package/widget/multimodal_v2/components/meetings/MeetingAdditionalAttendees.js +325 -0
  378. package/widget/multimodal_v2/components/meetings/MeetingBookerEntry.js +100 -0
  379. package/widget/multimodal_v2/components/meetings/MeetingDetailsCard.js +99 -0
  380. package/widget/multimodal_v2/components/meetings/MeetingErrorBanner.js +62 -0
  381. package/widget/multimodal_v2/components/meetings/MeetingOfferEmailStep.js +239 -0
  382. package/widget/multimodal_v2/components/meetings/MeetingOfferFooter.js +104 -0
  383. package/widget/multimodal_v2/components/meetings/MeetingOfferSelectionStep.js +60 -0
  384. package/widget/multimodal_v2/components/meetings/MeetingRepHeader.js +222 -0
  385. package/widget/multimodal_v2/components/meetings/MeetingStepShell.js +92 -0
  386. package/widget/multimodal_v2/components/meetings/MeetingSummaryRail.js +515 -0
  387. package/widget/multimodal_v2/components/meetings/MeetingTimeSelector.js +603 -0
  388. package/widget/multimodal_v2/components/meetings/MonthDatePicker.js +422 -0
  389. package/widget/multimodal_v2/components/meetings/NavigationButtons.js +76 -0
  390. package/widget/multimodal_v2/components/meetings/TimeSlotHeader.js +357 -0
  391. package/widget/multimodal_v2/components/meetings/WeekViewHeader.js +20 -0
  392. package/widget/multimodal_v2/components/meetings/constants.js +7 -0
  393. package/widget/multimodal_v2/components/meetings/index.js +47 -0
  394. package/widget/multimodal_v2/components/meetings/utils.js +328 -0
  395. package/widget/multimodal_v2/components/multimodal/Audio.js +28 -0
  396. package/widget/multimodal_v2/components/multimodal/Controls.js +188 -0
  397. package/widget/multimodal_v2/components/multimodal/LiveVideo.js +63 -0
  398. package/widget/multimodal_v2/components/multimodal/MultiModalComponent.js +424 -0
  399. package/widget/multimodal_v2/components/multimodal/MultimodalAvatar.js +36 -0
  400. package/widget/multimodal_v2/components/multimodal/OrbAvatar.js +326 -0
  401. package/widget/multimodal_v2/components/multimodal/Status.js +220 -0
  402. package/widget/multimodal_v2/components/multimodal/VideoAvatar.js +24 -0
  403. package/widget/multimodal_v2/components/multimodal/VideoPreview.js +114 -0
  404. package/widget/multimodal_v2/components/multimodal/useAudioLevelMonitoring.js +96 -0
  405. package/widget/multimodal_v2/components/multimodal/useMultimodal.js +434 -0
  406. package/widget/multimodal_v2/components/presentations/index.js +372 -0
  407. package/widget/multimodal_v2/components/shared/Avatar.js +92 -0
  408. package/widget/multimodal_v2/components/shared/AvatarGroup.js +135 -0
  409. package/widget/multimodal_v2/components/shared/Button.js +245 -0
  410. package/widget/multimodal_v2/components/shared/ButtonGroup.js +133 -0
  411. package/widget/multimodal_v2/components/shared/ComposerForm.js +98 -0
  412. package/widget/multimodal_v2/components/shared/SpeakingIndicator.js +239 -0
  413. package/widget/multimodal_v2/components/shared/ThinkingAnimation.js +165 -0
  414. package/widget/multimodal_v2/components/shared/Tooltip.js +266 -0
  415. package/widget/multimodal_v2/components/shared/controls/Dropdown.js +79 -0
  416. package/widget/multimodal_v2/components/shared/controls/PillToggle.js +142 -0
  417. package/widget/multimodal_v2/components/shared/controls/TextArea.js +114 -0
  418. package/widget/multimodal_v2/components/shared/toolCallLabels.js +12 -0
  419. package/widget/multimodal_v2/components/slides/SlidesThumbnail.js +47 -0
  420. package/widget/multimodal_v2/components/slides/index.js +61 -0
  421. package/widget/multimodal_v2/constants.js +88 -0
  422. package/widget/multimodal_v2/host.split-css.js +2 -0
  423. package/widget/multimodal_v2/host.string.js +96 -0
  424. package/widget/multimodal_v2/images/icons.js +582 -0
  425. package/widget/multimodal_v2/images/posters/piper_low_res.jpg +0 -0
  426. package/widget/multimodal_v2/index.js +23 -0
  427. package/widget/multimodal_v2/index.panda.js +28 -0
  428. package/widget/multimodal_v2/index.split-css.panda.js +2 -0
  429. package/widget/multimodal_v2/inline_meeting_booker.js +182 -0
  430. package/widget/multimodal_v2/locales/cs.js +196 -0
  431. package/widget/multimodal_v2/locales/da.js +196 -0
  432. package/widget/multimodal_v2/locales/de.js +196 -0
  433. package/widget/multimodal_v2/locales/en.js +196 -0
  434. package/widget/multimodal_v2/locales/en_AU.js +197 -0
  435. package/widget/multimodal_v2/locales/en_GB.js +197 -0
  436. package/widget/multimodal_v2/locales/es.js +197 -0
  437. package/widget/multimodal_v2/locales/es_LA.js +196 -0
  438. package/widget/multimodal_v2/locales/fi.js +196 -0
  439. package/widget/multimodal_v2/locales/fr.js +197 -0
  440. package/widget/multimodal_v2/locales/fr_CA.js +196 -0
  441. package/widget/multimodal_v2/locales/id.js +196 -0
  442. package/widget/multimodal_v2/locales/index.js +48 -0
  443. package/widget/multimodal_v2/locales/it.js +196 -0
  444. package/widget/multimodal_v2/locales/ja.js +196 -0
  445. package/widget/multimodal_v2/locales/ko.js +196 -0
  446. package/widget/multimodal_v2/locales/nb.js +196 -0
  447. package/widget/multimodal_v2/locales/nl.js +196 -0
  448. package/widget/multimodal_v2/locales/pl.js +196 -0
  449. package/widget/multimodal_v2/locales/pt_BR.js +196 -0
  450. package/widget/multimodal_v2/locales/ru.js +196 -0
  451. package/widget/multimodal_v2/locales/sv.js +196 -0
  452. package/widget/multimodal_v2/locales/th.js +196 -0
  453. package/widget/multimodal_v2/locales/tr.js +196 -0
  454. package/widget/multimodal_v2/locales/vi.js +196 -0
  455. package/widget/multimodal_v2/locales/zh_CN.js +196 -0
  456. package/widget/multimodal_v2/locales/zh_TW.js +196 -0
  457. package/widget/multimodal_v2/multimodal.js +633 -0
  458. package/widget/multimodal_v2/multimodal_channel.js +195 -0
  459. package/widget/multimodal_v2/signals/active_conversation_signal.js +33 -0
  460. package/widget/multimodal_v2/signals/allowed_conversation_mode_signal.js +38 -0
  461. package/widget/multimodal_v2/signals/artifact_signal.js +22 -0
  462. package/widget/multimodal_v2/signals/layout_signal.js +98 -0
  463. package/widget/multimodal_v2/signals/messages_signal.js +207 -0
  464. package/widget/multimodal_v2/signals/ui_state_signal.js +128 -0
  465. package/widget/multimodal_v2/stable_bundle_src.js +44 -0
  466. package/widget/multimodal_v2/stores/ai_conversation_store.js +221 -0
  467. package/widget/multimodal_v2/stores/artifact_store.js +205 -0
  468. package/widget/multimodal_v2/stores/base_store.js +16 -0
  469. package/widget/multimodal_v2/stores/call_store.js +770 -0
  470. package/widget/multimodal_v2/stores/call_ui_adapter.js +225 -0
  471. package/widget/multimodal_v2/stores/debug_multimodal_scenario_store.js +471 -0
  472. package/widget/multimodal_v2/stores/decks_store.js +285 -0
  473. package/widget/multimodal_v2/stores/device_store.js +63 -0
  474. package/widget/multimodal_v2/stores/docking_store.js +62 -0
  475. package/widget/multimodal_v2/stores/field_request_store.js +326 -0
  476. package/widget/multimodal_v2/stores/meeting_store.js +477 -0
  477. package/widget/multimodal_v2/stores/participant_store.js +73 -0
  478. package/widget/multimodal_v2/stores/post_call_survey_store.js +160 -0
  479. package/widget/multimodal_v2/stores/pounce_tracking_store.js +163 -0
  480. package/widget/multimodal_v2/stores/pounce_tracking_store_v2.js +511 -0
  481. package/widget/multimodal_v2/stores/presentations_store.js +111 -0
  482. package/widget/multimodal_v2/stores/root_store.js +1919 -0
  483. package/widget/multimodal_v2/stores/screen_share_store.js +217 -0
  484. package/widget/multimodal_v2/stores/slides_store.js +21 -0
  485. package/widget/multimodal_v2/stores/translation_store.js +185 -0
  486. package/widget/multimodal_v2/stores/ui_store.js +496 -0
  487. package/widget/multimodal_v2/stores/waiting_store.js +159 -0
  488. package/widget/multimodal_v2/stores/website_navigation_store.js +767 -0
  489. package/widget/multimodal_v2/styled-system/css/conditions.js +34 -0
  490. package/widget/multimodal_v2/styled-system/css/css.js +48 -0
  491. package/widget/multimodal_v2/styled-system/css/cva.js +96 -0
  492. package/widget/multimodal_v2/styled-system/css/cx.js +13 -0
  493. package/widget/multimodal_v2/styled-system/css/index.js +15 -0
  494. package/widget/multimodal_v2/styled-system/css/sva.js +69 -0
  495. package/widget/multimodal_v2/styled-system/helpers.js +384 -0
  496. package/widget/multimodal_v2/styled-system/jsx/create-style-context.js +96 -0
  497. package/widget/multimodal_v2/styled-system/jsx/factory-helper.js +19 -0
  498. package/widget/multimodal_v2/styled-system/jsx/factory.js +111 -0
  499. package/widget/multimodal_v2/styled-system/jsx/index.js +12 -0
  500. package/widget/multimodal_v2/styled-system/jsx/is-valid-prop.js +22 -0
  501. package/widget/multimodal_v2/types.js +105 -0
  502. package/widget/multimodal_v2/utils/auto_scroller.js +157 -0
  503. package/widget/multimodal_v2/utils/flip_animation.js +124 -0
  504. package/widget/multimodal_v2/utils/focus_gate.js +237 -0
  505. package/widget/multimodal_v2/utils/locale.js +16 -0
  506. package/widget/multimodal_v2/utils/media_queries.js +30 -0
  507. package/widget/multimodal_v2/utils/multimodal_cache.js +19 -0
  508. package/widget/multimodal_v2/utils/mutation_effect.js +14 -0
  509. package/widget/multimodal_v2/utils/navigation_interceptor.js +205 -0
  510. package/widget/multimodal_v2/utils/navigation_strategies/dom_swap.js +393 -0
  511. package/widget/multimodal_v2/utils/navigation_strategies/index.js +12 -0
  512. package/widget/multimodal_v2/utils/navigation_strategies/lwr.js +61 -0
  513. package/widget/multimodal_v2/utils/navigation_strategies/navigation_utils.js +46 -0
  514. package/widget/multimodal_v2/utils/navigation_strategies/next_js.js +24 -0
  515. package/widget/multimodal_v2/utils/navigation_strategies/wouter_v3.js +15 -0
  516. package/widget/multimodal_v2/utils/objects_map.js +38 -0
  517. package/widget/multimodal_v2/utils/perceived_voice_turn_tracker.js +345 -0
  518. package/widget/multimodal_v2/utils/sanitize_html.js +132 -0
  519. package/widget/multimodal_v2/utils/signals.js +97 -0
  520. package/widget/multimodal_v2/utils/slide_zoom.js +114 -0
  521. package/widget/multimodal_v2/utils/theme_styles.js +137 -0
  522. package/widget/multimodal_v2/utils/url_observer.js +52 -0
  523. package/widget/multimodal_v2/utils/voice_onset_detector.js +127 -0
  524. package/widget/page_mirror.js +89 -0
  525. package/widget/page_view_activity_emitter.js +71 -0
  526. package/widget/pardot_visitor.js +137 -0
  527. package/widget/personalization_observer.js +96 -0
  528. package/widget/personalizations_config.js +160 -0
  529. package/widget/qualified_form/constants.js +23 -0
  530. package/widget/qualified_form/phone_utils.js +38 -0
  531. package/widget/qualified_form/qualified_form_action.js +91 -0
  532. package/widget/qualified_form/qualified_form_action_orchestrator.js +21 -0
  533. package/widget/qualified_form/qualified_form_api.js +471 -0
  534. package/widget/scroll_disabler.js +109 -0
  535. package/widget/server-logger.js +156 -0
  536. package/widget/smart_website_config.js +112 -0
  537. package/widget/telemetry/context.js +75 -0
  538. package/widget/telemetry/index.js +16 -0
  539. package/widget/telemetry/messenger_uptime.js +80 -0
  540. package/widget/telemetry/metrics.js +120 -0
  541. package/widget/telemetry/span.js +82 -0
  542. package/widget/telemetry/telemetry.js +180 -0
  543. package/widget/telemetry/tracer.js +41 -0
  544. package/widget/telemetry/tracing_store.js +310 -0
  545. package/widget/tracker.js +916 -0
  546. package/widget/utils/native_globals.js +129 -0
  547. package/widget/v1_adapter.js +50 -0
  548. package/widget/v2_adapter.js +368 -0
  549. package/widget/visitor/base_visitor_state.js +11 -0
  550. package/widget/visitor/cookie_visitor_state.js +128 -0
  551. package/widget/visitor/in_memory_visitor_state.js +29 -0
  552. package/widget/visitor/visitor_state.js +384 -0
  553. package/widget/visitor.js +356 -0
  554. package/widget/widget/linked_widget_v2.js +227 -0
  555. package/widget/widget/page_mirror_factory.js +22 -0
  556. package/widget/widget/sentry.js +130 -0
  557. package/widget/widget/widget.js +1698 -0
  558. package/widget/widget.split-css.js +2 -0
  559. package/widget/widget_bootstrap.js +97 -0
  560. package/widget/widget_object.js +73 -0
@@ -0,0 +1,156 @@
1
+ import { __webpack_require__ } from "../js/runtime.js";
2
+ import { _class_private_field_loose_base, _class_private_field_loose_key, _extends } from "../js/4101.js";
3
+ import { getSentryClient } from "./widget/sentry.js";
4
+
5
+ const isNil = __webpack_require__("11655");
6
+ var isNil_default = /*#__PURE__*/__webpack_require__.n(isNil);
7
+
8
+
9
+
10
+
11
+
12
+ var _config = /*#__PURE__*/ _class_private_field_loose_key("_config"), _widgetId = /*#__PURE__*/ _class_private_field_loose_key("_widgetId"), _visitorId = /*#__PURE__*/ _class_private_field_loose_key("_visitorId");
13
+ class ServerLogger {
14
+ /**
15
+ * Updates the widget configuration.
16
+ * @param config - Widget configuration containing host and token
17
+ */ setConfig(config) {
18
+ _class_private_field_loose_base(this, _config)[_config] = config;
19
+ }
20
+ /**
21
+ * Sets the visitor ID for subsequent log requests.
22
+ * @param visitorId - The unique visitor identifier
23
+ */ setVisitorId(visitorId) {
24
+ _class_private_field_loose_base(this, _visitorId)[_visitorId] = visitorId;
25
+ }
26
+ /**
27
+ * Sets the widget ID for subsequent log requests.
28
+ * @param widgetId - The unique widget identifier
29
+ */ setWidgetId(widgetId) {
30
+ _class_private_field_loose_base(this, _widgetId)[_widgetId] = widgetId;
31
+ }
32
+ /**
33
+ * Constructs a full URL for a widget API resource.
34
+ * @param name - The resource endpoint name
35
+ * @param params - Optional query parameters
36
+ * @returns The full URL string
37
+ */ resourceUrl(name, params) {
38
+ let url = _class_private_field_loose_base(this, _config)[_config].host + "/w/1/" + _class_private_field_loose_base(this, _config)[_config].token + "/" + name;
39
+ if (params) {
40
+ const queryParams = new URLSearchParams();
41
+ Object.entries(params).forEach((param)=>{
42
+ let [key, value] = param;
43
+ if (!isNil_default()(value)) {
44
+ queryParams.set(key, String(value));
45
+ }
46
+ });
47
+ url += "?" + queryParams.toString();
48
+ }
49
+ return url;
50
+ }
51
+ /**
52
+ * Logs an event to the server.
53
+ *
54
+ * @param params - The log parameters
55
+ * @param params.message - The log message or event description
56
+ * @param params.type - Event type: "log" (default), "sentry", or "both"
57
+ * @param params.extra - Additional structured data to include with the log
58
+ * @param params.fireAndForget - If true, errors are silently ignored.
59
+ * Use this for page unload scenarios (beforeunload, pagehide, visibilitychange).
60
+ *
61
+ * @example
62
+ * // Normal logging with error reporting
63
+ * serverLog({ message: "User clicked button" });
64
+ *
65
+ * // Fire-and-forget for page unload
66
+ * serverLog({ message: "Page closing", fireAndForget: true });
67
+ */ serverLog(param) {
68
+ let { type = "log", message: event, extra = {}, fireAndForget = false } = param;
69
+ if (!_class_private_field_loose_base(this, _config)[_config].host || !_class_private_field_loose_base(this, _config)[_config].token) {
70
+ return;
71
+ }
72
+ this.sendEvent("visitor_events", {
73
+ params: {
74
+ wu: _class_private_field_loose_base(this, _widgetId)[_widgetId],
75
+ uuid: _class_private_field_loose_base(this, _visitorId)[_visitorId]
76
+ },
77
+ body: {
78
+ event,
79
+ type,
80
+ extra
81
+ }
82
+ }, {
83
+ fireAndForget
84
+ });
85
+ }
86
+ /**
87
+ * Records a telemetry trace event to the server.
88
+ * Used for OpenTelemetry-compatible tracing data.
89
+ *
90
+ * @param payload - The trace payload containing span data and attributes
91
+ */ recordTrace(payload) {
92
+ if (!_class_private_field_loose_base(this, _config)[_config].host || !_class_private_field_loose_base(this, _config)[_config].token) {
93
+ return;
94
+ }
95
+ this.sendEvent("events/trace", {
96
+ body: _extends({}, payload, {
97
+ widget_id: _class_private_field_loose_base(this, _widgetId)[_widgetId],
98
+ visitor_id: _class_private_field_loose_base(this, _visitorId)[_visitorId]
99
+ })
100
+ });
101
+ }
102
+ async sendEvent(path, param, param1) {
103
+ let { params, body } = param;
104
+ let { fireAndForget = false } = param1 === void 0 ? {} : param1;
105
+ // Using keepalive ensures requests complete even during page unload.
106
+ // Using credentials: 'omit' avoids CORS issues with wildcard origins.
107
+ // No timeout is set because: (1) fireAndForget calls don't wait for response,
108
+ // (2) regular calls are non-blocking logging, and (3) browser defaults apply.
109
+ const request = fetch(this.resourceUrl(path, params), {
110
+ method: "POST",
111
+ body: JSON.stringify(body),
112
+ headers: {
113
+ "Content-Type": "application/json"
114
+ },
115
+ keepalive: true,
116
+ credentials: "omit"
117
+ });
118
+ if (fireAndForget) {
119
+ // Intentionally silent: fireAndForget is used during page unload (beforeunload,
120
+ // pagehide) where we cannot wait for responses or report errors. This matches
121
+ // the previous sendBeacon behavior which also provided no error feedback.
122
+ request.catch(()=>{});
123
+ return;
124
+ }
125
+ try {
126
+ const response = await request;
127
+ if (!response.ok) {
128
+ throw new Error("Failed to send event " + path + ": " + response.status + " " + response.statusText);
129
+ }
130
+ } catch (error) {
131
+ var _getSentryClient;
132
+ (_getSentryClient = getSentryClient()) == null ? void 0 : _getSentryClient.captureException(error);
133
+ }
134
+ }
135
+ constructor(config){
136
+ Object.defineProperty(this, _config, {
137
+ writable: true,
138
+ value: void 0
139
+ });
140
+ Object.defineProperty(this, _widgetId, {
141
+ writable: true,
142
+ value: void 0
143
+ });
144
+ Object.defineProperty(this, _visitorId, {
145
+ writable: true,
146
+ value: void 0
147
+ });
148
+ _class_private_field_loose_base(this, _config)[_config] = config;
149
+ _class_private_field_loose_base(this, _widgetId)[_widgetId] = undefined;
150
+ _class_private_field_loose_base(this, _visitorId)[_visitorId] = undefined;
151
+ }
152
+ }
153
+ const serverLogger = new ServerLogger({});
154
+
155
+ var server_logger_ServerLogger = /* unused export */ undefined;
156
+ export { serverLogger, server_logger_ServerLogger as ServerLogger };
@@ -0,0 +1,112 @@
1
+ import { Trigger } from "../src/smart_website/trigger.js";
2
+ import { sortTriggers, isDebugMode, isMatchingSelector } from "../src/smart_website/utils.js";
3
+ import { normalizeURL, hasURLMatch } from "../src/url-utils.js";
4
+ import { _extends } from "../js/4101.js";
5
+
6
+
7
+
8
+
9
+
10
+ function transformOldTrigger(param) {
11
+ let { selector, api } = param;
12
+ return new Trigger({
13
+ url: "",
14
+ selector,
15
+ api,
16
+ global: false,
17
+ legacy: true
18
+ });
19
+ }
20
+ const WEBSITE_CONFIGS = "WEBSITE_CONFIGS";
21
+ class SmartWebsiteConfig {
22
+ get normalizedCurrentURL() {
23
+ return normalizeURL(window.location.href);
24
+ }
25
+ // This is what Tracker.handleTriggers expects to use, a map from selector to bot API names
26
+ get triggerSelectors() {
27
+ return this.currentTriggerQuerySelectors;
28
+ }
29
+ get hasCurrentTriggerSelectors() {
30
+ return Object.keys(this.triggerSelectors).length > 0;
31
+ }
32
+ /**
33
+ * Prefer new triggers over old, so attempt to match on new ones first before old
34
+ * @param target
35
+ * @returns matching selector
36
+ */ matchingSelector(target) {
37
+ const selector = Object.keys(this.currentTriggerQuerySelectors).find((selector)=>isMatchingSelector(target, selector));
38
+ this.debugLog("Matched trigger " + selector);
39
+ return selector;
40
+ }
41
+ get currentTriggers() {
42
+ return sortTriggers(this.websiteConfigs.filter((param)=>{
43
+ let { url, global } = param;
44
+ return this.hasURLMatch(url, global);
45
+ }));
46
+ }
47
+ hasURLMatch(url, global) {
48
+ return hasURLMatch(this.normalizedCurrentURL, normalizeURL(url), global);
49
+ }
50
+ get oldTriggers() {
51
+ return Object.entries(this.smartCtaTriggers).reduce((acc, param)=>{
52
+ let [key, value] = param;
53
+ if (key !== WEBSITE_CONFIGS) {
54
+ acc.push(transformOldTrigger({
55
+ selector: key,
56
+ api: value
57
+ }));
58
+ }
59
+ return acc;
60
+ }, []);
61
+ }
62
+ get currentTriggerQuerySelectors() {
63
+ // currentTriggers is already ordered by precedence
64
+ const triggerQuerySelectors = this.currentTriggers.reduce((acc, param)=>{
65
+ let { selector, api } = param;
66
+ if (!acc[selector]) {
67
+ acc[selector] = api;
68
+ } else {
69
+ this.debugLog("Skipping duplicate trigger " + selector + " for " + api);
70
+ }
71
+ return acc;
72
+ }, {});
73
+ // Prefer new triggers over old
74
+ this.oldTriggers.forEach((param)=>{
75
+ let { selector, api } = param;
76
+ if (!triggerQuerySelectors[selector]) {
77
+ triggerQuerySelectors[selector] = api;
78
+ } else {
79
+ this.debugLog("Skipping duplicate trigger " + selector + " for " + api);
80
+ }
81
+ });
82
+ return triggerQuerySelectors;
83
+ }
84
+ get smartCtaTriggers() {
85
+ return this.config.smartCtaTriggers;
86
+ }
87
+ get websiteConfigs() {
88
+ if (!this.smartCtaTriggers.WEBSITE_CONFIGS || typeof this.smartCtaTriggers.WEBSITE_CONFIGS === "string") {
89
+ return [];
90
+ }
91
+ return this.smartCtaTriggers.WEBSITE_CONFIGS.map((config)=>new Trigger(_extends({}, config, {
92
+ legacy: false
93
+ })));
94
+ }
95
+ constructor(smartWebsiteConfig){
96
+ this.isDebug = false;
97
+ this.debugLog = (msg)=>{
98
+ if (this.isDebug) {
99
+ // eslint-disable-next-line no-console
100
+ console.log("[Qualified] " + msg);
101
+ }
102
+ };
103
+ if (document.location.search) {
104
+ this.isDebug = isDebugMode();
105
+ this.debugLog("[DEBUG MODE]");
106
+ }
107
+ this.config = smartWebsiteConfig;
108
+ }
109
+ }
110
+ /* export default */ const smart_website_config = (SmartWebsiteConfig);
111
+
112
+ export default smart_website_config;
@@ -0,0 +1,75 @@
1
+ import { __webpack_require__ } from "../../js/runtime.js";
2
+ import "../utils/native_globals.js";
3
+
4
+ /* provided dependency */ var context_setTimeout = __webpack_require__(68034).pS;
5
+ /* provided dependency */ var context_setInterval = __webpack_require__(68034).LK;
6
+ let currentCtx = null;
7
+ /** Internal helper to swap to given context while fn executes. */ function withContext(ctx, fn) {
8
+ const oldCtx = currentCtx;
9
+ currentCtx = ctx;
10
+ try {
11
+ return fn();
12
+ } finally{
13
+ currentCtx = oldCtx;
14
+ }
15
+ }
16
+ /**
17
+ * Gets a variable from the current dynamic scope chain
18
+ * @param {string} name - The variable name
19
+ * @returns {any} - The variable value or undefined
20
+ */ function getCtxVar(name) {
21
+ let ctx = currentCtx;
22
+ while(ctx){
23
+ if (name in ctx.vars) {
24
+ return ctx.vars[name];
25
+ }
26
+ ctx = ctx.parent;
27
+ }
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Runs a function within a new child dynamic scope with the given variables set.
32
+ * @param {Function} fn - The function to execute within the scope
33
+ * @param {Object} variables - Variables to set in the new scope
34
+ * @returns {any} - The result of the function
35
+ */ function withCtxVars(vars, fn) {
36
+ const newCtx = {
37
+ parent: currentCtx,
38
+ vars
39
+ };
40
+ return withContext(newCtx, fn);
41
+ }
42
+ /**
43
+ * Wrap any function that has deferred execution so that when it executes, it first restores the current context from the
44
+ * time wrapCallback was called.
45
+ * @param {Function} fn - The function to wrap
46
+ * @returns {Function} - A wrapped function
47
+ */ function wrapCallback(fn) {
48
+ if (!currentCtx) {
49
+ return fn;
50
+ }
51
+ const contextAtBind = currentCtx;
52
+ return function() {
53
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
54
+ args[_key] = arguments[_key];
55
+ }
56
+ return withContext(contextAtBind, ()=>fn.apply(this, args));
57
+ };
58
+ }
59
+ const context_wrappedSetTimeout = function wrappedSetTimeout(fn) {
60
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
61
+ args[_key - 1] = arguments[_key];
62
+ }
63
+ return context_setTimeout(wrapCallback(fn), ...args);
64
+ };
65
+ const context_wrappedSetInterval = function wrappedSetInterval(fn) {
66
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
67
+ args[_key - 1] = arguments[_key];
68
+ }
69
+ return context_setInterval(wrapCallback(fn), ...args);
70
+ };
71
+
72
+ var context_wrapCallback = /* unused export */ undefined;
73
+ var telemetry_context_wrappedSetInterval = /* unused export */ undefined;
74
+ var telemetry_context_wrappedSetTimeout = /* unused export */ undefined;
75
+ export { context_wrapCallback as wrapCallback, getCtxVar, telemetry_context_wrappedSetInterval as wrappedSetInterval, telemetry_context_wrappedSetTimeout as wrappedSetTimeout, withCtxVars };
@@ -0,0 +1,16 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var telemetry_Span = /* unused export */ undefined;
9
+ var telemetry_Spans = /* unused export */ undefined;
10
+ var telemetry_TracingStore = /* unused export */ undefined;
11
+ export { telemetry_Span as Span, telemetry_Spans as Spans, telemetry_TracingStore as TracingStore };
12
+ export { PerformanceSpan, TimedSpan } from "./span.js";
13
+ export { SpanStatusCodeEnum, Telemetry, buildTraceParent, getTelemetryCtx, telemetry, withSpan, withTelemetryCtx } from "./telemetry.js";
14
+ export { Tracer } from "./tracer.js";
15
+ export { isWidgetBundleResource, metrics, resolveOriginTime, widgetConsumer } from "./metrics.js";
16
+ export { tracingStore } from "./tracing_store.js";
@@ -0,0 +1,80 @@
1
+ import { __webpack_require__ } from "../../js/runtime.js";
2
+ import { metrics } from "./metrics.js";
3
+ import "../utils/native_globals.js";
4
+
5
+ /* provided dependency */ var messenger_uptime_clearTimeout = __webpack_require__(68034).Kj;
6
+ /* provided dependency */ var messenger_uptime_setTimeout = __webpack_require__(68034).pS;
7
+
8
+ // Availability budget for the init phase: widget.init() -> first `initState`
9
+ // (the backend's broadcast_total_state). No `initState` within this window counts
10
+ // as unavailable (`timeout`). This is an availability SLI ("did the messenger come
11
+ // up"), not a latency target, so the threshold should only trip on genuinely-dead
12
+ // sessions, not the slow tail.
13
+ const MESSENGER_INIT_BUDGET_MS = 30000;
14
+ /**
15
+ * Tracks widget init-phase availability: from `widget.init()` (armed via
16
+ * {@link start}) to the first `initState` ({@link resolveSuccess}). There is only
17
+ * ever one init per widget instance.
18
+ *
19
+ * Emits `widget.initialized` (count, tag `status`):
20
+ * - `success` — `initState` arrived within the budget.
21
+ * - `timeout` — the budget elapsed first (unavailable).
22
+ * - `late` — `initState` arrived after a `timeout` was already emitted; the
23
+ * messenger came up, just past the budget (slow backend, not a true outage).
24
+ *
25
+ * Strict availability = `success / (success + timeout)`. Genuinely-dead sessions
26
+ * are `timeout - late`. A visitor who leaves before any resolution self-excludes:
27
+ * the page tears down and the pending timer dies with it, so nothing is emitted.
28
+ */ class MessengerUptimeTracker {
29
+ emit(status) {
30
+ metrics.emitIncrement("widget_initialized", {
31
+ status
32
+ });
33
+ }
34
+ clearTimer() {
35
+ if (this.timeoutId !== null) {
36
+ messenger_uptime_clearTimeout(this.timeoutId);
37
+ this.timeoutId = null;
38
+ }
39
+ }
40
+ // `budgetMs` is an injection point for tests.
41
+ // eslint-disable-next-line no-useless-constructor
42
+ constructor(budgetMs = MESSENGER_INIT_BUDGET_MS){
43
+ this.budgetMs = budgetMs;
44
+ // Starts idle so a stray resolveSuccess()/dispose() before start() is a no-op.
45
+ this.state = "idle";
46
+ this.timeoutId = null;
47
+ /** `widget.init()`: arm the watchdog for the init attempt. */ this.start = ()=>{
48
+ this.clearTimer();
49
+ this.state = "armed";
50
+ this.timeoutId = messenger_uptime_setTimeout(()=>{
51
+ this.timeoutId = null;
52
+ if (this.state !== "armed") return;
53
+ this.state = "timedOut";
54
+ this.emit("timeout");
55
+ }, this.budgetMs);
56
+ };
57
+ /** First `initState` received: the messenger has the state it needs to render. */ this.resolveSuccess = ()=>{
58
+ if (this.state === "armed") {
59
+ this.clearTimer();
60
+ this.state = "idle";
61
+ this.emit("success");
62
+ } else if (this.state === "timedOut") {
63
+ this.state = "idle";
64
+ this.emit("late");
65
+ }
66
+ };
67
+ /**
68
+ * Explicit teardown: abandon the attempt without emitting. Routine visitor
69
+ * abandonment doesn't need this (the timer dies with the page); this covers
70
+ * in-page teardown so a pending timer doesn't fire, and a post-timeout `late`
71
+ * isn't recorded, after the widget is gone.
72
+ */ this.dispose = ()=>{
73
+ this.clearTimer();
74
+ this.state = "idle";
75
+ };
76
+ }
77
+ }
78
+
79
+ var messenger_uptime_MESSENGER_INIT_BUDGET_MS = /* unused export */ undefined;
80
+ export { MessengerUptimeTracker, messenger_uptime_MESSENGER_INIT_BUDGET_MS as MESSENGER_INIT_BUDGET_MS };
@@ -0,0 +1,120 @@
1
+ import { isDebugMode } from "../../src/smart_website/utils.js";
2
+ import { serverLogger } from "../server-logger.js";
3
+ import { _extends } from "../../js/4101.js";
4
+
5
+
6
+
7
+
8
+ /**
9
+ * Emit a distribution (timing) metric. NaN and non-positive deltas are
10
+ * filtered out so they are never sent to the server.
11
+ */ function emitTiming(metricName, deltaMs, tags) {
12
+ if (Number.isNaN(deltaMs) || deltaMs <= 0) return;
13
+ if (isDebugMode()) {
14
+ // eslint-disable-next-line no-console
15
+ console.log("[Metrics] " + metricName + ": timing " + deltaMs + "ms", tags != null ? tags : "");
16
+ }
17
+ serverLogger.serverLog({
18
+ message: metricName,
19
+ type: "log",
20
+ extra: _extends({
21
+ method: "dist",
22
+ operand: deltaMs
23
+ }, tags ? {
24
+ tags
25
+ } : {})
26
+ });
27
+ }
28
+ /**
29
+ * Emit a counter increment metric.
30
+ */ function emitIncrement(metricName, tags) {
31
+ if (isDebugMode()) {
32
+ // eslint-disable-next-line no-console
33
+ console.log("[Metrics] " + metricName + ": increment", tags != null ? tags : "");
34
+ }
35
+ serverLogger.serverLog({
36
+ message: metricName,
37
+ type: "log",
38
+ extra: _extends({
39
+ method: "inc"
40
+ }, tags ? {
41
+ tags
42
+ } : {})
43
+ });
44
+ }
45
+ // Matches bare qualified.js (hosted) and qualified-<hash>.js (self-hosted zip).
46
+ const WIDGET_BUNDLE_NAME = /\/qualified(-[\w-]+)?\.js/;
47
+ /** True when a performance-resource name is our widget bundle. */ function isWidgetBundleResource(name) {
48
+ return WIDGET_BUNDLE_NAME.test(name);
49
+ }
50
+ /**
51
+ * Page-origin-relative ms when Qualified began loading.
52
+ *
53
+ * Hosted snippet / self-hosted zip: the `startTime` of the `qualified.js` resource entry — when
54
+ * the browser began downloading our script. npm: our code is inlined into the consumer's
55
+ * content-hashed chunk, so there is no such entry; `setup()` records `window._q_setupCalledAt`
56
+ * instead and we fall back to it. `null` only when neither is available.
57
+ *
58
+ * Resolved lazily at the call site (init time), not at module eval — under npm the `setup()`
59
+ * timestamp is written after this module is imported, so a module-eval snapshot would miss it.
60
+ */ function resolveOriginTime(entries) {
61
+ var _window__q_setupCalledAt;
62
+ var _resourceEntries_find;
63
+ // Resolved lazily, so guard `getEntriesByType` — it is absent in some non-browser hosts and,
64
+ // unlike the old module-eval snapshot, this now runs at init time. Missing ⇒ no resource entry
65
+ // ⇒ fall through to the setup() timestamp.
66
+ const resourceEntries = entries != null ? entries : typeof performance.getEntriesByType === "function" ? performance.getEntriesByType("resource") : [];
67
+ const fromResource = (_resourceEntries_find = resourceEntries.find((entry)=>isWidgetBundleResource(entry.name))) == null ? void 0 : _resourceEntries_find.startTime;
68
+ if (fromResource != null) return fromResource;
69
+ return (_window__q_setupCalledAt = window._q_setupCalledAt) != null ? _window__q_setupCalledAt : null;
70
+ }
71
+ /**
72
+ * "npm" iff the ESM `setup()` entry ran (only it sets `_q_setupCalledAt`); "hosted" otherwise
73
+ * (snippet + self-hosted zip). Lets dashboards segment consumers whose page-origin-relative
74
+ * timings mean different things — an npm consumer calls `setup()` whenever it likes, so its
75
+ * `script_time_to_start_ms` includes their latency and reads as a regression if mixed in.
76
+ */ function widgetConsumer() {
77
+ return window._q_setupCalledAt === undefined ? "hosted" : "npm";
78
+ }
79
+ /**
80
+ * Records the time since the page's performance origin (`performance.now()`)
81
+ * at the moment `log()` is invoked, then ships it as a distribution metric.
82
+ *
83
+ * The first `log()` or `skip()` call latches the instance — subsequent calls
84
+ * are no-ops. Use `skip()` to permanently suppress the metric without emitting
85
+ * (e.g. when the first opportunity to record it has passed without the
86
+ * required preconditions, so a later attempt would record a misleading delta).
87
+ */ class InitializationMetric {
88
+ // eslint-disable-next-line no-useless-constructor
89
+ constructor(metricName){
90
+ this.metricName = metricName;
91
+ this.logged = false;
92
+ this.log = ()=>{
93
+ if (this.logged) return;
94
+ // Always relative to widget init; skip when there's no baseline.
95
+ const startTime = window._q_widgetInitializedAt;
96
+ if (!startTime) return;
97
+ const delta = performance.now() - startTime;
98
+ emitTiming(this.metricName, delta);
99
+ this.logged = true;
100
+ };
101
+ this.skip = ()=>{
102
+ this.logged = true;
103
+ };
104
+ }
105
+ }
106
+ // TODO:
107
+ // Add DeltaMetric class
108
+ // Add IncrementMetric class
109
+ const multimodal = {
110
+ timeToInit: new InitializationMetric("multimodal_time_to_init_ms"),
111
+ timeToReplaceGutter: new InitializationMetric("multimodal_time_to_replace_gutter_ms")
112
+ };
113
+ // TODO: Add other metric domains here
114
+ const metrics = {
115
+ emitTiming: emitTiming,
116
+ emitIncrement: emitIncrement,
117
+ multimodal: multimodal
118
+ };
119
+
120
+ export { isWidgetBundleResource, metrics, resolveOriginTime, widgetConsumer };
@@ -0,0 +1,82 @@
1
+ import { RandomIdGenerator } from "../../vendor/open-telemetry-idgenerator.js";
2
+ import { SpanStatusCodeEnum } from "./telemetry.js";
3
+
4
+
5
+
6
+ class Span {
7
+ get id() {
8
+ return this._id;
9
+ }
10
+ get name() {
11
+ return this._name;
12
+ }
13
+ get parentSpanId() {
14
+ return this._parentSpanId;
15
+ }
16
+ get attributes() {
17
+ return this._attributes;
18
+ }
19
+ get status() {
20
+ return this._status;
21
+ }
22
+ get startTime() {
23
+ return this._startTime;
24
+ }
25
+ get endTime() {
26
+ return this._endTime;
27
+ }
28
+ setAttributes(attributes) {
29
+ if (!attributes || Object.keys(attributes).length === 0) return;
30
+ for (const [key, value] of Object.entries(attributes)){
31
+ if (value) this.setAttribute(key, value);
32
+ }
33
+ }
34
+ setAttribute(attribute, value) {
35
+ this._attributes[attribute] = value;
36
+ }
37
+ setStatus(code, message) {
38
+ this._status = {
39
+ code,
40
+ message
41
+ };
42
+ }
43
+ constructor(name, parentSpanId){
44
+ this._status = {
45
+ code: SpanStatusCodeEnum.UNSET,
46
+ message: ""
47
+ };
48
+ this._id = new RandomIdGenerator().generateSpanId();
49
+ this._name = name;
50
+ this._parentSpanId = parentSpanId;
51
+ // OpenTelemetry allows Date, epoch milliseconds or performance.now()
52
+ // We assume performance.now in all cases
53
+ this._startTime = 0;
54
+ this._endTime = 0;
55
+ this._attributes = {};
56
+ }
57
+ }
58
+ class TimedSpan extends Span {
59
+ end() {
60
+ if (this.endTime !== 0) {
61
+ throw new Error("end() already called on span.");
62
+ }
63
+ this._endTime = performance.now();
64
+ }
65
+ constructor(name, attributes, parentSpanId){
66
+ super(name, parentSpanId);
67
+ this.setAttributes(attributes);
68
+ this._startTime = performance.now();
69
+ }
70
+ }
71
+ // Used to record Performance entries that occur out-of-band
72
+ class PerformanceSpan extends Span {
73
+ constructor(name, attributes, parentSpanId, startTime, endTime){
74
+ super(name, parentSpanId);
75
+ this.setAttributes(attributes);
76
+ this._startTime = startTime;
77
+ this._endTime = endTime;
78
+ }
79
+ }
80
+
81
+ var span_Span = /* unused export */ undefined;
82
+ export { PerformanceSpan, TimedSpan, span_Span as Span };