mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-15 07:28:05 +00:00
Revert "debt - remove AMD support of VSCode for web" (#286421)
Revert "debt - remove AMD support of VSCode for web (#285230)"
This reverts commit 74c4ecddf7.
This commit is contained in:
@@ -150,6 +150,15 @@ 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" \
|
||||
@@ -157,7 +166,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)
|
||||
displayName: Upload sourcemaps (Web Internal)
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
||||
@@ -28,7 +28,7 @@ export const workbenchDesktop = [
|
||||
createModuleDescription('vs/workbench/workbench.desktop.main')
|
||||
];
|
||||
|
||||
export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main.internal');
|
||||
export const workbenchWeb = createModuleDescription('vs/workbench/workbench.web.main');
|
||||
|
||||
export const keyboardMaps = [
|
||||
createModuleDescription('vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux'),
|
||||
|
||||
@@ -19,6 +19,7 @@ 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';
|
||||
|
||||
@@ -81,6 +82,7 @@ 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();
|
||||
|
||||
/**
|
||||
@@ -141,8 +143,21 @@ function packageTask(sourceFolderName: string, destinationFolderName: string) {
|
||||
|
||||
const extensions = gulp.src('.build/web/extensions/**', { base: '.build/web', dot: true });
|
||||
|
||||
const sources = es.merge(src, extensions)
|
||||
.pipe(filter(['**', '!**/*.{js,css}.map'], { 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 name = product.nameShort;
|
||||
const packageJsonStream = gulp.src(['remote/web/package.json'], { base: 'remote/web' })
|
||||
|
||||
@@ -152,7 +152,7 @@ function bundleESMTask(opts: IBundleESMTaskOpts): NodeJS.ReadWriteStream {
|
||||
'.sh': 'file',
|
||||
},
|
||||
assetNames: 'media/[name]', // moves media assets into a sub-folder "media"
|
||||
banner,
|
||||
banner: entryPoint.name === 'vs/workbench/workbench.web.main' ? undefined : banner, // TODO@esm remove line when we stop supporting web-amd-esm-bridge
|
||||
entryPoints: [
|
||||
{
|
||||
in: path.join(REPO_ROOT_PATH, opts.src, `${entryPoint.name}.js`),
|
||||
|
||||
@@ -771,6 +771,8 @@ 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',
|
||||
@@ -1858,7 +1860,7 @@ export default tseslint.config(
|
||||
'vs/workbench/api/~',
|
||||
'vs/workbench/services/*/~',
|
||||
'vs/workbench/contrib/*/~',
|
||||
'vs/workbench/workbench.web.main.js'
|
||||
'vs/workbench/workbench.common.main.js'
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1885,7 +1887,7 @@ export default tseslint.config(
|
||||
]
|
||||
},
|
||||
{
|
||||
'target': 'src/vs/{monaco.d.ts,nls.ts}',
|
||||
'target': 'src/vs/{loader.d.ts,monaco.d.ts,nls.ts,nls.messages.ts}',
|
||||
'restrictions': []
|
||||
},
|
||||
{
|
||||
|
||||
19
src/vs/nls.messages.ts
Normal file
19
src/vs/nls.messages.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* 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;
|
||||
}
|
||||
@@ -3,13 +3,10 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
export function getNLSMessages(): string[] {
|
||||
return globalThis._VSCODE_NLS_MESSAGES;
|
||||
}
|
||||
|
||||
export function getNLSLanguage(): string | undefined {
|
||||
return globalThis._VSCODE_NLS_LANGUAGE;
|
||||
}
|
||||
// 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';
|
||||
|
||||
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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -3,6 +3,180 @@
|
||||
* 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
|
||||
@@ -11,15 +185,46 @@
|
||||
//
|
||||
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
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';
|
||||
import { LogLevel } from '../platform/log/common/log.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;
|
||||
}
|
||||
|
||||
export {
|
||||
|
||||
@@ -44,3 +249,5 @@ export {
|
||||
logger,
|
||||
Menu
|
||||
};
|
||||
|
||||
//#endregion
|
||||
|
||||
@@ -4,172 +4,104 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
// #######################################################################
|
||||
// ### ###
|
||||
// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ###
|
||||
// ### ###
|
||||
// #######################################################################
|
||||
// ####################################
|
||||
// ### ###
|
||||
// ### !!! PLEASE DO NOT MODIFY !!! ###
|
||||
// ### ###
|
||||
// ####################################
|
||||
|
||||
// TODO@esm remove me once we stop supporting our web-esm-bridge
|
||||
|
||||
//#region --- workbench common
|
||||
(function () {
|
||||
|
||||
import './workbench.common.main.js';
|
||||
// #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;
|
||||
};
|
||||
|
||||
//#endregion
|
||||
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
|
||||
|
||||
//#region --- workbench parts
|
||||
// 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;
|
||||
|
||||
import './browser/parts/dialogs/dialog.web.contribution.js';
|
||||
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!');
|
||||
}
|
||||
|
||||
//#endregion
|
||||
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<import('trusted-types/lib/index.js').TrustedTypePolicy<{ createScriptURL(value: string): string }>, 'name' | 'createScriptURL'> | undefined = require.getConfig().trustedTypesPolicy;
|
||||
if (trustedTypesPolicy) {
|
||||
globalThis._VSCODE_WEB_PACKAGE_TTP = trustedTypesPolicy;
|
||||
}
|
||||
|
||||
//#region --- workbench (web main)
|
||||
const promise = new Promise(resolve => {
|
||||
// eslint-disable-next-line local/code-no-any-casts
|
||||
(globalThis as any).__VSCODE_WEB_ESM_PROMISE = resolve;
|
||||
});
|
||||
|
||||
import './browser/web.main.js';
|
||||
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);
|
||||
|
||||
//#endregion
|
||||
return promise.then(mod => _load(mod));
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
//#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
|
||||
define(
|
||||
'vs/workbench/workbench.web.main',
|
||||
['require', 'exports', 'vs/web-api!'],
|
||||
function (_require, exports, webApi) {
|
||||
Object.assign(exports, webApi);
|
||||
}
|
||||
);
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user