@inboxsdk/core 1.2.4 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/inboxsdk.js +4474 -463
- package/inboxsdk.js.map +1 -1
- package/package.json +1 -1
- package/pageWorld.js +1 -1
- package/pageWorld.js.map +1 -1
- package/src/common/load-script.d.ts +0 -6
- package/src/common/load-script.d.ts.map +1 -1
- package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
- package/src/inboxsdk.d.ts +29 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -1
- package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
- package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
- package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
- package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
- package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
- package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
- package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
- package/src/build/exec.js +0 -26
- package/src/build/spawn.js +0 -17
- package/src/common/ajax.js +0 -90
- package/src/common/cachebust-url.js +0 -10
- package/src/common/censorHTMLstring.js +0 -37
- package/src/common/censorHTMLtree.js +0 -28
- package/src/common/censorJSONTree.js +0 -15
- package/src/common/connectivity-test.js +0 -21
- package/src/common/defer.js +0 -11
- package/src/common/find-parent.js +0 -10
- package/src/common/get-extension-id.js +0 -7
- package/src/common/get-or-fail.js +0 -8
- package/src/common/get-session-id.js +0 -14
- package/src/common/get-stack-trace.js +0 -6
- package/src/common/html-to-text.js +0 -7
- package/src/common/isElementVisible.js +0 -6
- package/src/common/load-script.js +0 -128
- package/src/common/log-error.js +0 -185
- package/src/common/quoted-split.js +0 -18
- package/src/common/rate-limit-queuer.js +0 -57
- package/src/common/rate-limit.js +0 -14
- package/src/common/version.js +0 -8
- package/src/inboxsdk-js/header.js +0 -19
- package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
- package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
- package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
- package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
- package/src/inboxsdk-js/inboxsdk.js +0 -23
- package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
- package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -31
- package/src/injected-js/gmail/constants.js +0 -2
- package/src/injected-js/gmail/modify-suggestions.js +0 -106
- package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
- package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
- package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
- package/src/injected-js/gmail/sync-compose-processor.js +0 -55
- package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
- package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
- package/src/injected-js/gmail/thread-identifier/index.js +0 -133
- package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
- package/src/injected-js/injected-logger.js +0 -50
- package/src/injected-js/main.js +0 -49
- package/src/injected-js/message-metadata-holder.js +0 -103
- package/src/injected-js/setup-data-exposer.js +0 -135
- package/src/injected-js/setup-error-silencer.js +0 -15
- package/src/injected-js/setup-event-reemitter.js +0 -47
- package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
- package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
- package/src/injected-js/setupPushStateListener.js +0 -14
- package/src/injected-js/xhr-helper.js +0 -43
- package/src/injected-js/xhr-proxy-factory.js +0 -537
- package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
- package/src/platform-implementation-js/constants/router.js +0 -60
- package/src/platform-implementation-js/constants/toolbars.js +0 -5
- package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
- package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
- package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
- package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
- package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
- package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
- package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -328
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
- package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
- package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
- package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
- package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
- package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
- package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
- package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
- package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
- package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
- package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
- package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
- package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
- package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
- package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
- package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
- package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
- package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
- package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
- package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
- package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
- package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
- package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
- package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
- package/src/platform-implementation-js/lib/Membrane.js +0 -22
- package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
- package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
- package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
- package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
- package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
- package/src/platform-implementation-js/lib/delay-asap.js +0 -10
- package/src/platform-implementation-js/lib/delay-idle.js +0 -16
- package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
- package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
- package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
- package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
- package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
- package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
- package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
- package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
- package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
- package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
- package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
- package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
- package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
- package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
- package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
- package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
- package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
- package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
- package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
- package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
- package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
- package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
- package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
- package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
- package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
- package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
- package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
- package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
- package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
- package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
- package/src/platform-implementation-js/lib/handler-registry.js +0 -67
- package/src/platform-implementation-js/lib/idMap.js +0 -40
- package/src/platform-implementation-js/lib/imageRequest.js +0 -8
- package/src/platform-implementation-js/lib/incrementName.js +0 -7
- package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -8
- package/src/platform-implementation-js/lib/inject-script.js +0 -33
- package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
- package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
- package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
- package/src/platform-implementation-js/lib/isNotNil.js +0 -5
- package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
- package/src/platform-implementation-js/lib/logger.js +0 -439
- package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
- package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
- package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
- package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
- package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
- package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
- package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
- package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
- package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
- package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
- package/src/platform-implementation-js/lib/wait-for.js +0 -38
- package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
- package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
- package/src/platform-implementation-js/main.js +0 -42
- package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
- package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
- package/src/platform-implementation-js/namespaces/compose.js +0 -59
- package/src/platform-implementation-js/namespaces/conversations.js +0 -83
- package/src/platform-implementation-js/namespaces/global.js +0 -30
- package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
- package/src/platform-implementation-js/namespaces/lists.js +0 -40
- package/src/platform-implementation-js/namespaces/modal.js +0 -43
- package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
- package/src/platform-implementation-js/namespaces/router.js +0 -139
- package/src/platform-implementation-js/namespaces/search.js +0 -29
- package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
- package/src/platform-implementation-js/namespaces/user.js +0 -57
- package/src/platform-implementation-js/namespaces/widgets.js +0 -73
- package/src/platform-implementation-js/platform-implementation.js +0 -178
- package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
- package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
- package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
- package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
- package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
- package/src/platform-implementation-js/views/compose-button-view.js +0 -45
- package/src/platform-implementation-js/views/compose-view.js +0 -310
- package/src/platform-implementation-js/views/content-panel-view.js +0 -36
- package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
- package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
- package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
- package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
- package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
- package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
- package/src/platform-implementation-js/views/nav-item-view.js +0 -130
- package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
- package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
- package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
- package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
- package/src/platform-implementation-js/views/section-view.js +0 -60
- package/src/platform-implementation-js/views/thread-row-view.js +0 -90
- package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
- package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
- package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
- package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
- package/src/platform-implementation-js/widgets/modal-view.js +0 -108
- package/src/platform-implementation-js/widgets/mole-view.js +0 -38
- package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export default function setupGmonkeyHandler() {
|
|
2
|
-
const gmonkeyPromise = setupGmonkey();
|
|
3
|
-
document.addEventListener('inboxSDKtellMeIsConversationViewDisabled', function () {
|
|
4
|
-
gmonkeyPromise.then((gmonkey) => {
|
|
5
|
-
const answer = gmonkey.isConversationViewDisabled();
|
|
6
|
-
const event = document.createEvent('CustomEvent');
|
|
7
|
-
event.initCustomEvent('inboxSDKgmonkeyResponse', false, false, answer);
|
|
8
|
-
document.dispatchEvent(event);
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
document.addEventListener('inboxSDKtellMeCurrentThreadId', function (event) {
|
|
12
|
-
let threadId;
|
|
13
|
-
if (event.detail.isPreviewedThread) {
|
|
14
|
-
const rows = Array.from(document.querySelectorAll('[gh=tl] tr.aps'));
|
|
15
|
-
if (rows.length > 0) {
|
|
16
|
-
const elementWithId = rows
|
|
17
|
-
.map((row) => row.querySelector('[data-thread-id]'))
|
|
18
|
-
.filter(Boolean)[0];
|
|
19
|
-
if (elementWithId) {
|
|
20
|
-
threadId = elementWithId.getAttribute('data-thread-id');
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
threadId = rows[0].getAttribute('data-inboxsdk-threadid');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
threadId = window.gmonkey?.v2?.getCurrentThread?.()?.getThreadId();
|
|
29
|
-
}
|
|
30
|
-
if (threadId) {
|
|
31
|
-
// hash is included in the sync id route url, so we also need to take it out
|
|
32
|
-
threadId = threadId.replace('#', '');
|
|
33
|
-
event.target.setAttribute('data-inboxsdk-currentthreadid', threadId);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
function setupGmonkey() {
|
|
38
|
-
return new Promise((resolve) => {
|
|
39
|
-
function check() {
|
|
40
|
-
if (!window.gmonkey) {
|
|
41
|
-
setTimeout(check, 500);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
window.gmonkey.load('2.0', resolve);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
check();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import sortBy from 'lodash/sortBy';
|
|
2
|
-
import intersection from 'lodash/intersection';
|
|
3
|
-
import isNotNil from '../../platform-implementation-js/lib/isNotNil';
|
|
4
|
-
import { DRAFT_SAVING_ACTIONS, SEND_ACTIONS, } from './constants';
|
|
5
|
-
const ACTION_TYPE_PRIORITY_RANK = [
|
|
6
|
-
'SEND',
|
|
7
|
-
'DRAFT_SAVE',
|
|
8
|
-
];
|
|
9
|
-
export function parseComposeRequestBody_2022_09_09(request) {
|
|
10
|
-
return parseCreateUpdateSendDraftRequestBody(request);
|
|
11
|
-
}
|
|
12
|
-
export function parseComposeResponseBody_2022_09_09(response) {
|
|
13
|
-
return parseCreateUpdateSendDraftResponseBody(response);
|
|
14
|
-
}
|
|
15
|
-
export function replaceBodyContentInComposeSendRequestBody_2022_09_09(request, newBodyHtmlContent) {
|
|
16
|
-
return replaceBodyContentInSendRequestBody(request, newBodyHtmlContent);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Parses request body when compose window either saves a draft for the first time,
|
|
20
|
-
* updates the draft or sends the draft.
|
|
21
|
-
* NOTE: request could contain multiple threads and messages within it,
|
|
22
|
-
* prioritize SEND to DRAFT_SAVE message.
|
|
23
|
-
*/
|
|
24
|
-
function parseCreateUpdateSendDraftRequestBody(request) {
|
|
25
|
-
const updateList = request[1]?.[0];
|
|
26
|
-
if (!Array.isArray(updateList)) {
|
|
27
|
-
// cannot parse
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
const parsedMessages = updateList.map(parseRequestThread).filter(isNotNil);
|
|
31
|
-
const sorted = sortBy(parsedMessages, (m) => ACTION_TYPE_PRIORITY_RANK.indexOf(m.type));
|
|
32
|
-
return sorted[0] || null;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Parses response body when compose window either saved a draft for the first time,
|
|
36
|
-
* updated the draft, or sent the draft.
|
|
37
|
-
* NOTE: response could contain multiple threads and messages within it
|
|
38
|
-
* even not related to a message/thread in the request body.
|
|
39
|
-
* So the calling code should find needed message manually.
|
|
40
|
-
*/
|
|
41
|
-
function parseCreateUpdateSendDraftResponseBody(response) {
|
|
42
|
-
const updateList = response[1]?.[5];
|
|
43
|
-
if (!Array.isArray(updateList)) {
|
|
44
|
-
// cannot parse
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
return updateList
|
|
48
|
-
.map(parseResponseThread)
|
|
49
|
-
.filter(isNotNil)
|
|
50
|
-
.flatMap((parsedThread) => {
|
|
51
|
-
const { threadId, oldThreadId, parsedMessages } = parsedThread;
|
|
52
|
-
return parsedMessages.map((parsedMessage) => {
|
|
53
|
-
const { messageId, to, cc, bcc, actions, rfcID, oldMessageId } = parsedMessage;
|
|
54
|
-
const actionType = actionsToComposeRequestType(actions);
|
|
55
|
-
if (!actionType) {
|
|
56
|
-
// unsupported actions within a message
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
threadId,
|
|
61
|
-
messageId,
|
|
62
|
-
to,
|
|
63
|
-
cc,
|
|
64
|
-
bcc,
|
|
65
|
-
actions,
|
|
66
|
-
rfcID,
|
|
67
|
-
oldMessageId,
|
|
68
|
-
oldThreadId,
|
|
69
|
-
type: actionType,
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
})
|
|
73
|
-
.filter(isNotNil);
|
|
74
|
-
}
|
|
75
|
-
function replaceBodyContentInSendRequestBody(request, newBodyHtmlContent) {
|
|
76
|
-
// since draftID is not passed from outside,
|
|
77
|
-
// use parse function to find a message which body needs to be replaced
|
|
78
|
-
const parsed = parseCreateUpdateSendDraftRequestBody(request);
|
|
79
|
-
if (!parsed) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
const replaceBodyInThisMessageId = parsed.messageId;
|
|
83
|
-
const updateList = request[1]?.[0];
|
|
84
|
-
if (!Array.isArray(updateList)) {
|
|
85
|
-
// cannot parse
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
for (const threadWrapper of updateList) {
|
|
89
|
-
if (!Array.isArray(threadWrapper) || !Array.isArray(threadWrapper[1])) {
|
|
90
|
-
// cannot parse
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
const thread = threadWrapper[1];
|
|
94
|
-
const threadId = parseThreadId(thread[0]);
|
|
95
|
-
if (!threadId) {
|
|
96
|
-
// cannot parse
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
const parseResult = findAndParseRequestMessage(thread);
|
|
100
|
-
if (parseResult?.parsedMsg.messageId === replaceBodyInThisMessageId) {
|
|
101
|
-
const actionType = actionsToComposeRequestType(parseResult.parsedMsg.actions);
|
|
102
|
-
if (actionType === 'SEND') {
|
|
103
|
-
// find first message with needed messageId and 'SEND' action and replace the body content
|
|
104
|
-
replaceBodyInRequestMsg(parseResult.originalMsg, newBodyHtmlContent);
|
|
105
|
-
return request;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
function parseThreadId(threadId) {
|
|
112
|
-
if (!threadId.startsWith('thread-')) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
if (threadId.includes('|')) {
|
|
116
|
-
return threadId.split('|')[0];
|
|
117
|
-
}
|
|
118
|
-
return threadId;
|
|
119
|
-
}
|
|
120
|
-
function parseMsgId(messageId) {
|
|
121
|
-
if (!messageId.startsWith('msg-')) {
|
|
122
|
-
// cannot parse
|
|
123
|
-
return null;
|
|
124
|
-
}
|
|
125
|
-
return messageId;
|
|
126
|
-
}
|
|
127
|
-
function parseContacts(contacts) {
|
|
128
|
-
if (!Array.isArray(contacts)) {
|
|
129
|
-
// cannot parse
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
return contacts
|
|
133
|
-
.filter((c) => !!c[1])
|
|
134
|
-
.map((c) => ({ emailAddress: c[1], name: c[2] ?? null }));
|
|
135
|
-
}
|
|
136
|
-
function findAndParseRequestMessage(thread) {
|
|
137
|
-
const originalMsgs = [
|
|
138
|
-
thread[1]?.[2]?.[0]?.[4]?.[0],
|
|
139
|
-
thread[1]?.[1]?.[0],
|
|
140
|
-
thread[1]?.[13]?.[0],
|
|
141
|
-
];
|
|
142
|
-
for (const originalMsg of originalMsgs) {
|
|
143
|
-
const parsedMsg = parseRequestMsg(originalMsg);
|
|
144
|
-
if (parsedMsg) {
|
|
145
|
-
return { parsedMsg, originalMsg };
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
function parseRequestThread(threadWrapper) {
|
|
151
|
-
if (!Array.isArray(threadWrapper) || !Array.isArray(threadWrapper[1])) {
|
|
152
|
-
// cannot parse
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
const thread = threadWrapper[1];
|
|
156
|
-
const threadId = parseThreadId(thread[0]);
|
|
157
|
-
if (!threadId) {
|
|
158
|
-
// cannot parse
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
const parseResult = findAndParseRequestMessage(thread);
|
|
162
|
-
if (!parseResult) {
|
|
163
|
-
// cannot parse
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
const { parsedMsg: message, originalMsg } = parseResult;
|
|
167
|
-
const { messageId, to, cc, bcc, subject, body, actions } = message;
|
|
168
|
-
let actionType = actionsToComposeRequestType(actions);
|
|
169
|
-
if (!actionType) {
|
|
170
|
-
// exit if doesn't have required actions
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
// usually for draft_save action when draft or reply got saved for first time, response could be different
|
|
174
|
-
// from usual update response, so replace draft_save action with first_draft_save in this case.
|
|
175
|
-
if (actionType === 'DRAFT_SAVE' &&
|
|
176
|
-
(originalMsg === thread[1]?.[2]?.[0]?.[4]?.[0] ||
|
|
177
|
-
originalMsg === thread[1]?.[1]?.[0])) {
|
|
178
|
-
actionType = 'FIRST_DRAFT_SAVE';
|
|
179
|
-
}
|
|
180
|
-
return {
|
|
181
|
-
threadId,
|
|
182
|
-
messageId,
|
|
183
|
-
to,
|
|
184
|
-
cc,
|
|
185
|
-
bcc,
|
|
186
|
-
subject,
|
|
187
|
-
body,
|
|
188
|
-
actions,
|
|
189
|
-
type: actionType,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
function parseRequestMsg(msg) {
|
|
193
|
-
if (!Array.isArray(msg)) {
|
|
194
|
-
// cannot parse
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
const messageId = parseMsgId(msg[0]);
|
|
198
|
-
if (!messageId) {
|
|
199
|
-
// cannot parse
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
const subject = msg[7];
|
|
203
|
-
const to = parseContacts(msg[2]);
|
|
204
|
-
const cc = parseContacts(msg[3]);
|
|
205
|
-
const bcc = parseContacts(msg[4]);
|
|
206
|
-
const body = msg[8][1][0][1];
|
|
207
|
-
const actions = msg[10];
|
|
208
|
-
const rfcID = msg[13];
|
|
209
|
-
const oldMessageId = msg[55];
|
|
210
|
-
return {
|
|
211
|
-
messageId,
|
|
212
|
-
to,
|
|
213
|
-
cc,
|
|
214
|
-
bcc,
|
|
215
|
-
subject,
|
|
216
|
-
body,
|
|
217
|
-
actions,
|
|
218
|
-
rfcID,
|
|
219
|
-
oldMessageId,
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
function replaceBodyInRequestMsg(msg, newBodyHtmlContent) {
|
|
223
|
-
if (!Array.isArray(msg)) {
|
|
224
|
-
// cannot parse
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
msg[8][1][0][1] = newBodyHtmlContent;
|
|
228
|
-
}
|
|
229
|
-
function parseResponseThread(threadWrapper) {
|
|
230
|
-
if (!Array.isArray(threadWrapper) || !Array.isArray(threadWrapper[0])) {
|
|
231
|
-
// cannot parse
|
|
232
|
-
return null;
|
|
233
|
-
}
|
|
234
|
-
const thread = threadWrapper[0];
|
|
235
|
-
const threadId = parseThreadId(thread[0]);
|
|
236
|
-
if (!threadId) {
|
|
237
|
-
// cannot parse
|
|
238
|
-
return null;
|
|
239
|
-
}
|
|
240
|
-
const threadInner = thread[2]?.[6]?.[0];
|
|
241
|
-
if (!Array.isArray(threadInner)) {
|
|
242
|
-
// cannot parse
|
|
243
|
-
return null;
|
|
244
|
-
}
|
|
245
|
-
const oldThreadId = threadInner[19];
|
|
246
|
-
const parsedMessages = Array.isArray(threadInner[4])
|
|
247
|
-
? threadInner[4]
|
|
248
|
-
.map((msg) => {
|
|
249
|
-
if (!Array.isArray(msg)) {
|
|
250
|
-
// cannot parse
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
return parseResponseMsg(msg);
|
|
254
|
-
})
|
|
255
|
-
.filter(isNotNil)
|
|
256
|
-
: [];
|
|
257
|
-
return {
|
|
258
|
-
threadId,
|
|
259
|
-
oldThreadId,
|
|
260
|
-
parsedMessages,
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
function parseResponseMsg(msg) {
|
|
264
|
-
if (!Array.isArray(msg)) {
|
|
265
|
-
// cannot parse
|
|
266
|
-
return null;
|
|
267
|
-
}
|
|
268
|
-
const messageId = parseMsgId(msg[0]);
|
|
269
|
-
if (!messageId) {
|
|
270
|
-
// cannot parse
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
const actions = msg[10];
|
|
274
|
-
const to = parseContacts(msg[2]);
|
|
275
|
-
const cc = parseContacts(msg[3]);
|
|
276
|
-
const bcc = parseContacts(msg[4]);
|
|
277
|
-
const rfcID = msg[13];
|
|
278
|
-
const oldMessageId = msg[55];
|
|
279
|
-
return {
|
|
280
|
-
messageId,
|
|
281
|
-
to,
|
|
282
|
-
cc,
|
|
283
|
-
bcc,
|
|
284
|
-
actions,
|
|
285
|
-
rfcID,
|
|
286
|
-
oldMessageId,
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
export function actionsToComposeRequestType(actions) {
|
|
290
|
-
if (intersection(actions, DRAFT_SAVING_ACTIONS).length ===
|
|
291
|
-
DRAFT_SAVING_ACTIONS.length) {
|
|
292
|
-
return 'DRAFT_SAVE';
|
|
293
|
-
}
|
|
294
|
-
if (intersection(actions, SEND_ACTIONS).length === SEND_ACTIONS.length) {
|
|
295
|
-
return 'SEND';
|
|
296
|
-
}
|
|
297
|
-
return null;
|
|
298
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { parseComposeRequestBody_2022_09_09, parseComposeResponseBody_2022_09_09, replaceBodyContentInComposeSendRequestBody_2022_09_09, } from './sync-compose-processor-20220909';
|
|
2
|
-
import { getDetailsOfComposeRequest, replaceEmailBodyForSendRequest, } from './sync-compose-request-processor';
|
|
3
|
-
import * as logger from '../injected-logger';
|
|
4
|
-
export function parseComposeRequestBody(request) {
|
|
5
|
-
const requestParsed = JSON.parse(request);
|
|
6
|
-
try {
|
|
7
|
-
if (Array.isArray(requestParsed)) {
|
|
8
|
-
const parsed = parseComposeRequestBody_2022_09_09(requestParsed);
|
|
9
|
-
if (parsed) {
|
|
10
|
-
return {
|
|
11
|
-
type: parsed.type,
|
|
12
|
-
to: parsed.to,
|
|
13
|
-
cc: parsed.cc,
|
|
14
|
-
bcc: parsed.bcc,
|
|
15
|
-
draftID: parsed.messageId.replace('msg-a:', ''),
|
|
16
|
-
subject: parsed.subject,
|
|
17
|
-
body: parsed.body,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
catch (err) {
|
|
24
|
-
logger.eventSdkPassive('connection.requestResponseParsingFailed', {
|
|
25
|
-
requestParseError: err,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return getDetailsOfComposeRequest(requestParsed);
|
|
29
|
-
}
|
|
30
|
-
export function parseComposeResponseBody(response) {
|
|
31
|
-
const responseParsed = JSON.parse(response);
|
|
32
|
-
if (Array.isArray(responseParsed)) {
|
|
33
|
-
return parseComposeResponseBody_2022_09_09(responseParsed);
|
|
34
|
-
}
|
|
35
|
-
return [];
|
|
36
|
-
}
|
|
37
|
-
export function replaceBodyContentInComposeSendRequestBody(request, newBodyHtmlContent) {
|
|
38
|
-
const requestParsed = JSON.parse(request);
|
|
39
|
-
try {
|
|
40
|
-
if (Array.isArray(requestParsed)) {
|
|
41
|
-
const replacedRequestObj = replaceBodyContentInComposeSendRequestBody_2022_09_09(requestParsed, newBodyHtmlContent);
|
|
42
|
-
if (replacedRequestObj) {
|
|
43
|
-
return JSON.stringify(replacedRequestObj);
|
|
44
|
-
}
|
|
45
|
-
// if couldn't parse and replace body content, return original object
|
|
46
|
-
return request;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
logger.eventSdkPassive('connection.requestResponseParsingFailed', {
|
|
51
|
-
replaceBodyFailed: err,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
return replaceEmailBodyForSendRequest(request, newBodyHtmlContent);
|
|
55
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import intersection from 'lodash/intersection';
|
|
2
|
-
import { SEND_ACTIONS } from './constants';
|
|
3
|
-
export function getDetailsOfComposeRequest(parsed) {
|
|
4
|
-
const updateList = parsed[2] && parsed[2][1];
|
|
5
|
-
if (!updateList)
|
|
6
|
-
return null;
|
|
7
|
-
const messageUpdates = updateList.filter((update) => {
|
|
8
|
-
const updateWrapper = update[2] && update[2][2] && (update[2][2][14] || update[2][2][2]);
|
|
9
|
-
return (updateWrapper &&
|
|
10
|
-
updateWrapper[1] &&
|
|
11
|
-
updateWrapper[1][1] &&
|
|
12
|
-
updateWrapper[1][1].indexOf('msg-a:') > -1);
|
|
13
|
-
});
|
|
14
|
-
if (messageUpdates.length) {
|
|
15
|
-
const sendUpdateMatch = messageUpdates.find((update) => {
|
|
16
|
-
const updateWrapper = update[2] && update[2][2] && (update[2][2][14] || update[2][2][2]);
|
|
17
|
-
return (updateWrapper[1][11] &&
|
|
18
|
-
intersection(updateWrapper[1][11], SEND_ACTIONS).length ===
|
|
19
|
-
SEND_ACTIONS.length);
|
|
20
|
-
});
|
|
21
|
-
if (sendUpdateMatch) {
|
|
22
|
-
const sendUpdateWrapper = sendUpdateMatch[2] &&
|
|
23
|
-
sendUpdateMatch[2][2] &&
|
|
24
|
-
(sendUpdateMatch[2][2][14] || sendUpdateMatch[2][2][2]);
|
|
25
|
-
const sendUpdate = sendUpdateWrapper[1];
|
|
26
|
-
return getComposeRequestFromUpdate(sendUpdate, 'SEND');
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
// There's a small chance that an update list could contain the
|
|
30
|
-
// draft saves for multiple drafts in some situations — we've never
|
|
31
|
-
// seen this so currently just picking the first update and assuming
|
|
32
|
-
// that if there are multiple updates in the request they are for
|
|
33
|
-
// queued up versions of the same draft.
|
|
34
|
-
const firstMessageUpdate = messageUpdates[0];
|
|
35
|
-
const updateWrapper = firstMessageUpdate[2] &&
|
|
36
|
-
firstMessageUpdate[2][2] &&
|
|
37
|
-
(firstMessageUpdate[2][2][14] || firstMessageUpdate[2][2][2]);
|
|
38
|
-
const update = updateWrapper[1];
|
|
39
|
-
return getComposeRequestFromUpdate(update, 'DRAFT_SAVE');
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
// the first time a draft is saved it has a different response format
|
|
44
|
-
const messageUpdates = updateList
|
|
45
|
-
.map((update) => update[2] &&
|
|
46
|
-
update[2][2] &&
|
|
47
|
-
update[2][2][3] &&
|
|
48
|
-
update[2][2][3][1] &&
|
|
49
|
-
update[2][2][3][1][5] &&
|
|
50
|
-
update[2][2][3][1][5][0])
|
|
51
|
-
.filter(Boolean);
|
|
52
|
-
if (messageUpdates.length === 0)
|
|
53
|
-
return null;
|
|
54
|
-
const firstMessageUpdate = messageUpdates[0];
|
|
55
|
-
return getComposeRequestFromUpdate(firstMessageUpdate, 'FIRST_DRAFT_SAVE');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function getComposeRequestFromUpdate(update, type) {
|
|
59
|
-
const body = update[9] && update[9][2] && update[9][2][0] && update[9][2][0][2];
|
|
60
|
-
if (body == null)
|
|
61
|
-
return null;
|
|
62
|
-
return {
|
|
63
|
-
body,
|
|
64
|
-
type,
|
|
65
|
-
to: parseContacts(update[3]),
|
|
66
|
-
cc: parseContacts(update[4]),
|
|
67
|
-
bcc: parseContacts(update[5]),
|
|
68
|
-
draftID: update[1].replace('msg-a:', ''),
|
|
69
|
-
subject: update[8],
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function parseContacts(contacts) {
|
|
73
|
-
if (!Array.isArray(contacts)) {
|
|
74
|
-
// exit cuz cannot parse
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
return contacts.map((c) => ({ emailAddress: c[2], name: c[3] || null }));
|
|
78
|
-
}
|
|
79
|
-
export function replaceEmailBodyForSendRequest(request, newBody) {
|
|
80
|
-
if (!newBody)
|
|
81
|
-
return request;
|
|
82
|
-
const parsed = JSON.parse(request);
|
|
83
|
-
const updateList = parsed[2] && parsed[2][1];
|
|
84
|
-
if (!updateList)
|
|
85
|
-
return request;
|
|
86
|
-
const messageUpdates = updateList.filter((update) => {
|
|
87
|
-
const updateWrapper = update[2] && update[2][2] && (update[2][2][14] || update[2][2][2]);
|
|
88
|
-
return (updateWrapper &&
|
|
89
|
-
updateWrapper[1] &&
|
|
90
|
-
updateWrapper[1][1] &&
|
|
91
|
-
updateWrapper[1][1].indexOf('msg-a:') > -1);
|
|
92
|
-
});
|
|
93
|
-
if (!messageUpdates.length)
|
|
94
|
-
return request;
|
|
95
|
-
const sendUpdateMatch = messageUpdates.find((update) => {
|
|
96
|
-
const updateWrapper = update[2] && update[2][2] && (update[2][2][14] || update[2][2][2]);
|
|
97
|
-
return (updateWrapper[1][11] &&
|
|
98
|
-
intersection(updateWrapper[1][11], SEND_ACTIONS).length ===
|
|
99
|
-
SEND_ACTIONS.length);
|
|
100
|
-
});
|
|
101
|
-
if (!sendUpdateMatch)
|
|
102
|
-
return request;
|
|
103
|
-
const sendUpdateWrapper = sendUpdateMatch[2] &&
|
|
104
|
-
sendUpdateMatch[2][2] &&
|
|
105
|
-
(sendUpdateMatch[2][2][14] || sendUpdateMatch[2][2][2]);
|
|
106
|
-
const sendUpdate = sendUpdateWrapper[1];
|
|
107
|
-
sendUpdate[9][2][0][2] = newBody;
|
|
108
|
-
return JSON.stringify(parsed);
|
|
109
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import constant from 'lodash/constant';
|
|
2
|
-
import noop from 'lodash/noop';
|
|
3
|
-
import * as logger from '../../injected-logger';
|
|
4
|
-
const ignoreErrors = constant(true);
|
|
5
|
-
function getIfOwn(object, prop) {
|
|
6
|
-
if (Object.prototype.hasOwnProperty.call(object, prop)) {
|
|
7
|
-
return object[prop];
|
|
8
|
-
}
|
|
9
|
-
return null;
|
|
10
|
-
} // Simulates a control+meta click on an element, intercepts the call to
|
|
11
|
-
// window.open, and returns the attempted popup's URL.
|
|
12
|
-
export default function clickAndGetPopupUrl(element) {
|
|
13
|
-
const event = document.createEvent('MouseEvents');
|
|
14
|
-
const options = {
|
|
15
|
-
bubbles: true,
|
|
16
|
-
cancelable: true,
|
|
17
|
-
button: 0,
|
|
18
|
-
pointerX: 0,
|
|
19
|
-
pointerY: 0,
|
|
20
|
-
ctrlKey: true,
|
|
21
|
-
altKey: false,
|
|
22
|
-
shiftKey: false,
|
|
23
|
-
metaKey: true,
|
|
24
|
-
};
|
|
25
|
-
event.initMouseEvent('click', options.bubbles, options.cancelable, document.defaultView, options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, null);
|
|
26
|
-
let url;
|
|
27
|
-
const oldWindowOpen = window.open, oldWindowOnerror = window.onerror, oldFocus = getIfOwn(window.HTMLElement.prototype, 'focus'), oldBlur = getIfOwn(window.HTMLElement.prototype, 'blur');
|
|
28
|
-
try {
|
|
29
|
-
window.HTMLElement.prototype.focus = noop;
|
|
30
|
-
window.HTMLElement.prototype.blur = noop;
|
|
31
|
-
window.onerror = ignoreErrors;
|
|
32
|
-
const newOpen = function (_url, _title, _options) {
|
|
33
|
-
url = _url;
|
|
34
|
-
// Gmail checks the returned object for these two values specifically.
|
|
35
|
-
const newWin = {
|
|
36
|
-
closed: false,
|
|
37
|
-
focus: noop,
|
|
38
|
-
};
|
|
39
|
-
setTimeout(function () {
|
|
40
|
-
newWin.closed = true;
|
|
41
|
-
}, 5);
|
|
42
|
-
return newWin;
|
|
43
|
-
};
|
|
44
|
-
window.open = newOpen;
|
|
45
|
-
// If another extension created a setter on window.open, then setting it
|
|
46
|
-
// could have failed. Log to see if this is a thing that ever happens, and
|
|
47
|
-
// avoid letting windows be opened.
|
|
48
|
-
if (window.open !== newOpen) {
|
|
49
|
-
logger.error(new Error('Failed to override window.open'));
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
element.dispatchEvent(event);
|
|
53
|
-
}
|
|
54
|
-
finally {
|
|
55
|
-
if (oldFocus) {
|
|
56
|
-
window.HTMLElement.prototype.focus = oldFocus;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
delete window.HTMLElement.prototype.focus;
|
|
60
|
-
}
|
|
61
|
-
if (oldBlur) {
|
|
62
|
-
window.HTMLElement.prototype.blur = oldBlur;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
delete window.HTMLElement.prototype.blur;
|
|
66
|
-
}
|
|
67
|
-
window.onerror = oldWindowOnerror;
|
|
68
|
-
window.open = oldWindowOpen;
|
|
69
|
-
}
|
|
70
|
-
return url;
|
|
71
|
-
}
|