@inboxsdk/core 1.2.5 → 1.2.8-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/inboxsdk.js +4462 -456
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +3 -2
  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-compose-view/get-address-changes-stream.d.ts +15 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts.map +1 -1
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  21. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts +9 -0
  22. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.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/compose-view.d.ts +8 -2
  28. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -1
  29. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  30. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  31. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  32. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  33. package/src/build/exec.js +0 -26
  34. package/src/build/spawn.js +0 -17
  35. package/src/common/ajax.js +0 -90
  36. package/src/common/cachebust-url.js +0 -10
  37. package/src/common/censorHTMLstring.js +0 -37
  38. package/src/common/censorHTMLtree.js +0 -28
  39. package/src/common/censorJSONTree.js +0 -15
  40. package/src/common/connectivity-test.js +0 -21
  41. package/src/common/defer.js +0 -11
  42. package/src/common/find-parent.js +0 -10
  43. package/src/common/get-extension-id.js +0 -7
  44. package/src/common/get-or-fail.js +0 -8
  45. package/src/common/get-session-id.js +0 -14
  46. package/src/common/get-stack-trace.js +0 -6
  47. package/src/common/html-to-text.js +0 -7
  48. package/src/common/isElementVisible.js +0 -6
  49. package/src/common/load-script.js +0 -126
  50. package/src/common/log-error.js +0 -185
  51. package/src/common/quoted-split.js +0 -18
  52. package/src/common/rate-limit-queuer.js +0 -57
  53. package/src/common/rate-limit.js +0 -14
  54. package/src/common/version.js +0 -8
  55. package/src/inboxsdk-js/header.js +0 -19
  56. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  57. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  58. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  59. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  60. package/src/inboxsdk-js/inboxsdk.js +0 -23
  61. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  62. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -28
  63. package/src/injected-js/gmail/constants.js +0 -2
  64. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  65. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  66. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  67. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  68. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  69. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  70. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  71. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  72. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  73. package/src/injected-js/injected-logger.js +0 -50
  74. package/src/injected-js/main.js +0 -49
  75. package/src/injected-js/message-metadata-holder.js +0 -103
  76. package/src/injected-js/setup-data-exposer.js +0 -135
  77. package/src/injected-js/setup-error-silencer.js +0 -15
  78. package/src/injected-js/setup-event-reemitter.js +0 -47
  79. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  80. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  81. package/src/injected-js/setupPushStateListener.js +0 -14
  82. package/src/injected-js/xhr-helper.js +0 -43
  83. package/src/injected-js/xhr-proxy-factory.js +0 -537
  84. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  85. package/src/platform-implementation-js/constants/router.js +0 -60
  86. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  128. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  129. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  130. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  131. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  132. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  133. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -338
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  186. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  187. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  188. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  198. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  199. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  200. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  201. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  202. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  203. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  204. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  205. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  206. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  207. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  208. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  209. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  210. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  211. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  212. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  213. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  214. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  215. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  216. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  217. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  218. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  219. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  220. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  221. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  222. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  223. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  224. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  225. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  226. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  227. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  228. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  229. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  230. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  231. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  232. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  233. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  234. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  235. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  236. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  237. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  238. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  239. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  240. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  241. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  242. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  243. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  244. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  245. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  246. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  247. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  248. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  249. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  250. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  251. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  252. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  253. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  254. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  255. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  256. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  257. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  258. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  259. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  260. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  261. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  262. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  263. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  264. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  265. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  266. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  267. package/src/platform-implementation-js/lib/idMap.js +0 -40
  268. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  269. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  270. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -13
  271. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  272. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  273. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  274. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  275. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  276. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  277. package/src/platform-implementation-js/lib/logger.js +0 -439
  278. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  279. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  280. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  281. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  282. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  283. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  284. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  285. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  286. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  287. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  288. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  289. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  290. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  291. package/src/platform-implementation-js/main.js +0 -42
  292. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  293. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  294. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  295. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  296. package/src/platform-implementation-js/namespaces/global.js +0 -30
  297. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  298. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  299. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  300. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  301. package/src/platform-implementation-js/namespaces/router.js +0 -139
  302. package/src/platform-implementation-js/namespaces/search.js +0 -29
  303. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  304. package/src/platform-implementation-js/namespaces/user.js +0 -57
  305. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  306. package/src/platform-implementation-js/platform-implementation.js +0 -178
  307. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  308. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  309. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  310. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  311. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  312. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  313. package/src/platform-implementation-js/views/compose-view.js +0 -310
  314. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  315. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  316. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  317. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  318. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  319. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  320. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  321. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  322. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  323. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  324. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  325. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  326. package/src/platform-implementation-js/views/section-view.js +0 -60
  327. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  328. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  329. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  330. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  331. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  332. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  333. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  334. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,90 +0,0 @@
