@inboxsdk/core 1.2.5 → 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 (328) hide show
  1. package/inboxsdk.js +4462 -456
  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/inboxsdk.d.ts +29 -0
  7. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  8. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  9. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  15. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  16. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  17. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  19. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  20. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  21. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  22. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  23. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  24. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  25. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  26. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  27. package/src/build/exec.js +0 -26
  28. package/src/build/spawn.js +0 -17
  29. package/src/common/ajax.js +0 -90
  30. package/src/common/cachebust-url.js +0 -10
  31. package/src/common/censorHTMLstring.js +0 -37
  32. package/src/common/censorHTMLtree.js +0 -28
  33. package/src/common/censorJSONTree.js +0 -15
  34. package/src/common/connectivity-test.js +0 -21
  35. package/src/common/defer.js +0 -11
  36. package/src/common/find-parent.js +0 -10
  37. package/src/common/get-extension-id.js +0 -7
  38. package/src/common/get-or-fail.js +0 -8
  39. package/src/common/get-session-id.js +0 -14
  40. package/src/common/get-stack-trace.js +0 -6
  41. package/src/common/html-to-text.js +0 -7
  42. package/src/common/isElementVisible.js +0 -6
  43. package/src/common/load-script.js +0 -126
  44. package/src/common/log-error.js +0 -185
  45. package/src/common/quoted-split.js +0 -18
  46. package/src/common/rate-limit-queuer.js +0 -57
  47. package/src/common/rate-limit.js +0 -14
  48. package/src/common/version.js +0 -8
  49. package/src/inboxsdk-js/header.js +0 -19
  50. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  51. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  52. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  53. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  54. package/src/inboxsdk-js/inboxsdk.js +0 -23
  55. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  56. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -28
  57. package/src/injected-js/gmail/constants.js +0 -2
  58. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  59. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  60. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  61. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  62. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  63. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  64. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  65. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  66. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  67. package/src/injected-js/injected-logger.js +0 -50
  68. package/src/injected-js/main.js +0 -49
  69. package/src/injected-js/message-metadata-holder.js +0 -103
  70. package/src/injected-js/setup-data-exposer.js +0 -135
  71. package/src/injected-js/setup-error-silencer.js +0 -15
  72. package/src/injected-js/setup-event-reemitter.js +0 -47
  73. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  74. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  75. package/src/injected-js/setupPushStateListener.js +0 -14
  76. package/src/injected-js/xhr-helper.js +0 -43
  77. package/src/injected-js/xhr-proxy-factory.js +0 -537
  78. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  79. package/src/platform-implementation-js/constants/router.js +0 -60
  80. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  124. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  125. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  126. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  127. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -338
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  182. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  198. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  199. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  200. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  201. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  202. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  203. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  204. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  205. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  206. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  207. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  208. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  209. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  210. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  211. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  212. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  213. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  214. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  215. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  216. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  217. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  218. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  219. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  220. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  221. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  222. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  223. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  224. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  225. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  226. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  227. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  228. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  229. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  230. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  231. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  232. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  233. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  234. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  235. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  236. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  237. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  238. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  239. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  240. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  241. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  242. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  243. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  244. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  245. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  246. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  247. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  248. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  249. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  250. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  251. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  252. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  253. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  254. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  255. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  256. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  257. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  258. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  259. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  260. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  261. package/src/platform-implementation-js/lib/idMap.js +0 -40
  262. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  263. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  264. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -13
  265. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  266. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  267. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  268. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  269. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  270. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  271. package/src/platform-implementation-js/lib/logger.js +0 -439
  272. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  273. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  274. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  275. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  276. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  277. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  278. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  279. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  280. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  281. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  282. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  283. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  284. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  285. package/src/platform-implementation-js/main.js +0 -42
  286. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  287. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  288. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  289. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  290. package/src/platform-implementation-js/namespaces/global.js +0 -30
  291. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  292. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  293. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  294. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  295. package/src/platform-implementation-js/namespaces/router.js +0 -139
  296. package/src/platform-implementation-js/namespaces/search.js +0 -29
  297. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  298. package/src/platform-implementation-js/namespaces/user.js +0 -57
  299. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  300. package/src/platform-implementation-js/platform-implementation.js +0 -178
  301. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  302. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  303. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  304. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  305. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  306. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  307. package/src/platform-implementation-js/views/compose-view.js +0 -310
  308. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  309. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  310. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  311. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  312. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  313. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  314. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  315. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  316. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  317. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  318. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  319. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  320. package/src/platform-implementation-js/views/section-view.js +0 -60
  321. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  322. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  323. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  324. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  325. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  326. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  327. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  328. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,532 +0,0 @@
