diff --git a/build/azure-pipelines/web/product-build-web.yml b/build/azure-pipelines/web/product-build-web.yml index 1d5dd9798e7ee..71932745be7fb 100644 --- a/build/azure-pipelines/web/product-build-web.yml +++ b/build/azure-pipelines/web/product-build-web.yml @@ -150,15 +150,6 @@ jobs: node build/azure-pipelines/upload-cdn.ts displayName: Upload to CDN - - script: | - set -e - AZURE_STORAGE_ACCOUNT="vscodeweb" \ - AZURE_TENANT_ID="$(AZURE_TENANT_ID)" \ - AZURE_CLIENT_ID="$(AZURE_CLIENT_ID)" \ - AZURE_ID_TOKEN="$(AZURE_ID_TOKEN)" \ - node build/azure-pipelines/upload-sourcemaps.ts out-vscode-web-min out-vscode-web-min/vs/workbench/workbench.web.main.js.map - displayName: Upload sourcemaps (Web Main) - - script: | set -e AZURE_STORAGE_ACCOUNT="vscodeweb" \ @@ -166,7 +157,7 @@ jobs: AZURE_CLIENT_ID="$(AZURE_CLIENT_ID)" \ AZURE_ID_TOKEN="$(AZURE_ID_TOKEN)" \ node build/azure-pipelines/upload-sourcemaps.ts out-vscode-web-min out-vscode-web-min/vs/workbench/workbench.web.main.internal.js.map - displayName: Upload sourcemaps (Web Internal) + displayName: Upload sourcemaps (Web) - script: | set -e diff --git a/build/buildfile.ts b/build/buildfile.ts index 99a9832f404d3..168539f4cae5f 100644 --- a/build/buildfile.ts +++ b/build/buildfile.ts @@ -28,7 +28,7 @@ export const workbenchDesktop = [ createModuleDescription('vs/workbench/workbench.desktop.main') ]; -export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main'); +export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main.internal'); export const keyboardMaps = [ createModuleDescription('vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux'), diff --git a/build/gulpfile.vscode.web.ts b/build/gulpfile.vscode.web.ts index 55606d0ff1dcb..3f1cc1fdc51f0 100644 --- a/build/gulpfile.vscode.web.ts +++ b/build/gulpfile.vscode.web.ts @@ -19,7 +19,6 @@ import vfs from 'vinyl-fs'; import packageJson from '../package.json' with { type: 'json' }; import { compileBuildWithManglingTask } from './gulpfile.compile.ts'; import * as extensions from './lib/extensions.ts'; -import VinylFile from 'vinyl'; import jsonEditor from 'gulp-json-editor'; import buildfile from './buildfile.ts'; @@ -82,7 +81,6 @@ const vscodeWebEntryPoints = [ buildfile.workerBackgroundTokenization, buildfile.keyboardMaps, buildfile.workbenchWeb, - buildfile.entrypoint('vs/workbench/workbench.web.main.internal') // TODO@esm remove line when we stop supporting web-amd-esm-bridge ].flat(); /** @@ -143,21 +141,8 @@ function packageTask(sourceFolderName: string, destinationFolderName: string) { const extensions = gulp.src('.build/web/extensions/**', { base: '.build/web', dot: true }); - const loader = gulp.src('build/loader.min', { base: 'build', dot: true }).pipe(rename('out/vs/loader.js')); // TODO@esm remove line when we stop supporting web-amd-esm-bridge - - const sources = es.merge(src, extensions, loader) - .pipe(filter(['**', '!**/*.{js,css}.map'], { dot: true })) - // TODO@esm remove me once we stop supporting our web-esm-bridge - .pipe(es.through(function (file) { - if (file.relative === 'out/vs/workbench/workbench.web.main.internal.css') { - this.emit('data', new VinylFile({ - contents: file.contents, - path: file.path.replace('workbench.web.main.internal.css', 'workbench.web.main.css'), - base: file.base - })); - } - this.emit('data', file); - })); + const sources = es.merge(src, extensions) + .pipe(filter(['**', '!**/*.{js,css}.map'], { dot: true })); const name = product.nameShort; const packageJsonStream = gulp.src(['remote/web/package.json'], { base: 'remote/web' }) diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts index 58b8e07fdb328..f5e812e289079 100644 --- a/build/lib/optimize.ts +++ b/build/lib/optimize.ts @@ -152,7 +152,7 @@ function bundleESMTask(opts: IBundleESMTaskOpts): NodeJS.ReadWriteStream { '.sh': 'file', }, assetNames: 'media/[name]', // moves media assets into a sub-folder "media" - banner: entryPoint.name === 'vs/workbench/workbench.web.main' ? undefined : banner, // TODO@esm remove line when we stop supporting web-amd-esm-bridge + banner, entryPoints: [ { in: path.join(REPO_ROOT_PATH, opts.src, `${entryPoint.name}.js`), diff --git a/eslint.config.js b/eslint.config.js index 0a205b5febcc0..10a2fa9ee0b32 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -771,8 +771,6 @@ export default tseslint.config( 'src/vs/workbench/test/browser/workbenchTestServices.ts', 'src/vs/workbench/test/common/workbenchTestServices.ts', 'src/vs/workbench/test/electron-browser/workbenchTestServices.ts', - 'src/vs/workbench/workbench.web.main.internal.ts', - 'src/vs/workbench/workbench.web.main.ts', // Server 'src/vs/server/node/remoteAgentEnvironmentImpl.ts', 'src/vs/server/node/remoteExtensionHostAgentServer.ts', @@ -1860,7 +1858,7 @@ export default tseslint.config( 'vs/workbench/api/~', 'vs/workbench/services/*/~', 'vs/workbench/contrib/*/~', - 'vs/workbench/workbench.common.main.js' + 'vs/workbench/workbench.web.main.js' ] }, { @@ -1887,7 +1885,7 @@ export default tseslint.config( ] }, { - 'target': 'src/vs/{loader.d.ts,monaco.d.ts,nls.ts,nls.messages.ts}', + 'target': 'src/vs/{monaco.d.ts,nls.ts}', 'restrictions': [] }, { diff --git a/src/vs/nls.messages.ts b/src/vs/nls.messages.ts deleted file mode 100644 index 41f15f247d6e4..0000000000000 --- a/src/vs/nls.messages.ts +++ /dev/null @@ -1,19 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/* - * This module exists so that the AMD build of the monaco editor can replace this with an async loader plugin. - * If you add new functions to this module make sure that they are also provided in the AMD build of the monaco editor. - * - * TODO@esm remove me once we no longer ship an AMD build. - */ - -export function getNLSMessages(): string[] { - return globalThis._VSCODE_NLS_MESSAGES; -} - -export function getNLSLanguage(): string | undefined { - return globalThis._VSCODE_NLS_LANGUAGE; -} diff --git a/src/vs/nls.ts b/src/vs/nls.ts index e9183ad7d32d2..51644b01193f7 100644 --- a/src/vs/nls.ts +++ b/src/vs/nls.ts @@ -3,10 +3,13 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -// eslint-disable-next-line local/code-import-patterns -import { getNLSLanguage, getNLSMessages } from './nls.messages.js'; -// eslint-disable-next-line local/code-import-patterns -export { getNLSLanguage, getNLSMessages } from './nls.messages.js'; +export function getNLSMessages(): string[] { + return globalThis._VSCODE_NLS_MESSAGES; +} + +export function getNLSLanguage(): string | undefined { + return globalThis._VSCODE_NLS_LANGUAGE; +} declare const document: { location?: { hash?: string } } | undefined; const isPseudo = getNLSLanguage() === 'pseudo' || (typeof document !== 'undefined' && document.location && typeof document.location.hash === 'string' && document.location.hash.indexOf('pseudo=true') >= 0); diff --git a/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts b/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts index fe94a56a87ed4..f465335f45e2a 100644 --- a/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts +++ b/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.ts @@ -83,7 +83,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu this._register(this.editorService.onDidActiveEditorChange(() => this.onDidActiveEditorChange())); this._register(this.configurationService.onDidChangeConfiguration(e => { - if (e.affectsConfiguration(product.defaultChatAgent.completionsEnablementSetting)) { + if (e.affectsConfiguration(product.defaultChatAgent?.completionsEnablementSetting)) { this.update(); } })); diff --git a/src/vs/workbench/workbench.web.main.internal.ts b/src/vs/workbench/workbench.web.main.internal.ts index 40dcb51abe697..b5a0cff14c68a 100644 --- a/src/vs/workbench/workbench.web.main.internal.ts +++ b/src/vs/workbench/workbench.web.main.internal.ts @@ -3,180 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ - -// ####################################################################### -// ### ### -// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ### -// ### ### -// ####################################################################### - - -//#region --- workbench common - -import './workbench.common.main.js'; - -//#endregion - - -//#region --- workbench parts - -import './browser/parts/dialogs/dialog.web.contribution.js'; - -//#endregion - - -//#region --- workbench (web main) - -import './browser/web.main.js'; - -//#endregion - - -//#region --- workbench services - -import './services/integrity/browser/integrityService.js'; -import './services/search/browser/searchService.js'; -import './services/textfile/browser/browserTextFileService.js'; -import './services/keybinding/browser/keyboardLayoutService.js'; -import './services/extensions/browser/extensionService.js'; -import './services/extensionManagement/browser/extensionsProfileScannerService.js'; -import './services/extensions/browser/extensionsScannerService.js'; -import './services/extensionManagement/browser/webExtensionsScannerService.js'; -import './services/extensionManagement/common/extensionManagementServerService.js'; -import './services/mcp/browser/mcpWorkbenchManagementService.js'; -import './services/extensionManagement/browser/extensionGalleryManifestService.js'; -import './services/telemetry/browser/telemetryService.js'; -import './services/url/browser/urlService.js'; -import './services/update/browser/updateService.js'; -import './services/workspaces/browser/workspacesService.js'; -import './services/workspaces/browser/workspaceEditingService.js'; -import './services/dialogs/browser/fileDialogService.js'; -import './services/host/browser/browserHostService.js'; -import './services/lifecycle/browser/lifecycleService.js'; -import './services/clipboard/browser/clipboardService.js'; -import './services/localization/browser/localeService.js'; -import './services/path/browser/pathService.js'; -import './services/themes/browser/browserHostColorSchemeService.js'; -import './services/encryption/browser/encryptionService.js'; -import './services/imageResize/browser/imageResizeService.js'; -import './services/secrets/browser/secretStorageService.js'; -import './services/workingCopy/browser/workingCopyBackupService.js'; -import './services/tunnel/browser/tunnelService.js'; -import './services/files/browser/elevatedFileService.js'; -import './services/workingCopy/browser/workingCopyHistoryService.js'; -import './services/userDataSync/browser/webUserDataSyncEnablementService.js'; -import './services/userDataProfile/browser/userDataProfileStorageService.js'; -import './services/configurationResolver/browser/configurationResolverService.js'; -import '../platform/extensionResourceLoader/browser/extensionResourceLoaderService.js'; -import './services/auxiliaryWindow/browser/auxiliaryWindowService.js'; -import './services/browserElements/browser/webBrowserElementsService.js'; - -import { InstantiationType, registerSingleton } from '../platform/instantiation/common/extensions.js'; -import { IAccessibilityService } from '../platform/accessibility/common/accessibility.js'; -import { IContextMenuService } from '../platform/contextview/browser/contextView.js'; -import { ContextMenuService } from '../platform/contextview/browser/contextMenuService.js'; -import { IExtensionTipsService } from '../platform/extensionManagement/common/extensionManagement.js'; -import { ExtensionTipsService } from '../platform/extensionManagement/common/extensionTipsService.js'; -import { IWorkbenchExtensionManagementService } from './services/extensionManagement/common/extensionManagement.js'; -import { ExtensionManagementService } from './services/extensionManagement/common/extensionManagementService.js'; -import { LogLevel } from '../platform/log/common/log.js'; -import { UserDataSyncMachinesService, IUserDataSyncMachinesService } from '../platform/userDataSync/common/userDataSyncMachines.js'; -import { IUserDataSyncStoreService, IUserDataSyncService, IUserDataAutoSyncService, IUserDataSyncLocalStoreService, IUserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSync.js'; -import { UserDataSyncStoreService } from '../platform/userDataSync/common/userDataSyncStoreService.js'; -import { UserDataSyncLocalStoreService } from '../platform/userDataSync/common/userDataSyncLocalStoreService.js'; -import { UserDataSyncService } from '../platform/userDataSync/common/userDataSyncService.js'; -import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../platform/userDataSync/common/userDataSyncAccount.js'; -import { UserDataAutoSyncService } from '../platform/userDataSync/common/userDataAutoSyncService.js'; -import { AccessibilityService } from '../platform/accessibility/browser/accessibilityService.js'; -import { ICustomEndpointTelemetryService } from '../platform/telemetry/common/telemetry.js'; -import { NullEndpointTelemetryService } from '../platform/telemetry/common/telemetryUtils.js'; -import { ITitleService } from './services/title/browser/titleService.js'; -import { BrowserTitleService } from './browser/parts/titlebar/titlebarPart.js'; -import { ITimerService, TimerService } from './services/timer/browser/timerService.js'; -import { IDiagnosticsService, NullDiagnosticsService } from '../platform/diagnostics/common/diagnostics.js'; -import { ILanguagePackService } from '../platform/languagePacks/common/languagePacks.js'; -import { WebLanguagePacksService } from '../platform/languagePacks/browser/languagePacks.js'; -import { IWebContentExtractorService, NullWebContentExtractorService, ISharedWebContentExtractorService, NullSharedWebContentExtractorService } from '../platform/webContentExtractor/common/webContentExtractor.js'; -import { IMcpGalleryManifestService } from '../platform/mcp/common/mcpGalleryManifest.js'; -import { WorkbenchMcpGalleryManifestService } from './services/mcp/browser/mcpGalleryManifestService.js'; - -registerSingleton(IWorkbenchExtensionManagementService, ExtensionManagementService, InstantiationType.Delayed); -registerSingleton(IAccessibilityService, AccessibilityService, InstantiationType.Delayed); -registerSingleton(IContextMenuService, ContextMenuService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncMachinesService, UserDataSyncMachinesService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncLocalStoreService, UserDataSyncLocalStoreService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncAccountService, UserDataSyncAccountService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncService, UserDataSyncService, InstantiationType.Delayed); -registerSingleton(IUserDataSyncResourceProviderService, UserDataSyncResourceProviderService, InstantiationType.Delayed); -registerSingleton(IUserDataAutoSyncService, UserDataAutoSyncService, InstantiationType.Eager /* Eager to start auto sync */); -registerSingleton(ITitleService, BrowserTitleService, InstantiationType.Eager); -registerSingleton(IExtensionTipsService, ExtensionTipsService, InstantiationType.Delayed); -registerSingleton(ITimerService, TimerService, InstantiationType.Delayed); -registerSingleton(ICustomEndpointTelemetryService, NullEndpointTelemetryService, InstantiationType.Delayed); -registerSingleton(IDiagnosticsService, NullDiagnosticsService, InstantiationType.Delayed); -registerSingleton(ILanguagePackService, WebLanguagePacksService, InstantiationType.Delayed); -registerSingleton(IWebContentExtractorService, NullWebContentExtractorService, InstantiationType.Delayed); -registerSingleton(ISharedWebContentExtractorService, NullSharedWebContentExtractorService, InstantiationType.Delayed); -registerSingleton(IMcpGalleryManifestService, WorkbenchMcpGalleryManifestService, InstantiationType.Delayed); - -//#endregion - - -//#region --- workbench contributions - -// Logs -import './contrib/logs/browser/logs.contribution.js'; - -// Localization -import './contrib/localization/browser/localization.contribution.js'; - -// Performance -import './contrib/performance/browser/performance.web.contribution.js'; - -// Preferences -import './contrib/preferences/browser/keyboardLayoutPicker.js'; - -// Debug -import './contrib/debug/browser/extensionHostDebugService.js'; - -// Welcome Banner -import './contrib/welcomeBanner/browser/welcomeBanner.contribution.js'; - -// Webview -import './contrib/webview/browser/webview.web.contribution.js'; - -// Extensions Management -import './contrib/extensions/browser/extensions.web.contribution.js'; - -// Terminal -import './contrib/terminal/browser/terminal.web.contribution.js'; -import './contrib/externalTerminal/browser/externalTerminal.contribution.js'; -import './contrib/terminal/browser/terminalInstanceService.js'; - -// Tasks -import './contrib/tasks/browser/taskService.js'; - -// Tags -import './contrib/tags/browser/workspaceTagsService.js'; - -// Issues -import './contrib/issue/browser/issue.contribution.js'; - -// Splash -import './contrib/splash/browser/splash.contribution.js'; - -// Remote Start Entry for the Web -import './contrib/remote/browser/remoteStartEntry.contribution.js'; - -// Process Explorer -import './contrib/processExplorer/browser/processExplorer.web.contribution.js'; - -//#endregion - - -//#region --- export workbench factory - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // Do NOT change these exports in a way that something is removed unless @@ -185,46 +11,15 @@ import './contrib/processExplorer/browser/processExplorer.web.contribution.js'; // // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +import './workbench.web.main.js'; import { create, commands, env, window, workspace, logger } from './browser/web.factory.js'; import { Menu } from './browser/web.api.js'; import { URI } from '../base/common/uri.js'; import { Event, Emitter } from '../base/common/event.js'; import { Disposable } from '../base/common/lifecycle.js'; import { GroupOrientation } from './services/editor/common/editorGroupsService.js'; -import { UserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSyncResourceProvider.js'; import { RemoteAuthorityResolverError, RemoteAuthorityResolverErrorCode } from '../platform/remote/common/remoteAuthorityResolver.js'; - -// TODO@esm remove me once we stop supporting our web-esm-bridge -// eslint-disable-next-line local/code-no-any-casts -if ((globalThis as any).__VSCODE_WEB_ESM_PROMISE) { - const exports = { - - // Factory - create: create, - - // Basic Types - URI: URI, - Event: Event, - Emitter: Emitter, - Disposable: Disposable, - // GroupOrientation, - LogLevel: LogLevel, - RemoteAuthorityResolverError: RemoteAuthorityResolverError, - RemoteAuthorityResolverErrorCode: RemoteAuthorityResolverErrorCode, - - // Facade API - env: env, - window: window, - workspace: workspace, - commands: commands, - logger: logger, - Menu: Menu - }; - // eslint-disable-next-line local/code-no-any-casts - (globalThis as any).__VSCODE_WEB_ESM_PROMISE(exports); - // eslint-disable-next-line local/code-no-any-casts - delete (globalThis as any).__VSCODE_WEB_ESM_PROMISE; -} +import { LogLevel } from '../platform/log/common/log.js'; export { @@ -249,5 +44,3 @@ export { logger, Menu }; - -//#endregion diff --git a/src/vs/workbench/workbench.web.main.ts b/src/vs/workbench/workbench.web.main.ts index 93752573d4c95..342ad97659b8a 100644 --- a/src/vs/workbench/workbench.web.main.ts +++ b/src/vs/workbench/workbench.web.main.ts @@ -4,104 +4,172 @@ *--------------------------------------------------------------------------------------------*/ -// #################################### -// ### ### -// ### !!! PLEASE DO NOT MODIFY !!! ### -// ### ### -// #################################### - -// TODO@esm remove me once we stop supporting our web-esm-bridge - -(function () { - - // #region Types - type IGlobalDefine = { - (moduleName: string, dependencies: string[], callback: (...args: any[]) => any): any; - (moduleName: string, dependencies: string[], definition: any): any; - (moduleName: string, callback: (...args: any[]) => any): any; - (moduleName: string, definition: any): any; - (dependencies: string[], callback: (...args: any[]) => any): any; - (dependencies: string[], definition: any): any; - }; - - interface ILoaderPlugin { - load: (pluginParam: string, parentRequire: IRelativeRequire, loadCallback: IPluginLoadCallback, options: IConfigurationOptions) => void; - write?: (pluginName: string, moduleName: string, write: IPluginWriteCallback) => void; - writeFile?: (pluginName: string, moduleName: string, req: IRelativeRequire, write: IPluginWriteFileCallback, config: IConfigurationOptions) => void; - finishBuild?: (write: (filename: string, contents: string) => void) => void; - } - interface IRelativeRequire { - (dependencies: string[], callback: Function, errorback?: (error: Error) => void): void; - toUrl(id: string): string; - } - interface IPluginLoadCallback { - (value: any): void; - error(err: any): void; - } - interface IConfigurationOptions { - isBuild: boolean | undefined; - [key: string]: any; - } - interface IPluginWriteCallback { - (contents: string): void; - getEntryPoint(): string; - asModule(moduleId: string, contents: string): void; - } - interface IPluginWriteFileCallback { - (filename: string, contents: string): void; - getEntryPoint(): string; - asModule(moduleId: string, contents: string): void; - } - - //#endregion - - // eslint-disable-next-line local/code-no-any-casts - const define: IGlobalDefine = (globalThis as any).define; - // eslint-disable-next-line local/code-no-any-casts - const require: { getConfig?(): any } | undefined = (globalThis as any).require; - - if (!define || !require || typeof require.getConfig !== 'function') { - throw new Error('Expected global define() and require() functions. Please only load this module in an AMD context!'); - } - - let baseUrl = require?.getConfig().baseUrl; - if (!baseUrl) { - throw new Error('Failed to determine baseUrl for loading AMD modules (tried require.getConfig().baseUrl)'); - } - if (!baseUrl.endsWith('/')) { - baseUrl = baseUrl + '/'; - } - globalThis._VSCODE_FILE_ROOT = baseUrl; - - const trustedTypesPolicy: Pick, 'name' | 'createScriptURL'> | undefined = require.getConfig().trustedTypesPolicy; - if (trustedTypesPolicy) { - globalThis._VSCODE_WEB_PACKAGE_TTP = trustedTypesPolicy; - } - - const promise = new Promise(resolve => { - // eslint-disable-next-line local/code-no-any-casts - (globalThis as any).__VSCODE_WEB_ESM_PROMISE = resolve; - }); - - define('vs/web-api', [], (): ILoaderPlugin => { - return { - load: (_name, _req, _load, _config) => { - const script: any = document.createElement('script'); - script.type = 'module'; - // eslint-disable-next-line local/code-no-any-casts - script.src = trustedTypesPolicy ? trustedTypesPolicy.createScriptURL(`${baseUrl}vs/workbench/workbench.web.main.internal.js`) as any as string : `${baseUrl}vs/workbench/workbench.web.main.internal.js`; - document.head.appendChild(script); - - return promise.then(mod => _load(mod)); - } - }; - }); - - define( - 'vs/workbench/workbench.web.main', - ['require', 'exports', 'vs/web-api!'], - function (_require, exports, webApi) { - Object.assign(exports, webApi); - } - ); -})(); +// ####################################################################### +// ### ### +// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ### +// ### ### +// ####################################################################### + + +//#region --- workbench common + +import './workbench.common.main.js'; + +//#endregion + + +//#region --- workbench parts + +import './browser/parts/dialogs/dialog.web.contribution.js'; + +//#endregion + + +//#region --- workbench (web main) + +import './browser/web.main.js'; + +//#endregion + + +//#region --- workbench services + +import './services/integrity/browser/integrityService.js'; +import './services/search/browser/searchService.js'; +import './services/textfile/browser/browserTextFileService.js'; +import './services/keybinding/browser/keyboardLayoutService.js'; +import './services/extensions/browser/extensionService.js'; +import './services/extensionManagement/browser/extensionsProfileScannerService.js'; +import './services/extensions/browser/extensionsScannerService.js'; +import './services/extensionManagement/browser/webExtensionsScannerService.js'; +import './services/extensionManagement/common/extensionManagementServerService.js'; +import './services/mcp/browser/mcpWorkbenchManagementService.js'; +import './services/extensionManagement/browser/extensionGalleryManifestService.js'; +import './services/telemetry/browser/telemetryService.js'; +import './services/url/browser/urlService.js'; +import './services/update/browser/updateService.js'; +import './services/workspaces/browser/workspacesService.js'; +import './services/workspaces/browser/workspaceEditingService.js'; +import './services/dialogs/browser/fileDialogService.js'; +import './services/host/browser/browserHostService.js'; +import './services/lifecycle/browser/lifecycleService.js'; +import './services/clipboard/browser/clipboardService.js'; +import './services/localization/browser/localeService.js'; +import './services/path/browser/pathService.js'; +import './services/themes/browser/browserHostColorSchemeService.js'; +import './services/encryption/browser/encryptionService.js'; +import './services/imageResize/browser/imageResizeService.js'; +import './services/secrets/browser/secretStorageService.js'; +import './services/workingCopy/browser/workingCopyBackupService.js'; +import './services/tunnel/browser/tunnelService.js'; +import './services/files/browser/elevatedFileService.js'; +import './services/workingCopy/browser/workingCopyHistoryService.js'; +import './services/userDataSync/browser/webUserDataSyncEnablementService.js'; +import './services/userDataProfile/browser/userDataProfileStorageService.js'; +import './services/configurationResolver/browser/configurationResolverService.js'; +import '../platform/extensionResourceLoader/browser/extensionResourceLoaderService.js'; +import './services/auxiliaryWindow/browser/auxiliaryWindowService.js'; +import './services/browserElements/browser/webBrowserElementsService.js'; + +import { InstantiationType, registerSingleton } from '../platform/instantiation/common/extensions.js'; +import { IAccessibilityService } from '../platform/accessibility/common/accessibility.js'; +import { IContextMenuService } from '../platform/contextview/browser/contextView.js'; +import { ContextMenuService } from '../platform/contextview/browser/contextMenuService.js'; +import { IExtensionTipsService } from '../platform/extensionManagement/common/extensionManagement.js'; +import { ExtensionTipsService } from '../platform/extensionManagement/common/extensionTipsService.js'; +import { IWorkbenchExtensionManagementService } from './services/extensionManagement/common/extensionManagement.js'; +import { ExtensionManagementService } from './services/extensionManagement/common/extensionManagementService.js'; +import { UserDataSyncMachinesService, IUserDataSyncMachinesService } from '../platform/userDataSync/common/userDataSyncMachines.js'; +import { IUserDataSyncStoreService, IUserDataSyncService, IUserDataAutoSyncService, IUserDataSyncLocalStoreService, IUserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSync.js'; +import { UserDataSyncStoreService } from '../platform/userDataSync/common/userDataSyncStoreService.js'; +import { UserDataSyncLocalStoreService } from '../platform/userDataSync/common/userDataSyncLocalStoreService.js'; +import { UserDataSyncService } from '../platform/userDataSync/common/userDataSyncService.js'; +import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../platform/userDataSync/common/userDataSyncAccount.js'; +import { UserDataAutoSyncService } from '../platform/userDataSync/common/userDataAutoSyncService.js'; +import { AccessibilityService } from '../platform/accessibility/browser/accessibilityService.js'; +import { ICustomEndpointTelemetryService } from '../platform/telemetry/common/telemetry.js'; +import { NullEndpointTelemetryService } from '../platform/telemetry/common/telemetryUtils.js'; +import { ITitleService } from './services/title/browser/titleService.js'; +import { BrowserTitleService } from './browser/parts/titlebar/titlebarPart.js'; +import { ITimerService, TimerService } from './services/timer/browser/timerService.js'; +import { IDiagnosticsService, NullDiagnosticsService } from '../platform/diagnostics/common/diagnostics.js'; +import { ILanguagePackService } from '../platform/languagePacks/common/languagePacks.js'; +import { WebLanguagePacksService } from '../platform/languagePacks/browser/languagePacks.js'; +import { IWebContentExtractorService, NullWebContentExtractorService, ISharedWebContentExtractorService, NullSharedWebContentExtractorService } from '../platform/webContentExtractor/common/webContentExtractor.js'; +import { IMcpGalleryManifestService } from '../platform/mcp/common/mcpGalleryManifest.js'; +import { WorkbenchMcpGalleryManifestService } from './services/mcp/browser/mcpGalleryManifestService.js'; +import { UserDataSyncResourceProviderService } from '../platform/userDataSync/common/userDataSyncResourceProvider.js'; + +registerSingleton(IWorkbenchExtensionManagementService, ExtensionManagementService, InstantiationType.Delayed); +registerSingleton(IAccessibilityService, AccessibilityService, InstantiationType.Delayed); +registerSingleton(IContextMenuService, ContextMenuService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncStoreService, UserDataSyncStoreService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncMachinesService, UserDataSyncMachinesService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncLocalStoreService, UserDataSyncLocalStoreService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncAccountService, UserDataSyncAccountService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncService, UserDataSyncService, InstantiationType.Delayed); +registerSingleton(IUserDataSyncResourceProviderService, UserDataSyncResourceProviderService, InstantiationType.Delayed); +registerSingleton(IUserDataAutoSyncService, UserDataAutoSyncService, InstantiationType.Eager /* Eager to start auto sync */); +registerSingleton(ITitleService, BrowserTitleService, InstantiationType.Eager); +registerSingleton(IExtensionTipsService, ExtensionTipsService, InstantiationType.Delayed); +registerSingleton(ITimerService, TimerService, InstantiationType.Delayed); +registerSingleton(ICustomEndpointTelemetryService, NullEndpointTelemetryService, InstantiationType.Delayed); +registerSingleton(IDiagnosticsService, NullDiagnosticsService, InstantiationType.Delayed); +registerSingleton(ILanguagePackService, WebLanguagePacksService, InstantiationType.Delayed); +registerSingleton(IWebContentExtractorService, NullWebContentExtractorService, InstantiationType.Delayed); +registerSingleton(ISharedWebContentExtractorService, NullSharedWebContentExtractorService, InstantiationType.Delayed); +registerSingleton(IMcpGalleryManifestService, WorkbenchMcpGalleryManifestService, InstantiationType.Delayed); + +//#endregion + + +//#region --- workbench contributions + +// Logs +import './contrib/logs/browser/logs.contribution.js'; + +// Localization +import './contrib/localization/browser/localization.contribution.js'; + +// Performance +import './contrib/performance/browser/performance.web.contribution.js'; + +// Preferences +import './contrib/preferences/browser/keyboardLayoutPicker.js'; + +// Debug +import './contrib/debug/browser/extensionHostDebugService.js'; + +// Welcome Banner +import './contrib/welcomeBanner/browser/welcomeBanner.contribution.js'; + +// Webview +import './contrib/webview/browser/webview.web.contribution.js'; + +// Extensions Management +import './contrib/extensions/browser/extensions.web.contribution.js'; + +// Terminal +import './contrib/terminal/browser/terminal.web.contribution.js'; +import './contrib/externalTerminal/browser/externalTerminal.contribution.js'; +import './contrib/terminal/browser/terminalInstanceService.js'; + +// Tasks +import './contrib/tasks/browser/taskService.js'; + +// Tags +import './contrib/tags/browser/workspaceTagsService.js'; + +// Issues +import './contrib/issue/browser/issue.contribution.js'; + +// Splash +import './contrib/splash/browser/splash.contribution.js'; + +// Remote Start Entry for the Web +import './contrib/remote/browser/remoteStartEntry.contribution.js'; + +// Process Explorer +import './contrib/processExplorer/browser/processExplorer.web.contribution.js'; + +//#endregion