@inboxsdk/core 0.2.28-alpha.3 → 0.2.28-alpha.5

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 (398) hide show
  1. package/inboxsdk.js +1 -1
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +5 -1
  4. package/src/build/exec.js +26 -0
  5. package/src/build/spawn.js +17 -0
  6. package/src/common/ajax.js +90 -0
  7. package/src/common/cachebust-url.js +10 -0
  8. package/src/common/censorHTMLstring.js +37 -0
  9. package/src/common/censorHTMLtree.js +28 -0
  10. package/src/common/censorJSONTree.js +15 -0
  11. package/src/common/connectivity-test.js +21 -0
  12. package/src/common/defer.js +11 -0
  13. package/src/common/find-parent.js +10 -0
  14. package/src/common/get-extension-id.js +7 -0
  15. package/src/common/get-or-fail.js +8 -0
  16. package/src/common/get-session-id.js +14 -0
  17. package/src/common/get-stack-trace.js +6 -0
  18. package/src/common/html-to-text.js +7 -0
  19. package/src/common/isElementVisible.js +6 -0
  20. package/src/common/load-script.js +127 -0
  21. package/src/common/log-error.js +191 -0
  22. package/src/common/quoted-split.js +18 -0
  23. package/src/common/rate-limit-queuer.js +57 -0
  24. package/src/common/rate-limit.js +14 -0
  25. package/src/common/version.js +6 -0
  26. package/src/inboxsdk-js/check-requirements.js +7 -3
  27. package/src/inboxsdk-js/header.js +1 -0
  28. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  30. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  31. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  32. package/src/inboxsdk-js/inboxsdk.js +33 -39
  33. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  34. package/src/inboxsdk-js/loading/platform-implementation-loader.js +27 -0
  35. package/src/injected-js/gmail/constants.js +2 -0
  36. package/src/injected-js/gmail/modify-suggestions.js +106 -0
  37. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  38. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  39. package/src/injected-js/gmail/setup-gmonkey-handler.js +49 -0
  40. package/src/injected-js/gmail/sync-compose-processor-20220909.js +298 -0
  41. package/src/injected-js/gmail/sync-compose-processor.js +55 -0
  42. package/src/injected-js/gmail/sync-compose-request-processor.js +110 -0
  43. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  44. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  45. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  46. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  47. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  48. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  49. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  50. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  51. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  52. package/src/injected-js/injected-logger.js +50 -0
  53. package/src/injected-js/main.js +11 -24
  54. package/src/injected-js/message-metadata-holder.js +52 -82
  55. package/src/injected-js/setup-data-exposer.js +89 -148
  56. package/src/injected-js/setup-error-silencer.js +21 -21
  57. package/src/injected-js/setup-event-reemitter.js +30 -22
  58. package/src/injected-js/setupCustomViewEventAssassin.js +90 -0
  59. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  60. package/src/injected-js/setupPushStateListener.js +18 -11
  61. package/src/injected-js/xhr-helper.js +62 -65
  62. package/src/injected-js/xhr-proxy-factory.js +195 -445
  63. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  64. package/src/platform-implementation-js/constants/nav-item-types.js +19 -0
  65. package/src/platform-implementation-js/constants/router.js +14 -9
  66. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  67. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  68. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  69. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +21 -0
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +28 -0
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +98 -0
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +4 -0
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +8 -0
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +12 -0
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +33 -0
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +4 -0
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +44 -0
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  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 +44 -67
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +95 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +38 -0
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +12 -0
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +253 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +200 -0
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +533 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +289 -0
  115. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +21 -0
  116. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  117. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +28 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +19 -0
  119. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +126 -0
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  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 +391 -797
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  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 +188 -541
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +101 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +38 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +28 -0
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +22 -0
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +233 -0
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +223 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +157 -0
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +109 -0
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +5 -0
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +759 -0
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +84 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +33 -0
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +325 -0
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +58 -0
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +55 -0
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +96 -0
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +30 -0
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +10 -0
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +22 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  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 +24 -35
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +17 -0
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +33 -0
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +49 -0
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.js +65 -0
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.js +16 -0
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  271. package/src/platform-implementation-js/driver-common/update-icon.js +90 -0
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  273. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  274. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  275. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  276. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  277. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  278. package/src/platform-implementation-js/lib/ErrorCollector.js +47 -0
  279. package/src/platform-implementation-js/lib/Membrane.js +22 -0
  280. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +30 -0
  281. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  283. package/src/platform-implementation-js/lib/attemptWithRetries.js +16 -0
  284. package/src/platform-implementation-js/lib/common-page-communicator.js +137 -0
  285. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  286. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  287. package/src/platform-implementation-js/lib/delay-asap.js +12 -0
  288. package/src/platform-implementation-js/lib/delay-idle.js +16 -0
  289. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +36 -0
  290. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  291. package/src/platform-implementation-js/lib/dom/generic-button-view.js +39 -0
  292. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +39 -0
  293. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  294. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +38 -0
  295. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  296. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  297. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +12 -0
  298. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +79 -0
  299. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +28 -0
  300. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +15 -0
  301. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +15 -0
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +5 -0
  303. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  304. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +39 -0
  305. package/src/platform-implementation-js/lib/dom/parentNodes.js +8 -0
  306. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  307. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +6 -0
  308. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +22 -0
  309. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  310. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  311. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  312. package/src/platform-implementation-js/lib/dom/simulate-key.js +46 -0
  313. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +16 -0
  314. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +7 -0
  315. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +25 -0
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  317. package/src/platform-implementation-js/lib/fake-window-resize.js +5 -0
  318. package/src/platform-implementation-js/lib/from-event-target-capture.js +12 -0
  319. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +10 -0
  320. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  321. package/src/platform-implementation-js/lib/handler-registry.js +67 -0
  322. package/src/platform-implementation-js/lib/idMap.js +45 -0
  323. package/src/platform-implementation-js/lib/imageRequest.js +8 -0
  324. package/src/platform-implementation-js/lib/incrementName.js +7 -0
  325. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +14 -0
  326. package/src/platform-implementation-js/lib/inject-script.js +33 -0
  327. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  328. package/src/platform-implementation-js/lib/is-valid-app-id.js +27 -0
  329. package/src/platform-implementation-js/lib/is-valid-email.js +14 -0
  330. package/src/platform-implementation-js/lib/isNotNil.js +5 -0
  331. package/src/platform-implementation-js/lib/isStreakAppId.js +11 -0
  332. package/src/platform-implementation-js/lib/logger.js +441 -0
  333. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  334. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  335. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  337. package/src/platform-implementation-js/lib/persistent-queue.js +107 -0
  338. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  339. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  340. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  341. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  343. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  345. package/src/platform-implementation-js/lib/safe-event-emitter.js +17 -0
  346. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  347. package/src/platform-implementation-js/lib/stopper-pool.js +41 -0
  348. package/src/platform-implementation-js/lib/stream-wait-for.js +30 -0
  349. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  350. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  351. package/src/platform-implementation-js/lib/wait-for.js +28 -0
  352. package/src/platform-implementation-js/lib/waitForAsync.js +19 -0
  353. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  354. package/src/platform-implementation-js/main.js +9 -24
  355. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -1
  356. package/src/platform-implementation-js/namespaces/app-menu.js +31 -0
  357. package/src/platform-implementation-js/namespaces/butter-bar.js +163 -0
  358. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  359. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  360. package/src/platform-implementation-js/namespaces/global.js +27 -39
  361. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  362. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  363. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  364. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  365. package/src/platform-implementation-js/namespaces/router.js +70 -137
  366. package/src/platform-implementation-js/namespaces/search.js +19 -17
  367. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  368. package/src/platform-implementation-js/namespaces/user.js +36 -37
  369. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  370. package/src/platform-implementation-js/platform-implementation.js +98 -229
  371. package/src/platform-implementation-js/views/SimpleElementView.js +16 -0
  372. package/src/platform-implementation-js/views/app-menu-item-view.js +257 -0
  373. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  374. package/src/platform-implementation-js/views/collapsible-panel-view.js +222 -0
  375. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  376. package/src/platform-implementation-js/views/compose-button-view.js +45 -0
  377. package/src/platform-implementation-js/views/compose-view.js +312 -0
  378. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  379. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  380. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  381. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  382. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  383. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +14 -0
  384. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  385. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  386. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  387. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  388. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  389. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  390. package/src/platform-implementation-js/views/section-view.js +60 -52
  391. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  392. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +39 -0
  393. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +98 -0
  394. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +122 -0
  395. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  396. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  397. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  398. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,8 +1,9 @@
