@theia/core 1.53.0-next.4 → 1.53.0-next.55
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 +7 -7
- package/i18n/nls.cs.json +582 -552
- package/i18n/nls.de.json +582 -552
- package/i18n/nls.es.json +582 -552
- package/i18n/nls.fr.json +582 -552
- package/i18n/nls.hu.json +582 -552
- package/i18n/nls.it.json +582 -552
- package/i18n/nls.ja.json +582 -552
- package/i18n/nls.json +582 -552
- package/i18n/nls.ko.json +582 -0
- package/i18n/nls.pl.json +582 -552
- package/i18n/nls.pt-br.json +582 -552
- package/i18n/nls.ru.json +582 -552
- package/i18n/nls.tr.json +582 -0
- package/i18n/nls.zh-cn.json +582 -552
- package/i18n/nls.zh-tw.json +582 -0
- package/lib/browser/authentication-service.d.ts +15 -14
- package/lib/browser/authentication-service.d.ts.map +1 -1
- package/lib/browser/authentication-service.js +5 -5
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/catalog.json +6889 -0
- package/lib/browser/common-frontend-contribution.js +3 -3
- package/lib/browser/common-styling-participants.js +166 -166
- package/lib/browser/context-key-service.d.ts +3 -2
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +9 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/json-schema-store.d.ts +0 -3
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/json-schema-store.js +2 -12
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/open-with-service.d.ts +13 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +48 -9
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.d.ts +8 -0
- package/lib/browser/opener-service.d.ts.map +1 -1
- package/lib/browser/opener-service.js +18 -3
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/progress-location-service.spec.js +7 -7
- package/lib/browser/saveable-service.d.ts.map +1 -1
- package/lib/browser/saveable-service.js +6 -2
- package/lib/browser/saveable-service.js.map +1 -1
- package/lib/browser/saveable.d.ts +17 -1
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +62 -1
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +5 -4
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +2 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +6 -16
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +12 -29
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +43 -78
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +8 -39
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +10 -10
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +43 -32
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/storage-service.js +3 -3
- package/lib/browser/tree/tree.spec.js +75 -75
- package/lib/browser/view-container.d.ts +2 -2
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts +4 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/extractable-widget.js +1 -1
- package/lib/browser/widgets/extractable-widget.js.map +1 -1
- package/lib/browser/widgets/index.d.ts +1 -0
- package/lib/browser/widgets/index.d.ts.map +1 -1
- package/lib/browser/widgets/index.js +1 -0
- package/lib/browser/widgets/index.js.map +1 -1
- package/lib/browser/widgets/split-widget.d.ts +45 -0
- package/lib/browser/widgets/split-widget.d.ts.map +1 -0
- package/lib/browser/widgets/split-widget.js +126 -0
- package/lib/browser/widgets/split-widget.js.map +1 -0
- package/lib/common/event.d.ts +2 -0
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +4 -0
- package/lib/common/event.js.map +1 -1
- package/lib/common/glob.d.ts +4 -4
- package/lib/common/json-schema.d.ts +2 -0
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/electron-browser/electron-uri-handler.d.ts +6 -0
- package/lib/electron-browser/electron-uri-handler.d.ts.map +1 -0
- package/lib/electron-browser/electron-uri-handler.js +49 -0
- package/lib/electron-browser/electron-uri-handler.js.map +1 -0
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +6 -6
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +12 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +3 -0
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js +1 -1
- package/lib/electron-browser/window/external-app-open-handler.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts +2 -0
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +27 -3
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +5 -3
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +57 -14
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts +1 -0
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +3 -0
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.d.ts.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.js +12 -8
- package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
- package/lib/node/process-utils.spec.js +8 -8
- package/package.json +10 -8
- package/shared/ajv/index.d.ts +2 -2
- package/shared/markdown-it.d.ts +2 -2
- package/shared/markdown-it.js +1 -1
- package/shared/reflect-metadata/index.d.ts +1 -1
- package/shared/reflect-metadata/index.js +1 -1
- package/shared/vscode-languageserver-types/index.d.ts +1 -1
- package/src/browser/about-dialog.tsx +137 -137
- package/src/browser/authentication-service.ts +467 -468
- package/src/browser/breadcrumbs/breadcrumb-popup-container.ts +101 -101
- package/src/browser/breadcrumbs/breadcrumb-renderer.tsx +41 -41
- package/src/browser/breadcrumbs/breadcrumbs-constants.ts +79 -79
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +185 -185
- package/src/browser/breadcrumbs/breadcrumbs-service.ts +108 -108
- package/src/browser/breadcrumbs/index.ts +21 -21
- package/src/browser/browser-clipboard-service.ts +122 -122
- package/src/browser/browser.ts +239 -239
- package/src/browser/clipboard-service.ts +23 -23
- package/src/browser/color-application-contribution.ts +110 -110
- package/src/browser/color-registry.ts +60 -60
- package/src/browser/command-open-handler.ts +54 -54
- package/src/browser/common-frontend-contribution.ts +2680 -2680
- package/src/browser/common-styling-participants.ts +361 -361
- package/src/browser/connection-status-service.spec.ts +200 -200
- package/src/browser/connection-status-service.ts +216 -216
- package/src/browser/context-key-service.ts +142 -142
- package/src/browser/context-menu-renderer.ts +124 -124
- package/src/browser/core-preferences.ts +343 -334
- package/src/browser/credentials-service.ts +106 -106
- package/src/browser/decoration-style.ts +65 -65
- package/src/browser/decorations-service.ts +209 -209
- package/src/browser/dialogs/react-dialog.tsx +56 -56
- package/src/browser/dialogs.ts +534 -534
- package/src/browser/diff-uris.ts +117 -117
- package/src/browser/encoding-registry.ts +97 -97
- package/src/browser/endpoint.spec.ts +148 -148
- package/src/browser/endpoint.ts +136 -136
- package/src/browser/external-uri-service.ts +79 -79
- package/src/browser/file-icons-js.d.ts +20 -20
- package/src/browser/frontend-application-bindings.ts +62 -62
- package/src/browser/frontend-application-config-provider.spec.ts +45 -45
- package/src/browser/frontend-application-config-provider.ts +50 -50
- package/src/browser/frontend-application-contribution.ts +110 -110
- package/src/browser/frontend-application-module.ts +474 -475
- package/src/browser/frontend-application-state.ts +74 -74
- package/src/browser/frontend-application.ts +326 -326
- package/src/browser/hover-service.ts +218 -218
- package/src/browser/http-open-handler.ts +49 -49
- package/src/browser/i18n/i18n-frontend-module.ts +27 -27
- package/src/browser/i18n/language-quick-pick-service.ts +130 -130
- package/src/browser/icon-registry.ts +87 -87
- package/src/browser/icon-theme-contribution.ts +64 -64
- package/src/browser/icon-theme-service.ts +217 -217
- package/src/browser/icons/CollapseAll.svg +7 -7
- package/src/browser/icons/CollapseAll_inverse.svg +7 -7
- package/src/browser/icons/Refresh.svg +7 -7
- package/src/browser/icons/Refresh_inverse.svg +7 -7
- package/src/browser/icons/add-inverse.svg +4 -4
- package/src/browser/icons/add.svg +4 -4
- package/src/browser/icons/arrow-down-bright.svg +6 -6
- package/src/browser/icons/arrow-down-dark.svg +6 -6
- package/src/browser/icons/arrow-up-bright.svg +6 -6
- package/src/browser/icons/arrow-up-dark.svg +6 -6
- package/src/browser/icons/case-sensitive-dark.svg +16 -16
- package/src/browser/icons/case-sensitive.svg +16 -16
- package/src/browser/icons/chevron-right-dark.svg +5 -5
- package/src/browser/icons/chevron-right-light.svg +6 -6
- package/src/browser/icons/circle-bright.svg +7 -7
- package/src/browser/icons/circle-dark.svg +7 -7
- package/src/browser/icons/clear-search-results-dark.svg +7 -7
- package/src/browser/icons/clear-search-results.svg +7 -7
- package/src/browser/icons/close-all-bright.svg +7 -7
- package/src/browser/icons/close-all-dark.svg +7 -7
- package/src/browser/icons/close-bright.svg +7 -7
- package/src/browser/icons/close-dark.svg +7 -7
- package/src/browser/icons/collapse.svg +4 -4
- package/src/browser/icons/edit-json-dark.svg +6 -6
- package/src/browser/icons/edit-json.svg +6 -6
- package/src/browser/icons/expand.svg +4 -4
- package/src/browser/icons/loading-dark.svg +6 -6
- package/src/browser/icons/loading-light.svg +6 -6
- package/src/browser/icons/open-change-bright.svg +3 -3
- package/src/browser/icons/open-change-dark.svg +4 -4
- package/src/browser/icons/open-file-bright.svg +4 -4
- package/src/browser/icons/open-file-dark.svg +4 -4
- package/src/browser/icons/preview-bright.svg +3 -3
- package/src/browser/icons/preview-dark.svg +3 -3
- package/src/browser/icons/regex-dark.svg +10 -10
- package/src/browser/icons/regex.svg +10 -10
- package/src/browser/icons/remove-all-inverse.svg +4 -4
- package/src/browser/icons/remove-all.svg +4 -4
- package/src/browser/icons/replace-all-inverse.svg +13 -13
- package/src/browser/icons/replace-all.svg +13 -13
- package/src/browser/icons/replace-inverse.svg +15 -15
- package/src/browser/icons/replace.svg +15 -15
- package/src/browser/icons/whole-word-dark.svg +19 -19
- package/src/browser/icons/whole-word.svg +19 -19
- package/src/browser/index.ts +50 -50
- package/src/browser/json-schema-store.ts +118 -127
- package/src/browser/keybinding.spec.ts +554 -554
- package/src/browser/keybinding.ts +759 -759
- package/src/browser/keyboard/browser-keyboard-frontend-contribution.ts +108 -108
- package/src/browser/keyboard/browser-keyboard-layout-provider.spec.ts +171 -171
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +469 -469
- package/src/browser/keyboard/browser-keyboard-module.ts +30 -30
- package/src/browser/keyboard/index.ts +20 -20
- package/src/browser/keyboard/keyboard-layout-service.spec.ts +121 -121
- package/src/browser/keyboard/keyboard-layout-service.ts +455 -455
- package/src/browser/keyboard/keys.spec.ts +258 -258
- package/src/browser/keyboard/keys.ts +20 -20
- package/src/browser/keys.ts +21 -21
- package/src/browser/label-parser.spec.ts +165 -165
- package/src/browser/label-parser.ts +108 -108
- package/src/browser/label-provider.spec.ts +62 -62
- package/src/browser/label-provider.ts +385 -385
- package/src/browser/language-icon-provider.ts +55 -55
- package/src/browser/language-service.ts +77 -77
- package/src/browser/logger-frontend-module.ts +65 -65
- package/src/browser/markdown-rendering/markdown-renderer.ts +98 -98
- package/src/browser/menu/browser-context-menu-renderer.ts +48 -48
- package/src/browser/menu/browser-menu-module.ts +28 -28
- package/src/browser/menu/browser-menu-plugin.ts +491 -491
- package/src/browser/menu/context-menu-context.ts +41 -41
- package/src/browser/messaging/connection-source.ts +26 -26
- package/src/browser/messaging/frontend-id-provider.ts +37 -37
- package/src/browser/messaging/index.ts +18 -18
- package/src/browser/messaging/messaging-frontend-module.ts +41 -41
- package/src/browser/messaging/service-connection-provider.ts +140 -140
- package/src/browser/messaging/ws-connection-provider.ts +49 -49
- package/src/browser/messaging/ws-connection-source.ts +230 -230
- package/src/browser/mime-service.ts +30 -30
- package/src/browser/navigatable-types.ts +81 -81
- package/src/browser/navigatable.ts +39 -39
- package/src/browser/open-with-service.ts +140 -93
- package/src/browser/opener-service.spec.ts +49 -49
- package/src/browser/opener-service.ts +169 -146
- package/src/browser/performance/frontend-stopwatch.ts +65 -65
- package/src/browser/performance/index.ts +18 -18
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -31
- package/src/browser/preferences/index.ts +23 -23
- package/src/browser/preferences/injectable-preference-proxy.ts +283 -283
- package/src/browser/preferences/preference-configurations.ts +82 -82
- package/src/browser/preferences/preference-contribution.ts +436 -436
- package/src/browser/preferences/preference-language-override-service.ts +111 -111
- package/src/browser/preferences/preference-provider.spec.ts +36 -36
- package/src/browser/preferences/preference-provider.ts +277 -277
- package/src/browser/preferences/preference-proxy.spec.ts +367 -367
- package/src/browser/preferences/preference-proxy.ts +367 -367
- package/src/browser/preferences/preference-schema-provider.spec.ts +130 -130
- package/src/browser/preferences/preference-scope.ts +18 -18
- package/src/browser/preferences/preference-service.spec.ts +613 -613
- package/src/browser/preferences/preference-service.ts +594 -594
- package/src/browser/preferences/preference-validation-service.spec.ts +334 -334
- package/src/browser/preferences/preference-validation-service.ts +358 -358
- package/src/browser/preferences/test/index.ts +19 -19
- package/src/browser/preferences/test/mock-preference-provider.ts +50 -50
- package/src/browser/preferences/test/mock-preference-proxy.ts +48 -48
- package/src/browser/preferences/test/mock-preference-service.ts +63 -63
- package/src/browser/preload/i18n-preload-contribution.ts +50 -50
- package/src/browser/preload/os-preload-contribution.ts +37 -37
- package/src/browser/preload/preload-module.ts +45 -45
- package/src/browser/preload/preloader.ts +37 -37
- package/src/browser/preload/theme-preload-contribution.ts +31 -31
- package/src/browser/progress-bar-factory.ts +29 -29
- package/src/browser/progress-bar.ts +76 -76
- package/src/browser/progress-client.ts +53 -53
- package/src/browser/progress-location-service.spec.ts +50 -50
- package/src/browser/progress-location-service.ts +96 -96
- package/src/browser/progress-status-bar-item.ts +83 -83
- package/src/browser/quick-input/index.ts +23 -23
- package/src/browser/quick-input/quick-access.ts +75 -75
- package/src/browser/quick-input/quick-command-frontend-contribution.ts +89 -89
- package/src/browser/quick-input/quick-command-service.ts +246 -246
- package/src/browser/quick-input/quick-help-service.ts +87 -87
- package/src/browser/quick-input/quick-input-frontend-contribution.ts +33 -33
- package/src/browser/quick-input/quick-input-service.spec.ts +176 -176
- package/src/browser/quick-input/quick-input-service.ts +17 -17
- package/src/browser/quick-input/quick-pick-service-impl.ts +69 -69
- package/src/browser/quick-input/quick-view-service.ts +83 -83
- package/src/browser/request/browser-request-module.ts +23 -23
- package/src/browser/request/browser-request-service.ts +172 -172
- package/src/browser/resource-context-key.ts +77 -77
- package/src/browser/saveable-service.ts +332 -328
- package/src/browser/saveable.ts +395 -327
- package/src/browser/secondary-window-handler.ts +211 -211
- package/src/browser/shell/additional-views-menu-widget.tsx +71 -71
- package/src/browser/shell/application-shell-mouse-tracker.ts +103 -103
- package/src/browser/shell/application-shell.ts +2271 -2271
- package/src/browser/shell/current-widget-command-adapter.ts +57 -57
- package/src/browser/shell/index.ts +23 -23
- package/src/browser/shell/shell-layout-restorer.ts +399 -399
- package/src/browser/shell/side-panel-handler.ts +794 -794
- package/src/browser/shell/side-panel-toolbar.ts +111 -111
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +39 -39
- package/src/browser/shell/sidebar-menu-widget.tsx +183 -183
- package/src/browser/shell/sidebar-top-menu-widget.tsx +26 -26
- package/src/browser/shell/split-panels.ts +191 -191
- package/src/browser/shell/tab-bar-decorator.ts +106 -106
- package/src/browser/shell/tab-bar-toolbar/index.ts +19 -19
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +31 -31
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +242 -256
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +149 -207
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +62 -62
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +443 -428
- package/src/browser/shell/tab-bars.spec.ts +63 -63
- package/src/browser/shell/tab-bars.ts +1468 -1468
- package/src/browser/shell/theia-dock-panel.ts +265 -265
- package/src/browser/shell/view-column-service.ts +125 -125
- package/src/browser/shell/view-contribution.ts +178 -178
- package/src/browser/source-tree/index.ts +19 -19
- package/src/browser/source-tree/source-tree-widget.tsx +107 -107
- package/src/browser/source-tree/source-tree.ts +146 -146
- package/src/browser/source-tree/tree-source.ts +73 -73
- package/src/browser/status-bar/index.ts +29 -29
- package/src/browser/status-bar/status-bar-types.ts +97 -97
- package/src/browser/status-bar/status-bar-view-model.ts +209 -209
- package/src/browser/status-bar/status-bar.tsx +189 -189
- package/src/browser/storage-service.spec.ts +76 -76
- package/src/browser/storage-service.ts +129 -129
- package/src/browser/style/about.css +36 -36
- package/src/browser/style/alert-messages.css +62 -62
- package/src/browser/style/ansi.css +88 -88
- package/src/browser/style/breadcrumbs.css +130 -130
- package/src/browser/style/dialog.css +126 -126
- package/src/browser/style/dockpanel.css +76 -76
- package/src/browser/style/hover-service.css +101 -101
- package/src/browser/style/icons.css +61 -61
- package/src/browser/style/index.css +353 -351
- package/src/browser/style/materialcolors.css +278 -278
- package/src/browser/style/menus.css +230 -230
- package/src/browser/style/notification.css +39 -39
- package/src/browser/style/os.css +87 -87
- package/src/browser/style/progress-bar.css +43 -43
- package/src/browser/style/quick-title-bar.css +45 -45
- package/src/browser/style/scrollbars.css +172 -172
- package/src/browser/style/search-box.css +123 -123
- package/src/browser/style/select-component.css +107 -107
- package/src/browser/style/sidepanel.css +367 -367
- package/src/browser/style/split-widget.css +38 -0
- package/src/browser/style/status-bar.css +127 -127
- package/src/browser/style/tabs.css +647 -658
- package/src/browser/style/tooltip.css +28 -28
- package/src/browser/style/tree-decorators.css +81 -81
- package/src/browser/style/tree.css +232 -232
- package/src/browser/style/view-container.css +187 -194
- package/src/browser/style/widget.css +19 -19
- package/src/browser/styling-service.ts +96 -96
- package/src/browser/supported-encodings.ts +262 -262
- package/src/browser/test/jsdom.ts +69 -69
- package/src/browser/test/mock-connection-status-service.ts +33 -33
- package/src/browser/test/mock-env-variables-server.ts +47 -47
- package/src/browser/test/mock-opener-service.ts +34 -34
- package/src/browser/test/mock-storage-service.ts +49 -49
- package/src/browser/theming.ts +206 -206
- package/src/browser/tooltip-service.tsx +96 -96
- package/src/browser/tree/fuzzy-search.spec.ts +99 -99
- package/src/browser/tree/fuzzy-search.ts +136 -136
- package/src/browser/tree/index.ts +29 -29
- package/src/browser/tree/search-box-debounce.ts +96 -96
- package/src/browser/tree/search-box.ts +355 -355
- package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -109
- package/src/browser/tree/test/mock-tree-model.ts +136 -136
- package/src/browser/tree/test/tree-test-container.ts +50 -50
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -46
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +88 -88
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +203 -203
- package/src/browser/tree/tree-compression/index.ts +20 -20
- package/src/browser/tree/tree-compression/tree-compression-service.ts +125 -125
- package/src/browser/tree/tree-compression/tree-compression.css +28 -28
- package/src/browser/tree/tree-consistency.spec.ts +105 -105
- package/src/browser/tree/tree-container.spec.ts +45 -45
- package/src/browser/tree/tree-container.ts +155 -155
- package/src/browser/tree/tree-decorator.spec.ts +162 -162
- package/src/browser/tree/tree-decorator.ts +238 -238
- package/src/browser/tree/tree-expansion.spec.ts +173 -173
- package/src/browser/tree/tree-expansion.ts +165 -165
- package/src/browser/tree/tree-focus-service.ts +55 -55
- package/src/browser/tree/tree-iterator.spec.ts +170 -170
- package/src/browser/tree/tree-iterator.ts +256 -256
- package/src/browser/tree/tree-label-provider.ts +40 -40
- package/src/browser/tree/tree-model.ts +562 -562
- package/src/browser/tree/tree-navigation.ts +58 -58
- package/src/browser/tree/tree-preference.ts +50 -50
- package/src/browser/tree/tree-search.ts +128 -128
- package/src/browser/tree/tree-selectable.spec.ts +152 -152
- package/src/browser/tree/tree-selection-impl.ts +176 -176
- package/src/browser/tree/tree-selection-state.spec.ts +462 -462
- package/src/browser/tree/tree-selection-state.ts +245 -245
- package/src/browser/tree/tree-selection.ts +159 -159
- package/src/browser/tree/tree-view-welcome-widget.tsx +263 -263
- package/src/browser/tree/tree-widget-selection.ts +45 -45
- package/src/browser/tree/tree-widget.tsx +1591 -1591
- package/src/browser/tree/tree.spec.ts +241 -241
- package/src/browser/tree/tree.ts +425 -425
- package/src/browser/undo-redo-handler.ts +85 -85
- package/src/browser/user-working-directory-provider.ts +77 -77
- package/src/browser/view-container.ts +1640 -1640
- package/src/browser/widget-decoration.ts +358 -358
- package/src/browser/widget-manager.spec.ts +102 -102
- package/src/browser/widget-manager.ts +318 -318
- package/src/browser/widget-open-handler.ts +168 -165
- package/src/browser/widgets/alert-message.tsx +56 -56
- package/src/browser/widgets/enhanced-preview-widget.ts +27 -27
- package/src/browser/widgets/extractable-widget.ts +33 -33
- package/src/browser/widgets/index.ts +21 -20
- package/src/browser/widgets/previewable-widget.ts +31 -31
- package/src/browser/widgets/react-renderer.tsx +53 -53
- package/src/browser/widgets/react-widget.tsx +51 -51
- package/src/browser/widgets/select-component.tsx +367 -367
- package/src/browser/widgets/split-widget.ts +163 -0
- package/src/browser/widgets/widget.ts +406 -406
- package/src/browser/window/browser-window-module.ts +32 -32
- package/src/browser/window/default-secondary-window-service.ts +189 -189
- package/src/browser/window/default-window-service.spec.ts +78 -78
- package/src/browser/window/default-window-service.ts +171 -171
- package/src/browser/window/secondary-window-service.ts +39 -39
- package/src/browser/window/test/mock-window-service.ts +29 -29
- package/src/browser/window/window-service.ts +78 -78
- package/src/browser/window/window-title-service.ts +107 -107
- package/src/browser/window/window-title-updater.ts +95 -95
- package/src/browser/window-contribution.ts +64 -64
- package/src/browser-only/frontend-only-application-module.ts +116 -116
- package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -37
- package/src/browser-only/logger-frontend-only-module.ts +63 -63
- package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -39
- package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -42
- package/src/browser-only/preload/frontend-only-preload-module.ts +49 -49
- package/src/common/accessibility.ts +33 -33
- package/src/common/application-error.spec.ts +27 -27
- package/src/common/application-error.ts +76 -76
- package/src/common/application-protocol.ts +42 -42
- package/src/common/array-utils.ts +129 -129
- package/src/common/buffer.ts +228 -228
- package/src/common/cancellation.ts +163 -163
- package/src/common/char-code.ts +438 -438
- package/src/common/collections.ts +125 -125
- package/src/common/color.ts +103 -103
- package/src/common/command.spec.ts +208 -208
- package/src/common/command.ts +489 -489
- package/src/common/contribution-filter/contribution-filter-registry.ts +79 -79
- package/src/common/contribution-filter/contribution-filter.ts +64 -64
- package/src/common/contribution-filter/filter.ts +23 -23
- package/src/common/contribution-filter/index.ts +19 -19
- package/src/common/contribution-provider.ts +96 -96
- package/src/common/disposable.spec.ts +94 -94
- package/src/common/disposable.ts +188 -188
- package/src/common/encoding-service.ts +380 -380
- package/src/common/encodings.ts +24 -24
- package/src/common/env-variables/env-variables-protocol.ts +38 -38
- package/src/common/env-variables/index.ts +17 -17
- package/src/common/event.spec.ts +32 -32
- package/src/common/event.ts +493 -487
- package/src/common/file-uri.ts +61 -61
- package/src/common/frontend-application-state.ts +38 -38
- package/src/common/glob.ts +741 -741
- package/src/common/hash.ts +85 -85
- package/src/common/i18n/localization-server.ts +25 -25
- package/src/common/i18n/localization.ts +80 -80
- package/src/common/i18n/nls.metadata.json +34112 -34112
- package/src/common/index.ts +51 -51
- package/src/common/json-schema.ts +108 -106
- package/src/common/key-store.ts +26 -26
- package/src/common/keybinding.ts +152 -152
- package/src/common/keyboard/keyboard-layout-provider.ts +51 -51
- package/src/common/keys.ts +694 -694
- package/src/common/label-protocol.ts +35 -35
- package/src/common/logger-protocol.ts +119 -119
- package/src/common/logger-watcher.ts +48 -48
- package/src/common/logger.spec.ts +46 -46
- package/src/common/logger.ts +389 -389
- package/src/common/lsp-types.ts +34 -34
- package/src/common/markdown-rendering/icon-utilities.ts +30 -30
- package/src/common/markdown-rendering/index.ts +18 -18
- package/src/common/markdown-rendering/markdown-string.ts +152 -152
- package/src/common/menu/action-menu-node.ts +65 -65
- package/src/common/menu/composite-menu-node.spec.ts +67 -67
- package/src/common/menu/composite-menu-node.ts +114 -114
- package/src/common/menu/index.ts +21 -21
- package/src/common/menu/menu-adapter.ts +103 -103
- package/src/common/menu/menu-model-registry.ts +374 -374
- package/src/common/menu/menu-types.ts +220 -219
- package/src/common/menu/menu.spec.ts +101 -101
- package/src/common/message-rpc/channel.spec.ts +88 -88
- package/src/common/message-rpc/channel.ts +300 -300
- package/src/common/message-rpc/index.ts +22 -22
- package/src/common/message-rpc/message-buffer.ts +105 -105
- package/src/common/message-rpc/msg-pack-extension-manager.ts +70 -70
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +65 -65
- package/src/common/message-rpc/rpc-message-encoder.ts +190 -190
- package/src/common/message-rpc/rpc-protocol.ts +255 -255
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -41
- package/src/common/message-rpc/uint8-array-message-buffer.ts +213 -213
- package/src/common/message-service-protocol.ts +148 -148
- package/src/common/message-service.ts +226 -226
- package/src/common/messaging/connection-error-handler.ts +73 -73
- package/src/common/messaging/connection-management.ts +43 -43
- package/src/common/messaging/handler.ts +26 -26
- package/src/common/messaging/index.ts +19 -19
- package/src/common/messaging/proxy-factory.spec.ts +108 -108
- package/src/common/messaging/proxy-factory.ts +336 -336
- package/src/common/messaging/socket-write-buffer.ts +52 -52
- package/src/common/messaging/web-socket-channel.ts +76 -76
- package/src/common/nls.ts +151 -151
- package/src/common/numbers.ts +21 -21
- package/src/common/objects.spec.ts +112 -112
- package/src/common/objects.ts +123 -123
- package/src/common/os.ts +82 -82
- package/src/common/path.spec.ts +415 -415
- package/src/common/path.ts +334 -334
- package/src/common/paths.ts +250 -250
- package/src/common/performance/index.ts +19 -19
- package/src/common/performance/measurement-protocol.ts +104 -104
- package/src/common/performance/measurement.ts +130 -130
- package/src/common/performance/stopwatch.ts +183 -183
- package/src/common/preferences/preference-schema.ts +101 -101
- package/src/common/preferences/preference-scope.spec.ts +48 -48
- package/src/common/preferences/preference-scope.ts +68 -68
- package/src/common/prioritizeable.ts +58 -58
- package/src/common/progress-service-protocol.ts +35 -35
- package/src/common/progress-service.ts +82 -82
- package/src/common/promise-util.spec.ts +102 -102
- package/src/common/promise-util.ts +143 -143
- package/src/common/quick-pick-service.ts +353 -353
- package/src/common/reference.spec.ts +145 -145
- package/src/common/reference.ts +230 -230
- package/src/common/resource.ts +430 -430
- package/src/common/selection-command-handler.ts +101 -101
- package/src/common/selection-service.spec.ts +43 -43
- package/src/common/selection-service.ts +49 -49
- package/src/common/selection.ts +50 -50
- package/src/common/severity.ts +111 -111
- package/src/common/stream.ts +718 -718
- package/src/common/strings.ts +231 -231
- package/src/common/telemetry.ts +45 -45
- package/src/common/ternary-search-tree.ts +417 -417
- package/src/common/test/expect.ts +34 -34
- package/src/common/test/mock-logger.ts +118 -118
- package/src/common/test/mock-menu.ts +35 -35
- package/src/common/test/mock-resource-provider.ts +33 -33
- package/src/common/theme.ts +68 -68
- package/src/common/types.spec.ts +86 -86
- package/src/common/types.ts +140 -140
- package/src/common/uri-command-handler.spec.ts +90 -90
- package/src/common/uri-command-handler.ts +148 -148
- package/src/common/uri.spec.ts +278 -278
- package/src/common/uri.ts +279 -279
- package/src/common/uuid.ts +45 -45
- package/src/common/version.ts +17 -17
- package/src/common/view-column.ts +33 -33
- package/src/common/window.ts +34 -34
- package/src/electron-browser/electron-clipboard-service.ts +32 -32
- package/src/electron-browser/electron-uri-handler.ts +42 -0
- package/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts +39 -39
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +28 -28
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +122 -122
- package/src/electron-browser/menu/electron-main-menu-factory.ts +339 -338
- package/src/electron-browser/menu/electron-menu-contribution.ts +506 -506
- package/src/electron-browser/menu/electron-menu-module.ts +40 -40
- package/src/electron-browser/menu/electron-menu-style.css +110 -110
- package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -25
- package/src/electron-browser/messaging/electron-ipc-connection-source.ts +65 -65
- package/src/electron-browser/messaging/electron-local-ws-connection-source.ts +45 -45
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +78 -78
- package/src/electron-browser/messaging/electron-ws-connection-source.ts +38 -38
- package/src/electron-browser/preload.ts +264 -249
- package/src/electron-browser/request/electron-browser-request-module.ts +26 -26
- package/src/electron-browser/token/electron-token-frontend-module.ts +22 -22
- package/src/electron-browser/window/electron-frontend-application-state.ts +26 -26
- package/src/electron-browser/window/electron-secondary-window-service.ts +35 -35
- package/src/electron-browser/window/electron-window-module.ts +48 -45
- package/src/electron-browser/window/electron-window-preferences.ts +76 -76
- package/src/electron-browser/window/electron-window-service.ts +109 -109
- package/src/electron-browser/window/external-app-open-handler.ts +42 -42
- package/src/electron-common/electron-api.ts +157 -154
- package/src/electron-common/electron-main-window-service.ts +24 -24
- package/src/electron-common/electron-token.ts +27 -27
- package/src/electron-main/electron-api-main.ts +373 -347
- package/src/electron-main/electron-main-application-module.ts +65 -65
- package/src/electron-main/electron-main-application.ts +860 -818
- package/src/electron-main/electron-main-constants.ts +23 -23
- package/src/electron-main/electron-main-window-service-impl.ts +44 -44
- package/src/electron-main/electron-security-token-service.ts +36 -36
- package/src/electron-main/event-utils.ts +36 -36
- package/src/electron-main/messaging/electron-connection-handler.ts +21 -21
- package/src/electron-main/messaging/electron-messaging-contribution.ts +143 -143
- package/src/electron-main/messaging/electron-messaging-service.ts +35 -35
- package/src/electron-main/theia-electron-window.ts +219 -214
- package/src/electron-node/cli/electron-backend-cli-module.ts +24 -24
- package/src/electron-node/cli/electron-cli-contribution.ts +35 -35
- package/src/electron-node/hosting/electron-backend-hosting-module.ts +24 -24
- package/src/electron-node/hosting/electron-ws-origin-validator.ts +37 -37
- package/src/electron-node/keyboard/electron-backend-keyboard-module.ts +30 -30
- package/src/electron-node/keyboard/electron-keyboard-layout-provider.ts +35 -35
- package/src/electron-node/request/electron-backend-request-module.ts +23 -23
- package/src/electron-node/request/electron-backend-request-service.ts +78 -78
- package/src/electron-node/token/electron-token-backend-contribution.ts +48 -48
- package/src/electron-node/token/electron-token-backend-module.ts +28 -28
- package/src/electron-node/token/electron-token-validator.ts +93 -93
- package/src/node/application-server.ts +59 -59
- package/src/node/backend-application-config-provider.spec.ts +29 -29
- package/src/node/backend-application-config-provider.ts +48 -48
- package/src/node/backend-application-module.ts +139 -139
- package/src/node/backend-application.ts +374 -374
- package/src/node/cli.spec.ts +94 -94
- package/src/node/cli.ts +63 -63
- package/src/node/console-logger-server.spec.ts +59 -59
- package/src/node/console-logger-server.ts +76 -76
- package/src/node/debug.ts +30 -30
- package/src/node/dynamic-require.ts +56 -56
- package/src/node/env-variables/env-variables-server.ts +123 -123
- package/src/node/env-variables/index.ts +17 -17
- package/src/node/environment-utils.spec.ts +92 -92
- package/src/node/environment-utils.ts +66 -66
- package/src/node/file-uri.spec.ts +76 -76
- package/src/node/filesystem-locking.ts +77 -77
- package/src/node/hosting/backend-application-hosts.ts +60 -60
- package/src/node/hosting/backend-hosting-module.ts +26 -26
- package/src/node/hosting/ws-origin-validator.ts +36 -36
- package/src/node/i18n/i18n-backend-module.ts +42 -42
- package/src/node/i18n/localization-contribution.ts +112 -112
- package/src/node/i18n/localization-provider.ts +125 -125
- package/src/node/i18n/localization-server.ts +52 -52
- package/src/node/i18n/theia-localization-contribution.ts +40 -36
- package/src/node/index.ts +22 -22
- package/src/node/key-store-server.ts +162 -162
- package/src/node/logger-backend-module.ts +88 -88
- package/src/node/logger-cli-contribution.spec.ts +245 -245
- package/src/node/logger-cli-contribution.ts +168 -168
- package/src/node/main.ts +33 -33
- package/src/node/messaging/binary-message-pipe.ts +168 -168
- package/src/node/messaging/connection-container-module.ts +96 -96
- package/src/node/messaging/default-messaging-service.ts +129 -129
- package/src/node/messaging/frontend-connection-service.ts +24 -24
- package/src/node/messaging/index.ts +19 -19
- package/src/node/messaging/ipc-bootstrap.ts +27 -27
- package/src/node/messaging/ipc-channel.ts +77 -77
- package/src/node/messaging/ipc-connection-provider.ts +107 -107
- package/src/node/messaging/ipc-protocol.ts +76 -76
- package/src/node/messaging/messaging-backend-module.ts +52 -52
- package/src/node/messaging/messaging-listeners.ts +52 -52
- package/src/node/messaging/messaging-service.ts +46 -46
- package/src/node/messaging/test/test-web-socket-channel.ts +61 -61
- package/src/node/messaging/websocket-endpoint.ts +79 -79
- package/src/node/messaging/websocket-frontend-connection-service.ts +186 -186
- package/src/node/os-backend-provider.ts +25 -25
- package/src/node/performance/index.ts +18 -18
- package/src/node/performance/measurement-backend-bindings.ts +35 -35
- package/src/node/performance/node-stopwatch.ts +40 -40
- package/src/node/process-utils.spec.ts +48 -48
- package/src/node/process-utils.ts +102 -102
- package/src/node/remote/backend-remote-service.ts +25 -25
- package/src/node/remote/remote-cli-contribution.ts +34 -34
- package/src/node/remote/remote-copy-contribution.ts +45 -45
- package/src/node/request/backend-request-facade.ts +39 -39
- package/src/node/request/backend-request-module.ts +25 -25
- package/src/node/request/proxy-cli-contribution.ts +65 -65
- package/src/node/ws-request-validators.ts +56 -56
- package/src/typings/native-keymap.d.ts +108 -108
- package/i18n/nls.pt-pt.json +0 -552
|
@@ -1,300 +1,300 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2021 Red Hat, Inc. and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { Disposable, DisposableCollection } from '../disposable';
|
|
18
|
-
import { Emitter, Event } from '../event';
|
|
19
|
-
import { ReadBuffer, WriteBuffer } from './message-buffer';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A channel is a bidirectional communications channel with lifecycle and
|
|
23
|
-
* error signalling. Note that creation of channels is specific to particular
|
|
24
|
-
* implementations and thus not part of the protocol.
|
|
25
|
-
*/
|
|
26
|
-
export interface Channel {
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The remote side has closed the channel
|
|
30
|
-
*/
|
|
31
|
-
onClose: Event<ChannelCloseEvent>;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* An error has occurred while writing to or reading from the channel
|
|
35
|
-
*/
|
|
36
|
-
onError: Event<unknown>;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* A message has arrived and can be read by listeners using a {@link MessageProvider}.
|
|
40
|
-
*/
|
|
41
|
-
onMessage: Event<MessageProvider>;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Obtain a {@link WriteBuffer} to write a message to the channel.
|
|
45
|
-
*/
|
|
46
|
-
getWriteBuffer(): WriteBuffer;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Close this channel. No {@link onClose} event should be sent
|
|
50
|
-
*/
|
|
51
|
-
close(): void;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* The event that is emitted when a channel is closed from the remote side.
|
|
56
|
-
*/
|
|
57
|
-
export interface ChannelCloseEvent {
|
|
58
|
-
reason: string,
|
|
59
|
-
code?: number
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* The `MessageProvider` is emitted when a channel receives a new message.
|
|
64
|
-
* Listeners can invoke the provider to obtain a new {@link ReadBuffer} for the received message.
|
|
65
|
-
* This ensures that each listener has its own isolated {@link ReadBuffer} instance.
|
|
66
|
-
*
|
|
67
|
-
*/
|
|
68
|
-
export type MessageProvider = () => ReadBuffer;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Reusable abstract {@link Channel} implementation that sets up
|
|
72
|
-
* the basic channel event listeners and offers a generic close method.
|
|
73
|
-
*/
|
|
74
|
-
export abstract class AbstractChannel implements Channel {
|
|
75
|
-
|
|
76
|
-
onCloseEmitter: Emitter<ChannelCloseEvent> = new Emitter();
|
|
77
|
-
get onClose(): Event<ChannelCloseEvent> {
|
|
78
|
-
return this.onCloseEmitter.event;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
onErrorEmitter: Emitter<unknown> = new Emitter();
|
|
82
|
-
get onError(): Event<unknown> {
|
|
83
|
-
return this.onErrorEmitter.event;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
onMessageEmitter: Emitter<MessageProvider> = new Emitter();
|
|
87
|
-
get onMessage(): Event<MessageProvider> {
|
|
88
|
-
return this.onMessageEmitter.event;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
protected toDispose: DisposableCollection = new DisposableCollection();
|
|
92
|
-
|
|
93
|
-
constructor() {
|
|
94
|
-
this.toDispose.pushAll([this.onCloseEmitter, this.onErrorEmitter, this.onMessageEmitter]);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
close(): void {
|
|
98
|
-
this.toDispose.dispose();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
abstract getWriteBuffer(): WriteBuffer;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* A very basic {@link AbstractChannel} implementation which takes a function
|
|
106
|
-
* for retrieving the {@link WriteBuffer} as constructor argument.
|
|
107
|
-
*/
|
|
108
|
-
export class BasicChannel extends AbstractChannel {
|
|
109
|
-
|
|
110
|
-
constructor(protected writeBufferProvider: () => WriteBuffer) {
|
|
111
|
-
super();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
getWriteBuffer(): WriteBuffer {
|
|
115
|
-
return this.writeBufferProvider();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Helper class to implement the single channels on a {@link ChannelMultiplexer}. Simply forwards write requests to
|
|
121
|
-
* the given write buffer source i.e. the main channel of the {@link ChannelMultiplexer}.
|
|
122
|
-
*/
|
|
123
|
-
export class ForwardingChannel extends AbstractChannel {
|
|
124
|
-
|
|
125
|
-
constructor(readonly id: string, protected readonly closeHandler: () => void, protected readonly writeBufferSource: () => WriteBuffer) {
|
|
126
|
-
super();
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
getWriteBuffer(): WriteBuffer {
|
|
130
|
-
return this.writeBufferSource();
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
override close(): void {
|
|
134
|
-
super.close();
|
|
135
|
-
this.closeHandler();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* The different message types used in the messaging protocol of the {@link ChannelMultiplexer}
|
|
141
|
-
*/
|
|
142
|
-
export enum MessageTypes {
|
|
143
|
-
Open = 1,
|
|
144
|
-
Close = 2,
|
|
145
|
-
AckOpen = 3,
|
|
146
|
-
Data = 4
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* The write buffers in this implementation immediately write to the underlying
|
|
151
|
-
* channel, so we rely on writers to the multiplexed channels to always commit their
|
|
152
|
-
* messages and always in one go.
|
|
153
|
-
*/
|
|
154
|
-
export class ChannelMultiplexer implements Disposable {
|
|
155
|
-
protected pendingOpen: Map<string, (channel: ForwardingChannel) => void> = new Map();
|
|
156
|
-
protected openChannels: Map<string, ForwardingChannel> = new Map();
|
|
157
|
-
|
|
158
|
-
protected readonly onOpenChannelEmitter = new Emitter<{ id: string, channel: Channel }>();
|
|
159
|
-
get onDidOpenChannel(): Event<{ id: string, channel: Channel }> {
|
|
160
|
-
return this.onOpenChannelEmitter.event;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
protected toDispose = new DisposableCollection();
|
|
164
|
-
|
|
165
|
-
constructor(protected readonly underlyingChannel: Channel) {
|
|
166
|
-
this.toDispose.pushAll([
|
|
167
|
-
this.underlyingChannel.onMessage(buffer => this.handleMessage(buffer())),
|
|
168
|
-
this.underlyingChannel.onClose(event => this.onUnderlyingChannelClose(event)),
|
|
169
|
-
this.underlyingChannel.onError(error => this.handleError(error)),
|
|
170
|
-
this.onOpenChannelEmitter
|
|
171
|
-
]);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
protected handleError(error: unknown): void {
|
|
175
|
-
this.openChannels.forEach(channel => {
|
|
176
|
-
channel.onErrorEmitter.fire(error);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
onUnderlyingChannelClose(event?: ChannelCloseEvent): void {
|
|
181
|
-
if (!this.toDispose.disposed) {
|
|
182
|
-
this.toDispose.push(Disposable.create(() => {
|
|
183
|
-
this.pendingOpen.clear();
|
|
184
|
-
this.openChannels.forEach(channel => {
|
|
185
|
-
channel.onCloseEmitter.fire(event ?? { reason: 'Multiplexer main channel has been closed from the remote side!' });
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
this.openChannels.clear();
|
|
189
|
-
}));
|
|
190
|
-
this.dispose();
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
protected handleMessage(buffer: ReadBuffer): void {
|
|
196
|
-
const type = buffer.readUint8();
|
|
197
|
-
const id = buffer.readString();
|
|
198
|
-
switch (type) {
|
|
199
|
-
case MessageTypes.AckOpen: {
|
|
200
|
-
return this.handleAckOpen(id);
|
|
201
|
-
}
|
|
202
|
-
case MessageTypes.Open: {
|
|
203
|
-
return this.handleOpen(id);
|
|
204
|
-
}
|
|
205
|
-
case MessageTypes.Close: {
|
|
206
|
-
return this.handleClose(id);
|
|
207
|
-
}
|
|
208
|
-
case MessageTypes.Data: {
|
|
209
|
-
return this.handleData(id, buffer);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
protected handleAckOpen(id: string): void {
|
|
215
|
-
// edge case: both side try to open a channel at the same time.
|
|
216
|
-
const resolve = this.pendingOpen.get(id);
|
|
217
|
-
if (resolve) {
|
|
218
|
-
const channel = this.createChannel(id);
|
|
219
|
-
this.pendingOpen.delete(id);
|
|
220
|
-
this.openChannels.set(id, channel);
|
|
221
|
-
resolve(channel);
|
|
222
|
-
this.onOpenChannelEmitter.fire({ id, channel });
|
|
223
|
-
} else {
|
|
224
|
-
console.error(`not expecting ack-open on for ${id}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
protected handleOpen(id: string): void {
|
|
229
|
-
if (!this.openChannels.has(id)) {
|
|
230
|
-
const channel = this.createChannel(id);
|
|
231
|
-
this.openChannels.set(id, channel);
|
|
232
|
-
const resolve = this.pendingOpen.get(id);
|
|
233
|
-
if (resolve) {
|
|
234
|
-
// edge case: both side try to open a channel at the same time.
|
|
235
|
-
resolve(channel);
|
|
236
|
-
}
|
|
237
|
-
this.underlyingChannel.getWriteBuffer().writeUint8(MessageTypes.AckOpen).writeString(id).commit();
|
|
238
|
-
this.onOpenChannelEmitter.fire({ id, channel });
|
|
239
|
-
} else {
|
|
240
|
-
console.error(`channel already open: ${id}`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
protected handleClose(id: string): void {
|
|
245
|
-
const channel = this.openChannels.get(id);
|
|
246
|
-
if (channel) {
|
|
247
|
-
channel.onCloseEmitter.fire({ reason: 'Channel has been closed from the remote side' });
|
|
248
|
-
this.openChannels.delete(id);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
protected handleData(id: string, data: ReadBuffer): void {
|
|
253
|
-
const channel = this.openChannels.get(id);
|
|
254
|
-
if (channel) {
|
|
255
|
-
channel.onMessageEmitter.fire(() => data.sliceAtReadPosition());
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
protected createChannel(id: string): ForwardingChannel {
|
|
260
|
-
return new ForwardingChannel(id, () => this.closeChannel(id), () => this.prepareWriteBuffer(id));
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Prepare the write buffer for the channel with the give, id. The channel id has to be encoded
|
|
264
|
-
// and written to the buffer before the actual message.
|
|
265
|
-
protected prepareWriteBuffer(id: string): WriteBuffer {
|
|
266
|
-
const underlying = this.underlyingChannel.getWriteBuffer();
|
|
267
|
-
underlying.writeUint8(MessageTypes.Data);
|
|
268
|
-
underlying.writeString(id);
|
|
269
|
-
return underlying;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
protected closeChannel(id: string): void {
|
|
273
|
-
this.underlyingChannel.getWriteBuffer()
|
|
274
|
-
.writeUint8(MessageTypes.Close)
|
|
275
|
-
.writeString(id)
|
|
276
|
-
.commit();
|
|
277
|
-
|
|
278
|
-
this.openChannels.delete(id);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
open(id: string): Promise<Channel> {
|
|
282
|
-
if (this.openChannels.has(id) || this.pendingOpen.has(id)) {
|
|
283
|
-
throw new Error(`Another channel with the id '${id}' is already open.`);
|
|
284
|
-
}
|
|
285
|
-
const result = new Promise<Channel>((resolve, reject) => {
|
|
286
|
-
this.pendingOpen.set(id, resolve);
|
|
287
|
-
});
|
|
288
|
-
this.underlyingChannel.getWriteBuffer().writeUint8(MessageTypes.Open).writeString(id).commit();
|
|
289
|
-
return result;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
getOpenChannel(id: string): Channel | undefined {
|
|
293
|
-
return this.openChannels.get(id);
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
dispose(): void {
|
|
297
|
-
this.toDispose.dispose();
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2021 Red Hat, Inc. and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { Disposable, DisposableCollection } from '../disposable';
|
|
18
|
+
import { Emitter, Event } from '../event';
|
|
19
|
+
import { ReadBuffer, WriteBuffer } from './message-buffer';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A channel is a bidirectional communications channel with lifecycle and
|
|
23
|
+
* error signalling. Note that creation of channels is specific to particular
|
|
24
|
+
* implementations and thus not part of the protocol.
|
|
25
|
+
*/
|
|
26
|
+
export interface Channel {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The remote side has closed the channel
|
|
30
|
+
*/
|
|
31
|
+
onClose: Event<ChannelCloseEvent>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* An error has occurred while writing to or reading from the channel
|
|
35
|
+
*/
|
|
36
|
+
onError: Event<unknown>;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A message has arrived and can be read by listeners using a {@link MessageProvider}.
|
|
40
|
+
*/
|
|
41
|
+
onMessage: Event<MessageProvider>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Obtain a {@link WriteBuffer} to write a message to the channel.
|
|
45
|
+
*/
|
|
46
|
+
getWriteBuffer(): WriteBuffer;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Close this channel. No {@link onClose} event should be sent
|
|
50
|
+
*/
|
|
51
|
+
close(): void;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The event that is emitted when a channel is closed from the remote side.
|
|
56
|
+
*/
|
|
57
|
+
export interface ChannelCloseEvent {
|
|
58
|
+
reason: string,
|
|
59
|
+
code?: number
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The `MessageProvider` is emitted when a channel receives a new message.
|
|
64
|
+
* Listeners can invoke the provider to obtain a new {@link ReadBuffer} for the received message.
|
|
65
|
+
* This ensures that each listener has its own isolated {@link ReadBuffer} instance.
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
export type MessageProvider = () => ReadBuffer;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Reusable abstract {@link Channel} implementation that sets up
|
|
72
|
+
* the basic channel event listeners and offers a generic close method.
|
|
73
|
+
*/
|
|
74
|
+
export abstract class AbstractChannel implements Channel {
|
|
75
|
+
|
|
76
|
+
onCloseEmitter: Emitter<ChannelCloseEvent> = new Emitter();
|
|
77
|
+
get onClose(): Event<ChannelCloseEvent> {
|
|
78
|
+
return this.onCloseEmitter.event;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
onErrorEmitter: Emitter<unknown> = new Emitter();
|
|
82
|
+
get onError(): Event<unknown> {
|
|
83
|
+
return this.onErrorEmitter.event;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
onMessageEmitter: Emitter<MessageProvider> = new Emitter();
|
|
87
|
+
get onMessage(): Event<MessageProvider> {
|
|
88
|
+
return this.onMessageEmitter.event;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
protected toDispose: DisposableCollection = new DisposableCollection();
|
|
92
|
+
|
|
93
|
+
constructor() {
|
|
94
|
+
this.toDispose.pushAll([this.onCloseEmitter, this.onErrorEmitter, this.onMessageEmitter]);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
close(): void {
|
|
98
|
+
this.toDispose.dispose();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
abstract getWriteBuffer(): WriteBuffer;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* A very basic {@link AbstractChannel} implementation which takes a function
|
|
106
|
+
* for retrieving the {@link WriteBuffer} as constructor argument.
|
|
107
|
+
*/
|
|
108
|
+
export class BasicChannel extends AbstractChannel {
|
|
109
|
+
|
|
110
|
+
constructor(protected writeBufferProvider: () => WriteBuffer) {
|
|
111
|
+
super();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
getWriteBuffer(): WriteBuffer {
|
|
115
|
+
return this.writeBufferProvider();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Helper class to implement the single channels on a {@link ChannelMultiplexer}. Simply forwards write requests to
|
|
121
|
+
* the given write buffer source i.e. the main channel of the {@link ChannelMultiplexer}.
|
|
122
|
+
*/
|
|
123
|
+
export class ForwardingChannel extends AbstractChannel {
|
|
124
|
+
|
|
125
|
+
constructor(readonly id: string, protected readonly closeHandler: () => void, protected readonly writeBufferSource: () => WriteBuffer) {
|
|
126
|
+
super();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
getWriteBuffer(): WriteBuffer {
|
|
130
|
+
return this.writeBufferSource();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
override close(): void {
|
|
134
|
+
super.close();
|
|
135
|
+
this.closeHandler();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The different message types used in the messaging protocol of the {@link ChannelMultiplexer}
|
|
141
|
+
*/
|
|
142
|
+
export enum MessageTypes {
|
|
143
|
+
Open = 1,
|
|
144
|
+
Close = 2,
|
|
145
|
+
AckOpen = 3,
|
|
146
|
+
Data = 4
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* The write buffers in this implementation immediately write to the underlying
|
|
151
|
+
* channel, so we rely on writers to the multiplexed channels to always commit their
|
|
152
|
+
* messages and always in one go.
|
|
153
|
+
*/
|
|
154
|
+
export class ChannelMultiplexer implements Disposable {
|
|
155
|
+
protected pendingOpen: Map<string, (channel: ForwardingChannel) => void> = new Map();
|
|
156
|
+
protected openChannels: Map<string, ForwardingChannel> = new Map();
|
|
157
|
+
|
|
158
|
+
protected readonly onOpenChannelEmitter = new Emitter<{ id: string, channel: Channel }>();
|
|
159
|
+
get onDidOpenChannel(): Event<{ id: string, channel: Channel }> {
|
|
160
|
+
return this.onOpenChannelEmitter.event;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
protected toDispose = new DisposableCollection();
|
|
164
|
+
|
|
165
|
+
constructor(protected readonly underlyingChannel: Channel) {
|
|
166
|
+
this.toDispose.pushAll([
|
|
167
|
+
this.underlyingChannel.onMessage(buffer => this.handleMessage(buffer())),
|
|
168
|
+
this.underlyingChannel.onClose(event => this.onUnderlyingChannelClose(event)),
|
|
169
|
+
this.underlyingChannel.onError(error => this.handleError(error)),
|
|
170
|
+
this.onOpenChannelEmitter
|
|
171
|
+
]);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
protected handleError(error: unknown): void {
|
|
175
|
+
this.openChannels.forEach(channel => {
|
|
176
|
+
channel.onErrorEmitter.fire(error);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
onUnderlyingChannelClose(event?: ChannelCloseEvent): void {
|
|
181
|
+
if (!this.toDispose.disposed) {
|
|
182
|
+
this.toDispose.push(Disposable.create(() => {
|
|
183
|
+
this.pendingOpen.clear();
|
|
184
|
+
this.openChannels.forEach(channel => {
|
|
185
|
+
channel.onCloseEmitter.fire(event ?? { reason: 'Multiplexer main channel has been closed from the remote side!' });
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
this.openChannels.clear();
|
|
189
|
+
}));
|
|
190
|
+
this.dispose();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
protected handleMessage(buffer: ReadBuffer): void {
|
|
196
|
+
const type = buffer.readUint8();
|
|
197
|
+
const id = buffer.readString();
|
|
198
|
+
switch (type) {
|
|
199
|
+
case MessageTypes.AckOpen: {
|
|
200
|
+
return this.handleAckOpen(id);
|
|
201
|
+
}
|
|
202
|
+
case MessageTypes.Open: {
|
|
203
|
+
return this.handleOpen(id);
|
|
204
|
+
}
|
|
205
|
+
case MessageTypes.Close: {
|
|
206
|
+
return this.handleClose(id);
|
|
207
|
+
}
|
|
208
|
+
case MessageTypes.Data: {
|
|
209
|
+
return this.handleData(id, buffer);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
protected handleAckOpen(id: string): void {
|
|
215
|
+
// edge case: both side try to open a channel at the same time.
|
|
216
|
+
const resolve = this.pendingOpen.get(id);
|
|
217
|
+
if (resolve) {
|
|
218
|
+
const channel = this.createChannel(id);
|
|
219
|
+
this.pendingOpen.delete(id);
|
|
220
|
+
this.openChannels.set(id, channel);
|
|
221
|
+
resolve(channel);
|
|
222
|
+
this.onOpenChannelEmitter.fire({ id, channel });
|
|
223
|
+
} else {
|
|
224
|
+
console.error(`not expecting ack-open on for ${id}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
protected handleOpen(id: string): void {
|
|
229
|
+
if (!this.openChannels.has(id)) {
|
|
230
|
+
const channel = this.createChannel(id);
|
|
231
|
+
this.openChannels.set(id, channel);
|
|
232
|
+
const resolve = this.pendingOpen.get(id);
|
|
233
|
+
if (resolve) {
|
|
234
|
+
// edge case: both side try to open a channel at the same time.
|
|
235
|
+
resolve(channel);
|
|
236
|
+
}
|
|
237
|
+
this.underlyingChannel.getWriteBuffer().writeUint8(MessageTypes.AckOpen).writeString(id).commit();
|
|
238
|
+
this.onOpenChannelEmitter.fire({ id, channel });
|
|
239
|
+
} else {
|
|
240
|
+
console.error(`channel already open: ${id}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
protected handleClose(id: string): void {
|
|
245
|
+
const channel = this.openChannels.get(id);
|
|
246
|
+
if (channel) {
|
|
247
|
+
channel.onCloseEmitter.fire({ reason: 'Channel has been closed from the remote side' });
|
|
248
|
+
this.openChannels.delete(id);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
protected handleData(id: string, data: ReadBuffer): void {
|
|
253
|
+
const channel = this.openChannels.get(id);
|
|
254
|
+
if (channel) {
|
|
255
|
+
channel.onMessageEmitter.fire(() => data.sliceAtReadPosition());
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
protected createChannel(id: string): ForwardingChannel {
|
|
260
|
+
return new ForwardingChannel(id, () => this.closeChannel(id), () => this.prepareWriteBuffer(id));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Prepare the write buffer for the channel with the give, id. The channel id has to be encoded
|
|
264
|
+
// and written to the buffer before the actual message.
|
|
265
|
+
protected prepareWriteBuffer(id: string): WriteBuffer {
|
|
266
|
+
const underlying = this.underlyingChannel.getWriteBuffer();
|
|
267
|
+
underlying.writeUint8(MessageTypes.Data);
|
|
268
|
+
underlying.writeString(id);
|
|
269
|
+
return underlying;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
protected closeChannel(id: string): void {
|
|
273
|
+
this.underlyingChannel.getWriteBuffer()
|
|
274
|
+
.writeUint8(MessageTypes.Close)
|
|
275
|
+
.writeString(id)
|
|
276
|
+
.commit();
|
|
277
|
+
|
|
278
|
+
this.openChannels.delete(id);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
open(id: string): Promise<Channel> {
|
|
282
|
+
if (this.openChannels.has(id) || this.pendingOpen.has(id)) {
|
|
283
|
+
throw new Error(`Another channel with the id '${id}' is already open.`);
|
|
284
|
+
}
|
|
285
|
+
const result = new Promise<Channel>((resolve, reject) => {
|
|
286
|
+
this.pendingOpen.set(id, resolve);
|
|
287
|
+
});
|
|
288
|
+
this.underlyingChannel.getWriteBuffer().writeUint8(MessageTypes.Open).writeString(id).commit();
|
|
289
|
+
return result;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
getOpenChannel(id: string): Channel | undefined {
|
|
293
|
+
return this.openChannels.get(id);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
dispose(): void {
|
|
297
|
+
this.toDispose.dispose();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2022 STMicroelectronics and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
export { AbstractChannel, Channel, ChannelCloseEvent, MessageProvider } from './channel';
|
|
17
|
-
export { ReadBuffer, WriteBuffer } from './message-buffer';
|
|
18
|
-
export { RequestHandler, RpcProtocol, RpcProtocolOptions } from './rpc-protocol';
|
|
19
|
-
|
|
20
|
-
import { registerMsgPackExtensions } from './rpc-message-encoder';
|
|
21
|
-
|
|
22
|
-
registerMsgPackExtensions();
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
export { AbstractChannel, Channel, ChannelCloseEvent, MessageProvider } from './channel';
|
|
17
|
+
export { ReadBuffer, WriteBuffer } from './message-buffer';
|
|
18
|
+
export { RequestHandler, RpcProtocol, RpcProtocolOptions } from './rpc-protocol';
|
|
19
|
+
|
|
20
|
+
import { registerMsgPackExtensions } from './rpc-message-encoder';
|
|
21
|
+
|
|
22
|
+
registerMsgPackExtensions();
|