@theia/core 1.27.0-next.9 → 1.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -7
- package/i18n/nls.cs.json +52 -6
- package/i18n/nls.de.json +52 -6
- package/i18n/nls.es.json +52 -6
- package/i18n/nls.fr.json +52 -6
- package/i18n/nls.hu.json +55 -9
- package/i18n/nls.it.json +52 -6
- package/i18n/nls.ja.json +52 -6
- package/i18n/nls.json +52 -6
- package/i18n/nls.pl.json +52 -6
- package/i18n/nls.pt-br.json +52 -6
- package/i18n/nls.pt-pt.json +52 -6
- package/i18n/nls.ru.json +52 -6
- package/i18n/nls.zh-cn.json +52 -6
- package/lib/browser/color-application-contribution.d.ts +2 -2
- package/lib/browser/color-application-contribution.d.ts.map +1 -1
- package/lib/browser/color-application-contribution.js +15 -16
- package/lib/browser/color-application-contribution.js.map +1 -1
- package/lib/browser/color-registry.d.ts +0 -4
- package/lib/browser/color-registry.d.ts.map +1 -1
- package/lib/browser/color-registry.js +0 -14
- package/lib/browser/color-registry.js.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +4 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +157 -163
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.d.ts +28 -0
- package/lib/browser/common-styling-participants.d.ts.map +1 -0
- package/lib/browser/common-styling-participants.js +319 -0
- package/lib/browser/common-styling-participants.js.map +1 -0
- package/lib/browser/connection-status-service.d.ts.map +1 -1
- package/lib/browser/connection-status-service.js +2 -2
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +1 -2
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +1 -5
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +10 -30
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.d.ts +1 -0
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +5 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/decoration-style.d.ts +1 -0
- package/lib/browser/decoration-style.d.ts.map +1 -1
- package/lib/browser/decoration-style.js +6 -2
- package/lib/browser/decoration-style.js.map +1 -1
- package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
- package/lib/browser/frontend-application-bindings.js +1 -3
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.d.ts +1 -0
- package/lib/browser/frontend-application-config-provider.d.ts.map +1 -1
- package/lib/browser/frontend-application-config-provider.js +2 -1
- package/lib/browser/frontend-application-config-provider.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +9 -3
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/i18n/i18n-frontend-module.d.ts.map +1 -1
- package/lib/browser/i18n/i18n-frontend-module.js +2 -0
- package/lib/browser/i18n/i18n-frontend-module.js.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.d.ts +17 -0
- package/lib/browser/i18n/language-quick-pick-service.d.ts.map +1 -0
- package/lib/browser/i18n/language-quick-pick-service.js +142 -0
- package/lib/browser/i18n/language-quick-pick-service.js.map +1 -0
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +2 -1
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +18 -21
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/label-provider.d.ts +0 -12
- package/lib/browser/label-provider.d.ts.map +1 -1
- package/lib/browser/label-provider.js +1 -13
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/logger-frontend-module.d.ts.map +1 -1
- package/lib/browser/logger-frontend-module.js +8 -1
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.d.ts +5 -4
- package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +30 -23
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts +2 -19
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +1 -24
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.d.ts +0 -4
- package/lib/browser/preferences/preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/preference-proxy.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +3 -102
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +4 -3
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +1 -2
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +2 -2
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/preloader.d.ts.map +1 -1
- package/lib/browser/preloader.js +7 -1
- package/lib/browser/preloader.js.map +1 -1
- package/lib/browser/progress-status-bar-item.d.ts +1 -1
- package/lib/browser/progress-status-bar-item.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +2 -2
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +5 -4
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +4 -0
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +42 -36
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts +2 -0
- package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +5 -1
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +3 -2
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +4 -2
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +12 -4
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +1 -1
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/tree-source.d.ts +2 -1
- package/lib/browser/source-tree/tree-source.d.ts.map +1 -1
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/styling-service.d.ts +26 -0
- package/lib/browser/styling-service.d.ts.map +1 -0
- package/lib/browser/styling-service.js +76 -0
- package/lib/browser/styling-service.js.map +1 -0
- package/lib/browser/theming.d.ts +4 -8
- package/lib/browser/theming.d.ts.map +1 -1
- package/lib/browser/theming.js +38 -53
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tree/search-box.d.ts.map +1 -1
- package/lib/browser/tree/search-box.js +5 -4
- package/lib/browser/tree/search-box.js.map +1 -1
- package/lib/browser/tree/test/tree-test-container.d.ts.map +1 -1
- package/lib/browser/tree/test/tree-test-container.js +2 -0
- package/lib/browser/tree/test/tree-test-container.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.js +4 -2
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +4 -2
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
- package/lib/browser/tree/tree-container.d.ts +2 -0
- package/lib/browser/tree/tree-container.d.ts.map +1 -1
- package/lib/browser/tree/tree-container.js +3 -0
- package/lib/browser/tree/tree-container.js.map +1 -1
- package/lib/browser/tree/tree-focus-service.d.ts +20 -0
- package/lib/browser/tree/tree-focus-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-focus-service.js +62 -0
- package/lib/browser/tree/tree-focus-service.js.map +1 -0
- package/lib/browser/tree/tree-model.d.ts +11 -2
- package/lib/browser/tree/tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-model.js +29 -8
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-selection-impl.d.ts +4 -1
- package/lib/browser/tree/tree-selection-impl.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection-impl.js +13 -2
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.d.ts +1 -0
- package/lib/browser/tree/tree-selection-state.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection-state.js +8 -2
- package/lib/browser/tree/tree-selection-state.js.map +1 -1
- package/lib/browser/tree/tree-selection.d.ts +9 -0
- package/lib/browser/tree/tree-selection.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection.js +3 -0
- package/lib/browser/tree/tree-selection.js.map +1 -1
- package/lib/browser/tree/tree-widget-selection.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget-selection.js +9 -1
- package/lib/browser/tree/tree-widget-selection.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +14 -0
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +80 -40
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.d.ts +2 -1
- package/lib/browser/tree/tree.d.ts.map +1 -1
- package/lib/browser/tree/tree.js +12 -2
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/view-container.d.ts +9 -4
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +36 -6
- package/lib/browser/view-container.js.map +1 -1
- package/lib/common/cancellation.d.ts +1 -0
- package/lib/common/cancellation.d.ts.map +1 -1
- package/lib/common/cancellation.js +8 -0
- package/lib/common/cancellation.js.map +1 -1
- package/lib/common/command.d.ts +1 -1
- package/lib/common/command.d.ts.map +1 -1
- package/lib/common/command.js +13 -16
- package/lib/common/command.js.map +1 -1
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/message-rpc/channel.d.ts +106 -0
- package/lib/common/message-rpc/channel.d.ts.map +1 -0
- package/lib/common/message-rpc/channel.js +195 -0
- package/lib/common/message-rpc/channel.js.map +1 -0
- package/lib/common/message-rpc/channel.spec.d.ts +9 -0
- package/lib/common/message-rpc/channel.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/channel.spec.js +80 -0
- package/lib/common/message-rpc/channel.spec.js.map +1 -0
- package/lib/common/message-rpc/index.d.ts +4 -0
- package/lib/common/message-rpc/index.d.ts.map +1 -0
- package/lib/{node/messaging/logger.js → common/message-rpc/index.js} +6 -19
- package/lib/common/message-rpc/index.js.map +1 -0
- package/lib/common/message-rpc/message-buffer.d.ts +50 -0
- package/lib/common/message-rpc/message-buffer.d.ts.map +1 -0
- package/lib/common/message-rpc/message-buffer.js +56 -0
- package/lib/common/message-rpc/message-buffer.js.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.d.ts +171 -0
- package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.js +409 -0
- package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.d.ts +2 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.js +49 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.js.map +1 -0
- package/lib/common/message-rpc/rpc-protocol.d.ts +61 -0
- package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-protocol.js +183 -0
- package/lib/common/message-rpc/rpc-protocol.js.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts +52 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.js +169 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.d.ts +2 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.js +39 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.js.map +1 -0
- package/lib/common/messaging/abstract-connection-provider.d.ts +9 -8
- package/lib/common/messaging/abstract-connection-provider.d.ts.map +1 -1
- package/lib/common/messaging/abstract-connection-provider.js +20 -35
- package/lib/common/messaging/abstract-connection-provider.js.map +1 -1
- package/lib/common/messaging/connection-error-handler.d.ts +1 -2
- package/lib/common/messaging/connection-error-handler.d.ts.map +1 -1
- package/lib/common/messaging/connection-error-handler.js +1 -1
- package/lib/common/messaging/connection-error-handler.js.map +1 -1
- package/lib/common/messaging/handler.d.ts +2 -2
- package/lib/common/messaging/handler.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts +13 -7
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +18 -13
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js +4 -15
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts +54 -48
- package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
- package/lib/common/messaging/web-socket-channel.js +41 -105
- package/lib/common/messaging/web-socket-channel.js.map +1 -1
- package/lib/common/nls.d.ts +2 -0
- package/lib/common/nls.d.ts.map +1 -1
- package/lib/common/nls.js +11 -0
- package/lib/common/nls.js.map +1 -1
- package/lib/common/preferences/preference-schema.d.ts +1 -5
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/promise-util.d.ts +2 -1
- package/lib/common/promise-util.d.ts.map +1 -1
- package/lib/common/promise-util.js +8 -13
- package/lib/common/promise-util.js.map +1 -1
- package/lib/common/resource.d.ts +5 -0
- package/lib/common/resource.d.ts.map +1 -1
- package/lib/common/resource.js +28 -1
- package/lib/common/resource.js.map +1 -1
- package/lib/common/theme.d.ts +3 -2
- package/lib/common/theme.d.ts.map +1 -1
- package/lib/common/theme.js +5 -0
- package/lib/common/theme.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts +2 -2
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js +18 -7
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +2 -2
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js +5 -7
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +1 -1
- package/lib/electron-main/event-utils.d.ts +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +37 -9
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +83 -68
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.d.ts +2 -8
- package/lib/electron-main/messaging/electron-messaging-service.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
- package/lib/node/messaging/binary-message-pipe.d.ts +45 -0
- package/lib/node/messaging/binary-message-pipe.d.ts.map +1 -0
- package/lib/node/messaging/binary-message-pipe.js +152 -0
- package/lib/node/messaging/binary-message-pipe.js.map +1 -0
- package/lib/node/messaging/ipc-bootstrap.js +2 -11
- package/lib/node/messaging/ipc-bootstrap.js.map +1 -1
- package/lib/node/messaging/ipc-channel.d.ts +26 -0
- package/lib/node/messaging/ipc-channel.d.ts.map +1 -0
- package/lib/node/messaging/ipc-channel.js +86 -0
- package/lib/node/messaging/ipc-channel.js.map +1 -0
- package/lib/node/messaging/ipc-connection-provider.d.ts +3 -5
- package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +14 -31
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/ipc-protocol.d.ts +2 -2
- package/lib/node/messaging/ipc-protocol.d.ts.map +1 -1
- package/lib/node/messaging/messaging-contribution.d.ts +6 -9
- package/lib/node/messaging/messaging-contribution.d.ts.map +1 -1
- package/lib/node/messaging/messaging-contribution.js +23 -68
- package/lib/node/messaging/messaging-contribution.js.map +1 -1
- package/lib/node/messaging/messaging-service.d.ts +4 -23
- package/lib/node/messaging/messaging-service.d.ts.map +1 -1
- package/lib/node/messaging/messaging-service.js +1 -15
- package/lib/node/messaging/messaging-service.js.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.d.ts +4 -2
- package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.js +25 -12
- package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
- package/lib/node/request/proxy-cli-contribution.js +1 -1
- package/lib/node/request/proxy-cli-contribution.js.map +1 -1
- package/package.json +7 -10
- package/src/browser/color-application-contribution.ts +10 -17
- package/src/browser/color-registry.ts +0 -5
- package/src/browser/common-frontend-contribution.ts +26 -33
- package/src/browser/common-styling-participants.ts +307 -0
- package/src/browser/connection-status-service.spec.ts +1 -4
- package/src/browser/connection-status-service.ts +3 -3
- package/src/browser/context-menu-renderer.ts +13 -29
- package/src/browser/core-preferences.ts +6 -0
- package/src/browser/decoration-style.ts +6 -2
- package/src/browser/frontend-application-bindings.ts +1 -3
- package/src/browser/frontend-application-config-provider.ts +2 -0
- package/src/browser/frontend-application-module.ts +11 -4
- package/src/browser/i18n/i18n-frontend-module.ts +2 -0
- package/src/browser/i18n/language-quick-pick-service.ts +128 -0
- package/src/browser/index.ts +1 -0
- package/src/browser/keybinding.spec.ts +22 -27
- package/src/browser/keybinding.ts +2 -1
- package/src/browser/label-provider.ts +0 -13
- package/src/browser/logger-frontend-module.ts +8 -1
- package/src/browser/messaging/ws-connection-provider.ts +34 -25
- package/src/browser/preferences/preference-contribution.ts +3 -28
- package/src/browser/preferences/preference-proxy.spec.ts +3 -113
- package/src/browser/preferences/preference-proxy.ts +0 -4
- package/src/browser/preferences/preference-schema-provider.spec.ts +1 -4
- package/src/browser/preferences/preference-service.spec.ts +1 -5
- package/src/browser/preferences/preference-validation-service.spec.ts +2 -2
- package/src/browser/preferences/preference-validation-service.ts +2 -2
- package/src/browser/preloader.ts +9 -2
- package/src/browser/progress-status-bar-item.ts +1 -1
- package/src/browser/quick-input/quick-command-service.ts +3 -3
- package/src/browser/saveable.ts +5 -4
- package/src/browser/shell/application-shell.ts +42 -35
- package/src/browser/shell/shell-layout-restorer.ts +4 -6
- package/src/browser/shell/side-panel-handler.ts +3 -2
- package/src/browser/shell/tab-bars.ts +14 -4
- package/src/browser/source-tree/source-tree-widget.tsx +1 -1
- package/src/browser/source-tree/tree-source.ts +2 -1
- package/src/browser/style/breadcrumbs.css +0 -1
- package/src/browser/style/index.css +66 -29
- package/src/browser/style/menus.css +4 -2
- package/src/browser/style/select-component.css +2 -0
- package/src/browser/style/sidepanel.css +11 -25
- package/src/browser/style/status-bar.css +8 -17
- package/src/browser/style/tabs.css +0 -16
- package/src/browser/style/tooltip.css +3 -3
- package/src/browser/style/tree.css +27 -11
- package/src/browser/style/view-container.css +4 -0
- package/src/browser/styling-service.ts +76 -0
- package/src/browser/theming.ts +18 -45
- package/src/browser/tree/search-box.ts +5 -4
- package/src/browser/tree/test/tree-test-container.ts +2 -0
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +8 -2
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +4 -2
- package/src/browser/tree/tree-container.ts +4 -0
- package/src/browser/tree/tree-focus-service.ts +55 -0
- package/src/browser/tree/tree-model.ts +32 -8
- package/src/browser/tree/tree-selection-impl.ts +13 -4
- package/src/browser/tree/tree-selection-state.ts +7 -2
- package/src/browser/tree/tree-selection.ts +10 -0
- package/src/browser/tree/tree-widget-selection.ts +10 -1
- package/src/browser/tree/tree-widget.tsx +83 -43
- package/src/browser/tree/tree.ts +8 -2
- package/src/browser/view-container.ts +41 -4
- package/src/common/cancellation.ts +8 -0
- package/src/common/command.ts +14 -16
- package/src/common/index.ts +1 -0
- package/src/common/message-rpc/channel.spec.ts +88 -0
- package/src/common/message-rpc/channel.ts +260 -0
- package/src/{node/messaging/logger.ts → common/message-rpc/index.ts} +4 -23
- package/src/common/message-rpc/message-buffer.ts +99 -0
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +55 -0
- package/src/common/message-rpc/rpc-message-encoder.ts +552 -0
- package/src/common/message-rpc/rpc-protocol.ts +217 -0
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -0
- package/src/common/message-rpc/uint8-array-message-buffer.ts +206 -0
- package/src/common/messaging/abstract-connection-provider.ts +28 -37
- package/src/common/messaging/connection-error-handler.ts +1 -2
- package/src/common/messaging/handler.ts +2 -2
- package/src/common/messaging/proxy-factory.spec.ts +4 -17
- package/src/common/messaging/proxy-factory.ts +27 -16
- package/src/common/messaging/web-socket-channel.ts +79 -135
- package/src/common/nls.ts +11 -0
- package/src/common/preferences/preference-schema.ts +1 -6
- package/src/common/promise-util.ts +13 -14
- package/src/common/resource.ts +29 -2
- package/src/common/theme.ts +6 -2
- package/src/electron-browser/messaging/electron-ipc-connection-provider.ts +21 -7
- package/src/electron-browser/messaging/electron-ws-connection-provider.ts +5 -8
- package/src/electron-main/messaging/electron-messaging-contribution.ts +87 -65
- package/src/electron-main/messaging/electron-messaging-service.ts +2 -8
- package/src/node/messaging/binary-message-pipe.ts +168 -0
- package/src/node/messaging/ipc-bootstrap.ts +3 -11
- package/src/node/messaging/ipc-channel.ts +97 -0
- package/src/node/messaging/ipc-connection-provider.ts +18 -35
- package/src/node/messaging/ipc-protocol.ts +2 -2
- package/src/node/messaging/messaging-contribution.ts +29 -74
- package/src/node/messaging/messaging-service.ts +4 -31
- package/src/node/messaging/test/test-web-socket-channel.ts +26 -17
- package/src/node/request/proxy-cli-contribution.ts +1 -1
- package/lib/browser/preferences/validated-preference-proxy.d.ts +0 -21
- package/lib/browser/preferences/validated-preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/validated-preference-proxy.js +0 -118
- package/lib/browser/preferences/validated-preference-proxy.js.map +0 -1
- package/lib/node/messaging/logger.d.ts +0 -8
- package/lib/node/messaging/logger.d.ts.map +0 -1
- package/lib/node/messaging/logger.js.map +0 -1
- package/shared/vscode-ws-jsonrpc/index.d.ts +0 -1
- package/shared/vscode-ws-jsonrpc/index.js +0 -1
- package/src/browser/preferences/validated-preference-proxy.ts +0 -111
- package/src/browser/style/variables-bright.useable.css +0 -93
- package/src/browser/style/variables-dark.useable.css +0 -93
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-bootstrap.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-bootstrap.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;AAEhF,4BAA0B;AAC1B,wDAAoD;AACpD
|
|
1
|
+
{"version":3,"file":"ipc-bootstrap.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-bootstrap.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;AAEhF,4BAA0B;AAC1B,wDAAoD;AACpD,+CAA2C;AAC3C,iDAAiE;AAEjE,IAAA,+BAAgB,GAAE,CAAC;AAEnB,MAAM,UAAU,GAAG,4BAAa,CAAC,gBAAgB,EAAE,CAAC;AAEpD,IAAA,gCAAc,EAA6B,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,wBAAU,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as cp from 'child_process';
|
|
3
|
+
import { Channel, ChannelCloseEvent, DisposableCollection, Emitter, Event, MessageProvider, WriteBuffer } from '../../common';
|
|
4
|
+
import { BinaryMessagePipe } from './binary-message-pipe';
|
|
5
|
+
/**
|
|
6
|
+
* A {@link Channel} to send messages between two processes using a dedicated pipe/fd for binary messages.
|
|
7
|
+
* This fd is opened as 5th channel in addition to the default stdios (stdin, stdout, stderr, ipc). This means the default channels
|
|
8
|
+
* are not blocked and can be used by the respective process for additional custom message handling.
|
|
9
|
+
*/
|
|
10
|
+
export declare class IPCChannel implements Channel {
|
|
11
|
+
protected readonly onCloseEmitter: Emitter<ChannelCloseEvent>;
|
|
12
|
+
get onClose(): Event<ChannelCloseEvent>;
|
|
13
|
+
protected readonly onMessageEmitter: Emitter<MessageProvider>;
|
|
14
|
+
get onMessage(): Event<MessageProvider>;
|
|
15
|
+
protected readonly onErrorEmitter: Emitter<unknown>;
|
|
16
|
+
get onError(): Event<unknown>;
|
|
17
|
+
protected messagePipe: BinaryMessagePipe;
|
|
18
|
+
protected toDispose: DisposableCollection;
|
|
19
|
+
protected ipcErrorListener: (error: Error) => void;
|
|
20
|
+
constructor(childProcess?: cp.ChildProcess);
|
|
21
|
+
protected setupChildProcess(childProcess: cp.ChildProcess): void;
|
|
22
|
+
protected setupProcess(): void;
|
|
23
|
+
getWriteBuffer(): WriteBuffer;
|
|
24
|
+
close(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ipc-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-channel.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/ipc-channel.ts"],"names":[],"mappings":";AAiBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAGpC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAc,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1I,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,UAAW,YAAW,OAAO;IAEtC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAiB;IAC9E,IAAI,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAEtC;IAED,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAiB;IAC9E,IAAI,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC,CAEtC;IAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAiB;IACpE,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAE5B;IAED,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACzC,SAAS,CAAC,SAAS,uBAA8B;IAEjD,SAAS,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAA4C;gBAElF,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY;IAY1C,SAAS,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,GAAG,IAAI;IAUhE,SAAS,CAAC,YAAY,IAAI,IAAI;IAU9B,cAAc,IAAI,WAAW;IAS7B,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 STMicroelectronics and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.IPCChannel = void 0;
|
|
20
|
+
const net_1 = require("net");
|
|
21
|
+
const common_1 = require("../../common");
|
|
22
|
+
const uint8_array_message_buffer_1 = require("../../common/message-rpc/uint8-array-message-buffer");
|
|
23
|
+
const binary_message_pipe_1 = require("./binary-message-pipe");
|
|
24
|
+
/**
|
|
25
|
+
* A {@link Channel} to send messages between two processes using a dedicated pipe/fd for binary messages.
|
|
26
|
+
* This fd is opened as 5th channel in addition to the default stdios (stdin, stdout, stderr, ipc). This means the default channels
|
|
27
|
+
* are not blocked and can be used by the respective process for additional custom message handling.
|
|
28
|
+
*/
|
|
29
|
+
class IPCChannel {
|
|
30
|
+
constructor(childProcess) {
|
|
31
|
+
this.onCloseEmitter = new common_1.Emitter();
|
|
32
|
+
this.onMessageEmitter = new common_1.Emitter();
|
|
33
|
+
this.onErrorEmitter = new common_1.Emitter();
|
|
34
|
+
this.toDispose = new common_1.DisposableCollection();
|
|
35
|
+
this.ipcErrorListener = error => this.onErrorEmitter.fire(error);
|
|
36
|
+
if (childProcess) {
|
|
37
|
+
this.setupChildProcess(childProcess);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.setupProcess();
|
|
41
|
+
}
|
|
42
|
+
this.messagePipe.onMessage(message => {
|
|
43
|
+
this.onMessageEmitter.fire(() => new uint8_array_message_buffer_1.Uint8ArrayReadBuffer(message));
|
|
44
|
+
});
|
|
45
|
+
this.toDispose.pushAll([this.onCloseEmitter, this.onMessageEmitter, this.onErrorEmitter]);
|
|
46
|
+
}
|
|
47
|
+
get onClose() {
|
|
48
|
+
return this.onCloseEmitter.event;
|
|
49
|
+
}
|
|
50
|
+
get onMessage() {
|
|
51
|
+
return this.onMessageEmitter.event;
|
|
52
|
+
}
|
|
53
|
+
get onError() {
|
|
54
|
+
return this.onErrorEmitter.event;
|
|
55
|
+
}
|
|
56
|
+
setupChildProcess(childProcess) {
|
|
57
|
+
childProcess.once('exit', code => this.onCloseEmitter.fire({ reason: 'Child process has been terminated', code: code !== null && code !== void 0 ? code : undefined }));
|
|
58
|
+
this.messagePipe = new binary_message_pipe_1.BinaryMessagePipe(childProcess.stdio[4]);
|
|
59
|
+
childProcess.on('error', this.ipcErrorListener);
|
|
60
|
+
this.toDispose.push(common_1.Disposable.create(() => {
|
|
61
|
+
childProcess.removeListener('error', this.ipcErrorListener);
|
|
62
|
+
this.messagePipe.dispose();
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
setupProcess() {
|
|
66
|
+
process.once('beforeExit', code => this.onCloseEmitter.fire({ reason: 'Process is about to be terminated', code }));
|
|
67
|
+
this.messagePipe = new binary_message_pipe_1.BinaryMessagePipe(new net_1.Socket({ fd: 4 }));
|
|
68
|
+
process.on('uncaughtException', this.ipcErrorListener);
|
|
69
|
+
this.toDispose.push(common_1.Disposable.create(() => {
|
|
70
|
+
process.removeListener('uncaughtException', this.ipcErrorListener);
|
|
71
|
+
this.messagePipe.dispose();
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
getWriteBuffer() {
|
|
75
|
+
const result = new uint8_array_message_buffer_1.Uint8ArrayWriteBuffer();
|
|
76
|
+
result.onCommit(buffer => {
|
|
77
|
+
this.messagePipe.send(buffer);
|
|
78
|
+
});
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
close() {
|
|
82
|
+
this.toDispose.dispose();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.IPCChannel = IPCChannel;
|
|
86
|
+
//# sourceMappingURL=ipc-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-channel.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as cp from 'child_process';
|
|
3
|
-
import {
|
|
4
|
-
import { ILogger, ConnectionErrorHandler, Disposable } from '../../common';
|
|
3
|
+
import { Channel, ConnectionErrorHandler, Disposable, ILogger } from '../../common';
|
|
5
4
|
export interface ResolvedIPCConnectionOptions {
|
|
6
5
|
readonly serverName: string;
|
|
7
6
|
readonly entryPoint: string;
|
|
@@ -16,9 +15,8 @@ export declare type IPCConnectionOptions = Partial<ResolvedIPCConnectionOptions>
|
|
|
16
15
|
};
|
|
17
16
|
export declare class IPCConnectionProvider {
|
|
18
17
|
protected readonly logger: ILogger;
|
|
19
|
-
listen(options: IPCConnectionOptions, acceptor: (connection:
|
|
20
|
-
protected doListen(options: ResolvedIPCConnectionOptions, acceptor: (connection:
|
|
21
|
-
protected createConnection(childProcess: cp.ChildProcess, options: ResolvedIPCConnectionOptions): MessageConnection;
|
|
18
|
+
listen(options: IPCConnectionOptions, acceptor: (connection: Channel) => void): Disposable;
|
|
19
|
+
protected doListen(options: ResolvedIPCConnectionOptions, acceptor: (connection: Channel) => void): Disposable;
|
|
22
20
|
protected fork(options: ResolvedIPCConnectionOptions): cp.ChildProcess;
|
|
23
21
|
}
|
|
24
22
|
//# sourceMappingURL=ipc-connection-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/ipc-connection-provider.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ipc-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/ipc-connection-provider.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AAIpC,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAwB,OAAO,EAAE,MAAM,cAAc,CAAC;AAI1G,MAAM,WAAW,4BAA4B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACnC;AACD,oBAAY,oBAAoB,GAAG,OAAO,CAAC,4BAA4B,CAAC,GAAG;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC9B,CAAC;AAEF,qBACa,qBAAqB;IAG9B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,GAAG,UAAU;IAQ1F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,GAAG,UAAU;IA4B9G,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,EAAE,CAAC,YAAY;CAuBzE"}
|
|
@@ -26,10 +26,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.IPCConnectionProvider = void 0;
|
|
28
28
|
const cp = require("child_process");
|
|
29
|
-
const path = require("path");
|
|
30
29
|
const inversify_1 = require("inversify");
|
|
31
|
-
const
|
|
30
|
+
const path = require("path");
|
|
31
|
+
const readline_1 = require("readline");
|
|
32
32
|
const common_1 = require("../../common");
|
|
33
|
+
const ipc_channel_1 = require("./ipc-channel");
|
|
33
34
|
const ipc_protocol_1 = require("./ipc-protocol");
|
|
34
35
|
let IPCConnectionProvider = class IPCConnectionProvider {
|
|
35
36
|
listen(options, acceptor) {
|
|
@@ -37,17 +38,19 @@ let IPCConnectionProvider = class IPCConnectionProvider {
|
|
|
37
38
|
}
|
|
38
39
|
doListen(options, acceptor) {
|
|
39
40
|
const childProcess = this.fork(options);
|
|
40
|
-
const
|
|
41
|
+
const channel = new ipc_channel_1.IPCChannel(childProcess);
|
|
41
42
|
const toStop = new common_1.DisposableCollection();
|
|
42
43
|
const toCancelStop = toStop.push(common_1.Disposable.create(() => childProcess.kill()));
|
|
43
44
|
const errorHandler = options.errorHandler;
|
|
44
45
|
if (errorHandler) {
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
let errorCount = 0;
|
|
47
|
+
channel.onError((err) => {
|
|
48
|
+
errorCount++;
|
|
49
|
+
if (errorHandler.shouldStop(err, errorCount)) {
|
|
47
50
|
toStop.dispose();
|
|
48
51
|
}
|
|
49
52
|
});
|
|
50
|
-
|
|
53
|
+
channel.onClose(() => {
|
|
51
54
|
if (toStop.disposed) {
|
|
52
55
|
return;
|
|
53
56
|
}
|
|
@@ -57,34 +60,14 @@ let IPCConnectionProvider = class IPCConnectionProvider {
|
|
|
57
60
|
}
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
|
-
acceptor(
|
|
63
|
+
acceptor(channel);
|
|
61
64
|
return toStop;
|
|
62
65
|
}
|
|
63
|
-
createConnection(childProcess, options) {
|
|
64
|
-
const reader = new vscode_ws_jsonrpc_1.IPCMessageReader(childProcess);
|
|
65
|
-
const writer = new vscode_ws_jsonrpc_1.IPCMessageWriter(childProcess);
|
|
66
|
-
const connection = (0, vscode_ws_jsonrpc_1.createMessageConnection)(reader, writer, {
|
|
67
|
-
error: (message) => this.logger.error(`[${options.serverName}: ${childProcess.pid}] ${message}`),
|
|
68
|
-
warn: (message) => this.logger.warn(`[${options.serverName}: ${childProcess.pid}] ${message}`),
|
|
69
|
-
info: (message) => this.logger.info(`[${options.serverName}: ${childProcess.pid}] ${message}`),
|
|
70
|
-
log: (message) => this.logger.info(`[${options.serverName}: ${childProcess.pid}] ${message}`)
|
|
71
|
-
});
|
|
72
|
-
const tracer = {
|
|
73
|
-
log: (message, data) => this.logger.debug(`[${options.serverName}: ${childProcess.pid}] ${message}` + (typeof data === 'string' ? ' ' + data : ''))
|
|
74
|
-
};
|
|
75
|
-
connection.trace(vscode_ws_jsonrpc_1.Trace.Verbose, tracer);
|
|
76
|
-
this.logger.isDebug().then(isDebug => {
|
|
77
|
-
if (!isDebug) {
|
|
78
|
-
connection.trace(vscode_ws_jsonrpc_1.Trace.Off, tracer);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
return connection;
|
|
82
|
-
}
|
|
83
66
|
fork(options) {
|
|
84
67
|
const forkOptions = {
|
|
85
|
-
silent: true,
|
|
86
68
|
env: (0, ipc_protocol_1.createIpcEnv)(options),
|
|
87
|
-
execArgv: []
|
|
69
|
+
execArgv: [],
|
|
70
|
+
stdio: ['pipe', 'pipe', 'pipe', 'ipc', 'pipe']
|
|
88
71
|
};
|
|
89
72
|
const inspectArgPrefix = `--${options.serverName}-inspect`;
|
|
90
73
|
const inspectArg = process.argv.find(v => v.startsWith(inspectArgPrefix));
|
|
@@ -92,8 +75,8 @@ let IPCConnectionProvider = class IPCConnectionProvider {
|
|
|
92
75
|
forkOptions.execArgv = ['--nolazy', `--inspect${inspectArg.substr(inspectArgPrefix.length)}`];
|
|
93
76
|
}
|
|
94
77
|
const childProcess = cp.fork(path.join(__dirname, 'ipc-bootstrap'), options.args, forkOptions);
|
|
95
|
-
childProcess.stdout.on('
|
|
96
|
-
childProcess.stderr.on('
|
|
78
|
+
(0, readline_1.createInterface)(childProcess.stdout).on('line', line => this.logger.info(`[${options.serverName}: ${childProcess.pid}] ${line}`));
|
|
79
|
+
(0, readline_1.createInterface)(childProcess.stderr).on('line', line => this.logger.error(`[${options.serverName}: ${childProcess.pid}] ${line}`));
|
|
97
80
|
this.logger.debug(`[${options.serverName}: ${childProcess.pid}] IPC started`);
|
|
98
81
|
childProcess.once('exit', () => this.logger.debug(`[${options.serverName}: ${childProcess.pid}] IPC exited`));
|
|
99
82
|
return childProcess;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-connection-provider.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-connection-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,oCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"ipc-connection-provider.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-connection-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { Channel } from '../../common/message-rpc/channel';
|
|
3
3
|
export declare const ipcEntryPoint: string | undefined;
|
|
4
|
-
export declare type IPCEntryPoint = (connection:
|
|
4
|
+
export declare type IPCEntryPoint = (connection: Channel) => void;
|
|
5
5
|
export declare namespace IPCEntryPoint {
|
|
6
6
|
/**
|
|
7
7
|
* Throws if `THEIA_ENTRY_POINT` is undefined or empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc-protocol.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/ipc-protocol.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ipc-protocol.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/ipc-protocol.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAK3D,eAAO,MAAM,aAAa,EAAE,MAAM,GAAG,SAA0C,CAAC;AAEhF,oBAAY,aAAa,GAAG,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;AAC1D,yBAAiB,aAAa,CAAC;IAC3B;;OAEG;IACH,SAAgB,gBAAgB,IAAI,MAAM,CAKzC;CACJ;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAevC;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAC1B,GAAG,MAAM,CAAC,UAAU,CAcpB"}
|
|
@@ -3,14 +3,13 @@ import * as http from 'http';
|
|
|
3
3
|
import * as https from 'https';
|
|
4
4
|
import { Socket } from 'socket.io';
|
|
5
5
|
import { interfaces, Container } from 'inversify';
|
|
6
|
-
import { MessageConnection } from 'vscode-ws-jsonrpc';
|
|
7
|
-
import { IConnection } from 'vscode-ws-jsonrpc/lib/server/connection';
|
|
8
6
|
import { ContributionProvider } from '../../common';
|
|
9
|
-
import {
|
|
7
|
+
import { IWebSocket } from '../../common/messaging/web-socket-channel';
|
|
10
8
|
import { BackendApplicationContribution } from '../backend-application';
|
|
11
9
|
import { MessagingService } from './messaging-service';
|
|
12
10
|
import { WsRequestValidator } from '../ws-request-validators';
|
|
13
11
|
import { MessagingListener } from './messaging-listeners';
|
|
12
|
+
import { Channel } from '../../common/message-rpc/channel';
|
|
14
13
|
export declare const MessagingContainer: unique symbol;
|
|
15
14
|
export declare class MessagingContribution implements BackendApplicationContribution, MessagingService {
|
|
16
15
|
protected readonly container: interfaces.Container;
|
|
@@ -19,11 +18,9 @@ export declare class MessagingContribution implements BackendApplicationContribu
|
|
|
19
18
|
protected readonly wsRequestValidator: WsRequestValidator;
|
|
20
19
|
protected readonly messagingListener: MessagingListener;
|
|
21
20
|
protected readonly wsHandlers: MessagingContribution.ConnectionHandlers<Socket<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any>>;
|
|
22
|
-
protected readonly channelHandlers: MessagingContribution.ConnectionHandlers<
|
|
21
|
+
protected readonly channelHandlers: MessagingContribution.ConnectionHandlers<Channel>;
|
|
23
22
|
protected init(): void;
|
|
24
|
-
|
|
25
|
-
forward(spec: string, callback: (params: MessagingService.PathParams, connection: IConnection) => void): void;
|
|
26
|
-
wsChannel(spec: string, callback: (params: MessagingService.PathParams, channel: WebSocketChannel) => void): void;
|
|
23
|
+
wsChannel(spec: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
|
|
27
24
|
ws(spec: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
|
|
28
25
|
protected checkAliveTimeout: number;
|
|
29
26
|
protected maxHttpBufferSize: number;
|
|
@@ -31,9 +28,9 @@ export declare class MessagingContribution implements BackendApplicationContribu
|
|
|
31
28
|
protected handleConnection(socket: Socket): void;
|
|
32
29
|
protected allowConnect(request: http.IncomingMessage): Promise<boolean>;
|
|
33
30
|
protected handleChannels(socket: Socket): void;
|
|
31
|
+
protected toIWebSocket(socket: Socket): IWebSocket;
|
|
34
32
|
protected createSocketContainer(socket: Socket): Container;
|
|
35
|
-
protected getConnectionChannelHandlers(socket: Socket): MessagingContribution.ConnectionHandlers<
|
|
36
|
-
protected createChannel(id: number, socket: Socket): WebSocketChannel;
|
|
33
|
+
protected getConnectionChannelHandlers(socket: Socket): MessagingContribution.ConnectionHandlers<Channel>;
|
|
37
34
|
}
|
|
38
35
|
export declare namespace MessagingContribution {
|
|
39
36
|
class ConnectionHandlers<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-contribution.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-contribution.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAA4C,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"messaging-contribution.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-contribution.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAA4C,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAA+C,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,UAAU,EAAoB,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAsB,MAAM,kCAAkC,CAAC;AAE/E,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAE/D,qBACa,qBAAsB,YAAW,8BAA8B,EAAE,gBAAgB;IAG1F,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAGvF,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAGtF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,QAAQ,CAAC,UAAU,gOAA0D;IACvF,SAAS,CAAC,QAAQ,CAAC,eAAe,oDAA2D;IAG7F,SAAS,CAAC,IAAI,IAAI,IAAI;IAOtB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIxG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI/F,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,iBAAiB,SAAO;IAElC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;IAqBjD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;cAOhC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY9C,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAgBlD,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAM1D,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,OAAO,CAAC;CAc5G;AAED,yBAAiB,qBAAqB,CAAC;IACnC,MAAa,kBAAkB,CAAC,CAAC;QAIzB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAH9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,CAAM;oBAG/D,MAAM,CAAC,mCAAuB;QAGrD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;QAYhG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK;KAgBrD;CACJ"}
|
|
@@ -28,16 +28,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
28
28
|
exports.MessagingContribution = exports.MessagingContainer = void 0;
|
|
29
29
|
const socket_io_1 = require("socket.io");
|
|
30
30
|
const inversify_1 = require("inversify");
|
|
31
|
-
const connection_1 = require("vscode-ws-jsonrpc/lib/socket/connection");
|
|
32
|
-
const launch = require("vscode-ws-jsonrpc/lib/server/launch");
|
|
33
31
|
const common_1 = require("../../common");
|
|
34
32
|
const web_socket_channel_1 = require("../../common/messaging/web-socket-channel");
|
|
35
33
|
const messaging_service_1 = require("./messaging-service");
|
|
36
|
-
const logger_1 = require("./logger");
|
|
37
34
|
const connection_container_module_1 = require("./connection-container-module");
|
|
38
35
|
const Route = require("route-parser");
|
|
39
36
|
const ws_request_validators_1 = require("../ws-request-validators");
|
|
40
37
|
const messaging_listeners_1 = require("./messaging-listeners");
|
|
38
|
+
const channel_1 = require("../../common/message-rpc/channel");
|
|
41
39
|
exports.MessagingContainer = Symbol('MessagingContainer');
|
|
42
40
|
let MessagingContribution = MessagingContribution_1 = class MessagingContribution {
|
|
43
41
|
constructor() {
|
|
@@ -52,18 +50,6 @@ let MessagingContribution = MessagingContribution_1 = class MessagingContributio
|
|
|
52
50
|
contribution.configure(this);
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
|
-
listen(spec, callback) {
|
|
56
|
-
this.wsChannel(spec, (params, channel) => {
|
|
57
|
-
const connection = (0, connection_1.createWebSocketConnection)(channel, new logger_1.ConsoleLogger());
|
|
58
|
-
callback(params, connection);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
forward(spec, callback) {
|
|
62
|
-
this.wsChannel(spec, (params, channel) => {
|
|
63
|
-
const connection = launch.createWebSocketConnection(channel);
|
|
64
|
-
callback(params, messaging_service_1.WebSocketChannelConnection.create(connection, channel));
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
53
|
wsChannel(spec, callback) {
|
|
68
54
|
this.channelHandlers.push(spec, (params, channel) => callback(params, channel));
|
|
69
55
|
}
|
|
@@ -106,54 +92,31 @@ let MessagingContribution = MessagingContribution_1 = class MessagingContributio
|
|
|
106
92
|
}
|
|
107
93
|
}
|
|
108
94
|
handleChannels(socket) {
|
|
95
|
+
const socketChannel = new web_socket_channel_1.WebSocketChannel(this.toIWebSocket(socket));
|
|
96
|
+
const multiplexer = new channel_1.ChannelMultiplexer(socketChannel);
|
|
109
97
|
const channelHandlers = this.getConnectionChannelHandlers(socket);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (message.kind === 'open') {
|
|
115
|
-
const { id, path } = message;
|
|
116
|
-
const channel = this.createChannel(id, socket);
|
|
117
|
-
if (channelHandlers.route(path, channel)) {
|
|
118
|
-
channel.ready();
|
|
119
|
-
console.debug(`Opening channel for service path '${path}'. [ID: ${id}]`);
|
|
120
|
-
channels.set(id, channel);
|
|
121
|
-
channel.onClose(() => {
|
|
122
|
-
console.debug(`Closing channel on service path '${path}'. [ID: ${id}]`);
|
|
123
|
-
channels.delete(id);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
console.error('Cannot find a service for the path: ' + path);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
const { id } = message;
|
|
132
|
-
const channel = channels.get(id);
|
|
133
|
-
if (channel) {
|
|
134
|
-
channel.handleMessage(message);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
console.error('The ws channel does not exist', id);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
98
|
+
multiplexer.onDidOpenChannel(event => {
|
|
99
|
+
if (channelHandlers.route(event.id, event.channel)) {
|
|
100
|
+
console.debug(`Opening channel for service path '${event.id}'.`);
|
|
101
|
+
event.channel.onClose(() => console.debug(`Closing channel on service path '${event.id}'.`));
|
|
140
102
|
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error('Failed to handle message', { error, data });
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
socket.on('error', err => {
|
|
146
|
-
for (const channel of channels.values()) {
|
|
147
|
-
channel.fireError(err);
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
socket.on('disconnect', reason => {
|
|
151
|
-
for (const channel of channels.values()) {
|
|
152
|
-
channel.close(undefined, reason);
|
|
153
|
-
}
|
|
154
|
-
channels.clear();
|
|
155
103
|
});
|
|
156
104
|
}
|
|
105
|
+
toIWebSocket(socket) {
|
|
106
|
+
return {
|
|
107
|
+
close: () => {
|
|
108
|
+
socket.removeAllListeners('disconnect');
|
|
109
|
+
socket.removeAllListeners('error');
|
|
110
|
+
socket.removeAllListeners('message');
|
|
111
|
+
socket.disconnect();
|
|
112
|
+
},
|
|
113
|
+
isConnected: () => socket.connected,
|
|
114
|
+
onClose: cb => socket.on('disconnect', reason => cb(reason)),
|
|
115
|
+
onError: cb => socket.on('error', error => cb(error)),
|
|
116
|
+
onMessage: cb => socket.on('message', data => cb(data)),
|
|
117
|
+
send: message => socket.emit('message', message)
|
|
118
|
+
};
|
|
119
|
+
}
|
|
157
120
|
createSocketContainer(socket) {
|
|
158
121
|
const connectionContainer = this.container.createChild();
|
|
159
122
|
connectionContainer.bind(socket_io_1.Socket).toConstantValue(socket);
|
|
@@ -167,19 +130,11 @@ let MessagingContribution = MessagingContribution_1 = class MessagingContributio
|
|
|
167
130
|
const connectionHandlers = connectionContainer.getNamed(common_1.ContributionProvider, common_1.ConnectionHandler);
|
|
168
131
|
for (const connectionHandler of connectionHandlers.getContributions(true)) {
|
|
169
132
|
connectionChannelHandlers.push(connectionHandler.path, (_, channel) => {
|
|
170
|
-
|
|
171
|
-
connectionHandler.onConnection(connection);
|
|
133
|
+
connectionHandler.onConnection(channel);
|
|
172
134
|
});
|
|
173
135
|
}
|
|
174
136
|
return connectionChannelHandlers;
|
|
175
137
|
}
|
|
176
|
-
createChannel(id, socket) {
|
|
177
|
-
return new web_socket_channel_1.WebSocketChannel(id, content => {
|
|
178
|
-
if (socket.connected) {
|
|
179
|
-
socket.send(content);
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
138
|
};
|
|
184
139
|
__decorate([
|
|
185
140
|
(0, inversify_1.inject)(exports.MessagingContainer),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-contribution.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;;AAIhF,yCAA2C;AAC3C,yCAA4F;
|
|
1
|
+
{"version":3,"file":"messaging-contribution.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
import { Socket } from 'socket.io';
|
|
2
|
-
import {
|
|
3
|
-
import { IConnection } from 'vscode-ws-jsonrpc/lib/server/connection';
|
|
4
|
-
import { WebSocketChannel } from '../../common/messaging/web-socket-channel';
|
|
2
|
+
import { Channel } from '../../common/message-rpc/channel';
|
|
5
3
|
export interface MessagingService {
|
|
6
|
-
/**
|
|
7
|
-
* Accept a JSON-RPC connection on the given path.
|
|
8
|
-
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
9
|
-
*/
|
|
10
|
-
listen(path: string, callback: (params: MessagingService.PathParams, connection: MessageConnection) => void): void;
|
|
11
|
-
/**
|
|
12
|
-
* Accept a raw JSON-RPC connection on the given path.
|
|
13
|
-
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
14
|
-
*/
|
|
15
|
-
forward(path: string, callback: (params: MessagingService.PathParams, connection: IConnection) => void): void;
|
|
16
4
|
/**
|
|
17
5
|
* Accept a web socket channel on the given path.
|
|
18
6
|
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
19
7
|
*/
|
|
20
|
-
wsChannel(path: string, callback: (params: MessagingService.PathParams,
|
|
8
|
+
wsChannel(path: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
|
|
21
9
|
/**
|
|
22
10
|
* Accept a web socket connection on the given path.
|
|
23
11
|
* A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
|
|
24
12
|
*
|
|
25
13
|
* #### Important
|
|
26
|
-
* Prefer
|
|
27
|
-
* and excessive amount can cause performance degradation. All
|
|
14
|
+
* Prefer using web socket channels over establishing new web socket connection. Clients can handle only limited amount of web sockets
|
|
15
|
+
* and excessive amount can cause performance degradation. All web socket channels share a single web socket connection.
|
|
28
16
|
*/
|
|
29
17
|
ws(path: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
|
|
30
18
|
}
|
|
@@ -39,11 +27,4 @@ export declare namespace MessagingService {
|
|
|
39
27
|
configure(service: MessagingService): void;
|
|
40
28
|
}
|
|
41
29
|
}
|
|
42
|
-
export interface WebSocketChannelConnection extends IConnection {
|
|
43
|
-
channel: WebSocketChannel;
|
|
44
|
-
}
|
|
45
|
-
export declare namespace WebSocketChannelConnection {
|
|
46
|
-
function is(connection: IConnection): connection is WebSocketChannelConnection;
|
|
47
|
-
function create(connection: IConnection, channel: WebSocketChannel): WebSocketChannelConnection;
|
|
48
|
-
}
|
|
49
30
|
//# sourceMappingURL=messaging-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACzG;;;;;;;OAOG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACnG;AACD,yBAAiB,gBAAgB,CAAC;IAC9B,2EAA2E;IACpE,MAAM,UAAU,eAA6B,CAAC;IACrD,UAAiB,UAAU;QACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB;IACM,MAAM,YAAY,eAA0C,CAAC;IACpE,UAAiB,YAAY;QACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC9C;CACJ"}
|
|
@@ -15,25 +15,11 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
const web_socket_channel_1 = require("../../common/messaging/web-socket-channel");
|
|
18
|
+
exports.MessagingService = void 0;
|
|
20
19
|
var MessagingService;
|
|
21
20
|
(function (MessagingService) {
|
|
22
21
|
/** Inversify container identifier for the `MessagingService` component. */
|
|
23
22
|
MessagingService.Identifier = Symbol('MessagingService');
|
|
24
23
|
MessagingService.Contribution = Symbol('MessagingService.Contribution');
|
|
25
24
|
})(MessagingService = exports.MessagingService || (exports.MessagingService = {}));
|
|
26
|
-
var WebSocketChannelConnection;
|
|
27
|
-
(function (WebSocketChannelConnection) {
|
|
28
|
-
function is(connection) {
|
|
29
|
-
return connection.channel instanceof web_socket_channel_1.WebSocketChannel;
|
|
30
|
-
}
|
|
31
|
-
WebSocketChannelConnection.is = is;
|
|
32
|
-
function create(connection, channel) {
|
|
33
|
-
const result = connection;
|
|
34
|
-
result.channel = channel;
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
WebSocketChannelConnection.create = create;
|
|
38
|
-
})(WebSocketChannelConnection = exports.WebSocketChannelConnection || (exports.WebSocketChannelConnection = {}));
|
|
39
25
|
//# sourceMappingURL=messaging-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-service.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;
|
|
1
|
+
{"version":3,"file":"messaging-service.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAqBhF,IAAiB,gBAAgB,CAUhC;AAVD,WAAiB,gBAAgB;IAC7B,2EAA2E;IAC9D,2BAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAIxC,6BAAY,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAIxE,CAAC,EAVgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAUhC"}
|