1
+ "use strict";
2
+
1
3
  /* eslint-disable flowtype/require-valid-file-annotation, no-undef */
2
4
 
3
5
  if (!global.__InboxSDKInjected) {
4
6
  global.__InboxSDKInjected = true;
5
-
6
7
  const logger = require('./injected-logger');
7
8
  let oldDefine;
8
9
  try {
@@ -17,29 +18,16 @@ if (!global.__InboxSDKInjected) {
17
18
  const setupDataExposer = require('./setup-data-exposer').default;
18
19
  const setupEventReemitter = require('./setup-event-reemitter').default;
19
20
  const setupErrorSilencer = require('./setup-error-silencer').default;
20
- const setupCustomViewEventAssassin =
21
- require('./setupCustomViewEventAssassin').default;
21
+ const setupCustomViewEventAssassin = require('./setupCustomViewEventAssassin').default;
22
22
  const setupPushStateListener = require('./setupPushStateListener').default;
23
- const setupInboxCustomViewLinkFixer =
24
- require('./setupInboxCustomViewLinkFixer').default;
25
-
23
+ const setupInboxCustomViewLinkFixer = require('./setupInboxCustomViewLinkFixer').default;
26
24
  const gmailInterceptor = require('./gmail/setup-gmail-interceptor').default;
27
- const setupGmonkeyHandler =
28
- require('./gmail/setup-gmonkey-handler').default;
29
-
30
- const setupClickAndGetNewIframeSrc =
31
- require('./inbox/setupClickAndGetNewIframeSrc').default;
32
- const setupInboxFakeWindowResizeListener =
33
- require('./inbox/setupInboxFakeWindowResizeListener').default;
34
- const setupComposeViewDraftIDFinder =
35
- require('./inbox/setupComposeViewDraftIDFinder').default;
36
- const setupInboxAjaxInterceptor =
37
- require('./inbox/setupAjaxInterceptor').default;
38
-
39
- const pageOrigin: string =
40
- (process.env.NODE_ENV === 'test' && global.__test_origin) ||
41
- document.location.origin;
42
-
25
+ const setupGmonkeyHandler = require('./gmail/setup-gmonkey-handler').default;
26
+ const setupClickAndGetNewIframeSrc = require('./inbox/setupClickAndGetNewIframeSrc').default;
27
+ const setupInboxFakeWindowResizeListener = require('./inbox/setupInboxFakeWindowResizeListener').default;
28
+ const setupComposeViewDraftIDFinder = require('./inbox/setupComposeViewDraftIDFinder').default;
29
+ const setupInboxAjaxInterceptor = require('./inbox/setupAjaxInterceptor').default;
30
+ const pageOrigin = process.env.NODE_ENV === 'test' && global.__test_origin || document.location.origin;
43
31
  if (pageOrigin === 'https://mail.google.com') {
44
32
  gmailInterceptor();
45
33
  setupGmonkeyHandler();
@@ -51,7 +39,6 @@ if (!global.__InboxSDKInjected) {
51
39
  } else {
52
40
  throw new Error('Should not happen');
53
41
  }
54
-
55
42
  extCorbWorkaroundPageWorld.init();
56
43
  xhrHelper();
57
44
  setupDataExposer();
@@ -67,4 +54,4 @@ if (!global.__InboxSDKInjected) {
67
54
  define = oldDefine;
68
55
  }
69
56
  }
70
- }
57
+ }
@@ -1,50 +1,46 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import querystring from 'querystring';
4
- import startsWith from 'lodash/startsWith';
5
- import type { Message } from '../platform-implementation-js/dom-driver/gmail/gmail-response-processor';
6
- import { extractMessages } from '../platform-implementation-js/dom-driver/gmail/gmail-response-processor';
7
- import { getThreadFromSyncThreadIdUsingHeaders } from '../platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId';
8
- import * as logger from './injected-logger';
9
- import requestGmailThread from '../platform-implementation-js/driver-common/requestGmailThread';
10
-
11
- const threadIdToMessages: Map<string, Message[]> = new Map();
12
-
13
- export function setup() {
14
- document.addEventListener(
15
- 'inboxSDKtellMeThisMessageDate',
16
- function (event: Object) {
17
- exposeMetadata(event, 'data-inboxsdk-sortdate', (m) => m.date);
18
- }
19
- );
20
-
21
- document.addEventListener(
22
- 'inboxSDKtellMeThisMessageRecipients',
23
- function (event: Object) {
24
- exposeMetadata(event, 'data-inboxsdk-recipients', (m) => {
25
- if (m.recipients) return m.recipients;
26
- else return null;
27
- });
28
- }
29
- );
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.add = add;
8
+ exports.setup = setup;
9
+ var _querystring = _interopRequireDefault(require("querystring"));
10
+ var _startsWith = _interopRequireDefault(require("lodash/startsWith"));
11
+ var _gmailResponseProcessor = require("../platform-implementation-js/dom-driver/gmail/gmail-response-processor");
12
+ var _getSyncThreadFromSyncThreadId = require("../platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId");
13
+ var logger = _interopRequireWildcard(require("./injected-logger"));
14
+ var _requestGmailThread = _interopRequireDefault(require("../platform-implementation-js/driver-common/requestGmailThread"));
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ const threadIdToMessages = new Map();
18
+ function setup() {
19
+ document.addEventListener('inboxSDKtellMeThisMessageDate', function (event) {
20
+ exposeMetadata(event, 'data-inboxsdk-sortdate', m => m.date);
21
+ });
22
+ document.addEventListener('inboxSDKtellMeThisMessageRecipients', function (event) {
23
+ exposeMetadata(event, 'data-inboxsdk-recipients', m => {
24
+ if (m.recipients) return m.recipients;else return null;
25
+ });
26
+ });
30
27
  }
31
-
32
28
  function exposeMetadata(event, attribute, processor) {
33
29
  const {
34
30
  target,
35
- detail: { threadId, ikValue, btaiHeader, xsrfToken },
31
+ detail: {
32
+ threadId,
33
+ ikValue,
34
+ btaiHeader,
35
+ xsrfToken
36
+ }
36
37
  } = event;
37
-
38
38
  (async () => {
39
- const messageIndex = Array.from(target.parentElement.children)
40
- .filter((el) => !el.classList.contains('inboxsdk__custom_message_view'))
41
- .indexOf(target);
39
+ const messageIndex = Array.from(target.parentElement.children).filter(el => !el.classList.contains('inboxsdk__custom_message_view')).indexOf(target);
42
40
  if (messageIndex < 0) {
43
41
  throw new Error('Should not happen');
44
42
  }
45
-
46
43
  let message = getMessage(threadId, messageIndex);
47
-
48
44
  if (message == null || !message.recipients) {
49
45
  try {
50
46
  await addDataForThread(threadId, ikValue, btaiHeader, xsrfToken);
@@ -53,20 +49,16 @@ function exposeMetadata(event, attribute, processor) {
53
49
  }
54
50
  message = getMessage(threadId, messageIndex);
55
51
  if (message == null) {
56
- throw new Error(
57
- 'Failed to find message date after re-requesting thread'
58
- );
52
+ throw new Error('Failed to find message date after re-requesting thread');
59
53
  }
60
54
  }
61
-
62
55
  target.setAttribute(attribute, JSON.stringify(processor(message)));
63
- })().catch((err) => {
56
+ })().catch(err => {
64
57
  target.setAttribute(attribute, 'error');
65
58
  logger.error(err);
66
59
  });
67
60
  }
68
-
69
- function getMessage(threadId: string, messageIndex: number): ?Message {
61
+ function getMessage(threadId, messageIndex) {
70
62
  const messages = threadIdToMessages.get(threadId);
71
63
  if (messages) {
72
64
  const message = messages[messageIndex];
@@ -75,59 +67,38 @@ function getMessage(threadId: string, messageIndex: number): ?Message {
75
67
  }
76
68
  }
77
69
  }
78
-
79
- export function add(
80
- groupedMessages: Array<{ threadID: string, messages: Message[] }>
81
- ) {
82
- groupedMessages.forEach((group) => {
70
+ function add(groupedMessages) {
71
+ groupedMessages.forEach(group => {
83
72
  threadIdToMessages.set(group.threadID, group.messages);
84
73
  });
85
74
  }
86
-
87
- const activeThreadRequestPromises: Map<string, Promise<void>> = new Map();
88
-
89
- function addDataForThread(
90
- threadId: string,
91
- ikValue: string,
92
- btaiHeader: ?string,
93
- xsrfToken: ?string
94
- ): Promise<void> {
75
+ const activeThreadRequestPromises = new Map();
76
+ function addDataForThread(threadId, ikValue, btaiHeader, xsrfToken) {
95
77
  const existingRequestPromise = activeThreadRequestPromises.get(threadId);
96
78
  if (existingRequestPromise) {
97
79
  return existingRequestPromise;
98
80
  }
99
-
100
81
  const newPromise = (async () => {
101
82
  try {
102
- if (startsWith(threadId, 'thread')) {
83
+ if ((0, _startsWith.default)(threadId, 'thread')) {
103
84
  // new data layer
104
85
  if (!btaiHeader || !xsrfToken) {
105
- throw new Error(
106
- 'Need btaiHeader and xsrfToken when in new data layer'
107
- );
86
+ throw new Error('Need btaiHeader and xsrfToken when in new data layer');
108
87
  }
109
- const syncThread = await getThreadFromSyncThreadIdUsingHeaders(
110
- threadId,
111
- btaiHeader,
112
- xsrfToken
113
- );
88
+ const syncThread = await (0, _getSyncThreadFromSyncThreadId.getThreadFromSyncThreadIdUsingHeaders)(threadId, btaiHeader, xsrfToken);
114
89
  if (syncThread) {
115
- add([
116
- {
117
- threadID: syncThread.syncThreadID,
118
- messages: syncThread.extraMetaData.syncMessageData.map(
119
- (syncMessage) => ({
120
- date: syncMessage.date,
121
- recipients: syncMessage.recipients,
122
- })
123
- ),
124
- },
125
- ]);
90
+ add([{
91
+ threadID: syncThread.syncThreadID,
92
+ messages: syncThread.extraMetaData.syncMessageData.map(syncMessage => ({
93
+ date: syncMessage.date,
94
+ recipients: syncMessage.recipients
95
+ }))
96
+ }]);
126
97
  }
127
98
  } else {
128
99
  // legacy gmail
129
- const text = await requestGmailThread(ikValue, threadId);
130
- add(extractMessages(text));
100
+ const text = await (0, _requestGmailThread.default)(ikValue, threadId);
101
+ add((0, _gmailResponseProcessor.extractMessages)(text));
131
102
  }
132
103
  } catch (err) {
133
104
  logger.error(err);
@@ -135,7 +106,6 @@ function addDataForThread(
135
106
  activeThreadRequestPromises.delete(threadId);
136
107
  }
137
108
  })();
138
-
139
109
  activeThreadRequestPromises.set(threadId, newPromise);
140
110
  return newPromise;
141
- }
111
+ }
@@ -1,13 +1,16 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import find from 'lodash/find';
4
- import * as logger from './injected-logger';
5
- import waitFor from '../platform-implementation-js/lib/wait-for';
6
-
7
- declare var GLOBALS: any[];
8
- declare var gbar: { _CONFIG: any[] };
9
-
10
- function stupidToBool(stupid: any): boolean {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = setupDataExposer;
8
+ var _find = _interopRequireDefault(require("lodash/find"));
9
+ var logger = _interopRequireWildcard(require("./injected-logger"));
10
+ var _waitFor = _interopRequireDefault(require("../platform-implementation-js/lib/wait-for"));
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ function stupidToBool(stupid) {
11
14
  switch ('' + stupid) {
12
15
  case '1':
13
16
  case 't':
@@ -17,12 +20,10 @@ function stupidToBool(stupid: any): boolean {
17
20
  return false;
18
21
  }
19
22
  }
20
-
21
- function getSettingValue(settings: any[], name: string): boolean {
22
- var entry = find(settings, (setting) => setting[0] === name);
23
+ function getSettingValue(settings, name) {
24
+ var entry = (0, _find.default)(settings, setting => setting[0] === name);
23
25
  return entry ? stupidToBool(entry[1]) : false;
24
26
  }
25
-
26
27
  function getContext() {
27
28
  let context = global;
28
29
  try {
@@ -42,146 +43,86 @@ function getContext() {
42
43
 
43
44
  return context;
44
45
  }
45
-
46
- export default function setupDataExposer() {
46
+ function setupDataExposer() {
47
47
  let context;
48
- waitFor(() => {
48
+ (0, _waitFor.default)(() => {
49
49
  context = getContext();
50
50
  return context && (context.GLOBALS || context.gbar);
51
- })
52
- .then(() => {
53
- if (!context) return;
54
- var userEmail = context.GLOBALS
55
- ? context.GLOBALS[10]
56
- : context.gbar._CONFIG[0][10][5];
57
- (document.head: any).setAttribute(
58
- 'data-inboxsdk-user-email-address',
59
- userEmail
60
- );
61
-
62
- var userLanguage: string = context.GLOBALS
63
- ? context.GLOBALS[4].split('.')[1]
64
- : context.gbar._CONFIG[0][0][4];
65
- (document.head: any).setAttribute(
66
- 'data-inboxsdk-user-language',
67
- userLanguage
68
- );
69
-
70
- (document.head: any).setAttribute(
71
- 'data-inboxsdk-using-sync-api',
72
- context.GM_SPT_ENABLED
73
- );
74
-
75
- if (context.GLOBALS) {
76
- // Gmail
77
- (document.head: any).setAttribute(
78
- 'data-inboxsdk-ik-value',
79
- context.GLOBALS[9]
80
- );
81
- (document.head: any).setAttribute(
82
- 'data-inboxsdk-action-token-value',
83
- context.GM_ACTION_TOKEN
84
- );
85
-
86
- var globalSettingsHolder = find(
87
- context.GLOBALS[17],
88
- (item) => item[0] === 'p'
89
- );
90
-
91
- if (!globalSettingsHolder) {
92
- // global settings doesn't exist on gmail v2, so we don't need to log this anymore
93
- return;
94
- } else {
95
- var globalSettings = globalSettingsHolder[1];
96
- {
97
- var previewPaneLabEnabled = getSettingValue(
98
- globalSettings,
99
- 'bx_lab_1252'
100
- );
101
- var previewPaneEnabled = getSettingValue(globalSettings, 'bx_spa');
102
- var previewPaneVertical = getSettingValue(globalSettings, 'bx_spo');
103
- var previewPaneMode =
104
- previewPaneLabEnabled && previewPaneEnabled
105
- ? previewPaneVertical
106
- ? 'vertical'
107
- : 'horizontal'
108
- : 'none';
109
- (document.head: any).setAttribute(
110
- 'data-inboxsdk-user-preview-pane-mode',
111
- previewPaneMode
112
- );
113
- }
51
+ }).then(() => {
52
+ if (!context) return;
53
+ var userEmail = context.GLOBALS ? context.GLOBALS[10] : context.gbar._CONFIG[0][10][5];
54
+ document.head.setAttribute('data-inboxsdk-user-email-address', userEmail);
55
+ var userLanguage = context.GLOBALS ? context.GLOBALS[4].split('.')[1] : context.gbar._CONFIG[0][0][4];
56
+ document.head.setAttribute('data-inboxsdk-user-language', userLanguage);
57
+ document.head.setAttribute('data-inboxsdk-using-sync-api', context.GM_SPT_ENABLED);
58
+ if (context.GLOBALS) {
59
+ // Gmail
60
+ document.head.setAttribute('data-inboxsdk-ik-value', context.GLOBALS[9]);
61
+ document.head.setAttribute('data-inboxsdk-action-token-value', context.GM_ACTION_TOKEN);
62
+ var globalSettingsHolder = (0, _find.default)(context.GLOBALS[17], item => item[0] === 'p');
63
+ if (!globalSettingsHolder) {
64
+ // global settings doesn't exist on gmail v2, so we don't need to log this anymore
65
+ return;
66
+ } else {
67
+ var globalSettings = globalSettingsHolder[1];
68
+ {
69
+ var previewPaneLabEnabled = getSettingValue(globalSettings, 'bx_lab_1252');
70
+ var previewPaneEnabled = getSettingValue(globalSettings, 'bx_spa');
71
+ var previewPaneVertical = getSettingValue(globalSettings, 'bx_spo');
72
+ var previewPaneMode = previewPaneLabEnabled && previewPaneEnabled ? previewPaneVertical ? 'vertical' : 'horizontal' : 'none';
73
+ document.head.setAttribute('data-inboxsdk-user-preview-pane-mode', previewPaneMode);
114
74
  }
75
+ }
76
+ } else {
77
+ // Inbox
78
+ const preloadDataSearchString = 'window.BT_EmbeddedAppData=[';
79
+ const preloadScript = (0, _find.default)(document.querySelectorAll('script:not([src])'), script => script.text && script.text.slice(0, 500).indexOf(preloadDataSearchString) > -1);
80
+ if (!preloadScript) {
81
+ logger.error(new Error('Could not read preloaded BT_EmbeddedAppData'));
115
82
  } else {
116
- // Inbox
117
- const preloadDataSearchString = 'window.BT_EmbeddedAppData=[';
118
- const preloadScript = find(
119
- document.querySelectorAll('script:not([src])'),
120
- (script) =>
121
- script.text &&
122
- script.text.slice(0, 500).indexOf(preloadDataSearchString) > -1
123
- );
124
- if (!preloadScript) {
125
- logger.error(
126
- new Error('Could not read preloaded BT_EmbeddedAppData')
127
- );
83
+ const {
84
+ text
85
+ } = preloadScript;
86
+ const firstBracket = text.indexOf('window.BT_EmbeddedAppData=[');
87
+ let lastBracket = text.indexOf(']\n;', firstBracket);
88
+ if (lastBracket === -1) {
89
+ // I have only seen the case where there is a new line between the
90
+ // closing bracket and the semicolon, but want to be defensive in
91
+ // case that changes.
92
+ lastBracket = text.indexOf('];', firstBracket);
93
+ }
94
+ const preloadData = JSON.parse(text.slice(firstBracket + preloadDataSearchString.length - 1, lastBracket + 1));
95
+ const ikValue = preloadData[11];
96
+ if (typeof ikValue !== 'string') {
97
+ logger.error(new Error('Could not find valid ikValue'));
128
98
  } else {
129
- const { text } = preloadScript;
130
- const firstBracket = text.indexOf('window.BT_EmbeddedAppData=[');
131
- let lastBracket = text.indexOf(']\n;', firstBracket);
132
- if (lastBracket === -1) {
133
- // I have only seen the case where there is a new line between the
134
- // closing bracket and the semicolon, but want to be defensive in
135
- // case that changes.
136
- lastBracket = text.indexOf('];', firstBracket);
137
- }
138
- const preloadData = JSON.parse(
139
- text.slice(
140
- firstBracket + preloadDataSearchString.length - 1,
141
- lastBracket + 1
142
- )
143
- );
144
-
145
- const ikValue = preloadData[11];
146
- if (typeof ikValue !== 'string') {
147
- logger.error(new Error('Could not find valid ikValue'));
148
- } else {
149
- (document.head: any).setAttribute(
150
- 'data-inboxsdk-ik-value',
151
- ikValue
152
- );
153
- }
154
-
155
- const xsrfToken = preloadData[12];
156
- if (typeof xsrfToken !== 'string') {
157
- logger.error(new Error('Could not find valid xsrfToken'));
158
- } else {
159
- (document.head: any).setAttribute(
160
- 'data-inboxsdk-xsrf-token',
161
- xsrfToken
162
- );
163
- }
99
+ document.head.setAttribute('data-inboxsdk-ik-value', ikValue);
100
+ }
101
+ const xsrfToken = preloadData[12];
102
+ if (typeof xsrfToken !== 'string') {
103
+ logger.error(new Error('Could not find valid xsrfToken'));
104
+ } else {
105
+ document.head.setAttribute('data-inboxsdk-xsrf-token', xsrfToken);
164
106
  }
165
107
  }
166
- })
167
- .catch((err) => {
168
- function getStatus() {
169
- return {
170
- hasGLOBALS: !!context.GLOBALS,
171
- hasGbar: !!context.gbar,
172
- };
173
- }
174
- var startStatus = getStatus();
175
- var waitTime = 180 * 1000;
176
- setTimeout(() => {
177
- var laterStatus = getStatus();
178
- logger.eventSdkPassive('waitfor global data', {
179
- startStatus,
180
- waitTime,
181
- laterStatus,
182
- });
183
- }, waitTime);
184
- throw err;
185
- })
186
- .catch(logger.error);
187
- }
108
+ }
109
+ }).catch(err => {
110
+ function getStatus() {
111
+ return {
112
+ hasGLOBALS: !!context.GLOBALS,
113
+ hasGbar: !!context.gbar
114
+ };
115
+ }
116
+ var startStatus = getStatus();
117
+ var waitTime = 180 * 1000;
118
+ setTimeout(() => {
119
+ var laterStatus = getStatus();
120
+ logger.eventSdkPassive('waitfor global data', {
121
+ startStatus,
122
+ waitTime,
123
+ laterStatus
124
+ });
125
+ }, waitTime);
126
+ throw err;
127
+ }).catch(logger.error);
128
+ }
@@ -1,25 +1,25 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- export default function setupErrorSilencer() {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = setupErrorSilencer;
7
+ function setupErrorSilencer() {
4
8
  var oldErrorHandlers = [];
5
-
6
- document.addEventListener(
7
- 'inboxSDKsilencePageErrors',
8
- function (event: Event) {
9
- oldErrorHandlers.push(window.onerror);
10
- window.onerror = function (...args) {
11
- if (process.env.NODE_ENV !== 'production') {
12
- console.error('(Silenced in production) Page error:', ...args); //eslint-disable-line no-console
9
+ document.addEventListener('inboxSDKsilencePageErrors', function (event) {
10
+ oldErrorHandlers.push(window.onerror);
11
+ window.onerror = function () {
12
+ if (process.env.NODE_ENV !== 'production') {
13
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
+ args[_key] = arguments[_key];
13
15
  }
14
- return true;
15
- };
16
- }
17
- );
16
+ console.error('(Silenced in production) Page error:', ...args); //eslint-disable-line no-console
17
+ }
18
18
 
19
- document.addEventListener(
20
- 'inboxSDKunsilencePageErrors',
21
- function (event: Event) {
22
- window.onerror = oldErrorHandlers.pop();
23
- }
24
- );
25
- }
19
+ return true;
20
+ };
21
+ });
22
+ document.addEventListener('inboxSDKunsilencePageErrors', function (event) {
23
+ window.onerror = oldErrorHandlers.pop();
24
+ });
25
+ }
@@ -1,22 +1,25 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- export default function setupEventReemitter() {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = setupEventReemitter;
7
+ function setupEventReemitter() {
4
8
  // Webkit has bugs that stop certain types of events from being created. We
5
9
  // can manually fake creation of those events, but we have to do it from
6
10
  // inside the page's script if we want the page's script to see the modified
7
11
  // properties.
8
12
  // https://bugs.webkit.org/show_bug.cgi?id=16735
9
13
  // https://code.google.com/p/chromium/issues/detail?id=327853
10
- document.addEventListener('inboxsdk_event_relay', function (event: Object) {
14
+ document.addEventListener('inboxsdk_event_relay', function (event) {
11
15
  const newEvent = document.createEvent('Events');
12
- (newEvent: any).initEvent(
13
- event.detail.type,
14
- event.detail.bubbles,
15
- event.detail.cancelable
16
- );
16
+ newEvent.initEvent(event.detail.type, event.detail.bubbles, event.detail.cancelable);
17
17
  Object.assign(newEvent, event.detail.props);
18
18
  if (event.detail.dataTransfer) {
19
- const { files, fileNames } = event.detail.dataTransfer;
19
+ const {
20
+ files,
21
+ fileNames
22
+ } = event.detail.dataTransfer;
20
23
  if (fileNames) {
21
24
  fileNames.forEach((fileName, i) => {
22
25
  const file = files[i];
@@ -25,28 +28,33 @@ export default function setupEventReemitter() {
25
28
  }
26
29
  });
27
30
  }
28
- (newEvent: any).dataTransfer = {
31
+ newEvent.dataTransfer = {
29
32
  dropEffect: 'none',
30
33
  effectAllowed: 'all',
31
34
  files,
32
- items: files.map(({ type }, i) => ({
33
- kind: 'file',
34
- type,
35
- getAsFile() {
36
- return files[i];
37
- },
38
- getAsString() {
39
- throw new Error('getAsString not supported');
40
- },
41
- })),
35
+ items: files.map((_ref, i) => {
36
+ let {
37
+ type
38
+ } = _ref;
39
+ return {
40
+ kind: 'file',
41
+ type,
42
+ getAsFile() {
43
+ return files[i];
44
+ },
45
+ getAsString() {
46
+ throw new Error('getAsString not supported');
47
+ }
48
+ };
49
+ }),
42
50
  types: ['Files'],
43
51
  getData() {
44
52
  return '';
45
53
  },
46
54
  setData() {},
47
- setDragImage() {},
55
+ setDragImage() {}
48
56
  };
49
57
  }
50
58
  event.target.dispatchEvent(newEvent);
51
59
  });
52
- }
60
+ }