@inboxsdk/core 0.2.28-alpha.6 → 0.2.28

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 (669) hide show
  1. package/inboxsdk.js +28 -62
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -5
  4. package/pageWorld.js.map +1 -1
  5. package/src/build/exec.d.ts +0 -1
  6. package/src/build/spawn.d.ts +0 -1
  7. package/src/common/ajax.d.ts +0 -1
  8. package/src/common/cachebust-url.d.ts +0 -1
  9. package/src/common/censorHTMLstring.d.ts +0 -1
  10. package/src/common/censorHTMLtree.d.ts +0 -1
  11. package/src/common/censorJSONTree.d.ts +0 -1
  12. package/src/common/connectivity-test.d.ts +0 -1
  13. package/src/common/defer.d.ts +0 -1
  14. package/src/common/find-parent.d.ts +0 -1
  15. package/src/common/get-extension-id.d.ts +0 -1
  16. package/src/common/get-or-fail.d.ts +0 -1
  17. package/src/common/get-session-id.d.ts +0 -1
  18. package/src/common/get-stack-trace.d.ts +0 -1
  19. package/src/common/html-to-text.d.ts +0 -1
  20. package/src/common/isElementVisible.d.ts +0 -1
  21. package/src/common/load-script.d.ts +0 -1
  22. package/src/common/log-error.d.ts +0 -1
  23. package/src/common/quoted-split.d.ts +0 -1
  24. package/src/common/rate-limit-queuer.d.ts +0 -1
  25. package/src/common/rate-limit.d.ts +0 -1
  26. package/src/common/version.d.ts +0 -1
  27. package/src/inboxsdk-js/check-requirements.js +3 -7
  28. package/src/inboxsdk-js/header.js +0 -1
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +6 -5
  30. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +3 -4
  31. package/src/inboxsdk-js/inboxsdk-REMOTE.js +1 -3
  32. package/src/inboxsdk-js/inboxsdk-TEST.js +3 -4
  33. package/src/inboxsdk-js/inboxsdk.js +39 -33
  34. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +18 -15
  35. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +0 -1
  36. package/src/inboxsdk.d.ts +27 -12
  37. package/src/injected-js/gmail/constants.d.ts +0 -1
  38. package/src/injected-js/gmail/modify-suggestions.d.ts +0 -1
  39. package/src/injected-js/gmail/modify-suggestions.test.js +9 -8
  40. package/src/injected-js/gmail/setup-gmail-interceptor.js +579 -340
  41. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts +0 -1
  42. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +0 -1
  43. package/src/injected-js/gmail/sync-compose-processor.d.ts +0 -1
  44. package/src/injected-js/gmail/sync-compose-request-processor.d.ts +0 -1
  45. package/src/injected-js/gmail/sync-compose-request-processor.test.js +49 -39
  46. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +33 -20
  47. package/src/injected-js/gmail/thread-identifier/index.js +93 -57
  48. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +31 -22
  49. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +28 -12
  50. package/src/injected-js/inbox/setupAjaxInterceptor.js +121 -64
  51. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +66 -53
  52. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +36 -20
  53. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  54. package/src/injected-js/injected-logger.d.ts +0 -1
  55. package/src/injected-js/main.js +24 -11
  56. package/src/injected-js/message-metadata-holder.js +82 -52
  57. package/src/injected-js/setup-data-exposer.js +148 -89
  58. package/src/injected-js/setup-error-silencer.js +21 -21
  59. package/src/injected-js/setup-event-reemitter.js +22 -30
  60. package/src/injected-js/setupCustomViewEventAssassin.d.ts +0 -1
  61. package/src/injected-js/setupInboxCustomViewLinkFixer.js +29 -24
  62. package/src/injected-js/setupPushStateListener.js +11 -18
  63. package/src/injected-js/xhr-helper.js +65 -62
  64. package/src/injected-js/xhr-proxy-factory.js +445 -195
  65. package/src/injected-js/xhr-proxy-factory.test.js +991 -824
  66. package/src/platform-implementation-js/constants/nav-item-types.d.ts +0 -1
  67. package/src/platform-implementation-js/constants/router.js +9 -17
  68. package/src/platform-implementation-js/constants/toolbars.js +3 -8
  69. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +136 -115
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -3
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts +0 -1
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +14 -13
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +48 -27
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts +0 -1
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +42 -31
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +40 -30
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts +0 -1
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts +0 -1
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +18 -10
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +28 -21
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +45 -33
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +49 -31
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +65 -58
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +0 -1
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +124 -40
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +22 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts +0 -1
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +11 -10
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +80 -44
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +26 -19
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +147 -71
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +148 -91
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +166 -150
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +120 -70
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +67 -44
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +379 -230
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +307 -121
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +24 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +49 -41
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +40 -30
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +60 -28
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +133 -61
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +110 -83
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +42 -30
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +46 -52
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +3 -13
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +683 -355
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts +0 -1
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts +0 -1
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +0 -4
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +0 -1
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +0 -1
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts +0 -1
  116. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts +0 -1
  117. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +93 -77
  118. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts +0 -1
  119. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts +0 -1
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +82 -35
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +94 -44
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +19 -12
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +29 -17
  124. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  125. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +797 -391
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +9 -7
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +109 -60
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +135 -95
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +211 -103
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +541 -188
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +135 -67
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +49 -27
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +13 -7
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +22 -9
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +63 -36
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts +0 -1
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +113 -38
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts +0 -1
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +16 -11
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +17 -11
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +11 -8
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +47 -27
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +24 -11
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +111 -59
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +0 -1
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +14 -15
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +17 -11
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +24 -18
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +0 -1
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +23 -19
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts +0 -1
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +19 -11
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +376 -141
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +28 -17
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +70 -34
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts +0 -1
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +17 -10
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts +0 -1
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts +0 -1
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +137 -83
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +19 -10
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +1190 -632
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +0 -1
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +38 -29
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +617 -327
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -34
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +48 -29
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +380 -188
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +194 -104
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts +0 -1
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +811 -382
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +58 -34
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +581 -330
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +277 -123
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +35 -15
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +571 -216
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +336 -152
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +211 -87
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts +0 -1
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts +0 -1
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +0 -1
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +0 -1
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +11 -10
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +0 -1
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts +0 -1
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts +0 -1
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +29 -20
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts +0 -1
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +76 -41
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +99 -45
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +128 -76
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +319 -128
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +78 -45
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +4 -8
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +54 -36
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +53 -35
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +15 -13
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +18 -15
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +13 -14
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +20 -14
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +13 -14
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +67 -35
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +18 -16
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +185 -68
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +56 -28
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +10 -12
  209. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  210. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +35 -24
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +89 -37
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +78 -56
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +32 -26
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +109 -52
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +8 -7
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +20 -16
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +16 -15
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +83 -75
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +823 -531
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +61 -48
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +12 -9
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +19 -12
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +33 -24
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +388 -201
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +265 -249
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +152 -84
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +67 -55
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +65 -43
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +56 -31
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +294 -191
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +45 -32
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +39 -21
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +240 -153
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +150 -75
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +37 -20
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +114 -60
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +65 -47
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +52 -41
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +36 -27
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +80 -52
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +649 -465
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +58 -37
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +26 -14
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +235 -118
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +11 -10
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +46 -28
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +202 -131
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +80 -40
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +61 -35
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +221 -124
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +213 -125
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +126 -104
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +51 -36
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +297 -158
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +35 -21
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +43 -24
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +68 -39
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts +0 -1
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +19 -14
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +35 -27
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts +0 -1
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +22 -16
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts +0 -1
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts +0 -1
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +7 -12
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts +0 -1
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +20 -19
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +306 -197
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +161 -113
  271. package/src/platform-implementation-js/driver-common/update-icon.d.ts +0 -1
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +114 -1
  273. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +0 -5
  274. package/src/platform-implementation-js/driver-interfaces/driver.js +126 -1
  275. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +48 -4
  276. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +29 -1
  277. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +32 -1
  278. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +11 -1
  279. package/src/platform-implementation-js/lib/ErrorCollector.d.ts +0 -1
  280. package/src/platform-implementation-js/lib/Membrane.d.ts +0 -1
  281. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts +0 -1
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.js +41 -43
  283. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +155 -139
  284. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts +0 -1
  285. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +0 -1
  286. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +38 -19
  287. package/src/platform-implementation-js/lib/css-selector-escape.js +3 -7
  288. package/src/platform-implementation-js/lib/delay-asap.d.ts +0 -1
  289. package/src/platform-implementation-js/lib/delay-idle.d.ts +0 -1
  290. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts +0 -1
  291. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +11 -8
  292. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts +0 -1
  293. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts +0 -1
  294. package/src/platform-implementation-js/lib/dom/get-selection.js +52 -23
  295. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts +0 -1
  296. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +101 -69
  297. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +10 -8
  298. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts +0 -1
  299. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts +0 -1
  300. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts +0 -1
  301. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts +0 -1
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts +0 -1
  303. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts +0 -1
  304. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +17 -15
  305. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts +0 -1
  306. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts +0 -1
  307. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +11 -8
  308. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts +0 -1
  309. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts +0 -1
  310. package/src/platform-implementation-js/lib/dom/set-css.js +3 -7
  311. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +11 -9
  312. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +33 -32
  313. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts +0 -1
  314. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts +0 -1
  315. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts +0 -1
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +0 -1
  317. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +26 -23
  318. package/src/platform-implementation-js/lib/fake-window-resize.d.ts +0 -1
  319. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts +0 -1
  320. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts +0 -1
  321. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +149 -86
  322. package/src/platform-implementation-js/lib/handler-registry.d.ts +0 -1
  323. package/src/platform-implementation-js/lib/idMap.d.ts +0 -1
  324. package/src/platform-implementation-js/lib/imageRequest.d.ts +0 -1
  325. package/src/platform-implementation-js/lib/incrementName.d.ts +0 -1
  326. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts +0 -1
  327. package/src/platform-implementation-js/lib/inject-script.d.ts +0 -1
  328. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +57 -42
  329. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts +0 -1
  330. package/src/platform-implementation-js/lib/is-valid-email.d.ts +0 -1
  331. package/src/platform-implementation-js/lib/isNotNil.d.ts +0 -1
  332. package/src/platform-implementation-js/lib/isStreakAppId.d.ts +0 -1
  333. package/src/platform-implementation-js/lib/logger.d.ts +0 -1
  334. package/src/platform-implementation-js/lib/make-revocable-function.js +21 -19
  335. package/src/platform-implementation-js/lib/make-revocable-function.test.js +22 -20
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +17 -15
  337. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +18 -9
  338. package/src/platform-implementation-js/lib/persistent-queue.d.ts +0 -1
  339. package/src/platform-implementation-js/lib/populateRouteID.js +9 -8
  340. package/src/platform-implementation-js/lib/populateRouteID.test.js +19 -20
  341. package/src/platform-implementation-js/lib/react/ElementContainer.js +20 -23
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +9 -10
  343. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +20 -13
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +18 -13
  345. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +17 -11
  346. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts +0 -1
  347. package/src/platform-implementation-js/lib/shared-style.js +13 -14
  348. package/src/platform-implementation-js/lib/stopper-pool.d.ts +0 -1
  349. package/src/platform-implementation-js/lib/stream-wait-for.d.ts +0 -1
  350. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +17 -18
  351. package/src/platform-implementation-js/lib/toLiveSet.js +15 -17
  352. package/src/platform-implementation-js/lib/wait-for.d.ts +1 -2
  353. package/src/platform-implementation-js/lib/waitForAsync.d.ts +0 -1
  354. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +5 -6
  355. package/src/platform-implementation-js/main.js +24 -9
  356. package/src/platform-implementation-js/namespaces/butter-bar.d.ts +0 -1
  357. package/src/platform-implementation-js/namespaces/compose.js +60 -37
  358. package/src/platform-implementation-js/namespaces/conversations.js +124 -52
  359. package/src/platform-implementation-js/namespaces/global.js +39 -27
  360. package/src/platform-implementation-js/namespaces/keyboard.js +33 -29
  361. package/src/platform-implementation-js/namespaces/lists.js +31 -25
  362. package/src/platform-implementation-js/namespaces/modal.js +28 -34
  363. package/src/platform-implementation-js/namespaces/nav-menu.js +45 -30
  364. package/src/platform-implementation-js/namespaces/router.js +137 -70
  365. package/src/platform-implementation-js/namespaces/search.js +17 -19
  366. package/src/platform-implementation-js/namespaces/toolbars.js +117 -71
  367. package/src/platform-implementation-js/namespaces/user.js +37 -36
  368. package/src/platform-implementation-js/namespaces/widgets.js +61 -54
  369. package/src/platform-implementation-js/platform-implementation.d.ts +0 -2
  370. package/src/platform-implementation-js/platform-implementation.js +226 -98
  371. package/src/platform-implementation-js/views/SimpleElementView.d.ts +0 -1
  372. package/src/platform-implementation-js/views/app-toolbar-button-view.js +47 -26
  373. package/src/platform-implementation-js/views/collapsible-section-view.js +63 -66
  374. package/src/platform-implementation-js/views/compose-button-view.d.ts +0 -1
  375. package/src/platform-implementation-js/views/compose-view.d.ts +0 -1
  376. package/src/platform-implementation-js/views/content-panel-view.js +30 -28
  377. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +44 -21
  378. package/src/platform-implementation-js/views/conversations/custom-message-view.js +104 -44
  379. package/src/platform-implementation-js/views/conversations/message-view.js +202 -131
  380. package/src/platform-implementation-js/views/conversations/thread-view.js +127 -75
  381. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts +0 -1
  382. package/src/platform-implementation-js/views/native-nav-item-view.js +65 -32
  383. package/src/platform-implementation-js/views/nav-item-view.js +115 -51
  384. package/src/platform-implementation-js/views/route-view/custom-route-view.js +20 -25
  385. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  386. package/src/platform-implementation-js/views/route-view/list-route-view.js +52 -30
  387. package/src/platform-implementation-js/views/route-view/route-view.js +35 -24
  388. package/src/platform-implementation-js/views/section-view.js +52 -60
  389. package/src/platform-implementation-js/views/thread-row-view.js +74 -49
  390. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +0 -1
  391. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts +0 -1
  392. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts +0 -1
  393. package/src/platform-implementation-js/widgets/drawer-view.js +36 -29
  394. package/src/platform-implementation-js/widgets/modal-view.js +68 -39
  395. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  396. package/src/platform-implementation-js/widgets/top-message-bar-view.js +10 -13
  397. package/src/build/exec.d.ts.map +0 -1
  398. package/src/build/exec.js +0 -26
  399. package/src/build/spawn.d.ts.map +0 -1
  400. package/src/build/spawn.js +0 -17
  401. package/src/common/ajax.d.ts.map +0 -1
  402. package/src/common/ajax.js +0 -90
  403. package/src/common/cachebust-url.d.ts.map +0 -1
  404. package/src/common/cachebust-url.js +0 -10
  405. package/src/common/censorHTMLstring.d.ts.map +0 -1
  406. package/src/common/censorHTMLstring.js +0 -37
  407. package/src/common/censorHTMLtree.d.ts.map +0 -1
  408. package/src/common/censorHTMLtree.js +0 -28
  409. package/src/common/censorJSONTree.d.ts.map +0 -1
  410. package/src/common/censorJSONTree.js +0 -15
  411. package/src/common/connectivity-test.d.ts.map +0 -1
  412. package/src/common/connectivity-test.js +0 -21
  413. package/src/common/defer.d.ts.map +0 -1
  414. package/src/common/defer.js +0 -11
  415. package/src/common/find-parent.d.ts.map +0 -1
  416. package/src/common/find-parent.js +0 -10
  417. package/src/common/get-extension-id.d.ts.map +0 -1
  418. package/src/common/get-extension-id.js +0 -7
  419. package/src/common/get-or-fail.d.ts.map +0 -1
  420. package/src/common/get-or-fail.js +0 -8
  421. package/src/common/get-session-id.d.ts.map +0 -1
  422. package/src/common/get-session-id.js +0 -14
  423. package/src/common/get-stack-trace.d.ts.map +0 -1
  424. package/src/common/get-stack-trace.js +0 -6
  425. package/src/common/html-to-text.d.ts.map +0 -1
  426. package/src/common/html-to-text.js +0 -7
  427. package/src/common/isElementVisible.d.ts.map +0 -1
  428. package/src/common/isElementVisible.js +0 -6
  429. package/src/common/load-script.d.ts.map +0 -1
  430. package/src/common/load-script.js +0 -127
  431. package/src/common/log-error.d.ts.map +0 -1
  432. package/src/common/log-error.js +0 -191
  433. package/src/common/quoted-split.d.ts.map +0 -1
  434. package/src/common/quoted-split.js +0 -18
  435. package/src/common/rate-limit-queuer.d.ts.map +0 -1
  436. package/src/common/rate-limit-queuer.js +0 -57
  437. package/src/common/rate-limit.d.ts.map +0 -1
  438. package/src/common/rate-limit.js +0 -14
  439. package/src/common/version.d.ts.map +0 -1
  440. package/src/common/version.js +0 -6
  441. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +0 -1
  442. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -27
  443. package/src/injected-js/gmail/constants.d.ts.map +0 -1
  444. package/src/injected-js/gmail/constants.js +0 -2
  445. package/src/injected-js/gmail/modify-suggestions.d.ts.map +0 -1
  446. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  447. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts.map +0 -1
  448. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  449. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +0 -1
  450. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  451. package/src/injected-js/gmail/sync-compose-processor.d.ts.map +0 -1
  452. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  453. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +0 -1
  454. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -110
  455. package/src/injected-js/injected-logger.d.ts.map +0 -1
  456. package/src/injected-js/injected-logger.js +0 -50
  457. package/src/injected-js/setupCustomViewEventAssassin.d.ts.map +0 -1
  458. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  459. package/src/platform-implementation-js/constants/nav-item-types.d.ts.map +0 -1
  460. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  461. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +0 -5
  462. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +0 -1
  463. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -21
  464. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +0 -5
  465. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +0 -1
  466. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -28
  467. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +0 -1
  468. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  469. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts.map +0 -1
  470. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  471. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts.map +0 -1
  472. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  473. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts.map +0 -1
  474. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  475. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts.map +0 -1
  476. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  477. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +0 -1
  478. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -4
  479. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +0 -1
  480. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  481. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +0 -2
  482. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +0 -1
  483. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts.map +0 -1
  484. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  485. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts.map +0 -1
  486. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  487. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +0 -1
  488. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -253
  489. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +0 -1
  490. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -200
  491. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +0 -1
  492. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -533
  493. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts.map +0 -1
  494. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -289
  495. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts.map +0 -1
  496. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  497. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts.map +0 -1
  498. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  499. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts.map +0 -1
  500. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  501. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +0 -43
  502. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +0 -1
  503. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -126
  504. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +0 -1
  505. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  506. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts.map +0 -1
  507. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  508. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +0 -1
  509. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  510. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +0 -1
  511. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  512. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +0 -1
  513. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  514. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts.map +0 -1
  515. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  516. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts.map +0 -1
  517. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  518. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts.map +0 -1
  519. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  520. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +0 -1
  521. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -5
  522. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +0 -1
  523. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -759
  524. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts.map +0 -1
  525. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  526. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts.map +0 -1
  527. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  528. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +0 -1
  529. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  530. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +0 -1
  531. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -58
  532. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +0 -1
  533. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -55
  534. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +0 -1
  535. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -96
  536. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts.map +0 -1
  537. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  538. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts.map +0 -1
  539. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  540. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +0 -1
  541. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  542. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts.map +0 -1
  543. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  544. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts.map +0 -1
  545. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  546. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts.map +0 -1
  547. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  548. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts.map +0 -1
  549. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  550. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts.map +0 -1
  551. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  552. package/src/platform-implementation-js/driver-common/update-icon.d.ts.map +0 -1
  553. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  554. package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +0 -1
  555. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  556. package/src/platform-implementation-js/lib/Membrane.d.ts.map +0 -1
  557. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  558. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +0 -1
  559. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  560. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts.map +0 -1
  561. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  562. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +0 -1
  563. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  564. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +0 -1
  565. package/src/platform-implementation-js/lib/delay-asap.js +0 -12
  566. package/src/platform-implementation-js/lib/delay-idle.d.ts.map +0 -1
  567. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  568. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts.map +0 -1
  569. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  570. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts.map +0 -1
  571. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  572. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts.map +0 -1
  573. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  574. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts.map +0 -1
  575. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  576. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts.map +0 -1
  577. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  578. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts.map +0 -1
  579. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  580. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +0 -1
  581. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -28
  582. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts.map +0 -1
  583. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  584. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts.map +0 -1
  585. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  586. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts.map +0 -1
  587. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  588. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts.map +0 -1
  589. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -39
  590. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts.map +0 -1
  591. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  592. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts.map +0 -1
  593. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  594. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts.map +0 -1
  595. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  596. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts.map +0 -1
  597. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  598. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts.map +0 -1
  599. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  600. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts.map +0 -1
  601. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  602. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +0 -1
  603. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  604. package/src/platform-implementation-js/lib/fake-window-resize.d.ts.map +0 -1
  605. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  606. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts.map +0 -1
  607. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  608. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts.map +0 -1
  609. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  610. package/src/platform-implementation-js/lib/handler-registry.d.ts.map +0 -1
  611. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  612. package/src/platform-implementation-js/lib/idMap.d.ts.map +0 -1
  613. package/src/platform-implementation-js/lib/idMap.js +0 -45
  614. package/src/platform-implementation-js/lib/imageRequest.d.ts.map +0 -1
  615. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  616. package/src/platform-implementation-js/lib/incrementName.d.ts.map +0 -1
  617. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  618. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +0 -1
  619. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -14
  620. package/src/platform-implementation-js/lib/inject-script.d.ts.map +0 -1
  621. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  622. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts.map +0 -1
  623. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  624. package/src/platform-implementation-js/lib/is-valid-email.d.ts.map +0 -1
  625. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  626. package/src/platform-implementation-js/lib/isNotNil.d.ts.map +0 -1
  627. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  628. package/src/platform-implementation-js/lib/isStreakAppId.d.ts.map +0 -1
  629. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  630. package/src/platform-implementation-js/lib/logger.d.ts.map +0 -1
  631. package/src/platform-implementation-js/lib/logger.js +0 -441
  632. package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +0 -1
  633. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  634. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +0 -1
  635. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -17
  636. package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +0 -1
  637. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  638. package/src/platform-implementation-js/lib/stream-wait-for.d.ts.map +0 -1
  639. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  640. package/src/platform-implementation-js/lib/wait-for.d.ts.map +0 -1
  641. package/src/platform-implementation-js/lib/wait-for.js +0 -28
  642. package/src/platform-implementation-js/lib/waitForAsync.d.ts.map +0 -1
  643. package/src/platform-implementation-js/lib/waitForAsync.js +0 -19
  644. package/src/platform-implementation-js/namespaces/app-menu.d.ts +0 -38
  645. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +0 -1
  646. package/src/platform-implementation-js/namespaces/app-menu.js +0 -31
  647. package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +0 -1
  648. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  649. package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +0 -1
  650. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  651. package/src/platform-implementation-js/views/app-menu-item-view.d.ts +0 -23
  652. package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +0 -1
  653. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -257
  654. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +0 -50
  655. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +0 -1
  656. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -222
  657. package/src/platform-implementation-js/views/compose-button-view.d.ts.map +0 -1
  658. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  659. package/src/platform-implementation-js/views/compose-view.d.ts.map +0 -1
  660. package/src/platform-implementation-js/views/compose-view.js +0 -312
  661. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +0 -1
  662. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  663. package/src/platform-implementation-js/views/nav-item-view.d.ts +0 -24
  664. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +0 -1
  665. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  666. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts.map +0 -1
  667. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  668. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +0 -1
  669. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -122