1
- import querystring from 'querystring';
2
- import delay from 'pdelay';
3
- import cachebustUrl from './cachebust-url';
4
- const MAX_TIMEOUT = 64 * 1000; //64 seconds
5
- const MAX_RETRIES = 5;
6
- const serversToIgnore = {};
7
- export default function ajax(opts) {
8
- if (!opts || typeof opts.url !== 'string') {
9
- throw new Error('URL must be given');
10
- }
11
- return new Promise(function (resolve, reject) {
12
- const method = opts.method ? opts.method : 'GET';
13
- let url = opts.url;
14
- let stringData = null;
15
- if (opts.data) {
16
- stringData =
17
- typeof opts.data === 'string'
18
- ? opts.data
19
- : querystring.stringify(opts.data);
20
- if (method === 'GET' || method === 'HEAD') {
21
- url += (/\?/.test(url) ? '&' : '?') + stringData;
22
- stringData = null;
23
- }
24
- }
25
- const canRetry = opts.canRetry != null
26
- ? opts.canRetry
27
- : method === 'GET' || method === 'HEAD';
28
- const match = url.match(/(?:(?:[a-z]+:)?\/\/)?([^/]*)\//);
29
- if (!match) {
30
- throw new Error('Failed to match url');
31
- }
32
- const server = match[1];
33
- if (Object.prototype.hasOwnProperty.call(serversToIgnore, server)) {
34
- reject(new Error(`Server at ${url} has told us to stop connecting`));
35
- return;
36
- }
37
- if (opts.cachebust) {
38
- url = cachebustUrl(url);
39
- }
40
- const XMLHttpRequest = opts.XMLHttpRequest || window.XMLHttpRequest;
41
- const xhr = new XMLHttpRequest();
42
- Object.assign(xhr, opts.xhrFields);
43
- xhr.onerror = function (event) {
44
- if ((opts.retryNum || 0) < MAX_RETRIES) {
45
- if (xhr.status === 502 ||
46
- ((xhr.status === 0 || xhr.status >= 500) && canRetry)) {
47
- resolve(_retry(opts));
48
- return;
49
- }
50
- }
51
- const err = Object.assign(new Error(`Failed to load ${url}`), {
52
- event,
53
- xhr,
54
- status: xhr.status,
55
- });
56
- // give a way for a server to tell us to go away for now. Good fallback
57
- // in case a bug ever causes clients to spam a server with requests.
58
- if (xhr.status == 490) {
59
- serversToIgnore[server] = true;
60
- }
61
- reject(err);
62
- };
63
- xhr.onload = function (event) {
64
- if (xhr.status === 200) {
65
- resolve({
66
- xhr,
67
- text: xhr.responseText,
68
- });
69
- }
70
- else {
71
- xhr.onerror(event);
72
- }
73
- };
74
- xhr.open(method, url, true);
75
- if (opts.headers) {
76
- const { headers } = opts;
77
- Object.keys(headers).forEach((name) => {
78
- const value = headers[name];
79
- xhr.setRequestHeader(name, value);
80
- });
81
- }
82
- xhr.send(stringData);
83
- });
84
- }
85
- function _retry(opts) {
86
- const retryNum = (opts.retryNum || 0) + 1;
87
- // 2000 4000 8000...
88
- const retryTimeout = Math.min(Math.pow(2, retryNum) * 1000, MAX_TIMEOUT);
89
- return delay(retryTimeout).then(() => ajax(Object.assign({}, opts, { retryNum })));
90
- }
@@ -1,10 +0,0 @@
1
- const r = /([?&])_=[^&]*/;
2
- let nonce = Date.now() + Math.floor(Math.random() * Math.pow(2, 32));
3
- export default function cachebustUrl(url) {
4
- if (r.test(url)) {
5
- return url.replace(r, '$1_=' + nonce++);
6
- }
7
- else {
8
- return url + (/\?/.test(url) ? '&' : '?') + '_=' + nonce++;
9
- }
10
- }
@@ -1,37 +0,0 @@
1
- export const ATTRIBUTE_WHITELIST = new Set([
2
- // standard html props
3
- 'class',
4
- 'rel',
5
- 'target',
6
- 'type',
7
- 'tabindex',
8
- 'id',
9
- 'style',
10
- 'role',
11
- 'contenteditable',
12
- 'aria-expanded',
13
- 'aria-hidden',
14
- 'aria-disabled',
15
- 'aria-haspopup',
16
- 'aria-labelledby',
17
- 'aria-busy',
18
- 'aria-multiselectable',
19
- 'name',
20
- // inbox props
21
- 'data-action-data',
22
- 'data-item-id',
23
- 'data-msg-id',
24
- 'data-map-id',
25
- 'g_editable',
26
- 'jsnamespace',
27
- 'jsaction',
28
- ]);
29
- // Takes an HTML string, and returns it with all of the text nodes and
30
- // attribute values censored.
31
- // When we fail to parse data out of Gmail's HTML, we can use this function and
32
- // then log the censored HTML so we know we aren't logging user data.
33
- export default function censorHTMLstring(html) {
34
- return html
35
- .replace(/(^|>)([^<]+)/g, (match, start, text) => start + (text.trim().length ? '...' : ''))
36
- .replace(/\s([^\s=]+)\s*=\s*"[^"]+"/g, (match, attr) => ATTRIBUTE_WHITELIST.has(attr) ? match : ` ${attr}="..."`);
37
- }
@@ -1,28 +0,0 @@
1
- import autoHtml from 'auto-html';
2
- import censorHTMLstring, { ATTRIBUTE_WHITELIST } from './censorHTMLstring';
3
- export default function censorHTMLtree(target) {
4
- const openers = [];
5
- const closers = [];
6
- let parent = target;
7
- let lastIndex = 0;
8
- while (parent) {
9
- const attrHtml = Array.from(parent.attributes)
10
- .map(({ name, value }) => autoHtml ` ${name}="${ATTRIBUTE_WHITELIST.has(name) ? value : '...'}"`)
11
- .join('');
12
- const headerElCount = lastIndex;
13
- const footerElCount = parent.children.length - 1 - lastIndex;
14
- const headers = target !== parent && headerElCount ? `[${headerElCount}]` : '';
15
- const footers = target !== parent && footerElCount ? `[${footerElCount}]` : '';
16
- openers.push(autoHtml `<${parent.nodeName.toLowerCase()}${{
17
- __html: attrHtml,
18
- }}>${headers}`);
19
- closers.push(autoHtml `${footers}</${parent.nodeName.toLowerCase()}>`);
20
- if (parent.parentElement) {
21
- lastIndex = Array.from(parent.parentElement.children).indexOf(parent);
22
- }
23
- parent = parent.parentElement;
24
- }
25
- return (openers.reverse().join('') +
26
- censorHTMLstring(target.innerHTML) +
27
- closers.join(''));
28
- }
@@ -1,15 +0,0 @@
1
- import once from 'lodash/once';
2
- import isStreakAppId from '../platform-implementation-js/lib/isStreakAppId';
3
- const hasStreakInstalled = once(() => {
4
- const appIds = JSON.parse((typeof document !== 'undefined' &&
5
- document.documentElement.getAttribute('data-inboxsdk-active-app-ids')) ||
6
- '[]');
7
- return appIds.find(({ appId }) => isStreakAppId(appId));
8
- });
9
- export default function censorJSONTree(object) {
10
- return JSON.stringify(object, (key, value) => {
11
- if (typeof value !== 'string' || value.length <= 10)
12
- return value;
13
- return hasStreakInstalled() ? `${value.substring(0, 10)}...` : '...';
14
- });
15
- }
@@ -1,21 +0,0 @@
1
- import cachebustUrl from './cachebust-url';
2
- import fromPairs from 'lodash/fromPairs';
3
- const URLS = ['https://www.inboxsdk.com/images/logo-red.png'];
4
- function imageTest(url) {
5
- return new Promise((resolve) => {
6
- const img = document.createElement('img');
7
- img.onload = function () {
8
- resolve(true);
9
- };
10
- img.addEventListener('loadend', function () {
11
- resolve(false);
12
- });
13
- img.onerror = function () {
14
- resolve(false);
15
- };
16
- img.src = cachebustUrl(url);
17
- });
18
- }
19
- export default function connectivityTest() {
20
- return Promise.all(URLS.map((url) => imageTest(url).then((success) => [url, success]))).then((results) => fromPairs(results));
21
- }
@@ -1,11 +0,0 @@
1
- // This is a drop-in replacement for RSVP.defer(). New code should avoid using
2
- // this, and should use the Promise constructor instead!
3
- export default function defer() {
4
- let resolve = undefined;
5
- let reject = undefined;
6
- const promise = new Promise((_resolve, _reject) => {
7
- resolve = _resolve;
8
- reject = _reject;
9
- });
10
- return { resolve, reject, promise };
11
- }
@@ -1,10 +0,0 @@
1
- export default function findParent(el, cb) {
2
- let candidate = el.parentElement;
3
- while (candidate) {
4
- if (cb(candidate)) {
5
- return candidate;
6
- }
7
- candidate = candidate.parentElement;
8
- }
9
- return null;
10
- }
@@ -1,7 +0,0 @@
1
- export default function getExtensionId() {
2
- const chrome = global.chrome;
3
- if (chrome && chrome.extension && chrome.extension.getURL) {
4
- return chrome.extension.getURL('');
5
- }
6
- return null;
7
- }
@@ -1,8 +0,0 @@
1
- const get = function get(map, key) {
2
- const value = map.get(key);
3
- if (value === undefined) {
4
- throw new Error('Key not found in map');
5
- }
6
- return value;
7
- };
8
- export default get;
@@ -1,14 +0,0 @@
1
- export default function getSessionId() {
2
- const attrValue = typeof document !== 'undefined' &&
3
- document.documentElement.getAttribute('data-inboxsdk-session-id');
4
- if (typeof attrValue === 'string') {
5
- return attrValue;
6
- }
7
- else {
8
- const sessionId = Date.now() + '-' + Math.random();
9
- if (typeof document !== 'undefined') {
10
- document.documentElement.setAttribute('data-inboxsdk-session-id', sessionId);
11
- }
12
- return sessionId;
13
- }
14
- }
@@ -1,6 +0,0 @@
1
- export default function getStackTrace() {
2
- const err = new Error('Stack saver');
3
- // Cut the first two lines off. The first line has the error name, and the
4
- // second line is inside this function.
5
- return ('' + err.stack).replace(/^([^\n]*\n){2}/, '');
6
- }
@@ -1,7 +0,0 @@
1
- // Quick function for converting HTML with entities into text without
2
- // introducing an XSS vulnerability.
3
- export default function htmlToText(html) {
4
- const div = document.createElement('div');
5
- div.innerHTML = html.replace(/<[^>]*>?/g, '');
6
- return div.textContent;
7
- }
@@ -1,6 +0,0 @@
1
- // This function answers the question "Does this element consume space in the
2
- // document?" Based on jQuery's :visible selector:
3
- // https://api.jquery.com/visible-selector/
4
- export default function isElementVisible(el) {
5
- return el.offsetWidth > 0 || el.offsetHeight > 0;
6
- }
@@ -1,126 +0,0 @@
1
- import once from 'lodash/once';
2
- import connectivityTest from './connectivity-test';
3
- import logError from './log-error';
4
- import ajax from './ajax';
5
- import delay from 'pdelay';
6
- const isContentScript = once(function () {
7
- if (global.chrome && global.chrome.extension)
8
- return true;
9
- if (global.safari && global.safari.extension)
10
- return true;
11
- return false;
12
- });
13
- function addScriptToPage(url, cors) {
14
- const script = document.createElement('script');
15
- script.type = 'text/javascript';
16
- if (cors) {
17
- script.crossOrigin = 'anonymous';
18
- }
19
- const promise = new Promise((resolve, reject) => {
20
- script.addEventListener('error', function (event) {
21
- reject(event.error ||
22
- new Error(event.message || 'Load failure: ' + url, event.filename, event.lineno, event.column));
23
- }, false);
24
- script.addEventListener('load', function () {
25
- // Make sure the script has a moment to execute before this promise
26
- // resolves.
27
- setTimeout(resolve, 1);
28
- }, false);
29
- });
30
- script.src = url;
31
- if (!document.head)
32
- throw new Error('missing head');
33
- document.head.appendChild(script);
34
- return promise;
35
- }
36
- export default function loadScript(url, opts) {
37
- let pr;
38
- if (isContentScript()) {
39
- const attempt = function (retryNum, lastErr) {
40
- if (retryNum > 3) {
41
- throw (lastErr ||
42
- new Error('Ran out of loadScript attempts for unknown reason'));
43
- }
44
- return ajax({
45
- url,
46
- cachebust: retryNum > 0,
47
- XMLHttpRequest: opts ? opts.XMLHttpRequest : undefined,
48
- }).then((response) => {
49
- // Q: Why put the code into a function before executing it instead of
50
- // evaling it immediately?
51
- // A: Chrome would execute it before applying any remembered
52
- // breakpoints.
53
- // Q: Why not just use `... = new Function(...)`?
54
- // A: The sourcemaps would be off by one line in Chrome because of
55
- // https://code.google.com/p/chromium/issues/detail?id=109362
56
- // Q: indirectEval?
57
- // A: Using the eval value rather than the eval keyword causes the
58
- // code passed to it to be run in the global scope instead of the
59
- // current scope. (Seriously, it's a javascript thing.)
60
- const originalCode = response.text;
61
- const indirectEval = eval;
62
- const codeParts = [];
63
- if (opts && opts.disableSourceMappingURL) {
64
- // Don't remove a data: URI sourcemap (used in dev)
65
- codeParts.push(originalCode.replace(/\/\/# sourceMappingURL=(?!data:)[^\n]*\n?$/, ''));
66
- }
67
- else {
68
- codeParts.push(originalCode);
69
- }
70
- if (!opts || !opts.nowrap) {
71
- codeParts.unshift('(function(){');
72
- codeParts.push('\n});');
73
- }
74
- codeParts.push('\n//# sourceURL=' + url + '\n');
75
- const codeToRun = codeParts.join('');
76
- let program;
77
- try {
78
- program = indirectEval(codeToRun);
79
- }
80
- catch (err) {
81
- if (err && err.name === 'SyntaxError') {
82
- logError(err, {
83
- retryNum,
84
- caughtSyntaxError: true,
85
- url,
86
- message: `SyntaxError in loading ${url}. Did we not load it fully? Trying again...`,
87
- }, {});
88
- return delay(5000).then(() => attempt(retryNum + 1, err));
89
- }
90
- // SyntaxErrors are the only errors that can happen during eval that we
91
- // retry because sometimes AppEngine doesn't serve the full javascript.
92
- // No other error is retried because other errors aren't likely to be
93
- // transient.
94
- throw err;
95
- }
96
- if (!opts || !opts.nowrap) {
97
- program.call(global);
98
- }
99
- });
100
- };
101
- pr = attempt(0, null);
102
- }
103
- else {
104
- // Try to add script as CORS first so we can get error stack data from it.
105
- pr = addScriptToPage(url, true).catch(() => {
106
- // Only show the warning if we successfully load the script on retry.
107
- return addScriptToPage(url, false).then(() => {
108
- console.warn('Script ' +
109
- url +
110
- ' included without CORS headers. Error logs might be censored by the browser.');
111
- });
112
- });
113
- }
114
- pr.catch((err) => {
115
- return connectivityTest().then((connectivityTestResults) => {
116
- logError(err, {
117
- url,
118
- connectivityTestResults,
119
- status: err && err.status,
120
- response: err && err.xhr ? err.xhr.responseText : null,
121
- message: 'Failed to load script',
122
- }, {});
123
- });
124
- });
125
- return pr;
126
- }
@@ -1,185 +0,0 @@
1
- import ajax from './ajax';
2
- import rateLimit from './rate-limit';
3
- import getStackTrace from './get-stack-trace';
4
- import getExtensionId from './get-extension-id';
5
- import getSessionId from './get-session-id';
6
- import { BUILD_VERSION } from './version';
7
- import isObject from 'lodash/isObject';
8
- const sessionId = getSessionId();
9
- // code inside the platform-implementation should use logger.js instead of
10
- // interacting with this directly!
11
- export default function logError(err, details, context) {
12
- if (typeof document === 'undefined') {
13
- // In tests, just throw the error.
14
- throw err;
15
- }
16
- // It's important that we can't throw an error or leave a rejected promise
17
- // unheard while logging an error in order to make sure to avoid ever
18
- // getting into an infinite loop of reporting uncaught errors.
19
- try {
20
- if (haveWeSeenThisErrorAlready(err)) {
21
- return;
22
- }
23
- else {
24
- markErrorAsSeen(err);
25
- }
26
- if (!(err instanceof Error)) {
27
- console.warn('First parameter to Logger.error was not an error object:', err);
28
- err = new Error('Logger.error called with non-error: ' + err);
29
- markErrorAsSeen(err);
30
- }
31
- const { appIds, implVersion, isUsingSyncAPI, userEmailHash } = context;
32
- const loaderVersion = context.loaderVersion || BUILD_VERSION;
33
- const sentByApp = !!context.sentByApp;
34
- const errorProperties = {};
35
- for (const name in err) {
36
- if (Object.prototype.hasOwnProperty.call(err, name)) {
37
- try {
38
- const value = err[name];
39
- JSON.stringify(value);
40
- errorProperties[name] = value;
41
- }
42
- catch (err) {
43
- // ignore
44
- }
45
- }
46
- }
47
- if (Object.keys(errorProperties).length > 0) {
48
- details = { errorProperties, details };
49
- }
50
- // Might not have been passed a useful error object with a stack, so get
51
- // our own current stack just in case.
52
- const nowStack = getStackTrace();
53
- const stuffToLog = ['Error logged:', err];
54
- if (err && err.stack) {
55
- stuffToLog.push('\n\nOriginal error stack:\n' + err.stack);
56
- }
57
- stuffToLog.push('\n\nError logged from:\n' + nowStack);
58
- if (details) {
59
- stuffToLog.push('\n\nError details:', details);
60
- }
61
- stuffToLog.push('\n\nExtension App Ids:', JSON.stringify(appIds, null, 2));
62
- stuffToLog.push('\nSent by App:', sentByApp);
63
- stuffToLog.push('\nSession Id:', sessionId);
64
- stuffToLog.push('\nExtension Id:', getExtensionId());
65
- stuffToLog.push('\nInboxSDK Loader Version:', loaderVersion);
66
- stuffToLog.push('\nInboxSDK Implementation Version:', implVersion);
67
- stuffToLog.push('\nIs Using Sync API:', isUsingSyncAPI);
68
- console.error(...stuffToLog);
69
- const report = {
70
- message: (err && err.message) || err,
71
- stack: err && err.stack,
72
- loggedFrom: nowStack,
73
- details,
74
- appIds,
75
- sentByApp,
76
- sessionId,
77
- emailHash: userEmailHash,
78
- extensionId: getExtensionId(),
79
- loaderVersion: loaderVersion,
80
- implementationVersion: implVersion,
81
- isUsingSyncAPI,
82
- origin: document.location.origin,
83
- timestamp: Date.now() * 1000,
84
- };
85
- sendError(report);
86
- if (document.documentElement.getAttribute('inboxsdk-emit-error-event') ===
87
- 'true') {
88
- document.documentElement.dispatchEvent(new CustomEvent('inboxSDKerror', {
89
- bubbles: false,
90
- cancelable: false,
91
- detail: {
92
- message: (err && err.message) || err,
93
- stack: err && err.stack,
94
- loggedFrom: nowStack,
95
- details,
96
- sentByApp,
97
- },
98
- }));
99
- }
100
- }
101
- catch (err2) {
102
- tooManyErrors(err2, [err, details, context]);
103
- }
104
- }
105
- const _extensionSeenErrors = (() => {
106
- // Safari <9 doesn't have WeakSet and we don't want to pull in the polyfill,
107
- // so we make one out of a WeakMap.
108
- if (!global.__inboxsdk_extensionSeenErrors && global.WeakMap) {
109
- Object.defineProperty(global, '__inboxsdk_extensionSeenErrors', {
110
- value: new global.WeakMap(),
111
- });
112
- }
113
- return {
114
- has(e) {
115
- if (global.__inboxsdk_extensionSeenErrors) {
116
- return global.__inboxsdk_extensionSeenErrors.has(e);
117
- }
118
- else {
119
- try {
120
- return !!e.__inboxsdk_extensionHasSeenError;
121
- }
122
- catch (err) {
123
- console.error(err);
124
- return false;
125
- }
126
- }
127
- },
128
- add(e) {
129
- if (global.__inboxsdk_extensionSeenErrors &&
130
- global.__inboxsdk_extensionSeenErrors.set) {
131
- // It's a WeakMap.
132
- global.__inboxsdk_extensionSeenErrors.set(e, true);
133
- }
134
- else if (global.__inboxsdk_extensionSeenErrors &&
135
- global.__inboxsdk_extensionSeenErrors.add) {
136
- // Older versions of inboxsdk.js initialized it as a WeakSet instead,
137
- // so handle that too.
138
- global.__inboxsdk_extensionSeenErrors.add(e);
139
- }
140
- else {
141
- try {
142
- Object.defineProperty(e, '__inboxsdk_extensionHasSeenError', {
143
- value: true,
144
- });
145
- }
146
- catch (err) {
147
- console.error(err);
148
- }
149
- }
150
- },
151
- };
152
- })();
153
- function haveWeSeenThisErrorAlready(error) {
154
- if (isObject(error)) {
155
- return _extensionSeenErrors.has(error);
156
- }
157
- return false;
158
- }
159
- function markErrorAsSeen(error) {
160
- if (isObject(error)) {
161
- _extensionSeenErrors.add(error);
162
- }
163
- }
164
- // Only let 10 errors be sent per minute.
165
- const sendError = rateLimit(function (report) {
166
- try {
167
- ajax({
168
- url: 'https://api.inboxsdk.com/api/v2/errors',
169
- method: 'POST',
170
- headers: {
171
- 'Content-Type': 'application/json',
172
- },
173
- data: JSON.stringify(report),
174
- }).catch((err2) => {
175
- tooManyErrors(err2, [report]);
176
- });
177
- }
178
- catch (err2) {
179
- tooManyErrors(err2, [report]);
180
- }
181
- }, 60 * 1000, 10);
182
- function tooManyErrors(err2, originalArgs) {
183
- console.error('ERROR REPORTING ERROR', err2);
184
- console.error('ORIGINAL ERROR', originalArgs);
185
- }
@@ -1,18 +0,0 @@
1
- // Splits a string on spaces, but ignores spaces inside quotes.
2
- export default function quotedSplit(s) {
3
- let split = [];
4
- let lastEnd = 0;
5
- const quoteRe = /"[^"]*"/g;
6
- // eslint-disable-next-line no-constant-condition
7
- while (true) {
8
- const match = quoteRe.exec(s);
9
- split = split.concat((match ? s.substring(lastEnd, match.index) : s.substring(lastEnd))
10
- .split(/ +/)
11
- .filter(Boolean));
12
- if (!match)
13
- break;
14
- lastEnd = match.index + match[0].length;
15
- split.push(match[0]);
16
- }
17
- return split;
18
- }
@@ -1,57 +0,0 @@
1
- // Returns a wrapped version of the function which queues up callTimestamps to the
2
- // function if it is called more than count times within period amount of time.
3
- export default function rateLimitQueuer(fn, period, count) {
4
- let callTimestamps = [];
5
- const queue = [];
6
- let runningQueue = false;
7
- function runJob() {
8
- const job = queue.shift();
9
- job();
10
- if (queue.length) {
11
- runQueue();
12
- }
13
- else {
14
- runningQueue = false;
15
- }
16
- }
17
- function runQueue() {
18
- runningQueue = true;
19
- const timeToWait = getTimeToUnqueueItem();
20
- if (timeToWait > 0) {
21
- setTimeout(runJob, timeToWait);
22
- }
23
- else {
24
- runJob();
25
- }
26
- }
27
- function getTimeToUnqueueItem() {
28
- const now = Date.now();
29
- const periodAgo = now - period;
30
- callTimestamps = callTimestamps.filter((time) => time > periodAgo);
31
- if (callTimestamps.length >= count) {
32
- return callTimestamps[0] - periodAgo;
33
- }
34
- return -1;
35
- }
36
- return function attempt(...args) {
37
- let job;
38
- const promise = new Promise((resolve, reject) => {
39
- job = () => {
40
- callTimestamps.push(Date.now());
41
- try {
42
- resolve(fn.apply(this, args));
43
- }
44
- catch (err) {
45
- reject(err);
46
- }
47
- };
48
- });
49
- if (!job)
50
- throw new Error('Should not happen');
51
- queue.push(job);
52
- if (!runningQueue) {
53
- runQueue();
54
- }
55
- return promise;
56
- };
57
- }