1
- import flatten from 'lodash/flatten';
2
- import last from 'lodash/last';
3
- import t from 'transducers.js';
4
- import mapIndexed from 'map-indexed-xf';
5
- import assert from 'assert';
6
- import htmlToText from '../../../common/html-to-text';
7
- export function interpretSentEmailResponse(responseString) {
8
- const emailSentArray = deserialize(responseString).value;
9
- const gmailMessageId = extractGmailMessageIdFromSentEmail(emailSentArray);
10
- const gmailThreadId = extractGmailThreadIdFromSentEmail(emailSentArray) || gmailMessageId;
11
- if (!gmailMessageId || !gmailThreadId) {
12
- throw new Error('Failed to read email response');
13
- }
14
- return {
15
- threadID: gmailThreadId,
16
- messageID: gmailMessageId,
17
- };
18
- }
19
- export function extractGmailMessageIdFromSentEmail(emailSentArray) {
20
- const messageIdArrayMarker = 'a';
21
- const messageIdArray = _searchArray(emailSentArray, messageIdArrayMarker, (markerArray) => markerArray.length > 3 &&
22
- Array.isArray(markerArray[3]) &&
23
- markerArray[3].length > 0);
24
- if (!messageIdArray) {
25
- return null;
26
- }
27
- return messageIdArray[3][0];
28
- }
29
- export function extractGmailThreadIdFromSentEmail(emailSentArray) {
30
- const threadIdArrayMarker = 'csd';
31
- const threadIdArray = _searchArray(emailSentArray, threadIdArrayMarker, function (markerArray) {
32
- return (markerArray.length == 3 &&
33
- Array.isArray(markerArray[2]) &&
34
- markerArray[2].length > 5);
35
- });
36
- if (!threadIdArray) {
37
- return null;
38
- }
39
- return threadIdArray[1];
40
- }
41
- export function extractGmailThreadIdFromMessageIdSearch(responseString) {
42
- const threadResponseArray = deserialize(responseString).value;
43
- const threadIdArrayMarker = 'cs';
44
- const threadIdArray = _searchArray(threadResponseArray, threadIdArrayMarker, (markerArray) => markerArray[0] === 'cs' && markerArray.length > 20);
45
- if (!threadIdArray) {
46
- return null;
47
- }
48
- return threadIdArray[1];
49
- }
50
- export function rewriteSingleQuotes(s) {
51
- // The input string contains unquoted, double-quoted, and single-quoted
52
- // parts. Parse the string for these parts, and transform the single-
53
- // quoted part into a double-quoted part by swapping the quotes, and
54
- // escaping any double-quotes inside of it with backslashes.
55
- // i is our position in the input string. result is our result string that
56
- // we'll copy the parts of the input to as we interpret them.
57
- let i = 0;
58
- const resultParts = [];
59
- // eslint-disable-next-line no-constant-condition
60
- while (true) {
61
- // Find the position of the next singly or doubly quoted part.
62
- // `i` is increasing monotonically every round of this loop, and the loop
63
- // ends as soon as no matches are found after the `i`th position in the
64
- // string, so this while loop can't be infinite.
65
- const nextQuoteIndex = findNextQuote(s, i);
66
- if (nextQuoteIndex < 0) {
67
- resultParts.push(s.substr(i));
68
- break;
69
- }
70
- // Copy the unquoted part preceding the quoted section we found into the
71
- // result, and put a double-quote into the result to begin the quoted
72
- // section we found.
73
- resultParts.push(s.substr(i, nextQuoteIndex - i));
74
- resultParts.push('"');
75
- i = nextQuoteIndex + 1;
76
- if (s[nextQuoteIndex] === '"') {
77
- // Find the next quotation mark not preceded by a backslash.
78
- const nextDoubleQuoteIndex = findNextUnescapedCharacter(s, i, '"');
79
- if (nextDoubleQuoteIndex < 0) {
80
- throw new Error('Unclosed double quote');
81
- }
82
- // Add that entire double-quoted part to the result.
83
- resultParts.push(s.slice(i, nextDoubleQuoteIndex + 1));
84
- i = nextDoubleQuoteIndex + 1;
85
- }
86
- else {
87
- // Same logic as above, but for a single-quoted part.
88
- const nextSingleQuoteIndex = findNextUnescapedCharacter(s, i, "'");
89
- if (nextSingleQuoteIndex < 0) {
90
- throw new Error('Unclosed single quote');
91
- }
92
- // Escape all double-quotes inside the part, un-escape all single-quotes
93
- // inside the part, and then write it out into the result with the ending
94
- // single-quote replaced with a double-quote.
95
- const part = s
96
- .slice(i, nextSingleQuoteIndex)
97
- .replace(/"/g, '\\"')
98
- .replace(/\\'/g, "'");
99
- resultParts.push(part);
100
- resultParts.push('"');
101
- i = nextSingleQuoteIndex + 1;
102
- }
103
- }
104
- return resultParts.join('');
105
- }
106
- function findNextQuote(s, start) {
107
- for (let i = start, len = s.length; i < len; i++) {
108
- if (s[i] === '"' || s[i] === "'") {
109
- return i;
110
- }
111
- }
112
- return -1;
113
- }
114
- function findNextUnescapedCharacter(s, start, char) {
115
- for (let i = start, len = s.length; i < len; i++) {
116
- if (s[i] === '\\') {
117
- i++;
118
- }
119
- else if (s[i] === char) {
120
- return i;
121
- }
122
- }
123
- return -1;
124
- }
125
- export function deserialize(threadResponseString) {
126
- const options = {
127
- includeLengths: false,
128
- suggestionMode: /^5\n/.test(threadResponseString),
129
- noArrayNewLines: !/^[,\]]/m.test(threadResponseString),
130
- includeExplicitNulls: true,
131
- };
132
- const value = [];
133
- let pos;
134
- if (options.suggestionMode) {
135
- pos = threadResponseString.indexOf("'\n");
136
- if (pos === -1) {
137
- throw new Error('Message was missing beginning header');
138
- }
139
- pos += 2;
140
- }
141
- else {
142
- pos = threadResponseString.indexOf('\n\n');
143
- if (pos === -1) {
144
- throw new Error('Message was missing beginning newlines');
145
- }
146
- pos += 2;
147
- }
148
- while (pos < threadResponseString.length) {
149
- let lineEnd = threadResponseString.indexOf('\n', pos + 1);
150
- if (lineEnd === -1) {
151
- lineEnd = threadResponseString.length;
152
- }
153
- else if (threadResponseString[lineEnd - 1] === '\r') {
154
- // seriously Gmail is crazy. The chunk length only sometimes includes the
155
- // newline after the chunk length.
156
- lineEnd += 1;
157
- }
158
- const line = threadResponseString.slice(pos, lineEnd);
159
- let dataLine;
160
- if (/^\d+\s*$/.test(line)) {
161
- options.includeLengths = true;
162
- const length = +line;
163
- dataLine = threadResponseString.slice(lineEnd, lineEnd + length);
164
- pos = lineEnd + length;
165
- }
166
- else {
167
- dataLine = threadResponseString.slice(pos);
168
- pos = threadResponseString.length;
169
- }
170
- value.push(deserializeArray(dataLine));
171
- }
172
- return { value, options };
173
- }
174
- function transformUnquotedSections(str, cb) {
175
- const parts = [];
176
- let nextQuote;
177
- let position = 0;
178
- let inString = false;
179
- while ((nextQuote = findNextUnescapedCharacter(str, position, '"')) !== -1) {
180
- if (inString) {
181
- parts.push(str.slice(position, nextQuote + 1));
182
- }
183
- else {
184
- parts.push(cb(str.slice(position, nextQuote + 1)));
185
- }
186
- position = nextQuote + 1;
187
- inString = !inString;
188
- }
189
- if (inString) {
190
- throw new Error('string ended inside quoted section');
191
- }
192
- parts.push(cb(str.slice(position)));
193
- return parts.join('');
194
- }
195
- export function deserializeArray(value) {
196
- value = value.replace(/[\r\n\t]/g, '');
197
- // Change all the singly quoted parts to use double-quotes so that the
198
- // data can be JSON-decoded instead of eval'd. (Also necessary for the
199
- // next step.)
200
- value = rewriteSingleQuotes(value);
201
- // Fix some things with the data. (It's in a weird minified JSON-like
202
- // format). Make sure we don't modify any data inside of strings!
203
- value = transformUnquotedSections(value, (match) => match
204
- .replace(/,\s*(?=,|\])/g, ',null') // fix implied nulls
205
- .replace(/\[\s*(?=,)/g, '[null') // "
206
- );
207
- try {
208
- return JSON.parse(value, (k, v) => (v == null ? undefined : v));
209
- }
210
- catch (err) {
211
- throw new Error('deserialization error');
212
- }
213
- }
214
- export function serialize(value, options) {
215
- if (options.suggestionMode) {
216
- assert(options.includeLengths);
217
- return suggestionSerialize(value, options.includeExplicitNulls);
218
- }
219
- return threadListSerialize(value, options);
220
- }
221
- function threadListSerialize(threadResponseArray, options) {
222
- const { includeLengths, noArrayNewLines, includeExplicitNulls } = options;
223
- let response = ")]}'\n" + (noArrayNewLines && includeLengths ? '' : '\n');
224
- for (let ii = 0; ii < threadResponseArray.length; ii++) {
225
- const arraySection = threadResponseArray[ii];
226
- const arraySectionString = serializeArray(arraySection, noArrayNewLines, includeExplicitNulls);
227
- if (!includeLengths) {
228
- response += arraySectionString;
229
- }
230
- else {
231
- const length = arraySectionString.length + (noArrayNewLines ? 2 : 1);
232
- response +=
233
- (noArrayNewLines ? '\n' : '') + length + '\n' + arraySectionString;
234
- }
235
- }
236
- if (!includeLengths) {
237
- if (!noArrayNewLines) {
238
- const lines = response.split(/\r|\n/);
239
- const firstLines = lines.slice(0, -3);
240
- const lastLines = lines.slice(-3);
241
- response = firstLines.join('\n');
242
- response += '\n' + lastLines[0] + lastLines[1].replace(/"/g, "'");
243
- }
244
- else {
245
- // A 16-digit hexadecimal string is often at the end, but sometimes it
246
- // has fewer digits.
247
- response = response.replace(/"([0-9a-f]{8,16})"\]$/, "'$1']");
248
- }
249
- }
250
- return response + (noArrayNewLines && includeLengths ? '\n' : '');
251
- }
252
- function suggestionSerialize(suggestionsArray, includeExplicitNulls) {
253
- let response = "5\n)]}'\n";
254
- for (let ii = 0; ii < suggestionsArray.length; ii++) {
255
- const arraySection = suggestionsArray[ii];
256
- const arraySectionString = serializeArray(arraySection, false, includeExplicitNulls);
257
- const length = arraySectionString.length;
258
- response += length + '\r\n' + arraySectionString;
259
- }
260
- return response;
261
- }
262
- function serializeArray(array, noArrayNewLines, includeExplicitNulls) {
263
- let response = '[';
264
- for (let ii = 0; ii < array.length; ii++) {
265
- const item = array[ii];
266
- let addition;
267
- if (Array.isArray(item)) {
268
- addition = serializeArray(item, noArrayNewLines, includeExplicitNulls);
269
- }
270
- else if (item == null) {
271
- addition = includeExplicitNulls ? 'null' : '';
272
- }
273
- else {
274
- addition = JSON.stringify(item)
275
- .replace(/</gim, '\\u003c')
276
- .replace(/=/gim, '\\u003d')
277
- .replace(/>/gim, '\\u003e')
278
- .replace(/&/gim, '\\u0026');
279
- }
280
- if (ii > 0) {
281
- response += ',';
282
- }
283
- response += addition;
284
- }
285
- response += ']' + (noArrayNewLines ? '' : '\n');
286
- return response;
287
- }
288
- export function readDraftId(response, messageID) {
289
- const decoded = deserialize(response).value;
290
- const msgA = t.toArray(decoded, t.compose(t.cat, t.filter(Array.isArray), t.cat, t.filter((x) => x[0] === 'ms' && x[1] === messageID), t.take(1), t.map((x) => x[60])))[0];
291
- if (msgA) {
292
- const match = msgA.match(/^msg-[^:]:(\S+)$/i);
293
- return match && match[1];
294
- }
295
- return null;
296
- }
297
- export function replaceThreadsInResponse(response, replacementThreads, { start, total }) {
298
- const { value, options } = deserialize(response);
299
- const actionResponseMode = value.length === 1 &&
300
- value[0].length === 2 &&
301
- typeof value[0][1] === 'string';
302
- const threadValue = actionResponseMode
303
- ? value[0][0].map((x) => [x])
304
- : value;
305
- /*
306
- threadValue looks like this:
307
- [
308
- [ // group
309
- ["blah", ...], // item
310
- ["blah", ...] // item
311
- ],
312
- [ // group
313
- ["blah", ...],
314
- ["tb", [...]],
315
- ["tb", [...]]
316
- ],
317
- [
318
- ["tb", [...]],
319
- ["blah", ...]
320
- ],
321
- [
322
- ["blah", ...],
323
- ["blah", ...]
324
- ],
325
- ]
326
-
327
- threadValue is an array of groups. Each group is an array of items. An item is
328
- an array which has an identifier string as its first item. Each "tb" item
329
- contains an array of up to 10 threads. All of the "tb" items will be sequential
330
- but may overflow to other groups.
331
-
332
- We want to replace all of the "tb" items, while trying to stick close to the
333
- original structure. We prepare by creating an array of groups that come before
334
- any groups containing a "tb" item, an array of groups that come after any
335
- groups containing a "tb" item, an array of items that come before any "tb"
336
- items in the first "tb" group, and an array of items that come after any "tb"
337
- items in the last "tb" group. Then we generate the new "tb" items, and splice
338
- it all back together.
339
-
340
- */
341
- const preTbGroups = [];
342
- const postTbGroups = [];
343
- let preTbItems = [];
344
- let postTbItems = [];
345
- let hasSeenTb = false;
346
- threadValue.forEach((group) => {
347
- let tbSeenInThisGroup = false;
348
- const preTbGroup = [];
349
- const postTbGroup = [];
350
- group.forEach((item) => {
351
- if (total && item[0] === 'ti') {
352
- if (typeof total === 'number') {
353
- // does not switch out of 'many'-total mode (we currently never need this).
354
- item[2] = item[10] = total;
355
- }
356
- else if (total === 'MANY') {
357
- // large total to ensure it is always larger than the actual
358
- // number of threads.
359
- item[2] = item[10] = 100 * 1000;
360
- // flip response from number-total mode into 'many'-total mode.
361
- item[3] = 1;
362
- const query = item[5];
363
- if (item[6]) {
364
- item[6][0] = [query, 1];
365
- }
366
- else {
367
- console.error('replaceThreadsInResponse(): Missing item[6]');
368
- }
369
- }
370
- }
371
- if (item[0] === 'tb') {
372
- hasSeenTb = tbSeenInThisGroup = true;
373
- if (preTbGroup.length) {
374
- preTbItems = preTbGroup;
375
- }
376
- postTbItems = postTbGroup;
377
- }
378
- else if (!hasSeenTb) {
379
- preTbGroup.push(item);
380
- }
381
- else {
382
- postTbGroup.push(item);
383
- }
384
- });
385
- if (!tbSeenInThisGroup) {
386
- if (!hasSeenTb) {
387
- preTbGroups.push(preTbGroup);
388
- }
389
- else {
390
- postTbGroups.push(postTbGroup);
391
- }
392
- }
393
- });
394
- const newTbs = _threadsToTbGroups(replacementThreads, start);
395
- if (preTbItems.length) {
396
- newTbs[0] = preTbItems.concat(newTbs[0] || []);
397
- }
398
- if (postTbItems.length) {
399
- if (newTbs.length) {
400
- newTbs[newTbs.length - 1] = newTbs[newTbs.length - 1].concat(postTbItems);
401
- }
402
- else {
403
- newTbs.push(postTbItems);
404
- }
405
- }
406
- const parsedNew = flatten([preTbGroups, newTbs, postTbGroups]);
407
- const allSections = flatten(parsedNew);
408
- const endSection = last(allSections);
409
- if (endSection[0] !== 'e') {
410
- throw new Error('Failed to find end section');
411
- }
412
- endSection[1] = allSections.length;
413
- const fullNew = actionResponseMode
414
- ? [[flatten(parsedNew), value[0][1]]]
415
- : parsedNew;
416
- return serialize(fullNew, options);
417
- }
418
- export function extractThreads(response) {
419
- return extractThreadsFromDeserialized(deserialize(response).value);
420
- }
421
- export function extractThreadsFromDeserialized(value) {
422
- if (value.length === 1 &&
423
- value[0].length === 2 &&
424
- typeof value[0][1] === 'string') {
425
- value = [value[0][0]];
426
- }
427
- return _extractThreadArraysFromResponseArray(value).map((thread) => Object.freeze(Object.defineProperty({
428
- subject: htmlToText(thread[9]),
429
- shortDate: htmlToText(thread[14]),
430
- timeString: htmlToText(thread[15]),
431
- peopleHtml: cleanupPeopleLine(thread[7]),
432
- timestamp: thread[16] / 1000,
433
- isUnread: thread[9].indexOf('<b>') > -1,
434
- lastEmailAddress: thread[28],
435
- bodyPreviewHtml: thread[10],
436
- someGmailMessageIds: [thread[1], thread[2]],
437
- gmailThreadId: thread[0],
438
- }, '_originalGmailFormat', { value: thread })));
439
- }
440
- const _extractMessageIdsFromThreadBatchRequestXf = t.compose(t.cat, t.cat, t.filter((item) => item[0] === 'cs'), t.map((item) => [item[1], item[2]]));
441
- export function extractMessageIdsFromThreadBatchRequest(response) {
442
- const { value } = deserialize(response);
443
- return t.toObj(value, _extractMessageIdsFromThreadBatchRequestXf);
444
- }
445
- export function cleanupPeopleLine(peopleHtml) {
446
- // Removes possible headings like "To: " that get added on the Sent page, and
447
- // removes a class that's specific to the current preview pane setting.
448
- return peopleHtml
449
- .replace(/^[^<]*/, '')
450
- .replace(/(<span[^>]*) class="[^"]*"/g, '$1');
451
- }
452
- const _extractThreadArraysFromResponseArrayXf = t.compose(t.cat, t.filter((item) => item[0] === 'tb'), t.map((item) => item[2]), t.cat);
453
- function _extractThreadArraysFromResponseArray(threadResponseArray) {
454
- return t.toArray(threadResponseArray, _extractThreadArraysFromResponseArrayXf);
455
- }
456
- const _extractThreadsFromConversationViewResponseArrayXf = t.compose(t.cat, t.filter((item) => item[0] === 'cs'), t.map((item) => ({
457
- threadID: item[1],
458
- messageIDs: item[8],
459
- })));
460
- const _extractMessagesFromResponseArrayXf = t.compose(t.cat, t.filter((item) => item[0] === 'ms'), t.map((item) => ({
461
- messageID: item[1],
462
- date: item[7],
463
- })));
464
- export function extractMessages(response) {
465
- // regular view=cv requests have a top level array length of 1
466
- // whereas view=cv requests when you refresh Gmail while looking at a thread
467
- // have a top level array with more elements
468
- let { value } = deserialize(response);
469
- if (value.length === 1)
470
- value = value[0];
471
- const threads = t.toArray(value, _extractThreadsFromConversationViewResponseArrayXf);
472
- const messages = t.toArray(value, _extractMessagesFromResponseArrayXf);
473
- const messageMap = {};
474
- messages.forEach((message) => {
475
- messageMap[message.messageID] = message;
476
- });
477
- return threads.map(({ threadID, messageIDs }) => ({
478
- threadID,
479
- messages: messageIDs.map((messageID) => messageMap[messageID]),
480
- }));
481
- }
482
- function _threadsToTbGroups(threads, start) {
483
- const _threadsToTbGroupsXf = t.compose(t.map((thread) => thread._originalGmailFormat), t.partition(10), mapIndexed((threadsChunk, i) => [['tb', start + i * 10, threadsChunk]]));
484
- return t.toArray(threads, _threadsToTbGroupsXf);
485
- }
486
- function _searchArray(responseArray, marker, markerArrayValidator) {
487
- const pathArray = _searchObject(responseArray, marker, 100);
488
- for (let ii = 0; ii < pathArray.length; ii++) {
489
- const pathToMarkerArray = pathArray[ii].path.slice(0, -1);
490
- const markerArray = _getArrayValueFromPath(responseArray, pathToMarkerArray);
491
- if (markerArrayValidator(markerArray)) {
492
- return markerArray;
493
- }
494
- }
495
- }
496
- function _searchObject(element, query, maxDepth) {
497
- const retVal = [];
498
- const initialNode = {
499
- el: element,
500
- path: [],
501
- };
502
- const nodeList = [initialNode];
503
- while (nodeList.length > 0) {
504
- const node = nodeList.pop();
505
- if (node.path.length <= maxDepth) {
506
- if (node.el !== null && typeof node.el === 'object') {
507
- const keys = Object.keys(node.el);
508
- for (let i = 0; i < keys.length; i++) {
509
- const key = keys[i];
510
- const newNode = {
511
- el: node.el[key],
512
- path: node.path.concat([key]),
513
- };
514
- nodeList.push(newNode);
515
- }
516
- }
517
- else {
518
- if (node.el === query) {
519
- retVal.push(node);
520
- }
521
- }
522
- }
523
- }
524
- return retVal;
525
- }
526
- function _getArrayValueFromPath(responseArray, path) {
527
- let currentArray = responseArray;
528
- for (let ii = 0; ii < path.length; ii++) {
529
- currentArray = currentArray[path[ii]];
530
- }
531
- return currentArray;
532
- }