@@ -1,19 +1,19 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = XHRProxyFactory;
8
- var _has = _interopRequireDefault(require("lodash/has"));
9
- var _noop = _interopRequireDefault(require("lodash/noop"));
10
- var _each = _interopRequireDefault(require("lodash/each"));
11
- var _filter = _interopRequireDefault(require("lodash/filter"));
12
- var _includes = _interopRequireDefault(require("lodash/includes"));
13
- var _once = _interopRequireDefault(require("lodash/once"));
14
- var _assert = _interopRequireDefault(require("assert"));
15
- var _events = _interopRequireDefault(require("events"));
16
- var _querystring = require("querystring");
1
+ /* @flow */
2
+
3
+ import has from 'lodash/has';
4
+ import noop from 'lodash/noop';
5
+ import each from 'lodash/each';
6
+ import filter from 'lodash/filter';
7
+ import includes from 'lodash/includes';
8
+ import once from 'lodash/once';
9
+ import assert from 'assert';
10
+ import EventEmitter from 'events';
11
+ import { parse as deparam } from 'querystring';
12
+
13
+ export type Opts = {
14
+ logError: (error: Error, details: any) => void,
15
+ };
16
+
17
17
  const WARNING_TIMEOUT = 60 * 1000;
18
18
 
19
19
  /**
@@ -35,6 +35,94 @@ const WARNING_TIMEOUT = 60 * 1000;
35
35
  * @property {string} [modifiedResponseText]
36
36
  */
