diff --git a/.vscode/shared.code-snippets b/.vscode/shared.code-snippets index ba36a9f5fcb..f473425b76f 100644 --- a/.vscode/shared.code-snippets +++ b/.vscode/shared.code-snippets @@ -36,23 +36,5 @@ "private readonly _onDid$1 = new Emitter<$2>();", "readonly onDid$1: Event<$2> = this._onDid$1.event;" ], - }, - "esm-comment": { - "scope": "typescript,javascript", - "prefix": "esm-comment", - "body": [ - "// ESM-comment-begin", - "$SELECTION$0", - "// ESM-comment-end", - ] - }, - "esm-uncomment": { - "scope": "typescript,javascript", - "prefix": "esm-uncomment", - "body": [ - "// ESM-uncomment-begin", - "// $SELECTION$0", - "// ESM-uncomment-end", - ] } } diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js index f6afeabb2bc..5ee53860033 100644 --- a/build/gulpfile.reh.js +++ b/build/gulpfile.reh.js @@ -96,8 +96,7 @@ const serverWithWebResourceIncludes = [ const serverWithWebResourceExcludes = [ ...serverResourceExcludes, - '!out-build/vs/code/**/*-dev.html', - '!out-build/vs/code/**/*-dev.esm.html', + '!out-build/vs/code/**/*-dev.html' ]; const serverWithWebResources = [ diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index d21bc6b5812..b5efb2b7179 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -57,7 +57,7 @@ const vscodeResourceIncludes = [ 'out-build/nls.keys.json', // Workbench - 'out-build/vs/code/electron-sandbox/workbench/workbench.esm.html', + 'out-build/vs/code/electron-sandbox/workbench/workbench.html', // Electron Preload 'out-build/vs/base/parts/sandbox/electron-sandbox/preload.js', @@ -94,16 +94,16 @@ const vscodeResourceIncludes = [ 'out-build/vs/workbench/contrib/webview/browser/pre/*.{js,html}', // Extension Host Worker - 'out-build/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html', + 'out-build/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html', // Process Explorer - 'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.esm.html', + 'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.html', // Tree Sitter highlights 'out-build/vs/editor/common/languages/highlights/*.scm', // Issue Reporter - 'out-build/vs/workbench/contrib/issue/electron-sandbox/issueReporter.esm.html' + 'out-build/vs/workbench/contrib/issue/electron-sandbox/issueReporter.html' ]; const vscodeResources = [ @@ -115,9 +115,7 @@ const vscodeResources = [ '!out-build/vs/code/browser/**', '!out-build/vs/editor/standalone/**', '!out-build/vs/code/**/*-dev.html', - '!out-build/vs/code/**/*-dev.esm.html', '!out-build/vs/workbench/contrib/issue/**/*-dev.html', - '!out-build/vs/workbench/contrib/issue/**/*-dev.esm.html', '!**/test/**' ]; @@ -256,7 +254,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op 'vs/workbench/workbench.desktop.main.js', 'vs/workbench/workbench.desktop.main.css', 'vs/workbench/api/node/extensionHostProcess.js', - 'vs/code/electron-sandbox/workbench/workbench.esm.html', + 'vs/code/electron-sandbox/workbench/workbench.html', 'vs/code/electron-sandbox/workbench/workbench.js' ]); diff --git a/build/gulpfile.vscode.web.js b/build/gulpfile.vscode.web.js index 319da501fc9..4dc8cb28d2c 100644 --- a/build/gulpfile.vscode.web.js +++ b/build/gulpfile.vscode.web.js @@ -53,7 +53,7 @@ const vscodeWebResourceIncludes = [ 'out-build/vs/editor/common/languages/highlights/*.scm', // Extension Host Worker - 'out-build/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html', + 'out-build/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html', ]; exports.vscodeWebResourceIncludes = vscodeWebResourceIncludes; @@ -67,7 +67,6 @@ const vscodeWebResources = [ '!out-build/vs/editor/standalone/**', '!out-build/vs/workbench/**/*-tb.png', '!out-build/vs/code/**/*-dev.html', - '!out-build/vs/code/**/*-dev.esm.html', '!**/test/**' ]; diff --git a/src/bootstrap-amd.js b/src/bootstrap-amd.js index 9c8daf55756..c33c8c547f6 100644 --- a/src/bootstrap-amd.js +++ b/src/bootstrap-amd.js @@ -11,7 +11,6 @@ * @import { IProductConfiguration } from './vs/base/common/product' */ -// ESM-uncomment-begin import * as path from 'path'; import * as fs from 'fs'; import { fileURLToPath } from 'url'; @@ -44,16 +43,10 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) { }`; register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url); } -// ESM-uncomment-end // VSCODE_GLOBALS: package/product.json /** @type Partial */ -// ESM-comment-begin -// globalThis._VSCODE_PRODUCT_JSON = require('./bootstrap-meta').product; -// ESM-comment-end -// ESM-uncomment-begin globalThis._VSCODE_PRODUCT_JSON = { ...product }; -// ESM-uncomment-end if (process.env['VSCODE_DEV']) { // Patch product overrides when running out of sources try { @@ -62,22 +55,11 @@ if (process.env['VSCODE_DEV']) { globalThis._VSCODE_PRODUCT_JSON = Object.assign(globalThis._VSCODE_PRODUCT_JSON, overrides); } catch (error) { /* ignore */ } } -// ESM-comment-begin -// globalThis._VSCODE_PACKAGE_JSON = require('./bootstrap-meta').pkg; -// ESM-comment-end -// ESM-uncomment-begin globalThis._VSCODE_PACKAGE_JSON = { ...pkg }; -// ESM-uncomment-end // VSCODE_GLOBALS: file root of all resources globalThis._VSCODE_FILE_ROOT = __dirname; -// ESM-comment-begin -// const bootstrapNode = require('./bootstrap-node'); -// const performance = require(`./vs/base/common/performance`); -// const fs = require('fs'); -// ESM-comment-end - //#region NLS helpers /** @type {Promise | undefined} */ @@ -161,7 +143,6 @@ async function doSetupNLS() { //#region Loader Config -// ESM-uncomment-begin /** * @param {string=} entrypoint * @param {(value: any) => void} [onLoad] @@ -182,59 +163,7 @@ module.exports.load = function (entrypoint, onLoad, onError) { import(entrypoint).then(onLoad, onError); }); }; -// ESM-uncomment-end - -// ESM-comment-begin -// // @ts-ignore -// const loader = require('./vs/loader'); -// -// loader.config({ -// baseUrl: bootstrapNode.fileUriFromPath(__dirname, { isWindows: process.platform === 'win32' }), -// catchError: true, -// nodeRequire, -// amdModulesPattern: /^vs\//, -// recordStats: true -// }); -// -// // Running in Electron -// if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) { -// loader.define('fs', ['original-fs'], function (/** @type {import('fs')} */originalFS) { -// return originalFS; // replace the patched electron fs with the original node fs for all AMD code -// }); -// } -// -// /** -// * @param {string=} entrypoint -// * @param {(value: any) => void} [onLoad] -// * @param {(err: Error) => void} [onError] -// */ -// module.exports.load = function (entrypoint, onLoad, onError) { -// if (!entrypoint) { -// return; -// } -// -// // code cache config -// if (process.env['VSCODE_CODE_CACHE_PATH']) { -// loader.config({ -// nodeCachedData: { -// path: process.env['VSCODE_CODE_CACHE_PATH'], -// seed: entrypoint -// } -// }); -// } -// -// onLoad = onLoad || function () { }; -// onError = onError || function (err) { console.error(err); }; -// -// setupNLS().then(() => { -// performance.mark('code/fork/willLoadCode'); -// loader([entrypoint], onLoad, onError); -// }); -// }; -// ESM-comment-end //#endregion -// ESM-uncomment-begin export const load = module.exports.load; -// ESM-uncomment-end diff --git a/src/bootstrap-fork.js b/src/bootstrap-fork.js index 129517b608e..e8dd31410b0 100644 --- a/src/bootstrap-fork.js +++ b/src/bootstrap-fork.js @@ -6,16 +6,9 @@ //@ts-check 'use strict'; -// ESM-comment-begin -// const performance = require('./vs/base/common/performance'); -// const bootstrapNode = require('./bootstrap-node'); -// const bootstrapAmd = require('./bootstrap-amd'); -// ESM-comment-end -// ESM-uncomment-begin import * as performance from './vs/base/common/performance.js'; import * as bootstrapNode from './bootstrap-node.js'; import * as bootstrapAmd from './bootstrap-amd.js'; -// ESM-uncomment-end performance.mark('code/fork/start'); @@ -25,9 +18,6 @@ configureCrashReporter(); // Remove global paths from the node module lookup (node.js only) bootstrapNode.removeGlobalNodeJsModuleLookupPaths(); -// Enable ASAR in our forked processes -bootstrapNode.enableASARSupport(); - if (process.env['VSCODE_DEV_INJECT_NODE_MODULE_LOOKUP_PATH']) { bootstrapNode.devInjectNodeModuleLookupPath(process.env['VSCODE_DEV_INJECT_NODE_MODULE_LOOKUP_PATH']); } diff --git a/src/bootstrap-meta.js b/src/bootstrap-meta.js index f9a968c82f5..de52000bb70 100644 --- a/src/bootstrap-meta.js +++ b/src/bootstrap-meta.js @@ -10,13 +10,11 @@ * @import { IProductConfiguration } from './vs/base/common/product' */ -// ESM-uncomment-begin import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); /** @type any */ const module = { exports: {} }; -// ESM-uncomment-end /** @type Partial & { BUILD_INSERT_PRODUCT_CONFIGURATION?: string } */ let productObj = { BUILD_INSERT_PRODUCT_CONFIGURATION: 'BUILD_INSERT_PRODUCT_CONFIGURATION' }; // DO NOT MODIFY, PATCHED DURING BUILD @@ -35,7 +33,5 @@ if (pkgObj['BUILD_INSERT_PACKAGE_CONFIGURATION']) { module.exports.product = productObj; module.exports.pkg = pkgObj; -// ESM-uncomment-begin export const product = module.exports.product; export const pkg = module.exports.pkg; -// ESM-uncomment-end diff --git a/src/bootstrap-node.js b/src/bootstrap-node.js index d9e8e7e9945..edb360006f0 100644 --- a/src/bootstrap-node.js +++ b/src/bootstrap-node.js @@ -6,12 +6,6 @@ //@ts-check 'use strict'; -// ESM-comment-begin -// const path = require('path'); -// const fs = require('fs'); -// const Module = require('module'); -// ESM-comment-end -// ESM-uncomment-begin import * as path from 'path'; import * as fs from 'fs'; import { fileURLToPath } from 'url'; @@ -22,7 +16,6 @@ const require = createRequire(import.meta.url); /** @type any */ const module = { exports: {} }; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -// ESM-uncomment-end // increase number of stack frames(from 10, https://github.com/v8/v8/wiki/Stack-Trace-API) Error.stackTraceLimit = 100; @@ -84,31 +77,8 @@ module.exports.devInjectNodeModuleLookupPath = function (injectPath) { } const Module = require('node:module'); - // ESM-uncomment-begin // register a loader hook Module.register('./bootstrap-import.js', { parentURL: import.meta.url, data: injectPath }); - // ESM-uncomment-end - // ESM-comment-begin - // const nodeModulesPath = path.join(__dirname, '../node_modules'); - // - // // @ts-ignore - // const originalResolveLookupPaths = Module._resolveLookupPaths; - // - // // @ts-ignore - // Module._resolveLookupPaths = function (moduleName, parent) { - // const paths = originalResolveLookupPaths(moduleName, parent); - // if (Array.isArray(paths)) { - // for (let i = 0, len = paths.length; i < len; i++) { - // if (paths[i] === nodeModulesPath) { - // paths.splice(i, 0, injectPath); - // break; - // } - // } - // } - // - // return paths; - // }; - // ESM-comment-end }; module.exports.removeGlobalNodeJsModuleLookupPaths = function () { @@ -204,76 +174,8 @@ module.exports.configurePortable = function (product) { }; }; -/** - * Helper to enable ASAR support. - */ -module.exports.enableASARSupport = function () { - // ESM-comment-begin - // const NODE_MODULES_PATH = path.join(__dirname, '../node_modules'); - // const NODE_MODULES_ASAR_PATH = `${NODE_MODULES_PATH}.asar`; - // - // // @ts-ignore - // const originalResolveLookupPaths = Module._resolveLookupPaths; - // - // // @ts-ignore - // Module._resolveLookupPaths = function (request, parent) { - // const paths = originalResolveLookupPaths(request, parent); - // if (Array.isArray(paths)) { - // for (let i = 0, len = paths.length; i < len; i++) { - // if (paths[i] === NODE_MODULES_PATH) { - // paths.splice(i, 0, NODE_MODULES_ASAR_PATH); - // break; - // } - // } - // } - // - // return paths; - // }; - // ESM-comment-end -}; - -/** - * Helper to convert a file path to a URI. - * - * TODO@bpasero TODO@esm check for removal once ESM has landed. - * - * @param {string} path - * @param {{ isWindows?: boolean, scheme?: string, fallbackAuthority?: string }} config - * @returns {string} - */ -module.exports.fileUriFromPath = function (path, config) { - - // Since we are building a URI, we normalize any backslash - // to slashes and we ensure that the path begins with a '/'. - let pathName = path.replace(/\\/g, '/'); - if (pathName.length > 0 && pathName.charAt(0) !== '/') { - pathName = `/${pathName}`; - } - - /** @type {string} */ - let uri; - - // Windows: in order to support UNC paths (which start with '//') - // that have their own authority, we do not use the provided authority - // but rather preserve it. - if (config.isWindows && pathName.startsWith('//')) { - uri = encodeURI(`${config.scheme || 'file'}:${pathName}`); - } - - // Otherwise we optionally add the provided authority if specified - else { - uri = encodeURI(`${config.scheme || 'file'}://${config.fallbackAuthority || ''}${pathName}`); - } - - return uri.replace(/#/g, '%23'); -}; - //#endregion -// ESM-uncomment-begin export const devInjectNodeModuleLookupPath = module.exports.devInjectNodeModuleLookupPath; export const removeGlobalNodeJsModuleLookupPaths = module.exports.removeGlobalNodeJsModuleLookupPaths; export const configurePortable = module.exports.configurePortable; -export const enableASARSupport = module.exports.enableASARSupport; -export const fileUriFromPath = module.exports.fileUriFromPath; -// ESM-uncomment-end diff --git a/src/bootstrap-window.js b/src/bootstrap-window.js index 9b5ed26e6c6..a62213deb78 100644 --- a/src/bootstrap-window.js +++ b/src/bootstrap-window.js @@ -36,8 +36,7 @@ * removeDeveloperKeybindingsAfterLoad?: boolean * }, * canModifyDOM?: (config: ISandboxConfiguration) => void, - * beforeLoaderConfig?: (loaderConfig: object) => void, - * beforeRequire?: (config: ISandboxConfiguration) => void + * beforeImport?: (config: ISandboxConfiguration) => void * }} [options] */ async function load(modulePaths, resultCallback, options) { @@ -88,10 +87,9 @@ window['MonacoEnvironment'] = {}; - // ESM-uncomment-begin - // Signal before require() - if (typeof options?.beforeRequire === 'function') { - options.beforeRequire(configuration); + // Signal before import() + if (typeof options?.beforeImport === 'function') { + options.beforeImport(configuration); } const baseUrl = new URL(`${fileUriFromPath(configuration.appRoot, { isWindows: safeProcess.platform === 'win32', scheme: 'vscode-file', fallbackAuthority: 'vscode-app' })}/out/`); @@ -148,72 +146,13 @@ link.href = new URL(`${cssModule}.css`, baseUrl).href; document.head.appendChild(link); return Promise.resolve(); - } else { // ESM/JS module loading return import(new URL(`${modulePath}.js`, baseUrl).href); } })); - result.then((res) => invokeResult(res[0]), onUnexpectedError); - // ESM-uncomment-end - - // ESM-comment-begin - // /** @type {LoaderConfig} */ - // const loaderConfig = { - // baseUrl: `${fileUriFromPath(configuration.appRoot, { isWindows: safeProcess.platform === 'win32', scheme: 'vscode-file', fallbackAuthority: 'vscode-app' })}/out`, - // preferScriptTags: true - // }; - // - // // use a trusted types policy when loading via script tags - // loaderConfig.trustedTypesPolicy = window.trustedTypes?.createPolicy('amdLoader', { - // createScriptURL(value) { - // if (value.startsWith(window.location.origin)) { - // return value; - // } - // throw new Error(`Invalid script url: ${value}`); - // } - // }); - // - // // Teach the loader the location of the node modules we use in renderers - // // This will enable to load these modules via - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/vs/code/browser/workbench/workbench-dev.html b/src/vs/code/browser/workbench/workbench-dev.html index be6d30bfb98..140030d8abe 100644 --- a/src/vs/code/browser/workbench/workbench-dev.html +++ b/src/vs/code/browser/workbench/workbench-dev.html @@ -28,6 +28,7 @@ + @@ -35,31 +36,32 @@ - - + - + diff --git a/src/vs/code/browser/workbench/workbench.esm.html b/src/vs/code/browser/workbench/workbench.esm.html deleted file mode 100644 index 77881982735..00000000000 --- a/src/vs/code/browser/workbench/workbench.esm.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/vs/code/browser/workbench/workbench.html b/src/vs/code/browser/workbench/workbench.html index a4e95165cfb..77881982735 100644 --- a/src/vs/code/browser/workbench/workbench.html +++ b/src/vs/code/browser/workbench/workbench.html @@ -25,7 +25,7 @@ - + @@ -33,38 +33,16 @@ - - - + - - - + + diff --git a/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.esm.html b/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.esm.html deleted file mode 100644 index 19d194fc1c5..00000000000 --- a/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.esm.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - -
- - - - - - diff --git a/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.html b/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.html index 5bdf62c8230..19d194fc1c5 100644 --- a/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.html +++ b/src/vs/code/electron-sandbox/processExplorer/processExplorer-dev.html @@ -15,6 +15,8 @@ ; script-src 'self' + blob: + 'nonce-0c6a828f1297' ; style-src 'self' diff --git a/src/vs/code/electron-sandbox/processExplorer/processExplorer.esm.html b/src/vs/code/electron-sandbox/processExplorer/processExplorer.esm.html deleted file mode 100644 index d2747202950..00000000000 --- a/src/vs/code/electron-sandbox/processExplorer/processExplorer.esm.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - -
- - - - - diff --git a/src/vs/code/electron-sandbox/processExplorer/processExplorer.html b/src/vs/code/electron-sandbox/processExplorer/processExplorer.html index 845d024e626..d2747202950 100644 --- a/src/vs/code/electron-sandbox/processExplorer/processExplorer.html +++ b/src/vs/code/electron-sandbox/processExplorer/processExplorer.html @@ -15,6 +15,8 @@ ; script-src 'self' + blob: + 'nonce-0c6a828f1297' ; style-src 'self' @@ -28,6 +30,7 @@ 'self' ; "> + @@ -35,5 +38,5 @@ - + diff --git a/src/vs/code/electron-sandbox/workbench/workbench-dev.esm.html b/src/vs/code/electron-sandbox/workbench/workbench-dev.esm.html deleted file mode 100644 index ea5cbee848a..00000000000 --- a/src/vs/code/electron-sandbox/workbench/workbench-dev.esm.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/vs/code/electron-sandbox/workbench/workbench-dev.html b/src/vs/code/electron-sandbox/workbench/workbench-dev.html index b1be2b7527c..ea5cbee848a 100644 --- a/src/vs/code/electron-sandbox/workbench/workbench-dev.html +++ b/src/vs/code/electron-sandbox/workbench/workbench-dev.html @@ -28,6 +28,7 @@ 'self' 'unsafe-eval' blob: + 'nonce-0c6a828f1297' ; style-src 'self' @@ -48,6 +49,7 @@ 'script' ; trusted-types + vscode-bootstrapImportMap amdLoader cellRendererEditorText defaultWorkerFactory @@ -68,7 +70,6 @@ - diff --git a/src/vs/code/electron-sandbox/workbench/workbench.esm.html b/src/vs/code/electron-sandbox/workbench/workbench.esm.html deleted file mode 100644 index 1e89448e605..00000000000 --- a/src/vs/code/electron-sandbox/workbench/workbench.esm.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/vs/code/electron-sandbox/workbench/workbench.html b/src/vs/code/electron-sandbox/workbench/workbench.html index eb525bd59f6..1e89448e605 100644 --- a/src/vs/code/electron-sandbox/workbench/workbench.html +++ b/src/vs/code/electron-sandbox/workbench/workbench.html @@ -68,5 +68,5 @@ - + diff --git a/src/vs/code/electron-sandbox/workbench/workbench.js b/src/vs/code/electron-sandbox/workbench/workbench.js index 0ddbcd49ba0..80b74b70b37 100644 --- a/src/vs/code/electron-sandbox/workbench/workbench.js +++ b/src/vs/code/electron-sandbox/workbench/workbench.js @@ -48,11 +48,7 @@ canModifyDOM: function (windowConfig) { showSplash(windowConfig); }, - beforeLoaderConfig: function (loaderConfig) { - // @ts-ignore - loaderConfig.recordStats = true; - }, - beforeRequire: function (windowConfig) { + beforeImport: function (windowConfig) { performance.mark('code/willLoadWorkbenchMain'); // Code windows have a `vscodeWindowId` property to identify them @@ -91,8 +87,7 @@ * removeDeveloperKeybindingsAfterLoad?: boolean * }, * canModifyDOM?: (config: INativeWindowConfiguration & NativeParsedArgs) => void, - * beforeLoaderConfig?: (loaderConfig: object) => void, - * beforeRequire?: (config: ISandboxConfiguration) => void + * beforeImport?: (config: ISandboxConfiguration) => void * } * ) => Promise * }} diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts index b25377a804d..6f502f20d87 100644 --- a/src/vs/code/node/cli.ts +++ b/src/vs/code/node/cli.ts @@ -397,10 +397,7 @@ export async function main(argv: string[]): Promise { return false; } if (target.type === 'page') { - return target.url.indexOf('workbench/workbench.html') > 0 || - target.url.indexOf('workbench/workbench-dev.html') > 0 || - target.url.indexOf('workbench/workbench.esm.html') > 0 || - target.url.indexOf('workbench/workbench-dev.esm.html') > 0; + return target.url.indexOf('workbench/workbench.html') > 0 || target.url.indexOf('workbench/workbench-dev.html') > 0; } else { return true; } diff --git a/src/vs/editor/common/services/editorSimpleWorker.ts b/src/vs/editor/common/services/editorSimpleWorker.ts index ff8bbb85464..2432a8f657a 100644 --- a/src/vs/editor/common/services/editorSimpleWorker.ts +++ b/src/vs/editor/common/services/editorSimpleWorker.ts @@ -32,13 +32,6 @@ import { FindSectionHeaderOptions, SectionHeader, findSectionHeaders } from './f import { IRawModelData, IWorkerTextModelSyncChannelServer } from './textModelSync/textModelSync.protocol.js'; import { ICommonModel, WorkerTextModelSyncServer } from './textModelSync/textModelSync.impl.js'; -// ESM-comment-begin -// const isESM = false; -// ESM-comment-end -// ESM-uncomment-begin -const isESM = true; -// ESM-uncomment-end - export interface IMirrorModel extends IMirrorTextModel { readonly uri: URI; readonly version: number; @@ -565,12 +558,8 @@ export class EditorSimpleWorker extends BaseEditorSimpleWorker { resolve(getAllMethodNames(this._foreignModule)); }; - if (!isESM) { - require([`${moduleId}`], onModuleCallback, reject); - } else { - const url = FileAccess.asBrowserUri(`${moduleId}.js` as AppResourcePath).toString(true); - import(`${url}`).then(onModuleCallback).catch(reject); - } + const url = FileAccess.asBrowserUri(`${moduleId}.js` as AppResourcePath).toString(true); + import(`${url}`).then(onModuleCallback).catch(reject); }); } diff --git a/src/vs/platform/cssDev/node/cssDevService.ts b/src/vs/platform/cssDev/node/cssDevService.ts index 6c24e8e0672..5aa1efa6e39 100644 --- a/src/vs/platform/cssDev/node/cssDevService.ts +++ b/src/vs/platform/cssDev/node/cssDevService.ts @@ -5,7 +5,6 @@ import { spawn } from 'child_process'; import { relative } from 'path'; -import { isESM } from '../../../base/common/amd.js'; import { FileAccess } from '../../../base/common/network.js'; import { StopWatch } from '../../../base/common/stopwatch.js'; import { IEnvironmentService } from '../../environment/common/environment.js'; @@ -32,7 +31,7 @@ export class CSSDevelopmentService implements ICSSDevelopmentService { ) { } get isEnabled(): boolean { - return !this.envService.isBuilt && isESM; + return !this.envService.isBuilt; } getCssModules(): Promise { diff --git a/src/vs/platform/environment/node/userDataPath.js b/src/vs/platform/environment/node/userDataPath.js index fb023fff3c7..0f3b217a2e1 100644 --- a/src/vs/platform/environment/node/userDataPath.js +++ b/src/vs/platform/environment/node/userDataPath.js @@ -8,21 +8,14 @@ //@ts-check 'use strict'; -// ESM-uncomment-begin import * as os from 'os'; import * as path from 'path'; /** @type any */ const module = { exports: {} }; -// ESM-uncomment-end (function () { - // ESM-comment-begin - // const isESM = false; - // ESM-comment-end - // ESM-uncomment-begin const isESM = true; - // ESM-uncomment-end /** * @import { NativeParsedArgs } from '../../environment/common/argv' @@ -132,17 +125,10 @@ const module = { exports: {} }; return factory(path, os, process.cwd()); // amd }); } else if (typeof module === 'object' && typeof module.exports === 'object') { - // ESM-comment-begin - // const path = require('path'); - // const os = require('os'); - // ESM-comment-end - module.exports = factory(path, os, process.env['VSCODE_CWD'] || process.cwd()); // commonjs } else { throw new Error('Unknown context'); } }()); -// ESM-uncomment-begin export const getUserDataPath = module.exports.getUserDataPath; -// ESM-uncomment-end diff --git a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts index 95aa93b8617..3b08a22c1d0 100644 --- a/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts +++ b/src/vs/platform/environment/test/node/nativeModules.integrationTest.ts @@ -107,32 +107,17 @@ flakySuite('Native Modules (all platforms)', () => { }); test('@vscode/sqlite3', async () => { - // ESM-comment-begin - // const sqlite3 = await import('@vscode/sqlite3'); - // ESM-comment-end - // ESM-uncomment-begin const { default: sqlite3 } = await import('@vscode/sqlite3'); - // ESM-uncomment-end assert.ok(typeof sqlite3.Database === 'function', testErrorMessage('@vscode/sqlite3')); }); test('http-proxy-agent', async () => { - // ESM-comment-begin - // const mod = await import('http-proxy-agent'); - // ESM-comment-end - // ESM-uncomment-begin const { default: mod } = await import('http-proxy-agent'); - // ESM-uncomment-end assert.ok(typeof mod.HttpProxyAgent === 'function', testErrorMessage('http-proxy-agent')); }); test('https-proxy-agent', async () => { - // ESM-comment-begin - // const mod = await import('https-proxy-agent'); - // ESM-comment-end - // ESM-uncomment-begin const { default: mod } = await import('https-proxy-agent'); - // ESM-uncomment-end assert.ok(typeof mod.HttpsProxyAgent === 'function', testErrorMessage('https-proxy-agent')); }); diff --git a/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts b/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts index e342fb4d2e2..9af60c96ddc 100644 --- a/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts +++ b/src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { importAMDNodeModule } from '../../../amdX.js'; import { getErrorMessage } from '../../../base/common/errors.js'; import { TargetPlatform } from '../../extensions/common/extensions.js'; import { createDecorator } from '../../instantiation/common/instantiation.js'; @@ -67,15 +66,8 @@ export class ExtensionSignatureVerificationService implements IExtensionSignatur } private async resolveVsceSign(): Promise { - // ESM-uncomment-begin - if (typeof importAMDNodeModule === 'function') { /* fixes unused import, remove me */ } const mod = '@vscode/vsce-sign'; return import(mod); - // ESM-uncomment-end - - // ESM-comment-begin - // return importAMDNodeModule('@vscode/vsce-sign', 'src/main.js'); - // ESM-comment-end } public async verify(extensionId: string, version: string, vsixFilePath: string, signatureArchiveFilePath: string, clientTargetPlatform?: TargetPlatform): Promise { diff --git a/src/vs/platform/files/test/node/diskFileService.integrationTest.ts b/src/vs/platform/files/test/node/diskFileService.integrationTest.ts index 84f4a01c3af..38d1af9be8f 100644 --- a/src/vs/platform/files/test/node/diskFileService.integrationTest.ts +++ b/src/vs/platform/files/test/node/diskFileService.integrationTest.ts @@ -20,7 +20,6 @@ import { etag, IFileAtomicReadOptions, FileOperation, FileOperationError, FileOp import { FileService } from '../../common/fileService.js'; import { DiskFileSystemProvider } from '../../node/diskFileSystemProvider.js'; import { NullLogService } from '../../../log/common/log.js'; -import { isESM } from '../../../../base/common/amd.js'; function getByName(root: IFileStat, name: string): IFileStat | undefined { if (root.children === undefined) { @@ -132,7 +131,7 @@ export class TestDiskFileSystemProvider extends DiskFileSystemProvider { DiskFileSystemProvider.configureFlushOnWrite(false); // speed up all unit tests by disabling flush on write -(!isESM ? suite.skip : flakySuite /* somehow fails in AMD with ENOENT for fixtures dir */)('Disk File Service', function () { +flakySuite('Disk File Service', function () { const testSchema = 'test'; diff --git a/src/vs/platform/issue/electron-main/issueMainService.ts b/src/vs/platform/issue/electron-main/issueMainService.ts index 00a203c2d41..7d1c7d5e8ac 100644 --- a/src/vs/platform/issue/electron-main/issueMainService.ts +++ b/src/vs/platform/issue/electron-main/issueMainService.ts @@ -22,7 +22,6 @@ import { IIPCObjectUrl, IProtocolMainService } from '../../protocol/electron-mai import { zoomLevelToZoomFactor } from '../../window/common/window.js'; import { ICodeWindow, IWindowState } from '../../window/electron-main/window.js'; import { IWindowsMainService } from '../../windows/electron-main/windows.js'; -import { isESM } from '../../../base/common/amd.js'; import { ICSSDevelopmentService } from '../../cssDev/node/cssDevService.js'; interface IBrowserWindowOptions { @@ -93,7 +92,7 @@ export class IssueMainService implements IIssueMainService { }); this.issueReporterWindow.loadURL( - FileAccess.asBrowserUri(`vs/workbench/contrib/issue/electron-sandbox/issueReporter${this.environmentMainService.isBuilt ? '' : '-dev'}.${isESM ? 'esm.' : ''}html`).toString(true) + FileAccess.asBrowserUri(`vs/workbench/contrib/issue/electron-sandbox/issueReporter${this.environmentMainService.isBuilt ? '' : '-dev'}.html`).toString(true) ); this.issueReporterWindow.on('close', () => { diff --git a/src/vs/platform/issue/electron-main/processMainService.ts b/src/vs/platform/issue/electron-main/processMainService.ts index dd2a275ee10..2dec13f76e3 100644 --- a/src/vs/platform/issue/electron-main/processMainService.ts +++ b/src/vs/platform/issue/electron-main/processMainService.ts @@ -26,7 +26,6 @@ import { IStateService } from '../../state/node/state.js'; import { UtilityProcess } from '../../utilityProcess/electron-main/utilityProcess.js'; import { zoomLevelToZoomFactor } from '../../window/common/window.js'; import { IWindowState } from '../../window/electron-main/window.js'; -import { isESM } from '../../../base/common/amd.js'; const processExplorerWindowState = 'issue.processExplorerWindowState'; @@ -165,7 +164,7 @@ export class ProcessMainService implements IProcessMainService { }); this.processExplorerWindow.loadURL( - FileAccess.asBrowserUri(`vs/code/electron-sandbox/processExplorer/processExplorer${this.environmentMainService.isBuilt ? '' : '-dev'}.${isESM ? 'esm.' : ''}html`).toString(true) + FileAccess.asBrowserUri(`vs/code/electron-sandbox/processExplorer/processExplorer${this.environmentMainService.isBuilt ? '' : '-dev'}.html`).toString(true) ); this.processExplorerWindow.on('close', () => { diff --git a/src/vs/platform/protocol/electron-main/protocolMainService.ts b/src/vs/platform/protocol/electron-main/protocolMainService.ts index 840b936d376..5f666fe4f73 100644 --- a/src/vs/platform/protocol/electron-main/protocolMainService.ts +++ b/src/vs/platform/protocol/electron-main/protocolMainService.ts @@ -97,7 +97,7 @@ export class ProtocolMainService extends Disposable implements IProtocolMainServ let headers: Record | undefined; if (this.environmentService.crossOriginIsolated) { const pathBasename = basename(path); - if (pathBasename === 'workbench.html' || pathBasename === 'workbench-dev.html' || pathBasename === 'workbench.esm.html' || pathBasename === 'workbench-dev.esm.html') { + if (pathBasename === 'workbench.html' || pathBasename === 'workbench-dev.html') { headers = COI.CoopAndCoep; } else { headers = COI.getHeadersFromQuery(request.url); diff --git a/src/vs/platform/request/node/proxy.ts b/src/vs/platform/request/node/proxy.ts index 5f1d40109a2..a87fb31a938 100644 --- a/src/vs/platform/request/node/proxy.ts +++ b/src/vs/platform/request/node/proxy.ts @@ -45,20 +45,10 @@ export async function getProxyAgent(rawRequestURL: string, env: typeof process.e }; if (requestURL.protocol === 'http:') { - // ESM-comment-begin - // const mod = await import('http-proxy-agent'); - // ESM-comment-end - // ESM-uncomment-begin const { default: mod } = await import('http-proxy-agent'); - // ESM-uncomment-end return new mod.HttpProxyAgent(proxyURL, opts); } else { - // ESM-comment-begin - // const mod = await import('https-proxy-agent'); - // ESM-comment-end - // ESM-uncomment-begin const { default: mod } = await import('https-proxy-agent'); - // ESM-uncomment-end return new mod.HttpsProxyAgent(proxyURL, opts); } } diff --git a/src/vs/platform/sign/browser/signService.ts b/src/vs/platform/sign/browser/signService.ts index f2621541987..ec1e11bdd94 100644 --- a/src/vs/platform/sign/browser/signService.ts +++ b/src/vs/platform/sign/browser/signService.ts @@ -6,9 +6,7 @@ import { importAMDNodeModule, resolveAmdNodeModulePath } from '../../../amdX.js'; import { WindowIntervalTimer } from '../../../base/browser/dom.js'; import { mainWindow } from '../../../base/browser/window.js'; -import { isESM } from '../../../base/common/amd.js'; import { memoize } from '../../../base/common/decorators.js'; -import { FileAccess } from '../../../base/common/network.js'; import { IProductService } from '../../product/common/productService.js'; import { AbstractSignService, IVsdaValidator } from '../common/abstractSignService.js'; import { ISignService } from '../common/sign.js'; @@ -88,9 +86,7 @@ export class SignService extends AbstractSignService implements ISignService { } private async getWasmBytes(): Promise { - const url = isESM - ? resolveAmdNodeModulePath('vsda', 'rust/web/vsda_bg.wasm') - : FileAccess.asBrowserUri('vsda/../vsda_bg.wasm').toString(true); + const url = resolveAmdNodeModulePath('vsda', 'rust/web/vsda_bg.wasm'); const response = await fetch(url); if (!response.ok) { throw new Error('error loading vsda'); diff --git a/src/vs/platform/sign/node/signService.ts b/src/vs/platform/sign/node/signService.ts index a89a45edcb3..654ac856a20 100644 --- a/src/vs/platform/sign/node/signService.ts +++ b/src/vs/platform/sign/node/signService.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { importAMDNodeModule } from '../../../amdX.js'; import { AbstractSignService, IVsdaValidator } from '../common/abstractSignService.js'; import { ISignService } from '../common/sign.js'; @@ -30,15 +29,8 @@ export class SignService extends AbstractSignService implements ISignService { } private async vsda(): Promise { - // ESM-uncomment-begin - if (typeof importAMDNodeModule === 'function') { /* fixes unused import, remove me */ } const mod = 'vsda'; const { default: vsda } = await import(mod); return vsda; - // ESM-uncomment-end - - // ESM-comment-begin - // return importAMDNodeModule('vsda', 'index.js'); - // ESM-comment-end } } diff --git a/src/vs/platform/telemetry/common/1dsAppender.ts b/src/vs/platform/telemetry/common/1dsAppender.ts index bddf9da2530..7efb786c763 100644 --- a/src/vs/platform/telemetry/common/1dsAppender.ts +++ b/src/vs/platform/telemetry/common/1dsAppender.ts @@ -23,17 +23,10 @@ const endpointUrl = 'https://mobile.events.data.microsoft.com/OneCollector/1.0'; const endpointHealthUrl = 'https://mobile.events.data.microsoft.com/ping'; async function getClient(instrumentationKey: string, addInternalFlag?: boolean, xhrOverride?: IXHROverride): Promise { - // ESM-comment-begin - // if (isWeb) { /* fix the import warning */ } - // const oneDs = await importAMDNodeModule('@microsoft/1ds-core-js', 'dist/ms.core.js'); - // const postPlugin = await importAMDNodeModule('@microsoft/1ds-post-js', 'dist/ms.post.js'); - // ESM-comment-end - // ESM-uncomment-begin // eslint-disable-next-line local/code-amd-node-module const oneDs = isWeb ? await importAMDNodeModule('@microsoft/1ds-core-js', 'bundle/ms.core.min.js') : await import('@microsoft/1ds-core-js'); // eslint-disable-next-line local/code-amd-node-module const postPlugin = isWeb ? await importAMDNodeModule('@microsoft/1ds-post-js', 'bundle/ms.post.min.js') : await import('@microsoft/1ds-post-js'); - // ESM-uncomment-end const appInsightsCore = new oneDs.AppInsightsCore(); const collectorChannelPlugin: PostChannel = new postPlugin.PostChannel(); diff --git a/src/vs/platform/terminal/node/ptyService.ts b/src/vs/platform/terminal/node/ptyService.ts index 53dcb687104..78b55d83c79 100644 --- a/src/vs/platform/terminal/node/ptyService.ts +++ b/src/vs/platform/terminal/node/ptyService.ts @@ -31,14 +31,9 @@ import { IProductService } from '../../product/common/productService.js'; import { join } from 'path'; import { memoize } from '../../../base/common/decorators.js'; import * as performance from '../../../base/common/performance.js'; -// ESM-comment-begin -// import { Terminal as XtermTerminal } from '@xterm/headless'; -// ESM-comment-end -// ESM-uncomment-begin import pkg from '@xterm/headless'; type XtermTerminal = pkg.Terminal; const { Terminal: XtermTerminal } = pkg; -// ESM-uncomment-end export function traceRpc(_target: any, key: string, descriptor: any) { if (typeof descriptor.value !== 'function') { diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts index ae108b99c3c..f0540656eed 100644 --- a/src/vs/platform/windows/electron-main/windowImpl.ts +++ b/src/vs/platform/windows/electron-main/windowImpl.ts @@ -43,7 +43,6 @@ import { IStateService } from '../../state/node/state.js'; import { IUserDataProfilesMainService } from '../../userDataProfile/electron-main/userDataProfile.js'; import { ILoggerMainService } from '../../log/electron-main/loggerService.js'; import { IInstantiationService } from '../../instantiation/common/instantiation.js'; -import { isESM } from '../../../base/common/amd.js'; export interface IWindowCreationOptions { readonly state: IWindowState; @@ -1036,7 +1035,7 @@ export class CodeWindow extends BaseWindow implements ICodeWindow { this.readyState = ReadyState.NAVIGATING; // Load URL - this._win.loadURL(FileAccess.asBrowserUri(`vs/code/electron-sandbox/workbench/workbench${this.environmentMainService.isBuilt ? '' : '-dev'}.${isESM ? 'esm.' : ''}html`).toString(true)); + this._win.loadURL(FileAccess.asBrowserUri(`vs/code/electron-sandbox/workbench/workbench${this.environmentMainService.isBuilt ? '' : '-dev'}.html`).toString(true)); // Remember that we did load const wasLoaded = this.wasLoaded; diff --git a/src/vs/server/node/remoteExtensionHostAgentServer.ts b/src/vs/server/node/remoteExtensionHostAgentServer.ts index c77fbfd3736..bbdc00dca07 100644 --- a/src/vs/server/node/remoteExtensionHostAgentServer.ts +++ b/src/vs/server/node/remoteExtensionHostAgentServer.ts @@ -9,7 +9,7 @@ import * as http from 'http'; import * as net from 'net'; import { performance } from 'perf_hooks'; import * as url from 'url'; -import { LoaderStats, isESM } from '../../base/common/amd.js'; +import { LoaderStats } from '../../base/common/amd.js'; import { VSBuffer } from '../../base/common/buffer.js'; import { CharCode } from '../../base/common/charCode.js'; import { isSigPipeError, onUnexpectedError, setUnexpectedErrorHandler } from '../../base/common/errors.js'; @@ -40,10 +40,8 @@ import { determineServerConnectionToken, requestHasValidConnectionToken as httpR import { IServerEnvironmentService, ServerParsedArgs } from './serverEnvironmentService.js'; import { setupServerServices, SocketServer } from './serverServices.js'; import { CacheControl, serveError, serveFile, WebClientServer } from './webClientServer.js'; -// ESM-uncomment-begin import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); -// ESM-uncomment-end const SHUTDOWN_TIMEOUT = 5 * 60 * 1000; @@ -785,7 +783,7 @@ export async function createServer(address: string | net.AddressInfo | null, arg serverBasePath = `/${serverBasePath}`; } - const hasWebClient = fs.existsSync(FileAccess.asFileUri(`vs/code/browser/workbench/workbench.${isESM ? 'esm.' : ''}html`).fsPath); + const hasWebClient = fs.existsSync(FileAccess.asFileUri(`vs/code/browser/workbench/workbench.html`).fsPath); if (hasWebClient && address && typeof address !== 'string') { // ships the web ui! diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 6ef3eac5f02..7c6430e2380 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -28,7 +28,6 @@ import { IProductConfiguration } from '../../base/common/product.js'; import { isString } from '../../base/common/types.js'; import { CharCode } from '../../base/common/charCode.js'; import { IExtensionManifest } from '../../platform/extensions/common/extensions.js'; -import { isESM } from '../../base/common/amd.js'; import { ICSSDevelopmentService } from '../../platform/cssDev/node/cssDevService.js'; const textMimeType: { [ext: string]: string | undefined } = { @@ -300,7 +299,7 @@ export class WebClientServer { const resolveWorkspaceURI = (defaultLocation?: string) => defaultLocation && URI.file(path.resolve(defaultLocation)).with({ scheme: Schemas.vscodeRemote, authority: remoteAuthority }); - const filePath = FileAccess.asFileUri(`vs/code/browser/workbench/workbench${this._environmentService.isBuilt ? '' : '-dev'}.${isESM ? 'esm.' : ''}html`).fsPath; + const filePath = FileAccess.asFileUri(`vs/code/browser/workbench/workbench${this._environmentService.isBuilt ? '' : '-dev'}.html`).fsPath; const authSessionInfo = !this._environmentService.isBuilt && this._environmentService.args['github-auth'] ? { id: generateUuid(), providerId: 'github', @@ -387,15 +386,13 @@ export class WebClientServer { return void res.end('Not found'); } - const webWorkerExtensionHostIframeScriptSHA = isESM ? 'sha256-2Q+j4hfT09+1+imS46J2YlkCtHWQt0/BE79PXjJ0ZJ8=' : 'sha256-V28GQnL3aYxbwgpV3yW1oJ+VKKe/PBSzWntNyH8zVXA='; + const webWorkerExtensionHostIframeScriptSHA = 'sha256-2Q+j4hfT09+1+imS46J2YlkCtHWQt0/BE79PXjJ0ZJ8='; const cspDirectives = [ 'default-src \'self\';', 'img-src \'self\' https: data: blob:;', 'media-src \'self\';', - isESM ? - `script-src 'self' 'unsafe-eval' ${WORKBENCH_NLS_BASE_URL ?? ''} blob: 'nonce-1nline-m4p' ${this._getScriptCspHashes(data).join(' ')} '${webWorkerExtensionHostIframeScriptSHA}' 'sha256-/r7rqQ+yrxt57sxLuQ6AMYcy/lUpvAIzHjIJt/OeLWU=' ${useTestResolver ? '' : `http://${remoteAuthority}`};` : // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html - `script-src 'self' 'unsafe-eval' ${WORKBENCH_NLS_BASE_URL ?? ''} ${this._getScriptCspHashes(data).join(' ')} '${webWorkerExtensionHostIframeScriptSHA}' ${useTestResolver ? '' : `http://${remoteAuthority}`};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html + `script-src 'self' 'unsafe-eval' ${WORKBENCH_NLS_BASE_URL ?? ''} blob: 'nonce-1nline-m4p' ${this._getScriptCspHashes(data).join(' ')} '${webWorkerExtensionHostIframeScriptSHA}' 'sha256-/r7rqQ+yrxt57sxLuQ6AMYcy/lUpvAIzHjIJt/OeLWU=' ${useTestResolver ? '' : `http://${remoteAuthority}`};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html 'child-src \'self\';', `frame-src 'self' https://*.vscode-cdn.net data:;`, 'worker-src \'self\' data: blob:;', diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 51e767f1fdc..beac38c8ec2 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -18,10 +18,8 @@ import { CLIServer } from './extHostCLIServer.js'; import { realpathSync } from '../../../base/node/extpath.js'; import { ExtHostConsoleForwarder } from './extHostConsoleForwarder.js'; import { ExtHostDiskFileSystemProvider } from './extHostDiskFileSystemProvider.js'; -// ESM-uncomment-begin import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); -// ESM-uncomment-end class NodeModuleRequireInterceptor extends RequireInterceptor { @@ -46,7 +44,6 @@ class NodeModuleRequireInterceptor extends RequireInterceptor { return originalLookup.call(this, applyAlternatives(request), parent); }; - // ESM-uncomment-begin const originalResolveFilename = node_module._resolveFilename; node_module._resolveFilename = function resolveFilename(request: string, parent: unknown, isMain: boolean, options?: { paths?: string[] }) { if (request === 'vsda' && Array.isArray(options?.paths) && options.paths.length === 0) { @@ -58,7 +55,6 @@ class NodeModuleRequireInterceptor extends RequireInterceptor { } return originalResolveFilename.call(this, request, parent, isMain, options); }; - // ESM-uncomment-end const applyAlternatives = (request: string) => { for (const alternativeModuleName of that._alternatives) { diff --git a/src/vs/workbench/api/node/extensionHostProcess.ts b/src/vs/workbench/api/node/extensionHostProcess.ts index 694559385c4..feaece95534 100644 --- a/src/vs/workbench/api/node/extensionHostProcess.ts +++ b/src/vs/workbench/api/node/extensionHostProcess.ts @@ -28,10 +28,8 @@ import { ExtensionHostExitCode, IExtHostReadyMessage, IExtHostReduceGraceTimeMes import { IDisposable } from '../../../base/common/lifecycle.js'; import '../common/extHost.common.services.js'; import './extHost.node.services.js'; -// ESM-uncomment-begin import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); -// ESM-uncomment-end interface ParsedExtHostArgs { transformURIs?: boolean; diff --git a/src/vs/workbench/api/node/proxyResolver.ts b/src/vs/workbench/api/node/proxyResolver.ts index 3f6253c78ec..9b10abbc116 100644 --- a/src/vs/workbench/api/node/proxyResolver.ts +++ b/src/vs/workbench/api/node/proxyResolver.ts @@ -3,13 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -// ESM-comment-begin -// import * as http from 'http'; -// import * as https from 'https'; -// import * as tls from 'tls'; -// import * as net from 'net'; -// ESM-comment-end - import { IExtHostWorkspaceProvider } from '../common/extHostWorkspace.js'; import { ExtHostConfigProvider } from '../common/extHostConfiguration.js'; import { MainThreadTelemetryShape } from '../common/extHost.protocol.js'; @@ -21,15 +14,12 @@ import { IExtensionDescription } from '../../../platform/extensions/common/exten import { LogLevel, createHttpPatch, createProxyResolver, createTlsPatch, ProxySupportSetting, ProxyAgentParams, createNetPatch, loadSystemCertificates } from '@vscode/proxy-agent'; import { AuthInfo } from '../../../platform/request/common/request.js'; import { DisposableStore } from '../../../base/common/lifecycle.js'; - -// ESM-uncomment-begin import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); const http = require('http'); const https = require('https'); const tls = require('tls'); const net = require('net'); -// ESM-uncomment-end const systemCertificatesV2Default = false; const useElectronFetchDefault = false; diff --git a/src/vs/workbench/browser/workbench.ts b/src/vs/workbench/browser/workbench.ts index f081430e49f..b40c9fa73a9 100644 --- a/src/vs/workbench/browser/workbench.ts +++ b/src/vs/workbench/browser/workbench.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import './style.js'; -import { localize } from '../../nls.js'; import { runWhenWindowIdle } from '../../base/browser/dom.js'; import { Event, Emitter, setGlobalLeakWarningThreshold } from '../../base/common/event.js'; import { RunOnceScheduler, timeout } from '../../base/common/async.js'; @@ -50,7 +49,6 @@ import { AccessibilityProgressSignalScheduler } from '../../platform/accessibili import { setProgressAcccessibilitySignalScheduler } from '../../base/browser/ui/progressbar/progressAccessibilitySignal.js'; import { AccessibleViewRegistry } from '../../platform/accessibility/browser/accessibleViewRegistry.js'; import { NotificationAccessibleView } from './parts/notifications/notificationAccessibleView.js'; -import { isESM } from '../../base/common/amd.js'; export interface IWorkbenchOptions { @@ -98,31 +96,6 @@ export class Workbench extends Layout { // Install handler for unexpected errors setUnexpectedErrorHandler(error => this.handleUnexpectedError(error, logService)); - - // Inform user about loading issues from the loader - if (!isESM && typeof mainWindow.require?.config === 'function') { - interface AnnotatedLoadingError extends Error { - phase: 'loading'; - moduleId: string; - neededBy: string[]; - } - interface AnnotatedFactoryError extends Error { - phase: 'factory'; - moduleId: string; - } - interface AnnotatedValidationError extends Error { - phase: 'configuration'; - } - type AnnotatedError = AnnotatedLoadingError | AnnotatedFactoryError | AnnotatedValidationError; - mainWindow.require.config({ - onError: (err: AnnotatedError) => { - if (err.phase === 'loading') { - onUnexpectedError(new Error(localize('loaderErrorNative', "Failed to load a required file. Please restart the application to try again. Details: {0}", JSON.stringify(err)))); - } - console.error(err); - } - }); - } } private previousUnexpectedError: { message: string | undefined; time: number } = { message: undefined, time: 0 }; diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.esm.html b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.esm.html deleted file mode 100644 index f14661a283c..00000000000 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.esm.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.html b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.html index 9d853e358a0..f14661a283c 100644 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.html +++ b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter-dev.html @@ -15,6 +15,8 @@ ; script-src 'self' + blob: + 'nonce-0c6a828f1297' ; style-src 'self' @@ -39,7 +41,6 @@ - diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.esm.html b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.esm.html deleted file mode 100644 index 2f87d2489ce..00000000000 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.esm.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.html b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.html index 8d0bcc6c87c..2f87d2489ce 100644 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.html +++ b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporter.html @@ -15,6 +15,8 @@ ; script-src 'self' + blob: + 'nonce-0c6a828f1297' ; style-src 'self' @@ -39,5 +41,5 @@ - + diff --git a/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts b/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts index 951dd65141b..893ee8fd499 100644 --- a/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts +++ b/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts @@ -17,7 +17,7 @@ import { IExtensionService } from '../../../services/extensions/common/extension import { IDisposable, dispose } from '../../../../base/common/lifecycle.js'; import { ICodeEditorService } from '../../../../editor/browser/services/codeEditorService.js'; import { writeTransientState } from '../../codeEditor/browser/toggleWordWrap.js'; -import { LoaderEventType, LoaderStats, isESM } from '../../../../base/common/amd.js'; +import { LoaderStats } from '../../../../base/common/amd.js'; import { IProductService } from '../../../../platform/product/common/productService.js'; import { ITextFileService } from '../../../services/textfile/common/textfiles.js'; import { IEditorService } from '../../../services/editor/common/editorService.js'; @@ -156,12 +156,6 @@ class PerfModelContentProvider implements ITextModelContentProvider { this._addWorkbenchContributionsPerfMarksTable(md); md.blank(); this._addRawPerfMarks(md); - if (!isESM) { - md.blank(); - this._addLoaderStats(md, stats); - md.blank(); - this._addCachedDataStats(md); - } md.blank(); this._addResourceTimingStats(md); @@ -310,58 +304,6 @@ class PerfModelContentProvider implements ITextModelContentProvider { } } - private _addLoaderStats(md: MarkdownBuilder, stats: LoaderStats): void { - md.heading(2, 'Loader Stats'); - md.heading(3, 'Load AMD-module'); - md.table(['Module', 'Duration'], stats.amdLoad); - md.blank(); - md.heading(3, 'Load commonjs-module'); - md.table(['Module', 'Duration'], stats.nodeRequire); - md.blank(); - md.heading(3, 'Invoke AMD-module factory'); - md.table(['Module', 'Duration'], stats.amdInvoke); - md.blank(); - md.heading(3, 'Invoke commonjs-module'); - md.table(['Module', 'Duration'], stats.nodeEval); - } - - private _addCachedDataStats(md: MarkdownBuilder): void { - - const map = new Map(); - map.set(LoaderEventType.CachedDataCreated, []); - map.set(LoaderEventType.CachedDataFound, []); - map.set(LoaderEventType.CachedDataMissed, []); - map.set(LoaderEventType.CachedDataRejected, []); - if (!isESM && typeof require.getStats === 'function') { - for (const stat of require.getStats()) { - if (map.has(stat.type)) { - map.get(stat.type)!.push(stat.detail); - } - } - } - - const printLists = (arr?: string[]) => { - if (arr) { - arr.sort(); - for (const e of arr) { - md.li(`${e}`); - } - md.blank(); - } - }; - - md.heading(2, 'Node Cached Data Stats'); - md.blank(); - md.heading(3, 'cached data used'); - printLists(map.get(LoaderEventType.CachedDataFound)); - md.heading(3, 'cached data missed'); - printLists(map.get(LoaderEventType.CachedDataMissed)); - md.heading(3, 'cached data rejected'); - printLists(map.get(LoaderEventType.CachedDataRejected)); - md.heading(3, 'cached data created (lazy, might need refreshes)'); - printLists(map.get(LoaderEventType.CachedDataCreated)); - } - private _addResourceTimingStats(md: MarkdownBuilder) { const stats = performance.getEntriesByType('resource').map(entry => { return [entry.name, entry.duration]; diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.ts index a2e56672926..53e8a273940 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.ts @@ -225,14 +225,7 @@ export class GettingStartedDetailsRenderer { const contents = await new Promise((resolve, reject) => { const provider = gettingStartedContentRegistry.getProvider(moduleId); if (!provider) { - // ESM-comment-begin - // require([moduleId], content => { - // resolve(content.default()); - // }); - // ESM-comment-end - // ESM-uncomment-begin reject(`Getting started: no provider registered for ${moduleId}`); - // ESM-uncomment-end } else { resolve(provider()); } diff --git a/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts b/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts index 77f67a3b451..b7ed7fdb242 100644 --- a/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts +++ b/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts @@ -46,20 +46,7 @@ export async function moduleToContent(instantiationService: IInstantiationServic const provider = walkThroughContentRegistry.getProvider(query.moduleId); if (!provider) { - // ESM-comment-begin - // return new Promise((resolve, reject) => { - // require([query.moduleId], content => { - // try { - // resolve(instantiationService.invokeFunction(content.default)); - // } catch (err) { - // reject(err); - // } - // }); - // }); - // ESM-comment-end - // ESM-uncomment-begin throw new Error(`Walkthrough: no provider registered for ${query.moduleId}`); - // ESM-uncomment-end } return instantiationService.invokeFunction(provider); diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts index b48e9c72375..5e7c05ca455 100644 --- a/src/vs/workbench/electron-sandbox/window.ts +++ b/src/vs/workbench/electron-sandbox/window.ts @@ -31,7 +31,7 @@ import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '.. import { LifecyclePhase, ILifecycleService, WillShutdownEvent, ShutdownReason, BeforeShutdownErrorEvent, BeforeShutdownEvent } from '../services/lifecycle/common/lifecycle.js'; import { IWorkspaceFolderCreationData } from '../../platform/workspaces/common/workspaces.js'; import { IIntegrityService } from '../services/integrity/common/integrity.js'; -import { isWindows, isMacintosh, isCI } from '../../base/common/platform.js'; +import { isWindows, isMacintosh } from '../../base/common/platform.js'; import { IProductService } from '../../platform/product/common/productService.js'; import { INotificationService, NeverShowAgainScope, NotificationPriority, Severity } from '../../platform/notification/common/notification.js'; import { IKeybindingService } from '../../platform/keybinding/common/keybinding.js'; @@ -80,7 +80,6 @@ import { ThemeIcon } from '../../base/common/themables.js'; import { getWorkbenchContribution } from '../common/contributions.js'; import { DynamicWorkbenchSecurityConfiguration } from '../common/configuration.js'; import { nativeHoverDelegate } from '../../platform/hover/browser/hover.js'; -import { isESM } from '../../base/common/amd.js'; export class NativeWindow extends BaseWindow { @@ -708,17 +707,6 @@ export class NativeWindow extends BaseWindow { private async handleWarnings(): Promise { - // Check for cyclic dependencies - if (!isESM && typeof require.hasDependencyCycle === 'function' && require.hasDependencyCycle()) { - if (isCI) { - this.logService.error('Error: There is a dependency cycle in the AMD modules that needs to be resolved!'); - this.nativeHostService.exit(37); // running on a build machine, just exit without showing a dialog - } else { - this.dialogService.error(localize('loaderCycle', "There is a dependency cycle in the AMD modules that needs to be resolved!")); - this.nativeHostService.openDevTools(); - } - } - // After restored phase is fine for the following ones await this.lifecycleService.when(LifecyclePhase.Restored); diff --git a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts index cecd70c21af..7776811b727 100644 --- a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts +++ b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts @@ -6,7 +6,6 @@ import * as dom from '../../../../base/browser/dom.js'; import { parentOriginHash } from '../../../../base/browser/iframe.js'; import { mainWindow } from '../../../../base/browser/window.js'; -import { isESM } from '../../../../base/common/amd.js'; import { Barrier } from '../../../../base/common/async.js'; import { VSBuffer } from '../../../../base/common/buffer.js'; import { canceled, onUnexpectedError } from '../../../../base/common/errors.js'; @@ -87,7 +86,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost const suffix = `?${suffixSearchParams.toString()}`; - const iframeModulePath: AppResourcePath = `vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.${isESM ? 'esm.' : ''}html`; + const iframeModulePath: AppResourcePath = `vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html`; if (platform.isWeb) { const webEndpointUrlTemplate = this._productService.webEndpointUrlTemplate; const commit = this._productService.commit; @@ -184,13 +183,10 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost return rejectBarrier(ExtensionHostExitCode.UnexpectedError, err); } if (event.data.type === 'vscode.bootstrap.nls') { - const factoryModuleId = 'vs/base/worker/workerMain.js'; - const baseUrl = isESM ? undefined : require.toUrl(factoryModuleId).slice(0, -factoryModuleId.length); iframe.contentWindow!.postMessage({ type: event.data.type, data: { - baseUrl, - workerUrl: isESM ? FileAccess.asBrowserUri('vs/workbench/api/worker/extensionHostWorker.esm.js').toString(true) : require.toUrl(factoryModuleId), + workerUrl: FileAccess.asBrowserUri('vs/workbench/api/worker/extensionHostWorker.esm.js').toString(true), fileRoot: globalThis._VSCODE_FILE_ROOT, nls: { messages: getNLSMessages(), diff --git a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html b/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html deleted file mode 100644 index 53bc54bb5aa..00000000000 --- a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.esm.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - diff --git a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html b/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html index a4914c64432..21fa5056564 100644 --- a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html +++ b/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html @@ -4,7 +4,7 @@ @@ -12,7 +12,7 @@ (function () { const searchParams = new URL(document.location.href).searchParams; const vscodeWebWorkerExtHostId = searchParams.get('vscodeWebWorkerExtHostId') || ''; - const name = searchParams.get('debugged') ? 'DebugWorkerExtensionHost' : 'WorkerExtensionHost'; + const name = searchParams.get('debugged') ? 'DebugExtensionHostWorker' : 'ExtensionHostWorker'; const parentOrigin = searchParams.get('parentOrigin') || window.origin; const salt = searchParams.get('salt'); @@ -93,29 +93,21 @@ workerUrl += '?vscode-coi=2'; // COEP } - // ESM-comment-begin - // const isESM = false; - // ESM-comment-end - // ESM-uncomment-begin - const isESM = true; - // ESM-uncomment-end + // In below blob code, we are using JSON.stringify to ensure the passed + // in values are not breaking our script. The values may contain string + // terminating characters (such as ' or "). const blob = new Blob([[ `/*extensionHostWorker*/`, - `globalThis.MonacoEnvironment = { baseUrl: '${baseUrl}' };`, + `globalThis.MonacoEnvironment = { baseUrl: ${JSON.stringify(baseUrl)} };`, `globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(nlsMessages)};`, `globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(nlsLanguage)};`, - `globalThis._VSCODE_FILE_ROOT = '${fileRoot}';`, - isESM ? `await import('${workerUrl}');` : `importScripts('${workerUrl}');`, - isESM ? `globalThis.onmessage({ data: 'vs/workbench/api/worker/extensionHostWorker' });` : undefined, // important to start loading after the ESM async import has finished + `globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(fileRoot)};`, + `await import(${JSON.stringify(workerUrl)});`, `/*extensionHostWorker*/` ].join('')], { type: 'application/javascript' }); - const worker = new Worker(URL.createObjectURL(blob), { name, type: isESM ? 'module' : undefined }); - if (!isESM) { - // Note: cannot postMessage into a worker that is ESM because imports are async - worker.postMessage('vs/workbench/api/worker/extensionHostWorker'); - } + const worker = new Worker(URL.createObjectURL(blob), { name, type: 'module' }); const nestedWorkers = new Map(); worker.onmessage = (event) => { diff --git a/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts b/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts index 28f6ea57c03..8807b7ef370 100644 --- a/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts +++ b/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts @@ -5,7 +5,6 @@ import * as nls from '../../../../nls.js'; import { Emitter, Event } from '../../../../base/common/event.js'; -import { isESM } from '../../../../base/common/amd.js'; import { AppResourcePath, FileAccess } from '../../../../base/common/network.js'; import { Disposable } from '../../../../base/common/lifecycle.js'; import { KeymapInfo, IRawMixedKeyboardMapping, IKeymapInfo } from '../common/keymapInfo.js'; @@ -457,10 +456,7 @@ export class BrowserKeyboardMapperFactory extends BrowserKeyboardMapperFactoryBa const platform = isWindows ? 'win' : isMacintosh ? 'darwin' : 'linux'; - import(isESM ? - FileAccess.asBrowserUri(`vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.${platform}.js` satisfies AppResourcePath).path : - `vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.${platform}` - ).then((m) => { + import(FileAccess.asBrowserUri(`vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.${platform}.js` satisfies AppResourcePath).path).then((m) => { const keymapInfos: IKeymapInfo[] = m.KeyboardLayoutContribution.INSTANCE.layoutInfos; this._keymapInfos.push(...keymapInfos.map(info => (new KeymapInfo(info.layout, info.secondaryLayouts, info.mapping, info.isUserKeyboardLayout)))); this._mru = this._keymapInfos; diff --git a/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts b/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts index f22a15bb599..83b0b5f6b2d 100644 --- a/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts +++ b/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { importAMDNodeModule, resolveAmdNodeModulePath } from '../../../../amdX.js'; -import { canASAR, isESM } from '../../../../base/common/amd.js'; +import { canASAR } from '../../../../base/common/amd.js'; import * as dom from '../../../../base/browser/dom.js'; import { equals as equalArray } from '../../../../base/common/arrays.js'; import { Color } from '../../../../base/common/color.js'; @@ -372,9 +372,7 @@ export class TextMateTokenizationFeature extends Disposable implements ITextMate private async _loadVSCodeOnigurumaWASM(): Promise { if (isWeb) { - const response = await fetch(isESM - ? resolveAmdNodeModulePath('vscode-oniguruma', 'release/onig.wasm') - : FileAccess.asBrowserUri('vscode-oniguruma/../onig.wasm').toString(true)); + const response = await fetch(resolveAmdNodeModulePath('vscode-oniguruma', 'release/onig.wasm')); // Using the response directly only works if the server sets the MIME type 'application/wasm'. // Otherwise, a TypeError is thrown when using the streaming compiler. // We therefore use the non-streaming compiler :(. diff --git a/src/vs/workbench/services/textfile/common/encoding.ts b/src/vs/workbench/services/textfile/common/encoding.ts index c6933952e65..56a122772e7 100644 --- a/src/vs/workbench/services/textfile/common/encoding.ts +++ b/src/vs/workbench/services/textfile/common/encoding.ts @@ -8,7 +8,6 @@ import { VSBuffer, VSBufferReadable, VSBufferReadableStream } from '../../../../ import { importAMDNodeModule } from '../../../../amdX.js'; import { CancellationTokenSource } from '../../../../base/common/cancellation.js'; import { coalesce } from '../../../../base/common/arrays.js'; -import { isESM } from '../../../../base/common/amd.js'; export const UTF8 = 'utf8'; export const UTF8_with_bom = 'utf8bom'; @@ -325,7 +324,7 @@ async function guessEncodingByBuffer(buffer: VSBuffer, candidateGuessEncodings?: // TODO@bpasero TODO@esm: this used to be `dist/jschardet.min.js`, but we are running into an issue that // https://github.com/aadsm/jschardet/pull/96 mitigates. Long-term we should just add minification // of dependencies into our build process so that we do not depend on how others are doing it. - const jschardet = await importAMDNodeModule('jschardet', isESM ? 'dist/jschardet.js' : 'dist/jschardet.min.js'); + const jschardet = await importAMDNodeModule('jschardet', 'dist/jschardet.js'); // ensure to limit buffer for guessing due to https://github.com/aadsm/jschardet/issues/53 const limitedBuffer = buffer.slice(0, AUTO_ENCODING_GUESS_MAX_BYTES);