@theia/core 1.53.0-next.55 → 1.53.0-next.64
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 -6
- package/i18n/nls.cs.json +582 -582
- package/i18n/nls.de.json +582 -582
- package/i18n/nls.es.json +582 -582
- package/i18n/nls.fr.json +582 -582
- package/i18n/nls.hu.json +582 -582
- package/i18n/nls.it.json +582 -582
- package/i18n/nls.ja.json +582 -582
- package/i18n/nls.json +582 -582
- package/i18n/nls.ko.json +582 -582
- package/i18n/nls.pl.json +582 -582
- package/i18n/nls.pt-br.json +582 -582
- package/i18n/nls.ru.json +582 -582
- package/i18n/nls.tr.json +582 -582
- package/i18n/nls.zh-cn.json +582 -582
- package/i18n/nls.zh-tw.json +582 -582
- package/lib/browser/catalog.json +54 -6
- package/lib/browser/common-frontend-contribution.js +3 -3
- package/lib/browser/common-styling-participants.js +166 -166
- package/lib/browser/progress-location-service.spec.js +7 -7
- package/lib/browser/storage-service.js +3 -3
- package/lib/browser/tree/tree.spec.js +75 -75
- package/lib/node/process-utils.spec.js +8 -8
- package/package.json +4 -4
- 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 -467
- 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 -343
- 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 -474
- 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 -118
- 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 -140
- package/src/browser/opener-service.spec.ts +49 -49
- package/src/browser/opener-service.ts +169 -169
- 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 -332
- package/src/browser/saveable.ts +395 -395
- 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 -242
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +149 -149
- 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 -443
- 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 -353
- 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 -38
- package/src/browser/style/status-bar.css +127 -127
- package/src/browser/style/tabs.css +647 -647
- 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 -187
- 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 -168
- 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 -21
- 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 -163
- 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 -493
- 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 -108
- 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 -220
- 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 -42
- 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 -339
- 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 -264
- 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 -48
- 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 -157
- 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 -373
- package/src/electron-main/electron-main-application-module.ts +65 -65
- package/src/electron-main/electron-main-application.ts +860 -860
- 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 -219
- 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 -40
- 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
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2022 Ericsson 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 { expect } from 'chai';
|
|
18
|
-
import { deepClone, deepFreeze, isEmpty, notEmpty } from './objects';
|
|
19
|
-
|
|
20
|
-
describe('Objects', () => {
|
|
21
|
-
|
|
22
|
-
describe('#deepClone', () => {
|
|
23
|
-
|
|
24
|
-
describe('primitives', () => {
|
|
25
|
-
it('should deep clone numbers', () => {
|
|
26
|
-
expect(1).to.equal(deepClone(1));
|
|
27
|
-
});
|
|
28
|
-
it('should deep clone strings', () => {
|
|
29
|
-
expect('foo').to.equal(deepClone('foo'));
|
|
30
|
-
expect('').to.equal(deepClone(''));
|
|
31
|
-
});
|
|
32
|
-
it('should deep clone booleans', () => {
|
|
33
|
-
expect(true).to.equal(deepClone(true));
|
|
34
|
-
expect(false).to.equal(deepClone(false));
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
describe('undefined', () => {
|
|
39
|
-
it('should deep clone undefined', () => {
|
|
40
|
-
expect(undefined).to.equal(deepClone(undefined));
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
describe('arrays', () => {
|
|
45
|
-
it('should deep clone arrays', () => {
|
|
46
|
-
const a = [1, 2, 3];
|
|
47
|
-
const b = deepClone(a);
|
|
48
|
-
expect(a).to.deep.equal(b);
|
|
49
|
-
expect(Array.isArray(a)).to.equal(true);
|
|
50
|
-
expect(Array.isArray(b)).to.equal(true);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('should deep clone nested arrays', () => {
|
|
54
|
-
const a = [[1], [2]];
|
|
55
|
-
const b = deepClone(a);
|
|
56
|
-
expect(a).to.deep.equal(b);
|
|
57
|
-
expect(Array.isArray(a)).to.equal(true);
|
|
58
|
-
expect(Array.isArray(b)).to.equal(true);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
describe('objects', () => {
|
|
63
|
-
it('should deep clone objects', () => {
|
|
64
|
-
const a = { 'foo': true, 'bar': 1 };
|
|
65
|
-
const b = deepClone(a);
|
|
66
|
-
expect(a).to.deep.equal(b);
|
|
67
|
-
expect(typeof a).to.equal('object');
|
|
68
|
-
expect(typeof b).to.equal('object');
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it('should deep clone nested objects', () => {
|
|
72
|
-
const a = { 'foo': true, 'nested': { 'foo': 1 } };
|
|
73
|
-
const b = deepClone(a);
|
|
74
|
-
expect(a).to.deep.equal(b);
|
|
75
|
-
expect(typeof a).to.equal('object');
|
|
76
|
-
expect(typeof b).to.equal('object');
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
describe('#deepFreeze', () => {
|
|
82
|
-
it('should deep freeze an object', () => {
|
|
83
|
-
const e = { a: 10 };
|
|
84
|
-
const d = deepFreeze(e);
|
|
85
|
-
expect(Object.isFrozen(d)).to.equal(true);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
describe('#notEmpty', () => {
|
|
90
|
-
it('should return "true" when not empty', () => {
|
|
91
|
-
expect(notEmpty({})).to.equal(true);
|
|
92
|
-
expect(notEmpty([])).to.equal(true);
|
|
93
|
-
expect(notEmpty({ a: 1 })).to.equal(true);
|
|
94
|
-
});
|
|
95
|
-
it('should return "false" when empty', () => {
|
|
96
|
-
expect(notEmpty(undefined)).to.equal(false);
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
describe('#isEmpty', () => {
|
|
101
|
-
it('should return "true" when it is empty', () => {
|
|
102
|
-
// eslint-disable-next-line no-null/no-null
|
|
103
|
-
const obj = Object.create(null);
|
|
104
|
-
expect(isEmpty(obj)).to.equal(false);
|
|
105
|
-
});
|
|
106
|
-
it('should return "false" when not empty', () => {
|
|
107
|
-
const z = { d: 5 };
|
|
108
|
-
expect(isEmpty(z)).to.equal(false);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 Ericsson 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 { expect } from 'chai';
|
|
18
|
+
import { deepClone, deepFreeze, isEmpty, notEmpty } from './objects';
|
|
19
|
+
|
|
20
|
+
describe('Objects', () => {
|
|
21
|
+
|
|
22
|
+
describe('#deepClone', () => {
|
|
23
|
+
|
|
24
|
+
describe('primitives', () => {
|
|
25
|
+
it('should deep clone numbers', () => {
|
|
26
|
+
expect(1).to.equal(deepClone(1));
|
|
27
|
+
});
|
|
28
|
+
it('should deep clone strings', () => {
|
|
29
|
+
expect('foo').to.equal(deepClone('foo'));
|
|
30
|
+
expect('').to.equal(deepClone(''));
|
|
31
|
+
});
|
|
32
|
+
it('should deep clone booleans', () => {
|
|
33
|
+
expect(true).to.equal(deepClone(true));
|
|
34
|
+
expect(false).to.equal(deepClone(false));
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('undefined', () => {
|
|
39
|
+
it('should deep clone undefined', () => {
|
|
40
|
+
expect(undefined).to.equal(deepClone(undefined));
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('arrays', () => {
|
|
45
|
+
it('should deep clone arrays', () => {
|
|
46
|
+
const a = [1, 2, 3];
|
|
47
|
+
const b = deepClone(a);
|
|
48
|
+
expect(a).to.deep.equal(b);
|
|
49
|
+
expect(Array.isArray(a)).to.equal(true);
|
|
50
|
+
expect(Array.isArray(b)).to.equal(true);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('should deep clone nested arrays', () => {
|
|
54
|
+
const a = [[1], [2]];
|
|
55
|
+
const b = deepClone(a);
|
|
56
|
+
expect(a).to.deep.equal(b);
|
|
57
|
+
expect(Array.isArray(a)).to.equal(true);
|
|
58
|
+
expect(Array.isArray(b)).to.equal(true);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
describe('objects', () => {
|
|
63
|
+
it('should deep clone objects', () => {
|
|
64
|
+
const a = { 'foo': true, 'bar': 1 };
|
|
65
|
+
const b = deepClone(a);
|
|
66
|
+
expect(a).to.deep.equal(b);
|
|
67
|
+
expect(typeof a).to.equal('object');
|
|
68
|
+
expect(typeof b).to.equal('object');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('should deep clone nested objects', () => {
|
|
72
|
+
const a = { 'foo': true, 'nested': { 'foo': 1 } };
|
|
73
|
+
const b = deepClone(a);
|
|
74
|
+
expect(a).to.deep.equal(b);
|
|
75
|
+
expect(typeof a).to.equal('object');
|
|
76
|
+
expect(typeof b).to.equal('object');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
describe('#deepFreeze', () => {
|
|
82
|
+
it('should deep freeze an object', () => {
|
|
83
|
+
const e = { a: 10 };
|
|
84
|
+
const d = deepFreeze(e);
|
|
85
|
+
expect(Object.isFrozen(d)).to.equal(true);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
describe('#notEmpty', () => {
|
|
90
|
+
it('should return "true" when not empty', () => {
|
|
91
|
+
expect(notEmpty({})).to.equal(true);
|
|
92
|
+
expect(notEmpty([])).to.equal(true);
|
|
93
|
+
expect(notEmpty({ a: 1 })).to.equal(true);
|
|
94
|
+
});
|
|
95
|
+
it('should return "false" when empty', () => {
|
|
96
|
+
expect(notEmpty(undefined)).to.equal(false);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
describe('#isEmpty', () => {
|
|
101
|
+
it('should return "true" when it is empty', () => {
|
|
102
|
+
// eslint-disable-next-line no-null/no-null
|
|
103
|
+
const obj = Object.create(null);
|
|
104
|
+
expect(isEmpty(obj)).to.equal(false);
|
|
105
|
+
});
|
|
106
|
+
it('should return "false" when not empty', () => {
|
|
107
|
+
const z = { d: 5 };
|
|
108
|
+
expect(isEmpty(z)).to.equal(false);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
});
|
package/src/common/objects.ts
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 Ericsson 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 { isObject, isUndefined, isUndefinedOrNull } from './types';
|
|
18
|
-
|
|
19
|
-
export function deepClone<T>(obj: T): T {
|
|
20
|
-
if (!isObject(obj)) {
|
|
21
|
-
return obj;
|
|
22
|
-
}
|
|
23
|
-
if (obj instanceof RegExp) {
|
|
24
|
-
return obj;
|
|
25
|
-
}
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
-
const result: any = Array.isArray(obj) ? [] : {};
|
|
28
|
-
Object.keys(obj).forEach((key: string) => {
|
|
29
|
-
const prop = obj[key];
|
|
30
|
-
if (isObject(prop)) {
|
|
31
|
-
result[key] = deepClone(prop);
|
|
32
|
-
} else {
|
|
33
|
-
result[key] = prop;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function deepFreeze<T>(obj: T): T {
|
|
40
|
-
if (!isObject(obj)) {
|
|
41
|
-
return obj;
|
|
42
|
-
}
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
-
const stack: any[] = [obj];
|
|
45
|
-
while (stack.length > 0) {
|
|
46
|
-
const objectToFreeze = stack.shift();
|
|
47
|
-
Object.freeze(objectToFreeze);
|
|
48
|
-
for (const key in objectToFreeze) {
|
|
49
|
-
if (_hasOwnProperty.call(objectToFreeze, key)) {
|
|
50
|
-
const prop = objectToFreeze[key];
|
|
51
|
-
if (isObject(prop) && !Object.isFrozen(prop)) {
|
|
52
|
-
stack.push(prop);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return obj;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
61
|
-
|
|
62
|
-
export function notEmpty<T>(arg: T | undefined | null): arg is T {
|
|
63
|
-
// eslint-disable-next-line no-null/no-null
|
|
64
|
-
return arg !== undefined && arg !== null;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* `true` if the argument is an empty object. Otherwise, `false`.
|
|
69
|
-
*/
|
|
70
|
-
export function isEmpty(arg: Object): boolean {
|
|
71
|
-
return Object.keys(arg).length === 0 && arg.constructor === Object;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/*---------------------------------------------------------------------------------------------
|
|
75
|
-
* Copyright (c) Microsoft Corporation and others. All rights reserved.
|
|
76
|
-
* Licensed under the MIT License. See https://github.com/Microsoft/vscode/blob/master/LICENSE.txt for license information.
|
|
77
|
-
*--------------------------------------------------------------------------------------------*/
|
|
78
|
-
|
|
79
|
-
// Copied from https://github.com/microsoft/vscode/blob/1.72.2/src/vs/base/common/objects.ts
|
|
80
|
-
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
-
export function cloneAndChange(obj: any, changer: (orig: any) => any): any {
|
|
83
|
-
return _cloneAndChange(obj, changer, new Set());
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
-
function _cloneAndChange(obj: any, changer: (orig: any) => any, seen: Set<any>): any {
|
|
88
|
-
if (isUndefinedOrNull(obj)) {
|
|
89
|
-
return obj;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const changed = changer(obj);
|
|
93
|
-
if (!isUndefined(changed)) {
|
|
94
|
-
return changed;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (Array.isArray(obj)) {
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
-
const r1: any[] = [];
|
|
100
|
-
for (const e of obj) {
|
|
101
|
-
r1.push(_cloneAndChange(e, changer, seen));
|
|
102
|
-
}
|
|
103
|
-
return r1;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (isObject(obj)) {
|
|
107
|
-
if (seen.has(obj)) {
|
|
108
|
-
throw new Error('Cannot clone recursive data-structure');
|
|
109
|
-
}
|
|
110
|
-
seen.add(obj);
|
|
111
|
-
const r2 = {};
|
|
112
|
-
for (const i2 in obj) {
|
|
113
|
-
if (_hasOwnProperty.call(obj, i2)) {
|
|
114
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
-
(r2 as any)[i2] = _cloneAndChange(obj[i2], changer, seen);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
seen.delete(obj);
|
|
119
|
-
return r2;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return obj;
|
|
123
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 Ericsson 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 { isObject, isUndefined, isUndefinedOrNull } from './types';
|
|
18
|
+
|
|
19
|
+
export function deepClone<T>(obj: T): T {
|
|
20
|
+
if (!isObject(obj)) {
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
if (obj instanceof RegExp) {
|
|
24
|
+
return obj;
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
const result: any = Array.isArray(obj) ? [] : {};
|
|
28
|
+
Object.keys(obj).forEach((key: string) => {
|
|
29
|
+
const prop = obj[key];
|
|
30
|
+
if (isObject(prop)) {
|
|
31
|
+
result[key] = deepClone(prop);
|
|
32
|
+
} else {
|
|
33
|
+
result[key] = prop;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function deepFreeze<T>(obj: T): T {
|
|
40
|
+
if (!isObject(obj)) {
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
+
const stack: any[] = [obj];
|
|
45
|
+
while (stack.length > 0) {
|
|
46
|
+
const objectToFreeze = stack.shift();
|
|
47
|
+
Object.freeze(objectToFreeze);
|
|
48
|
+
for (const key in objectToFreeze) {
|
|
49
|
+
if (_hasOwnProperty.call(objectToFreeze, key)) {
|
|
50
|
+
const prop = objectToFreeze[key];
|
|
51
|
+
if (isObject(prop) && !Object.isFrozen(prop)) {
|
|
52
|
+
stack.push(prop);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return obj;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
61
|
+
|
|
62
|
+
export function notEmpty<T>(arg: T | undefined | null): arg is T {
|
|
63
|
+
// eslint-disable-next-line no-null/no-null
|
|
64
|
+
return arg !== undefined && arg !== null;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* `true` if the argument is an empty object. Otherwise, `false`.
|
|
69
|
+
*/
|
|
70
|
+
export function isEmpty(arg: Object): boolean {
|
|
71
|
+
return Object.keys(arg).length === 0 && arg.constructor === Object;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/*---------------------------------------------------------------------------------------------
|
|
75
|
+
* Copyright (c) Microsoft Corporation and others. All rights reserved.
|
|
76
|
+
* Licensed under the MIT License. See https://github.com/Microsoft/vscode/blob/master/LICENSE.txt for license information.
|
|
77
|
+
*--------------------------------------------------------------------------------------------*/
|
|
78
|
+
|
|
79
|
+
// Copied from https://github.com/microsoft/vscode/blob/1.72.2/src/vs/base/common/objects.ts
|
|
80
|
+
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
+
export function cloneAndChange(obj: any, changer: (orig: any) => any): any {
|
|
83
|
+
return _cloneAndChange(obj, changer, new Set());
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
+
function _cloneAndChange(obj: any, changer: (orig: any) => any, seen: Set<any>): any {
|
|
88
|
+
if (isUndefinedOrNull(obj)) {
|
|
89
|
+
return obj;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const changed = changer(obj);
|
|
93
|
+
if (!isUndefined(changed)) {
|
|
94
|
+
return changed;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (Array.isArray(obj)) {
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
+
const r1: any[] = [];
|
|
100
|
+
for (const e of obj) {
|
|
101
|
+
r1.push(_cloneAndChange(e, changer, seen));
|
|
102
|
+
}
|
|
103
|
+
return r1;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (isObject(obj)) {
|
|
107
|
+
if (seen.has(obj)) {
|
|
108
|
+
throw new Error('Cannot clone recursive data-structure');
|
|
109
|
+
}
|
|
110
|
+
seen.add(obj);
|
|
111
|
+
const r2 = {};
|
|
112
|
+
for (const i2 in obj) {
|
|
113
|
+
if (_hasOwnProperty.call(obj, i2)) {
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
+
(r2 as any)[i2] = _cloneAndChange(obj[i2], changer, seen);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
seen.delete(obj);
|
|
119
|
+
return r2;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return obj;
|
|
123
|
+
}
|
package/src/common/os.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 TypeFox 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
|
-
function is(userAgent: string, platform: string): boolean {
|
|
18
|
-
if (typeof navigator !== 'undefined') {
|
|
19
|
-
if (navigator.userAgent && navigator.userAgent.indexOf(userAgent) >= 0) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
if (typeof process !== 'undefined') {
|
|
24
|
-
return (process.platform === platform);
|
|
25
|
-
}
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export const isWindows = is('Windows', 'win32');
|
|
30
|
-
export const isOSX = is('Mac', 'darwin');
|
|
31
|
-
|
|
32
|
-
export const EOL = isWindows ? '\r\n' : '\n';
|
|
33
|
-
|
|
34
|
-
export type CMD = [string, string[]];
|
|
35
|
-
export function cmd(command: string, ...args: string[]): CMD {
|
|
36
|
-
return [
|
|
37
|
-
isWindows ? 'cmd' : command,
|
|
38
|
-
isWindows ? ['/c', command, ...args] : args
|
|
39
|
-
];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export namespace OS {
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Enumeration of the supported operating systems.
|
|
46
|
-
*/
|
|
47
|
-
export enum Type {
|
|
48
|
-
Windows = 'Windows',
|
|
49
|
-
Linux = 'Linux',
|
|
50
|
-
OSX = 'OSX'
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Returns with the type of the operating system. If it is neither [Windows](isWindows) nor [OS X](isOSX), then
|
|
55
|
-
* it always return with the `Linux` OS type.
|
|
56
|
-
*/
|
|
57
|
-
export function type(): OS.Type {
|
|
58
|
-
if (isWindows) {
|
|
59
|
-
return Type.Windows;
|
|
60
|
-
}
|
|
61
|
-
if (isOSX) {
|
|
62
|
-
return Type.OSX;
|
|
63
|
-
}
|
|
64
|
-
return Type.Linux;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export const backend = {
|
|
68
|
-
type,
|
|
69
|
-
isWindows,
|
|
70
|
-
isOSX,
|
|
71
|
-
EOL
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export const OSBackendProviderPath = '/os';
|
|
77
|
-
|
|
78
|
-
export const OSBackendProvider = Symbol('OSBackendProvider');
|
|
79
|
-
|
|
80
|
-
export interface OSBackendProvider {
|
|
81
|
-
getBackendOS(): Promise<OS.Type>;
|
|
82
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 TypeFox 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
|
+
function is(userAgent: string, platform: string): boolean {
|
|
18
|
+
if (typeof navigator !== 'undefined') {
|
|
19
|
+
if (navigator.userAgent && navigator.userAgent.indexOf(userAgent) >= 0) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (typeof process !== 'undefined') {
|
|
24
|
+
return (process.platform === platform);
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const isWindows = is('Windows', 'win32');
|
|
30
|
+
export const isOSX = is('Mac', 'darwin');
|
|
31
|
+
|
|
32
|
+
export const EOL = isWindows ? '\r\n' : '\n';
|
|
33
|
+
|
|
34
|
+
export type CMD = [string, string[]];
|
|
35
|
+
export function cmd(command: string, ...args: string[]): CMD {
|
|
36
|
+
return [
|
|
37
|
+
isWindows ? 'cmd' : command,
|
|
38
|
+
isWindows ? ['/c', command, ...args] : args
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export namespace OS {
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Enumeration of the supported operating systems.
|
|
46
|
+
*/
|
|
47
|
+
export enum Type {
|
|
48
|
+
Windows = 'Windows',
|
|
49
|
+
Linux = 'Linux',
|
|
50
|
+
OSX = 'OSX'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Returns with the type of the operating system. If it is neither [Windows](isWindows) nor [OS X](isOSX), then
|
|
55
|
+
* it always return with the `Linux` OS type.
|
|
56
|
+
*/
|
|
57
|
+
export function type(): OS.Type {
|
|
58
|
+
if (isWindows) {
|
|
59
|
+
return Type.Windows;
|
|
60
|
+
}
|
|
61
|
+
if (isOSX) {
|
|
62
|
+
return Type.OSX;
|
|
63
|
+
}
|
|
64
|
+
return Type.Linux;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const backend = {
|
|
68
|
+
type,
|
|
69
|
+
isWindows,
|
|
70
|
+
isOSX,
|
|
71
|
+
EOL
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export const OSBackendProviderPath = '/os';
|
|
77
|
+
|
|
78
|
+
export const OSBackendProvider = Symbol('OSBackendProvider');
|
|
79
|
+
|
|
80
|
+
export interface OSBackendProvider {
|
|
81
|
+
getBackendOS(): Promise<OS.Type>;
|
|
82
|
+
}
|