37
37
 
38
+ export type XHRProxyConnectionDetails = {
39
+ method: string,
40
+ url: string,
41
+ params: { [key: string]: string },
42
+ headers: { [name: string]: string },
43
+ responseType: string,
44
+ originalSendBody: ?string,
45
+ };
46
+
47
+ export type XHRProxyConnectionDetailsWithResponse =
48
+ XHRProxyConnectionDetails & {
49
+ status: number,
50
+ originalResponseText: string,
51
+ modifiedResponseText: string,
52
+ };
53
+
54
+ export type XHRProxyConnectionDetailsAfterListeners =
55
+ XHRProxyConnectionDetails & {
56
+ status: number,
57
+ originalResponseText: ?string,
58
+ modifiedResponseText: ?string,
59
+ };
60
+
61
+ /**
62
+ * Thing
63
+ *
64
+ * @callback XHRProxyWrapperCallback
65
+ * @param {XHRProxyConnectionDetails} connection
66
+ */
67
+
68
+ type Request = {|
69
+ method: string,
70
+ url: string,
71
+ body: string,
72
+ |};
73
+
74
+ /**
75
+ * Wrapper object contains optional callbacks that get run for completed
76
+ * requests, and a required isRelevantTo method that filters what types of
77
+ * requests the methods should be called for. All methods are passed an object
78
+ * with details about the connection as the first argument. Some methods are
79
+ * called with a relevant second argument (which is also present within the
80
+ * connection argument).
81
+ *
82
+ * @typedef {Object} XHRProxyWrapper
83
+ * @property {XHRProxyWrapperCallback} isRelevantTo - returns true if wrapper should be used
84
+ * for request.
85
+ * @property {XHRProxyWrapperCallback} [originalSendBodyLogger] - called with value passed to
86
+ * send.
87
+ * @property {XHRProxyWrapperCallback} [requestChanger] - Allows the protocol, URL, and body
88
+ * to be changed together before the connection is opened and sent.
89
+ * @property {XHRProxyWrapperCallback} [originalResponseTextLogger] - called with the responseText as
90
+ * given by the server. Is not called if responseType is set to a value besides 'text'.
91
+ * @property {XHRProxyWrapperCallback} [responseTextChanger] - called with the responseText as given
92
+ * by the server and returns new responseText value. Is not called if responseType
93
+ * is set to a value besides 'text'.
94
+ * @property {XHRProxyWrapperCallback} [finalResponseTextLogger] - called with the responseText as
95
+ * delivered to application code. Is not called if responseType is set to a value besides 'text'.
96
+ * @property {XHRProxyWrapperCallback} [afterListeners] - called after all event listeners
97
+ * for readystatechange have run
98
+ */
99
+ export type Wrapper = {|
100
+ isRelevantTo: (connection: XHRProxyConnectionDetails) => boolean,
101
+ originalSendBodyLogger?: (
102
+ connection: XHRProxyConnectionDetails,
103
+ body: string
104
+ ) => void,
105
+ requestChanger?: (
106
+ connection: XHRProxyConnectionDetails,
107
+ request: Object
108
+ ) => Request | Promise<Request>,
109
+ originalResponseTextLogger?: (
110
+ connection: XHRProxyConnectionDetailsWithResponse,
111
+ originalResponseText: string
112
+ ) => void,
113
+ responseTextChanger?: (
114
+ connection: XHRProxyConnectionDetailsWithResponse,
115
+ originalResponseText: string
116
+ ) => string | Promise<string>,
117
+ finalResponseTextLogger?: (
118
+ connection: XHRProxyConnectionDetailsWithResponse,
119
+ finalResponseText: string
120
+ ) => void,
121
+ afterListeners?: (
122
+ connection: XHRProxyConnectionDetailsAfterListeners
123
+ ) => void,
124
+ |};
125
+
38
126
  /**
39
127
  * Creates a drop-in replacement for the XMLHttpRequest constructor that can
40
128
  * have wrappers which may log or modify server responses. See
@@ -45,34 +133,69 @@ const WARNING_TIMEOUT = 60 * 1000;
45
133
  * @param {Object} [opts] - Can specify a logError function
46
134
  * @returns {function} wrapped XMLHttpRequest-like constructor
47
135
  */
