@inboxsdk/core 1.2.4 → 1.2.7

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 (332) hide show
  1. package/inboxsdk.js +4474 -463
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -1
  4. package/pageWorld.js +1 -1
  5. package/pageWorld.js.map +1 -1
  6. package/src/common/load-script.d.ts +0 -6
  7. package/src/common/load-script.d.ts.map +1 -1
  8. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
  9. package/src/inboxsdk.d.ts +29 -0
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  15. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  16. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  17. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  21. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  22. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
  23. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  24. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  25. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  26. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  27. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  28. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  29. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  30. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  31. package/src/build/exec.js +0 -26
  32. package/src/build/spawn.js +0 -17
  33. package/src/common/ajax.js +0 -90
  34. package/src/common/cachebust-url.js +0 -10
  35. package/src/common/censorHTMLstring.js +0 -37
  36. package/src/common/censorHTMLtree.js +0 -28
  37. package/src/common/censorJSONTree.js +0 -15
  38. package/src/common/connectivity-test.js +0 -21
  39. package/src/common/defer.js +0 -11
  40. package/src/common/find-parent.js +0 -10
  41. package/src/common/get-extension-id.js +0 -7
  42. package/src/common/get-or-fail.js +0 -8
  43. package/src/common/get-session-id.js +0 -14
  44. package/src/common/get-stack-trace.js +0 -6
  45. package/src/common/html-to-text.js +0 -7
  46. package/src/common/isElementVisible.js +0 -6
  47. package/src/common/load-script.js +0 -128
  48. package/src/common/log-error.js +0 -185
  49. package/src/common/quoted-split.js +0 -18
  50. package/src/common/rate-limit-queuer.js +0 -57
  51. package/src/common/rate-limit.js +0 -14
  52. package/src/common/version.js +0 -8
  53. package/src/inboxsdk-js/header.js +0 -19
  54. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  55. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  56. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  57. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  58. package/src/inboxsdk-js/inboxsdk.js +0 -23
  59. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  60. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -31
  61. package/src/injected-js/gmail/constants.js +0 -2
  62. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  63. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  64. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  65. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  66. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  67. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  68. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  69. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  70. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  71. package/src/injected-js/injected-logger.js +0 -50
  72. package/src/injected-js/main.js +0 -49
  73. package/src/injected-js/message-metadata-holder.js +0 -103
  74. package/src/injected-js/setup-data-exposer.js +0 -135
  75. package/src/injected-js/setup-error-silencer.js +0 -15
  76. package/src/injected-js/setup-event-reemitter.js +0 -47
  77. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  78. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  79. package/src/injected-js/setupPushStateListener.js +0 -14
  80. package/src/injected-js/xhr-helper.js +0 -43
  81. package/src/injected-js/xhr-proxy-factory.js +0 -537
  82. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  83. package/src/platform-implementation-js/constants/router.js +0 -60
  84. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  128. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  129. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  130. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  131. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -328
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  186. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  198. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  199. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  200. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  201. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  202. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  203. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  204. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  205. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  206. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  207. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  208. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  209. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  210. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  211. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  212. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  213. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  214. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  215. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  216. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  217. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  218. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  219. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  220. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  221. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  222. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  223. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  224. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  225. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  226. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  227. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  228. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  229. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  230. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  231. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  232. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  233. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  234. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  235. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  236. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  237. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  238. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  239. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  240. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  241. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  242. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  243. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  244. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  245. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  246. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  247. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  248. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  249. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  250. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  251. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  252. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  253. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  254. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  255. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  256. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  257. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  258. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  259. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  260. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  261. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  262. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  263. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  264. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  265. package/src/platform-implementation-js/lib/idMap.js +0 -40
  266. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  267. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  268. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -8
  269. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  270. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  271. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  272. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  273. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  274. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  275. package/src/platform-implementation-js/lib/logger.js +0 -439
  276. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  277. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  278. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  279. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  280. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  281. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  282. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  283. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  284. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  285. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  286. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  287. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  288. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  289. package/src/platform-implementation-js/main.js +0 -42
  290. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  291. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  292. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  293. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  294. package/src/platform-implementation-js/namespaces/global.js +0 -30
  295. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  296. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  297. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  298. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  299. package/src/platform-implementation-js/namespaces/router.js +0 -139
  300. package/src/platform-implementation-js/namespaces/search.js +0 -29
  301. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  302. package/src/platform-implementation-js/namespaces/user.js +0 -57
  303. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  304. package/src/platform-implementation-js/platform-implementation.js +0 -178
  305. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  306. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  307. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  308. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  309. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  310. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  311. package/src/platform-implementation-js/views/compose-view.js +0 -310
  312. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  313. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  314. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  315. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  316. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  317. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  318. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  319. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  320. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  321. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  322. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  323. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  324. package/src/platform-implementation-js/views/section-view.js +0 -60
  325. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  326. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  327. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  328. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  329. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  330. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  331. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  332. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,158 +0,0 @@
