@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,158 +0,0 @@
|
|
|
1
|
-
import * as Kefir from 'kefir';
|
|
2
|
-
import streamWaitFor from '../../lib/stream-wait-for';
|
|
3
|
-
import querySelector from '../../lib/dom/querySelectorOrFail';
|
|
4
|
-
import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
|
|
5
|
-
const elements = streamWaitFor(() => document.body.querySelector('div.b8[role="alert"]'))
|
|
6
|
-
.map((noticeContainer) => {
|
|
7
|
-
const googleNotice = querySelector(noticeContainer, '.vh:not(.inboxsdk__butterbar)');
|
|
8
|
-
let sdkNotice = noticeContainer.querySelector('.vh.inboxsdk__butterbar');
|
|
9
|
-
if (!sdkNotice) {
|
|
10
|
-
sdkNotice = document.createElement('div');
|
|
11
|
-
sdkNotice.classList.add('vh', 'inboxsdk__butterbar');
|
|
12
|
-
sdkNotice.style.display = 'none';
|
|
13
|
-
const textAndButtonsContainer = document.createElement('span');
|
|
14
|
-
textAndButtonsContainer.classList.add('aT');
|
|
15
|
-
const textContainer = document.createElement('span');
|
|
16
|
-
textContainer.classList.add('inboxsdk__butterbar-text', 'bAq');
|
|
17
|
-
const buttonsContainer = document.createElement('span');
|
|
18
|
-
buttonsContainer.classList.add('inboxsdk__butterbar-buttons', 'bAo');
|
|
19
|
-
buttonsContainer.innerHTML = ' ';
|
|
20
|
-
const noticeCloseButton = document.createElement('div');
|
|
21
|
-
noticeCloseButton.classList.add('inboxsdk__butterbar-close', 'bBe');
|
|
22
|
-
noticeCloseButton.innerHTML = '<div class="bBf"></div>';
|
|
23
|
-
noticeCloseButton.setAttribute('role', 'button');
|
|
24
|
-
noticeCloseButton.tabIndex = 0;
|
|
25
|
-
textAndButtonsContainer.appendChild(textContainer);
|
|
26
|
-
textAndButtonsContainer.appendChild(buttonsContainer);
|
|
27
|
-
sdkNotice.appendChild(textAndButtonsContainer);
|
|
28
|
-
sdkNotice.appendChild(noticeCloseButton);
|
|
29
|
-
const parentNode = googleNotice.parentNode;
|
|
30
|
-
if (!parentNode) {
|
|
31
|
-
throw new Error('parentNode not found');
|
|
32
|
-
}
|
|
33
|
-
parentNode.insertBefore(sdkNotice, googleNotice.nextSibling);
|
|
34
|
-
}
|
|
35
|
-
return { noticeContainer, googleNotice, sdkNotice };
|
|
36
|
-
})
|
|
37
|
-
.toProperty();
|
|
38
|
-
const googleNoticeMutationChunks = elements.flatMapLatest(({ googleNotice }) => makeMutationObserverChunkedStream(googleNotice, { childList: true }));
|
|
39
|
-
const googleAddedNotice = googleNoticeMutationChunks.filter((mutations) => mutations.some((m) => m.addedNodes.length > 0));
|
|
40
|
-
const googleRemovedNotice = googleNoticeMutationChunks.filter((mutations) => !mutations.some((m) => m.addedNodes.length > 0));
|
|
41
|
-
const sdkRemovedNotice = elements
|
|
42
|
-
.flatMapLatest(({ sdkNotice }) => makeMutationObserverChunkedStream(sdkNotice, {
|
|
43
|
-
attributes: true,
|
|
44
|
-
attributeFilter: ['data-inboxsdk-id'],
|
|
45
|
-
}).map(() => sdkNotice.getAttribute('data-inboxsdk-id')))
|
|
46
|
-
.filter((id) => id == null);
|
|
47
|
-
const noticeAvailableStream = Kefir.merge([
|
|
48
|
-
googleRemovedNotice,
|
|
49
|
-
sdkRemovedNotice,
|
|
50
|
-
]);
|
|
51
|
-
function hideMessage(noticeContainer, googleNotice, sdkNotice) {
|
|
52
|
-
googleNotice.style.display = '';
|
|
53
|
-
noticeContainer.style.top = '-10000px';
|
|
54
|
-
noticeContainer.style.position = 'relative';
|
|
55
|
-
noticeContainer.classList.remove('bAp');
|
|
56
|
-
sdkNotice.style.display = 'none';
|
|
57
|
-
sdkNotice.removeAttribute('data-inboxsdk-id');
|
|
58
|
-
}
|
|
59
|
-
export default class GmailButterBarDriver {
|
|
60
|
-
constructor() {
|
|
61
|
-
Kefir.combine([elements, googleAddedNotice]).onValue(([{ googleNotice, sdkNotice }]) => {
|
|
62
|
-
googleNotice.style.display = '';
|
|
63
|
-
sdkNotice.style.display = 'none';
|
|
64
|
-
sdkNotice.setAttribute('data-inboxsdk-id', 'gmail');
|
|
65
|
-
});
|
|
66
|
-
// Force stream to be in active state. sdkRemovedNotice is prone to missing
|
|
67
|
-
// events if it only becomes active once a message has started.
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
69
|
-
noticeAvailableStream.onValue(() => { });
|
|
70
|
-
}
|
|
71
|
-
getNoticeAvailableStream() {
|
|
72
|
-
return noticeAvailableStream;
|
|
73
|
-
}
|
|
74
|
-
getSharedMessageQueue() {
|
|
75
|
-
const attr = document.head.getAttribute('data-inboxsdk-butterbar-queue');
|
|
76
|
-
return attr ? JSON.parse(attr) : [];
|
|
77
|
-
}
|
|
78
|
-
setSharedMessageQueue(queue) {
|
|
79
|
-
const attr = JSON.stringify(queue);
|
|
80
|
-
document.head.setAttribute('data-inboxsdk-butterbar-queue', attr);
|
|
81
|
-
}
|
|
82
|
-
// Immediately displays the message, overriding anything else on the screen.
|
|
83
|
-
// Priority and queuing logic is handled by butter-bar.js above this.
|
|
84
|
-
showMessage(rawOptions) {
|
|
85
|
-
const instanceId = Date.now() + '-' + Math.random();
|
|
86
|
-
const destroy = () => {
|
|
87
|
-
elements
|
|
88
|
-
.take(1)
|
|
89
|
-
.onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
|
|
90
|
-
if (sdkNotice.getAttribute('data-inboxsdk-id') === instanceId) {
|
|
91
|
-
if (rawOptions.className) {
|
|
92
|
-
sdkNotice.classList.remove(rawOptions.className);
|
|
93
|
-
}
|
|
94
|
-
hideMessage(noticeContainer, googleNotice, sdkNotice);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
|
|
99
|
-
noticeContainer.style.visibility = 'visible';
|
|
100
|
-
noticeContainer.style.top = '';
|
|
101
|
-
// The bAp css class is added to noticeContainer whenever a native butter is active in
|
|
102
|
-
// Material Gmail. We replicate this native behavior by adding bAp to noticeContainer
|
|
103
|
-
// when we show an SDK butter and removing it when the butter expires (see the
|
|
104
|
-
// hideMessage function above).
|
|
105
|
-
// The bAp class also causes butters to be styled and positioned as Snack Bars instead
|
|
106
|
-
// (as opposed to butters).
|
|
107
|
-
noticeContainer.classList.add('bAp');
|
|
108
|
-
googleNotice.style.display = 'none';
|
|
109
|
-
sdkNotice.className = googleNotice.className;
|
|
110
|
-
sdkNotice.classList.add('inboxsdk__butterbar');
|
|
111
|
-
const textContainer = querySelector(sdkNotice, '.inboxsdk__butterbar-text');
|
|
112
|
-
while (textContainer.firstChild) {
|
|
113
|
-
textContainer.removeChild(textContainer.firstChild);
|
|
114
|
-
}
|
|
115
|
-
const buttonsContainer = querySelector(sdkNotice, '.inboxsdk__butterbar-buttons');
|
|
116
|
-
while (buttonsContainer.firstChild) {
|
|
117
|
-
buttonsContainer.removeChild(buttonsContainer.firstChild);
|
|
118
|
-
}
|
|
119
|
-
if (rawOptions.html) {
|
|
120
|
-
textContainer.innerHTML = rawOptions.html;
|
|
121
|
-
}
|
|
122
|
-
else if (rawOptions.el) {
|
|
123
|
-
textContainer.appendChild(rawOptions.el);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
textContainer.textContent = rawOptions.text;
|
|
127
|
-
}
|
|
128
|
-
if (rawOptions.buttons) {
|
|
129
|
-
rawOptions.buttons.forEach((buttonDescriptor) => {
|
|
130
|
-
const button = document.createElement('span');
|
|
131
|
-
button.classList.add('ag', 'a8k');
|
|
132
|
-
button.onclick = (e) => buttonDescriptor.onClick(e);
|
|
133
|
-
button.setAttribute('role', 'button');
|
|
134
|
-
button.tabIndex = 0;
|
|
135
|
-
button.textContent = buttonDescriptor.title;
|
|
136
|
-
buttonsContainer.appendChild(button);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
const closeButton = querySelector(sdkNotice, '.inboxsdk__butterbar-close');
|
|
140
|
-
if (closeButton) {
|
|
141
|
-
Kefir.fromEvents(closeButton, 'click').take(1).onValue(destroy);
|
|
142
|
-
}
|
|
143
|
-
if (rawOptions.className) {
|
|
144
|
-
sdkNotice.classList.add(rawOptions.className);
|
|
145
|
-
}
|
|
146
|
-
sdkNotice.style.display = '';
|
|
147
|
-
sdkNotice.setAttribute('data-inboxsdk-id', instanceId);
|
|
148
|
-
});
|
|
149
|
-
return { destroy };
|
|
150
|
-
}
|
|
151
|
-
hideGmailMessage() {
|
|
152
|
-
elements.take(1).onValue(({ noticeContainer, googleNotice, sdkNotice }) => {
|
|
153
|
-
if (sdkNotice.getAttribute('data-inboxsdk-id') === 'gmail') {
|
|
154
|
-
hideMessage(noticeContainer, googleNotice, sdkNotice);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { GmailAppMenuItemView } from '../views/gmail-app-menu-item-view';
|
|
2
|
-
import GmailElementGetter from '../gmail-element-getter';
|
|
3
|
-
import Logger from '../../../lib/logger';
|
|
4
|
-
export async function addAppMenuItem(driver, menuItemDescriptor) {
|
|
5
|
-
const appMenuInjectionContainer = await GmailElementGetter.getAppMenuAsync();
|
|
6
|
-
const gmailAppMenuItemView = new GmailAppMenuItemView(driver, menuItemDescriptor);
|
|
7
|
-
try {
|
|
8
|
-
if (!appMenuInjectionContainer)
|
|
9
|
-
return undefined;
|
|
10
|
-
const siblingElement = Number.isInteger(menuItemDescriptor.insertIndex)
|
|
11
|
-
? appMenuInjectionContainer.childNodes[menuItemDescriptor.insertIndex] ??
|
|
12
|
-
null
|
|
13
|
-
: null;
|
|
14
|
-
appMenuInjectionContainer.insertBefore(gmailAppMenuItemView.element, siblingElement);
|
|
15
|
-
}
|
|
16
|
-
catch (err) {
|
|
17
|
-
Logger.error(err);
|
|
18
|
-
}
|
|
19
|
-
return gmailAppMenuItemView;
|
|
20
|
-
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import once from 'lodash/once';
|
|
2
|
-
import GmailElementGetter from '../gmail-element-getter';
|
|
3
|
-
import waitFor from '../../../lib/wait-for';
|
|
4
|
-
import Logger from '../../../lib/logger';
|
|
5
|
-
import { CollapsiblePanelView } from '../../../views/collapsible-panel-view';
|
|
6
|
-
export async function addCollapsiblePanel(driver, panelDescriptor, insertIndex) {
|
|
7
|
-
const injectionContainer = await waitForAppMenuParentReady();
|
|
8
|
-
const collapsiblePanelView = new CollapsiblePanelView(driver, panelDescriptor);
|
|
9
|
-
if (!injectionContainer || !collapsiblePanelView.element)
|
|
10
|
-
return;
|
|
11
|
-
const appMenu = await GmailElementGetter.getAppMenuAsync();
|
|
12
|
-
if (!appMenu)
|
|
13
|
-
return;
|
|
14
|
-
const panelNodes = injectionContainer.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? [];
|
|
15
|
-
const siblingElement = Number.isInteger(insertIndex)
|
|
16
|
-
? panelNodes[insertIndex] ?? null
|
|
17
|
-
: null;
|
|
18
|
-
if (siblingElement) {
|
|
19
|
-
siblingElement.insertAdjacentElement('beforebegin', collapsiblePanelView.element);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
[...panelNodes]
|
|
23
|
-
.at(-1)
|
|
24
|
-
?.insertAdjacentElement('afterend', collapsiblePanelView.element);
|
|
25
|
-
}
|
|
26
|
-
return collapsiblePanelView;
|
|
27
|
-
}
|
|
28
|
-
const waitForAppMenuParentReady = once(async () => {
|
|
29
|
-
if (!GmailElementGetter.isStandalone()) {
|
|
30
|
-
try {
|
|
31
|
-
const menuParentElement = await waitFor(() => GmailElementGetter.getAppMenuContainer());
|
|
32
|
-
return menuParentElement;
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
Logger.error(e);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
});
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import GmailElementGetter from '../gmail-element-getter';
|
|
2
|
-
import GmailNavItemView from '../views/gmail-nav-item-view';
|
|
3
|
-
import Logger from '../../../lib/logger';
|
|
4
|
-
import waitFor from '../../../lib/wait-for';
|
|
5
|
-
import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
|
|
6
|
-
import makeMutationObserverStream from '../../../lib/dom/make-mutation-observer-stream';
|
|
7
|
-
import querySelector from '../../../lib/dom/querySelectorOrFail';
|
|
8
|
-
import once from 'lodash/once';
|
|
9
|
-
export default async function addNavItem(driver, orderGroup, navItemDescriptor, navMenuInjectionContainer) {
|
|
10
|
-
await waitForMenuReady();
|
|
11
|
-
const gmailNavItemView = new GmailNavItemView(driver, orderGroup, 1);
|
|
12
|
-
gmailNavItemView.setNavItemDescriptor(navItemDescriptor);
|
|
13
|
-
if (!GmailElementGetter.isStandalone()) {
|
|
14
|
-
try {
|
|
15
|
-
const attacher = _attachNavItemView(gmailNavItemView, navMenuInjectionContainer);
|
|
16
|
-
attacher();
|
|
17
|
-
gmailNavItemView
|
|
18
|
-
.getEventStream()
|
|
19
|
-
.filter((event) => event.eventName === 'orderChanged')
|
|
20
|
-
.onValue(attacher);
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
Logger.error(err);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return gmailNavItemView;
|
|
27
|
-
}
|
|
28
|
-
export const waitForMenuReady = once(async () => {
|
|
29
|
-
const appMenu = await GmailElementGetter.getAppMenuAsync();
|
|
30
|
-
if (!appMenu) {
|
|
31
|
-
await waitForNavMenuReady();
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
const waitForNavMenuReady = once(async () => {
|
|
35
|
-
if (!GmailElementGetter.isStandalone()) {
|
|
36
|
-
await GmailElementGetter.waitForGmailModeToSettle();
|
|
37
|
-
await waitFor(() => document.querySelector('.aeN[role=navigation], .aeN [role=navigation]'));
|
|
38
|
-
// Wait for contents of navmenu to load (needed to figure out if it's integrated gmail mode)
|
|
39
|
-
await waitFor(() => document.querySelector('.Ls77Lb.aZ6 > .pp'));
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
function _attachNavItemView(gmailNavItemView, navMenuInjectionContainer) {
|
|
43
|
-
if (navMenuInjectionContainer) {
|
|
44
|
-
return () => {
|
|
45
|
-
insertElementInOrder(navMenuInjectionContainer, gmailNavItemView.getElement());
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (!GmailElementGetter.shouldAddNavItemsInline()) {
|
|
49
|
-
// If we're in the modern (non-classic-hangouts) leftnav, then put
|
|
50
|
-
// the added nav items in a floating section at the bottom separate
|
|
51
|
-
// from the Mail section.
|
|
52
|
-
return function () {
|
|
53
|
-
const navMenuInjectionContainer = GmailElementGetter.getSeparateSectionNavItemMenuInjectionContainer();
|
|
54
|
-
if (!navMenuInjectionContainer) {
|
|
55
|
-
throw new Error('should not happen');
|
|
56
|
-
}
|
|
57
|
-
const nonMailLeftNavSections = Array.from(document.querySelectorAll('.Xa.wT:not([data-group-order-hint])')).slice(1);
|
|
58
|
-
nonMailLeftNavSections.forEach((div) => {
|
|
59
|
-
div.dataset.groupOrderHint = 'zz_gmail';
|
|
60
|
-
});
|
|
61
|
-
insertElementInOrder(navMenuInjectionContainer, gmailNavItemView.getElement());
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
// If we're in the old classic-hangouts-compatible leftnav, then
|
|
66
|
-
// inject our added nav items among Gmail's own nav items.
|
|
67
|
-
return function () {
|
|
68
|
-
insertElementInOrder(_getNavItemsHolder(), gmailNavItemView.getElement());
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function _getNavItemsHolder() {
|
|
73
|
-
const holder = document.querySelector('.inboxsdk__navMenu');
|
|
74
|
-
if (!holder) {
|
|
75
|
-
return _createNavItemsHolder();
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return querySelector(holder, '.TK');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function _createNavItemsHolder() {
|
|
82
|
-
const holder = document.createElement('div');
|
|
83
|
-
holder.setAttribute('class', 'LrBjie inboxsdk__navMenu');
|
|
84
|
-
holder.innerHTML = '<div class="TK"></div>';
|
|
85
|
-
const navMenuInjectionContainer = GmailElementGetter.getSameSectionNavItemMenuInjectionContainer();
|
|
86
|
-
if (!navMenuInjectionContainer)
|
|
87
|
-
throw new Error('should not happen');
|
|
88
|
-
navMenuInjectionContainer.insertBefore(holder, navMenuInjectionContainer.children[2]);
|
|
89
|
-
makeMutationObserverStream(holder, {
|
|
90
|
-
attributes: true,
|
|
91
|
-
attributeFilter: ['class'],
|
|
92
|
-
}).onValue(function () {
|
|
93
|
-
if (holder.classList.contains('TA')) {
|
|
94
|
-
holder.classList.remove('TA');
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
return querySelector(holder, '.TK');
|
|
98
|
-
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import GmailElementGetter from '../gmail-element-getter';
|
|
2
|
-
import GmailAppToolbarButtonView from '../views/gmail-app-toolbar-button-view';
|
|
3
|
-
export default function addToolbarButtonForApp(gmailDriver, buttonDescriptor) {
|
|
4
|
-
return GmailElementGetter.waitForGmailModeToSettle().then(() => {
|
|
5
|
-
if (GmailElementGetter.isStandalone()) {
|
|
6
|
-
return new Promise((_resolve, _reject) => {
|
|
7
|
-
//never complete
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
return new GmailAppToolbarButtonView(gmailDriver, buttonDescriptor);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import populateRouteID from '../../../lib/populateRouteID';
|
|
2
|
-
import Logger from '../../../lib/logger';
|
|
3
|
-
export default function createLink(GmailRouteProcessor, routeID, params) {
|
|
4
|
-
params =
|
|
5
|
-
typeof params === 'string'
|
|
6
|
-
? params
|
|
7
|
-
: params
|
|
8
|
-
? Object.assign({}, params)
|
|
9
|
-
: {};
|
|
10
|
-
routeID = GmailRouteProcessor.getCompatibleRouteID(routeID);
|
|
11
|
-
if (typeof params === 'string') {
|
|
12
|
-
var matches = routeID.match(/:/g);
|
|
13
|
-
if (matches && matches.length === 1) {
|
|
14
|
-
var paramValue = params;
|
|
15
|
-
params = {};
|
|
16
|
-
params[routeID.match(/:(\w+)($|\/)?/)[1]] = paramValue;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
params = {};
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
const hasPageParam = routeID.match(/:page(?:\/|$)/);
|
|
23
|
-
if (hasPageParam && !params.page) {
|
|
24
|
-
params.page = 0;
|
|
25
|
-
}
|
|
26
|
-
const parts = routeID.split('/');
|
|
27
|
-
// attempt to use new, more strict populateRouteID fn, if that fails
|
|
28
|
-
// log an error and fallback to older, more permissive approach.
|
|
29
|
-
// intent is to retire the old approach once we understand the consequences.
|
|
30
|
-
let processedRoute;
|
|
31
|
-
try {
|
|
32
|
-
processedRoute = populateRouteID(routeID, params);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
Logger.error(error, {
|
|
36
|
-
routeID,
|
|
37
|
-
paramsKey: Object.keys(params),
|
|
38
|
-
});
|
|
39
|
-
processedRoute = parts
|
|
40
|
-
.map(function (part) {
|
|
41
|
-
if (part.indexOf(':') === -1) {
|
|
42
|
-
return part;
|
|
43
|
-
}
|
|
44
|
-
const colonParts = part.split(':');
|
|
45
|
-
if (params &&
|
|
46
|
-
typeof params[colonParts[1]] !== 'undefined') {
|
|
47
|
-
return colonParts[0] + params[colonParts[1]];
|
|
48
|
-
}
|
|
49
|
-
return colonParts[0];
|
|
50
|
-
})
|
|
51
|
-
.map(encodeURIComponent)
|
|
52
|
-
.join('/');
|
|
53
|
-
}
|
|
54
|
-
//check if link is of the form inbox/p0 or search/blah/p0
|
|
55
|
-
if (GmailRouteProcessor.isListRouteName(parts[0]) &&
|
|
56
|
-
processedRoute.indexOf('p0') === processedRoute.length - 2) {
|
|
57
|
-
processedRoute = processedRoute.substring(0, processedRoute.length - 3);
|
|
58
|
-
}
|
|
59
|
-
return '#' + processedRoute;
|
|
60
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { convertBase } from '@macil/simple-base-converter';
|
|
2
|
-
const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
3
|
-
const GMAIL_ALPHABET = 'BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz';
|
|
4
|
-
export default function encodeDraftUrlId(syncThreadId, syncMessageId) {
|
|
5
|
-
const raw = `${syncThreadId.replace(/^thread-/, '')}+${syncMessageId}`;
|
|
6
|
-
const b64 = Buffer.from(raw).toString('base64').replace(/=/g, '');
|
|
7
|
-
return convertBase(b64, B64_ALPHABET, GMAIL_ALPHABET);
|
|
8
|
-
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import memoize from 'lodash/memoize';
|
|
2
|
-
import { defn } from 'ud';
|
|
3
|
-
import gmailAjax from '../../../driver-common/gmailAjax';
|
|
4
|
-
import { readDraftId } from '../gmail-response-processor';
|
|
5
|
-
import isStreakAppId from '../../../lib/isStreakAppId';
|
|
6
|
-
async function uncachedGetDraftIDForMessageID(driver, messageID) {
|
|
7
|
-
const response = await gmailAjax({
|
|
8
|
-
method: 'GET',
|
|
9
|
-
url: document.location.origin + document.location.pathname,
|
|
10
|
-
data: {
|
|
11
|
-
ui: '2',
|
|
12
|
-
ik: driver.getPageCommunicator().getIkValue(),
|
|
13
|
-
view: 'cv',
|
|
14
|
-
th: messageID,
|
|
15
|
-
prf: '1',
|
|
16
|
-
nsc: '1',
|
|
17
|
-
mb: '0',
|
|
18
|
-
rt: 'j',
|
|
19
|
-
search: 'drafts',
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
try {
|
|
23
|
-
const draftID = readDraftId(response.text, messageID);
|
|
24
|
-
const debugData = { responseText: response.text };
|
|
25
|
-
return { draftID, debugData };
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
if (isStreakAppId(driver.getAppId())) {
|
|
29
|
-
driver.getLogger().error(err, {
|
|
30
|
-
message: 'failed to read draft ID',
|
|
31
|
-
messageID,
|
|
32
|
-
text: response.text,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
throw err;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const cachedGetDraftIDForMessageID = memoize(uncachedGetDraftIDForMessageID, (driver, messageID) => messageID);
|
|
39
|
-
function getDraftIDForMessageID(driver, messageID, skipCache = false) {
|
|
40
|
-
if (skipCache) {
|
|
41
|
-
return uncachedGetDraftIDForMessageID(driver, messageID);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return cachedGetDraftIDForMessageID(driver, messageID);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
export default defn(module, getDraftIDForMessageID);
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import NativeGmailNavItemView from '../views/native-gmail-nav-item-view';
|
|
2
|
-
import GmailElementGetter from '../gmail-element-getter';
|
|
3
|
-
import findParent from '../../../../common/find-parent';
|
|
4
|
-
import waitFor from '../../../lib/wait-for';
|
|
5
|
-
export default function getNativeNavItem(driver, label) {
|
|
6
|
-
return waitFor(() => {
|
|
7
|
-
const navContainer = GmailElementGetter.getLeftNavContainerElement();
|
|
8
|
-
if (!navContainer)
|
|
9
|
-
return null;
|
|
10
|
-
return navContainer.querySelector(`.aim a[href*="#${label}"]`);
|
|
11
|
-
}, 300 * 1000)
|
|
12
|
-
.then((labelLinkElement) => {
|
|
13
|
-
const labelElement = findParent(labelLinkElement, (el) => el.classList.contains('aim'));
|
|
14
|
-
if (!labelElement) {
|
|
15
|
-
throw new Error('native nav item structured weird');
|
|
16
|
-
}
|
|
17
|
-
if (!labelElement.__nativeGmailNavItemView) {
|
|
18
|
-
labelElement.__nativeGmailNavItemView =
|
|
19
|
-
new NativeGmailNavItemView(driver, labelElement, label);
|
|
20
|
-
}
|
|
21
|
-
return labelElement.__nativeGmailNavItemView;
|
|
22
|
-
})
|
|
23
|
-
.catch((err) => {
|
|
24
|
-
if (GmailElementGetter.isStandalone()) {
|
|
25
|
-
// never resolve
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
27
|
-
return new Promise((_resolve, _reject) => { });
|
|
28
|
-
}
|
|
29
|
-
throw err;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import getOriginalMessagePage from '../../../driver-common/getOriginalMessagePage';
|
|
2
|
-
import htmlToText from '../../../../common/html-to-text';
|
|
3
|
-
export default async function getRfcMessageIdForGmailMessageId(driver, gmailMessageId) {
|
|
4
|
-
const text = await getOriginalMessagePage(driver, {
|
|
5
|
-
oldGmailMessageID: gmailMessageId,
|
|
6
|
-
});
|
|
7
|
-
const match = text.match(/^Message-ID:\s+(\S+)\s*$/im);
|
|
8
|
-
if (!match) {
|
|
9
|
-
throw new Error("Failed to find rfc id for gmail thread id. Message may not exist in user's account.");
|
|
10
|
-
}
|
|
11
|
-
return htmlToText(match[1]);
|
|
12
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import gmailAjax from '../../../driver-common/gmailAjax';
|
|
2
|
-
import querystring from 'querystring';
|
|
3
|
-
import * as GmailResponseProcessor from '../gmail-response-processor';
|
|
4
|
-
import getRfcMessageIdForGmailMessageId from './get-rfc-message-id-for-gmail-message-id';
|
|
5
|
-
export default async function getRfcMessageIdForGmailThreadId(driver, gmailThreadId) {
|
|
6
|
-
const messageIdQuery = {
|
|
7
|
-
ui: 2,
|
|
8
|
-
ik: driver.getPageCommunicator().getIkValue(),
|
|
9
|
-
view: 'cv',
|
|
10
|
-
th: gmailThreadId,
|
|
11
|
-
nsc: 1,
|
|
12
|
-
mb: 0,
|
|
13
|
-
rt: 'j',
|
|
14
|
-
search: 'all',
|
|
15
|
-
};
|
|
16
|
-
const gmailMessageIdResponse = await gmailAjax({
|
|
17
|
-
method: 'POST',
|
|
18
|
-
url: document.location.origin +
|
|
19
|
-
document.location.pathname +
|
|
20
|
-
'?' +
|
|
21
|
-
querystring.stringify(messageIdQuery),
|
|
22
|
-
canRetry: true,
|
|
23
|
-
});
|
|
24
|
-
const extractedIds = GmailResponseProcessor.extractMessageIdsFromThreadBatchRequest(gmailMessageIdResponse.text);
|
|
25
|
-
if (Object.keys(extractedIds).length !== 1) {
|
|
26
|
-
throw new Error(`Expected to find 1 thread/message ID pair, but got ${Object.keys(extractedIds).length}`);
|
|
27
|
-
}
|
|
28
|
-
const gmailMessageId = extractedIds[gmailThreadId];
|
|
29
|
-
if (!gmailMessageId) {
|
|
30
|
-
throw new Error('Could not find a message ID for given thread ID');
|
|
31
|
-
}
|
|
32
|
-
return getRfcMessageIdForGmailMessageId(driver, gmailMessageId);
|
|
33
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export default function getURLObject(url) {
|
|
2
|
-
const m = url.match(/#([^?]*)(?:\?(.*))?/);
|
|
3
|
-
if (!m) {
|
|
4
|
-
return {
|
|
5
|
-
name: 'inbox',
|
|
6
|
-
params: [],
|
|
7
|
-
hash: '',
|
|
8
|
-
query: undefined,
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
const hash = m[1];
|
|
12
|
-
const hashParts = hash.split('/');
|
|
13
|
-
return {
|
|
14
|
-
name: decodeURIComponent(hashParts[0]),
|
|
15
|
-
params: hashParts
|
|
16
|
-
.slice(1)
|
|
17
|
-
.map((part) => part.replace(/\+/g, ' '))
|
|
18
|
-
.map(decodeURIComponent),
|
|
19
|
-
query: m[2],
|
|
20
|
-
hash,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
|
-
import getSyncThreadsForSearch from '../../../driver-common/getSyncThreadsForSearch';
|
|
3
|
-
import isStreakAppId from '../../../lib/isStreakAppId';
|
|
4
|
-
export default async function getSyncThreadForOldGmailThreadId(driver, oldGmailThreadId) {
|
|
5
|
-
const { threads: threadDescriptors, _text } = await getSyncThreadsForSearch(driver, 'threadid:' + new BigNumber(oldGmailThreadId, 16).toString(10));
|
|
6
|
-
const firstThread = threadDescriptors[0];
|
|
7
|
-
if (firstThread == null) {
|
|
8
|
-
console.error(`Thread with ID ${oldGmailThreadId} not found by Gmail`);
|
|
9
|
-
const isStreak = isStreakAppId(driver.getAppId());
|
|
10
|
-
const err = new Error('Thread not found by getSyncThreadForOldGmailThreadId');
|
|
11
|
-
driver.getLogger().error(err, {
|
|
12
|
-
oldGmailThreadId: isStreak ? oldGmailThreadId : null,
|
|
13
|
-
responseText: isStreak ? _text : null,
|
|
14
|
-
});
|
|
15
|
-
throw err;
|
|
16
|
-
}
|
|
17
|
-
return firstThread;
|
|
18
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import gmailAjax from '../../../driver-common/gmailAjax';
|
|
2
|
-
import { extractThreadsFromThreadResponse } from '../gmail-sync-response-processor';
|
|
3
|
-
import getAccountUrlPart from '../../../driver-common/getAccountUrlPart';
|
|
4
|
-
export default async function getThreadFromSyncThreadId(driver, syncThreadId) {
|
|
5
|
-
const [btaiHeader, xsrfToken] = await Promise.all([
|
|
6
|
-
driver.getPageCommunicator().getBtaiHeader(),
|
|
7
|
-
driver.getPageCommunicator().getXsrfToken(),
|
|
8
|
-
]);
|
|
9
|
-
return getThreadFromSyncThreadIdUsingHeaders(syncThreadId, btaiHeader, xsrfToken);
|
|
10
|
-
}
|
|
11
|
-
export async function getThreadFromSyncThreadIdUsingHeaders(syncThreadId, btaiHeader, xsrfToken) {
|
|
12
|
-
let responseText = null;
|
|
13
|
-
try {
|
|
14
|
-
const { text } = await gmailAjax({
|
|
15
|
-
method: 'POST',
|
|
16
|
-
url: `https://mail.google.com/sync${getAccountUrlPart()}/i/fd`,
|
|
17
|
-
headers: {
|
|
18
|
-
'Content-Type': 'application/json',
|
|
19
|
-
'X-Framework-Xsrf-Token': xsrfToken,
|
|
20
|
-
'X-Gmail-BTAI': btaiHeader,
|
|
21
|
-
'X-Google-BTD': '1',
|
|
22
|
-
},
|
|
23
|
-
data: JSON.stringify({
|
|
24
|
-
'1': [
|
|
25
|
-
{
|
|
26
|
-
'1': syncThreadId,
|
|
27
|
-
'2': 1,
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
}),
|
|
31
|
-
});
|
|
32
|
-
responseText = text;
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
// try sending request with new format 2022_09_09
|
|
36
|
-
const { text } = await gmailAjax({
|
|
37
|
-
method: 'POST',
|
|
38
|
-
url: `https://mail.google.com/sync${getAccountUrlPart()}/i/fd?rt=r&pt=ji`,
|
|
39
|
-
headers: {
|
|
40
|
-
'Content-Type': 'application/json',
|
|
41
|
-
'X-Framework-Xsrf-Token': xsrfToken,
|
|
42
|
-
'X-Gmail-BTAI': btaiHeader,
|
|
43
|
-
'X-Google-BTD': '1',
|
|
44
|
-
},
|
|
45
|
-
data: JSON.stringify([[[syncThreadId, 1]], 2]),
|
|
46
|
-
});
|
|
47
|
-
responseText = text;
|
|
48
|
-
}
|
|
49
|
-
const threadDescriptors = extractThreadsFromThreadResponse(responseText);
|
|
50
|
-
if (threadDescriptors.length > 0) {
|
|
51
|
-
const thread = threadDescriptors[0];
|
|
52
|
-
if (thread.oldGmailThreadID) {
|
|
53
|
-
return thread;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return null;
|
|
57
|
-
}
|