@templatical/editor 0.43.2 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +1 -1
  2. package/dist/{AiChatSidebar-DTtMEXNR.js → AiChatSidebar-BUR5Jshu.js} +8 -8
  3. package/dist/{AiFeatureMenu-DFj-_S9b.js → AiFeatureMenu-CgfLFHJw.js} +4 -4
  4. package/dist/{BlockIssueBadge-CyLmqjLl.js → BlockIssueBadge-CWZEwMXX.js} +2 -2
  5. package/dist/{BlockPreviewCanvas-C6F66f3k.js → BlockPreviewCanvas-2vVu55yN.js} +3 -3
  6. package/dist/{CloudHeaderExtras-Z4K6OMn0.js → CloudHeaderExtras-BZ62q1aS.js} +2 -2
  7. package/dist/{CloudPanels-DOJ2Vske.js → CloudPanels-sv4aCKKE.js} +4 -4
  8. package/dist/{CollaboratorBar-BCkl3dKY.js → CollaboratorBar-CSEFL7uC.js} +2 -2
  9. package/dist/{CommentsPanel-DPMi6-rb.js → CommentsPanel-CYMHfFcn.js} +1 -1
  10. package/dist/{CommentsSidebar-C1mQcyh3.js → CommentsSidebar-uvQyCMUe.js} +10 -10
  11. package/dist/{CountdownToolbar-DKmzpk__.js → CountdownToolbar-C052mx2P.js} +3 -3
  12. package/dist/{DesignReferenceSidebar-CGRzOOb8.js → DesignReferenceSidebar-ZKJ7y7-G.js} +6 -6
  13. package/dist/{IssuesPanel-CsdxjjRm.js → IssuesPanel-DAlNiJX_.js} +5 -5
  14. package/dist/{LogicTagInsertButton-BX4jOUQy.js → LogicTagInsertButton-DMUfVsPr.js} +6 -6
  15. package/dist/{MediaEditModal-Bm8uOKBx.js → MediaEditModal-Cmd9tQXZ.js} +1 -1
  16. package/dist/{MediaPanels-BNWtEntu.js → MediaPanels-DoBhG5gg.js} +1 -1
  17. package/dist/{MergeTagInput-Mj8CFfX1.js → MergeTagInput-DoQWMSW4.js} +1 -1
  18. package/dist/{MergeTagModeToggle-CinojvpV.js → MergeTagModeToggle-DOHixe4G.js} +4 -4
  19. package/dist/{ParagraphEditor-DdOteRjD.js → ParagraphEditor-C_p6yKLK.js} +23 -23
  20. package/dist/{RestoreVersionDialog-B-i0wPjh.js → RestoreVersionDialog-CKHeCPG2.js} +3 -3
  21. package/dist/{RichTextEditorContent-CDtKOWsh.js → RichTextEditorContent-BedBVHXS.js} +4 -4
  22. package/dist/{SaveBlockDialog-DTcGPDMT.js → SaveBlockDialog-q3_fjb9t.js} +8 -8
  23. package/dist/{SavedBlocksBrowserModal-BA5yXQi0.js → SavedBlocksBrowserModal-C4J-_cW8.js} +9 -9
  24. package/dist/{SavedBlocksPanels-mfSALJqB.js → SavedBlocksPanels-DBoqC6df.js} +1 -1
  25. package/dist/{SavedBlocksPickBar-BOjduGI4.js → SavedBlocksPickBar-Pq2bjpB_.js} +2 -2
  26. package/dist/{TemplateScoringPanel-Byz-ajjf.js → TemplateScoringPanel-DXsyp0_A.js} +11 -11
  27. package/dist/{TemplateSettings-Bf5rfsU8.js → TemplateSettings-Bh10NFIN.js} +6 -6
  28. package/dist/{TestEmailModal-DJo2yFLh.js → TestEmailModal-BYCKpH7g.js} +7 -7
  29. package/dist/{TestEmailPanel-CXIFWfDm.js → TestEmailPanel-lUXAFsT5.js} +1 -1
  30. package/dist/{TitleEditor-BDtokkQF.js → TitleEditor-CWPxXUp2.js} +9 -9
  31. package/dist/{ToggleSwitch-BCYZvP1e.js → ToggleSwitch-D7GLaT8s.js} +1 -1
  32. package/dist/{Toolbar-XOtJ_N58.js → Toolbar-CWxqqBHE.js} +29 -29
  33. package/dist/{TplModal-C3mzMXof.js → TplModal-D6lqrKls.js} +1 -1
  34. package/dist/{VersionHistoryMenu-DRoFz15y.js → VersionHistoryMenu-fLrx-Lvi.js} +5 -5
  35. package/dist/{VersionHistoryPanels-CeF0JnXI.js → VersionHistoryPanels-C3XhpQO_.js} +1 -1
  36. package/dist/{VersionPreviewBanner-DQvIEKUU.js → VersionPreviewBanner-CWuxq_bb.js} +1 -1
  37. package/dist/{WrapperBlock-DZwp4G7P.js → WrapperBlock-ox8TMS_p.js} +1 -1
  38. package/dist/{blockTypeIcons-CAPoy6X7.js → blockTypeIcons-DEvNVvBj.js} +2 -2
  39. package/dist/bundle-stats.json +6 -6
  40. package/dist/{ca--zGWn9AU.js → ca-DSwai-th.js} +1 -4
  41. package/dist/cdn/chunks/{AiChatSidebar-DW1uRkKE.js → AiChatSidebar-Cvp9beXR.js} +3 -3
  42. package/dist/cdn/chunks/{AiChatSidebar-DW1uRkKE.js.map → AiChatSidebar-Cvp9beXR.js.map} +1 -1
  43. package/dist/cdn/chunks/{AiFeatureMenu-CHsgD78N.js → AiFeatureMenu-vOJtwdmT.js} +3 -3
  44. package/dist/cdn/chunks/{AiFeatureMenu-CHsgD78N.js.map → AiFeatureMenu-vOJtwdmT.js.map} +1 -1
  45. package/dist/cdn/chunks/{BlockIssueBadge-CIqu8JnG.js → BlockIssueBadge-CKIrYROg.js} +2 -2
  46. package/dist/cdn/chunks/{BlockIssueBadge-CIqu8JnG.js.map → BlockIssueBadge-CKIrYROg.js.map} +1 -1
  47. package/dist/cdn/chunks/{BlockPreviewCanvas-Dtea66SI.js → BlockPreviewCanvas-CB27Joyn.js} +4 -4
  48. package/dist/cdn/chunks/{BlockPreviewCanvas-Dtea66SI.js.map → BlockPreviewCanvas-CB27Joyn.js.map} +1 -1
  49. package/dist/cdn/chunks/{CloudHeaderExtras-Kjj78__m.js → CloudHeaderExtras-9tKrhPm6.js} +3 -3
  50. package/dist/cdn/chunks/{CloudHeaderExtras-Kjj78__m.js.map → CloudHeaderExtras-9tKrhPm6.js.map} +1 -1
  51. package/dist/cdn/chunks/{CloudPanels-DARXXD0q.js → CloudPanels-DTQ7zbEN.js} +4 -4
  52. package/dist/cdn/chunks/{CloudPanels-DARXXD0q.js.map → CloudPanels-DTQ7zbEN.js.map} +1 -1
  53. package/dist/cdn/chunks/{CollaboratorBar-C7O9mQJ_.js → CollaboratorBar-BKTkVMbz.js} +3 -3
  54. package/dist/cdn/chunks/{CollaboratorBar-C7O9mQJ_.js.map → CollaboratorBar-BKTkVMbz.js.map} +1 -1
  55. package/dist/cdn/chunks/{CommentsPanel-KH5_JS7_.js → CommentsPanel-BjHRj_Yw.js} +2 -2
  56. package/dist/cdn/chunks/{CommentsPanel-KH5_JS7_.js.map → CommentsPanel-BjHRj_Yw.js.map} +1 -1
  57. package/dist/cdn/chunks/{CommentsSidebar-ucrNvgAQ.js → CommentsSidebar-CpCfqSq4.js} +2 -2
  58. package/dist/cdn/chunks/{CommentsSidebar-ucrNvgAQ.js.map → CommentsSidebar-CpCfqSq4.js.map} +1 -1
  59. package/dist/cdn/chunks/{CountdownToolbar-DVInzkj9.js → CountdownToolbar-C9QpHQcv.js} +4 -4
  60. package/dist/cdn/chunks/{CountdownToolbar-DVInzkj9.js.map → CountdownToolbar-C9QpHQcv.js.map} +1 -1
  61. package/dist/cdn/chunks/{DesignReferenceSidebar-pleljkEJ.js → DesignReferenceSidebar-BO0xz1wC.js} +3 -3
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-pleljkEJ.js.map → DesignReferenceSidebar-BO0xz1wC.js.map} +1 -1
  63. package/dist/cdn/chunks/{IssuesPanel-CPcQIUni.js → IssuesPanel--62qud8w.js} +2 -2
  64. package/dist/cdn/chunks/{IssuesPanel-CPcQIUni.js.map → IssuesPanel--62qud8w.js.map} +1 -1
  65. package/dist/cdn/chunks/{LogicTagInsertButton-DSrW9v0x.js → LogicTagInsertButton-gc8ICURV.js} +5 -5
  66. package/dist/cdn/chunks/{LogicTagInsertButton-DSrW9v0x.js.map → LogicTagInsertButton-gc8ICURV.js.map} +1 -1
  67. package/dist/cdn/chunks/{MediaEditModal-BHp7euCZ.js → MediaEditModal-BuDXKwx4.js} +2 -2
  68. package/dist/cdn/chunks/{MediaEditModal-BHp7euCZ.js.map → MediaEditModal-BuDXKwx4.js.map} +1 -1
  69. package/dist/cdn/chunks/{MediaPanels-CGIRlO48.js → MediaPanels-xFpaxFRH.js} +2 -2
  70. package/dist/cdn/chunks/{MediaPanels-CGIRlO48.js.map → MediaPanels-xFpaxFRH.js.map} +1 -1
  71. package/dist/cdn/chunks/{MergeTagInput-BSFofWuc.js → MergeTagInput-DsPKWbWr.js} +2 -2
  72. package/dist/cdn/chunks/{MergeTagInput-BSFofWuc.js.map → MergeTagInput-DsPKWbWr.js.map} +1 -1
  73. package/dist/cdn/chunks/{MergeTagModeToggle-D7KlTFZV.js → MergeTagModeToggle-DU0WqgVH.js} +3 -3
  74. package/dist/cdn/chunks/{MergeTagModeToggle-D7KlTFZV.js.map → MergeTagModeToggle-DU0WqgVH.js.map} +1 -1
  75. package/dist/cdn/chunks/{ParagraphEditor-CokXagL1.js → ParagraphEditor-BSDGOsja.js} +23 -23
  76. package/dist/cdn/chunks/{ParagraphEditor-CokXagL1.js.map → ParagraphEditor-BSDGOsja.js.map} +1 -1
  77. package/dist/cdn/chunks/{RestoreVersionDialog-C-XEncAM.js → RestoreVersionDialog-DLe0Co57.js} +3 -3
  78. package/dist/cdn/chunks/{RestoreVersionDialog-C-XEncAM.js.map → RestoreVersionDialog-DLe0Co57.js.map} +1 -1
  79. package/dist/cdn/chunks/{RichTextEditorContent-DS_2UsJX.js → RichTextEditorContent-Dkcts8Vh.js} +4 -4
  80. package/dist/cdn/chunks/{RichTextEditorContent-DS_2UsJX.js.map → RichTextEditorContent-Dkcts8Vh.js.map} +1 -1
  81. package/dist/cdn/chunks/{SaveBlockDialog-D8OAKF_k.js → SaveBlockDialog-DQzaED8U.js} +7 -7
  82. package/dist/cdn/chunks/{SaveBlockDialog-D8OAKF_k.js.map → SaveBlockDialog-DQzaED8U.js.map} +1 -1
  83. package/dist/cdn/chunks/{SavedBlocksBrowserModal-B6GN_llD.js → SavedBlocksBrowserModal-D3JF-Gx-.js} +6 -6
  84. package/dist/cdn/chunks/{SavedBlocksBrowserModal-B6GN_llD.js.map → SavedBlocksBrowserModal-D3JF-Gx-.js.map} +1 -1
  85. package/dist/cdn/chunks/{SavedBlocksPanels-hRCREVxS.js → SavedBlocksPanels-Cxbgby24.js} +2 -2
  86. package/dist/cdn/chunks/{SavedBlocksPanels-hRCREVxS.js.map → SavedBlocksPanels-Cxbgby24.js.map} +1 -1
  87. package/dist/cdn/chunks/{SavedBlocksPickBar-C5YrK0iB.js → SavedBlocksPickBar-DEL0r3Bv.js} +3 -3
  88. package/dist/cdn/chunks/{SavedBlocksPickBar-C5YrK0iB.js.map → SavedBlocksPickBar-DEL0r3Bv.js.map} +1 -1
  89. package/dist/cdn/chunks/{TemplateScoringPanel-DXyQjcdU.js → TemplateScoringPanel-BBRHCNcR.js} +2 -2
  90. package/dist/cdn/chunks/{TemplateScoringPanel-DXyQjcdU.js.map → TemplateScoringPanel-BBRHCNcR.js.map} +1 -1
  91. package/dist/cdn/chunks/{TemplateSettings-da14bXlk.js → TemplateSettings-vsFOU0oA.js} +5 -5
  92. package/dist/cdn/chunks/{TemplateSettings-da14bXlk.js.map → TemplateSettings-vsFOU0oA.js.map} +1 -1
  93. package/dist/cdn/chunks/{TestEmailModal-Dl_cAyj-.js → TestEmailModal-B7Dr2eFa.js} +7 -7
  94. package/dist/cdn/chunks/{TestEmailModal-Dl_cAyj-.js.map → TestEmailModal-B7Dr2eFa.js.map} +1 -1
  95. package/dist/cdn/chunks/{TestEmailPanel-CVZGOKaQ.js → TestEmailPanel-C3PTYDbT.js} +2 -2
  96. package/dist/cdn/chunks/{TestEmailPanel-CVZGOKaQ.js.map → TestEmailPanel-C3PTYDbT.js.map} +1 -1
  97. package/dist/cdn/chunks/{TitleEditor-DO8OdG_w.js → TitleEditor-gHTla_4I.js} +8 -8
  98. package/dist/cdn/chunks/{TitleEditor-DO8OdG_w.js.map → TitleEditor-gHTla_4I.js.map} +1 -1
  99. package/dist/cdn/chunks/{ToggleSwitch-D5Wi6Env.js → ToggleSwitch-DoUNcLPP.js} +2 -2
  100. package/dist/cdn/chunks/{ToggleSwitch-D5Wi6Env.js.map → ToggleSwitch-DoUNcLPP.js.map} +1 -1
  101. package/dist/cdn/chunks/{Toolbar-CXDE8xM-.js → Toolbar-CnfNUkOY.js} +17 -17
  102. package/dist/cdn/chunks/{Toolbar-CXDE8xM-.js.map → Toolbar-CnfNUkOY.js.map} +1 -1
  103. package/dist/cdn/chunks/{TplModal-CFi-Psf7.js → TplModal-BVUBOEQL.js} +2 -2
  104. package/dist/cdn/chunks/{TplModal-CFi-Psf7.js.map → TplModal-BVUBOEQL.js.map} +1 -1
  105. package/dist/cdn/chunks/{VersionHistoryMenu-1bfCr14E.js → VersionHistoryMenu-Cp3EHO_P.js} +2 -2
  106. package/dist/cdn/chunks/{VersionHistoryMenu-1bfCr14E.js.map → VersionHistoryMenu-Cp3EHO_P.js.map} +1 -1
  107. package/dist/cdn/chunks/{VersionHistoryPanels-DbgbyAdW.js → VersionHistoryPanels-Dcdy7ySA.js} +2 -2
  108. package/dist/cdn/chunks/{VersionHistoryPanels-DbgbyAdW.js.map → VersionHistoryPanels-Dcdy7ySA.js.map} +1 -1
  109. package/dist/cdn/chunks/{VersionPreviewBanner-BaOTRIrm.js → VersionPreviewBanner-BgkroXnG.js} +2 -2
  110. package/dist/cdn/chunks/{VersionPreviewBanner-BaOTRIrm.js.map → VersionPreviewBanner-BgkroXnG.js.map} +1 -1
  111. package/dist/cdn/chunks/{WrapperBlock-BYNfYvl3.js → WrapperBlock-23nAzweL.js} +2 -2
  112. package/dist/cdn/chunks/{WrapperBlock-BYNfYvl3.js.map → WrapperBlock-23nAzweL.js.map} +1 -1
  113. package/dist/cdn/chunks/{blockTypeIcons-B_IAjnTD.js → blockTypeIcons-BMZi7sdX.js} +2 -2
  114. package/dist/cdn/chunks/{blockTypeIcons-B_IAjnTD.js.map → blockTypeIcons-BMZi7sdX.js.map} +1 -1
  115. package/dist/cdn/chunks/{ca--zGWn9AU.js → ca-DSwai-th.js} +2 -5
  116. package/dist/cdn/chunks/ca-DSwai-th.js.map +1 -0
  117. package/dist/cdn/chunks/{cloud-De-eh1u6.js → cloud-DLQU5l0Z.js} +2 -2
  118. package/dist/cdn/chunks/{cloud-De-eh1u6.js.map → cloud-DLQU5l0Z.js.map} +1 -1
  119. package/dist/cdn/chunks/{createCloudRuntime-DsaUaWvr.js → createCloudRuntime-Mnx8kV2W.js} +3 -3
  120. package/dist/cdn/chunks/{createCloudRuntime-DsaUaWvr.js.map → createCloudRuntime-Mnx8kV2W.js.map} +1 -1
  121. package/dist/cdn/chunks/{de-BRNLKcDl.js → de-DOhKuphf.js} +2 -5
  122. package/dist/cdn/chunks/de-DOhKuphf.js.map +1 -0
  123. package/dist/cdn/chunks/dist-BRZhN8qJ.js.map +1 -1
  124. package/dist/cdn/chunks/dist-CXB2_kBa.js.map +1 -1
  125. package/dist/cdn/chunks/draggable-IB4x6w2O.js.map +1 -1
  126. package/dist/cdn/chunks/{editor-modal-BDOfw3l0.js → editor-modal-B7NNAFI5.js} +4 -4
  127. package/dist/cdn/chunks/{editor-modal-BDOfw3l0.js.map → editor-modal-B7NNAFI5.js.map} +1 -1
  128. package/dist/cdn/chunks/{en-JJjqHMjy.js → en-BE28ZcUF.js} +2 -5
  129. package/dist/cdn/chunks/en-BE28ZcUF.js.map +1 -0
  130. package/dist/cdn/chunks/en-C3n0qWte.js +2 -0
  131. package/dist/cdn/chunks/{es-BIh8BxV9.js → es-oQI-dfx2.js} +2 -5
  132. package/dist/cdn/chunks/es-oQI-dfx2.js.map +1 -0
  133. package/dist/cdn/chunks/{extensions-1hJBHnGv.js → extensions-ClmkNA8R.js} +5 -5
  134. package/dist/cdn/chunks/{extensions-1hJBHnGv.js.map → extensions-ClmkNA8R.js.map} +1 -1
  135. package/dist/cdn/chunks/{fr-C5VUZogP.js → fr-rzLdCMSG.js} +2 -5
  136. package/dist/cdn/chunks/fr-rzLdCMSG.js.map +1 -0
  137. package/dist/cdn/chunks/htmlparser-ClUZ6waR.js.map +1 -1
  138. package/dist/cdn/chunks/{icons-BrAyaJ0T.js → icons-BjvraR-Y.js} +35 -35
  139. package/dist/cdn/chunks/{icons-BrAyaJ0T.js.map → icons-BjvraR-Y.js.map} +1 -1
  140. package/dist/{ja-x5JYxaCW.js → cdn/chunks/ja-dyFc6Ghz.js} +3 -4
  141. package/dist/cdn/chunks/ja-dyFc6Ghz.js.map +1 -0
  142. package/dist/cdn/chunks/{liquid.browser-BypTT2oc.js → liquid.browser-DXPjcePu.js} +758 -719
  143. package/dist/cdn/chunks/liquid.browser-DXPjcePu.js.map +1 -0
  144. package/dist/cdn/chunks/{nl-UXxFyXV6.js → nl-BcQhRqKR.js} +2 -5
  145. package/dist/cdn/chunks/nl-BcQhRqKR.js.map +1 -0
  146. package/dist/cdn/chunks/{preRenderCustomBlocks-h4ZFBKbD.js → preRenderCustomBlocks-Bg3rIgGJ.js} +2 -2
  147. package/dist/cdn/chunks/{preRenderCustomBlocks-h4ZFBKbD.js.map → preRenderCustomBlocks-Bg3rIgGJ.js.map} +1 -1
  148. package/dist/cdn/chunks/{pt-BR-DHm3SP6W.js → pt-BR-UombhTMO.js} +2 -5
  149. package/dist/cdn/chunks/pt-BR-UombhTMO.js.map +1 -0
  150. package/dist/cdn/chunks/pusher-BbIHJKf3.js.map +1 -1
  151. package/dist/cdn/chunks/{socialIcons-ZOCwCCyn.js → socialIcons-CnUJBZTO.js} +2 -2
  152. package/dist/cdn/chunks/socialIcons-CnUJBZTO.js.map +1 -0
  153. package/dist/cdn/chunks/{src-fZSLjhjy.js → src-B5-VKcRQ.js} +2 -2
  154. package/dist/cdn/chunks/{src-fZSLjhjy.js.map → src-B5-VKcRQ.js.map} +1 -1
  155. package/dist/cdn/chunks/{src-D5ceT_Y4.js → src-BmKDV_BK.js} +4 -4
  156. package/dist/cdn/chunks/{src-D5ceT_Y4.js.map → src-BmKDV_BK.js.map} +1 -1
  157. package/dist/cdn/chunks/{src-BR3I3gOW.js → src-QIGNPFkl.js} +6 -8
  158. package/dist/cdn/chunks/src-QIGNPFkl.js.map +1 -0
  159. package/dist/cdn/chunks/{tiptap-D1u8JIUW.js → tiptap-02G9FGkl.js} +3726 -3552
  160. package/dist/cdn/chunks/tiptap-02G9FGkl.js.map +1 -0
  161. package/dist/cdn/chunks/{useEditorCore-BTKqlRIg.js → useEditorCore-DjD7fJpq.js} +19 -19
  162. package/dist/cdn/chunks/{useEditorCore-BTKqlRIg.js.map → useEditorCore-DjD7fJpq.js.map} +1 -1
  163. package/dist/cdn/chunks/{useLogicTag-J_i_hvZg.js → useLogicTag-D6lWY0bD.js} +2 -2
  164. package/dist/cdn/chunks/{useLogicTag-J_i_hvZg.js.map → useLogicTag-D6lWY0bD.js.map} +1 -1
  165. package/dist/cdn/chunks/{useMergeTag-C5MyHYxJ.js → useMergeTag-2iW-BKWW.js} +2 -2
  166. package/dist/cdn/chunks/{useMergeTag-C5MyHYxJ.js.map → useMergeTag-2iW-BKWW.js.map} +1 -1
  167. package/dist/cdn/editor.css +1 -1
  168. package/dist/cdn/editor.js +467 -484
  169. package/dist/cdn/editor.js.map +1 -1
  170. package/dist/{check-CA6fvSIp.js → check-DNyj-E0y.js} +1 -1
  171. package/dist/{chevron-down-DYGJgpqJ.js → chevron-down-BYnhkMsA.js} +1 -1
  172. package/dist/{chevron-right-Dm5_X4j6.js → chevron-right-D9HGBqJo.js} +1 -1
  173. package/dist/{chevron-up-Ds9ormyq.js → chevron-up-BnIR1-ma.js} +1 -1
  174. package/dist/{circle-alert-BYXE0olE.js → circle-alert-B6xl1B_M.js} +1 -1
  175. package/dist/{clock-Ch1-h0sb.js → clock-Cs5Wd3dW.js} +1 -1
  176. package/dist/{cloud-AO_X8T9g.js → cloud-BNEL7bxL.js} +1 -1
  177. package/dist/{copy-DLNyaPza.js → copy-6uKc-WBk.js} +1 -1
  178. package/dist/{createCloudRuntime-D641nhri.js → createCloudRuntime-CaZapQZ6.js} +2 -2
  179. package/dist/{createLucideIcon-BrPnbRQT.js → createLucideIcon-BVcoovvP.js} +5 -5
  180. package/dist/{de-BRNLKcDl.js → de-DOhKuphf.js} +1 -4
  181. package/dist/{dist-CxmLZQso.js → dist-8By0p8ah.js} +5 -5
  182. package/dist/{dist-W_ERo6c_.js → dist-BYg1EL5g.js} +5 -5
  183. package/dist/{dist-C2Ge44fD.js → dist-BgSLW3Hn.js} +1704 -1303
  184. package/dist/{dist-B0dkvy7z.js → dist-CWc7nIkA.js} +5 -5
  185. package/dist/{dist-CIxmOOSG.js → dist-Ceew_u40.js} +448 -699
  186. package/dist/{dist-BwoEME8p.js → dist-CmwBvyW0.js} +172 -171
  187. package/dist/{dist-CJ7RZARo.js → dist-Czzst9ng.js} +302 -279
  188. package/dist/dist-D2m55Lvs.js +5 -0
  189. package/dist/{dist-p-LkiWIQ.js → dist-D4HP93ZF.js} +13 -13
  190. package/dist/{dist-BPWuzECC.js → dist-DdSWMtEP.js} +6 -6
  191. package/dist/{dist-DRmafAUz.js → dist-DmQckB4p.js} +29 -29
  192. package/dist/dist-Dw2_11LA.js +5 -0
  193. package/dist/{dist-iLUVPysa.js → dist-HjILVdTA.js} +5 -7
  194. package/dist/{editor-modal-Cl5GFWTQ.js → editor-modal-Co-rZGaf.js} +16 -16
  195. package/dist/en-B-xoKkWi.js +2 -0
  196. package/dist/{en-JJjqHMjy.js → en-BE28ZcUF.js} +1 -4
  197. package/dist/{es-BIh8BxV9.js → es-oQI-dfx2.js} +1 -4
  198. package/dist/{extensions-AKHJ0lax.js → extensions-DXSI8Dyj.js} +63 -63
  199. package/dist/{eye-_7xKFxQh.js → eye-Nbtw_q05.js} +1 -1
  200. package/dist/{fr-C5VUZogP.js → fr-rzLdCMSG.js} +1 -4
  201. package/dist/{image-up-Ck-xPOGS.js → image-up-C1jC7NzQ.js} +1 -1
  202. package/dist/index.d.ts +2434 -374
  203. package/dist/{info-CBBNLK_i.js → info-ClH66pKN.js} +1 -1
  204. package/dist/{cdn/chunks/ja-x5JYxaCW.js → ja-dyFc6Ghz.js} +1 -6
  205. package/dist/{link-BA_V9Nns.js → link-y47GNW0o.js} +1 -1
  206. package/dist/{liquid.browser-wPG0n4Cs.js → liquid.browser-Cs4gOjeX.js} +757 -718
  207. package/dist/{list-BTujzSSo.js → list-DiLMlMaE.js} +1 -1
  208. package/dist/{loader-circle-B5OQFRUF.js → loader-circle-BRdCPW5h.js} +1 -1
  209. package/dist/{message-circle-DWXr27lZ.js → message-circle-CNgIpVJv.js} +1 -1
  210. package/dist/{nl-UXxFyXV6.js → nl-BcQhRqKR.js} +1 -4
  211. package/dist/{package-DXW9QTU3.js → package-B9OWk-Kp.js} +1 -1
  212. package/dist/{pencil-QmONZtjF.js → pencil-BDnjo24u.js} +1 -1
  213. package/dist/{plus-XxHKE_GT.js → plus-BMgjN7lI.js} +1 -1
  214. package/dist/{preRenderCustomBlocks-CTstI3Q-.js → preRenderCustomBlocks-C_PIxBp7.js} +1 -1
  215. package/dist/{pt-BR-DHm3SP6W.js → pt-BR-UombhTMO.js} +1 -4
  216. package/dist/{refresh-cw-DhXU8dCo.js → refresh-cw-CR5lenxl.js} +1 -1
  217. package/dist/{search-CpFaMrnL.js → search-CxRUiOSF.js} +1 -1
  218. package/dist/{send-CFK3e6tQ.js → send-Bu2RysGL.js} +1 -1
  219. package/dist/{shield-check-ndwpOTik.js → shield-check-Cg8f4LB0.js} +1 -1
  220. package/dist/{smartphone-DndMh9W6.js → smartphone-CHf-8lHp.js} +1 -1
  221. package/dist/{socialIcons-D43BLoTu.js → socialIcons-D1gkHc_i.js} +2 -2
  222. package/dist/{sparkles-c1M5lwAQ.js → sparkles-_DQGv4ub.js} +1 -1
  223. package/dist/style.css +1 -1
  224. package/dist/templatical-editor.js +578 -595
  225. package/dist/{text-align-start-DOtBufPq.js → text-align-start-PHo-Ep5i.js} +13 -13
  226. package/dist/{trash-DmaPdiUk.js → trash-BxIzHAri.js} +1 -1
  227. package/dist/{triangle-alert-DqvxsSNL.js → triangle-alert-fcb2KoA-.js} +1 -1
  228. package/dist/{upload-CO_hogFv.js → upload-BxBtMPMv.js} +1 -1
  229. package/dist/{useEditorCore-0K8joh4X.js → useEditorCore-iuKC8yr5.js} +23 -23
  230. package/dist/{useLogicTag-BaH8gey0.js → useLogicTag-wqfdwYYR.js} +1 -1
  231. package/dist/{useMergeTag-Cyad1yBE.js → useMergeTag-D3XDE_58.js} +1 -1
  232. package/dist/{useScrollToBlock-BU5A9eS9.js → useScrollToBlock-DA_aIJXS.js} +1 -1
  233. package/dist/{x-BCop_VsL.js → x-DrZO5tt0.js} +1 -1
  234. package/package.json +30 -26
  235. package/dist/cdn/chunks/ca--zGWn9AU.js.map +0 -1
  236. package/dist/cdn/chunks/de-BRNLKcDl.js.map +0 -1
  237. package/dist/cdn/chunks/en-DxpXHoxJ.js +0 -2
  238. package/dist/cdn/chunks/en-JJjqHMjy.js.map +0 -1
  239. package/dist/cdn/chunks/es-BIh8BxV9.js.map +0 -1
  240. package/dist/cdn/chunks/fr-C5VUZogP.js.map +0 -1
  241. package/dist/cdn/chunks/ja-x5JYxaCW.js.map +0 -1
  242. package/dist/cdn/chunks/liquid.browser-BypTT2oc.js.map +0 -1
  243. package/dist/cdn/chunks/nl-UXxFyXV6.js.map +0 -1
  244. package/dist/cdn/chunks/pt-BR-DHm3SP6W.js.map +0 -1
  245. package/dist/cdn/chunks/socialIcons-ZOCwCCyn.js.map +0 -1
  246. package/dist/cdn/chunks/src-BR3I3gOW.js.map +0 -1
  247. package/dist/cdn/chunks/tiptap-D1u8JIUW.js.map +0 -1
  248. package/dist/dist-BUHovM4k.js +0 -5
  249. package/dist/dist-DdOAotfz.js +0 -5
  250. package/dist/en-CdCFaV2V.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"pusher-BbIHJKf3.js","names":["exports","web_http_http","module","__commonJSMin","require_pusher","exports","module","factory","\"Pusher\"","__webpack_modules__","__extends","extendStatics","b","p","d","__","exports$1","INVALID_BYTE","Coder","_paddingCharacter","length","out","i","data","c","left","s","paddingLength","op","haveBad","v0","v1","v2","v3","result","stdCoder","encode","decode","URLSafeCoder","_super","urlSafeCoder","encodeURLSafe","decodeURLSafe","INVALID_UTF8","chars","arr","min","n1","n2","n3","__webpack_require__","\"default\"","__webpack_exports__","pusher","ScriptReceiverFactory","prefix","name","number","id","called","callbackWrapper","callback","receiver","ScriptReceivers","defaults","DependencyLoader","options","self","request","runtime","callbacks","successCallback","wasSuccessful","error","cdn","protocol","DependenciesReceivers","Dependencies","urlStore","url_store","urlObj","key","url","AuthRequestType","\"UserAuthentication\"","\"ChannelAuthorization\"","BadEventName","msg","BadChannelName","RequestTimedOut","TransportPriorityTooLow","TransportClosed","UnsupportedFeature","UnsupportedTransport","UnsupportedStrategy","HTTPAuthError","status","xhr_auth","xhr","headerName","authOptions","dynamicHeaders","parsed","authRequestType","suffix","query","btoa","utob","fromCharCode","b64chars","b64tab","l","cb_utob","cc","u","cb_encode","padlen","ccc","ord","Timer","clear","set","delay","abstract_timer","timers_clearTimeout","timer","timers_clearInterval","OneOffTimer","PeriodicTimer","util","args","boundArguments","object","extend","sources","extensions","property","target","stringify","m","safeJSONStringify","arrayIndexOf","nativeIndexOf","array","item","objectApply","f","keys","values","value","apply","context","map","mapObject","filter","test","filterObject","flatten","any","collections_all","encodeParamsObject","buildQueryString","decycleObject","objects","paths","derez","nu","path","source","Logger","message","defaultLoggingFunction","logger","jsonp_auth","callbackName","document","script","callback_name","head","ScriptRequest","src","errorString","JSONPRequest","jsonp_timeline","useTLS","sender","getGenericURL","scheme","baseScheme","params","host","getGenericPath","queryString","ws","http","sockjs","CallbackRegistry","prefixedEventName","names","binding","Dispatcher","failThrough","eventName","metadata","TransportConnection","hooks","priority","closeEvent","state","Transport","environment","WSTransport","httpConfiguration","streamingConfiguration","pollingConfiguration","xhrConfiguration","transports","SockJSTransport","xdrConfiguration","XDRStreamingTransport","XDRPollingTransport","transports_transports","NetInfo","Network","AssistantToTheTransportManager","manager","transport","connection","openTimestamp","onOpen","onClosed","lifespan","Protocol","messageData","messageEvent","pusherEventData","pusherEvent","e","event","Connection","channel","listeners","unbindListeners","listener","action","Handshake","TimelineSender","timeline","Channel","PrivateChannel","Members","subscriptionData","memberData","member","__awaiter","adopt","P","fulfilled","generator","rejected","\"throw\"","step","resolve","thisArg","_arguments","PresenceChannel","socketId","authData","channelData","addedMember","removedMember","utf8","base64","EncryptedChannel","nacl","sharedSecret","\"shared_secret\"","cipherText","nonce","bytes","raw","ConnectionManager","handshake","errorCallbacks","withErrorEmitted","previousState","newState","newStateDescription","Channels","createChannel","TransportManager","SequentialStrategy","strategies","current","timeout","runner","tryNextStrategy","minPriority","strategy","BestConnectedEverStrategy","connect","allRunnersFailed","runners","callbackBuilder","rs","abortRunner","WebSocketPrioritizedCachedStrategy","usingTLS","info","fetchTransportCache","cacheSkipCount","startTimestamp","cb","flushTransportCache","storeTransportCache","getTransportCacheKey","storage","serializedCache","DelayedStrategy","IfStrategy","trueBranch","falseBranch","FirstConnectedStrategy","testSupportsStrategy","default_strategy","definedTransports","defineTransportStrategy","defineTransport","config","type","ws_options","baseOptions","wss_options","sockjs_options","timeouts","ws_manager","streaming_manager","ws_transport","wss_transport","sockjs_transport","xhr_streaming_transport","xdr_streaming_transport","xhr_polling_transport","xdr_polling_transport","ws_loop","wss_loop","sockjs_loop","streaming_loop","polling_loop","http_loop","http_fallback_loop","wsStrategy","transport_connection_initializer","http_xdomain_request","xdr","socket","HTTPRequest","method","payload","chunk","unreadData","buffer","endOfLinePosition","State","\"CONNECTING\"","\"OPEN\"","\"CLOSED\"","autoIncrement","HTTPSocket","randomNumber","randomString","getLocation","code","reason","getUniqueURL","getSendURL","replaceHost","parts","session","urlParts","hostname","max","http_socket","http_streaming_socket","http_polling_socket","http_xhr_request","http_http","PusherClass","initializeOnDocumentBody","Constructor","documentProtocol","\"XDomainRequest\"","crypto","\"msCrypto\"","limit","random","TimelineLevel","\"ERROR\"","\"INFO\"","\"DEBUG\"","level","Timeline","sendfn","TransportStrategy","failAttempt","connected","onInitialized","onError","serializedTransport","strategy_builder_Transports","transportClass","enabled","strategy_builder_UnsupportedStrategy","deferred","validateOptions","composeChannelQuery","dynamicParams","user_authenticator","channel_authorizer_composeChannelQuery","channel_authorizer","ChannelAuthorizerProxy","deprecatedAuthorizerOptions","getConfig","opts","getEnableStatsConfig","getHttpHost","shouldUseTLS","getWebsocketHost","buildUserAuthenticator","buildChannelAuthorizer","getWebsocketHostFromCluster","cluster","hasCustomHandler","auth","\"customHandler\"","userAuthentication","buildChannelAuth","channelAuthorization","WatchlistFacade","watchlistEvent","flatPromise","reject","res","rej","flat_promise","UserFacade","err","previous","ensure_subscribed","_","setDone","promise","Pusher","t","checkAppKey","app_key","getStrategy","internal","appKey","timelineSender","event_name","channelName","channel_name","__webpack_module_cache__","cachedModule","moduleId","module$2","definition","exports$3","obj","prop"],"sources":["../../../../../node_modules/.pnpm/pusher-js@8.6.0/node_modules/pusher-js/dist/web/pusher.js"],"sourcesContent":["/*!\n * Pusher JavaScript Library v8.6.0\n * https://pusher.com/\n *\n * Copyright 2020, Pusher\n * Released under the MIT licence.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Pusher\"] = factory();\n\telse\n\t\troot[\"Pusher\"] = factory();\n})(self, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 594\n(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n\n\n/***/ },\n\n/***/ 978\n(__unused_webpack_module, exports) {\n\n\"use strict\";\nvar __webpack_unused_export__;\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n__webpack_unused_export__ = ({ value: true });\n/**\n * Package utf8 implements UTF-8 encoding and decoding.\n */\nvar INVALID_UTF16 = \"utf8: invalid string\";\nvar INVALID_UTF8 = \"utf8: invalid source encoding\";\n/**\n * Encodes the given string into UTF-8 byte array.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encode(s) {\n // Calculate result length and allocate output array.\n // encodedLength() also validates string and throws errors,\n // so we don't need repeat validation here.\n var arr = new Uint8Array(encodedLength(s));\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n arr[pos++] = c;\n }\n else if (c < 0x800) {\n arr[pos++] = 0xc0 | c >> 6;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else if (c < 0xd800) {\n arr[pos++] = 0xe0 | c >> 12;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else {\n i++; // get one more character\n c = (c & 0x3ff) << 10;\n c |= s.charCodeAt(i) & 0x3ff;\n c += 0x10000;\n arr[pos++] = 0xf0 | c >> 18;\n arr[pos++] = 0x80 | (c >> 12) & 0x3f;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n }\n return arr;\n}\n__webpack_unused_export__ = encode;\n/**\n * Returns the number of bytes required to encode the given string into UTF-8.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encodedLength(s) {\n var result = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n result += 1;\n }\n else if (c < 0x800) {\n result += 2;\n }\n else if (c < 0xd800) {\n result += 3;\n }\n else if (c <= 0xdfff) {\n if (i >= s.length - 1) {\n throw new Error(INVALID_UTF16);\n }\n i++; // \"eat\" next character\n result += 4;\n }\n else {\n throw new Error(INVALID_UTF16);\n }\n }\n return result;\n}\n__webpack_unused_export__ = encodedLength;\n/**\n * Decodes the given byte array from UTF-8 into a string.\n * Throws if encoding is invalid.\n */\nfunction decode(arr) {\n var chars = [];\n for (var i = 0; i < arr.length; i++) {\n var b = arr[i];\n if (b & 0x80) {\n var min = void 0;\n if (b < 0xe0) {\n // Need 1 more byte.\n if (i >= arr.length) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n if ((n1 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x1f) << 6 | (n1 & 0x3f);\n min = 0x80;\n }\n else if (b < 0xf0) {\n // Need 2 more bytes.\n if (i >= arr.length - 1) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f);\n min = 0x800;\n }\n else if (b < 0xf8) {\n // Need 3 more bytes.\n if (i >= arr.length - 2) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n var n3 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f);\n min = 0x10000;\n }\n else {\n throw new Error(INVALID_UTF8);\n }\n if (b < min || (b >= 0xd800 && b <= 0xdfff)) {\n throw new Error(INVALID_UTF8);\n }\n if (b >= 0x10000) {\n // Surrogate pair.\n if (b > 0x10ffff) {\n throw new Error(INVALID_UTF8);\n }\n b -= 0x10000;\n chars.push(String.fromCharCode(0xd800 | (b >> 10)));\n b = 0xdc00 | (b & 0x3ff);\n }\n }\n chars.push(String.fromCharCode(b));\n }\n return chars.join(\"\");\n}\nexports.D4 = decode;\n\n\n/***/ },\n\n/***/ 721\n(module, __unused_webpack_exports, __webpack_require__) {\n\n// required so we don't have to do require('pusher').default etc.\nmodule.exports = __webpack_require__(207)[\"default\"];\n\n\n/***/ },\n\n/***/ 207\n(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ pusher)\n});\n\n;// ./src/runtimes/web/dom/script_receiver_factory.ts\nclass ScriptReceiverFactory {\n constructor(prefix, name) {\n this.lastId = 0;\n this.prefix = prefix;\n this.name = name;\n }\n create(callback) {\n this.lastId++;\n var number = this.lastId;\n var id = this.prefix + number;\n var name = this.name + '[' + number + ']';\n var called = false;\n var callbackWrapper = function () {\n if (!called) {\n callback.apply(null, arguments);\n called = true;\n }\n };\n this[number] = callbackWrapper;\n return { number: number, id: id, name: name, callback: callbackWrapper };\n }\n remove(receiver) {\n delete this[receiver.number];\n }\n}\nvar ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers');\n\n;// ./src/core/defaults.ts\nvar Defaults = {\n VERSION: \"8.6.0\",\n PROTOCOL: 7,\n wsPort: 80,\n wssPort: 443,\n wsPath: '',\n httpHost: 'sockjs.pusher.com',\n httpPort: 80,\n httpsPort: 443,\n httpPath: '/pusher',\n stats_host: 'stats.pusher.com',\n authEndpoint: '/pusher/auth',\n authTransport: 'ajax',\n activityTimeout: 120000,\n pongTimeout: 30000,\n unavailableTimeout: 10000,\n userAuthentication: {\n endpoint: '/pusher/user-auth',\n transport: 'ajax',\n },\n channelAuthorization: {\n endpoint: '/pusher/auth',\n transport: 'ajax',\n },\n cdn_http: \"http://js.pusher.com\",\n cdn_https: \"https://js.pusher.com\",\n dependency_suffix: \"\",\n};\n/* harmony default export */ const defaults = (Defaults);\n\n;// ./src/runtimes/web/dom/dependency_loader.ts\n\n\nclass DependencyLoader {\n constructor(options) {\n this.options = options;\n this.receivers = options.receivers || ScriptReceivers;\n this.loading = {};\n }\n load(name, options, callback) {\n var self = this;\n if (self.loading[name] && self.loading[name].length > 0) {\n self.loading[name].push(callback);\n }\n else {\n self.loading[name] = [callback];\n var request = runtime.createScriptRequest(self.getPath(name, options));\n var receiver = self.receivers.create(function (error) {\n self.receivers.remove(receiver);\n if (self.loading[name]) {\n var callbacks = self.loading[name];\n delete self.loading[name];\n var successCallback = function (wasSuccessful) {\n if (!wasSuccessful) {\n request.cleanup();\n }\n };\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](error, successCallback);\n }\n }\n });\n request.send(receiver);\n }\n }\n getRoot(options) {\n var cdn;\n var protocol = runtime.getDocument().location.protocol;\n if ((options && options.useTLS) || protocol === 'https:') {\n cdn = this.options.cdn_https;\n }\n else {\n cdn = this.options.cdn_http;\n }\n return cdn.replace(/\\/*$/, '') + '/' + this.options.version;\n }\n getPath(name, options) {\n return this.getRoot(options) + '/' + name + this.options.suffix + '.js';\n }\n}\n\n;// ./src/runtimes/web/dom/dependencies.ts\n\n\n\nvar DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers');\nvar Dependencies = new DependencyLoader({\n cdn_http: defaults.cdn_http,\n cdn_https: defaults.cdn_https,\n version: defaults.VERSION,\n suffix: defaults.dependency_suffix,\n receivers: DependenciesReceivers,\n});\n\n;// ./src/core/utils/url_store.ts\nconst urlStore = {\n baseUrl: 'https://pusher.com',\n urls: {\n authenticationEndpoint: {\n path: '/docs/channels/server_api/authenticating_users',\n },\n authorizationEndpoint: {\n path: '/docs/channels/server_api/authorizing-users/',\n },\n javascriptQuickStart: {\n path: '/docs/javascript_quick_start',\n },\n triggeringClientEvents: {\n path: '/docs/client_api_guide/client_events#trigger-events',\n },\n encryptedChannelSupport: {\n fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support',\n },\n },\n};\nconst buildLogSuffix = function (key) {\n const urlPrefix = 'See:';\n const urlObj = urlStore.urls[key];\n if (!urlObj)\n return '';\n let url;\n if (urlObj.fullUrl) {\n url = urlObj.fullUrl;\n }\n else if (urlObj.path) {\n url = urlStore.baseUrl + urlObj.path;\n }\n if (!url)\n return '';\n return `${urlPrefix} ${url}`;\n};\n/* harmony default export */ const url_store = ({ buildLogSuffix });\n\n;// ./src/core/auth/options.ts\nvar AuthRequestType;\n(function (AuthRequestType) {\n AuthRequestType[\"UserAuthentication\"] = \"user-authentication\";\n AuthRequestType[\"ChannelAuthorization\"] = \"channel-authorization\";\n})(AuthRequestType || (AuthRequestType = {}));\n\n;// ./src/core/errors.ts\nclass BadEventName extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass BadChannelName extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass RequestTimedOut extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass TransportPriorityTooLow extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass TransportClosed extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedFeature extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedTransport extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedStrategy extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass HTTPAuthError extends Error {\n constructor(status, msg) {\n super(msg);\n this.status = status;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n;// ./src/runtimes/isomorphic/auth/xhr_auth.ts\n\n\n\n\nconst ajax = function (context, query, authOptions, authRequestType, callback) {\n const xhr = runtime.createXHR();\n xhr.open('POST', authOptions.endpoint, true);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n for (var headerName in authOptions.headers) {\n xhr.setRequestHeader(headerName, authOptions.headers[headerName]);\n }\n if (authOptions.headersProvider != null) {\n let dynamicHeaders = authOptions.headersProvider();\n for (var headerName in dynamicHeaders) {\n xhr.setRequestHeader(headerName, dynamicHeaders[headerName]);\n }\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n let data;\n let parsed = false;\n try {\n data = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (e) {\n callback(new HTTPAuthError(200, `JSON returned from ${authRequestType.toString()} endpoint was invalid, yet status code was 200. Data was: ${xhr.responseText}`), null);\n }\n if (parsed) {\n callback(null, data);\n }\n }\n else {\n let suffix = '';\n switch (authRequestType) {\n case AuthRequestType.UserAuthentication:\n suffix = url_store.buildLogSuffix('authenticationEndpoint');\n break;\n case AuthRequestType.ChannelAuthorization:\n suffix = `Clients must be authorized to join private or presence channels. ${url_store.buildLogSuffix('authorizationEndpoint')}`;\n break;\n }\n callback(new HTTPAuthError(xhr.status, `Unable to retrieve auth string from ${authRequestType.toString()} endpoint - ` +\n `received status: ${xhr.status} from ${authOptions.endpoint}. ${suffix}`), null);\n }\n }\n };\n xhr.send(query);\n return xhr;\n};\n/* harmony default export */ const xhr_auth = (ajax);\n\n;// ./src/core/base64.ts\nfunction encode(s) {\n return btoa(utob(s));\n}\nvar fromCharCode = String.fromCharCode;\nvar b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64tab = {};\nfor (var i = 0, l = b64chars.length; i < l; i++) {\n b64tab[b64chars.charAt(i)] = i;\n}\nvar cb_utob = function (c) {\n var cc = c.charCodeAt(0);\n return cc < 0x80\n ? c\n : cc < 0x800\n ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))\n : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +\n fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +\n fromCharCode(0x80 | (cc & 0x3f));\n};\nvar utob = function (u) {\n return u.replace(/[^\\x00-\\x7F]/g, cb_utob);\n};\nvar cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3];\n var ord = (ccc.charCodeAt(0) << 16) |\n ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |\n (ccc.length > 2 ? ccc.charCodeAt(2) : 0);\n var chars = [\n b64chars.charAt(ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63),\n ];\n return chars.join('');\n};\nvar btoa = (typeof window !== 'undefined' && window.btoa) ||\n function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n\n;// ./src/core/utils/timers/abstract_timer.ts\nclass Timer {\n constructor(set, clear, delay, callback) {\n this.clear = clear;\n this.timer = set(() => {\n if (this.timer) {\n this.timer = callback(this.timer);\n }\n }, delay);\n }\n isRunning() {\n return this.timer !== null;\n }\n ensureAborted() {\n if (this.timer) {\n this.clear(this.timer);\n this.timer = null;\n }\n }\n}\n/* harmony default export */ const abstract_timer = (Timer);\n\n;// ./src/core/utils/timers/index.ts\n\nfunction timers_clearTimeout(timer) {\n window.clearTimeout(timer);\n}\nfunction timers_clearInterval(timer) {\n window.clearInterval(timer);\n}\nclass OneOffTimer extends abstract_timer {\n constructor(delay, callback) {\n super(setTimeout, timers_clearTimeout, delay, function (timer) {\n callback();\n return null;\n });\n }\n}\nclass PeriodicTimer extends abstract_timer {\n constructor(delay, callback) {\n super(setInterval, timers_clearInterval, delay, function (timer) {\n callback();\n return timer;\n });\n }\n}\n\n;// ./src/core/util.ts\n\nvar Util = {\n now() {\n if (Date.now) {\n return Date.now();\n }\n else {\n return new Date().valueOf();\n }\n },\n defer(callback) {\n return new OneOffTimer(0, callback);\n },\n method(name, ...args) {\n var boundArguments = Array.prototype.slice.call(arguments, 1);\n return function (object) {\n return object[name].apply(object, boundArguments.concat(arguments));\n };\n },\n};\n/* harmony default export */ const util = (Util);\n\n;// ./src/core/utils/collections.ts\n\n\nfunction extend(target, ...sources) {\n for (var i = 0; i < sources.length; i++) {\n var extensions = sources[i];\n for (var property in extensions) {\n if (property === '__proto__' ||\n property === 'constructor' ||\n property === 'prototype') {\n continue;\n }\n if (extensions[property] &&\n extensions[property].constructor &&\n extensions[property].constructor === Object) {\n target[property] = extend(target[property] || {}, extensions[property]);\n }\n else {\n target[property] = extensions[property];\n }\n }\n }\n return target;\n}\nfunction stringify() {\n var m = ['Pusher'];\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === 'string') {\n m.push(arguments[i]);\n }\n else {\n m.push(safeJSONStringify(arguments[i]));\n }\n }\n return m.join(' : ');\n}\nfunction arrayIndexOf(array, item) {\n var nativeIndexOf = Array.prototype.indexOf;\n if (array === null) {\n return -1;\n }\n if (nativeIndexOf && array.indexOf === nativeIndexOf) {\n return array.indexOf(item);\n }\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n}\nfunction objectApply(object, f) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n f(object[key], key, object);\n }\n }\n}\nfunction keys(object) {\n var keys = [];\n objectApply(object, function (_, key) {\n keys.push(key);\n });\n return keys;\n}\nfunction values(object) {\n var values = [];\n objectApply(object, function (value) {\n values.push(value);\n });\n return values;\n}\nfunction apply(array, f, context) {\n for (var i = 0; i < array.length; i++) {\n f.call(context || window, array[i], i, array);\n }\n}\nfunction map(array, f) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n result.push(f(array[i], i, array, result));\n }\n return result;\n}\nfunction mapObject(object, f) {\n var result = {};\n objectApply(object, function (value, key) {\n result[key] = f(value);\n });\n return result;\n}\nfunction filter(array, test) {\n test =\n test ||\n function (value) {\n return !!value;\n };\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array, result)) {\n result.push(array[i]);\n }\n }\n return result;\n}\nfunction filterObject(object, test) {\n var result = {};\n objectApply(object, function (value, key) {\n if ((test && test(value, key, object, result)) || Boolean(value)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction flatten(object) {\n var result = [];\n objectApply(object, function (value, key) {\n result.push([key, value]);\n });\n return result;\n}\nfunction any(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array)) {\n return true;\n }\n }\n return false;\n}\nfunction collections_all(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (!test(array[i], i, array)) {\n return false;\n }\n }\n return true;\n}\nfunction encodeParamsObject(data) {\n return mapObject(data, function (value) {\n if (value === null) {\n return '';\n }\n if (typeof value === 'object') {\n value = safeJSONStringify(value);\n }\n return encodeURIComponent(encode(value.toString()));\n });\n}\nfunction buildQueryString(data) {\n var params = filterObject(data, function (value) {\n return value !== undefined;\n });\n var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&');\n return query;\n}\nfunction decycleObject(object) {\n var objects = [], paths = [];\n return (function derez(value, path) {\n var i, name, nu;\n switch (typeof value) {\n case 'object':\n if (!value) {\n return null;\n }\n for (i = 0; i < objects.length; i += 1) {\n if (objects[i] === value) {\n return { $ref: paths[i] };\n }\n }\n objects.push(value);\n paths.push(path);\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n nu = [];\n for (i = 0; i < value.length; i += 1) {\n nu[i] = derez(value[i], path + '[' + i + ']');\n }\n }\n else {\n nu = {};\n for (name in value) {\n if (Object.prototype.hasOwnProperty.call(value, name)) {\n nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');\n }\n }\n }\n return nu;\n case 'number':\n case 'string':\n case 'boolean':\n return value;\n }\n })(object, '$');\n}\nfunction safeJSONStringify(source) {\n try {\n return JSON.stringify(source);\n }\n catch (e) {\n return JSON.stringify(decycleObject(source));\n }\n}\n\n;// ./src/core/logger.ts\n\n\nclass Logger {\n constructor() {\n this.globalLog = (message) => {\n if (window.console && window.console.log) {\n window.console.log(message);\n }\n };\n }\n debug(...args) {\n this.log(this.globalLog, args);\n }\n warn(...args) {\n this.log(this.globalLogWarn, args);\n }\n error(...args) {\n this.log(this.globalLogError, args);\n }\n globalLogWarn(message) {\n if (window.console && window.console.warn) {\n window.console.warn(message);\n }\n else {\n this.globalLog(message);\n }\n }\n globalLogError(message) {\n if (window.console && window.console.error) {\n window.console.error(message);\n }\n else {\n this.globalLogWarn(message);\n }\n }\n log(defaultLoggingFunction, ...args) {\n var message = stringify.apply(this, arguments);\n if (pusher.log) {\n pusher.log(message);\n }\n else if (pusher.logToConsole) {\n const log = defaultLoggingFunction.bind(this);\n log(message);\n }\n }\n}\n/* harmony default export */ const logger = (new Logger());\n\n;// ./src/runtimes/web/auth/jsonp_auth.ts\n\nvar jsonp = function (context, query, authOptions, authRequestType, callback) {\n if (authOptions.headers !== undefined ||\n authOptions.headersProvider != null) {\n logger.warn(`To send headers with the ${authRequestType.toString()} request, you must use AJAX, rather than JSONP.`);\n }\n var callbackName = context.nextAuthCallbackID.toString();\n context.nextAuthCallbackID++;\n var document = context.getDocument();\n var script = document.createElement('script');\n context.auth_callbacks[callbackName] = function (data) {\n callback(null, data);\n };\n var callback_name = \"Pusher.auth_callbacks['\" + callbackName + \"']\";\n script.src =\n authOptions.endpoint +\n '?callback=' +\n encodeURIComponent(callback_name) +\n '&' +\n query;\n var head = document.getElementsByTagName('head')[0] || document.documentElement;\n head.insertBefore(script, head.firstChild);\n};\n/* harmony default export */ const jsonp_auth = (jsonp);\n\n;// ./src/runtimes/web/dom/script_request.ts\nclass ScriptRequest {\n constructor(src) {\n this.src = src;\n }\n send(receiver) {\n var self = this;\n var errorString = 'Error loading ' + self.src;\n self.script = document.createElement('script');\n self.script.id = receiver.id;\n self.script.src = self.src;\n self.script.type = 'text/javascript';\n self.script.charset = 'UTF-8';\n if (self.script.addEventListener) {\n self.script.onerror = function () {\n receiver.callback(errorString);\n };\n self.script.onload = function () {\n receiver.callback(null);\n };\n }\n else {\n self.script.onreadystatechange = function () {\n if (self.script.readyState === 'loaded' ||\n self.script.readyState === 'complete') {\n receiver.callback(null);\n }\n };\n }\n if (self.script.async === undefined &&\n document.attachEvent &&\n /opera/i.test(navigator.userAgent)) {\n self.errorScript = document.createElement('script');\n self.errorScript.id = receiver.id + '_error';\n self.errorScript.text = receiver.name + \"('\" + errorString + \"');\";\n self.script.async = self.errorScript.async = false;\n }\n else {\n self.script.async = true;\n }\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(self.script, head.firstChild);\n if (self.errorScript) {\n head.insertBefore(self.errorScript, self.script.nextSibling);\n }\n }\n cleanup() {\n if (this.script) {\n this.script.onload = this.script.onerror = null;\n this.script.onreadystatechange = null;\n }\n if (this.script && this.script.parentNode) {\n this.script.parentNode.removeChild(this.script);\n }\n if (this.errorScript && this.errorScript.parentNode) {\n this.errorScript.parentNode.removeChild(this.errorScript);\n }\n this.script = null;\n this.errorScript = null;\n }\n}\n\n;// ./src/runtimes/web/dom/jsonp_request.ts\n\n\nclass JSONPRequest {\n constructor(url, data) {\n this.url = url;\n this.data = data;\n }\n send(receiver) {\n if (this.request) {\n return;\n }\n var query = buildQueryString(this.data);\n var url = this.url + '/' + receiver.number + '?' + query;\n this.request = runtime.createScriptRequest(url);\n this.request.send(receiver);\n }\n cleanup() {\n if (this.request) {\n this.request.cleanup();\n }\n }\n}\n\n;// ./src/runtimes/web/timeline/jsonp_timeline.ts\n\n\nvar getAgent = function (sender, useTLS) {\n return function (data, callback) {\n var scheme = 'http' + (useTLS ? 's' : '') + '://';\n var url = scheme + (sender.host || sender.options.host) + sender.options.path;\n var request = runtime.createJSONPRequest(url, data);\n var receiver = runtime.ScriptReceivers.create(function (error, result) {\n ScriptReceivers.remove(receiver);\n request.cleanup();\n if (result && result.host) {\n sender.host = result.host;\n }\n if (callback) {\n callback(error, result);\n }\n });\n request.send(receiver);\n };\n};\nvar jsonp_timeline_jsonp = {\n name: 'jsonp',\n getAgent,\n};\n/* harmony default export */ const jsonp_timeline = (jsonp_timeline_jsonp);\n\n;// ./src/core/transports/url_schemes.ts\n\nfunction getGenericURL(baseScheme, params, path) {\n var scheme = baseScheme + (params.useTLS ? 's' : '');\n var host = params.useTLS ? params.hostTLS : params.hostNonTLS;\n return scheme + '://' + host + path;\n}\nfunction getGenericPath(key, queryString) {\n var path = '/app/' + key;\n var query = '?protocol=' +\n defaults.PROTOCOL +\n '&client=js' +\n '&version=' +\n defaults.VERSION +\n (queryString ? '&' + queryString : '');\n return path + query;\n}\nvar ws = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '') + getGenericPath(key, 'flash=false');\n return getGenericURL('ws', params, path);\n },\n};\nvar http = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '/pusher') + getGenericPath(key);\n return getGenericURL('http', params, path);\n },\n};\nvar sockjs = {\n getInitial: function (key, params) {\n return getGenericURL('http', params, params.httpPath || '/pusher');\n },\n getPath: function (key, params) {\n return getGenericPath(key);\n },\n};\n\n;// ./src/core/events/callback_registry.ts\n\nclass CallbackRegistry {\n constructor() {\n this._callbacks = {};\n }\n get(name) {\n return this._callbacks[prefix(name)];\n }\n add(name, callback, context) {\n var prefixedEventName = prefix(name);\n this._callbacks[prefixedEventName] =\n this._callbacks[prefixedEventName] || [];\n this._callbacks[prefixedEventName].push({\n fn: callback,\n context: context,\n });\n }\n remove(name, callback, context) {\n if (!name && !callback && !context) {\n this._callbacks = {};\n return;\n }\n var names = name ? [prefix(name)] : keys(this._callbacks);\n if (callback || context) {\n this.removeCallback(names, callback, context);\n }\n else {\n this.removeAllCallbacks(names);\n }\n }\n removeCallback(names, callback, context) {\n apply(names, function (name) {\n this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {\n return ((callback && callback !== binding.fn) ||\n (context && context !== binding.context));\n });\n if (this._callbacks[name].length === 0) {\n delete this._callbacks[name];\n }\n }, this);\n }\n removeAllCallbacks(names) {\n apply(names, function (name) {\n delete this._callbacks[name];\n }, this);\n }\n}\nfunction prefix(name) {\n return '_' + name;\n}\n\n;// ./src/core/events/dispatcher.ts\n\n\nclass Dispatcher {\n constructor(failThrough) {\n this.callbacks = new CallbackRegistry();\n this.global_callbacks = [];\n this.failThrough = failThrough;\n }\n bind(eventName, callback, context) {\n this.callbacks.add(eventName, callback, context);\n return this;\n }\n bind_global(callback) {\n this.global_callbacks.push(callback);\n return this;\n }\n unbind(eventName, callback, context) {\n this.callbacks.remove(eventName, callback, context);\n return this;\n }\n unbind_global(callback) {\n if (!callback) {\n this.global_callbacks = [];\n return this;\n }\n this.global_callbacks = filter(this.global_callbacks || [], (c) => c !== callback);\n return this;\n }\n unbind_all() {\n this.unbind();\n this.unbind_global();\n return this;\n }\n emit(eventName, data, metadata) {\n for (var i = 0; i < this.global_callbacks.length; i++) {\n this.global_callbacks[i](eventName, data);\n }\n var callbacks = this.callbacks.get(eventName);\n var args = [];\n if (metadata) {\n args.push(data, metadata);\n }\n else if (data) {\n args.push(data);\n }\n if (callbacks && callbacks.length > 0) {\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].fn.apply(callbacks[i].context || window, args);\n }\n }\n else if (this.failThrough) {\n this.failThrough(eventName, data);\n }\n return this;\n }\n}\n\n;// ./src/core/transports/transport_connection.ts\n\n\n\n\n\nclass TransportConnection extends Dispatcher {\n constructor(hooks, name, priority, key, options) {\n super();\n this.initialize = runtime.transportConnectionInitializer;\n this.hooks = hooks;\n this.name = name;\n this.priority = priority;\n this.key = key;\n this.options = options;\n this.state = 'new';\n this.timeline = options.timeline;\n this.activityTimeout = options.activityTimeout;\n this.id = this.timeline.generateUniqueID();\n }\n handlesActivityChecks() {\n return Boolean(this.hooks.handlesActivityChecks);\n }\n supportsPing() {\n return Boolean(this.hooks.supportsPing);\n }\n connect() {\n if (this.socket || this.state !== 'initialized') {\n return false;\n }\n var url = this.hooks.urls.getInitial(this.key, this.options);\n try {\n this.socket = this.hooks.getSocket(url, this.options);\n }\n catch (e) {\n util.defer(() => {\n this.onError(e);\n this.changeState('closed');\n });\n return false;\n }\n this.bindListeners();\n logger.debug('Connecting', { transport: this.name, url });\n this.changeState('connecting');\n return true;\n }\n close() {\n if (this.socket) {\n this.socket.close();\n return true;\n }\n else {\n return false;\n }\n }\n send(data) {\n if (this.state === 'open') {\n util.defer(() => {\n if (this.socket) {\n this.socket.send(data);\n }\n });\n return true;\n }\n else {\n return false;\n }\n }\n ping() {\n if (this.state === 'open' && this.supportsPing()) {\n this.socket.ping();\n }\n }\n onOpen() {\n if (this.hooks.beforeOpen) {\n this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));\n }\n this.changeState('open');\n this.socket.onopen = undefined;\n }\n onError(error) {\n this.emit('error', { type: 'WebSocketError', error: error });\n this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));\n }\n onClose(closeEvent) {\n if (closeEvent) {\n this.changeState('closed', {\n code: closeEvent.code,\n reason: closeEvent.reason,\n wasClean: closeEvent.wasClean,\n });\n }\n else {\n this.changeState('closed');\n }\n this.unbindListeners();\n this.socket = undefined;\n }\n onMessage(message) {\n this.emit('message', message);\n }\n onActivity() {\n this.emit('activity');\n }\n bindListeners() {\n this.socket.onopen = () => {\n this.onOpen();\n };\n this.socket.onerror = (error) => {\n this.onError(error);\n };\n this.socket.onclose = (closeEvent) => {\n this.onClose(closeEvent);\n };\n this.socket.onmessage = (message) => {\n this.onMessage(message);\n };\n if (this.supportsPing()) {\n this.socket.onactivity = () => {\n this.onActivity();\n };\n }\n }\n unbindListeners() {\n if (this.socket) {\n this.socket.onopen = undefined;\n this.socket.onerror = undefined;\n this.socket.onclose = undefined;\n this.socket.onmessage = undefined;\n if (this.supportsPing()) {\n this.socket.onactivity = undefined;\n }\n }\n }\n changeState(state, params) {\n this.state = state;\n this.timeline.info(this.buildTimelineMessage({\n state: state,\n params: params,\n }));\n this.emit(state, params);\n }\n buildTimelineMessage(message) {\n return extend({ cid: this.id }, message);\n }\n}\n\n;// ./src/core/transports/transport.ts\n\nclass Transport {\n constructor(hooks) {\n this.hooks = hooks;\n }\n isSupported(environment) {\n return this.hooks.isSupported(environment);\n }\n createConnection(name, priority, key, options) {\n return new TransportConnection(this.hooks, name, priority, key, options);\n }\n}\n\n;// ./src/runtimes/isomorphic/transports/transports.ts\n\n\n\n\nvar WSTransport = new Transport({\n urls: ws,\n handlesActivityChecks: false,\n supportsPing: false,\n isInitialized: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n isSupported: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n getSocket: function (url) {\n return runtime.createWebSocket(url);\n },\n});\nvar httpConfiguration = {\n urls: http,\n handlesActivityChecks: false,\n supportsPing: true,\n isInitialized: function () {\n return true;\n },\n};\nvar streamingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createStreamingSocket(url);\n },\n}, httpConfiguration);\nvar pollingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createPollingSocket(url);\n },\n}, httpConfiguration);\nvar xhrConfiguration = {\n isSupported: function () {\n return runtime.isXHRSupported();\n },\n};\nvar XHRStreamingTransport = new Transport((extend({}, streamingConfiguration, xhrConfiguration)));\nvar XHRPollingTransport = new Transport((extend({}, pollingConfiguration, xhrConfiguration)));\nvar Transports = {\n ws: WSTransport,\n xhr_streaming: XHRStreamingTransport,\n xhr_polling: XHRPollingTransport,\n};\n/* harmony default export */ const transports = (Transports);\n\n;// ./src/runtimes/web/transports/transports.ts\n\n\n\n\n\n\nvar SockJSTransport = new Transport({\n file: 'sockjs',\n urls: sockjs,\n handlesActivityChecks: true,\n supportsPing: false,\n isSupported: function () {\n return true;\n },\n isInitialized: function () {\n return window.SockJS !== undefined;\n },\n getSocket: function (url, options) {\n return new window.SockJS(url, null, {\n js_path: Dependencies.getPath('sockjs', {\n useTLS: options.useTLS,\n }),\n ignore_null_origin: options.ignoreNullOrigin,\n });\n },\n beforeOpen: function (socket, path) {\n socket.send(JSON.stringify({\n path: path,\n }));\n },\n});\nvar xdrConfiguration = {\n isSupported: function (environment) {\n var yes = runtime.isXDRSupported(environment.useTLS);\n return yes;\n },\n};\nvar XDRStreamingTransport = new Transport((extend({}, streamingConfiguration, xdrConfiguration)));\nvar XDRPollingTransport = new Transport((extend({}, pollingConfiguration, xdrConfiguration)));\ntransports.xdr_streaming = XDRStreamingTransport;\ntransports.xdr_polling = XDRPollingTransport;\ntransports.sockjs = SockJSTransport;\n/* harmony default export */ const transports_transports = (transports);\n\n;// ./src/runtimes/web/net_info.ts\n\nclass NetInfo extends Dispatcher {\n constructor() {\n super();\n var self = this;\n if (typeof window !== 'undefined' &&\n window.addEventListener !== undefined) {\n window.addEventListener('online', function () {\n self.emit('online');\n }, false);\n window.addEventListener('offline', function () {\n self.emit('offline');\n }, false);\n }\n }\n isOnline() {\n if (window.navigator.onLine === undefined) {\n return true;\n }\n else {\n return window.navigator.onLine;\n }\n }\n}\nvar Network = new NetInfo();\n\n;// ./src/core/transports/assistant_to_the_transport_manager.ts\n\n\nclass AssistantToTheTransportManager {\n constructor(manager, transport, options) {\n this.manager = manager;\n this.transport = transport;\n this.minPingDelay = options.minPingDelay;\n this.maxPingDelay = options.maxPingDelay;\n this.pingDelay = undefined;\n }\n createConnection(name, priority, key, options) {\n options = extend({}, options, {\n activityTimeout: this.pingDelay,\n });\n var connection = this.transport.createConnection(name, priority, key, options);\n var openTimestamp = null;\n var onOpen = function () {\n connection.unbind('open', onOpen);\n connection.bind('closed', onClosed);\n openTimestamp = util.now();\n };\n var onClosed = (closeEvent) => {\n connection.unbind('closed', onClosed);\n if (closeEvent.code === 1002 || closeEvent.code === 1003) {\n this.manager.reportDeath();\n }\n else if (!closeEvent.wasClean && openTimestamp) {\n var lifespan = util.now() - openTimestamp;\n if (lifespan < 2 * this.maxPingDelay) {\n this.manager.reportDeath();\n this.pingDelay = Math.max(lifespan / 2, this.minPingDelay);\n }\n }\n };\n connection.bind('open', onOpen);\n return connection;\n }\n isSupported(environment) {\n return this.manager.isAlive() && this.transport.isSupported(environment);\n }\n}\n\n;// ./src/core/connection/protocol/protocol.ts\nconst Protocol = {\n decodeMessage: function (messageEvent) {\n try {\n var messageData = JSON.parse(messageEvent.data);\n var pusherEventData = messageData.data;\n if (typeof pusherEventData === 'string') {\n try {\n pusherEventData = JSON.parse(messageData.data);\n }\n catch (e) { }\n }\n var pusherEvent = {\n event: messageData.event,\n channel: messageData.channel,\n data: pusherEventData,\n };\n if (messageData.user_id) {\n pusherEvent.user_id = messageData.user_id;\n }\n return pusherEvent;\n }\n catch (e) {\n throw { type: 'MessageParseError', error: e, data: messageEvent.data };\n }\n },\n encodeMessage: function (event) {\n return JSON.stringify(event);\n },\n processHandshake: function (messageEvent) {\n var message = Protocol.decodeMessage(messageEvent);\n if (message.event === 'pusher:connection_established') {\n if (!message.data.activity_timeout) {\n throw 'No activity timeout specified in handshake';\n }\n return {\n action: 'connected',\n id: message.data.socket_id,\n activityTimeout: message.data.activity_timeout * 1000,\n };\n }\n else if (message.event === 'pusher:error') {\n return {\n action: this.getCloseAction(message.data),\n error: this.getCloseError(message.data),\n };\n }\n else {\n throw 'Invalid handshake';\n }\n },\n getCloseAction: function (closeEvent) {\n if (closeEvent.code < 4000) {\n if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {\n return 'backoff';\n }\n else {\n return null;\n }\n }\n else if (closeEvent.code === 4000) {\n return 'tls_only';\n }\n else if (closeEvent.code < 4100) {\n return 'refused';\n }\n else if (closeEvent.code < 4200) {\n return 'backoff';\n }\n else if (closeEvent.code < 4300) {\n return 'retry';\n }\n else {\n return 'refused';\n }\n },\n getCloseError: function (closeEvent) {\n if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {\n return {\n type: 'PusherError',\n data: {\n code: closeEvent.code,\n message: closeEvent.reason || closeEvent.message,\n },\n };\n }\n else {\n return null;\n }\n },\n};\n/* harmony default export */ const protocol = (Protocol);\n\n;// ./src/core/connection/connection.ts\n\n\n\n\nclass Connection extends Dispatcher {\n constructor(id, transport) {\n super();\n this.id = id;\n this.transport = transport;\n this.activityTimeout = transport.activityTimeout;\n this.bindListeners();\n }\n handlesActivityChecks() {\n return this.transport.handlesActivityChecks();\n }\n send(data) {\n return this.transport.send(data);\n }\n send_event(name, data, channel) {\n var event = { event: name, data: data };\n if (channel) {\n event.channel = channel;\n }\n logger.debug('Event sent', event);\n return this.send(protocol.encodeMessage(event));\n }\n ping() {\n if (this.transport.supportsPing()) {\n this.transport.ping();\n }\n else {\n this.send_event('pusher:ping', {});\n }\n }\n close() {\n this.transport.close();\n }\n bindListeners() {\n var listeners = {\n message: (messageEvent) => {\n var pusherEvent;\n try {\n pusherEvent = protocol.decodeMessage(messageEvent);\n }\n catch (e) {\n this.emit('error', {\n type: 'MessageParseError',\n error: e,\n data: messageEvent.data,\n });\n }\n if (pusherEvent !== undefined) {\n logger.debug('Event recd', pusherEvent);\n switch (pusherEvent.event) {\n case 'pusher:error':\n this.emit('error', {\n type: 'PusherError',\n data: pusherEvent.data,\n });\n break;\n case 'pusher:ping':\n this.emit('ping');\n break;\n case 'pusher:pong':\n this.emit('pong');\n break;\n }\n this.emit('message', pusherEvent);\n }\n },\n activity: () => {\n this.emit('activity');\n },\n error: (error) => {\n this.emit('error', error);\n },\n closed: (closeEvent) => {\n unbindListeners();\n if (closeEvent && closeEvent.code) {\n this.handleCloseEvent(closeEvent);\n }\n this.transport = null;\n this.emit('closed');\n },\n };\n var unbindListeners = () => {\n objectApply(listeners, (listener, event) => {\n this.transport.unbind(event, listener);\n });\n };\n objectApply(listeners, (listener, event) => {\n this.transport.bind(event, listener);\n });\n }\n handleCloseEvent(closeEvent) {\n var action = protocol.getCloseAction(closeEvent);\n var error = protocol.getCloseError(closeEvent);\n if (error) {\n this.emit('error', error);\n }\n if (action) {\n this.emit(action, { action: action, error: error });\n }\n }\n}\n\n;// ./src/core/connection/handshake/index.ts\n\n\n\nclass Handshake {\n constructor(transport, callback) {\n this.transport = transport;\n this.callback = callback;\n this.bindListeners();\n }\n close() {\n this.unbindListeners();\n this.transport.close();\n }\n bindListeners() {\n this.onMessage = (m) => {\n this.unbindListeners();\n var result;\n try {\n result = protocol.processHandshake(m);\n }\n catch (e) {\n this.finish('error', { error: e });\n this.transport.close();\n return;\n }\n if (result.action === 'connected') {\n this.finish('connected', {\n connection: new Connection(result.id, this.transport),\n activityTimeout: result.activityTimeout,\n });\n }\n else {\n this.finish(result.action, { error: result.error });\n this.transport.close();\n }\n };\n this.onClosed = (closeEvent) => {\n this.unbindListeners();\n var action = protocol.getCloseAction(closeEvent) || 'backoff';\n var error = protocol.getCloseError(closeEvent);\n this.finish(action, { error: error });\n };\n this.transport.bind('message', this.onMessage);\n this.transport.bind('closed', this.onClosed);\n }\n unbindListeners() {\n this.transport.unbind('message', this.onMessage);\n this.transport.unbind('closed', this.onClosed);\n }\n finish(action, params) {\n this.callback(extend({ transport: this.transport, action: action }, params));\n }\n}\n\n;// ./src/core/timeline/timeline_sender.ts\n\nclass TimelineSender {\n constructor(timeline, options) {\n this.timeline = timeline;\n this.options = options || {};\n }\n send(useTLS, callback) {\n if (this.timeline.isEmpty()) {\n return;\n }\n this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);\n }\n}\n\n;// ./src/core/channels/channel.ts\n\n\n\n\n\nclass Channel extends Dispatcher {\n constructor(name, pusher) {\n super(function (event, data) {\n logger.debug('No callbacks on ' + name + ' for ' + event);\n });\n this.name = name;\n this.pusher = pusher;\n this.subscribed = false;\n this.subscriptionPending = false;\n this.subscriptionCancelled = false;\n }\n authorize(socketId, callback) {\n return callback(null, { auth: '' });\n }\n trigger(event, data) {\n if (event.indexOf('client-') !== 0) {\n throw new BadEventName(\"Event '\" + event + \"' does not start with 'client-'\");\n }\n if (!this.subscribed) {\n var suffix = url_store.buildLogSuffix('triggeringClientEvents');\n logger.warn(`Client event triggered before channel 'subscription_succeeded' event . ${suffix}`);\n }\n return this.pusher.send_event(event, data, this.name);\n }\n disconnect() {\n this.subscribed = false;\n this.subscriptionPending = false;\n }\n handleEvent(event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName === 'pusher_internal:subscription_succeeded') {\n this.handleSubscriptionSucceededEvent(event);\n }\n else if (eventName === 'pusher_internal:subscription_count') {\n this.handleSubscriptionCountEvent(event);\n }\n else if (eventName.indexOf('pusher_internal:') !== 0) {\n var metadata = {};\n this.emit(eventName, data, metadata);\n }\n }\n handleSubscriptionSucceededEvent(event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.emit('pusher:subscription_succeeded', event.data);\n }\n }\n handleSubscriptionCountEvent(event) {\n if (event.data.subscription_count) {\n this.subscriptionCount = event.data.subscription_count;\n }\n this.emit('pusher:subscription_count', event.data);\n }\n subscribe() {\n if (this.subscribed) {\n return;\n }\n this.subscriptionPending = true;\n this.subscriptionCancelled = false;\n this.authorize(this.pusher.connection.socket_id, (error, data) => {\n if (error) {\n this.subscriptionPending = false;\n logger.error(error.toString());\n this.emit('pusher:subscription_error', Object.assign({}, {\n type: 'AuthError',\n error: error.message,\n }, error instanceof HTTPAuthError ? { status: error.status } : {}));\n }\n else {\n this.pusher.send_event('pusher:subscribe', {\n auth: data.auth,\n channel_data: data.channel_data,\n channel: this.name,\n });\n }\n });\n }\n unsubscribe() {\n this.subscribed = false;\n this.pusher.send_event('pusher:unsubscribe', {\n channel: this.name,\n });\n }\n cancelSubscription() {\n this.subscriptionCancelled = true;\n }\n reinstateSubscription() {\n this.subscriptionCancelled = false;\n }\n}\n\n;// ./src/core/channels/private_channel.ts\n\nclass PrivateChannel extends Channel {\n authorize(socketId, callback) {\n return this.pusher.config.channelAuthorizer({\n channelName: this.name,\n socketId: socketId,\n }, callback);\n }\n}\n\n;// ./src/core/channels/members.ts\n\nclass Members {\n constructor() {\n this.reset();\n }\n get(id) {\n if (Object.prototype.hasOwnProperty.call(this.members, id)) {\n return {\n id: id,\n info: this.members[id],\n };\n }\n else {\n return null;\n }\n }\n each(callback) {\n objectApply(this.members, (member, id) => {\n callback(this.get(id));\n });\n }\n setMyID(id) {\n this.myID = id;\n }\n onSubscription(subscriptionData) {\n this.members = subscriptionData.presence.hash;\n this.count = subscriptionData.presence.count;\n this.me = this.get(this.myID);\n }\n addMember(memberData) {\n if (this.get(memberData.user_id) === null) {\n this.count++;\n }\n this.members[memberData.user_id] = memberData.user_info;\n return this.get(memberData.user_id);\n }\n removeMember(memberData) {\n var member = this.get(memberData.user_id);\n if (member) {\n delete this.members[memberData.user_id];\n this.count--;\n }\n return member;\n }\n reset() {\n this.members = {};\n this.count = 0;\n this.myID = null;\n this.me = null;\n }\n}\n\n;// ./src/core/channels/presence_channel.ts\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nclass PresenceChannel extends PrivateChannel {\n constructor(name, pusher) {\n super(name, pusher);\n this.members = new Members();\n }\n authorize(socketId, callback) {\n super.authorize(socketId, (error, authData) => __awaiter(this, void 0, void 0, function* () {\n if (!error) {\n authData = authData;\n if (authData.channel_data != null) {\n var channelData = JSON.parse(authData.channel_data);\n this.members.setMyID(channelData.user_id);\n }\n else {\n yield this.pusher.user.signinDonePromise;\n if (this.pusher.user.user_data != null) {\n this.members.setMyID(this.pusher.user.user_data.id);\n }\n else {\n let suffix = url_store.buildLogSuffix('authorizationEndpoint');\n logger.error(`Invalid auth response for channel '${this.name}', ` +\n `expected 'channel_data' field. ${suffix}, ` +\n `or the user should be signed in.`);\n callback('Invalid auth response');\n return;\n }\n }\n }\n callback(error, authData);\n }));\n }\n handleEvent(event) {\n var eventName = event.event;\n if (eventName.indexOf('pusher_internal:') === 0) {\n this.handleInternalEvent(event);\n }\n else {\n var data = event.data;\n var metadata = {};\n if (event.user_id) {\n metadata.user_id = event.user_id;\n }\n this.emit(eventName, data, metadata);\n }\n }\n handleInternalEvent(event) {\n var eventName = event.event;\n var data = event.data;\n switch (eventName) {\n case 'pusher_internal:subscription_succeeded':\n this.handleSubscriptionSucceededEvent(event);\n break;\n case 'pusher_internal:subscription_count':\n this.handleSubscriptionCountEvent(event);\n break;\n case 'pusher_internal:member_added':\n var addedMember = this.members.addMember(data);\n this.emit('pusher:member_added', addedMember);\n break;\n case 'pusher_internal:member_removed':\n var removedMember = this.members.removeMember(data);\n if (removedMember) {\n this.emit('pusher:member_removed', removedMember);\n }\n break;\n }\n }\n handleSubscriptionSucceededEvent(event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.members.onSubscription(event.data);\n this.emit('pusher:subscription_succeeded', this.members);\n }\n }\n disconnect() {\n this.members.reset();\n super.disconnect();\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js\nvar utf8 = __webpack_require__(978);\n// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js\nvar base64 = __webpack_require__(594);\n;// ./src/core/channels/encrypted_channel.ts\n\n\n\n\n\nclass EncryptedChannel extends PrivateChannel {\n constructor(name, pusher, nacl) {\n super(name, pusher);\n this.key = null;\n this.nacl = nacl;\n }\n authorize(socketId, callback) {\n super.authorize(socketId, (error, authData) => {\n if (error) {\n callback(error, authData);\n return;\n }\n let sharedSecret = authData['shared_secret'];\n if (!sharedSecret) {\n callback(new Error(`No shared_secret key in auth payload for encrypted channel: ${this.name}`), null);\n return;\n }\n this.key = (0,base64.decode)(sharedSecret);\n delete authData['shared_secret'];\n callback(null, authData);\n });\n }\n trigger(event, data) {\n throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');\n }\n handleEvent(event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n super.handleEvent(event);\n return;\n }\n this.handleEncryptedEvent(eventName, data);\n }\n handleEncryptedEvent(event, data) {\n if (!this.key) {\n logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');\n return;\n }\n if (!data.ciphertext || !data.nonce) {\n logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' +\n data);\n return;\n }\n let cipherText = (0,base64.decode)(data.ciphertext);\n if (cipherText.length < this.nacl.secretbox.overheadLength) {\n logger.error(`Expected encrypted event ciphertext length to be ${this.nacl.secretbox.overheadLength}, got: ${cipherText.length}`);\n return;\n }\n let nonce = (0,base64.decode)(data.nonce);\n if (nonce.length < this.nacl.secretbox.nonceLength) {\n logger.error(`Expected encrypted event nonce length to be ${this.nacl.secretbox.nonceLength}, got: ${nonce.length}`);\n return;\n }\n let bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');\n this.authorize(this.pusher.connection.socket_id, (error, authData) => {\n if (error) {\n logger.error(`Failed to make a request to the authEndpoint: ${authData}. Unable to fetch new key, so dropping encrypted event`);\n return;\n }\n bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.error(`Failed to decrypt event with new key. Dropping encrypted event`);\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n return;\n });\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n }\n getDataToEmit(bytes) {\n let raw = (0,utf8/* decode */.D4)(bytes);\n try {\n return JSON.parse(raw);\n }\n catch (_a) {\n return raw;\n }\n }\n}\n\n;// ./src/core/connection/connection_manager.ts\n\n\n\n\n\nclass ConnectionManager extends Dispatcher {\n constructor(key, options) {\n super();\n this.state = 'initialized';\n this.connection = null;\n this.key = key;\n this.options = options;\n this.timeline = this.options.timeline;\n this.usingTLS = this.options.useTLS;\n this.errorCallbacks = this.buildErrorCallbacks();\n this.connectionCallbacks = this.buildConnectionCallbacks(this.errorCallbacks);\n this.handshakeCallbacks = this.buildHandshakeCallbacks(this.errorCallbacks);\n var Network = runtime.getNetwork();\n Network.bind('online', () => {\n this.timeline.info({ netinfo: 'online' });\n if (this.state === 'connecting' || this.state === 'unavailable') {\n this.retryIn(0);\n }\n });\n Network.bind('offline', () => {\n this.timeline.info({ netinfo: 'offline' });\n if (this.connection) {\n this.sendActivityCheck();\n }\n });\n this.updateStrategy();\n }\n switchCluster(key) {\n this.key = key;\n this.updateStrategy();\n this.retryIn(0);\n }\n connect() {\n if (this.connection || this.runner) {\n return;\n }\n if (!this.strategy.isSupported()) {\n this.updateState('failed');\n return;\n }\n this.updateState('connecting');\n this.startConnecting();\n this.setUnavailableTimer();\n }\n send(data) {\n if (this.connection) {\n return this.connection.send(data);\n }\n else {\n return false;\n }\n }\n send_event(name, data, channel) {\n if (this.connection) {\n return this.connection.send_event(name, data, channel);\n }\n else {\n return false;\n }\n }\n disconnect() {\n this.disconnectInternally();\n this.updateState('disconnected');\n }\n isUsingTLS() {\n return this.usingTLS;\n }\n startConnecting() {\n var callback = (error, handshake) => {\n if (error) {\n this.runner = this.strategy.connect(0, callback);\n }\n else {\n if (handshake.action === 'error') {\n this.emit('error', {\n type: 'HandshakeError',\n error: handshake.error,\n });\n this.timeline.error({ handshakeError: handshake.error });\n }\n else {\n this.abortConnecting();\n this.handshakeCallbacks[handshake.action](handshake);\n }\n }\n };\n this.runner = this.strategy.connect(0, callback);\n }\n abortConnecting() {\n if (this.runner) {\n this.runner.abort();\n this.runner = null;\n }\n }\n disconnectInternally() {\n this.abortConnecting();\n this.clearRetryTimer();\n this.clearUnavailableTimer();\n if (this.connection) {\n var connection = this.abandonConnection();\n connection.close();\n }\n }\n updateStrategy() {\n this.strategy = this.options.getStrategy({\n key: this.key,\n timeline: this.timeline,\n useTLS: this.usingTLS,\n });\n }\n retryIn(delay) {\n this.timeline.info({ action: 'retry', delay: delay });\n if (delay > 0) {\n this.emit('connecting_in', Math.round(delay / 1000));\n }\n this.retryTimer = new OneOffTimer(delay || 0, () => {\n this.disconnectInternally();\n this.connect();\n });\n }\n clearRetryTimer() {\n if (this.retryTimer) {\n this.retryTimer.ensureAborted();\n this.retryTimer = null;\n }\n }\n setUnavailableTimer() {\n this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, () => {\n this.updateState('unavailable');\n });\n }\n clearUnavailableTimer() {\n if (this.unavailableTimer) {\n this.unavailableTimer.ensureAborted();\n }\n }\n sendActivityCheck() {\n this.stopActivityCheck();\n this.connection.ping();\n this.activityTimer = new OneOffTimer(this.options.pongTimeout, () => {\n this.timeline.error({ pong_timed_out: this.options.pongTimeout });\n this.retryIn(0);\n });\n }\n resetActivityCheck() {\n this.stopActivityCheck();\n if (this.connection && !this.connection.handlesActivityChecks()) {\n this.activityTimer = new OneOffTimer(this.activityTimeout, () => {\n this.sendActivityCheck();\n });\n }\n }\n stopActivityCheck() {\n if (this.activityTimer) {\n this.activityTimer.ensureAborted();\n }\n }\n buildConnectionCallbacks(errorCallbacks) {\n return extend({}, errorCallbacks, {\n message: (message) => {\n this.resetActivityCheck();\n this.emit('message', message);\n },\n ping: () => {\n this.send_event('pusher:pong', {});\n },\n activity: () => {\n this.resetActivityCheck();\n },\n error: (error) => {\n this.emit('error', error);\n },\n closed: () => {\n this.abandonConnection();\n if (this.shouldRetry()) {\n this.retryIn(1000);\n }\n },\n });\n }\n buildHandshakeCallbacks(errorCallbacks) {\n return extend({}, errorCallbacks, {\n connected: (handshake) => {\n this.activityTimeout = Math.min(this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);\n this.clearUnavailableTimer();\n this.setConnection(handshake.connection);\n this.socket_id = this.connection.id;\n this.updateState('connected', { socket_id: this.socket_id });\n },\n });\n }\n buildErrorCallbacks() {\n let withErrorEmitted = (callback) => {\n return (result) => {\n if (result.error) {\n this.emit('error', { type: 'WebSocketError', error: result.error });\n }\n callback(result);\n };\n };\n return {\n tls_only: withErrorEmitted(() => {\n this.usingTLS = true;\n this.updateStrategy();\n this.retryIn(0);\n }),\n refused: withErrorEmitted(() => {\n this.disconnect();\n }),\n backoff: withErrorEmitted(() => {\n this.retryIn(1000);\n }),\n retry: withErrorEmitted(() => {\n this.retryIn(0);\n }),\n };\n }\n setConnection(connection) {\n this.connection = connection;\n for (var event in this.connectionCallbacks) {\n this.connection.bind(event, this.connectionCallbacks[event]);\n }\n this.resetActivityCheck();\n }\n abandonConnection() {\n if (!this.connection) {\n return;\n }\n this.stopActivityCheck();\n for (var event in this.connectionCallbacks) {\n this.connection.unbind(event, this.connectionCallbacks[event]);\n }\n var connection = this.connection;\n this.connection = null;\n return connection;\n }\n updateState(newState, data) {\n var previousState = this.state;\n this.state = newState;\n if (previousState !== newState) {\n var newStateDescription = newState;\n if (newStateDescription === 'connected') {\n newStateDescription += ' with new socket ID ' + data.socket_id;\n }\n logger.debug('State changed', previousState + ' -> ' + newStateDescription);\n this.timeline.info({ state: newState, params: data });\n this.emit('state_change', { previous: previousState, current: newState });\n this.emit(newState, data);\n }\n }\n shouldRetry() {\n return this.state === 'connecting' || this.state === 'connected';\n }\n}\n\n;// ./src/core/channels/channels.ts\n\n\n\n\nclass Channels {\n constructor() {\n this.channels = {};\n }\n add(name, pusher) {\n if (!this.channels[name]) {\n this.channels[name] = createChannel(name, pusher);\n }\n return this.channels[name];\n }\n all() {\n return values(this.channels);\n }\n find(name) {\n return this.channels[name];\n }\n remove(name) {\n var channel = this.channels[name];\n delete this.channels[name];\n return channel;\n }\n disconnect() {\n objectApply(this.channels, function (channel) {\n channel.disconnect();\n });\n }\n}\nfunction createChannel(name, pusher) {\n if (name.indexOf('private-encrypted-') === 0) {\n if (pusher.config.nacl) {\n return factory.createEncryptedChannel(name, pusher, pusher.config.nacl);\n }\n let errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';\n let suffix = url_store.buildLogSuffix('encryptedChannelSupport');\n throw new UnsupportedFeature(`${errMsg}. ${suffix}`);\n }\n else if (name.indexOf('private-') === 0) {\n return factory.createPrivateChannel(name, pusher);\n }\n else if (name.indexOf('presence-') === 0) {\n return factory.createPresenceChannel(name, pusher);\n }\n else if (name.indexOf('#') === 0) {\n throw new BadChannelName('Cannot create a channel with name \"' + name + '\".');\n }\n else {\n return factory.createChannel(name, pusher);\n }\n}\n\n;// ./src/core/utils/factory.ts\n\n\n\n\n\n\n\n\n\nvar Factory = {\n createChannels() {\n return new Channels();\n },\n createConnectionManager(key, options) {\n return new ConnectionManager(key, options);\n },\n createChannel(name, pusher) {\n return new Channel(name, pusher);\n },\n createPrivateChannel(name, pusher) {\n return new PrivateChannel(name, pusher);\n },\n createPresenceChannel(name, pusher) {\n return new PresenceChannel(name, pusher);\n },\n createEncryptedChannel(name, pusher, nacl) {\n return new EncryptedChannel(name, pusher, nacl);\n },\n createTimelineSender(timeline, options) {\n return new TimelineSender(timeline, options);\n },\n createHandshake(transport, callback) {\n return new Handshake(transport, callback);\n },\n createAssistantToTheTransportManager(manager, transport, options) {\n return new AssistantToTheTransportManager(manager, transport, options);\n },\n};\n/* harmony default export */ const factory = (Factory);\n\n;// ./src/core/transports/transport_manager.ts\n\nclass TransportManager {\n constructor(options) {\n this.options = options || {};\n this.livesLeft = this.options.lives || Infinity;\n }\n getAssistant(transport) {\n return factory.createAssistantToTheTransportManager(this, transport, {\n minPingDelay: this.options.minPingDelay,\n maxPingDelay: this.options.maxPingDelay,\n });\n }\n isAlive() {\n return this.livesLeft > 0;\n }\n reportDeath() {\n this.livesLeft -= 1;\n }\n}\n\n;// ./src/core/strategies/sequential_strategy.ts\n\n\n\nclass SequentialStrategy {\n constructor(strategies, options) {\n this.strategies = strategies;\n this.loop = Boolean(options.loop);\n this.failFast = Boolean(options.failFast);\n this.timeout = options.timeout;\n this.timeoutLimit = options.timeoutLimit;\n }\n isSupported() {\n return any(this.strategies, util.method('isSupported'));\n }\n connect(minPriority, callback) {\n var strategies = this.strategies;\n var current = 0;\n var timeout = this.timeout;\n var runner = null;\n var tryNextStrategy = (error, handshake) => {\n if (handshake) {\n callback(null, handshake);\n }\n else {\n current = current + 1;\n if (this.loop) {\n current = current % strategies.length;\n }\n if (current < strategies.length) {\n if (timeout) {\n timeout = timeout * 2;\n if (this.timeoutLimit) {\n timeout = Math.min(timeout, this.timeoutLimit);\n }\n }\n runner = this.tryStrategy(strategies[current], minPriority, { timeout, failFast: this.failFast }, tryNextStrategy);\n }\n else {\n callback(true);\n }\n }\n };\n runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n tryStrategy(strategy, minPriority, options, callback) {\n var timer = null;\n var runner = null;\n if (options.timeout > 0) {\n timer = new OneOffTimer(options.timeout, function () {\n runner.abort();\n callback(true);\n });\n }\n runner = strategy.connect(minPriority, function (error, handshake) {\n if (error && timer && timer.isRunning() && !options.failFast) {\n return;\n }\n if (timer) {\n timer.ensureAborted();\n }\n callback(error, handshake);\n });\n return {\n abort: function () {\n if (timer) {\n timer.ensureAborted();\n }\n runner.abort();\n },\n forceMinPriority: function (p) {\n runner.forceMinPriority(p);\n },\n };\n }\n}\n\n;// ./src/core/strategies/best_connected_ever_strategy.ts\n\n\nclass BestConnectedEverStrategy {\n constructor(strategies) {\n this.strategies = strategies;\n }\n isSupported() {\n return any(this.strategies, util.method('isSupported'));\n }\n connect(minPriority, callback) {\n return connect(this.strategies, minPriority, function (i, runners) {\n return function (error, handshake) {\n runners[i].error = error;\n if (error) {\n if (allRunnersFailed(runners)) {\n callback(true);\n }\n return;\n }\n apply(runners, function (runner) {\n runner.forceMinPriority(handshake.transport.priority);\n });\n callback(null, handshake);\n };\n });\n }\n}\nfunction connect(strategies, minPriority, callbackBuilder) {\n var runners = map(strategies, function (strategy, i, _, rs) {\n return strategy.connect(minPriority, callbackBuilder(i, rs));\n });\n return {\n abort: function () {\n apply(runners, abortRunner);\n },\n forceMinPriority: function (p) {\n apply(runners, function (runner) {\n runner.forceMinPriority(p);\n });\n },\n };\n}\nfunction allRunnersFailed(runners) {\n return collections_all(runners, function (runner) {\n return Boolean(runner.error);\n });\n}\nfunction abortRunner(runner) {\n if (!runner.error && !runner.aborted) {\n runner.abort();\n runner.aborted = true;\n }\n}\n\n;// ./src/core/strategies/websocket_prioritized_cached_strategy.ts\n\n\n\n\nclass WebSocketPrioritizedCachedStrategy {\n constructor(strategy, transports, options) {\n this.strategy = strategy;\n this.transports = transports;\n this.ttl = options.ttl || 1800 * 1000;\n this.usingTLS = options.useTLS;\n this.timeline = options.timeline;\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var usingTLS = this.usingTLS;\n var info = fetchTransportCache(usingTLS);\n var cacheSkipCount = info && info.cacheSkipCount ? info.cacheSkipCount : 0;\n var strategies = [this.strategy];\n if (info && info.timestamp + this.ttl >= util.now()) {\n var transport = this.transports[info.transport];\n if (transport) {\n if (['ws', 'wss'].includes(info.transport) || cacheSkipCount > 3) {\n this.timeline.info({\n cached: true,\n transport: info.transport,\n latency: info.latency,\n });\n strategies.push(new SequentialStrategy([transport], {\n timeout: info.latency * 2 + 1000,\n failFast: true,\n }));\n }\n else {\n cacheSkipCount++;\n }\n }\n }\n var startTimestamp = util.now();\n var runner = strategies\n .pop()\n .connect(minPriority, function cb(error, handshake) {\n if (error) {\n flushTransportCache(usingTLS);\n if (strategies.length > 0) {\n startTimestamp = util.now();\n runner = strategies.pop().connect(minPriority, cb);\n }\n else {\n callback(error);\n }\n }\n else {\n storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp, cacheSkipCount);\n callback(null, handshake);\n }\n });\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n}\nfunction getTransportCacheKey(usingTLS) {\n return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS');\n}\nfunction fetchTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n var serializedCache = storage[getTransportCacheKey(usingTLS)];\n if (serializedCache) {\n return JSON.parse(serializedCache);\n }\n }\n catch (e) {\n flushTransportCache(usingTLS);\n }\n }\n return null;\n}\nfunction storeTransportCache(usingTLS, transport, latency, cacheSkipCount) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({\n timestamp: util.now(),\n transport: transport,\n latency: latency,\n cacheSkipCount: cacheSkipCount,\n });\n }\n catch (e) {\n }\n }\n}\nfunction flushTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n delete storage[getTransportCacheKey(usingTLS)];\n }\n catch (e) {\n }\n }\n}\n\n;// ./src/core/strategies/delayed_strategy.ts\n\nclass DelayedStrategy {\n constructor(strategy, { delay: number }) {\n this.strategy = strategy;\n this.options = { delay: number };\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var strategy = this.strategy;\n var runner;\n var timer = new OneOffTimer(this.options.delay, function () {\n runner = strategy.connect(minPriority, callback);\n });\n return {\n abort: function () {\n timer.ensureAborted();\n if (runner) {\n runner.abort();\n }\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n}\n\n;// ./src/core/strategies/if_strategy.ts\nclass IfStrategy {\n constructor(test, trueBranch, falseBranch) {\n this.test = test;\n this.trueBranch = trueBranch;\n this.falseBranch = falseBranch;\n }\n isSupported() {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.isSupported();\n }\n connect(minPriority, callback) {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.connect(minPriority, callback);\n }\n}\n\n;// ./src/core/strategies/first_connected_strategy.ts\nclass FirstConnectedStrategy {\n constructor(strategy) {\n this.strategy = strategy;\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var runner = this.strategy.connect(minPriority, function (error, handshake) {\n if (handshake) {\n runner.abort();\n }\n callback(error, handshake);\n });\n return runner;\n }\n}\n\n;// ./src/runtimes/web/default_strategy.ts\n\n\n\n\n\n\n\nfunction testSupportsStrategy(strategy) {\n return function () {\n return strategy.isSupported();\n };\n}\nvar getDefaultStrategy = function (config, baseOptions, defineTransport) {\n var definedTransports = {};\n function defineTransportStrategy(name, type, priority, options, manager) {\n var transport = defineTransport(config, name, type, priority, options, manager);\n definedTransports[name] = transport;\n return transport;\n }\n var ws_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.wsHost + ':' + config.wsPort,\n hostTLS: config.wsHost + ':' + config.wssPort,\n httpPath: config.wsPath,\n });\n var wss_options = Object.assign({}, ws_options, {\n useTLS: true,\n });\n var sockjs_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.httpHost + ':' + config.httpPort,\n hostTLS: config.httpHost + ':' + config.httpsPort,\n httpPath: config.httpPath,\n });\n var timeouts = {\n loop: true,\n timeout: 15000,\n timeoutLimit: 60000,\n };\n var ws_manager = new TransportManager({\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout,\n });\n var streaming_manager = new TransportManager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout,\n });\n var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager);\n var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager);\n var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options);\n var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager);\n var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager);\n var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options);\n var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options);\n var ws_loop = new SequentialStrategy([ws_transport], timeouts);\n var wss_loop = new SequentialStrategy([wss_transport], timeouts);\n var sockjs_loop = new SequentialStrategy([sockjs_transport], timeouts);\n var streaming_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport),\n ], timeouts);\n var polling_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport),\n ], timeouts);\n var http_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(streaming_loop), new BestConnectedEverStrategy([\n streaming_loop,\n new DelayedStrategy(polling_loop, { delay: 4000 }),\n ]), polling_loop),\n ], timeouts);\n var http_fallback_loop = new IfStrategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);\n var wsStrategy;\n if (baseOptions.useTLS) {\n wsStrategy = new BestConnectedEverStrategy([\n ws_loop,\n new DelayedStrategy(http_fallback_loop, { delay: 2000 }),\n ]);\n }\n else {\n wsStrategy = new BestConnectedEverStrategy([\n ws_loop,\n new DelayedStrategy(wss_loop, { delay: 2000 }),\n new DelayedStrategy(http_fallback_loop, { delay: 5000 }),\n ]);\n }\n return new WebSocketPrioritizedCachedStrategy(new FirstConnectedStrategy(new IfStrategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {\n ttl: 1800000,\n timeline: baseOptions.timeline,\n useTLS: baseOptions.useTLS,\n });\n};\n/* harmony default export */ const default_strategy = (getDefaultStrategy);\n\n;// ./src/runtimes/web/transports/transport_connection_initializer.ts\n\n/* harmony default export */ function transport_connection_initializer() {\n var self = this;\n self.timeline.info(self.buildTimelineMessage({\n transport: self.name + (self.options.useTLS ? 's' : ''),\n }));\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n }\n else if (self.hooks.file) {\n self.changeState('initializing');\n Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n callback(true);\n }\n else {\n if (error) {\n self.onError(error);\n }\n self.onClose();\n callback(false);\n }\n });\n }\n else {\n self.onClose();\n }\n}\n\n;// ./src/runtimes/web/http/http_xdomain_request.ts\n\nvar hooks = {\n getRequest: function (socket) {\n var xdr = new window.XDomainRequest();\n xdr.ontimeout = function () {\n socket.emit('error', new RequestTimedOut());\n socket.close();\n };\n xdr.onerror = function (e) {\n socket.emit('error', e);\n socket.close();\n };\n xdr.onprogress = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n };\n xdr.onload = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n socket.emit('finished', 200);\n socket.close();\n };\n return xdr;\n },\n abortRequest: function (xdr) {\n xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;\n xdr.abort();\n },\n};\n/* harmony default export */ const http_xdomain_request = (hooks);\n\n;// ./src/core/http/http_request.ts\n\n\nconst MAX_BUFFER_LENGTH = 256 * 1024;\nclass HTTPRequest extends Dispatcher {\n constructor(hooks, method, url) {\n super();\n this.hooks = hooks;\n this.method = method;\n this.url = url;\n }\n start(payload) {\n this.position = 0;\n this.xhr = this.hooks.getRequest(this);\n this.unloader = () => {\n this.close();\n };\n runtime.addUnloadListener(this.unloader);\n this.xhr.open(this.method, this.url, true);\n if (this.xhr.setRequestHeader) {\n this.xhr.setRequestHeader('Content-Type', 'application/json');\n }\n this.xhr.send(payload);\n }\n close() {\n if (this.unloader) {\n runtime.removeUnloadListener(this.unloader);\n this.unloader = null;\n }\n if (this.xhr) {\n this.hooks.abortRequest(this.xhr);\n this.xhr = null;\n }\n }\n onChunk(status, data) {\n while (true) {\n var chunk = this.advanceBuffer(data);\n if (chunk) {\n this.emit('chunk', { status: status, data: chunk });\n }\n else {\n break;\n }\n }\n if (this.isBufferTooLong(data)) {\n this.emit('buffer_too_long');\n }\n }\n advanceBuffer(buffer) {\n var unreadData = buffer.slice(this.position);\n var endOfLinePosition = unreadData.indexOf('\\n');\n if (endOfLinePosition !== -1) {\n this.position += endOfLinePosition + 1;\n return unreadData.slice(0, endOfLinePosition);\n }\n else {\n return null;\n }\n }\n isBufferTooLong(buffer) {\n return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;\n }\n}\n\n;// ./src/core/http/state.ts\nvar State;\n(function (State) {\n State[State[\"CONNECTING\"] = 0] = \"CONNECTING\";\n State[State[\"OPEN\"] = 1] = \"OPEN\";\n State[State[\"CLOSED\"] = 3] = \"CLOSED\";\n})(State || (State = {}));\n/* harmony default export */ const state = (State);\n\n;// ./src/core/http/http_socket.ts\n\n\n\nvar autoIncrement = 1;\nclass HTTPSocket {\n constructor(hooks, url) {\n this.hooks = hooks;\n this.session = randomNumber(1000) + '/' + randomString(8);\n this.location = getLocation(url);\n this.readyState = state.CONNECTING;\n this.openStream();\n }\n send(payload) {\n return this.sendRaw(JSON.stringify([payload]));\n }\n ping() {\n this.hooks.sendHeartbeat(this);\n }\n close(code, reason) {\n this.onClose(code, reason, true);\n }\n sendRaw(payload) {\n if (this.readyState === state.OPEN) {\n try {\n runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n reconnect() {\n this.closeStream();\n this.openStream();\n }\n onClose(code, reason, wasClean) {\n this.closeStream();\n this.readyState = state.CLOSED;\n if (this.onclose) {\n this.onclose({\n code: code,\n reason: reason,\n wasClean: wasClean,\n });\n }\n }\n onChunk(chunk) {\n if (chunk.status !== 200) {\n return;\n }\n if (this.readyState === state.OPEN) {\n this.onActivity();\n }\n var payload;\n var type = chunk.data.slice(0, 1);\n switch (type) {\n case 'o':\n payload = JSON.parse(chunk.data.slice(1) || '{}');\n this.onOpen(payload);\n break;\n case 'a':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n for (var i = 0; i < payload.length; i++) {\n this.onEvent(payload[i]);\n }\n break;\n case 'm':\n payload = JSON.parse(chunk.data.slice(1) || 'null');\n this.onEvent(payload);\n break;\n case 'h':\n this.hooks.onHeartbeat(this);\n break;\n case 'c':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n this.onClose(payload[0], payload[1], true);\n break;\n }\n }\n onOpen(options) {\n if (this.readyState === state.CONNECTING) {\n if (options && options.hostname) {\n this.location.base = replaceHost(this.location.base, options.hostname);\n }\n this.readyState = state.OPEN;\n if (this.onopen) {\n this.onopen();\n }\n }\n else {\n this.onClose(1006, 'Server lost session', true);\n }\n }\n onEvent(event) {\n if (this.readyState === state.OPEN && this.onmessage) {\n this.onmessage({ data: event });\n }\n }\n onActivity() {\n if (this.onactivity) {\n this.onactivity();\n }\n }\n onError(error) {\n if (this.onerror) {\n this.onerror(error);\n }\n }\n openStream() {\n this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));\n this.stream.bind('chunk', (chunk) => {\n this.onChunk(chunk);\n });\n this.stream.bind('finished', (status) => {\n this.hooks.onFinished(this, status);\n });\n this.stream.bind('buffer_too_long', () => {\n this.reconnect();\n });\n try {\n this.stream.start();\n }\n catch (error) {\n util.defer(() => {\n this.onError(error);\n this.onClose(1006, 'Could not start streaming', false);\n });\n }\n }\n closeStream() {\n if (this.stream) {\n this.stream.unbind_all();\n this.stream.close();\n this.stream = null;\n }\n }\n}\nfunction getLocation(url) {\n var parts = /([^\\?]*)\\/*(\\??.*)/.exec(url);\n return {\n base: parts[1],\n queryString: parts[2],\n };\n}\nfunction getSendURL(url, session) {\n return url.base + '/' + session + '/xhr_send';\n}\nfunction getUniqueURL(url) {\n var separator = url.indexOf('?') === -1 ? '?' : '&';\n return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++;\n}\nfunction replaceHost(url, hostname) {\n var urlParts = /(https?:\\/\\/)([^\\/:]+)((\\/|:)?.*)/.exec(url);\n return urlParts[1] + hostname + urlParts[3];\n}\nfunction randomNumber(max) {\n return runtime.randomInt(max);\n}\nfunction randomString(length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(randomNumber(32).toString(32));\n }\n return result.join('');\n}\n/* harmony default export */ const http_socket = (HTTPSocket);\n\n;// ./src/core/http/http_streaming_socket.ts\nvar http_streaming_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr_streaming' + url.queryString;\n },\n onHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n },\n};\n/* harmony default export */ const http_streaming_socket = (http_streaming_socket_hooks);\n\n;// ./src/core/http/http_polling_socket.ts\nvar http_polling_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr' + url.queryString;\n },\n onHeartbeat: function () {\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n if (status === 200) {\n socket.reconnect();\n }\n else {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n },\n};\n/* harmony default export */ const http_polling_socket = (http_polling_socket_hooks);\n\n;// ./src/runtimes/isomorphic/http/http_xhr_request.ts\n\nvar http_xhr_request_hooks = {\n getRequest: function (socket) {\n var Constructor = runtime.getXHRAPI();\n var xhr = new Constructor();\n xhr.onreadystatechange = xhr.onprogress = function () {\n switch (xhr.readyState) {\n case 3:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n break;\n case 4:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n socket.emit('finished', xhr.status);\n socket.close();\n break;\n }\n };\n return xhr;\n },\n abortRequest: function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n },\n};\n/* harmony default export */ const http_xhr_request = (http_xhr_request_hooks);\n\n;// ./src/runtimes/isomorphic/http/http.ts\n\n\n\n\n\nvar HTTP = {\n createStreamingSocket(url) {\n return this.createSocket(http_streaming_socket, url);\n },\n createPollingSocket(url) {\n return this.createSocket(http_polling_socket, url);\n },\n createSocket(hooks, url) {\n return new http_socket(hooks, url);\n },\n createXHR(method, url) {\n return this.createRequest(http_xhr_request, method, url);\n },\n createRequest(hooks, method, url) {\n return new HTTPRequest(hooks, method, url);\n },\n};\n/* harmony default export */ const http_http = (HTTP);\n\n;// ./src/runtimes/web/http/http.ts\n\n\nhttp_http.createXDR = function (method, url) {\n return this.createRequest(http_xdomain_request, method, url);\n};\n/* harmony default export */ const web_http_http = (http_http);\n\n;// ./src/runtimes/web/runtime.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar Runtime = {\n nextAuthCallbackID: 1,\n auth_callbacks: {},\n ScriptReceivers: ScriptReceivers,\n DependenciesReceivers: DependenciesReceivers,\n getDefaultStrategy: default_strategy,\n Transports: transports_transports,\n transportConnectionInitializer: transport_connection_initializer,\n HTTPFactory: web_http_http,\n TimelineTransport: jsonp_timeline,\n getXHRAPI() {\n return window.XMLHttpRequest;\n },\n getWebSocketAPI() {\n return window.WebSocket || window.MozWebSocket;\n },\n setup(PusherClass) {\n if (typeof window !== 'undefined') {\n window.Pusher = PusherClass;\n var initializeOnDocumentBody = () => {\n this.onDocumentBody(PusherClass.ready);\n };\n if (!window.JSON) {\n Dependencies.load('json2', {}, initializeOnDocumentBody);\n }\n else {\n initializeOnDocumentBody();\n }\n }\n },\n getDocument() {\n return document;\n },\n getProtocol() {\n return this.getDocument().location.protocol;\n },\n getAuthorizers() {\n return { ajax: xhr_auth, jsonp: jsonp_auth };\n },\n onDocumentBody(callback) {\n if (document.body) {\n callback();\n }\n else {\n setTimeout(() => {\n this.onDocumentBody(callback);\n }, 0);\n }\n },\n createJSONPRequest(url, data) {\n return new JSONPRequest(url, data);\n },\n createScriptRequest(src) {\n return new ScriptRequest(src);\n },\n getLocalStorage() {\n try {\n return window.localStorage;\n }\n catch (e) {\n return undefined;\n }\n },\n createXHR() {\n if (this.getXHRAPI()) {\n return this.createXMLHttpRequest();\n }\n else {\n return this.createMicrosoftXHR();\n }\n },\n createXMLHttpRequest() {\n var Constructor = this.getXHRAPI();\n return new Constructor();\n },\n createMicrosoftXHR() {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n getNetwork() {\n return Network;\n },\n createWebSocket(url) {\n var Constructor = this.getWebSocketAPI();\n return new Constructor(url);\n },\n createSocketRequest(method, url) {\n if (this.isXHRSupported()) {\n return this.HTTPFactory.createXHR(method, url);\n }\n else if (this.isXDRSupported(url.indexOf('https:') === 0)) {\n return this.HTTPFactory.createXDR(method, url);\n }\n else {\n throw 'Cross-origin HTTP requests are not supported';\n }\n },\n isXHRSupported() {\n var Constructor = this.getXHRAPI();\n return (Boolean(Constructor) && new Constructor().withCredentials !== undefined);\n },\n isXDRSupported(useTLS) {\n var protocol = useTLS ? 'https:' : 'http:';\n var documentProtocol = this.getProtocol();\n return (Boolean(window['XDomainRequest']) && documentProtocol === protocol);\n },\n addUnloadListener(listener) {\n if (window.addEventListener !== undefined) {\n window.addEventListener('pagehide', listener, false);\n }\n else if (window.attachEvent !== undefined) {\n window.attachEvent('onunload', listener);\n }\n },\n removeUnloadListener(listener) {\n if (window.addEventListener !== undefined) {\n window.removeEventListener('pagehide', listener, false);\n }\n else if (window.detachEvent !== undefined) {\n window.detachEvent('onunload', listener);\n }\n },\n randomInt(max) {\n const crypto = window.crypto || window['msCrypto'];\n const limit = Math.floor(Math.pow(2, 32) / max) * max;\n let random;\n do {\n random = crypto.getRandomValues(new Uint32Array(1))[0];\n } while (random >= limit);\n return random % max;\n },\n};\n/* harmony default export */ const runtime = (Runtime);\n\n;// ./src/core/timeline/level.ts\nvar TimelineLevel;\n(function (TimelineLevel) {\n TimelineLevel[TimelineLevel[\"ERROR\"] = 3] = \"ERROR\";\n TimelineLevel[TimelineLevel[\"INFO\"] = 6] = \"INFO\";\n TimelineLevel[TimelineLevel[\"DEBUG\"] = 7] = \"DEBUG\";\n})(TimelineLevel || (TimelineLevel = {}));\n/* harmony default export */ const level = (TimelineLevel);\n\n;// ./src/core/timeline/timeline.ts\n\n\n\nclass Timeline {\n constructor(key, session, options) {\n this.key = key;\n this.session = session;\n this.events = [];\n this.options = options || {};\n this.sent = 0;\n this.uniqueID = 0;\n }\n log(level, event) {\n if (level <= this.options.level) {\n this.events.push(extend({}, event, { timestamp: util.now() }));\n if (this.options.limit && this.events.length > this.options.limit) {\n this.events.shift();\n }\n }\n }\n error(event) {\n this.log(level.ERROR, event);\n }\n info(event) {\n this.log(level.INFO, event);\n }\n debug(event) {\n this.log(level.DEBUG, event);\n }\n isEmpty() {\n return this.events.length === 0;\n }\n send(sendfn, callback) {\n var data = extend({\n session: this.session,\n bundle: this.sent + 1,\n key: this.key,\n lib: 'js',\n version: this.options.version,\n cluster: this.options.cluster,\n features: this.options.features,\n timeline: this.events,\n }, this.options.params);\n this.events = [];\n sendfn(data, (error, result) => {\n if (!error) {\n this.sent++;\n }\n if (callback) {\n callback(error, result);\n }\n });\n return true;\n }\n generateUniqueID() {\n this.uniqueID++;\n return this.uniqueID;\n }\n}\n\n;// ./src/core/strategies/transport_strategy.ts\n\n\n\n\nclass TransportStrategy {\n constructor(name, priority, transport, options) {\n this.name = name;\n this.priority = priority;\n this.transport = transport;\n this.options = options || {};\n }\n isSupported() {\n return this.transport.isSupported({\n useTLS: this.options.useTLS,\n });\n }\n connect(minPriority, callback) {\n if (!this.isSupported()) {\n return failAttempt(new UnsupportedStrategy(), callback);\n }\n else if (this.priority < minPriority) {\n return failAttempt(new TransportPriorityTooLow(), callback);\n }\n var connected = false;\n var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);\n var handshake = null;\n var onInitialized = function () {\n transport.unbind('initialized', onInitialized);\n transport.connect();\n };\n var onOpen = function () {\n handshake = factory.createHandshake(transport, function (result) {\n connected = true;\n unbindListeners();\n callback(null, result);\n });\n };\n var onError = function (error) {\n unbindListeners();\n callback(error);\n };\n var onClosed = function () {\n unbindListeners();\n var serializedTransport;\n serializedTransport = safeJSONStringify(transport);\n callback(new TransportClosed(serializedTransport));\n };\n var unbindListeners = function () {\n transport.unbind('initialized', onInitialized);\n transport.unbind('open', onOpen);\n transport.unbind('error', onError);\n transport.unbind('closed', onClosed);\n };\n transport.bind('initialized', onInitialized);\n transport.bind('open', onOpen);\n transport.bind('error', onError);\n transport.bind('closed', onClosed);\n transport.initialize();\n return {\n abort: () => {\n if (connected) {\n return;\n }\n unbindListeners();\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n },\n forceMinPriority: (p) => {\n if (connected) {\n return;\n }\n if (this.priority < p) {\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n }\n },\n };\n }\n}\nfunction failAttempt(error, callback) {\n util.defer(function () {\n callback(error);\n });\n return {\n abort: function () { },\n forceMinPriority: function () { },\n };\n}\n\n;// ./src/core/strategies/strategy_builder.ts\n\n\n\n\n\nconst { Transports: strategy_builder_Transports } = runtime;\nvar defineTransport = function (config, name, type, priority, options, manager) {\n var transportClass = strategy_builder_Transports[type];\n if (!transportClass) {\n throw new UnsupportedTransport(type);\n }\n var enabled = (!config.enabledTransports ||\n arrayIndexOf(config.enabledTransports, name) !== -1) &&\n (!config.disabledTransports ||\n arrayIndexOf(config.disabledTransports, name) === -1);\n var transport;\n if (enabled) {\n options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options);\n transport = new TransportStrategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options);\n }\n else {\n transport = strategy_builder_UnsupportedStrategy;\n }\n return transport;\n};\nvar strategy_builder_UnsupportedStrategy = {\n isSupported: function () {\n return false;\n },\n connect: function (_, callback) {\n var deferred = util.defer(function () {\n callback(new UnsupportedStrategy());\n });\n return {\n abort: function () {\n deferred.ensureAborted();\n },\n forceMinPriority: function () { },\n };\n },\n};\n\n;// ./src/core/options.ts\n\nfunction validateOptions(options) {\n if (options == null) {\n throw 'You must pass an options object';\n }\n if (options.cluster == null) {\n throw 'Options object must provide a cluster';\n }\n if ('disableStats' in options) {\n logger.warn('The disableStats option is deprecated in favor of enableStats');\n }\n}\n\n;// ./src/core/auth/user_authenticator.ts\n\n\nconst composeChannelQuery = (params, authOptions) => {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n for (var key in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(authOptions.params[key]);\n }\n if (authOptions.paramsProvider != null) {\n let dynamicParams = authOptions.paramsProvider();\n for (var key in dynamicParams) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(dynamicParams[key]);\n }\n }\n return query;\n};\nconst UserAuthenticator = (authOptions) => {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw `'${authOptions.transport}' is not a recognized auth transport`;\n }\n return (params, callback) => {\n const query = composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.UserAuthentication, callback);\n };\n};\n/* harmony default export */ const user_authenticator = (UserAuthenticator);\n\n;// ./src/core/auth/channel_authorizer.ts\n\n\nconst channel_authorizer_composeChannelQuery = (params, authOptions) => {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n query += '&channel_name=' + encodeURIComponent(params.channelName);\n for (var key in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(authOptions.params[key]);\n }\n if (authOptions.paramsProvider != null) {\n let dynamicParams = authOptions.paramsProvider();\n for (var key in dynamicParams) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(dynamicParams[key]);\n }\n }\n return query;\n};\nconst ChannelAuthorizer = (authOptions) => {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw `'${authOptions.transport}' is not a recognized auth transport`;\n }\n return (params, callback) => {\n const query = channel_authorizer_composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.ChannelAuthorization, callback);\n };\n};\n/* harmony default export */ const channel_authorizer = (ChannelAuthorizer);\n\n;// ./src/core/auth/deprecated_channel_authorizer.ts\nconst ChannelAuthorizerProxy = (pusher, authOptions, channelAuthorizerGenerator) => {\n const deprecatedAuthorizerOptions = {\n authTransport: authOptions.transport,\n authEndpoint: authOptions.endpoint,\n auth: {\n params: authOptions.params,\n headers: authOptions.headers,\n },\n };\n return (params, callback) => {\n const channel = pusher.channel(params.channelName);\n const channelAuthorizer = channelAuthorizerGenerator(channel, deprecatedAuthorizerOptions);\n channelAuthorizer.authorize(params.socketId, callback);\n };\n};\n\n;// ./src/core/config.ts\n\n\n\n\n\nfunction getConfig(opts, pusher) {\n let config = {\n activityTimeout: opts.activityTimeout || defaults.activityTimeout,\n cluster: opts.cluster,\n httpPath: opts.httpPath || defaults.httpPath,\n httpPort: opts.httpPort || defaults.httpPort,\n httpsPort: opts.httpsPort || defaults.httpsPort,\n pongTimeout: opts.pongTimeout || defaults.pongTimeout,\n statsHost: opts.statsHost || defaults.stats_host,\n unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout,\n wsPath: opts.wsPath || defaults.wsPath,\n wsPort: opts.wsPort || defaults.wsPort,\n wssPort: opts.wssPort || defaults.wssPort,\n enableStats: getEnableStatsConfig(opts),\n httpHost: getHttpHost(opts),\n useTLS: shouldUseTLS(opts),\n wsHost: getWebsocketHost(opts),\n userAuthenticator: buildUserAuthenticator(opts),\n channelAuthorizer: buildChannelAuthorizer(opts, pusher),\n };\n if ('disabledTransports' in opts)\n config.disabledTransports = opts.disabledTransports;\n if ('enabledTransports' in opts)\n config.enabledTransports = opts.enabledTransports;\n if ('ignoreNullOrigin' in opts)\n config.ignoreNullOrigin = opts.ignoreNullOrigin;\n if ('timelineParams' in opts)\n config.timelineParams = opts.timelineParams;\n if ('nacl' in opts) {\n config.nacl = opts.nacl;\n }\n return config;\n}\nfunction getHttpHost(opts) {\n if (opts.httpHost) {\n return opts.httpHost;\n }\n if (opts.cluster) {\n return `sockjs-${opts.cluster}.pusher.com`;\n }\n return defaults.httpHost;\n}\nfunction getWebsocketHost(opts) {\n if (opts.wsHost) {\n return opts.wsHost;\n }\n return getWebsocketHostFromCluster(opts.cluster);\n}\nfunction getWebsocketHostFromCluster(cluster) {\n return `ws-${cluster}.pusher.com`;\n}\nfunction shouldUseTLS(opts) {\n if (runtime.getProtocol() === 'https:') {\n return true;\n }\n else if (opts.forceTLS === false) {\n return false;\n }\n return true;\n}\nfunction getEnableStatsConfig(opts) {\n if ('enableStats' in opts) {\n return opts.enableStats;\n }\n if ('disableStats' in opts) {\n return !opts.disableStats;\n }\n return false;\n}\nconst hasCustomHandler = (auth) => {\n return 'customHandler' in auth && auth['customHandler'] != null;\n};\nfunction buildUserAuthenticator(opts) {\n const userAuthentication = Object.assign(Object.assign({}, defaults.userAuthentication), opts.userAuthentication);\n if (hasCustomHandler(userAuthentication)) {\n return userAuthentication['customHandler'];\n }\n return user_authenticator(userAuthentication);\n}\nfunction buildChannelAuth(opts, pusher) {\n let channelAuthorization;\n if ('channelAuthorization' in opts) {\n channelAuthorization = Object.assign(Object.assign({}, defaults.channelAuthorization), opts.channelAuthorization);\n }\n else {\n channelAuthorization = {\n transport: opts.authTransport || defaults.authTransport,\n endpoint: opts.authEndpoint || defaults.authEndpoint,\n };\n if ('auth' in opts) {\n if ('params' in opts.auth)\n channelAuthorization.params = opts.auth.params;\n if ('headers' in opts.auth)\n channelAuthorization.headers = opts.auth.headers;\n }\n if ('authorizer' in opts) {\n channelAuthorization.customHandler = ChannelAuthorizerProxy(pusher, channelAuthorization, opts.authorizer);\n }\n }\n return channelAuthorization;\n}\nfunction buildChannelAuthorizer(opts, pusher) {\n const channelAuthorization = buildChannelAuth(opts, pusher);\n if (hasCustomHandler(channelAuthorization)) {\n return channelAuthorization['customHandler'];\n }\n return channel_authorizer(channelAuthorization);\n}\n\n;// ./src/core/watchlist.ts\n\n\nclass WatchlistFacade extends Dispatcher {\n constructor(pusher) {\n super(function (eventName, data) {\n logger.debug(`No callbacks on watchlist events for ${eventName}`);\n });\n this.pusher = pusher;\n this.bindWatchlistInternalEvent();\n }\n handleEvent(pusherEvent) {\n pusherEvent.data.events.forEach((watchlistEvent) => {\n this.emit(watchlistEvent.name, watchlistEvent);\n });\n }\n bindWatchlistInternalEvent() {\n this.pusher.connection.bind('message', (pusherEvent) => {\n var eventName = pusherEvent.event;\n if (eventName === 'pusher_internal:watchlist_events') {\n this.handleEvent(pusherEvent);\n }\n });\n }\n}\n\n;// ./src/core/utils/flat_promise.ts\nfunction flatPromise() {\n let resolve, reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n/* harmony default export */ const flat_promise = (flatPromise);\n\n;// ./src/core/user.ts\n\n\n\n\n\n\nclass UserFacade extends Dispatcher {\n constructor(pusher) {\n super(function (eventName, data) {\n logger.debug('No callbacks on user for ' + eventName);\n });\n this.signin_requested = false;\n this.user_data = null;\n this.serverToUserChannel = null;\n this.signinDonePromise = null;\n this._signinDoneResolve = null;\n this._onAuthorize = (err, authData) => {\n if (err) {\n logger.warn(`Error during signin: ${err}`);\n this.emit('pusher:signin_error', Object.assign({}, {\n type: 'AuthError',\n error: err.message,\n }, err instanceof HTTPAuthError ? { status: err.status } : {}));\n this._cleanup();\n return;\n }\n this.pusher.send_event('pusher:signin', {\n auth: authData.auth,\n user_data: authData.user_data,\n });\n };\n this.pusher = pusher;\n this.pusher.connection.bind('state_change', ({ previous, current }) => {\n if (previous !== 'connected' && current === 'connected') {\n this._signin();\n }\n if (previous === 'connected' && current !== 'connected') {\n this._cleanup();\n this._newSigninPromiseIfNeeded();\n }\n });\n this.watchlist = new WatchlistFacade(pusher);\n this.pusher.connection.bind('message', (event) => {\n var eventName = event.event;\n if (eventName === 'pusher:signin_success') {\n this._onSigninSuccess(event.data);\n }\n if (this.serverToUserChannel &&\n this.serverToUserChannel.name === event.channel) {\n this.serverToUserChannel.handleEvent(event);\n }\n });\n }\n signin() {\n if (this.signin_requested) {\n return;\n }\n this.signin_requested = true;\n this._signin();\n }\n _signin() {\n if (!this.signin_requested) {\n return;\n }\n this._newSigninPromiseIfNeeded();\n if (this.pusher.connection.state !== 'connected') {\n return;\n }\n this.pusher.config.userAuthenticator({\n socketId: this.pusher.connection.socket_id,\n }, this._onAuthorize);\n }\n _onSigninSuccess(data) {\n try {\n this.user_data = JSON.parse(data.user_data);\n }\n catch (e) {\n logger.error(`Failed parsing user data after signin: ${data.user_data}`);\n this._cleanup();\n return;\n }\n if (typeof this.user_data.id !== 'string' || this.user_data.id === '') {\n logger.error(`user_data doesn't contain an id. user_data: ${this.user_data}`);\n this._cleanup();\n return;\n }\n this._signinDoneResolve();\n this._subscribeChannels();\n }\n _subscribeChannels() {\n const ensure_subscribed = (channel) => {\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.pusher.connection.state === 'connected') {\n channel.subscribe();\n }\n };\n this.serverToUserChannel = new Channel(`#server-to-user-${this.user_data.id}`, this.pusher);\n this.serverToUserChannel.bind_global((eventName, data) => {\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n return;\n }\n this.emit(eventName, data);\n });\n ensure_subscribed(this.serverToUserChannel);\n }\n _cleanup() {\n this.user_data = null;\n if (this.serverToUserChannel) {\n this.serverToUserChannel.unbind_all();\n this.serverToUserChannel.disconnect();\n this.serverToUserChannel = null;\n }\n if (this.signin_requested) {\n this._signinDoneResolve();\n }\n }\n _newSigninPromiseIfNeeded() {\n if (!this.signin_requested) {\n return;\n }\n if (this.signinDonePromise && !this.signinDonePromise.done) {\n return;\n }\n const { promise, resolve, reject: _ } = flat_promise();\n promise.done = false;\n const setDone = () => {\n promise.done = true;\n };\n promise.then(setDone).catch(setDone);\n this.signinDonePromise = promise;\n this._signinDoneResolve = resolve;\n }\n}\n\n;// ./src/core/pusher.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass Pusher {\n static ready() {\n Pusher.isReady = true;\n for (var i = 0, l = Pusher.instances.length; i < l; i++) {\n Pusher.instances[i].connect();\n }\n }\n static getClientFeatures() {\n return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {\n return t.isSupported({});\n }));\n }\n constructor(app_key, options) {\n checkAppKey(app_key);\n validateOptions(options);\n this.key = app_key;\n this.options = options;\n this.config = getConfig(this.options, this);\n this.channels = factory.createChannels();\n this.global_emitter = new Dispatcher();\n this.sessionID = runtime.randomInt(1000000000);\n this.timeline = new Timeline(this.key, this.sessionID, {\n cluster: this.config.cluster,\n features: Pusher.getClientFeatures(),\n params: this.config.timelineParams || {},\n limit: 50,\n level: level.INFO,\n version: defaults.VERSION,\n });\n if (this.config.enableStats) {\n this.timelineSender = factory.createTimelineSender(this.timeline, {\n host: this.config.statsHost,\n path: '/timeline/v2/' + runtime.TimelineTransport.name,\n });\n }\n var getStrategy = (options) => {\n return runtime.getDefaultStrategy(this.config, options, defineTransport);\n };\n this.connection = factory.createConnectionManager(this.key, {\n getStrategy: getStrategy,\n timeline: this.timeline,\n activityTimeout: this.config.activityTimeout,\n pongTimeout: this.config.pongTimeout,\n unavailableTimeout: this.config.unavailableTimeout,\n useTLS: Boolean(this.config.useTLS),\n });\n this.connection.bind('connected', () => {\n this.subscribeAll();\n if (this.timelineSender) {\n this.timelineSender.send(this.connection.isUsingTLS());\n }\n });\n this.connection.bind('message', (event) => {\n var eventName = event.event;\n var internal = eventName.indexOf('pusher_internal:') === 0;\n if (event.channel) {\n var channel = this.channel(event.channel);\n if (channel) {\n channel.handleEvent(event);\n }\n }\n if (!internal) {\n this.global_emitter.emit(event.event, event.data);\n }\n });\n this.connection.bind('connecting', () => {\n this.channels.disconnect();\n });\n this.connection.bind('disconnected', () => {\n this.channels.disconnect();\n });\n this.connection.bind('error', (err) => {\n logger.warn(err);\n });\n Pusher.instances.push(this);\n this.timeline.info({ instances: Pusher.instances.length });\n this.user = new UserFacade(this);\n if (Pusher.isReady) {\n this.connect();\n }\n }\n switchCluster(options) {\n const { appKey, cluster } = options;\n this.key = appKey;\n this.options = Object.assign(Object.assign({}, this.options), { cluster });\n this.config = getConfig(this.options, this);\n this.connection.switchCluster(this.key);\n }\n channel(name) {\n return this.channels.find(name);\n }\n allChannels() {\n return this.channels.all();\n }\n connect() {\n this.connection.connect();\n if (this.timelineSender) {\n if (!this.timelineSenderTimer) {\n var usingTLS = this.connection.isUsingTLS();\n var timelineSender = this.timelineSender;\n this.timelineSenderTimer = new PeriodicTimer(60000, function () {\n timelineSender.send(usingTLS);\n });\n }\n }\n }\n disconnect() {\n this.connection.disconnect();\n if (this.timelineSenderTimer) {\n this.timelineSenderTimer.ensureAborted();\n this.timelineSenderTimer = null;\n }\n }\n bind(event_name, callback, context) {\n this.global_emitter.bind(event_name, callback, context);\n return this;\n }\n unbind(event_name, callback, context) {\n this.global_emitter.unbind(event_name, callback, context);\n return this;\n }\n bind_global(callback) {\n this.global_emitter.bind_global(callback);\n return this;\n }\n unbind_global(callback) {\n this.global_emitter.unbind_global(callback);\n return this;\n }\n unbind_all(callback) {\n this.global_emitter.unbind_all();\n return this;\n }\n subscribeAll() {\n var channelName;\n for (channelName in this.channels.channels) {\n if (this.channels.channels.hasOwnProperty(channelName)) {\n this.subscribe(channelName);\n }\n }\n }\n subscribe(channel_name) {\n var channel = this.channels.add(channel_name, this);\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.connection.state === 'connected') {\n channel.subscribe();\n }\n return channel;\n }\n unsubscribe(channel_name) {\n var channel = this.channels.find(channel_name);\n if (channel && channel.subscriptionPending) {\n channel.cancelSubscription();\n }\n else {\n channel = this.channels.remove(channel_name);\n if (channel && channel.subscribed) {\n channel.unsubscribe();\n }\n }\n }\n send_event(event_name, data, channel) {\n return this.connection.send_event(event_name, data, channel);\n }\n shouldUseTLS() {\n return this.config.useTLS;\n }\n signin() {\n this.user.signin();\n }\n}\nPusher.instances = [];\nPusher.isReady = false;\nPusher.logToConsole = false;\nPusher.Runtime = runtime;\nPusher.ScriptReceivers = runtime.ScriptReceivers;\nPusher.DependenciesReceivers = runtime.DependenciesReceivers;\nPusher.auth_callbacks = runtime.auth_callbacks;\n/* harmony default export */ const pusher = (Pusher);\nfunction checkAppKey(key) {\n if (key === null || key === undefined) {\n throw 'You must pass your app key when you instantiate Pusher.';\n }\n}\nruntime.setup(Pusher);\n\n\n/***/ }\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module used 'module' so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(721);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pusher.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"pusher-BbIHJKf3.js","names":["exports","web_http_http","module","__commonJSMin","require_pusher","exports","module","factory","\"Pusher\"","__webpack_modules__","__extends","extendStatics","b","p","d","__","exports$1","INVALID_BYTE","Coder","_paddingCharacter","length","out","i","data","c","left","s","paddingLength","op","haveBad","v0","v1","v2","v3","result","stdCoder","encode","decode","URLSafeCoder","_super","urlSafeCoder","encodeURLSafe","decodeURLSafe","INVALID_UTF8","chars","arr","min","n1","n2","n3","__webpack_require__","\"default\"","__webpack_exports__","pusher","ScriptReceiverFactory","prefix","name","number","id","called","callbackWrapper","callback","receiver","ScriptReceivers","defaults","DependencyLoader","options","self","request","runtime","callbacks","successCallback","wasSuccessful","error","cdn","protocol","DependenciesReceivers","Dependencies","urlStore","url_store","urlObj","key","url","AuthRequestType","\"UserAuthentication\"","\"ChannelAuthorization\"","BadEventName","msg","BadChannelName","RequestTimedOut","TransportPriorityTooLow","TransportClosed","UnsupportedFeature","UnsupportedTransport","UnsupportedStrategy","HTTPAuthError","status","xhr_auth","xhr","headerName","authOptions","dynamicHeaders","parsed","authRequestType","suffix","query","btoa","utob","fromCharCode","b64chars","b64tab","l","cb_utob","cc","u","cb_encode","padlen","ccc","ord","Timer","clear","set","delay","abstract_timer","timers_clearTimeout","timer","timers_clearInterval","OneOffTimer","PeriodicTimer","util","args","boundArguments","object","extend","sources","extensions","property","target","stringify","m","safeJSONStringify","arrayIndexOf","nativeIndexOf","array","item","objectApply","f","keys","values","value","apply","context","map","mapObject","filter","test","filterObject","flatten","any","collections_all","encodeParamsObject","buildQueryString","decycleObject","objects","paths","derez","nu","path","source","Logger","message","defaultLoggingFunction","logger","jsonp_auth","callbackName","document","script","callback_name","head","ScriptRequest","src","errorString","JSONPRequest","jsonp_timeline","useTLS","sender","getGenericURL","scheme","baseScheme","params","host","getGenericPath","queryString","ws","http","sockjs","CallbackRegistry","prefixedEventName","names","binding","Dispatcher","failThrough","eventName","metadata","TransportConnection","hooks","priority","closeEvent","state","Transport","environment","WSTransport","httpConfiguration","streamingConfiguration","pollingConfiguration","xhrConfiguration","transports","SockJSTransport","xdrConfiguration","XDRStreamingTransport","XDRPollingTransport","transports_transports","NetInfo","Network","AssistantToTheTransportManager","manager","transport","connection","openTimestamp","onOpen","onClosed","lifespan","Protocol","messageData","messageEvent","pusherEventData","pusherEvent","e","event","Connection","channel","listeners","unbindListeners","listener","action","Handshake","TimelineSender","timeline","Channel","PrivateChannel","Members","subscriptionData","memberData","member","__awaiter","adopt","P","fulfilled","generator","rejected","\"throw\"","step","resolve","thisArg","_arguments","PresenceChannel","socketId","authData","channelData","addedMember","removedMember","utf8","base64","EncryptedChannel","nacl","sharedSecret","\"shared_secret\"","cipherText","nonce","bytes","raw","ConnectionManager","handshake","errorCallbacks","withErrorEmitted","previousState","newState","newStateDescription","Channels","createChannel","TransportManager","SequentialStrategy","strategies","current","timeout","runner","tryNextStrategy","minPriority","strategy","BestConnectedEverStrategy","connect","allRunnersFailed","runners","callbackBuilder","rs","abortRunner","WebSocketPrioritizedCachedStrategy","usingTLS","info","fetchTransportCache","cacheSkipCount","startTimestamp","cb","flushTransportCache","storeTransportCache","getTransportCacheKey","storage","serializedCache","DelayedStrategy","IfStrategy","trueBranch","falseBranch","FirstConnectedStrategy","testSupportsStrategy","default_strategy","definedTransports","defineTransportStrategy","defineTransport","config","type","ws_options","baseOptions","wss_options","sockjs_options","timeouts","ws_manager","streaming_manager","ws_transport","wss_transport","sockjs_transport","xhr_streaming_transport","xdr_streaming_transport","xhr_polling_transport","xdr_polling_transport","ws_loop","wss_loop","sockjs_loop","streaming_loop","polling_loop","http_loop","http_fallback_loop","wsStrategy","transport_connection_initializer","http_xdomain_request","xdr","socket","HTTPRequest","method","payload","chunk","unreadData","buffer","endOfLinePosition","State","\"CONNECTING\"","\"OPEN\"","\"CLOSED\"","autoIncrement","HTTPSocket","randomNumber","randomString","getLocation","code","reason","getUniqueURL","getSendURL","replaceHost","parts","session","urlParts","hostname","max","http_socket","http_streaming_socket","http_polling_socket","http_xhr_request","http_http","PusherClass","initializeOnDocumentBody","Constructor","documentProtocol","\"XDomainRequest\"","crypto","\"msCrypto\"","limit","random","TimelineLevel","\"ERROR\"","\"INFO\"","\"DEBUG\"","level","Timeline","sendfn","TransportStrategy","failAttempt","connected","onInitialized","onError","serializedTransport","strategy_builder_Transports","transportClass","enabled","strategy_builder_UnsupportedStrategy","deferred","validateOptions","composeChannelQuery","dynamicParams","user_authenticator","channel_authorizer_composeChannelQuery","channel_authorizer","ChannelAuthorizerProxy","deprecatedAuthorizerOptions","getConfig","opts","getEnableStatsConfig","getHttpHost","shouldUseTLS","getWebsocketHost","buildUserAuthenticator","buildChannelAuthorizer","getWebsocketHostFromCluster","cluster","hasCustomHandler","auth","\"customHandler\"","userAuthentication","buildChannelAuth","channelAuthorization","WatchlistFacade","watchlistEvent","flatPromise","reject","res","rej","flat_promise","UserFacade","err","previous","ensure_subscribed","_","setDone","promise","Pusher","t","checkAppKey","app_key","getStrategy","internal","appKey","timelineSender","event_name","channelName","channel_name","__webpack_module_cache__","cachedModule","moduleId","module$2","definition","exports$3","obj","prop"],"sources":["../../../../../node_modules/.pnpm/pusher-js@8.6.0/node_modules/pusher-js/dist/web/pusher.js"],"sourcesContent":["/*!\n * Pusher JavaScript Library v8.6.0\n * https://pusher.com/\n *\n * Copyright 2020, Pusher\n * Released under the MIT licence.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Pusher\"] = factory();\n\telse\n\t\troot[\"Pusher\"] = factory();\n})(self, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 594\n(__unused_webpack_module, exports) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n\n\n/***/ },\n\n/***/ 978\n(__unused_webpack_module, exports) {\n\n\"use strict\";\nvar __webpack_unused_export__;\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\n__webpack_unused_export__ = ({ value: true });\n/**\n * Package utf8 implements UTF-8 encoding and decoding.\n */\nvar INVALID_UTF16 = \"utf8: invalid string\";\nvar INVALID_UTF8 = \"utf8: invalid source encoding\";\n/**\n * Encodes the given string into UTF-8 byte array.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encode(s) {\n // Calculate result length and allocate output array.\n // encodedLength() also validates string and throws errors,\n // so we don't need repeat validation here.\n var arr = new Uint8Array(encodedLength(s));\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n arr[pos++] = c;\n }\n else if (c < 0x800) {\n arr[pos++] = 0xc0 | c >> 6;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else if (c < 0xd800) {\n arr[pos++] = 0xe0 | c >> 12;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else {\n i++; // get one more character\n c = (c & 0x3ff) << 10;\n c |= s.charCodeAt(i) & 0x3ff;\n c += 0x10000;\n arr[pos++] = 0xf0 | c >> 18;\n arr[pos++] = 0x80 | (c >> 12) & 0x3f;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n }\n return arr;\n}\n__webpack_unused_export__ = encode;\n/**\n * Returns the number of bytes required to encode the given string into UTF-8.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encodedLength(s) {\n var result = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n result += 1;\n }\n else if (c < 0x800) {\n result += 2;\n }\n else if (c < 0xd800) {\n result += 3;\n }\n else if (c <= 0xdfff) {\n if (i >= s.length - 1) {\n throw new Error(INVALID_UTF16);\n }\n i++; // \"eat\" next character\n result += 4;\n }\n else {\n throw new Error(INVALID_UTF16);\n }\n }\n return result;\n}\n__webpack_unused_export__ = encodedLength;\n/**\n * Decodes the given byte array from UTF-8 into a string.\n * Throws if encoding is invalid.\n */\nfunction decode(arr) {\n var chars = [];\n for (var i = 0; i < arr.length; i++) {\n var b = arr[i];\n if (b & 0x80) {\n var min = void 0;\n if (b < 0xe0) {\n // Need 1 more byte.\n if (i >= arr.length) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n if ((n1 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x1f) << 6 | (n1 & 0x3f);\n min = 0x80;\n }\n else if (b < 0xf0) {\n // Need 2 more bytes.\n if (i >= arr.length - 1) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f);\n min = 0x800;\n }\n else if (b < 0xf8) {\n // Need 3 more bytes.\n if (i >= arr.length - 2) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n var n3 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f);\n min = 0x10000;\n }\n else {\n throw new Error(INVALID_UTF8);\n }\n if (b < min || (b >= 0xd800 && b <= 0xdfff)) {\n throw new Error(INVALID_UTF8);\n }\n if (b >= 0x10000) {\n // Surrogate pair.\n if (b > 0x10ffff) {\n throw new Error(INVALID_UTF8);\n }\n b -= 0x10000;\n chars.push(String.fromCharCode(0xd800 | (b >> 10)));\n b = 0xdc00 | (b & 0x3ff);\n }\n }\n chars.push(String.fromCharCode(b));\n }\n return chars.join(\"\");\n}\nexports.D4 = decode;\n\n\n/***/ },\n\n/***/ 721\n(module, __unused_webpack_exports, __webpack_require__) {\n\n// required so we don't have to do require('pusher').default etc.\nmodule.exports = __webpack_require__(207)[\"default\"];\n\n\n/***/ },\n\n/***/ 207\n(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ pusher)\n});\n\n;// ./src/runtimes/web/dom/script_receiver_factory.ts\nclass ScriptReceiverFactory {\n constructor(prefix, name) {\n this.lastId = 0;\n this.prefix = prefix;\n this.name = name;\n }\n create(callback) {\n this.lastId++;\n var number = this.lastId;\n var id = this.prefix + number;\n var name = this.name + '[' + number + ']';\n var called = false;\n var callbackWrapper = function () {\n if (!called) {\n callback.apply(null, arguments);\n called = true;\n }\n };\n this[number] = callbackWrapper;\n return { number: number, id: id, name: name, callback: callbackWrapper };\n }\n remove(receiver) {\n delete this[receiver.number];\n }\n}\nvar ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers');\n\n;// ./src/core/defaults.ts\nvar Defaults = {\n VERSION: \"8.6.0\",\n PROTOCOL: 7,\n wsPort: 80,\n wssPort: 443,\n wsPath: '',\n httpHost: 'sockjs.pusher.com',\n httpPort: 80,\n httpsPort: 443,\n httpPath: '/pusher',\n stats_host: 'stats.pusher.com',\n authEndpoint: '/pusher/auth',\n authTransport: 'ajax',\n activityTimeout: 120000,\n pongTimeout: 30000,\n unavailableTimeout: 10000,\n userAuthentication: {\n endpoint: '/pusher/user-auth',\n transport: 'ajax',\n },\n channelAuthorization: {\n endpoint: '/pusher/auth',\n transport: 'ajax',\n },\n cdn_http: \"http://js.pusher.com\",\n cdn_https: \"https://js.pusher.com\",\n dependency_suffix: \"\",\n};\n/* harmony default export */ const defaults = (Defaults);\n\n;// ./src/runtimes/web/dom/dependency_loader.ts\n\n\nclass DependencyLoader {\n constructor(options) {\n this.options = options;\n this.receivers = options.receivers || ScriptReceivers;\n this.loading = {};\n }\n load(name, options, callback) {\n var self = this;\n if (self.loading[name] && self.loading[name].length > 0) {\n self.loading[name].push(callback);\n }\n else {\n self.loading[name] = [callback];\n var request = runtime.createScriptRequest(self.getPath(name, options));\n var receiver = self.receivers.create(function (error) {\n self.receivers.remove(receiver);\n if (self.loading[name]) {\n var callbacks = self.loading[name];\n delete self.loading[name];\n var successCallback = function (wasSuccessful) {\n if (!wasSuccessful) {\n request.cleanup();\n }\n };\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](error, successCallback);\n }\n }\n });\n request.send(receiver);\n }\n }\n getRoot(options) {\n var cdn;\n var protocol = runtime.getDocument().location.protocol;\n if ((options && options.useTLS) || protocol === 'https:') {\n cdn = this.options.cdn_https;\n }\n else {\n cdn = this.options.cdn_http;\n }\n return cdn.replace(/\\/*$/, '') + '/' + this.options.version;\n }\n getPath(name, options) {\n return this.getRoot(options) + '/' + name + this.options.suffix + '.js';\n }\n}\n\n;// ./src/runtimes/web/dom/dependencies.ts\n\n\n\nvar DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers');\nvar Dependencies = new DependencyLoader({\n cdn_http: defaults.cdn_http,\n cdn_https: defaults.cdn_https,\n version: defaults.VERSION,\n suffix: defaults.dependency_suffix,\n receivers: DependenciesReceivers,\n});\n\n;// ./src/core/utils/url_store.ts\nconst urlStore = {\n baseUrl: 'https://pusher.com',\n urls: {\n authenticationEndpoint: {\n path: '/docs/channels/server_api/authenticating_users',\n },\n authorizationEndpoint: {\n path: '/docs/channels/server_api/authorizing-users/',\n },\n javascriptQuickStart: {\n path: '/docs/javascript_quick_start',\n },\n triggeringClientEvents: {\n path: '/docs/client_api_guide/client_events#trigger-events',\n },\n encryptedChannelSupport: {\n fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support',\n },\n },\n};\nconst buildLogSuffix = function (key) {\n const urlPrefix = 'See:';\n const urlObj = urlStore.urls[key];\n if (!urlObj)\n return '';\n let url;\n if (urlObj.fullUrl) {\n url = urlObj.fullUrl;\n }\n else if (urlObj.path) {\n url = urlStore.baseUrl + urlObj.path;\n }\n if (!url)\n return '';\n return `${urlPrefix} ${url}`;\n};\n/* harmony default export */ const url_store = ({ buildLogSuffix });\n\n;// ./src/core/auth/options.ts\nvar AuthRequestType;\n(function (AuthRequestType) {\n AuthRequestType[\"UserAuthentication\"] = \"user-authentication\";\n AuthRequestType[\"ChannelAuthorization\"] = \"channel-authorization\";\n})(AuthRequestType || (AuthRequestType = {}));\n\n;// ./src/core/errors.ts\nclass BadEventName extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass BadChannelName extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass RequestTimedOut extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass TransportPriorityTooLow extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass TransportClosed extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedFeature extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedTransport extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass UnsupportedStrategy extends Error {\n constructor(msg) {\n super(msg);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\nclass HTTPAuthError extends Error {\n constructor(status, msg) {\n super(msg);\n this.status = status;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n;// ./src/runtimes/isomorphic/auth/xhr_auth.ts\n\n\n\n\nconst ajax = function (context, query, authOptions, authRequestType, callback) {\n const xhr = runtime.createXHR();\n xhr.open('POST', authOptions.endpoint, true);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n for (var headerName in authOptions.headers) {\n xhr.setRequestHeader(headerName, authOptions.headers[headerName]);\n }\n if (authOptions.headersProvider != null) {\n let dynamicHeaders = authOptions.headersProvider();\n for (var headerName in dynamicHeaders) {\n xhr.setRequestHeader(headerName, dynamicHeaders[headerName]);\n }\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n let data;\n let parsed = false;\n try {\n data = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (e) {\n callback(new HTTPAuthError(200, `JSON returned from ${authRequestType.toString()} endpoint was invalid, yet status code was 200. Data was: ${xhr.responseText}`), null);\n }\n if (parsed) {\n callback(null, data);\n }\n }\n else {\n let suffix = '';\n switch (authRequestType) {\n case AuthRequestType.UserAuthentication:\n suffix = url_store.buildLogSuffix('authenticationEndpoint');\n break;\n case AuthRequestType.ChannelAuthorization:\n suffix = `Clients must be authorized to join private or presence channels. ${url_store.buildLogSuffix('authorizationEndpoint')}`;\n break;\n }\n callback(new HTTPAuthError(xhr.status, `Unable to retrieve auth string from ${authRequestType.toString()} endpoint - ` +\n `received status: ${xhr.status} from ${authOptions.endpoint}. ${suffix}`), null);\n }\n }\n };\n xhr.send(query);\n return xhr;\n};\n/* harmony default export */ const xhr_auth = (ajax);\n\n;// ./src/core/base64.ts\nfunction encode(s) {\n return btoa(utob(s));\n}\nvar fromCharCode = String.fromCharCode;\nvar b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64tab = {};\nfor (var i = 0, l = b64chars.length; i < l; i++) {\n b64tab[b64chars.charAt(i)] = i;\n}\nvar cb_utob = function (c) {\n var cc = c.charCodeAt(0);\n return cc < 0x80\n ? c\n : cc < 0x800\n ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))\n : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +\n fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +\n fromCharCode(0x80 | (cc & 0x3f));\n};\nvar utob = function (u) {\n return u.replace(/[^\\x00-\\x7F]/g, cb_utob);\n};\nvar cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3];\n var ord = (ccc.charCodeAt(0) << 16) |\n ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |\n (ccc.length > 2 ? ccc.charCodeAt(2) : 0);\n var chars = [\n b64chars.charAt(ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63),\n ];\n return chars.join('');\n};\nvar btoa = (typeof window !== 'undefined' && window.btoa) ||\n function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n\n;// ./src/core/utils/timers/abstract_timer.ts\nclass Timer {\n constructor(set, clear, delay, callback) {\n this.clear = clear;\n this.timer = set(() => {\n if (this.timer) {\n this.timer = callback(this.timer);\n }\n }, delay);\n }\n isRunning() {\n return this.timer !== null;\n }\n ensureAborted() {\n if (this.timer) {\n this.clear(this.timer);\n this.timer = null;\n }\n }\n}\n/* harmony default export */ const abstract_timer = (Timer);\n\n;// ./src/core/utils/timers/index.ts\n\nfunction timers_clearTimeout(timer) {\n window.clearTimeout(timer);\n}\nfunction timers_clearInterval(timer) {\n window.clearInterval(timer);\n}\nclass OneOffTimer extends abstract_timer {\n constructor(delay, callback) {\n super(setTimeout, timers_clearTimeout, delay, function (timer) {\n callback();\n return null;\n });\n }\n}\nclass PeriodicTimer extends abstract_timer {\n constructor(delay, callback) {\n super(setInterval, timers_clearInterval, delay, function (timer) {\n callback();\n return timer;\n });\n }\n}\n\n;// ./src/core/util.ts\n\nvar Util = {\n now() {\n if (Date.now) {\n return Date.now();\n }\n else {\n return new Date().valueOf();\n }\n },\n defer(callback) {\n return new OneOffTimer(0, callback);\n },\n method(name, ...args) {\n var boundArguments = Array.prototype.slice.call(arguments, 1);\n return function (object) {\n return object[name].apply(object, boundArguments.concat(arguments));\n };\n },\n};\n/* harmony default export */ const util = (Util);\n\n;// ./src/core/utils/collections.ts\n\n\nfunction extend(target, ...sources) {\n for (var i = 0; i < sources.length; i++) {\n var extensions = sources[i];\n for (var property in extensions) {\n if (property === '__proto__' ||\n property === 'constructor' ||\n property === 'prototype') {\n continue;\n }\n if (extensions[property] &&\n extensions[property].constructor &&\n extensions[property].constructor === Object) {\n target[property] = extend(target[property] || {}, extensions[property]);\n }\n else {\n target[property] = extensions[property];\n }\n }\n }\n return target;\n}\nfunction stringify() {\n var m = ['Pusher'];\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === 'string') {\n m.push(arguments[i]);\n }\n else {\n m.push(safeJSONStringify(arguments[i]));\n }\n }\n return m.join(' : ');\n}\nfunction arrayIndexOf(array, item) {\n var nativeIndexOf = Array.prototype.indexOf;\n if (array === null) {\n return -1;\n }\n if (nativeIndexOf && array.indexOf === nativeIndexOf) {\n return array.indexOf(item);\n }\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n}\nfunction objectApply(object, f) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n f(object[key], key, object);\n }\n }\n}\nfunction keys(object) {\n var keys = [];\n objectApply(object, function (_, key) {\n keys.push(key);\n });\n return keys;\n}\nfunction values(object) {\n var values = [];\n objectApply(object, function (value) {\n values.push(value);\n });\n return values;\n}\nfunction apply(array, f, context) {\n for (var i = 0; i < array.length; i++) {\n f.call(context || window, array[i], i, array);\n }\n}\nfunction map(array, f) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n result.push(f(array[i], i, array, result));\n }\n return result;\n}\nfunction mapObject(object, f) {\n var result = {};\n objectApply(object, function (value, key) {\n result[key] = f(value);\n });\n return result;\n}\nfunction filter(array, test) {\n test =\n test ||\n function (value) {\n return !!value;\n };\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array, result)) {\n result.push(array[i]);\n }\n }\n return result;\n}\nfunction filterObject(object, test) {\n var result = {};\n objectApply(object, function (value, key) {\n if ((test && test(value, key, object, result)) || Boolean(value)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction flatten(object) {\n var result = [];\n objectApply(object, function (value, key) {\n result.push([key, value]);\n });\n return result;\n}\nfunction any(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array)) {\n return true;\n }\n }\n return false;\n}\nfunction collections_all(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (!test(array[i], i, array)) {\n return false;\n }\n }\n return true;\n}\nfunction encodeParamsObject(data) {\n return mapObject(data, function (value) {\n if (value === null) {\n return '';\n }\n if (typeof value === 'object') {\n value = safeJSONStringify(value);\n }\n return encodeURIComponent(encode(value.toString()));\n });\n}\nfunction buildQueryString(data) {\n var params = filterObject(data, function (value) {\n return value !== undefined;\n });\n var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&');\n return query;\n}\nfunction decycleObject(object) {\n var objects = [], paths = [];\n return (function derez(value, path) {\n var i, name, nu;\n switch (typeof value) {\n case 'object':\n if (!value) {\n return null;\n }\n for (i = 0; i < objects.length; i += 1) {\n if (objects[i] === value) {\n return { $ref: paths[i] };\n }\n }\n objects.push(value);\n paths.push(path);\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n nu = [];\n for (i = 0; i < value.length; i += 1) {\n nu[i] = derez(value[i], path + '[' + i + ']');\n }\n }\n else {\n nu = {};\n for (name in value) {\n if (Object.prototype.hasOwnProperty.call(value, name)) {\n nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');\n }\n }\n }\n return nu;\n case 'number':\n case 'string':\n case 'boolean':\n return value;\n }\n })(object, '$');\n}\nfunction safeJSONStringify(source) {\n try {\n return JSON.stringify(source);\n }\n catch (e) {\n return JSON.stringify(decycleObject(source));\n }\n}\n\n;// ./src/core/logger.ts\n\n\nclass Logger {\n constructor() {\n this.globalLog = (message) => {\n if (window.console && window.console.log) {\n window.console.log(message);\n }\n };\n }\n debug(...args) {\n this.log(this.globalLog, args);\n }\n warn(...args) {\n this.log(this.globalLogWarn, args);\n }\n error(...args) {\n this.log(this.globalLogError, args);\n }\n globalLogWarn(message) {\n if (window.console && window.console.warn) {\n window.console.warn(message);\n }\n else {\n this.globalLog(message);\n }\n }\n globalLogError(message) {\n if (window.console && window.console.error) {\n window.console.error(message);\n }\n else {\n this.globalLogWarn(message);\n }\n }\n log(defaultLoggingFunction, ...args) {\n var message = stringify.apply(this, arguments);\n if (pusher.log) {\n pusher.log(message);\n }\n else if (pusher.logToConsole) {\n const log = defaultLoggingFunction.bind(this);\n log(message);\n }\n }\n}\n/* harmony default export */ const logger = (new Logger());\n\n;// ./src/runtimes/web/auth/jsonp_auth.ts\n\nvar jsonp = function (context, query, authOptions, authRequestType, callback) {\n if (authOptions.headers !== undefined ||\n authOptions.headersProvider != null) {\n logger.warn(`To send headers with the ${authRequestType.toString()} request, you must use AJAX, rather than JSONP.`);\n }\n var callbackName = context.nextAuthCallbackID.toString();\n context.nextAuthCallbackID++;\n var document = context.getDocument();\n var script = document.createElement('script');\n context.auth_callbacks[callbackName] = function (data) {\n callback(null, data);\n };\n var callback_name = \"Pusher.auth_callbacks['\" + callbackName + \"']\";\n script.src =\n authOptions.endpoint +\n '?callback=' +\n encodeURIComponent(callback_name) +\n '&' +\n query;\n var head = document.getElementsByTagName('head')[0] || document.documentElement;\n head.insertBefore(script, head.firstChild);\n};\n/* harmony default export */ const jsonp_auth = (jsonp);\n\n;// ./src/runtimes/web/dom/script_request.ts\nclass ScriptRequest {\n constructor(src) {\n this.src = src;\n }\n send(receiver) {\n var self = this;\n var errorString = 'Error loading ' + self.src;\n self.script = document.createElement('script');\n self.script.id = receiver.id;\n self.script.src = self.src;\n self.script.type = 'text/javascript';\n self.script.charset = 'UTF-8';\n if (self.script.addEventListener) {\n self.script.onerror = function () {\n receiver.callback(errorString);\n };\n self.script.onload = function () {\n receiver.callback(null);\n };\n }\n else {\n self.script.onreadystatechange = function () {\n if (self.script.readyState === 'loaded' ||\n self.script.readyState === 'complete') {\n receiver.callback(null);\n }\n };\n }\n if (self.script.async === undefined &&\n document.attachEvent &&\n /opera/i.test(navigator.userAgent)) {\n self.errorScript = document.createElement('script');\n self.errorScript.id = receiver.id + '_error';\n self.errorScript.text = receiver.name + \"('\" + errorString + \"');\";\n self.script.async = self.errorScript.async = false;\n }\n else {\n self.script.async = true;\n }\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(self.script, head.firstChild);\n if (self.errorScript) {\n head.insertBefore(self.errorScript, self.script.nextSibling);\n }\n }\n cleanup() {\n if (this.script) {\n this.script.onload = this.script.onerror = null;\n this.script.onreadystatechange = null;\n }\n if (this.script && this.script.parentNode) {\n this.script.parentNode.removeChild(this.script);\n }\n if (this.errorScript && this.errorScript.parentNode) {\n this.errorScript.parentNode.removeChild(this.errorScript);\n }\n this.script = null;\n this.errorScript = null;\n }\n}\n\n;// ./src/runtimes/web/dom/jsonp_request.ts\n\n\nclass JSONPRequest {\n constructor(url, data) {\n this.url = url;\n this.data = data;\n }\n send(receiver) {\n if (this.request) {\n return;\n }\n var query = buildQueryString(this.data);\n var url = this.url + '/' + receiver.number + '?' + query;\n this.request = runtime.createScriptRequest(url);\n this.request.send(receiver);\n }\n cleanup() {\n if (this.request) {\n this.request.cleanup();\n }\n }\n}\n\n;// ./src/runtimes/web/timeline/jsonp_timeline.ts\n\n\nvar getAgent = function (sender, useTLS) {\n return function (data, callback) {\n var scheme = 'http' + (useTLS ? 's' : '') + '://';\n var url = scheme + (sender.host || sender.options.host) + sender.options.path;\n var request = runtime.createJSONPRequest(url, data);\n var receiver = runtime.ScriptReceivers.create(function (error, result) {\n ScriptReceivers.remove(receiver);\n request.cleanup();\n if (result && result.host) {\n sender.host = result.host;\n }\n if (callback) {\n callback(error, result);\n }\n });\n request.send(receiver);\n };\n};\nvar jsonp_timeline_jsonp = {\n name: 'jsonp',\n getAgent,\n};\n/* harmony default export */ const jsonp_timeline = (jsonp_timeline_jsonp);\n\n;// ./src/core/transports/url_schemes.ts\n\nfunction getGenericURL(baseScheme, params, path) {\n var scheme = baseScheme + (params.useTLS ? 's' : '');\n var host = params.useTLS ? params.hostTLS : params.hostNonTLS;\n return scheme + '://' + host + path;\n}\nfunction getGenericPath(key, queryString) {\n var path = '/app/' + key;\n var query = '?protocol=' +\n defaults.PROTOCOL +\n '&client=js' +\n '&version=' +\n defaults.VERSION +\n (queryString ? '&' + queryString : '');\n return path + query;\n}\nvar ws = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '') + getGenericPath(key, 'flash=false');\n return getGenericURL('ws', params, path);\n },\n};\nvar http = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '/pusher') + getGenericPath(key);\n return getGenericURL('http', params, path);\n },\n};\nvar sockjs = {\n getInitial: function (key, params) {\n return getGenericURL('http', params, params.httpPath || '/pusher');\n },\n getPath: function (key, params) {\n return getGenericPath(key);\n },\n};\n\n;// ./src/core/events/callback_registry.ts\n\nclass CallbackRegistry {\n constructor() {\n this._callbacks = {};\n }\n get(name) {\n return this._callbacks[prefix(name)];\n }\n add(name, callback, context) {\n var prefixedEventName = prefix(name);\n this._callbacks[prefixedEventName] =\n this._callbacks[prefixedEventName] || [];\n this._callbacks[prefixedEventName].push({\n fn: callback,\n context: context,\n });\n }\n remove(name, callback, context) {\n if (!name && !callback && !context) {\n this._callbacks = {};\n return;\n }\n var names = name ? [prefix(name)] : keys(this._callbacks);\n if (callback || context) {\n this.removeCallback(names, callback, context);\n }\n else {\n this.removeAllCallbacks(names);\n }\n }\n removeCallback(names, callback, context) {\n apply(names, function (name) {\n this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {\n return ((callback && callback !== binding.fn) ||\n (context && context !== binding.context));\n });\n if (this._callbacks[name].length === 0) {\n delete this._callbacks[name];\n }\n }, this);\n }\n removeAllCallbacks(names) {\n apply(names, function (name) {\n delete this._callbacks[name];\n }, this);\n }\n}\nfunction prefix(name) {\n return '_' + name;\n}\n\n;// ./src/core/events/dispatcher.ts\n\n\nclass Dispatcher {\n constructor(failThrough) {\n this.callbacks = new CallbackRegistry();\n this.global_callbacks = [];\n this.failThrough = failThrough;\n }\n bind(eventName, callback, context) {\n this.callbacks.add(eventName, callback, context);\n return this;\n }\n bind_global(callback) {\n this.global_callbacks.push(callback);\n return this;\n }\n unbind(eventName, callback, context) {\n this.callbacks.remove(eventName, callback, context);\n return this;\n }\n unbind_global(callback) {\n if (!callback) {\n this.global_callbacks = [];\n return this;\n }\n this.global_callbacks = filter(this.global_callbacks || [], (c) => c !== callback);\n return this;\n }\n unbind_all() {\n this.unbind();\n this.unbind_global();\n return this;\n }\n emit(eventName, data, metadata) {\n for (var i = 0; i < this.global_callbacks.length; i++) {\n this.global_callbacks[i](eventName, data);\n }\n var callbacks = this.callbacks.get(eventName);\n var args = [];\n if (metadata) {\n args.push(data, metadata);\n }\n else if (data) {\n args.push(data);\n }\n if (callbacks && callbacks.length > 0) {\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].fn.apply(callbacks[i].context || window, args);\n }\n }\n else if (this.failThrough) {\n this.failThrough(eventName, data);\n }\n return this;\n }\n}\n\n;// ./src/core/transports/transport_connection.ts\n\n\n\n\n\nclass TransportConnection extends Dispatcher {\n constructor(hooks, name, priority, key, options) {\n super();\n this.initialize = runtime.transportConnectionInitializer;\n this.hooks = hooks;\n this.name = name;\n this.priority = priority;\n this.key = key;\n this.options = options;\n this.state = 'new';\n this.timeline = options.timeline;\n this.activityTimeout = options.activityTimeout;\n this.id = this.timeline.generateUniqueID();\n }\n handlesActivityChecks() {\n return Boolean(this.hooks.handlesActivityChecks);\n }\n supportsPing() {\n return Boolean(this.hooks.supportsPing);\n }\n connect() {\n if (this.socket || this.state !== 'initialized') {\n return false;\n }\n var url = this.hooks.urls.getInitial(this.key, this.options);\n try {\n this.socket = this.hooks.getSocket(url, this.options);\n }\n catch (e) {\n util.defer(() => {\n this.onError(e);\n this.changeState('closed');\n });\n return false;\n }\n this.bindListeners();\n logger.debug('Connecting', { transport: this.name, url });\n this.changeState('connecting');\n return true;\n }\n close() {\n if (this.socket) {\n this.socket.close();\n return true;\n }\n else {\n return false;\n }\n }\n send(data) {\n if (this.state === 'open') {\n util.defer(() => {\n if (this.socket) {\n this.socket.send(data);\n }\n });\n return true;\n }\n else {\n return false;\n }\n }\n ping() {\n if (this.state === 'open' && this.supportsPing()) {\n this.socket.ping();\n }\n }\n onOpen() {\n if (this.hooks.beforeOpen) {\n this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));\n }\n this.changeState('open');\n this.socket.onopen = undefined;\n }\n onError(error) {\n this.emit('error', { type: 'WebSocketError', error: error });\n this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));\n }\n onClose(closeEvent) {\n if (closeEvent) {\n this.changeState('closed', {\n code: closeEvent.code,\n reason: closeEvent.reason,\n wasClean: closeEvent.wasClean,\n });\n }\n else {\n this.changeState('closed');\n }\n this.unbindListeners();\n this.socket = undefined;\n }\n onMessage(message) {\n this.emit('message', message);\n }\n onActivity() {\n this.emit('activity');\n }\n bindListeners() {\n this.socket.onopen = () => {\n this.onOpen();\n };\n this.socket.onerror = (error) => {\n this.onError(error);\n };\n this.socket.onclose = (closeEvent) => {\n this.onClose(closeEvent);\n };\n this.socket.onmessage = (message) => {\n this.onMessage(message);\n };\n if (this.supportsPing()) {\n this.socket.onactivity = () => {\n this.onActivity();\n };\n }\n }\n unbindListeners() {\n if (this.socket) {\n this.socket.onopen = undefined;\n this.socket.onerror = undefined;\n this.socket.onclose = undefined;\n this.socket.onmessage = undefined;\n if (this.supportsPing()) {\n this.socket.onactivity = undefined;\n }\n }\n }\n changeState(state, params) {\n this.state = state;\n this.timeline.info(this.buildTimelineMessage({\n state: state,\n params: params,\n }));\n this.emit(state, params);\n }\n buildTimelineMessage(message) {\n return extend({ cid: this.id }, message);\n }\n}\n\n;// ./src/core/transports/transport.ts\n\nclass Transport {\n constructor(hooks) {\n this.hooks = hooks;\n }\n isSupported(environment) {\n return this.hooks.isSupported(environment);\n }\n createConnection(name, priority, key, options) {\n return new TransportConnection(this.hooks, name, priority, key, options);\n }\n}\n\n;// ./src/runtimes/isomorphic/transports/transports.ts\n\n\n\n\nvar WSTransport = new Transport({\n urls: ws,\n handlesActivityChecks: false,\n supportsPing: false,\n isInitialized: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n isSupported: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n getSocket: function (url) {\n return runtime.createWebSocket(url);\n },\n});\nvar httpConfiguration = {\n urls: http,\n handlesActivityChecks: false,\n supportsPing: true,\n isInitialized: function () {\n return true;\n },\n};\nvar streamingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createStreamingSocket(url);\n },\n}, httpConfiguration);\nvar pollingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createPollingSocket(url);\n },\n}, httpConfiguration);\nvar xhrConfiguration = {\n isSupported: function () {\n return runtime.isXHRSupported();\n },\n};\nvar XHRStreamingTransport = new Transport((extend({}, streamingConfiguration, xhrConfiguration)));\nvar XHRPollingTransport = new Transport((extend({}, pollingConfiguration, xhrConfiguration)));\nvar Transports = {\n ws: WSTransport,\n xhr_streaming: XHRStreamingTransport,\n xhr_polling: XHRPollingTransport,\n};\n/* harmony default export */ const transports = (Transports);\n\n;// ./src/runtimes/web/transports/transports.ts\n\n\n\n\n\n\nvar SockJSTransport = new Transport({\n file: 'sockjs',\n urls: sockjs,\n handlesActivityChecks: true,\n supportsPing: false,\n isSupported: function () {\n return true;\n },\n isInitialized: function () {\n return window.SockJS !== undefined;\n },\n getSocket: function (url, options) {\n return new window.SockJS(url, null, {\n js_path: Dependencies.getPath('sockjs', {\n useTLS: options.useTLS,\n }),\n ignore_null_origin: options.ignoreNullOrigin,\n });\n },\n beforeOpen: function (socket, path) {\n socket.send(JSON.stringify({\n path: path,\n }));\n },\n});\nvar xdrConfiguration = {\n isSupported: function (environment) {\n var yes = runtime.isXDRSupported(environment.useTLS);\n return yes;\n },\n};\nvar XDRStreamingTransport = new Transport((extend({}, streamingConfiguration, xdrConfiguration)));\nvar XDRPollingTransport = new Transport((extend({}, pollingConfiguration, xdrConfiguration)));\ntransports.xdr_streaming = XDRStreamingTransport;\ntransports.xdr_polling = XDRPollingTransport;\ntransports.sockjs = SockJSTransport;\n/* harmony default export */ const transports_transports = (transports);\n\n;// ./src/runtimes/web/net_info.ts\n\nclass NetInfo extends Dispatcher {\n constructor() {\n super();\n var self = this;\n if (typeof window !== 'undefined' &&\n window.addEventListener !== undefined) {\n window.addEventListener('online', function () {\n self.emit('online');\n }, false);\n window.addEventListener('offline', function () {\n self.emit('offline');\n }, false);\n }\n }\n isOnline() {\n if (window.navigator.onLine === undefined) {\n return true;\n }\n else {\n return window.navigator.onLine;\n }\n }\n}\nvar Network = new NetInfo();\n\n;// ./src/core/transports/assistant_to_the_transport_manager.ts\n\n\nclass AssistantToTheTransportManager {\n constructor(manager, transport, options) {\n this.manager = manager;\n this.transport = transport;\n this.minPingDelay = options.minPingDelay;\n this.maxPingDelay = options.maxPingDelay;\n this.pingDelay = undefined;\n }\n createConnection(name, priority, key, options) {\n options = extend({}, options, {\n activityTimeout: this.pingDelay,\n });\n var connection = this.transport.createConnection(name, priority, key, options);\n var openTimestamp = null;\n var onOpen = function () {\n connection.unbind('open', onOpen);\n connection.bind('closed', onClosed);\n openTimestamp = util.now();\n };\n var onClosed = (closeEvent) => {\n connection.unbind('closed', onClosed);\n if (closeEvent.code === 1002 || closeEvent.code === 1003) {\n this.manager.reportDeath();\n }\n else if (!closeEvent.wasClean && openTimestamp) {\n var lifespan = util.now() - openTimestamp;\n if (lifespan < 2 * this.maxPingDelay) {\n this.manager.reportDeath();\n this.pingDelay = Math.max(lifespan / 2, this.minPingDelay);\n }\n }\n };\n connection.bind('open', onOpen);\n return connection;\n }\n isSupported(environment) {\n return this.manager.isAlive() && this.transport.isSupported(environment);\n }\n}\n\n;// ./src/core/connection/protocol/protocol.ts\nconst Protocol = {\n decodeMessage: function (messageEvent) {\n try {\n var messageData = JSON.parse(messageEvent.data);\n var pusherEventData = messageData.data;\n if (typeof pusherEventData === 'string') {\n try {\n pusherEventData = JSON.parse(messageData.data);\n }\n catch (e) { }\n }\n var pusherEvent = {\n event: messageData.event,\n channel: messageData.channel,\n data: pusherEventData,\n };\n if (messageData.user_id) {\n pusherEvent.user_id = messageData.user_id;\n }\n return pusherEvent;\n }\n catch (e) {\n throw { type: 'MessageParseError', error: e, data: messageEvent.data };\n }\n },\n encodeMessage: function (event) {\n return JSON.stringify(event);\n },\n processHandshake: function (messageEvent) {\n var message = Protocol.decodeMessage(messageEvent);\n if (message.event === 'pusher:connection_established') {\n if (!message.data.activity_timeout) {\n throw 'No activity timeout specified in handshake';\n }\n return {\n action: 'connected',\n id: message.data.socket_id,\n activityTimeout: message.data.activity_timeout * 1000,\n };\n }\n else if (message.event === 'pusher:error') {\n return {\n action: this.getCloseAction(message.data),\n error: this.getCloseError(message.data),\n };\n }\n else {\n throw 'Invalid handshake';\n }\n },\n getCloseAction: function (closeEvent) {\n if (closeEvent.code < 4000) {\n if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {\n return 'backoff';\n }\n else {\n return null;\n }\n }\n else if (closeEvent.code === 4000) {\n return 'tls_only';\n }\n else if (closeEvent.code < 4100) {\n return 'refused';\n }\n else if (closeEvent.code < 4200) {\n return 'backoff';\n }\n else if (closeEvent.code < 4300) {\n return 'retry';\n }\n else {\n return 'refused';\n }\n },\n getCloseError: function (closeEvent) {\n if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {\n return {\n type: 'PusherError',\n data: {\n code: closeEvent.code,\n message: closeEvent.reason || closeEvent.message,\n },\n };\n }\n else {\n return null;\n }\n },\n};\n/* harmony default export */ const protocol = (Protocol);\n\n;// ./src/core/connection/connection.ts\n\n\n\n\nclass Connection extends Dispatcher {\n constructor(id, transport) {\n super();\n this.id = id;\n this.transport = transport;\n this.activityTimeout = transport.activityTimeout;\n this.bindListeners();\n }\n handlesActivityChecks() {\n return this.transport.handlesActivityChecks();\n }\n send(data) {\n return this.transport.send(data);\n }\n send_event(name, data, channel) {\n var event = { event: name, data: data };\n if (channel) {\n event.channel = channel;\n }\n logger.debug('Event sent', event);\n return this.send(protocol.encodeMessage(event));\n }\n ping() {\n if (this.transport.supportsPing()) {\n this.transport.ping();\n }\n else {\n this.send_event('pusher:ping', {});\n }\n }\n close() {\n this.transport.close();\n }\n bindListeners() {\n var listeners = {\n message: (messageEvent) => {\n var pusherEvent;\n try {\n pusherEvent = protocol.decodeMessage(messageEvent);\n }\n catch (e) {\n this.emit('error', {\n type: 'MessageParseError',\n error: e,\n data: messageEvent.data,\n });\n }\n if (pusherEvent !== undefined) {\n logger.debug('Event recd', pusherEvent);\n switch (pusherEvent.event) {\n case 'pusher:error':\n this.emit('error', {\n type: 'PusherError',\n data: pusherEvent.data,\n });\n break;\n case 'pusher:ping':\n this.emit('ping');\n break;\n case 'pusher:pong':\n this.emit('pong');\n break;\n }\n this.emit('message', pusherEvent);\n }\n },\n activity: () => {\n this.emit('activity');\n },\n error: (error) => {\n this.emit('error', error);\n },\n closed: (closeEvent) => {\n unbindListeners();\n if (closeEvent && closeEvent.code) {\n this.handleCloseEvent(closeEvent);\n }\n this.transport = null;\n this.emit('closed');\n },\n };\n var unbindListeners = () => {\n objectApply(listeners, (listener, event) => {\n this.transport.unbind(event, listener);\n });\n };\n objectApply(listeners, (listener, event) => {\n this.transport.bind(event, listener);\n });\n }\n handleCloseEvent(closeEvent) {\n var action = protocol.getCloseAction(closeEvent);\n var error = protocol.getCloseError(closeEvent);\n if (error) {\n this.emit('error', error);\n }\n if (action) {\n this.emit(action, { action: action, error: error });\n }\n }\n}\n\n;// ./src/core/connection/handshake/index.ts\n\n\n\nclass Handshake {\n constructor(transport, callback) {\n this.transport = transport;\n this.callback = callback;\n this.bindListeners();\n }\n close() {\n this.unbindListeners();\n this.transport.close();\n }\n bindListeners() {\n this.onMessage = (m) => {\n this.unbindListeners();\n var result;\n try {\n result = protocol.processHandshake(m);\n }\n catch (e) {\n this.finish('error', { error: e });\n this.transport.close();\n return;\n }\n if (result.action === 'connected') {\n this.finish('connected', {\n connection: new Connection(result.id, this.transport),\n activityTimeout: result.activityTimeout,\n });\n }\n else {\n this.finish(result.action, { error: result.error });\n this.transport.close();\n }\n };\n this.onClosed = (closeEvent) => {\n this.unbindListeners();\n var action = protocol.getCloseAction(closeEvent) || 'backoff';\n var error = protocol.getCloseError(closeEvent);\n this.finish(action, { error: error });\n };\n this.transport.bind('message', this.onMessage);\n this.transport.bind('closed', this.onClosed);\n }\n unbindListeners() {\n this.transport.unbind('message', this.onMessage);\n this.transport.unbind('closed', this.onClosed);\n }\n finish(action, params) {\n this.callback(extend({ transport: this.transport, action: action }, params));\n }\n}\n\n;// ./src/core/timeline/timeline_sender.ts\n\nclass TimelineSender {\n constructor(timeline, options) {\n this.timeline = timeline;\n this.options = options || {};\n }\n send(useTLS, callback) {\n if (this.timeline.isEmpty()) {\n return;\n }\n this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);\n }\n}\n\n;// ./src/core/channels/channel.ts\n\n\n\n\n\nclass Channel extends Dispatcher {\n constructor(name, pusher) {\n super(function (event, data) {\n logger.debug('No callbacks on ' + name + ' for ' + event);\n });\n this.name = name;\n this.pusher = pusher;\n this.subscribed = false;\n this.subscriptionPending = false;\n this.subscriptionCancelled = false;\n }\n authorize(socketId, callback) {\n return callback(null, { auth: '' });\n }\n trigger(event, data) {\n if (event.indexOf('client-') !== 0) {\n throw new BadEventName(\"Event '\" + event + \"' does not start with 'client-'\");\n }\n if (!this.subscribed) {\n var suffix = url_store.buildLogSuffix('triggeringClientEvents');\n logger.warn(`Client event triggered before channel 'subscription_succeeded' event . ${suffix}`);\n }\n return this.pusher.send_event(event, data, this.name);\n }\n disconnect() {\n this.subscribed = false;\n this.subscriptionPending = false;\n }\n handleEvent(event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName === 'pusher_internal:subscription_succeeded') {\n this.handleSubscriptionSucceededEvent(event);\n }\n else if (eventName === 'pusher_internal:subscription_count') {\n this.handleSubscriptionCountEvent(event);\n }\n else if (eventName.indexOf('pusher_internal:') !== 0) {\n var metadata = {};\n this.emit(eventName, data, metadata);\n }\n }\n handleSubscriptionSucceededEvent(event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.emit('pusher:subscription_succeeded', event.data);\n }\n }\n handleSubscriptionCountEvent(event) {\n if (event.data.subscription_count) {\n this.subscriptionCount = event.data.subscription_count;\n }\n this.emit('pusher:subscription_count', event.data);\n }\n subscribe() {\n if (this.subscribed) {\n return;\n }\n this.subscriptionPending = true;\n this.subscriptionCancelled = false;\n this.authorize(this.pusher.connection.socket_id, (error, data) => {\n if (error) {\n this.subscriptionPending = false;\n logger.error(error.toString());\n this.emit('pusher:subscription_error', Object.assign({}, {\n type: 'AuthError',\n error: error.message,\n }, error instanceof HTTPAuthError ? { status: error.status } : {}));\n }\n else {\n this.pusher.send_event('pusher:subscribe', {\n auth: data.auth,\n channel_data: data.channel_data,\n channel: this.name,\n });\n }\n });\n }\n unsubscribe() {\n this.subscribed = false;\n this.pusher.send_event('pusher:unsubscribe', {\n channel: this.name,\n });\n }\n cancelSubscription() {\n this.subscriptionCancelled = true;\n }\n reinstateSubscription() {\n this.subscriptionCancelled = false;\n }\n}\n\n;// ./src/core/channels/private_channel.ts\n\nclass PrivateChannel extends Channel {\n authorize(socketId, callback) {\n return this.pusher.config.channelAuthorizer({\n channelName: this.name,\n socketId: socketId,\n }, callback);\n }\n}\n\n;// ./src/core/channels/members.ts\n\nclass Members {\n constructor() {\n this.reset();\n }\n get(id) {\n if (Object.prototype.hasOwnProperty.call(this.members, id)) {\n return {\n id: id,\n info: this.members[id],\n };\n }\n else {\n return null;\n }\n }\n each(callback) {\n objectApply(this.members, (member, id) => {\n callback(this.get(id));\n });\n }\n setMyID(id) {\n this.myID = id;\n }\n onSubscription(subscriptionData) {\n this.members = subscriptionData.presence.hash;\n this.count = subscriptionData.presence.count;\n this.me = this.get(this.myID);\n }\n addMember(memberData) {\n if (this.get(memberData.user_id) === null) {\n this.count++;\n }\n this.members[memberData.user_id] = memberData.user_info;\n return this.get(memberData.user_id);\n }\n removeMember(memberData) {\n var member = this.get(memberData.user_id);\n if (member) {\n delete this.members[memberData.user_id];\n this.count--;\n }\n return member;\n }\n reset() {\n this.members = {};\n this.count = 0;\n this.myID = null;\n this.me = null;\n }\n}\n\n;// ./src/core/channels/presence_channel.ts\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\nclass PresenceChannel extends PrivateChannel {\n constructor(name, pusher) {\n super(name, pusher);\n this.members = new Members();\n }\n authorize(socketId, callback) {\n super.authorize(socketId, (error, authData) => __awaiter(this, void 0, void 0, function* () {\n if (!error) {\n authData = authData;\n if (authData.channel_data != null) {\n var channelData = JSON.parse(authData.channel_data);\n this.members.setMyID(channelData.user_id);\n }\n else {\n yield this.pusher.user.signinDonePromise;\n if (this.pusher.user.user_data != null) {\n this.members.setMyID(this.pusher.user.user_data.id);\n }\n else {\n let suffix = url_store.buildLogSuffix('authorizationEndpoint');\n logger.error(`Invalid auth response for channel '${this.name}', ` +\n `expected 'channel_data' field. ${suffix}, ` +\n `or the user should be signed in.`);\n callback('Invalid auth response');\n return;\n }\n }\n }\n callback(error, authData);\n }));\n }\n handleEvent(event) {\n var eventName = event.event;\n if (eventName.indexOf('pusher_internal:') === 0) {\n this.handleInternalEvent(event);\n }\n else {\n var data = event.data;\n var metadata = {};\n if (event.user_id) {\n metadata.user_id = event.user_id;\n }\n this.emit(eventName, data, metadata);\n }\n }\n handleInternalEvent(event) {\n var eventName = event.event;\n var data = event.data;\n switch (eventName) {\n case 'pusher_internal:subscription_succeeded':\n this.handleSubscriptionSucceededEvent(event);\n break;\n case 'pusher_internal:subscription_count':\n this.handleSubscriptionCountEvent(event);\n break;\n case 'pusher_internal:member_added':\n var addedMember = this.members.addMember(data);\n this.emit('pusher:member_added', addedMember);\n break;\n case 'pusher_internal:member_removed':\n var removedMember = this.members.removeMember(data);\n if (removedMember) {\n this.emit('pusher:member_removed', removedMember);\n }\n break;\n }\n }\n handleSubscriptionSucceededEvent(event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.members.onSubscription(event.data);\n this.emit('pusher:subscription_succeeded', this.members);\n }\n }\n disconnect() {\n this.members.reset();\n super.disconnect();\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js\nvar utf8 = __webpack_require__(978);\n// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js\nvar base64 = __webpack_require__(594);\n;// ./src/core/channels/encrypted_channel.ts\n\n\n\n\n\nclass EncryptedChannel extends PrivateChannel {\n constructor(name, pusher, nacl) {\n super(name, pusher);\n this.key = null;\n this.nacl = nacl;\n }\n authorize(socketId, callback) {\n super.authorize(socketId, (error, authData) => {\n if (error) {\n callback(error, authData);\n return;\n }\n let sharedSecret = authData['shared_secret'];\n if (!sharedSecret) {\n callback(new Error(`No shared_secret key in auth payload for encrypted channel: ${this.name}`), null);\n return;\n }\n this.key = (0,base64.decode)(sharedSecret);\n delete authData['shared_secret'];\n callback(null, authData);\n });\n }\n trigger(event, data) {\n throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');\n }\n handleEvent(event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n super.handleEvent(event);\n return;\n }\n this.handleEncryptedEvent(eventName, data);\n }\n handleEncryptedEvent(event, data) {\n if (!this.key) {\n logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');\n return;\n }\n if (!data.ciphertext || !data.nonce) {\n logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' +\n data);\n return;\n }\n let cipherText = (0,base64.decode)(data.ciphertext);\n if (cipherText.length < this.nacl.secretbox.overheadLength) {\n logger.error(`Expected encrypted event ciphertext length to be ${this.nacl.secretbox.overheadLength}, got: ${cipherText.length}`);\n return;\n }\n let nonce = (0,base64.decode)(data.nonce);\n if (nonce.length < this.nacl.secretbox.nonceLength) {\n logger.error(`Expected encrypted event nonce length to be ${this.nacl.secretbox.nonceLength}, got: ${nonce.length}`);\n return;\n }\n let bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');\n this.authorize(this.pusher.connection.socket_id, (error, authData) => {\n if (error) {\n logger.error(`Failed to make a request to the authEndpoint: ${authData}. Unable to fetch new key, so dropping encrypted event`);\n return;\n }\n bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.error(`Failed to decrypt event with new key. Dropping encrypted event`);\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n return;\n });\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n }\n getDataToEmit(bytes) {\n let raw = (0,utf8/* decode */.D4)(bytes);\n try {\n return JSON.parse(raw);\n }\n catch (_a) {\n return raw;\n }\n }\n}\n\n;// ./src/core/connection/connection_manager.ts\n\n\n\n\n\nclass ConnectionManager extends Dispatcher {\n constructor(key, options) {\n super();\n this.state = 'initialized';\n this.connection = null;\n this.key = key;\n this.options = options;\n this.timeline = this.options.timeline;\n this.usingTLS = this.options.useTLS;\n this.errorCallbacks = this.buildErrorCallbacks();\n this.connectionCallbacks = this.buildConnectionCallbacks(this.errorCallbacks);\n this.handshakeCallbacks = this.buildHandshakeCallbacks(this.errorCallbacks);\n var Network = runtime.getNetwork();\n Network.bind('online', () => {\n this.timeline.info({ netinfo: 'online' });\n if (this.state === 'connecting' || this.state === 'unavailable') {\n this.retryIn(0);\n }\n });\n Network.bind('offline', () => {\n this.timeline.info({ netinfo: 'offline' });\n if (this.connection) {\n this.sendActivityCheck();\n }\n });\n this.updateStrategy();\n }\n switchCluster(key) {\n this.key = key;\n this.updateStrategy();\n this.retryIn(0);\n }\n connect() {\n if (this.connection || this.runner) {\n return;\n }\n if (!this.strategy.isSupported()) {\n this.updateState('failed');\n return;\n }\n this.updateState('connecting');\n this.startConnecting();\n this.setUnavailableTimer();\n }\n send(data) {\n if (this.connection) {\n return this.connection.send(data);\n }\n else {\n return false;\n }\n }\n send_event(name, data, channel) {\n if (this.connection) {\n return this.connection.send_event(name, data, channel);\n }\n else {\n return false;\n }\n }\n disconnect() {\n this.disconnectInternally();\n this.updateState('disconnected');\n }\n isUsingTLS() {\n return this.usingTLS;\n }\n startConnecting() {\n var callback = (error, handshake) => {\n if (error) {\n this.runner = this.strategy.connect(0, callback);\n }\n else {\n if (handshake.action === 'error') {\n this.emit('error', {\n type: 'HandshakeError',\n error: handshake.error,\n });\n this.timeline.error({ handshakeError: handshake.error });\n }\n else {\n this.abortConnecting();\n this.handshakeCallbacks[handshake.action](handshake);\n }\n }\n };\n this.runner = this.strategy.connect(0, callback);\n }\n abortConnecting() {\n if (this.runner) {\n this.runner.abort();\n this.runner = null;\n }\n }\n disconnectInternally() {\n this.abortConnecting();\n this.clearRetryTimer();\n this.clearUnavailableTimer();\n if (this.connection) {\n var connection = this.abandonConnection();\n connection.close();\n }\n }\n updateStrategy() {\n this.strategy = this.options.getStrategy({\n key: this.key,\n timeline: this.timeline,\n useTLS: this.usingTLS,\n });\n }\n retryIn(delay) {\n this.timeline.info({ action: 'retry', delay: delay });\n if (delay > 0) {\n this.emit('connecting_in', Math.round(delay / 1000));\n }\n this.retryTimer = new OneOffTimer(delay || 0, () => {\n this.disconnectInternally();\n this.connect();\n });\n }\n clearRetryTimer() {\n if (this.retryTimer) {\n this.retryTimer.ensureAborted();\n this.retryTimer = null;\n }\n }\n setUnavailableTimer() {\n this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, () => {\n this.updateState('unavailable');\n });\n }\n clearUnavailableTimer() {\n if (this.unavailableTimer) {\n this.unavailableTimer.ensureAborted();\n }\n }\n sendActivityCheck() {\n this.stopActivityCheck();\n this.connection.ping();\n this.activityTimer = new OneOffTimer(this.options.pongTimeout, () => {\n this.timeline.error({ pong_timed_out: this.options.pongTimeout });\n this.retryIn(0);\n });\n }\n resetActivityCheck() {\n this.stopActivityCheck();\n if (this.connection && !this.connection.handlesActivityChecks()) {\n this.activityTimer = new OneOffTimer(this.activityTimeout, () => {\n this.sendActivityCheck();\n });\n }\n }\n stopActivityCheck() {\n if (this.activityTimer) {\n this.activityTimer.ensureAborted();\n }\n }\n buildConnectionCallbacks(errorCallbacks) {\n return extend({}, errorCallbacks, {\n message: (message) => {\n this.resetActivityCheck();\n this.emit('message', message);\n },\n ping: () => {\n this.send_event('pusher:pong', {});\n },\n activity: () => {\n this.resetActivityCheck();\n },\n error: (error) => {\n this.emit('error', error);\n },\n closed: () => {\n this.abandonConnection();\n if (this.shouldRetry()) {\n this.retryIn(1000);\n }\n },\n });\n }\n buildHandshakeCallbacks(errorCallbacks) {\n return extend({}, errorCallbacks, {\n connected: (handshake) => {\n this.activityTimeout = Math.min(this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);\n this.clearUnavailableTimer();\n this.setConnection(handshake.connection);\n this.socket_id = this.connection.id;\n this.updateState('connected', { socket_id: this.socket_id });\n },\n });\n }\n buildErrorCallbacks() {\n let withErrorEmitted = (callback) => {\n return (result) => {\n if (result.error) {\n this.emit('error', { type: 'WebSocketError', error: result.error });\n }\n callback(result);\n };\n };\n return {\n tls_only: withErrorEmitted(() => {\n this.usingTLS = true;\n this.updateStrategy();\n this.retryIn(0);\n }),\n refused: withErrorEmitted(() => {\n this.disconnect();\n }),\n backoff: withErrorEmitted(() => {\n this.retryIn(1000);\n }),\n retry: withErrorEmitted(() => {\n this.retryIn(0);\n }),\n };\n }\n setConnection(connection) {\n this.connection = connection;\n for (var event in this.connectionCallbacks) {\n this.connection.bind(event, this.connectionCallbacks[event]);\n }\n this.resetActivityCheck();\n }\n abandonConnection() {\n if (!this.connection) {\n return;\n }\n this.stopActivityCheck();\n for (var event in this.connectionCallbacks) {\n this.connection.unbind(event, this.connectionCallbacks[event]);\n }\n var connection = this.connection;\n this.connection = null;\n return connection;\n }\n updateState(newState, data) {\n var previousState = this.state;\n this.state = newState;\n if (previousState !== newState) {\n var newStateDescription = newState;\n if (newStateDescription === 'connected') {\n newStateDescription += ' with new socket ID ' + data.socket_id;\n }\n logger.debug('State changed', previousState + ' -> ' + newStateDescription);\n this.timeline.info({ state: newState, params: data });\n this.emit('state_change', { previous: previousState, current: newState });\n this.emit(newState, data);\n }\n }\n shouldRetry() {\n return this.state === 'connecting' || this.state === 'connected';\n }\n}\n\n;// ./src/core/channels/channels.ts\n\n\n\n\nclass Channels {\n constructor() {\n this.channels = {};\n }\n add(name, pusher) {\n if (!this.channels[name]) {\n this.channels[name] = createChannel(name, pusher);\n }\n return this.channels[name];\n }\n all() {\n return values(this.channels);\n }\n find(name) {\n return this.channels[name];\n }\n remove(name) {\n var channel = this.channels[name];\n delete this.channels[name];\n return channel;\n }\n disconnect() {\n objectApply(this.channels, function (channel) {\n channel.disconnect();\n });\n }\n}\nfunction createChannel(name, pusher) {\n if (name.indexOf('private-encrypted-') === 0) {\n if (pusher.config.nacl) {\n return factory.createEncryptedChannel(name, pusher, pusher.config.nacl);\n }\n let errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';\n let suffix = url_store.buildLogSuffix('encryptedChannelSupport');\n throw new UnsupportedFeature(`${errMsg}. ${suffix}`);\n }\n else if (name.indexOf('private-') === 0) {\n return factory.createPrivateChannel(name, pusher);\n }\n else if (name.indexOf('presence-') === 0) {\n return factory.createPresenceChannel(name, pusher);\n }\n else if (name.indexOf('#') === 0) {\n throw new BadChannelName('Cannot create a channel with name \"' + name + '\".');\n }\n else {\n return factory.createChannel(name, pusher);\n }\n}\n\n;// ./src/core/utils/factory.ts\n\n\n\n\n\n\n\n\n\nvar Factory = {\n createChannels() {\n return new Channels();\n },\n createConnectionManager(key, options) {\n return new ConnectionManager(key, options);\n },\n createChannel(name, pusher) {\n return new Channel(name, pusher);\n },\n createPrivateChannel(name, pusher) {\n return new PrivateChannel(name, pusher);\n },\n createPresenceChannel(name, pusher) {\n return new PresenceChannel(name, pusher);\n },\n createEncryptedChannel(name, pusher, nacl) {\n return new EncryptedChannel(name, pusher, nacl);\n },\n createTimelineSender(timeline, options) {\n return new TimelineSender(timeline, options);\n },\n createHandshake(transport, callback) {\n return new Handshake(transport, callback);\n },\n createAssistantToTheTransportManager(manager, transport, options) {\n return new AssistantToTheTransportManager(manager, transport, options);\n },\n};\n/* harmony default export */ const factory = (Factory);\n\n;// ./src/core/transports/transport_manager.ts\n\nclass TransportManager {\n constructor(options) {\n this.options = options || {};\n this.livesLeft = this.options.lives || Infinity;\n }\n getAssistant(transport) {\n return factory.createAssistantToTheTransportManager(this, transport, {\n minPingDelay: this.options.minPingDelay,\n maxPingDelay: this.options.maxPingDelay,\n });\n }\n isAlive() {\n return this.livesLeft > 0;\n }\n reportDeath() {\n this.livesLeft -= 1;\n }\n}\n\n;// ./src/core/strategies/sequential_strategy.ts\n\n\n\nclass SequentialStrategy {\n constructor(strategies, options) {\n this.strategies = strategies;\n this.loop = Boolean(options.loop);\n this.failFast = Boolean(options.failFast);\n this.timeout = options.timeout;\n this.timeoutLimit = options.timeoutLimit;\n }\n isSupported() {\n return any(this.strategies, util.method('isSupported'));\n }\n connect(minPriority, callback) {\n var strategies = this.strategies;\n var current = 0;\n var timeout = this.timeout;\n var runner = null;\n var tryNextStrategy = (error, handshake) => {\n if (handshake) {\n callback(null, handshake);\n }\n else {\n current = current + 1;\n if (this.loop) {\n current = current % strategies.length;\n }\n if (current < strategies.length) {\n if (timeout) {\n timeout = timeout * 2;\n if (this.timeoutLimit) {\n timeout = Math.min(timeout, this.timeoutLimit);\n }\n }\n runner = this.tryStrategy(strategies[current], minPriority, { timeout, failFast: this.failFast }, tryNextStrategy);\n }\n else {\n callback(true);\n }\n }\n };\n runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n tryStrategy(strategy, minPriority, options, callback) {\n var timer = null;\n var runner = null;\n if (options.timeout > 0) {\n timer = new OneOffTimer(options.timeout, function () {\n runner.abort();\n callback(true);\n });\n }\n runner = strategy.connect(minPriority, function (error, handshake) {\n if (error && timer && timer.isRunning() && !options.failFast) {\n return;\n }\n if (timer) {\n timer.ensureAborted();\n }\n callback(error, handshake);\n });\n return {\n abort: function () {\n if (timer) {\n timer.ensureAborted();\n }\n runner.abort();\n },\n forceMinPriority: function (p) {\n runner.forceMinPriority(p);\n },\n };\n }\n}\n\n;// ./src/core/strategies/best_connected_ever_strategy.ts\n\n\nclass BestConnectedEverStrategy {\n constructor(strategies) {\n this.strategies = strategies;\n }\n isSupported() {\n return any(this.strategies, util.method('isSupported'));\n }\n connect(minPriority, callback) {\n return connect(this.strategies, minPriority, function (i, runners) {\n return function (error, handshake) {\n runners[i].error = error;\n if (error) {\n if (allRunnersFailed(runners)) {\n callback(true);\n }\n return;\n }\n apply(runners, function (runner) {\n runner.forceMinPriority(handshake.transport.priority);\n });\n callback(null, handshake);\n };\n });\n }\n}\nfunction connect(strategies, minPriority, callbackBuilder) {\n var runners = map(strategies, function (strategy, i, _, rs) {\n return strategy.connect(minPriority, callbackBuilder(i, rs));\n });\n return {\n abort: function () {\n apply(runners, abortRunner);\n },\n forceMinPriority: function (p) {\n apply(runners, function (runner) {\n runner.forceMinPriority(p);\n });\n },\n };\n}\nfunction allRunnersFailed(runners) {\n return collections_all(runners, function (runner) {\n return Boolean(runner.error);\n });\n}\nfunction abortRunner(runner) {\n if (!runner.error && !runner.aborted) {\n runner.abort();\n runner.aborted = true;\n }\n}\n\n;// ./src/core/strategies/websocket_prioritized_cached_strategy.ts\n\n\n\n\nclass WebSocketPrioritizedCachedStrategy {\n constructor(strategy, transports, options) {\n this.strategy = strategy;\n this.transports = transports;\n this.ttl = options.ttl || 1800 * 1000;\n this.usingTLS = options.useTLS;\n this.timeline = options.timeline;\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var usingTLS = this.usingTLS;\n var info = fetchTransportCache(usingTLS);\n var cacheSkipCount = info && info.cacheSkipCount ? info.cacheSkipCount : 0;\n var strategies = [this.strategy];\n if (info && info.timestamp + this.ttl >= util.now()) {\n var transport = this.transports[info.transport];\n if (transport) {\n if (['ws', 'wss'].includes(info.transport) || cacheSkipCount > 3) {\n this.timeline.info({\n cached: true,\n transport: info.transport,\n latency: info.latency,\n });\n strategies.push(new SequentialStrategy([transport], {\n timeout: info.latency * 2 + 1000,\n failFast: true,\n }));\n }\n else {\n cacheSkipCount++;\n }\n }\n }\n var startTimestamp = util.now();\n var runner = strategies\n .pop()\n .connect(minPriority, function cb(error, handshake) {\n if (error) {\n flushTransportCache(usingTLS);\n if (strategies.length > 0) {\n startTimestamp = util.now();\n runner = strategies.pop().connect(minPriority, cb);\n }\n else {\n callback(error);\n }\n }\n else {\n storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp, cacheSkipCount);\n callback(null, handshake);\n }\n });\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n}\nfunction getTransportCacheKey(usingTLS) {\n return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS');\n}\nfunction fetchTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n var serializedCache = storage[getTransportCacheKey(usingTLS)];\n if (serializedCache) {\n return JSON.parse(serializedCache);\n }\n }\n catch (e) {\n flushTransportCache(usingTLS);\n }\n }\n return null;\n}\nfunction storeTransportCache(usingTLS, transport, latency, cacheSkipCount) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({\n timestamp: util.now(),\n transport: transport,\n latency: latency,\n cacheSkipCount: cacheSkipCount,\n });\n }\n catch (e) {\n }\n }\n}\nfunction flushTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n delete storage[getTransportCacheKey(usingTLS)];\n }\n catch (e) {\n }\n }\n}\n\n;// ./src/core/strategies/delayed_strategy.ts\n\nclass DelayedStrategy {\n constructor(strategy, { delay: number }) {\n this.strategy = strategy;\n this.options = { delay: number };\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var strategy = this.strategy;\n var runner;\n var timer = new OneOffTimer(this.options.delay, function () {\n runner = strategy.connect(minPriority, callback);\n });\n return {\n abort: function () {\n timer.ensureAborted();\n if (runner) {\n runner.abort();\n }\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n },\n };\n }\n}\n\n;// ./src/core/strategies/if_strategy.ts\nclass IfStrategy {\n constructor(test, trueBranch, falseBranch) {\n this.test = test;\n this.trueBranch = trueBranch;\n this.falseBranch = falseBranch;\n }\n isSupported() {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.isSupported();\n }\n connect(minPriority, callback) {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.connect(minPriority, callback);\n }\n}\n\n;// ./src/core/strategies/first_connected_strategy.ts\nclass FirstConnectedStrategy {\n constructor(strategy) {\n this.strategy = strategy;\n }\n isSupported() {\n return this.strategy.isSupported();\n }\n connect(minPriority, callback) {\n var runner = this.strategy.connect(minPriority, function (error, handshake) {\n if (handshake) {\n runner.abort();\n }\n callback(error, handshake);\n });\n return runner;\n }\n}\n\n;// ./src/runtimes/web/default_strategy.ts\n\n\n\n\n\n\n\nfunction testSupportsStrategy(strategy) {\n return function () {\n return strategy.isSupported();\n };\n}\nvar getDefaultStrategy = function (config, baseOptions, defineTransport) {\n var definedTransports = {};\n function defineTransportStrategy(name, type, priority, options, manager) {\n var transport = defineTransport(config, name, type, priority, options, manager);\n definedTransports[name] = transport;\n return transport;\n }\n var ws_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.wsHost + ':' + config.wsPort,\n hostTLS: config.wsHost + ':' + config.wssPort,\n httpPath: config.wsPath,\n });\n var wss_options = Object.assign({}, ws_options, {\n useTLS: true,\n });\n var sockjs_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.httpHost + ':' + config.httpPort,\n hostTLS: config.httpHost + ':' + config.httpsPort,\n httpPath: config.httpPath,\n });\n var timeouts = {\n loop: true,\n timeout: 15000,\n timeoutLimit: 60000,\n };\n var ws_manager = new TransportManager({\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout,\n });\n var streaming_manager = new TransportManager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout,\n });\n var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager);\n var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager);\n var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options);\n var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager);\n var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager);\n var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options);\n var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options);\n var ws_loop = new SequentialStrategy([ws_transport], timeouts);\n var wss_loop = new SequentialStrategy([wss_transport], timeouts);\n var sockjs_loop = new SequentialStrategy([sockjs_transport], timeouts);\n var streaming_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport),\n ], timeouts);\n var polling_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport),\n ], timeouts);\n var http_loop = new SequentialStrategy([\n new IfStrategy(testSupportsStrategy(streaming_loop), new BestConnectedEverStrategy([\n streaming_loop,\n new DelayedStrategy(polling_loop, { delay: 4000 }),\n ]), polling_loop),\n ], timeouts);\n var http_fallback_loop = new IfStrategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);\n var wsStrategy;\n if (baseOptions.useTLS) {\n wsStrategy = new BestConnectedEverStrategy([\n ws_loop,\n new DelayedStrategy(http_fallback_loop, { delay: 2000 }),\n ]);\n }\n else {\n wsStrategy = new BestConnectedEverStrategy([\n ws_loop,\n new DelayedStrategy(wss_loop, { delay: 2000 }),\n new DelayedStrategy(http_fallback_loop, { delay: 5000 }),\n ]);\n }\n return new WebSocketPrioritizedCachedStrategy(new FirstConnectedStrategy(new IfStrategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {\n ttl: 1800000,\n timeline: baseOptions.timeline,\n useTLS: baseOptions.useTLS,\n });\n};\n/* harmony default export */ const default_strategy = (getDefaultStrategy);\n\n;// ./src/runtimes/web/transports/transport_connection_initializer.ts\n\n/* harmony default export */ function transport_connection_initializer() {\n var self = this;\n self.timeline.info(self.buildTimelineMessage({\n transport: self.name + (self.options.useTLS ? 's' : ''),\n }));\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n }\n else if (self.hooks.file) {\n self.changeState('initializing');\n Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n callback(true);\n }\n else {\n if (error) {\n self.onError(error);\n }\n self.onClose();\n callback(false);\n }\n });\n }\n else {\n self.onClose();\n }\n}\n\n;// ./src/runtimes/web/http/http_xdomain_request.ts\n\nvar hooks = {\n getRequest: function (socket) {\n var xdr = new window.XDomainRequest();\n xdr.ontimeout = function () {\n socket.emit('error', new RequestTimedOut());\n socket.close();\n };\n xdr.onerror = function (e) {\n socket.emit('error', e);\n socket.close();\n };\n xdr.onprogress = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n };\n xdr.onload = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n socket.emit('finished', 200);\n socket.close();\n };\n return xdr;\n },\n abortRequest: function (xdr) {\n xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;\n xdr.abort();\n },\n};\n/* harmony default export */ const http_xdomain_request = (hooks);\n\n;// ./src/core/http/http_request.ts\n\n\nconst MAX_BUFFER_LENGTH = 256 * 1024;\nclass HTTPRequest extends Dispatcher {\n constructor(hooks, method, url) {\n super();\n this.hooks = hooks;\n this.method = method;\n this.url = url;\n }\n start(payload) {\n this.position = 0;\n this.xhr = this.hooks.getRequest(this);\n this.unloader = () => {\n this.close();\n };\n runtime.addUnloadListener(this.unloader);\n this.xhr.open(this.method, this.url, true);\n if (this.xhr.setRequestHeader) {\n this.xhr.setRequestHeader('Content-Type', 'application/json');\n }\n this.xhr.send(payload);\n }\n close() {\n if (this.unloader) {\n runtime.removeUnloadListener(this.unloader);\n this.unloader = null;\n }\n if (this.xhr) {\n this.hooks.abortRequest(this.xhr);\n this.xhr = null;\n }\n }\n onChunk(status, data) {\n while (true) {\n var chunk = this.advanceBuffer(data);\n if (chunk) {\n this.emit('chunk', { status: status, data: chunk });\n }\n else {\n break;\n }\n }\n if (this.isBufferTooLong(data)) {\n this.emit('buffer_too_long');\n }\n }\n advanceBuffer(buffer) {\n var unreadData = buffer.slice(this.position);\n var endOfLinePosition = unreadData.indexOf('\\n');\n if (endOfLinePosition !== -1) {\n this.position += endOfLinePosition + 1;\n return unreadData.slice(0, endOfLinePosition);\n }\n else {\n return null;\n }\n }\n isBufferTooLong(buffer) {\n return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;\n }\n}\n\n;// ./src/core/http/state.ts\nvar State;\n(function (State) {\n State[State[\"CONNECTING\"] = 0] = \"CONNECTING\";\n State[State[\"OPEN\"] = 1] = \"OPEN\";\n State[State[\"CLOSED\"] = 3] = \"CLOSED\";\n})(State || (State = {}));\n/* harmony default export */ const state = (State);\n\n;// ./src/core/http/http_socket.ts\n\n\n\nvar autoIncrement = 1;\nclass HTTPSocket {\n constructor(hooks, url) {\n this.hooks = hooks;\n this.session = randomNumber(1000) + '/' + randomString(8);\n this.location = getLocation(url);\n this.readyState = state.CONNECTING;\n this.openStream();\n }\n send(payload) {\n return this.sendRaw(JSON.stringify([payload]));\n }\n ping() {\n this.hooks.sendHeartbeat(this);\n }\n close(code, reason) {\n this.onClose(code, reason, true);\n }\n sendRaw(payload) {\n if (this.readyState === state.OPEN) {\n try {\n runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n reconnect() {\n this.closeStream();\n this.openStream();\n }\n onClose(code, reason, wasClean) {\n this.closeStream();\n this.readyState = state.CLOSED;\n if (this.onclose) {\n this.onclose({\n code: code,\n reason: reason,\n wasClean: wasClean,\n });\n }\n }\n onChunk(chunk) {\n if (chunk.status !== 200) {\n return;\n }\n if (this.readyState === state.OPEN) {\n this.onActivity();\n }\n var payload;\n var type = chunk.data.slice(0, 1);\n switch (type) {\n case 'o':\n payload = JSON.parse(chunk.data.slice(1) || '{}');\n this.onOpen(payload);\n break;\n case 'a':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n for (var i = 0; i < payload.length; i++) {\n this.onEvent(payload[i]);\n }\n break;\n case 'm':\n payload = JSON.parse(chunk.data.slice(1) || 'null');\n this.onEvent(payload);\n break;\n case 'h':\n this.hooks.onHeartbeat(this);\n break;\n case 'c':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n this.onClose(payload[0], payload[1], true);\n break;\n }\n }\n onOpen(options) {\n if (this.readyState === state.CONNECTING) {\n if (options && options.hostname) {\n this.location.base = replaceHost(this.location.base, options.hostname);\n }\n this.readyState = state.OPEN;\n if (this.onopen) {\n this.onopen();\n }\n }\n else {\n this.onClose(1006, 'Server lost session', true);\n }\n }\n onEvent(event) {\n if (this.readyState === state.OPEN && this.onmessage) {\n this.onmessage({ data: event });\n }\n }\n onActivity() {\n if (this.onactivity) {\n this.onactivity();\n }\n }\n onError(error) {\n if (this.onerror) {\n this.onerror(error);\n }\n }\n openStream() {\n this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));\n this.stream.bind('chunk', (chunk) => {\n this.onChunk(chunk);\n });\n this.stream.bind('finished', (status) => {\n this.hooks.onFinished(this, status);\n });\n this.stream.bind('buffer_too_long', () => {\n this.reconnect();\n });\n try {\n this.stream.start();\n }\n catch (error) {\n util.defer(() => {\n this.onError(error);\n this.onClose(1006, 'Could not start streaming', false);\n });\n }\n }\n closeStream() {\n if (this.stream) {\n this.stream.unbind_all();\n this.stream.close();\n this.stream = null;\n }\n }\n}\nfunction getLocation(url) {\n var parts = /([^\\?]*)\\/*(\\??.*)/.exec(url);\n return {\n base: parts[1],\n queryString: parts[2],\n };\n}\nfunction getSendURL(url, session) {\n return url.base + '/' + session + '/xhr_send';\n}\nfunction getUniqueURL(url) {\n var separator = url.indexOf('?') === -1 ? '?' : '&';\n return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++;\n}\nfunction replaceHost(url, hostname) {\n var urlParts = /(https?:\\/\\/)([^\\/:]+)((\\/|:)?.*)/.exec(url);\n return urlParts[1] + hostname + urlParts[3];\n}\nfunction randomNumber(max) {\n return runtime.randomInt(max);\n}\nfunction randomString(length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(randomNumber(32).toString(32));\n }\n return result.join('');\n}\n/* harmony default export */ const http_socket = (HTTPSocket);\n\n;// ./src/core/http/http_streaming_socket.ts\nvar http_streaming_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr_streaming' + url.queryString;\n },\n onHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n },\n};\n/* harmony default export */ const http_streaming_socket = (http_streaming_socket_hooks);\n\n;// ./src/core/http/http_polling_socket.ts\nvar http_polling_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr' + url.queryString;\n },\n onHeartbeat: function () {\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n if (status === 200) {\n socket.reconnect();\n }\n else {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n },\n};\n/* harmony default export */ const http_polling_socket = (http_polling_socket_hooks);\n\n;// ./src/runtimes/isomorphic/http/http_xhr_request.ts\n\nvar http_xhr_request_hooks = {\n getRequest: function (socket) {\n var Constructor = runtime.getXHRAPI();\n var xhr = new Constructor();\n xhr.onreadystatechange = xhr.onprogress = function () {\n switch (xhr.readyState) {\n case 3:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n break;\n case 4:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n socket.emit('finished', xhr.status);\n socket.close();\n break;\n }\n };\n return xhr;\n },\n abortRequest: function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n },\n};\n/* harmony default export */ const http_xhr_request = (http_xhr_request_hooks);\n\n;// ./src/runtimes/isomorphic/http/http.ts\n\n\n\n\n\nvar HTTP = {\n createStreamingSocket(url) {\n return this.createSocket(http_streaming_socket, url);\n },\n createPollingSocket(url) {\n return this.createSocket(http_polling_socket, url);\n },\n createSocket(hooks, url) {\n return new http_socket(hooks, url);\n },\n createXHR(method, url) {\n return this.createRequest(http_xhr_request, method, url);\n },\n createRequest(hooks, method, url) {\n return new HTTPRequest(hooks, method, url);\n },\n};\n/* harmony default export */ const http_http = (HTTP);\n\n;// ./src/runtimes/web/http/http.ts\n\n\nhttp_http.createXDR = function (method, url) {\n return this.createRequest(http_xdomain_request, method, url);\n};\n/* harmony default export */ const web_http_http = (http_http);\n\n;// ./src/runtimes/web/runtime.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar Runtime = {\n nextAuthCallbackID: 1,\n auth_callbacks: {},\n ScriptReceivers: ScriptReceivers,\n DependenciesReceivers: DependenciesReceivers,\n getDefaultStrategy: default_strategy,\n Transports: transports_transports,\n transportConnectionInitializer: transport_connection_initializer,\n HTTPFactory: web_http_http,\n TimelineTransport: jsonp_timeline,\n getXHRAPI() {\n return window.XMLHttpRequest;\n },\n getWebSocketAPI() {\n return window.WebSocket || window.MozWebSocket;\n },\n setup(PusherClass) {\n if (typeof window !== 'undefined') {\n window.Pusher = PusherClass;\n var initializeOnDocumentBody = () => {\n this.onDocumentBody(PusherClass.ready);\n };\n if (!window.JSON) {\n Dependencies.load('json2', {}, initializeOnDocumentBody);\n }\n else {\n initializeOnDocumentBody();\n }\n }\n },\n getDocument() {\n return document;\n },\n getProtocol() {\n return this.getDocument().location.protocol;\n },\n getAuthorizers() {\n return { ajax: xhr_auth, jsonp: jsonp_auth };\n },\n onDocumentBody(callback) {\n if (document.body) {\n callback();\n }\n else {\n setTimeout(() => {\n this.onDocumentBody(callback);\n }, 0);\n }\n },\n createJSONPRequest(url, data) {\n return new JSONPRequest(url, data);\n },\n createScriptRequest(src) {\n return new ScriptRequest(src);\n },\n getLocalStorage() {\n try {\n return window.localStorage;\n }\n catch (e) {\n return undefined;\n }\n },\n createXHR() {\n if (this.getXHRAPI()) {\n return this.createXMLHttpRequest();\n }\n else {\n return this.createMicrosoftXHR();\n }\n },\n createXMLHttpRequest() {\n var Constructor = this.getXHRAPI();\n return new Constructor();\n },\n createMicrosoftXHR() {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n getNetwork() {\n return Network;\n },\n createWebSocket(url) {\n var Constructor = this.getWebSocketAPI();\n return new Constructor(url);\n },\n createSocketRequest(method, url) {\n if (this.isXHRSupported()) {\n return this.HTTPFactory.createXHR(method, url);\n }\n else if (this.isXDRSupported(url.indexOf('https:') === 0)) {\n return this.HTTPFactory.createXDR(method, url);\n }\n else {\n throw 'Cross-origin HTTP requests are not supported';\n }\n },\n isXHRSupported() {\n var Constructor = this.getXHRAPI();\n return (Boolean(Constructor) && new Constructor().withCredentials !== undefined);\n },\n isXDRSupported(useTLS) {\n var protocol = useTLS ? 'https:' : 'http:';\n var documentProtocol = this.getProtocol();\n return (Boolean(window['XDomainRequest']) && documentProtocol === protocol);\n },\n addUnloadListener(listener) {\n if (window.addEventListener !== undefined) {\n window.addEventListener('pagehide', listener, false);\n }\n else if (window.attachEvent !== undefined) {\n window.attachEvent('onunload', listener);\n }\n },\n removeUnloadListener(listener) {\n if (window.addEventListener !== undefined) {\n window.removeEventListener('pagehide', listener, false);\n }\n else if (window.detachEvent !== undefined) {\n window.detachEvent('onunload', listener);\n }\n },\n randomInt(max) {\n const crypto = window.crypto || window['msCrypto'];\n const limit = Math.floor(Math.pow(2, 32) / max) * max;\n let random;\n do {\n random = crypto.getRandomValues(new Uint32Array(1))[0];\n } while (random >= limit);\n return random % max;\n },\n};\n/* harmony default export */ const runtime = (Runtime);\n\n;// ./src/core/timeline/level.ts\nvar TimelineLevel;\n(function (TimelineLevel) {\n TimelineLevel[TimelineLevel[\"ERROR\"] = 3] = \"ERROR\";\n TimelineLevel[TimelineLevel[\"INFO\"] = 6] = \"INFO\";\n TimelineLevel[TimelineLevel[\"DEBUG\"] = 7] = \"DEBUG\";\n})(TimelineLevel || (TimelineLevel = {}));\n/* harmony default export */ const level = (TimelineLevel);\n\n;// ./src/core/timeline/timeline.ts\n\n\n\nclass Timeline {\n constructor(key, session, options) {\n this.key = key;\n this.session = session;\n this.events = [];\n this.options = options || {};\n this.sent = 0;\n this.uniqueID = 0;\n }\n log(level, event) {\n if (level <= this.options.level) {\n this.events.push(extend({}, event, { timestamp: util.now() }));\n if (this.options.limit && this.events.length > this.options.limit) {\n this.events.shift();\n }\n }\n }\n error(event) {\n this.log(level.ERROR, event);\n }\n info(event) {\n this.log(level.INFO, event);\n }\n debug(event) {\n this.log(level.DEBUG, event);\n }\n isEmpty() {\n return this.events.length === 0;\n }\n send(sendfn, callback) {\n var data = extend({\n session: this.session,\n bundle: this.sent + 1,\n key: this.key,\n lib: 'js',\n version: this.options.version,\n cluster: this.options.cluster,\n features: this.options.features,\n timeline: this.events,\n }, this.options.params);\n this.events = [];\n sendfn(data, (error, result) => {\n if (!error) {\n this.sent++;\n }\n if (callback) {\n callback(error, result);\n }\n });\n return true;\n }\n generateUniqueID() {\n this.uniqueID++;\n return this.uniqueID;\n }\n}\n\n;// ./src/core/strategies/transport_strategy.ts\n\n\n\n\nclass TransportStrategy {\n constructor(name, priority, transport, options) {\n this.name = name;\n this.priority = priority;\n this.transport = transport;\n this.options = options || {};\n }\n isSupported() {\n return this.transport.isSupported({\n useTLS: this.options.useTLS,\n });\n }\n connect(minPriority, callback) {\n if (!this.isSupported()) {\n return failAttempt(new UnsupportedStrategy(), callback);\n }\n else if (this.priority < minPriority) {\n return failAttempt(new TransportPriorityTooLow(), callback);\n }\n var connected = false;\n var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);\n var handshake = null;\n var onInitialized = function () {\n transport.unbind('initialized', onInitialized);\n transport.connect();\n };\n var onOpen = function () {\n handshake = factory.createHandshake(transport, function (result) {\n connected = true;\n unbindListeners();\n callback(null, result);\n });\n };\n var onError = function (error) {\n unbindListeners();\n callback(error);\n };\n var onClosed = function () {\n unbindListeners();\n var serializedTransport;\n serializedTransport = safeJSONStringify(transport);\n callback(new TransportClosed(serializedTransport));\n };\n var unbindListeners = function () {\n transport.unbind('initialized', onInitialized);\n transport.unbind('open', onOpen);\n transport.unbind('error', onError);\n transport.unbind('closed', onClosed);\n };\n transport.bind('initialized', onInitialized);\n transport.bind('open', onOpen);\n transport.bind('error', onError);\n transport.bind('closed', onClosed);\n transport.initialize();\n return {\n abort: () => {\n if (connected) {\n return;\n }\n unbindListeners();\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n },\n forceMinPriority: (p) => {\n if (connected) {\n return;\n }\n if (this.priority < p) {\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n }\n },\n };\n }\n}\nfunction failAttempt(error, callback) {\n util.defer(function () {\n callback(error);\n });\n return {\n abort: function () { },\n forceMinPriority: function () { },\n };\n}\n\n;// ./src/core/strategies/strategy_builder.ts\n\n\n\n\n\nconst { Transports: strategy_builder_Transports } = runtime;\nvar defineTransport = function (config, name, type, priority, options, manager) {\n var transportClass = strategy_builder_Transports[type];\n if (!transportClass) {\n throw new UnsupportedTransport(type);\n }\n var enabled = (!config.enabledTransports ||\n arrayIndexOf(config.enabledTransports, name) !== -1) &&\n (!config.disabledTransports ||\n arrayIndexOf(config.disabledTransports, name) === -1);\n var transport;\n if (enabled) {\n options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options);\n transport = new TransportStrategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options);\n }\n else {\n transport = strategy_builder_UnsupportedStrategy;\n }\n return transport;\n};\nvar strategy_builder_UnsupportedStrategy = {\n isSupported: function () {\n return false;\n },\n connect: function (_, callback) {\n var deferred = util.defer(function () {\n callback(new UnsupportedStrategy());\n });\n return {\n abort: function () {\n deferred.ensureAborted();\n },\n forceMinPriority: function () { },\n };\n },\n};\n\n;// ./src/core/options.ts\n\nfunction validateOptions(options) {\n if (options == null) {\n throw 'You must pass an options object';\n }\n if (options.cluster == null) {\n throw 'Options object must provide a cluster';\n }\n if ('disableStats' in options) {\n logger.warn('The disableStats option is deprecated in favor of enableStats');\n }\n}\n\n;// ./src/core/auth/user_authenticator.ts\n\n\nconst composeChannelQuery = (params, authOptions) => {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n for (var key in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(authOptions.params[key]);\n }\n if (authOptions.paramsProvider != null) {\n let dynamicParams = authOptions.paramsProvider();\n for (var key in dynamicParams) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(dynamicParams[key]);\n }\n }\n return query;\n};\nconst UserAuthenticator = (authOptions) => {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw `'${authOptions.transport}' is not a recognized auth transport`;\n }\n return (params, callback) => {\n const query = composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.UserAuthentication, callback);\n };\n};\n/* harmony default export */ const user_authenticator = (UserAuthenticator);\n\n;// ./src/core/auth/channel_authorizer.ts\n\n\nconst channel_authorizer_composeChannelQuery = (params, authOptions) => {\n var query = 'socket_id=' + encodeURIComponent(params.socketId);\n query += '&channel_name=' + encodeURIComponent(params.channelName);\n for (var key in authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(authOptions.params[key]);\n }\n if (authOptions.paramsProvider != null) {\n let dynamicParams = authOptions.paramsProvider();\n for (var key in dynamicParams) {\n query +=\n '&' +\n encodeURIComponent(key) +\n '=' +\n encodeURIComponent(dynamicParams[key]);\n }\n }\n return query;\n};\nconst ChannelAuthorizer = (authOptions) => {\n if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') {\n throw `'${authOptions.transport}' is not a recognized auth transport`;\n }\n return (params, callback) => {\n const query = channel_authorizer_composeChannelQuery(params, authOptions);\n runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.ChannelAuthorization, callback);\n };\n};\n/* harmony default export */ const channel_authorizer = (ChannelAuthorizer);\n\n;// ./src/core/auth/deprecated_channel_authorizer.ts\nconst ChannelAuthorizerProxy = (pusher, authOptions, channelAuthorizerGenerator) => {\n const deprecatedAuthorizerOptions = {\n authTransport: authOptions.transport,\n authEndpoint: authOptions.endpoint,\n auth: {\n params: authOptions.params,\n headers: authOptions.headers,\n },\n };\n return (params, callback) => {\n const channel = pusher.channel(params.channelName);\n const channelAuthorizer = channelAuthorizerGenerator(channel, deprecatedAuthorizerOptions);\n channelAuthorizer.authorize(params.socketId, callback);\n };\n};\n\n;// ./src/core/config.ts\n\n\n\n\n\nfunction getConfig(opts, pusher) {\n let config = {\n activityTimeout: opts.activityTimeout || defaults.activityTimeout,\n cluster: opts.cluster,\n httpPath: opts.httpPath || defaults.httpPath,\n httpPort: opts.httpPort || defaults.httpPort,\n httpsPort: opts.httpsPort || defaults.httpsPort,\n pongTimeout: opts.pongTimeout || defaults.pongTimeout,\n statsHost: opts.statsHost || defaults.stats_host,\n unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout,\n wsPath: opts.wsPath || defaults.wsPath,\n wsPort: opts.wsPort || defaults.wsPort,\n wssPort: opts.wssPort || defaults.wssPort,\n enableStats: getEnableStatsConfig(opts),\n httpHost: getHttpHost(opts),\n useTLS: shouldUseTLS(opts),\n wsHost: getWebsocketHost(opts),\n userAuthenticator: buildUserAuthenticator(opts),\n channelAuthorizer: buildChannelAuthorizer(opts, pusher),\n };\n if ('disabledTransports' in opts)\n config.disabledTransports = opts.disabledTransports;\n if ('enabledTransports' in opts)\n config.enabledTransports = opts.enabledTransports;\n if ('ignoreNullOrigin' in opts)\n config.ignoreNullOrigin = opts.ignoreNullOrigin;\n if ('timelineParams' in opts)\n config.timelineParams = opts.timelineParams;\n if ('nacl' in opts) {\n config.nacl = opts.nacl;\n }\n return config;\n}\nfunction getHttpHost(opts) {\n if (opts.httpHost) {\n return opts.httpHost;\n }\n if (opts.cluster) {\n return `sockjs-${opts.cluster}.pusher.com`;\n }\n return defaults.httpHost;\n}\nfunction getWebsocketHost(opts) {\n if (opts.wsHost) {\n return opts.wsHost;\n }\n return getWebsocketHostFromCluster(opts.cluster);\n}\nfunction getWebsocketHostFromCluster(cluster) {\n return `ws-${cluster}.pusher.com`;\n}\nfunction shouldUseTLS(opts) {\n if (runtime.getProtocol() === 'https:') {\n return true;\n }\n else if (opts.forceTLS === false) {\n return false;\n }\n return true;\n}\nfunction getEnableStatsConfig(opts) {\n if ('enableStats' in opts) {\n return opts.enableStats;\n }\n if ('disableStats' in opts) {\n return !opts.disableStats;\n }\n return false;\n}\nconst hasCustomHandler = (auth) => {\n return 'customHandler' in auth && auth['customHandler'] != null;\n};\nfunction buildUserAuthenticator(opts) {\n const userAuthentication = Object.assign(Object.assign({}, defaults.userAuthentication), opts.userAuthentication);\n if (hasCustomHandler(userAuthentication)) {\n return userAuthentication['customHandler'];\n }\n return user_authenticator(userAuthentication);\n}\nfunction buildChannelAuth(opts, pusher) {\n let channelAuthorization;\n if ('channelAuthorization' in opts) {\n channelAuthorization = Object.assign(Object.assign({}, defaults.channelAuthorization), opts.channelAuthorization);\n }\n else {\n channelAuthorization = {\n transport: opts.authTransport || defaults.authTransport,\n endpoint: opts.authEndpoint || defaults.authEndpoint,\n };\n if ('auth' in opts) {\n if ('params' in opts.auth)\n channelAuthorization.params = opts.auth.params;\n if ('headers' in opts.auth)\n channelAuthorization.headers = opts.auth.headers;\n }\n if ('authorizer' in opts) {\n channelAuthorization.customHandler = ChannelAuthorizerProxy(pusher, channelAuthorization, opts.authorizer);\n }\n }\n return channelAuthorization;\n}\nfunction buildChannelAuthorizer(opts, pusher) {\n const channelAuthorization = buildChannelAuth(opts, pusher);\n if (hasCustomHandler(channelAuthorization)) {\n return channelAuthorization['customHandler'];\n }\n return channel_authorizer(channelAuthorization);\n}\n\n;// ./src/core/watchlist.ts\n\n\nclass WatchlistFacade extends Dispatcher {\n constructor(pusher) {\n super(function (eventName, data) {\n logger.debug(`No callbacks on watchlist events for ${eventName}`);\n });\n this.pusher = pusher;\n this.bindWatchlistInternalEvent();\n }\n handleEvent(pusherEvent) {\n pusherEvent.data.events.forEach((watchlistEvent) => {\n this.emit(watchlistEvent.name, watchlistEvent);\n });\n }\n bindWatchlistInternalEvent() {\n this.pusher.connection.bind('message', (pusherEvent) => {\n var eventName = pusherEvent.event;\n if (eventName === 'pusher_internal:watchlist_events') {\n this.handleEvent(pusherEvent);\n }\n });\n }\n}\n\n;// ./src/core/utils/flat_promise.ts\nfunction flatPromise() {\n let resolve, reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n/* harmony default export */ const flat_promise = (flatPromise);\n\n;// ./src/core/user.ts\n\n\n\n\n\n\nclass UserFacade extends Dispatcher {\n constructor(pusher) {\n super(function (eventName, data) {\n logger.debug('No callbacks on user for ' + eventName);\n });\n this.signin_requested = false;\n this.user_data = null;\n this.serverToUserChannel = null;\n this.signinDonePromise = null;\n this._signinDoneResolve = null;\n this._onAuthorize = (err, authData) => {\n if (err) {\n logger.warn(`Error during signin: ${err}`);\n this.emit('pusher:signin_error', Object.assign({}, {\n type: 'AuthError',\n error: err.message,\n }, err instanceof HTTPAuthError ? { status: err.status } : {}));\n this._cleanup();\n return;\n }\n this.pusher.send_event('pusher:signin', {\n auth: authData.auth,\n user_data: authData.user_data,\n });\n };\n this.pusher = pusher;\n this.pusher.connection.bind('state_change', ({ previous, current }) => {\n if (previous !== 'connected' && current === 'connected') {\n this._signin();\n }\n if (previous === 'connected' && current !== 'connected') {\n this._cleanup();\n this._newSigninPromiseIfNeeded();\n }\n });\n this.watchlist = new WatchlistFacade(pusher);\n this.pusher.connection.bind('message', (event) => {\n var eventName = event.event;\n if (eventName === 'pusher:signin_success') {\n this._onSigninSuccess(event.data);\n }\n if (this.serverToUserChannel &&\n this.serverToUserChannel.name === event.channel) {\n this.serverToUserChannel.handleEvent(event);\n }\n });\n }\n signin() {\n if (this.signin_requested) {\n return;\n }\n this.signin_requested = true;\n this._signin();\n }\n _signin() {\n if (!this.signin_requested) {\n return;\n }\n this._newSigninPromiseIfNeeded();\n if (this.pusher.connection.state !== 'connected') {\n return;\n }\n this.pusher.config.userAuthenticator({\n socketId: this.pusher.connection.socket_id,\n }, this._onAuthorize);\n }\n _onSigninSuccess(data) {\n try {\n this.user_data = JSON.parse(data.user_data);\n }\n catch (e) {\n logger.error(`Failed parsing user data after signin: ${data.user_data}`);\n this._cleanup();\n return;\n }\n if (typeof this.user_data.id !== 'string' || this.user_data.id === '') {\n logger.error(`user_data doesn't contain an id. user_data: ${this.user_data}`);\n this._cleanup();\n return;\n }\n this._signinDoneResolve();\n this._subscribeChannels();\n }\n _subscribeChannels() {\n const ensure_subscribed = (channel) => {\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.pusher.connection.state === 'connected') {\n channel.subscribe();\n }\n };\n this.serverToUserChannel = new Channel(`#server-to-user-${this.user_data.id}`, this.pusher);\n this.serverToUserChannel.bind_global((eventName, data) => {\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n return;\n }\n this.emit(eventName, data);\n });\n ensure_subscribed(this.serverToUserChannel);\n }\n _cleanup() {\n this.user_data = null;\n if (this.serverToUserChannel) {\n this.serverToUserChannel.unbind_all();\n this.serverToUserChannel.disconnect();\n this.serverToUserChannel = null;\n }\n if (this.signin_requested) {\n this._signinDoneResolve();\n }\n }\n _newSigninPromiseIfNeeded() {\n if (!this.signin_requested) {\n return;\n }\n if (this.signinDonePromise && !this.signinDonePromise.done) {\n return;\n }\n const { promise, resolve, reject: _ } = flat_promise();\n promise.done = false;\n const setDone = () => {\n promise.done = true;\n };\n promise.then(setDone).catch(setDone);\n this.signinDonePromise = promise;\n this._signinDoneResolve = resolve;\n }\n}\n\n;// ./src/core/pusher.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass Pusher {\n static ready() {\n Pusher.isReady = true;\n for (var i = 0, l = Pusher.instances.length; i < l; i++) {\n Pusher.instances[i].connect();\n }\n }\n static getClientFeatures() {\n return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {\n return t.isSupported({});\n }));\n }\n constructor(app_key, options) {\n checkAppKey(app_key);\n validateOptions(options);\n this.key = app_key;\n this.options = options;\n this.config = getConfig(this.options, this);\n this.channels = factory.createChannels();\n this.global_emitter = new Dispatcher();\n this.sessionID = runtime.randomInt(1000000000);\n this.timeline = new Timeline(this.key, this.sessionID, {\n cluster: this.config.cluster,\n features: Pusher.getClientFeatures(),\n params: this.config.timelineParams || {},\n limit: 50,\n level: level.INFO,\n version: defaults.VERSION,\n });\n if (this.config.enableStats) {\n this.timelineSender = factory.createTimelineSender(this.timeline, {\n host: this.config.statsHost,\n path: '/timeline/v2/' + runtime.TimelineTransport.name,\n });\n }\n var getStrategy = (options) => {\n return runtime.getDefaultStrategy(this.config, options, defineTransport);\n };\n this.connection = factory.createConnectionManager(this.key, {\n getStrategy: getStrategy,\n timeline: this.timeline,\n activityTimeout: this.config.activityTimeout,\n pongTimeout: this.config.pongTimeout,\n unavailableTimeout: this.config.unavailableTimeout,\n useTLS: Boolean(this.config.useTLS),\n });\n this.connection.bind('connected', () => {\n this.subscribeAll();\n if (this.timelineSender) {\n this.timelineSender.send(this.connection.isUsingTLS());\n }\n });\n this.connection.bind('message', (event) => {\n var eventName = event.event;\n var internal = eventName.indexOf('pusher_internal:') === 0;\n if (event.channel) {\n var channel = this.channel(event.channel);\n if (channel) {\n channel.handleEvent(event);\n }\n }\n if (!internal) {\n this.global_emitter.emit(event.event, event.data);\n }\n });\n this.connection.bind('connecting', () => {\n this.channels.disconnect();\n });\n this.connection.bind('disconnected', () => {\n this.channels.disconnect();\n });\n this.connection.bind('error', (err) => {\n logger.warn(err);\n });\n Pusher.instances.push(this);\n this.timeline.info({ instances: Pusher.instances.length });\n this.user = new UserFacade(this);\n if (Pusher.isReady) {\n this.connect();\n }\n }\n switchCluster(options) {\n const { appKey, cluster } = options;\n this.key = appKey;\n this.options = Object.assign(Object.assign({}, this.options), { cluster });\n this.config = getConfig(this.options, this);\n this.connection.switchCluster(this.key);\n }\n channel(name) {\n return this.channels.find(name);\n }\n allChannels() {\n return this.channels.all();\n }\n connect() {\n this.connection.connect();\n if (this.timelineSender) {\n if (!this.timelineSenderTimer) {\n var usingTLS = this.connection.isUsingTLS();\n var timelineSender = this.timelineSender;\n this.timelineSenderTimer = new PeriodicTimer(60000, function () {\n timelineSender.send(usingTLS);\n });\n }\n }\n }\n disconnect() {\n this.connection.disconnect();\n if (this.timelineSenderTimer) {\n this.timelineSenderTimer.ensureAborted();\n this.timelineSenderTimer = null;\n }\n }\n bind(event_name, callback, context) {\n this.global_emitter.bind(event_name, callback, context);\n return this;\n }\n unbind(event_name, callback, context) {\n this.global_emitter.unbind(event_name, callback, context);\n return this;\n }\n bind_global(callback) {\n this.global_emitter.bind_global(callback);\n return this;\n }\n unbind_global(callback) {\n this.global_emitter.unbind_global(callback);\n return this;\n }\n unbind_all(callback) {\n this.global_emitter.unbind_all();\n return this;\n }\n subscribeAll() {\n var channelName;\n for (channelName in this.channels.channels) {\n if (this.channels.channels.hasOwnProperty(channelName)) {\n this.subscribe(channelName);\n }\n }\n }\n subscribe(channel_name) {\n var channel = this.channels.add(channel_name, this);\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.connection.state === 'connected') {\n channel.subscribe();\n }\n return channel;\n }\n unsubscribe(channel_name) {\n var channel = this.channels.find(channel_name);\n if (channel && channel.subscriptionPending) {\n channel.cancelSubscription();\n }\n else {\n channel = this.channels.remove(channel_name);\n if (channel && channel.subscribed) {\n channel.unsubscribe();\n }\n }\n }\n send_event(event_name, data, channel) {\n return this.connection.send_event(event_name, data, channel);\n }\n shouldUseTLS() {\n return this.config.useTLS;\n }\n signin() {\n this.user.signin();\n }\n}\nPusher.instances = [];\nPusher.isReady = false;\nPusher.logToConsole = false;\nPusher.Runtime = runtime;\nPusher.ScriptReceivers = runtime.ScriptReceivers;\nPusher.DependenciesReceivers = runtime.DependenciesReceivers;\nPusher.auth_callbacks = runtime.auth_callbacks;\n/* harmony default export */ const pusher = (Pusher);\nfunction checkAppKey(key) {\n if (key === null || key === undefined) {\n throw 'You must pass your app key when you instantiate Pusher.';\n }\n}\nruntime.setup(Pusher);\n\n\n/***/ }\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module used 'module' so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(721);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pusher.js.map"],"ignoreList":[0],"mappings":"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"}