48
- function XHRProxyFactory(XHR, wrappers, opts) {
49
- const logError = opts && opts.logError || function (error, label) {
50
- setTimeout(function () {
51
- // let window.onerror log this
52
- throw error;
53
- }, 1);
54
- };
136
+ export default function XHRProxyFactory(
137
+ XHR: typeof XMLHttpRequest,
138
+ wrappers: Wrapper[],
139
+ opts: Opts
140
+ ): typeof XMLHttpRequest {
141
+ const logError =
142
+ (opts && opts.logError) ||
143
+ function (error, label) {
144
+ setTimeout(function () {
145
+ // let window.onerror log this
146
+ throw error;
147
+ }, 1);
148
+ };
149
+
55
150
  function transformEvent(oldTarget, newTarget, event) {
56
151
  const newEvent = {};
57
- Object.keys(event).concat(['bubbles', 'cancelBubble', 'cancelable', 'defaultPrevented', 'preventDefault', 'stopPropagation', 'stopImmediatePropagation', 'lengthComputable', 'loaded', 'total', 'type', 'currentTarget', 'target', 'srcElement', 'NONE', 'CAPTURING_PHASE', 'AT_TARGET', 'BUBBLING_PHASE', 'eventPhase']).filter(name => name in event).forEach(name => {
58
- const value = event[name];
59
- if (value === oldTarget) {
60
- newEvent[name] = newTarget;
61
- } else if (typeof value === 'function') {
62
- newEvent[name] = value.bind(event);
63
- } else {
64
- newEvent[name] = value;
65
- }
66
- });
152
+ Object.keys(event)
153
+ .concat([
154
+ 'bubbles',
155
+ 'cancelBubble',
156
+ 'cancelable',
157
+ 'defaultPrevented',
158
+ 'preventDefault',
159
+ 'stopPropagation',
160
+ 'stopImmediatePropagation',
161
+ 'lengthComputable',
162
+ 'loaded',
163
+ 'total',
164
+ 'type',
165
+ 'currentTarget',
166
+ 'target',
167
+ 'srcElement',
168
+ 'NONE',
169
+ 'CAPTURING_PHASE',
170
+ 'AT_TARGET',
171
+ 'BUBBLING_PHASE',
172
+ 'eventPhase',
173
+ ])
174
+ .filter((name) => name in event)
175
+ .forEach((name) => {
176
+ const value = (event: any)[name];
177
+ if (value === oldTarget) {
178
+ newEvent[name] = newTarget;
179
+ } else if (typeof value === 'function') {
180
+ newEvent[name] = value.bind(event);
181
+ } else {
182
+ newEvent[name] = value;
183
+ }
184
+ });
67
185
  return newEvent;
68
186
  }
187
+
69
188
  function wrapEventListener(oldTarget, newTarget, listener) {
70
189
  return function (event) {
71
- return listener.call(newTarget, transformEvent(oldTarget, newTarget, event));
190
+ return listener.call(
191
+ newTarget,
192
+ transformEvent(oldTarget, newTarget, event)
193
+ );
72
194
  };
73
195
  }
196
+
74
197
  function findApplicableWrappers(wrappers, connection) {
75
- return (0, _filter.default)(wrappers, function (wrapper) {
198
+ return filter(wrappers, function (wrapper) {
76
199
  try {
77
200
  return wrapper.isRelevantTo(connection);
78
201
  } catch (e) {
@@ -80,16 +203,21 @@ function XHRProxyFactory(XHR, wrappers, opts) {
80
203
  }
81
204
  });
82
205
  }
206
+
83
207
  function XHRProxy() {
84
208
  this._wrappers = wrappers;
85
209
  this._listeners = {};
86
210
  this._boundListeners = {};
87
- this._events = new _events.default(); // used for internal stuff, not user-visible events
211
+ this._events = new EventEmitter(); // used for internal stuff, not user-visible events
88
212
  this.responseText = '';
89
213
  this._openState = false;
214
+
90
215
  if (XHR.bind && XHR.bind.apply) {
91
216
  // call constructor with variable number of arguments
92
- this._realxhr = new (XHR.bind.apply(XHR, [null].concat(arguments)))();
217
+ this._realxhr = new ((XHR: any).bind.apply(
218
+ XHR,
219
+ [null].concat(arguments)
220
+ ))();
93
221
  } else {
94
222
  // Safari's XMLHttpRequest lacks a bind method, but its constructor
95
223
  // doesn't support extra arguments anyway, so don't bother logging an
@@ -97,15 +225,20 @@ function XHRProxyFactory(XHR, wrappers, opts) {
97
225
  this._realxhr = new XHR();
98
226
  }
99
227
  const self = this;
228
+
100
229
  const triggerEventListeners = (name, event) => {
101
230
  if (this['on' + name]) {
102
231
  try {
103
- wrapEventListener(this._realxhr, this, this['on' + name]).call(this, event);
232
+ wrapEventListener(this._realxhr, this, this['on' + name]).call(
233
+ this,
234
+ event
235
+ );
104
236
  } catch (e) {
105
237
  logError(e, 'XMLHttpRequest event listener error');
106
238
  }
107
239
  }
108
- (0, _each.default)(this._boundListeners[name], boundListener => {
240
+
241
+ each(this._boundListeners[name], (boundListener) => {
109
242
  try {
110
243
  boundListener(event);
111
244
  } catch (e) {
@@ -113,51 +246,67 @@ function XHRProxyFactory(XHR, wrappers, opts) {
113
246
  }
114
247
  });
115
248
  };
116
- const runRscListeners = event => {
249
+
250
+ const runRscListeners = (event) => {
117
251
  triggerEventListeners('readystatechange', event);
118
252
  };
253
+
119
254
  this._fakeRscEvent = function () {
120
- runRscListeners(Object.freeze({
121
- bubbles: false,
122
- cancelBubble: false,
123
- cancelable: false,
124
- defaultPrevented: false,
125
- preventDefault: _noop.default,
126
- stopPropagation: _noop.default,
127
- stopImmediatePropagation: _noop.default,
128
- type: 'readystatechange',
129
- currentTarget: this,
130
- target: this,
131
- srcElement: this,
132
- NONE: 0,
133
- CAPTURING_PHASE: 1,
134
- AT_TARGET: 2,
135
- BUBBLING_PHASE: 3,
136
- eventPhase: 0
137
- }));
255
+ runRscListeners(
256
+ Object.freeze({
257
+ bubbles: false,
258
+ cancelBubble: false,
259
+ cancelable: false,
260
+ defaultPrevented: false,
261
+ preventDefault: noop,
262
+ stopPropagation: noop,
263
+ stopImmediatePropagation: noop,
264
+ type: 'readystatechange',
265
+ currentTarget: this,
266
+ target: this,
267
+ srcElement: this,
268
+ NONE: 0,
269
+ CAPTURING_PHASE: 1,
270
+ AT_TARGET: 2,
271
+ BUBBLING_PHASE: 3,
272
+ eventPhase: 0,
273
+ })
274
+ );
138
275
  };
139
- const deliverFinalRsc = event => {
276
+
277
+ const deliverFinalRsc = (event) => {
140
278
  this.readyState = 4;
141
279
  // Remember the status now before any event handlers are called, just in
142
280
  // case one aborts the request.
143
281
  var wasSuccess = this.status == 200;
144
- var progressEvent = Object.assign({}, transformEvent(this._realxhr, this, event), {
145
- lengthComputable: false,
146
- loaded: 0,
147
- total: 0
148
- });
149
- var supportsResponseText = !this._realxhr.responseType || this._realxhr.responseType == 'text';
282
+ var progressEvent = Object.assign(
283
+ {},
284
+ transformEvent(this._realxhr, this, event),
285
+ {
286
+ lengthComputable: false,
287
+ loaded: 0,
288
+ total: 0,
289
+ }
290
+ );
291
+
292
+ var supportsResponseText =
293
+ !this._realxhr.responseType || this._realxhr.responseType == 'text';
294
+
150
295
  if (supportsResponseText) {
151
- (0, _each.default)(this._activeWrappers, wrapper => {
296
+ each(this._activeWrappers, (wrapper) => {
152
297
  if (wrapper.finalResponseTextLogger) {
153
298
  try {
154
- wrapper.finalResponseTextLogger(this._connection, this.responseText);
299
+ wrapper.finalResponseTextLogger(
300
+ this._connection,
301
+ this.responseText
302
+ );
155
303
  } catch (e) {
156
304
  logError(e);
157
305
  }
158
306
  }
159
307
  });
160
308
  }
309
+
161
310
  runRscListeners(event);
162
311
  if (wasSuccess) {
163
312
  triggerEventListeners('load', progressEvent);
@@ -165,7 +314,8 @@ function XHRProxyFactory(XHR, wrappers, opts) {
165
314
  triggerEventListeners('error', progressEvent);
166
315
  }
167
316
  triggerEventListeners('loadend', progressEvent);
168
- (0, _each.default)(this._activeWrappers, wrapper => {
317
+
318
+ each(this._activeWrappers, (wrapper) => {
169
319
  if (wrapper.afterListeners) {
170
320
  try {
171
321
  wrapper.afterListeners(this._connection);
@@ -175,104 +325,156 @@ function XHRProxyFactory(XHR, wrappers, opts) {
175
325
  }
176
326
  });
177
327
  };
178
- this._realxhr.addEventListener('readystatechange', event => {
179
- if (!this._connection) {
180
- return;
181
- }
182
- if (this._realxhr.readyState >= 2) {
183
- this._connection.status = this._realxhr.status;
184
- }
185
- const supportsResponseText = !this._realxhr.responseType || this._realxhr.responseType == 'text';
186
-
187
- // Process the response text.
188
- if (this._realxhr.readyState == 4) {
189
- if (supportsResponseText) {
190
- Object.defineProperty(this._connection, 'originalResponseText', {
191
- enumerable: true,
192
- writable: false,
193
- configurable: false,
194
- value: self._realxhr.responseText
195
- });
196
- (0, _each.default)(this._activeWrappers, wrapper => {
197
- if (wrapper.originalResponseTextLogger) {
198
- try {
199
- wrapper.originalResponseTextLogger(this._connection, this._connection.originalResponseText);
200
- } catch (e) {
201
- logError(e);
202
- }
203
- }
204
- });
205
- const finish = (0, _once.default)(deliverFinalRsc.bind(null, event));
206
- if (this._connection.async) {
207
- // If the XHR object is re-used for another connection, then we need
208
- // to make sure that our upcoming async calls here do nothing.
209
- // Remember the current connection object, and do nothing in our async
210
- // calls if it no longer matches.
211
- const startConnection = this._connection;
212
- (async () => {
213
- let modifiedResponseText = startConnection.originalResponseText;
214
- startConnection.modifiedResponseText = modifiedResponseText;
215
- for (let responseTextChanger of this._responseTextChangers) {
216
- const longRunWarningTimer = setTimeout(() => {
217
- // eslint-disable-next-line no-console
218
- console.warn('responseTextChanger is taking too long', responseTextChanger, startConnection);
219
- }, WARNING_TIMEOUT);
328
+
329
+ this._realxhr.addEventListener(
330
+ 'readystatechange',
331
+ (event: Object) => {
332
+ if (!this._connection) {
333
+ return;
334
+ }
335
+ if (this._realxhr.readyState >= 2) {
336
+ this._connection.status = this._realxhr.status;
337
+ }
338
+
339
+ const supportsResponseText =
340
+ !this._realxhr.responseType || this._realxhr.responseType == 'text';
341
+
342
+ // Process the response text.
343
+ if (this._realxhr.readyState == 4) {
344
+ if (supportsResponseText) {
345
+ Object.defineProperty(this._connection, 'originalResponseText', {
346
+ enumerable: true,
347
+ writable: false,
348
+ configurable: false,
349
+ value: self._realxhr.responseText,
350
+ });
351
+
352
+ each(this._activeWrappers, (wrapper) => {
353
+ if (wrapper.originalResponseTextLogger) {
220
354
  try {
221
- modifiedResponseText = await responseTextChanger(startConnection, modifiedResponseText);
222
- } finally {
223
- clearTimeout(longRunWarningTimer);
224
- }
225
- if (typeof modifiedResponseText !== 'string') {
226
- throw new Error('responseTextChanger returned non-string value ' + modifiedResponseText);
355
+ wrapper.originalResponseTextLogger(
356
+ this._connection,
357
+ this._connection.originalResponseText
358
+ );
359
+ } catch (e) {
360
+ logError(e);
227
361
  }
228
- startConnection.modifiedResponseText = modifiedResponseText;
229
- if (startConnection !== this._connection) break;
230
362
  }
231
- return modifiedResponseText;
232
- })().then(modifiedResponseText => {
233
- if (startConnection === self._connection) {
234
- this.responseText = modifiedResponseText;
235
- finish();
236
- }
237
- }, err => {
238
- logError(err);
239
- if (startConnection === this._connection) {
240
- this.responseText = this._realxhr.responseText;
241
- finish();
242
- }
243
- }).catch(logError);
244
- return;
363
+ });
364
+
365
+ const finish = once(deliverFinalRsc.bind(null, event));
366
+ if (this._connection.async) {
367
+ // If the XHR object is re-used for another connection, then we need
368
+ // to make sure that our upcoming async calls here do nothing.
369
+ // Remember the current connection object, and do nothing in our async
370
+ // calls if it no longer matches.
371
+ const startConnection = this._connection;
372
+
373
+ (async () => {
374
+ let modifiedResponseText: string =
375
+ startConnection.originalResponseText;
376
+ startConnection.modifiedResponseText = modifiedResponseText;
377
+
378
+ for (let responseTextChanger of this._responseTextChangers) {
379
+ const longRunWarningTimer = setTimeout(() => {
380
+ // eslint-disable-next-line no-console
381
+ console.warn(
382
+ 'responseTextChanger is taking too long',
383
+ responseTextChanger,
384
+ startConnection
385
+ );
386
+ }, WARNING_TIMEOUT);
387
+ try {
388
+ modifiedResponseText = await responseTextChanger(
389
+ startConnection,
390
+ modifiedResponseText
391
+ );
392
+ } finally {
393
+ clearTimeout(longRunWarningTimer);
394
+ }
395
+ if (typeof modifiedResponseText !== 'string') {
396
+ throw new Error(
397
+ 'responseTextChanger returned non-string value ' +
398
+ modifiedResponseText
399
+ );
400
+ }
401
+ startConnection.modifiedResponseText = modifiedResponseText;
402
+
403
+ if (startConnection !== this._connection) break;
404
+ }
405
+
406
+ return modifiedResponseText;
407
+ })()
408
+ .then(
409
+ (modifiedResponseText) => {
410
+ if (startConnection === self._connection) {
411
+ this.responseText = modifiedResponseText;
412
+ finish();
413
+ }
414
+ },
415
+ (err) => {
416
+ logError(err);
417
+ if (startConnection === this._connection) {
418
+ this.responseText = this._realxhr.responseText;
419
+ finish();
420
+ }
421
+ }
422
+ )
423
+ .catch(logError);
424
+ return;
425
+ } else {
426
+ self.responseText = self._realxhr.responseText;
427
+ }
245
428
  } else {
246
- self.responseText = self._realxhr.responseText;
429
+ self.responseText = '';
247
430
  }
431
+
432
+ deliverFinalRsc(event);
248
433
  } else {
249
- self.responseText = '';
250
- }
251
- deliverFinalRsc(event);
252
- } else {
253
- if (self._realxhr.readyState == 1 && self.readyState == 1) {
254
- // Delayed open+send just happened. We already delivered an event
255
- // for this, so drop this event.
256
- return;
257
- } else if (self._realxhr.readyState >= 3 && supportsResponseText) {
258
- if (self._responseTextChangers.length) {
259
- // If we're going to transform the final response, then we don't
260
- // want to expose any partial untransformed responses and we don't
261
- // want to bother trying to transform partial responses. Only show
262
- // an empty string as the loaded response until the connection is
263
- // done.
264
- self.responseText = '';
434
+ if (self._realxhr.readyState == 1 && self.readyState == 1) {
435
+ // Delayed open+send just happened. We already delivered an event
436
+ // for this, so drop this event.
437
+ return;
438
+ } else if (self._realxhr.readyState >= 3 && supportsResponseText) {
439
+ if (self._responseTextChangers.length) {
440
+ // If we're going to transform the final response, then we don't
441
+ // want to expose any partial untransformed responses and we don't
442
+ // want to bother trying to transform partial responses. Only show
443
+ // an empty string as the loaded response until the connection is
444
+ // done.
445
+ self.responseText = '';
446
+ } else {
447
+ self.responseText = self._realxhr.responseText;
448
+ }
265
449
  } else {
266
- self.responseText = self._realxhr.responseText;
450
+ self.responseText = '';
267
451
  }
268
- } else {
269
- self.responseText = '';
452
+
453
+ self.readyState = self._realxhr.readyState;
454
+ runRscListeners(event);
270
455
  }
271
- self.readyState = self._realxhr.readyState;
272
- runRscListeners(event);
273
- }
274
- }, false);
275
- ['dispatchEvent', 'getAllResponseHeaders', 'getResponseHeader', 'overrideMimeType', 'responseType', 'responseXML', 'responseURL', 'status', 'statusText', 'timeout', 'ontimeout', 'onloadstart', 'onprogress', 'onabort', 'upload', 'withCredentials'].forEach(function (prop) {
456
+ },
457
+ false
458
+ );
459
+
460
+ [
461
+ 'dispatchEvent',
462
+ 'getAllResponseHeaders',
463
+ 'getResponseHeader',
464
+ 'overrideMimeType',
465
+ 'responseType',
466
+ 'responseXML',
467
+ 'responseURL',
468
+ 'status',
469
+ 'statusText',
470
+ 'timeout',
471
+ 'ontimeout',
472
+ 'onloadstart',
473
+ 'onprogress',
474
+ 'onabort',
475
+ 'upload',
476
+ 'withCredentials',
477
+ ].forEach(function (prop) {
276
478
  Object.defineProperty(self, prop, {
277
479
  enumerable: true,
278
480
  configurable: false,
@@ -289,23 +491,29 @@ function XHRProxyFactory(XHR, wrappers, opts) {
289
491
  v = wrapEventListener(this._realxhr, this, v);
290
492
  }
291
493
  self._realxhr[prop] = v;
292
- }
494
+ },
293
495
  });
294
496
  });
295
- Object.defineProperty(self, 'response', {
497
+
498
+ (Object: any).defineProperty(self, 'response', {
296
499
  enumerable: true,
297
500
  configurable: false,
298
501
  get: function () {
299
- if (!this._realxhr.responseType || this._realxhr.responseType == 'text') {
502
+ if (
503
+ !this._realxhr.responseType ||
504
+ this._realxhr.responseType == 'text'
505
+ ) {
300
506
  return this.responseText;
301
507
  } else {
302
508
  // We're not trying to transform non-text responses currently.
303
509
  return this._realxhr.response;
304
510
  }
305
- }
511
+ },
306
512
  });
513
+
307
514
  self.readyState = self._realxhr.readyState;
308
515
  }
516
+
309
517
  XHRProxy.prototype.abort = function () {
310
518
  // Important: If the request has already been sent, the XHR will change
311
519
  // its readyState to 4 after abort. However, we sometimes asynchronously
@@ -321,16 +529,21 @@ function XHRProxyFactory(XHR, wrappers, opts) {
321
529
  }
322
530
  this._realxhr.abort();
323
531
  };
532
+
324
533
  XHRProxy.prototype.setRequestHeader = function (name, value) {
325
534
  var self = this;
326
535
  if (this.readyState != 1) {
327
536
  // eslint-disable-next-line no-console
328
- console.warn('setRequestHeader improperly called at readyState ' + this.readyState);
537
+ console.warn(
538
+ 'setRequestHeader improperly called at readyState ' + this.readyState
539
+ );
329
540
  }
330
541
  if (!this._openState) {
331
542
  throw new Error('Can only set headers after open and before send');
332
543
  }
544
+
333
545
  this._connection.headers[name] = value;
546
+
334
547
  if (this._connection.async && this._requestChangers.length) {
335
548
  this._events.once('realOpen', function () {
336
549
  self._realxhr.setRequestHeader(name, value);
@@ -339,22 +552,24 @@ function XHRProxyFactory(XHR, wrappers, opts) {
339
552
  this._realxhr.setRequestHeader(name, value);
340
553
  }
341
554
  };
555
+
342
556
  XHRProxy.prototype.addEventListener = function (name, listener) {
343
557
  if (!this._listeners[name]) {
344
558
  this._listeners[name] = [];
345
559
  this._boundListeners[name] = [];
346
560
  }
347
- if (!(0, _includes.default)(this._listeners[name], listener)) {
561
+ if (!includes(this._listeners[name], listener)) {
348
562
  var boundListener = wrapEventListener(this._realxhr, this, listener);
349
563
  this._listeners[name].push(listener);
350
564
  this._boundListeners[name].push(boundListener);
351
- if (!(0, _includes.default)(['readystatechange', 'load', 'error', 'loadend'], name)) {
565
+ if (!includes(['readystatechange', 'load', 'error', 'loadend'], name)) {
352
566
  // certain listeners are called manually so that the final
353
567
  // call (when readyState==4) can be delayed.
354
568
  this._realxhr.addEventListener(name, boundListener, false);
355
569
  }
356
570
  }
357
571
  };
572
+
358
573
  XHRProxy.prototype.removeEventListener = function (name, listener) {
359
574
  if (!this._listeners[name]) {
360
575
  return;
@@ -369,34 +584,48 @@ function XHRProxyFactory(XHR, wrappers, opts) {
369
584
  this._realxhr.removeEventListener(name, boundListener, false);
370
585
  }
371
586
  };
587
+
372
588
  XHRProxy.prototype.open = function (method, url, async) {
373
589
  // Work around MailTrack issue
374
590
  if (!(this instanceof XHRProxy)) {
375
591
  return XHR.prototype.open.apply(this, arguments);
376
592
  }
593
+
377
594
  var self = this;
378
595
  this._connection = {
379
596
  method: method,
380
597
  url: url,
381
- params: (0, _querystring.parse)(url.split('?')[1] || ''),
598
+ params: deparam(url.split('?')[1] || ''),
382
599
  headers: {},
383
- async: arguments.length < 3 || !!async
600
+ async: arguments.length < 3 || !!async,
384
601
  };
385
602
  this._clientStartedSend = false;
386
603
  this._realStartedSend = false;
387
- this._activeWrappers = findApplicableWrappers(this._wrappers, this._connection);
388
- this._responseTextChangers = this._activeWrappers.map(function (wrapper) {
389
- return wrapper.responseTextChanger && wrapper.responseTextChanger.bind(wrapper);
390
- }).filter(Boolean);
604
+ this._activeWrappers = findApplicableWrappers(
605
+ this._wrappers,
606
+ this._connection
607
+ );
608
+ this._responseTextChangers = this._activeWrappers
609
+ .map(function (wrapper) {
610
+ return (
611
+ wrapper.responseTextChanger &&
612
+ wrapper.responseTextChanger.bind(wrapper)
613
+ );
614
+ })
615
+ .filter(Boolean);
391
616
  this.responseText = '';
392
617
  this._openState = true;
618
+
393
619
  function finish(method, url) {
394
620
  return self._realxhr.open(method, url, self._connection.async);
395
621
  }
622
+
396
623
  if (this._connection.async) {
397
- this._requestChangers = this._activeWrappers.map(function (wrapper) {
398
- return wrapper.requestChanger && wrapper.requestChanger.bind(wrapper);
399
- }).filter(Boolean);
624
+ this._requestChangers = this._activeWrappers
625
+ .map(function (wrapper) {
626
+ return wrapper.requestChanger && wrapper.requestChanger.bind(wrapper);
627
+ })
628
+ .filter(Boolean);
400
629
  if (this._requestChangers.length) {
401
630
  if (this.readyState != 1) {
402
631
  this.readyState = 1;
@@ -409,6 +638,7 @@ function XHRProxyFactory(XHR, wrappers, opts) {
409
638
  finish(method, url);
410
639
  }
411
640
  };
641
+
412
642
  XHRProxy.prototype.send = function (body) {
413
643
  var self = this;
414
644
  this._clientStartedSend = true;
@@ -417,10 +647,11 @@ function XHRProxyFactory(XHR, wrappers, opts) {
417
647
  enumerable: true,
418
648
  writable: false,
419
649
  configurable: false,
420
- value: body
650
+ value: body,
421
651
  });
422
652
  this._connection.responseType = this._realxhr.responseType || 'text';
423
- (0, _each.default)(self._activeWrappers, function (wrapper) {
653
+
654
+ each(self._activeWrappers, function (wrapper) {
424
655
  if (wrapper.originalSendBodyLogger) {
425
656
  try {
426
657
  wrapper.originalSendBodyLogger(self._connection, body);
@@ -429,61 +660,80 @@ function XHRProxyFactory(XHR, wrappers, opts) {
429
660
  }
430
661
  }
431
662
  });
663
+
432
664
  function finish(body) {
433
665
  self._realStartedSend = true;
434
666
  self._realxhr.send(body);
435
667
  }
668
+
436
669
  if (this._connection.async && this._requestChangers.length) {
437
670
  // If the XHR object is re-used for another connection, then we need
438
671
  // to make sure that our upcoming async calls here do nothing.
439
672
  // Remember the current connection object, and do nothing in our async
440
673
  // calls if it no longer matches. Also check for aborts.
441
674
  const startConnection = this._connection;
675
+
442
676
  const request = {
443
677
  method: this._connection.method,
444
678
  url: this._connection.url,
445
- body: body
679
+ body: body,
446
680
  };
681
+
447
682
  (async () => {
448
683
  let modifiedRequest = request;
449
684
  for (let requestChanger of this._requestChangers) {
450
685
  const longRunWarningTimer = setTimeout(() => {
451
686
  // eslint-disable-next-line no-console
452
- console.warn('requestChanger is taking too long', requestChanger, startConnection);
687
+ console.warn(
688
+ 'requestChanger is taking too long',
689
+ requestChanger,
690
+ startConnection
691
+ );
453
692
  }, WARNING_TIMEOUT);
454
693
  try {
455
- modifiedRequest = await requestChanger(this._connection, Object.freeze(modifiedRequest));
694
+ modifiedRequest = await requestChanger(
695
+ this._connection,
696
+ Object.freeze(modifiedRequest)
697
+ );
456
698
  } finally {
457
699
  clearTimeout(longRunWarningTimer);
458
700
  }
459
- (0, _assert.default)((0, _has.default)(modifiedRequest, 'method'), 'modifiedRequest has method');
460
- (0, _assert.default)((0, _has.default)(modifiedRequest, 'url'), 'modifiedRequest has url');
461
- (0, _assert.default)((0, _has.default)(modifiedRequest, 'body'), 'modifiedRequest has body');
462
- if (startConnection !== this._connection || this._realStartedSend) break;
701
+
702
+ assert(has(modifiedRequest, 'method'), 'modifiedRequest has method');
703
+ assert(has(modifiedRequest, 'url'), 'modifiedRequest has url');
704
+ assert(has(modifiedRequest, 'body'), 'modifiedRequest has body');
705
+
706
+ if (startConnection !== this._connection || this._realStartedSend)
707
+ break;
463
708
  }
709
+
464
710
  return modifiedRequest;
465
- })().catch(err => {
466
- logError(err);
467
- return request;
468
- }).then(modifiedRequest => {
469
- if (startConnection === this._connection && !this._realStartedSend) {
470
- this._realxhr.open(modifiedRequest.method, modifiedRequest.url);
471
- this._events.emit('realOpen');
472
- finish(modifiedRequest.body);
473
- }
474
- });
711
+ })()
712
+ .catch((err) => {
713
+ logError(err);
714
+ return request;
715
+ })
716
+ .then((modifiedRequest) => {
717
+ if (startConnection === this._connection && !this._realStartedSend) {
718
+ this._realxhr.open(modifiedRequest.method, modifiedRequest.url);
719
+ this._events.emit('realOpen');
720
+ finish(modifiedRequest.body);
721
+ }
722
+ });
475
723
  } else {
476
724
  finish(body);
477
725
  }
478
726
  };
727
+
479
728
  [XHRProxy, XHRProxy.prototype].forEach(function (obj) {
480
729
  Object.assign(obj, {
481
730
  UNSENT: 0,
482
731
  OPENED: 1,
483
732
  HEADERS_RECEIVED: 2,
484
733
  LOADING: 3,
485
- DONE: 4
734
+ DONE: 4,
486
735
  });
487
736
  });
488
- return XHRProxy;
489
- }
737
+
738
+ return (XHRProxy: any);
739
+ }