@theia/plugin-ext 1.22.1 → 1.23.0-next.26
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/lib/common/character-classifier.js +2 -2
- package/lib/common/character-classifier.js.map +1 -1
- package/lib/common/index.js +1 -1
- package/lib/common/objects.js +3 -3
- package/lib/common/objects.js.map +1 -1
- package/lib/common/plugin-api-rpc-model.d.ts +12 -19
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +31 -13
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +64 -62
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +6 -0
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js +6 -1
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin-watcher.js +1 -1
- package/lib/hosted/browser/hosted-plugin-watcher.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +3 -2
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +53 -68
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/plugin-worker.js +1 -1
- package/lib/hosted/browser/plugin-worker.js.map +1 -1
- package/lib/hosted/browser/worker/worker-main.js +4 -4
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-cli-contribution.js +1 -1
- package/lib/hosted/node/hosted-plugin-cli-contribution.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +2 -0
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +25 -7
- package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-localization-service.js +3 -3
- package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +9 -9
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- package/lib/hosted/node/hosted-plugin.js +6 -6
- package/lib/hosted/node/hosted-plugin.js.map +1 -1
- package/lib/hosted/node/metadata-scanner.js +2 -2
- package/lib/hosted/node/metadata-scanner.js.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -2
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +6 -6
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-reader.js +9 -8
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.js +9 -9
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/backend-init-theia.js +2 -1
- package/lib/hosted/node/scanners/backend-init-theia.js.map +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
- package/lib/hosted/node/scanners/grammars-reader.js +1 -1
- package/lib/hosted/node/scanners/grammars-reader.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +9 -8
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js +1 -1
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js.map +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.js +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
- package/lib/main/browser/authentication-main.d.ts +18 -11
- package/lib/main/browser/authentication-main.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +111 -67
- package/lib/main/browser/authentication-main.js.map +1 -1
- package/lib/main/browser/commands.js +3 -3
- package/lib/main/browser/commands.js.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
- package/lib/main/browser/comments/comments-context-key-service.d.ts +1 -1
- package/lib/main/browser/comments/comments-context-key-service.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-context-key-service.js +3 -3
- package/lib/main/browser/comments/comments-context-key-service.js.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +8 -8
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- package/lib/main/browser/comments/comments-decorator.js +1 -1
- package/lib/main/browser/comments/comments-decorator.js.map +1 -1
- package/lib/main/browser/comments/comments-main.js +1 -1
- package/lib/main/browser/comments/comments-main.js.map +1 -1
- package/lib/main/browser/comments/comments-service.js +1 -1
- package/lib/main/browser/comments/comments-service.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-contribution.js +2 -2
- package/lib/main/browser/custom-editors/custom-editor-contribution.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js +3 -3
- package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-service.js +1 -1
- package/lib/main/browser/custom-editors/custom-editor-service.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js +3 -3
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/custom-editors/paths.js +1 -1
- package/lib/main/browser/custom-editors/paths.js.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +8 -8
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js.map +1 -1
- package/lib/main/browser/custom-editors/undo-redo-service.js +1 -1
- package/lib/main/browser/custom-editors/undo-redo-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-service.js +4 -4
- package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +4 -4
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.js +4 -4
- package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
- package/lib/main/browser/dialogs-main.js.map +1 -1
- package/lib/main/browser/documents-main.js +1 -1
- package/lib/main/browser/documents-main.js.map +1 -1
- package/lib/main/browser/editor/untitled-resource.js +2 -2
- package/lib/main/browser/editor/untitled-resource.js.map +1 -1
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js +2 -2
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js.map +1 -1
- package/lib/main/browser/languages-main.js +12 -12
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/main-context.d.ts.map +1 -1
- package/lib/main/browser/main-context.js +3 -0
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/main-file-system-event-service.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +14 -14
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/output-channel-registry-main.js +2 -2
- package/lib/main/browser/output-channel-registry-main.js.map +1 -1
- package/lib/main/browser/plugin-authentication-service.d.ts +29 -0
- package/lib/main/browser/plugin-authentication-service.d.ts.map +1 -0
- package/lib/main/browser/plugin-authentication-service.js +81 -0
- package/lib/main/browser/plugin-authentication-service.js.map +1 -0
- package/lib/main/browser/plugin-contribution-handler.d.ts +1 -1
- package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +23 -23
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-ext-deploy-command.js +4 -4
- package/lib/main/browser/plugin-ext-deploy-command.js.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.js +14 -10
- package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
- package/lib/main/browser/plugin-ext-widget.js +6 -6
- package/lib/main/browser/plugin-ext-widget.js.map +1 -1
- package/lib/main/browser/plugin-frontend-contribution.js +3 -3
- package/lib/main/browser/plugin-frontend-contribution.js.map +1 -1
- package/lib/main/browser/plugin-frontend-view-contribution.js +1 -1
- package/lib/main/browser/plugin-frontend-view-contribution.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +11 -11
- package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
- package/lib/main/browser/plugin-shared-style.js +1 -1
- package/lib/main/browser/plugin-shared-style.js.map +1 -1
- package/lib/main/browser/plugin-storage.js.map +1 -1
- package/lib/main/browser/quick-open-main.js +1 -1
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/scm-main.js.map +1 -1
- package/lib/main/browser/selection-provider-command.js +3 -3
- package/lib/main/browser/selection-provider-command.js.map +1 -1
- package/lib/main/browser/text-editor-main.js +1 -1
- package/lib/main/browser/text-editor-main.js.map +1 -1
- package/lib/main/browser/text-editor-model-service.js +3 -3
- package/lib/main/browser/text-editor-model-service.js.map +1 -1
- package/lib/main/browser/text-editors-main.js +9 -9
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +3 -3
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.d.ts +8 -4
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +74 -18
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.js +7 -7
- package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +16 -16
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/view/view-context-key-service.js +3 -3
- package/lib/main/browser/view/view-context-key-service.js.map +1 -1
- package/lib/main/browser/view-column-service.js +4 -4
- package/lib/main/browser/view-column-service.js.map +1 -1
- package/lib/main/browser/webview/webview-environment.js +3 -3
- package/lib/main/browser/webview/webview-environment.js.map +1 -1
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +4 -4
- package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
- package/lib/main/browser/webview/webview-preferences.js +1 -1
- package/lib/main/browser/webview/webview-preferences.js.map +1 -1
- package/lib/main/browser/webview/webview-resource-cache.js +1 -1
- package/lib/main/browser/webview/webview-resource-cache.js.map +1 -1
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts +2 -2
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-theme-data-provider.js +5 -5
- package/lib/main/browser/webview/webview-theme-data-provider.js.map +1 -1
- package/lib/main/browser/webview/webview.js +17 -17
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webview-views/webview-views-main.d.ts +46 -0
- package/lib/main/browser/webview-views/webview-views-main.d.ts.map +1 -0
- package/lib/main/browser/webview-views/webview-views-main.js +127 -0
- package/lib/main/browser/webview-views/webview-views-main.js.map +1 -0
- package/lib/main/browser/webview-views/webview-views.d.ts +30 -0
- package/lib/main/browser/webview-views/webview-views.d.ts.map +1 -0
- package/lib/main/browser/webview-views/webview-views.js +23 -0
- package/lib/main/browser/webview-views/webview-views.js.map +1 -0
- package/lib/main/browser/webviews-main.js.map +1 -1
- package/lib/main/browser/window-state-main.js +1 -1
- package/lib/main/browser/window-state-main.js.map +1 -1
- package/lib/main/browser/workspace-main.d.ts +2 -0
- package/lib/main/browser/workspace-main.d.ts.map +1 -1
- package/lib/main/browser/workspace-main.js +6 -1
- package/lib/main/browser/workspace-main.js.map +1 -1
- package/lib/main/common/plugin-theia-environment.js +2 -2
- package/lib/main/common/plugin-theia-environment.js.map +1 -1
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js +3 -3
- package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
- package/lib/main/node/paths/plugin-paths-service.js +7 -7
- package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
- package/lib/main/node/plugin-cli-contribution.js +1 -1
- package/lib/main/node/plugin-cli-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-contribution.js +3 -3
- package/lib/main/node/plugin-deployer-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-impl.d.ts +3 -1
- package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +24 -19
- package/lib/main/node/plugin-deployer-impl.js.map +1 -1
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js +1 -1
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js.map +1 -1
- package/lib/main/node/plugin-ext-backend-module.js +1 -1
- package/lib/main/node/plugin-ext-backend-module.js.map +1 -1
- package/lib/main/node/plugin-github-resolver.js +1 -1
- package/lib/main/node/plugin-github-resolver.js.map +1 -1
- package/lib/main/node/plugin-http-resolver.js +1 -1
- package/lib/main/node/plugin-http-resolver.js.map +1 -1
- package/lib/main/node/plugin-server-handler.js +3 -3
- package/lib/main/node/plugin-server-handler.js.map +1 -1
- package/lib/main/node/plugin-service.js +2 -2
- package/lib/main/node/plugin-service.js.map +1 -1
- package/lib/main/node/plugin-theia-deployer-participant.js +2 -2
- package/lib/main/node/plugin-theia-deployer-participant.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.js +4 -4
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-file-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-file-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/webview-backend-security-warnings.js +1 -1
- package/lib/main/node/webview-backend-security-warnings.js.map +1 -1
- package/lib/plugin/authentication-ext.d.ts +23 -8
- package/lib/plugin/authentication-ext.d.ts.map +1 -1
- package/lib/plugin/authentication-ext.js +28 -24
- package/lib/plugin/authentication-ext.js.map +1 -1
- package/lib/plugin/comments.js +6 -6
- package/lib/plugin/comments.js.map +1 -1
- package/lib/plugin/decorations.js +1 -1
- package/lib/plugin/decorations.js.map +1 -1
- package/lib/plugin/document-data.js +4 -4
- package/lib/plugin/document-data.js.map +1 -1
- package/lib/plugin/documents.js +1 -1
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.js +6 -6
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.js +2 -2
- package/lib/plugin/env.js.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.js +2 -2
- package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
- package/lib/plugin/file-system-ext-impl.js +1 -1
- package/lib/plugin/file-system-ext-impl.js.map +1 -1
- package/lib/plugin/known-commands.js +17 -16
- package/lib/plugin/known-commands.js.map +1 -1
- package/lib/plugin/known-commands.spec.js +1 -1
- package/lib/plugin/known-commands.spec.js.map +1 -1
- package/lib/plugin/languages/completion.js.map +1 -1
- package/lib/plugin/languages/declaration.js +2 -2
- package/lib/plugin/languages/declaration.js.map +1 -1
- package/lib/plugin/languages/definition.js +2 -2
- package/lib/plugin/languages/definition.js.map +1 -1
- package/lib/plugin/languages/diagnostics.js +3 -3
- package/lib/plugin/languages/diagnostics.js.map +1 -1
- package/lib/plugin/languages/implementation.js +2 -2
- package/lib/plugin/languages/implementation.js.map +1 -1
- package/lib/plugin/languages/reference.js +1 -1
- package/lib/plugin/languages/reference.js.map +1 -1
- package/lib/plugin/languages/rename.js +1 -1
- package/lib/plugin/languages/rename.js.map +1 -1
- package/lib/plugin/languages/semantic-highlighting.js +4 -4
- package/lib/plugin/languages/semantic-highlighting.js.map +1 -1
- package/lib/plugin/languages/type-definition.js +2 -2
- package/lib/plugin/languages/type-definition.js.map +1 -1
- package/lib/plugin/languages.js +1 -1
- package/lib/plugin/languages.js.map +1 -1
- package/lib/plugin/node/debug/debug.js +7 -7
- package/lib/plugin/node/debug/debug.js.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js +4 -4
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js.map +1 -1
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.d.ts +34 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.d.ts.map +1 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.js +45 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.js.map +1 -0
- package/lib/plugin/node/env-node-ext.js +2 -2
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/path.spec.js +3 -3
- package/lib/plugin/path.spec.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +62 -30
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +7 -6
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/preference-registry.js +3 -3
- package/lib/plugin/preference-registry.js.map +1 -1
- package/lib/plugin/preferences/configuration.js +1 -1
- package/lib/plugin/preferences/configuration.js.map +1 -1
- package/lib/plugin/quick-open.js +1 -1
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/scm.js +1 -3
- package/lib/plugin/scm.js.map +1 -1
- package/lib/plugin/terminal-ext.d.ts +2 -2
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/text-editor.js +10 -10
- package/lib/plugin/text-editor.js.map +1 -1
- package/lib/plugin/timeline.js.map +1 -1
- package/lib/plugin/type-converters.js +6 -5
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/type-converters.spec.js +5 -5
- package/lib/plugin/type-converters.spec.js.map +1 -1
- package/lib/plugin/types-impl.js +34 -32
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webview-views.d.ts +68 -0
- package/lib/plugin/webview-views.d.ts.map +1 -0
- package/lib/plugin/webview-views.js +145 -0
- package/lib/plugin/webview-views.js.map +1 -0
- package/lib/plugin/webviews.d.ts +6 -0
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +29 -6
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.d.ts +6 -0
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/lib/plugin/workspace.js +21 -3
- package/lib/plugin/workspace.js.map +1 -1
- package/lib/plugin-ext-backend-electron-module.js +2 -2
- package/lib/plugin-ext-backend-electron-module.js.map +1 -1
- package/lib/plugin-ext-backend-module.js +2 -2
- package/lib/plugin-ext-backend-module.js.map +1 -1
- package/package.json +23 -23
- package/src/common/plugin-api-rpc-model.ts +12 -17
- package/src/common/plugin-api-rpc.ts +43 -13
- package/src/common/plugin-protocol.ts +7 -0
- package/src/hosted/browser/hosted-plugin.ts +20 -40
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +23 -3
- package/src/hosted/node/plugin-reader.ts +2 -1
- package/src/hosted/node/scanners/scanner-theia.ts +2 -1
- package/src/main/browser/authentication-main.ts +137 -81
- package/src/main/browser/main-context.ts +4 -0
- package/src/main/browser/plugin-authentication-service.ts +71 -0
- package/src/main/browser/plugin-ext-frontend-module.ts +13 -8
- package/src/main/browser/view/plugin-view-registry.ts +73 -5
- package/src/main/browser/view-column-service.ts +1 -1
- package/src/main/browser/webview-views/webview-views-main.ts +142 -0
- package/src/main/browser/webview-views/webview-views.ts +38 -0
- package/src/main/browser/workspace-main.ts +9 -1
- package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +2 -2
- package/src/main/node/paths/plugin-paths-service.ts +1 -1
- package/src/main/node/plugin-deployer-impl.ts +11 -7
- package/src/plugin/authentication-ext.ts +42 -32
- package/src/plugin/node/debug/plugin-debug-adapter-starter.ts +1 -1
- package/src/plugin/node/debug/plugin-inline-debug-adapter.ts +47 -0
- package/src/plugin/plugin-context.ts +47 -4
- package/src/plugin/plugin-manager.ts +2 -1
- package/src/plugin/terminal-ext.ts +2 -2
- package/src/plugin/webview-views.ts +213 -0
- package/src/plugin/webviews.ts +30 -0
- package/src/plugin/workspace.ts +23 -0
|
@@ -511,11 +511,6 @@ export interface RenameLocation {
|
|
|
511
511
|
text: string;
|
|
512
512
|
}
|
|
513
513
|
|
|
514
|
-
export interface RenameProvider {
|
|
515
|
-
provideRenameEdits(model: monaco.editor.ITextModel, position: Position, newName: string): PromiseLike<WorkspaceEdit & Rejection>;
|
|
516
|
-
resolveRenameLocation?(model: monaco.editor.ITextModel, position: Position): PromiseLike<RenameLocation & Rejection>;
|
|
517
|
-
}
|
|
518
|
-
|
|
519
514
|
export interface CallHierarchyDefinition {
|
|
520
515
|
name: string;
|
|
521
516
|
kind: SymbolKind;
|
|
@@ -574,22 +569,22 @@ export interface LinePreview {
|
|
|
574
569
|
character: number;
|
|
575
570
|
}
|
|
576
571
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
scopes: ReadonlyArray<string>;
|
|
572
|
+
/**
|
|
573
|
+
* @deprecated Use {@link theia.AuthenticationSession} instead.
|
|
574
|
+
*/
|
|
575
|
+
export interface AuthenticationSession extends theia.AuthenticationSession {
|
|
582
576
|
}
|
|
583
577
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
578
|
+
/**
|
|
579
|
+
* @deprecated Use {@link theia.AuthenticationProviderAuthenticationSessionsChangeEvent} instead.
|
|
580
|
+
*/
|
|
581
|
+
export interface AuthenticationSessionsChangeEvent extends theia.AuthenticationProviderAuthenticationSessionsChangeEvent {
|
|
588
582
|
}
|
|
589
583
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
584
|
+
/**
|
|
585
|
+
* @deprecated Use {@link theia.AuthenticationProviderInformation} instead.
|
|
586
|
+
*/
|
|
587
|
+
export interface AuthenticationProviderInformation extends theia.AuthenticationProviderInformation {
|
|
593
588
|
}
|
|
594
589
|
|
|
595
590
|
export interface CommentOptions {
|
|
@@ -65,9 +65,6 @@ import {
|
|
|
65
65
|
CallHierarchyDefinition,
|
|
66
66
|
CallHierarchyReference,
|
|
67
67
|
SearchInWorkspaceResult,
|
|
68
|
-
AuthenticationSession,
|
|
69
|
-
AuthenticationSessionsChangeEvent,
|
|
70
|
-
AuthenticationProviderInformation,
|
|
71
68
|
Comment,
|
|
72
69
|
CommentOptions,
|
|
73
70
|
CommentThreadCollapsibleState,
|
|
@@ -76,7 +73,12 @@ import {
|
|
|
76
73
|
} from './plugin-api-rpc-model';
|
|
77
74
|
import { ExtPluginApi } from './plugin-ext-api-contribution';
|
|
78
75
|
import { KeysToAnyValues, KeysToKeysToAnyValue } from './types';
|
|
79
|
-
import {
|
|
76
|
+
import {
|
|
77
|
+
AuthenticationProviderAuthenticationSessionsChangeEvent,
|
|
78
|
+
CancellationToken,
|
|
79
|
+
Progress,
|
|
80
|
+
ProgressOptions,
|
|
81
|
+
} from '@theia/plugin';
|
|
80
82
|
import { DebuggerDescription } from '@theia/debug/lib/common/debug-service';
|
|
81
83
|
import { DebugProtocol } from 'vscode-debugprotocol';
|
|
82
84
|
import { SymbolInformation } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
@@ -93,6 +95,7 @@ import type {
|
|
|
93
95
|
import { SerializableEnvironmentVariableCollection } from '@theia/terminal/lib/common/base-terminal-protocol';
|
|
94
96
|
import { ThemeType } from '@theia/core/lib/common/theme';
|
|
95
97
|
import { Disposable } from '@theia/core/lib/common/disposable';
|
|
98
|
+
// eslint-disable-next-line @theia/runtime-import-check
|
|
96
99
|
import { PickOptions, QuickInputButtonHandle, QuickPickItem, WidgetOpenerOptions } from '@theia/core/lib/browser';
|
|
97
100
|
|
|
98
101
|
export interface PreferenceData {
|
|
@@ -621,6 +624,7 @@ export interface WorkspaceMain {
|
|
|
621
624
|
$onTextDocumentContentChange(uri: string, content: string): void;
|
|
622
625
|
$updateWorkspaceFolders(start: number, deleteCount?: number, ...rootsToAdd: string[]): Promise<void>;
|
|
623
626
|
$getWorkspace(): Promise<files.FileStat | undefined>;
|
|
627
|
+
$requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined>;
|
|
624
628
|
}
|
|
625
629
|
|
|
626
630
|
export interface WorkspaceExt {
|
|
@@ -628,6 +632,7 @@ export interface WorkspaceExt {
|
|
|
628
632
|
$onWorkspaceLocationChanged(event: files.FileStat | undefined): void;
|
|
629
633
|
$provideTextDocumentContent(uri: string): Promise<string | undefined>;
|
|
630
634
|
$onTextSearchResult(searchRequestId: number, done: boolean, result?: SearchInWorkspaceResult): void;
|
|
635
|
+
$onWorkspaceTrustChanged(trust: boolean | undefined): void;
|
|
631
636
|
}
|
|
632
637
|
|
|
633
638
|
export interface TimelineExt {
|
|
@@ -1549,6 +1554,27 @@ export interface WebviewsMain {
|
|
|
1549
1554
|
$unregisterSerializer(viewType: string): void;
|
|
1550
1555
|
}
|
|
1551
1556
|
|
|
1557
|
+
export interface WebviewViewsExt {
|
|
1558
|
+
$resolveWebviewView(handle: string,
|
|
1559
|
+
viewType: string,
|
|
1560
|
+
title: string | undefined,
|
|
1561
|
+
state: any,
|
|
1562
|
+
cancellation: CancellationToken): Promise<void>;
|
|
1563
|
+
$onDidChangeWebviewViewVisibility(handle: string, visible: boolean): void;
|
|
1564
|
+
$disposeWebviewView(handle: string): void;
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
export interface WebviewViewsMain extends Disposable {
|
|
1568
|
+
$registerWebviewViewProvider(viewType: string,
|
|
1569
|
+
options: { retainContextWhenHidden?: boolean, serializeBuffersForPostMessage: boolean }): void;
|
|
1570
|
+
$unregisterWebviewViewProvider(viewType: string): void;
|
|
1571
|
+
|
|
1572
|
+
$setWebviewViewTitle(handle: string, value: string | undefined): void;
|
|
1573
|
+
$setWebviewViewDescription(handle: string, value: string | undefined): void;
|
|
1574
|
+
|
|
1575
|
+
$show(handle: string, preserveFocus: boolean): void;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1552
1578
|
export interface CustomEditorsExt {
|
|
1553
1579
|
$resolveWebviewEditor(
|
|
1554
1580
|
resource: UriComponents,
|
|
@@ -1743,6 +1769,7 @@ export const PLUGIN_RPC_CONTEXT = {
|
|
|
1743
1769
|
CONNECTION_MAIN: createProxyIdentifier<ConnectionMain>('ConnectionMain'),
|
|
1744
1770
|
WEBVIEWS_MAIN: createProxyIdentifier<WebviewsMain>('WebviewsMain'),
|
|
1745
1771
|
CUSTOM_EDITORS_MAIN: createProxyIdentifier<CustomEditorsMain>('CustomEditorsMain'),
|
|
1772
|
+
WEBVIEW_VIEWS_MAIN: createProxyIdentifier<WebviewViewsMain>('WebviewViewsMain'),
|
|
1746
1773
|
STORAGE_MAIN: createProxyIdentifier<StorageMain>('StorageMain'),
|
|
1747
1774
|
TASKS_MAIN: createProxyIdentifier<TasksMain>('TasksMain'),
|
|
1748
1775
|
DEBUG_MAIN: createProxyIdentifier<DebugMain>('DebugMain'),
|
|
@@ -1777,6 +1804,7 @@ export const MAIN_RPC_CONTEXT = {
|
|
|
1777
1804
|
CONNECTION_EXT: createProxyIdentifier<ConnectionExt>('ConnectionExt'),
|
|
1778
1805
|
WEBVIEWS_EXT: createProxyIdentifier<WebviewsExt>('WebviewsExt'),
|
|
1779
1806
|
CUSTOM_EDITORS_EXT: createProxyIdentifier<CustomEditorsExt>('CustomEditorsExt'),
|
|
1807
|
+
WEBVIEW_VIEWS_EXT: createProxyIdentifier<WebviewViewsExt>('WebviewViewsExt'),
|
|
1780
1808
|
STORAGE_EXT: createProxyIdentifier<StorageExt>('StorageExt'),
|
|
1781
1809
|
TASKS_EXT: createProxyIdentifier<TasksExt>('TasksExt'),
|
|
1782
1810
|
DEBUG_EXT: createProxyIdentifier<DebugExt>('DebugExt'),
|
|
@@ -1812,21 +1840,23 @@ export interface TasksMain {
|
|
|
1812
1840
|
}
|
|
1813
1841
|
|
|
1814
1842
|
export interface AuthenticationExt {
|
|
1815
|
-
$getSessions(id: string): Promise<ReadonlyArray<AuthenticationSession>>;
|
|
1816
|
-
$
|
|
1817
|
-
$
|
|
1818
|
-
$onDidChangeAuthenticationSessions(id: string, label: string
|
|
1819
|
-
$onDidChangeAuthenticationProviders(added: AuthenticationProviderInformation[], removed: AuthenticationProviderInformation[]): Promise<void>;
|
|
1843
|
+
$getSessions(id: string, scopes?: string[]): Promise<ReadonlyArray<theia.AuthenticationSession>>;
|
|
1844
|
+
$createSession(id: string, scopes: string[]): Promise<theia.AuthenticationSession>;
|
|
1845
|
+
$removeSession(id: string, sessionId: string): Promise<void>;
|
|
1846
|
+
$onDidChangeAuthenticationSessions(id: string, label: string): Promise<void>;
|
|
1847
|
+
$onDidChangeAuthenticationProviders(added: theia.AuthenticationProviderInformation[], removed: theia.AuthenticationProviderInformation[]): Promise<void>;
|
|
1848
|
+
$setProviders(providers: theia.AuthenticationProviderInformation[]): Promise<void>;
|
|
1820
1849
|
}
|
|
1821
1850
|
|
|
1822
1851
|
export interface AuthenticationMain {
|
|
1823
1852
|
$registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean): void;
|
|
1824
1853
|
$unregisterAuthenticationProvider(id: string): void;
|
|
1825
1854
|
$getProviderIds(): Promise<string[]>;
|
|
1826
|
-
$
|
|
1827
|
-
$
|
|
1828
|
-
|
|
1829
|
-
|
|
1855
|
+
$ensureProvider(id: string): Promise<void>;
|
|
1856
|
+
$sendDidChangeSessions(providerId: string, event: AuthenticationProviderAuthenticationSessionsChangeEvent): void;
|
|
1857
|
+
$getSession(providerId: string, scopes: readonly string[], extensionId: string, extensionName: string,
|
|
1858
|
+
options: theia.AuthenticationGetSessionOptions): Promise<theia.AuthenticationSession | undefined>;
|
|
1859
|
+
$removeSession(providerId: string, sessionId: string): Promise<void>;
|
|
1830
1860
|
}
|
|
1831
1861
|
|
|
1832
1862
|
export interface RawColorInfo {
|
|
@@ -128,10 +128,16 @@ export interface PluginPackageViewContainer {
|
|
|
128
128
|
icon: string;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
+
export enum PluginViewType {
|
|
132
|
+
Tree = 'tree',
|
|
133
|
+
Webview = 'webview'
|
|
134
|
+
}
|
|
135
|
+
|
|
131
136
|
export interface PluginPackageView {
|
|
132
137
|
id: string;
|
|
133
138
|
name: string;
|
|
134
139
|
when?: string;
|
|
140
|
+
type?: string;
|
|
135
141
|
}
|
|
136
142
|
|
|
137
143
|
export interface PluginPackageViewWelcome {
|
|
@@ -696,6 +702,7 @@ export interface View {
|
|
|
696
702
|
id: string;
|
|
697
703
|
name: string;
|
|
698
704
|
when?: string;
|
|
705
|
+
type?: string;
|
|
699
706
|
}
|
|
700
707
|
|
|
701
708
|
/**
|
|
@@ -62,6 +62,7 @@ import { JsonSchemaStore } from '@theia/core/lib/browser/json-schema-store';
|
|
|
62
62
|
import { FileService, FileSystemProviderActivationEvent } from '@theia/filesystem/lib/browser/file-service';
|
|
63
63
|
import { PluginCustomEditorRegistry } from '../../main/browser/custom-editors/plugin-custom-editor-registry';
|
|
64
64
|
import { CustomEditorWidget } from '../../main/browser/custom-editors/custom-editor-widget';
|
|
65
|
+
import { Measurement, Stopwatch } from '@theia/core/lib/common';
|
|
65
66
|
|
|
66
67
|
export type PluginHost = 'frontend' | string;
|
|
67
68
|
export type DebugActivationEvent = 'onDebugResolve' | 'onDebugInitialConfigurations' | 'onDebugAdapterProtocolTracker' | 'onDebugDynamicConfigurations';
|
|
@@ -154,6 +155,9 @@ export class HostedPluginSupport {
|
|
|
154
155
|
@inject(PluginCustomEditorRegistry)
|
|
155
156
|
protected readonly customEditorRegistry: PluginCustomEditorRegistry;
|
|
156
157
|
|
|
158
|
+
@inject(Stopwatch)
|
|
159
|
+
protected readonly stopwatch: Stopwatch;
|
|
160
|
+
|
|
157
161
|
private theiaReadyPromise: Promise<any>;
|
|
158
162
|
|
|
159
163
|
protected readonly managers = new Map<string, PluginManagerExt>();
|
|
@@ -302,15 +306,15 @@ export class HostedPluginSupport {
|
|
|
302
306
|
*/
|
|
303
307
|
protected async syncPlugins(): Promise<void> {
|
|
304
308
|
let initialized = 0;
|
|
305
|
-
const waitPluginsMeasurement = this.
|
|
306
|
-
let syncPluginsMeasurement:
|
|
309
|
+
const waitPluginsMeasurement = this.measure('waitForDeployment');
|
|
310
|
+
let syncPluginsMeasurement: Measurement | undefined;
|
|
307
311
|
|
|
308
312
|
const toUnload = new Set(this.contributions.keys());
|
|
309
313
|
try {
|
|
310
314
|
const pluginIds: string[] = [];
|
|
311
315
|
const deployedPluginIds = await this.server.getDeployedPluginIds();
|
|
312
|
-
|
|
313
|
-
syncPluginsMeasurement = this.
|
|
316
|
+
waitPluginsMeasurement.log('Waiting for backend deployment');
|
|
317
|
+
syncPluginsMeasurement = this.measure('syncPlugins');
|
|
314
318
|
for (const pluginId of deployedPluginIds) {
|
|
315
319
|
toUnload.delete(pluginId);
|
|
316
320
|
if (!this.contributions.has(pluginId)) {
|
|
@@ -337,9 +341,14 @@ export class HostedPluginSupport {
|
|
|
337
341
|
if (initialized || toUnload.size) {
|
|
338
342
|
this.onDidChangePluginsEmitter.fire(undefined);
|
|
339
343
|
}
|
|
344
|
+
|
|
345
|
+
if (!syncPluginsMeasurement) {
|
|
346
|
+
// await didn't complete normally
|
|
347
|
+
waitPluginsMeasurement.error('Backend deployment failed.');
|
|
348
|
+
}
|
|
340
349
|
}
|
|
341
350
|
|
|
342
|
-
|
|
351
|
+
syncPluginsMeasurement?.log(`Sync of ${this.getPluginCount(initialized)}`);
|
|
343
352
|
}
|
|
344
353
|
|
|
345
354
|
/**
|
|
@@ -348,7 +357,7 @@ export class HostedPluginSupport {
|
|
|
348
357
|
*/
|
|
349
358
|
protected loadContributions(toDisconnect: DisposableCollection): Map<PluginHost, PluginContributions[]> {
|
|
350
359
|
let loaded = 0;
|
|
351
|
-
const loadPluginsMeasurement = this.
|
|
360
|
+
const loadPluginsMeasurement = this.measure('loadPlugins');
|
|
352
361
|
|
|
353
362
|
const hostContributions = new Map<PluginHost, PluginContributions[]>();
|
|
354
363
|
for (const contributions of this.contributions.values()) {
|
|
@@ -377,14 +386,14 @@ export class HostedPluginSupport {
|
|
|
377
386
|
}
|
|
378
387
|
}
|
|
379
388
|
|
|
380
|
-
|
|
389
|
+
loadPluginsMeasurement.log(`Load contributions of ${this.getPluginCount(loaded)}`);
|
|
381
390
|
|
|
382
391
|
return hostContributions;
|
|
383
392
|
}
|
|
384
393
|
|
|
385
394
|
protected async startPlugins(contributionsByHost: Map<PluginHost, PluginContributions[]>, toDisconnect: DisposableCollection): Promise<void> {
|
|
386
395
|
let started = 0;
|
|
387
|
-
const startPluginsMeasurement = this.
|
|
396
|
+
const startPluginsMeasurement = this.measure('startPlugins');
|
|
388
397
|
|
|
389
398
|
const [hostLogPath, hostStoragePath, hostGlobalStoragePath] = await Promise.all([
|
|
390
399
|
this.pluginPathsService.getHostLogPath(),
|
|
@@ -447,7 +456,7 @@ export class HostedPluginSupport {
|
|
|
447
456
|
return;
|
|
448
457
|
}
|
|
449
458
|
|
|
450
|
-
|
|
459
|
+
startPluginsMeasurement.log(`Start of ${this.getPluginCount(started)}`);
|
|
451
460
|
}
|
|
452
461
|
|
|
453
462
|
protected async obtainManager(host: string, hostContributions: PluginContributions[], toDisconnect: DisposableCollection): Promise<PluginManagerExt | undefined> {
|
|
@@ -693,37 +702,8 @@ export class HostedPluginSupport {
|
|
|
693
702
|
await Promise.all(activation);
|
|
694
703
|
}
|
|
695
704
|
|
|
696
|
-
protected
|
|
697
|
-
|
|
698
|
-
const endMarker = `${name}-end`;
|
|
699
|
-
performance.clearMeasures(name);
|
|
700
|
-
performance.clearMarks(startMarker);
|
|
701
|
-
performance.clearMarks(endMarker);
|
|
702
|
-
|
|
703
|
-
performance.mark(startMarker);
|
|
704
|
-
return () => {
|
|
705
|
-
performance.mark(endMarker);
|
|
706
|
-
performance.measure(name, startMarker, endMarker);
|
|
707
|
-
|
|
708
|
-
const entries = performance.getEntriesByName(name);
|
|
709
|
-
const duration = entries.length > 0 ? entries[0].duration : Number.NaN;
|
|
710
|
-
|
|
711
|
-
performance.clearMeasures(name);
|
|
712
|
-
performance.clearMarks(startMarker);
|
|
713
|
-
performance.clearMarks(endMarker);
|
|
714
|
-
return duration;
|
|
715
|
-
};
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
protected logMeasurement(measurementName: string, measurement: () => number): void {
|
|
719
|
-
const duration = measurement();
|
|
720
|
-
if (duration === Number.NaN) {
|
|
721
|
-
// Measurement was prevented by native API, do not log NaN duration
|
|
722
|
-
return;
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
const timeFromFrontendStart = `Finished ${(performance.now() / 1000).toFixed(3)} s after frontend start`;
|
|
726
|
-
console.log(`[${this.clientId}] ${measurementName} took: ${duration.toFixed(1)} ms [${timeFromFrontendStart}]`);
|
|
705
|
+
protected measure(name: string): Measurement {
|
|
706
|
+
return this.stopwatch.start(name, { context: this.clientId });
|
|
727
707
|
}
|
|
728
708
|
|
|
729
709
|
protected getPluginCount(plugins: number): string {
|
|
@@ -21,6 +21,7 @@ import { PluginDeployerHandler, PluginDeployerEntry, PluginEntryPoint, DeployedP
|
|
|
21
21
|
import { HostedPluginReader } from './plugin-reader';
|
|
22
22
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
23
23
|
import { HostedPluginLocalizationService } from './hosted-plugin-localization-service';
|
|
24
|
+
import { Stopwatch } from '@theia/core/lib/common';
|
|
24
25
|
|
|
25
26
|
@injectable()
|
|
26
27
|
export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
@@ -34,6 +35,9 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
34
35
|
@inject(HostedPluginLocalizationService)
|
|
35
36
|
private readonly localizationService: HostedPluginLocalizationService;
|
|
36
37
|
|
|
38
|
+
@inject(Stopwatch)
|
|
39
|
+
protected readonly stopwatch: Stopwatch;
|
|
40
|
+
|
|
37
41
|
private readonly deployedLocations = new Map<string, Set<string>>();
|
|
38
42
|
|
|
39
43
|
/**
|
|
@@ -118,9 +122,11 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
118
122
|
*/
|
|
119
123
|
protected async deployPlugin(entry: PluginDeployerEntry, entryPoint: keyof PluginEntryPoint): Promise<void> {
|
|
120
124
|
const pluginPath = entry.path();
|
|
125
|
+
const deployPlugin = this.stopwatch.start('deployPlugin');
|
|
121
126
|
try {
|
|
122
127
|
const manifest = await this.reader.readPackage(pluginPath);
|
|
123
128
|
if (!manifest) {
|
|
129
|
+
deployPlugin.error(`Failed to read ${entryPoint} plugin manifest from '${pluginPath}''`);
|
|
124
130
|
return;
|
|
125
131
|
}
|
|
126
132
|
|
|
@@ -132,6 +138,7 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
132
138
|
|
|
133
139
|
const deployedPlugins = entryPoint === 'backend' ? this.deployedBackendPlugins : this.deployedFrontendPlugins;
|
|
134
140
|
if (deployedPlugins.has(metadata.model.id)) {
|
|
141
|
+
deployPlugin.debug(`Skipped ${entryPoint} plugin ${metadata.model.name} already deployed`);
|
|
135
142
|
return;
|
|
136
143
|
}
|
|
137
144
|
|
|
@@ -140,9 +147,9 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
140
147
|
deployed.contributes = this.reader.readContribution(manifest);
|
|
141
148
|
this.localizationService.deployLocalizations(deployed);
|
|
142
149
|
deployedPlugins.set(metadata.model.id, deployed);
|
|
143
|
-
|
|
150
|
+
deployPlugin.log(`Deployed ${entryPoint} plugin "${metadata.model.name}@${metadata.model.version}" from "${metadata.model.entryPoint[entryPoint] || pluginPath}"`);
|
|
144
151
|
} catch (e) {
|
|
145
|
-
|
|
152
|
+
deployPlugin.error(`Failed to deploy ${entryPoint} plugin from '${pluginPath}' path`, e);
|
|
146
153
|
}
|
|
147
154
|
}
|
|
148
155
|
|
|
@@ -153,14 +160,27 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
153
160
|
if (!deployedLocations) {
|
|
154
161
|
return false;
|
|
155
162
|
}
|
|
163
|
+
|
|
164
|
+
const undeployPlugin = this.stopwatch.start('undeployPlugin');
|
|
156
165
|
this.deployedLocations.delete(pluginId);
|
|
166
|
+
let undeployError: unknown;
|
|
167
|
+
const failedLocations: string[] = [];
|
|
168
|
+
|
|
157
169
|
for (const location of deployedLocations) {
|
|
158
170
|
try {
|
|
159
171
|
await fs.remove(location);
|
|
160
172
|
} catch (e) {
|
|
161
|
-
|
|
173
|
+
failedLocations.push(location);
|
|
174
|
+
undeployError = undeployError ?? e;
|
|
162
175
|
}
|
|
163
176
|
}
|
|
177
|
+
|
|
178
|
+
if (undeployError) {
|
|
179
|
+
undeployPlugin.error(`[${pluginId}]: failed to undeploy from locations "${failedLocations}". First reason:`, undeployError);
|
|
180
|
+
} else {
|
|
181
|
+
undeployPlugin.log(`[${pluginId}]: undeployed from "${location}"`);
|
|
182
|
+
}
|
|
183
|
+
|
|
164
184
|
return true;
|
|
165
185
|
}
|
|
166
186
|
}
|
|
@@ -58,7 +58,8 @@ export class HostedPluginReader implements BackendApplicationContribution {
|
|
|
58
58
|
// the request was already closed
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
if ((e as any)['code'] === 'ENOENT') {
|
|
62
63
|
res.status(404).send(`No such file found in '${escape_html(pluginId)}' plugin.`);
|
|
63
64
|
} else {
|
|
64
65
|
res.status(500).send(`Failed to transfer a file from '${escape_html(pluginId)}' plugin.`);
|