1
- import * as Kefir from 'kefir';
2
- import streamWaitFor from '../../lib/stream-wait-for';
3
- import querySelector from '../../lib/dom/querySelectorOrFail';
4
- import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
5
- const elements = streamWaitFor(() => document.body.querySelector('div.b8[role="alert"]'))
6
- .map((noticeContainer) => {
7
- const googleNotice = querySelector(noticeContainer, '.vh:not(.inboxsdk__butterbar)');
8
- let sdkNotice = noticeContainer.querySelector('.vh.inboxsdk__butterbar');
9
- if (!sdkNotice) {
10
- sdkNotice = document.createElement('div');
11
- sdkNotice.classList.add('vh', 'inboxsdk__butterbar');
12
- sdkNotice.style.display = 'none';
13
- const textAndButtonsContainer = document.createElement('span');
14
- textAndButtonsContainer.classList.add('aT');
15
- const textContainer = document.createElement('span');
16
- textContainer.classList.add('inboxsdk__butterbar-text', 'bAq');
17
- const buttonsContainer = document.createElement('span');
18
- buttonsContainer.classList.add('inboxsdk__butterbar-buttons', 'bAo');
19
- buttonsContainer.innerHTML = '  ';
20
- const noticeCloseButton = document.createElement('div');
21
- noticeCloseButton.classList.add('inboxsdk__butterbar-close', 'bBe');
22
- noticeCloseButton.innerHTML = '<div class="bBf"></div>';
23
- noticeCloseButton.setAttribute('role', 'button');
24
- noticeCloseButton.tabIndex = 0;
25
- textAndButtonsContainer.appendChild(textContainer);
26
- textAndButtonsContainer.appendChild(buttonsContainer);
27
- sdkNotice.appendChild(textAndButtonsContainer);
28
- sdkNotice.appendChild(noticeCloseButton);
29
- const parentNode = googleNotice.parentNode;
30
- if (!parentNode) {
31
- throw new Error('parentNode not found');
32
- }
33
- parentNode.insertBefore(sdkNotice, googleNotice.nextSibling);
34
- }
35
- return { noticeContainer, googleNotice, sdkNotice };
36
- })
37
- .toProperty();
38
- const googleNoticeMutationChunks = elements.flatMapLatest(({ googleNotice }) => makeMutationObserverChunkedStream(googleNotice, { childList: true }));
39
- const googleAddedNotice = googleNoticeMutationChunks.filter((mutations) => mutations.some((m) => m.addedNodes.length > 0));
40
- const googleRemovedNotice = googleNoticeMutationChunks.filter((mutations) => !mutations.some((m) => m.addedNodes.length > 0));
41
- const sdkRemovedNotice = elements
42
- .flatMapLatest(({ sdkNotice }) => makeMutationObserverChunkedStream(sdkNotice, {
43
- attributes: true,
44
- attributeFilter: ['data-inboxsdk-id'],
45
- }).map(() => sdkNotice.getAttribute('data-inboxsdk-id')))
46
- .filter((id) => id == null);
47
- const noticeAvailableStream = Kefir.merge([
48
- googleRemovedNotice,
49
- sdkRemovedNotice,
50
- ]);
51
- function hideMessage(noticeContainer, googleNotice, sdkNotice) {
52
- googleNotice.style.display = '';
53
- noticeContainer.style.top = '-10000px';
54
- noticeContainer.style.position = 'relative';
55
- noticeContainer.classList.remove('bAp');
56
- sdkNotice.style.display = 'none';
57
- sdkNotice.removeAttribute('data-inboxsdk-id');
58
- }
59
- export default class GmailButterBarDriver {
60
- constructor() {
61
- Kefir.combine([elements, googleAddedNotice]).onValue(([{ googleNotice, sdkNotice }]) => {
62
- googleNotice.style.display = '';
63
- sdkNotice.style.display = 'none';
64
- sdkNotice.setAttribute('data-inboxsdk-id', 'gmail');
65
- });
66
- // Force stream to be in active state. sdkRemovedNotice is prone to missing
67
- // events if it only becomes active once a message has started.
68
- // eslint-disable-next-line @typescript-eslint/no-empty-function
69
- noticeAvailableStream.onValue(() => { });
70
- }
71
- getNoticeAvailableStream() {
72
- return noticeAvailableStream;
73
- }
74
- getSharedMessageQueue() {
75
- const attr = document.head.getAttribute('data-inboxsdk-butterbar-queue');
76
- return attr ? JSON.parse(attr) : [];
77
- }
78
- setSharedMessageQueue(queue) {
79
- const attr = JSON.stringify(queue);
80
- document.head.setAttribute('data-inboxsdk-butterbar-queue', attr);
81
- }
82
- // Immediately displays the message, overriding anything else on the screen.
83
- // Priority and queuing logic is handled by butter-bar.js above this.
84
- showMessage(rawOptions) {
85
- const instanceId = Date.now() + '-' + Math.random();
86
- const destroy = () => {
87
- elements
88
- .take(1)
89
- .onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
90
- if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
91
- if (rawOptions.className) {
92
- sdkNotice.classList.remove(rawOptions.className);
93
- }
94
- hideMessage(noticeContainer, googleNotice, sdkNotice);
95
- }
96
- });
97
- };
98
- elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
99
- noticeContainer.style.visibility = 'visible';
100
- noticeContainer.style.top = '';
101
- // The bAp css class is added to noticeContainer whenever a native butter is active in
102
- // Material Gmail. We replicate this native behavior by adding bAp to noticeContainer
103
- // when we show an SDK butter and removing it when the butter expires (see the
104
- // hideMessage function above).
105
- // The bAp class also causes butters to be styled and positioned as Snack Bars instead
106
- // (as opposed to butters).
107
- noticeContainer.classList.add('bAp');
108
- googleNotice.style.display = 'none';
109
- sdkNotice.className = googleNotice.className;
110
- sdkNotice.classList.add('inboxsdk__butterbar');
111
- const textContainer = querySelector(sdkNotice, '.inboxsdk__butterbar-text');
112
- while (textContainer.firstChild) {
113
- textContainer.removeChild(textContainer.firstChild);
114
- }
115
- const buttonsContainer = querySelector(sdkNotice, '.inboxsdk__butterbar-buttons');
116
- while (buttonsContainer.firstChild) {
117
- buttonsContainer.removeChild(buttonsContainer.firstChild);
118
- }
119
- if (rawOptions.html) {
120
- textContainer.innerHTML = rawOptions.html;
121
- }
122
- else if (rawOptions.el) {
123
- textContainer.appendChild(rawOptions.el);
124
- }
125
- else {
126
- textContainer.textContent = rawOptions.text;
127
- }
128
- if (rawOptions.buttons) {
129
- rawOptions.buttons.forEach((buttonDescriptor) => {
130
- const button = document.createElement('span');
131
- button.classList.add('ag', 'a8k');
132
- button.onclick = (e) => buttonDescriptor.onClick(e);
133
- button.setAttribute('role', 'button');
134
- button.tabIndex = 0;
135
- button.textContent = buttonDescriptor.title;
136
- buttonsContainer.appendChild(button);
137
- });
138
- }
139
- const closeButton = querySelector(sdkNotice, '.inboxsdk__butterbar-close');
140
- if (closeButton) {
141
- Kefir.fromEvents(closeButton, 'click').take(1).onValue(destroy);
142
- }
143
- if (rawOptions.className) {
144
- sdkNotice.classList.add(rawOptions.className);
145
- }
146
- sdkNotice.style.display = '';
147
- sdkNotice.setAttribute('data-inboxsdk-id', instanceId);
148
- });
149
- return { destroy };
150
- }
151
- hideGmailMessage() {
152
- elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
153
- if (sdkNotice.getAttribute('data-inboxsdk-id') === 'gmail') {
154
- hideMessage(noticeContainer, googleNotice, sdkNotice);
155
- }
156
- });
157
- }
158
- }
@@ -1,20 +0,0 @@
1
- import { GmailAppMenuItemView } from '../views/gmail-app-menu-item-view';
2
- import GmailElementGetter from '../gmail-element-getter';
3
- import Logger from '../../../lib/logger';
4
- export async function addAppMenuItem(driver, menuItemDescriptor) {
5
- const appMenuInjectionContainer = await GmailElementGetter.getAppMenuAsync();
6
- const gmailAppMenuItemView = new GmailAppMenuItemView(driver, menuItemDescriptor);
7
- try {
8
- if (!appMenuInjectionContainer)
9
- return undefined;
10
- const siblingElement = Number.isInteger(menuItemDescriptor.insertIndex)
11
- ? appMenuInjectionContainer.childNodes[menuItemDescriptor.insertIndex] ??
12
- null
13
- : null;
14
- appMenuInjectionContainer.insertBefore(gmailAppMenuItemView.element, siblingElement);
15
- }
16
- catch (err) {
17
- Logger.error(err);
18
- }
19
- return gmailAppMenuItemView;
20
- }
@@ -1,38 +0,0 @@
1
- import once from 'lodash/once';
2
- import GmailElementGetter from '../gmail-element-getter';
3
- import waitFor from '../../../lib/wait-for';
4
- import Logger from '../../../lib/logger';
5
- import { CollapsiblePanelView } from '../../../views/collapsible-panel-view';
6
- export async function addCollapsiblePanel(driver, panelDescriptor, insertIndex) {
7
- const injectionContainer = await waitForAppMenuParentReady();
8
- const collapsiblePanelView = new CollapsiblePanelView(driver, panelDescriptor);
9
- if (!injectionContainer || !collapsiblePanelView.element)
10
- return;
11
- const appMenu = await GmailElementGetter.getAppMenuAsync();
12
- if (!appMenu)
13
- return;
14
- const panelNodes = injectionContainer.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? [];
15
- const siblingElement = Number.isInteger(insertIndex)
16
- ? panelNodes[insertIndex] ?? null
17
- : null;
18
- if (siblingElement) {
19
- siblingElement.insertAdjacentElement('beforebegin', collapsiblePanelView.element);
20
- }
21
- else {
22
- [...panelNodes]
23
- .at(-1)
24
- ?.insertAdjacentElement('afterend', collapsiblePanelView.element);
25
- }
26
- return collapsiblePanelView;
27
- }
28
- const waitForAppMenuParentReady = once(async () => {
29
- if (!GmailElementGetter.isStandalone()) {
30
- try {
31
- const menuParentElement = await waitFor(() => GmailElementGetter.getAppMenuContainer());
32
- return menuParentElement;
33
- }
34
- catch (e) {
35
- Logger.error(e);
36
- }
37
- }
38
- });
@@ -1,98 +0,0 @@
1
- import GmailElementGetter from '../gmail-element-getter';
2
- import GmailNavItemView from '../views/gmail-nav-item-view';
3
- import Logger from '../../../lib/logger';
4
- import waitFor from '../../../lib/wait-for';
5
- import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
6
- import makeMutationObserverStream from '../../../lib/dom/make-mutation-observer-stream';
7
- import querySelector from '../../../lib/dom/querySelectorOrFail';
8
- import once from 'lodash/once';
9
- export default async function addNavItem(driver, orderGroup, navItemDescriptor, navMenuInjectionContainer) {
10
- await waitForMenuReady();
11
- const gmailNavItemView = new GmailNavItemView(driver, orderGroup, 1);
12
- gmailNavItemView.setNavItemDescriptor(navItemDescriptor);
13
- if (!GmailElementGetter.isStandalone()) {
14
- try {
15
- const attacher = _attachNavItemView(gmailNavItemView, navMenuInjectionContainer);
16
- attacher();
17
- gmailNavItemView
18
- .getEventStream()
19
- .filter((event) => event.eventName === 'orderChanged')
20
- .onValue(attacher);
21
- }
22
- catch (err) {
23
- Logger.error(err);
24
- }
25
- }
26
- return gmailNavItemView;
27
- }
28
- export const waitForMenuReady = once(async () => {
29
- const appMenu = await GmailElementGetter.getAppMenuAsync();
30
- if (!appMenu) {
31
- await waitForNavMenuReady();
32
- }
33
- });
34
- const waitForNavMenuReady = once(async () => {
35
- if (!GmailElementGetter.isStandalone()) {
36
- await GmailElementGetter.waitForGmailModeToSettle();
37
- await waitFor(() => document.querySelector('.aeN[role=navigation], .aeN [role=navigation]'));
38
- // Wait for contents of navmenu to load (needed to figure out if it's integrated gmail mode)
39
- await waitFor(() => document.querySelector('.Ls77Lb.aZ6 > .pp'));
40
- }
41
- });
42
- function _attachNavItemView(gmailNavItemView, navMenuInjectionContainer) {
43
- if (navMenuInjectionContainer) {
44
- return () => {
45
- insertElementInOrder(navMenuInjectionContainer, gmailNavItemView.getElement());
46
- };
47
- }
48
- if (!GmailElementGetter.shouldAddNavItemsInline()) {
49
- // If we're in the modern (non-classic-hangouts) leftnav, then put
50
- // the added nav items in a floating section at the bottom separate
51
- // from the Mail section.
52
- return function () {
53
- const navMenuInjectionContainer = GmailElementGetter.getSeparateSectionNavItemMenuInjectionContainer();
54
- if (!navMenuInjectionContainer) {
55
- throw new Error('should not happen');
56
- }
57
- const nonMailLeftNavSections = Array.from(document.querySelectorAll('.Xa.wT:not([data-group-order-hint])')).slice(1);
58
- nonMailLeftNavSections.forEach((div) => {
59
- div.dataset.groupOrderHint = 'zz_gmail';
60
- });
61
- insertElementInOrder(navMenuInjectionContainer, gmailNavItemView.getElement());
62
- };
63
- }
64
- else {
65
- // If we're in the old classic-hangouts-compatible leftnav, then
66
- // inject our added nav items among Gmail's own nav items.
67
- return function () {
68
- insertElementInOrder(_getNavItemsHolder(), gmailNavItemView.getElement());
69
- };
70
- }
71
- }
72
- function _getNavItemsHolder() {
73
- const holder = document.querySelector('.inboxsdk__navMenu');
74
- if (!holder) {
75
- return _createNavItemsHolder();
76
- }
77
- else {
78
- return querySelector(holder, '.TK');
79
- }
80
- }
81
- function _createNavItemsHolder() {
82
- const holder = document.createElement('div');
83
- holder.setAttribute('class', 'LrBjie inboxsdk__navMenu');
84
- holder.innerHTML = '<div class="TK"></div>';
85
- const navMenuInjectionContainer = GmailElementGetter.getSameSectionNavItemMenuInjectionContainer();
86
- if (!navMenuInjectionContainer)
87
- throw new Error('should not happen');
88
- navMenuInjectionContainer.insertBefore(holder, navMenuInjectionContainer.children[2]);
89
- makeMutationObserverStream(holder, {
90
- attributes: true,
91
- attributeFilter: ['class'],
92
- }).onValue(function () {
93
- if (holder.classList.contains('TA')) {
94
- holder.classList.remove('TA');
95
- }
96
- });
97
- return querySelector(holder, '.TK');
98
- }
@@ -1,4 +0,0 @@
1
- import GmailSupportItemView from '../views/gmail-support-item-view';
2
- export default function addSupportItem(driver, supportItemDescriptor) {
3
- return new GmailSupportItemView(driver, supportItemDescriptor);
4
- }
@@ -1,14 +0,0 @@
1
- import GmailElementGetter from '../gmail-element-getter';
2
- import GmailAppToolbarButtonView from '../views/gmail-app-toolbar-button-view';
3
- export default function addToolbarButtonForApp(gmailDriver, buttonDescriptor) {
4
- return GmailElementGetter.waitForGmailModeToSettle().then(() => {
5
- if (GmailElementGetter.isStandalone()) {
6
- return new Promise((_resolve, _reject) => {
7
- //never complete
8
- });
9
- }
10
- else {
11
- return new GmailAppToolbarButtonView(gmailDriver, buttonDescriptor);
12
- }
13
- });
14
- }
@@ -1,60 +0,0 @@
1
- import populateRouteID from '../../../lib/populateRouteID';
2
- import Logger from '../../../lib/logger';
3
- export default function createLink(GmailRouteProcessor, routeID, params) {
4
- params =
5
- typeof params === 'string'
6
- ? params
7
- : params
8
- ? Object.assign({}, params)
9
- : {};
10
- routeID = GmailRouteProcessor.getCompatibleRouteID(routeID);
11
- if (typeof params === 'string') {
12
- var matches = routeID.match(/:/g);
13
- if (matches && matches.length === 1) {
14
- var paramValue = params;
15
- params = {};
16
- params[routeID.match(/:(\w+)($|\/)?/)[1]] = paramValue;
17
- }
18
- else {
19
- params = {};
20
- }
21
- }
22
- const hasPageParam = routeID.match(/:page(?:\/|$)/);
23
- if (hasPageParam && !params.page) {
24
- params.page = 0;
25
- }
26
- const parts = routeID.split('/');
27
- // attempt to use new, more strict populateRouteID fn, if that fails
28
- // log an error and fallback to older, more permissive approach.
29
- // intent is to retire the old approach once we understand the consequences.
30
- let processedRoute;
31
- try {
32
- processedRoute = populateRouteID(routeID, params);
33
- }
34
- catch (error) {
35
- Logger.error(error, {
36
- routeID,
37
- paramsKey: Object.keys(params),
38
- });
39
- processedRoute = parts
40
- .map(function (part) {
41
- if (part.indexOf(':') === -1) {
42
- return part;
43
- }
44
- const colonParts = part.split(':');
45
- if (params &&
46
- typeof params[colonParts[1]] !== 'undefined') {
47
- return colonParts[0] + params[colonParts[1]];
48
- }
49
- return colonParts[0];
50
- })
51
- .map(encodeURIComponent)
52
- .join('/');
53
- }
54
- //check if link is of the form inbox/p0 or search/blah/p0
55
- if (GmailRouteProcessor.isListRouteName(parts[0]) &&
56
- processedRoute.indexOf('p0') === processedRoute.length - 2) {
57
- processedRoute = processedRoute.substring(0, processedRoute.length - 3);
58
- }
59
- return '#' + processedRoute;
60
- }
@@ -1,8 +0,0 @@
1
- import { convertBase } from '@macil/simple-base-converter';
2
- const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
3
- const GMAIL_ALPHABET = 'BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz';
4
- export default function encodeDraftUrlId(syncThreadId, syncMessageId) {
5
- const raw = `${syncThreadId.replace(/^thread-/, '')}+${syncMessageId}`;
6
- const b64 = Buffer.from(raw).toString('base64').replace(/=/g, '');
7
- return convertBase(b64, B64_ALPHABET, GMAIL_ALPHABET);
8
- }
@@ -1,47 +0,0 @@
1
- import memoize from 'lodash/memoize';
2
- import { defn } from 'ud';
3
- import gmailAjax from '../../../driver-common/gmailAjax';
4
- import { readDraftId } from '../gmail-response-processor';
5
- import isStreakAppId from '../../../lib/isStreakAppId';
6
- async function uncachedGetDraftIDForMessageID(driver, messageID) {
7
- const response = await gmailAjax({
8
- method: 'GET',
9
- url: document.location.origin + document.location.pathname,
10
- data: {
11
- ui: '2',
12
- ik: driver.getPageCommunicator().getIkValue(),
13
- view: 'cv',
14
- th: messageID,
15
- prf: '1',
16
- nsc: '1',
17
- mb: '0',
18
- rt: 'j',
19
- search: 'drafts',
20
- },
21
- });
22
- try {
23
- const draftID = readDraftId(response.text, messageID);
24
- const debugData = { responseText: response.text };
25
- return { draftID, debugData };
26
- }
27
- catch (err) {
28
- if (isStreakAppId(driver.getAppId())) {
29
- driver.getLogger().error(err, {
30
- message: 'failed to read draft ID',
31
- messageID,
32
- text: response.text,
33
- });
34
- }
35
- throw err;
36
- }
37
- }
38
- const cachedGetDraftIDForMessageID = memoize(uncachedGetDraftIDForMessageID, (driver, messageID) => messageID);
39
- function getDraftIDForMessageID(driver, messageID, skipCache = false) {
40
- if (skipCache) {
41
- return uncachedGetDraftIDForMessageID(driver, messageID);
42
- }
43
- else {
44
- return cachedGetDraftIDForMessageID(driver, messageID);
45
- }
46
- }
47
- export default defn(module, getDraftIDForMessageID);
@@ -1,31 +0,0 @@
1
- import NativeGmailNavItemView from '../views/native-gmail-nav-item-view';
2
- import GmailElementGetter from '../gmail-element-getter';
3
- import findParent from '../../../../common/find-parent';
4
- import waitFor from '../../../lib/wait-for';
5
- export default function getNativeNavItem(driver, label) {
6
- return waitFor(() => {
7
- const navContainer = GmailElementGetter.getLeftNavContainerElement();
8
- if (!navContainer)
9
- return null;
10
- return navContainer.querySelector(`.aim a[href*="#${label}"]`);
11
- }, 300 * 1000)
12
- .then((labelLinkElement) => {
13
- const labelElement = findParent(labelLinkElement, (el) => el.classList.contains('aim'));
14
- if (!labelElement) {
15
- throw new Error('native nav item structured weird');
16
- }
17
- if (!labelElement.__nativeGmailNavItemView) {
18
- labelElement.__nativeGmailNavItemView =
19
- new NativeGmailNavItemView(driver, labelElement, label);
20
- }
21
- return labelElement.__nativeGmailNavItemView;
22
- })
23
- .catch((err) => {
24
- if (GmailElementGetter.isStandalone()) {
25
- // never resolve
26
- // eslint-disable-next-line @typescript-eslint/no-empty-function
27
- return new Promise((_resolve, _reject) => { });
28
- }
29
- throw err;
30
- });
31
- }
@@ -1,12 +0,0 @@
1
- import getOriginalMessagePage from '../../../driver-common/getOriginalMessagePage';
2
- import htmlToText from '../../../../common/html-to-text';
3
- export default async function getRfcMessageIdForGmailMessageId(driver, gmailMessageId) {
4
- const text = await getOriginalMessagePage(driver, {
5
- oldGmailMessageID: gmailMessageId,
6
- });
7
- const match = text.match(/^Message-ID:\s+(\S+)\s*$/im);
8
- if (!match) {
9
- throw new Error("Failed to find rfc id for gmail thread id. Message may not exist in user's account.");
10
- }
11
- return htmlToText(match[1]);
12
- }
@@ -1,33 +0,0 @@
1
- import gmailAjax from '../../../driver-common/gmailAjax';
2
- import querystring from 'querystring';
3
- import * as GmailResponseProcessor from '../gmail-response-processor';
4
- import getRfcMessageIdForGmailMessageId from './get-rfc-message-id-for-gmail-message-id';
5
- export default async function getRfcMessageIdForGmailThreadId(driver, gmailThreadId) {
6
- const messageIdQuery = {
7
- ui: 2,
8
- ik: driver.getPageCommunicator().getIkValue(),
9
- view: 'cv',
10
- th: gmailThreadId,
11
- nsc: 1,
12
- mb: 0,
13
- rt: 'j',
14
- search: 'all',
15
- };
16
- const gmailMessageIdResponse = await gmailAjax({
17
- method: 'POST',
18
- url: document.location.origin +
19
- document.location.pathname +
20
- '?' +
21
- querystring.stringify(messageIdQuery),
22
- canRetry: true,
23
- });
24
- const extractedIds = GmailResponseProcessor.extractMessageIdsFromThreadBatchRequest(gmailMessageIdResponse.text);
25
- if (Object.keys(extractedIds).length !== 1) {
26
- throw new Error(`Expected to find 1 thread/message ID pair, but got ${Object.keys(extractedIds).length}`);
27
- }
28
- const gmailMessageId = extractedIds[gmailThreadId];
29
- if (!gmailMessageId) {
30
- throw new Error('Could not find a message ID for given thread ID');
31
- }
32
- return getRfcMessageIdForGmailMessageId(driver, gmailMessageId);
33
- }
@@ -1,22 +0,0 @@
1
- export default function getURLObject(url) {
2
- const m = url.match(/#([^?]*)(?:\?(.*))?/);
3
- if (!m) {
4
- return {
5
- name: 'inbox',
6
- params: [],
7
- hash: '',
8
- query: undefined,
9
- };
10
- }
11
- const hash = m[1];
12
- const hashParts = hash.split('/');
13
- return {
14
- name: decodeURIComponent(hashParts[0]),
15
- params: hashParts
16
- .slice(1)
17
- .map((part) => part.replace(/\+/g, ' '))
18
- .map(decodeURIComponent),
19
- query: m[2],
20
- hash,
21
- };
22
- }
@@ -1,18 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import getSyncThreadsForSearch from '../../../driver-common/getSyncThreadsForSearch';
3
- import isStreakAppId from '../../../lib/isStreakAppId';
4
- export default async function getSyncThreadForOldGmailThreadId(driver, oldGmailThreadId) {
5
- const { threads: threadDescriptors, _text } = await getSyncThreadsForSearch(driver, 'threadid:' + new BigNumber(oldGmailThreadId, 16).toString(10));
6
- const firstThread = threadDescriptors[0];
7
- if (firstThread == null) {
8
- console.error(`Thread with ID ${oldGmailThreadId} not found by Gmail`);
9
- const isStreak = isStreakAppId(driver.getAppId());
10
- const err = new Error('Thread not found by getSyncThreadForOldGmailThreadId');
11
- driver.getLogger().error(err, {
12
- oldGmailThreadId: isStreak ? oldGmailThreadId : null,
13
- responseText: isStreak ? _text : null,
14
- });
15
- throw err;
16
- }
17
- return firstThread;
18
- }
@@ -1,57 +0,0 @@
1
- import gmailAjax from '../../../driver-common/gmailAjax';
2
- import { extractThreadsFromThreadResponse } from '../gmail-sync-response-processor';
3
- import getAccountUrlPart from '../../../driver-common/getAccountUrlPart';
4
- export default async function getThreadFromSyncThreadId(driver, syncThreadId) {
5
- const [btaiHeader, xsrfToken] = await Promise.all([
6
- driver.getPageCommunicator().getBtaiHeader(),
7
- driver.getPageCommunicator().getXsrfToken(),
8
- ]);
9
- return getThreadFromSyncThreadIdUsingHeaders(syncThreadId, btaiHeader, xsrfToken);
10
- }
11
- export async function getThreadFromSyncThreadIdUsingHeaders(syncThreadId, btaiHeader, xsrfToken) {
12
- let responseText = null;
13
- try {
14
- const { text } = await gmailAjax({
15
- method: 'POST',
16
- url: `https://mail.google.com/sync${getAccountUrlPart()}/i/fd`,
17
- headers: {
18
- 'Content-Type': 'application/json',
19
- 'X-Framework-Xsrf-Token': xsrfToken,
20
- 'X-Gmail-BTAI': btaiHeader,
21
- 'X-Google-BTD': '1',
22
- },
23
- data: JSON.stringify({
24
- '1': [
25
- {
26
- '1': syncThreadId,
27
- '2': 1,
28
- },
29
- ],
30
- }),
31
- });
32
- responseText = text;
33
- }
34
- catch (err) {
35
- // try sending request with new format 2022_09_09
36
- const { text } = await gmailAjax({
37
- method: 'POST',
38
- url: `https://mail.google.com/sync${getAccountUrlPart()}/i/fd?rt=r&pt=ji`,
39
- headers: {
40
- 'Content-Type': 'application/json',
41
- 'X-Framework-Xsrf-Token': xsrfToken,
42
- 'X-Gmail-BTAI': btaiHeader,
43
- 'X-Google-BTD': '1',
44
- },
45
- data: JSON.stringify([[[syncThreadId, 1]], 2]),
46
- });
47
- responseText = text;
48
- }
49
- const threadDescriptors = extractThreadsFromThreadResponse(responseText);
50
- if (threadDescriptors.length > 0) {
51
- const thread = threadDescriptors[0];
52
- if (thread.oldGmailThreadID) {
53
- return thread;
54
- }
55
- }
56
- return null;
57
- }