Change:
This seems to be caused by following change which brought module and Webpack failed compiling this. Therefore I am reverting this commit.
The associated PR is

Discussion:
"scope": "resource", "markdownDescription": "%ipynb.pasteImagesAsAttachments.enabled%", "default": true <del> }, "ipynb.experimental.serialization": { "type": "boolean", "scope": "resource", "markdownDescription": "%ipynb.experimental.serialization%", "default": false </del> } } }

import * as vscode from 'vscode'; import { getPreferredLanguage, jupyterNotebookModelToNotebookData } from './deserializers'; import * as fnv from '@enonic/fnv-plus'; <del> import { DeferredPromise, generateUuid } from './helper'; </del> import { serializeNotebookToString } from './serializers'; export class NotebookSerializer extends vscode.Disposable implements vscode.NotebookSerializer { <del> private experimentalSave = vscode.workspace.getConfiguration('ipynb').get('experimental.serialization', false); </del> private disposed: boolean = false; private worker?: import('node:worker_threads').Worker; <del> private tasks = new Map<string, DeferredPromise<Uint8Array>>(); constructor(readonly context: vscode.ExtensionContext, private readonly isBrowser: boolean) { </del> <ins> constructor(readonly context: vscode.ExtensionContext, _isBrowser: boolean) { </ins> super(() => { }); <del> context.subscriptions.push(vscode.workspace.onDidChangeConfiguration(e => { if (e.affectsConfiguration('ipynb.experimental.serialization')) { this.experimentalSave = vscode.workspace.getConfiguration('ipynb').get('experimental.serialization', false); } })); </del> } override dispose() {

return new Uint8Array(0); } <del> if (this.experimentalSave && !this.isBrowser) { return this.serializeViaWorker(data); } </del> const serialized = serializeNotebookToString(data); return new TextEncoder().encode(serialized); } <del> private async startWorker() { if (this.disposed) { throw new Error('Serializer disposed'); } if (this.worker) { return this.worker; } const { Worker } = await import('node:worker_threads'); const outputDir = getOutputDir(this.context); this.worker = new Worker(vscode.Uri.joinPath(this.context.extensionUri, outputDir, 'notebookSerializerWorker.js').fsPath, {}); this.worker.on('exit', (exitCode) => { if (!this.disposed) { console.error(`IPynb Notebook Serializer Worker exited unexpectedly`, exitCode); } this.worker = undefined; }); this.worker.on('message', (result: { data: Uint8Array; id: string }) => { const task = this.tasks.get(result.id); if (task) { task.complete(result.data); this.tasks.delete(result.id); } }); this.worker.on('error', (err) => { if (!this.disposed) { console.error(`IPynb Notebook Serializer Worker errored unexpectedly`, err); } }); return this.worker; } private async serializeViaWorker(data: vscode.NotebookData): Promise<Uint8Array> { const worker = await this.startWorker(); const id = generateUuid(); const deferred = new DeferredPromise<Uint8Array>(); this.tasks.set(id, deferred); worker.postMessage({ data, id }); return deferred.p; } </del> } <del> function getOutputDir(context: vscode.ExtensionContext): string { const main = context.extension.packageJSON.main as string; return main.indexOf('/dist/') !== -1 ? 'dist' : 'out'; } </del>