From dc1f5e79957d3b79c15510ad7c90b4e4fdfba73e Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Thu, 3 Apr 2025 12:20:46 +0200 Subject: [PATCH 1/6] Update complete uri and model handling in EditorApp, fix onTextChanged handling in react component. - Enforce proper uri usage in tests - Allow model dispose in EditorApp to be asynchronous in tests --- package-lock.json | 3 +- .../test/fs/endpoints/emptyEndpoint.test.ts | 4 +- packages/examples/package.json | 1 - .../src/langium/statemachine/main-react.tsx | 29 +- .../examples/src/langium/statemachine/main.ts | 15 +- packages/examples/src/ts/wrapperTs.ts | 6 +- packages/wrapper-react/src/index.tsx | 4 +- packages/wrapper-react/test/helper.ts | 11 +- packages/wrapper-react/test/index.test.tsx | 48 ++- packages/wrapper/package.json | 1 + packages/wrapper/src/editorApp.ts | 307 +++++++++++------- packages/wrapper/src/wrapper.ts | 54 +-- .../wrapper/test/editorApp-classic.test.ts | 40 ++- packages/wrapper/test/editorApp.test.ts | 18 +- .../wrapper/test/support/helper-classic.ts | 18 +- packages/wrapper/test/support/helper.ts | 11 +- .../test/workers/workerLoaders.test.ts | 20 +- packages/wrapper/test/wrapper-classic.test.ts | 214 ++++++++---- packages/wrapper/test/wrapper.test.ts | 125 ++++--- vitest.config.classic.ts | 27 -- vitest.config.ts | 4 +- 21 files changed, 586 insertions(+), 374 deletions(-) delete mode 100644 vitest.config.classic.ts diff --git a/package-lock.json b/package-lock.json index e3432759..7dee93c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2078,6 +2078,7 @@ "version": "15.0.3", "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-15.0.3.tgz", "integrity": "sha512-FwPzWvXQbnXd3lk4f0C7LHoVWs1kZNU9QB061CH5BdE8sBnTXeTQzyy2JnOzsrHz+jrXBgspgTbia6vH+viT5A==", + "dev": true, "license": "MIT", "dependencies": { "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" @@ -10529,7 +10530,6 @@ "@codingame/monaco-vscode-search-service-override": "~15.0.3", "@codingame/monaco-vscode-secret-storage-service-override": "~15.0.3", "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-languages": "~15.0.3", "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3", "@codingame/monaco-vscode-storage-service-override": "~15.0.3", "@codingame/monaco-vscode-testing-service-override": "~15.0.3", @@ -10631,6 +10631,7 @@ "@codingame/monaco-vscode-standalone-css-language-features": "~15.0.3", "@codingame/monaco-vscode-standalone-html-language-features": "~15.0.3", "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", + "@codingame/monaco-vscode-standalone-languages": "~15.0.3", "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3" }, "engines": { diff --git a/packages/client/test/fs/endpoints/emptyEndpoint.test.ts b/packages/client/test/fs/endpoints/emptyEndpoint.test.ts index 0f86927f..b127dde5 100644 --- a/packages/client/test/fs/endpoints/emptyEndpoint.test.ts +++ b/packages/client/test/fs/endpoints/emptyEndpoint.test.ts @@ -21,7 +21,7 @@ describe('EmptyFileSystemEndpoint Tests', () => { test('writeFile', async () => { const result = await endpoint.writeFile({ resourceUri: '/tmp/test.js', - content: 'console.log("Hello World!");' + content: 'const text = "Hello World!";' }); expect(result).toEqual({ status: 'denied' @@ -31,7 +31,7 @@ describe('EmptyFileSystemEndpoint Tests', () => { test('syncFile', async () => { const result = await endpoint.syncFile({ resourceUri: '/tmp/test.js', - content: 'console.log("Hello World!");' + content: 'const text = "Hello World!";' }); expect(result).toEqual({ status: 'denied' diff --git a/packages/examples/package.json b/packages/examples/package.json index 96b5f1b5..b5f530e7 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -92,7 +92,6 @@ "@codingame/monaco-vscode-search-service-override": "~15.0.3", "@codingame/monaco-vscode-secret-storage-service-override": "~15.0.3", "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-languages": "~15.0.3", "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3", "@codingame/monaco-vscode-testing-service-override": "~15.0.3", "@codingame/monaco-vscode-storage-service-override": "~15.0.3", diff --git a/packages/examples/src/langium/statemachine/main-react.tsx b/packages/examples/src/langium/statemachine/main-react.tsx index 3bdc8312..921bf234 100644 --- a/packages/examples/src/langium/statemachine/main-react.tsx +++ b/packages/examples/src/langium/statemachine/main-react.tsx @@ -33,9 +33,6 @@ export const runStatemachineReact = async () => { }); const root = ReactDOM.createRoot(document.getElementById('react-root')!); - const onTextChanged = (textChanges: TextContents) => { - console.log(`text: ${textChanges.modified}\ntextOriginal: ${textChanges.original}`); - }; try { document.querySelector('#button-start')?.addEventListener('click', async () => { disableElement('button-start', true); @@ -44,23 +41,33 @@ export const runStatemachineReact = async () => { const App = () => { const [ height, setHeight ] = useState('80vh'); + const [testState, setTestState] = useState(''); + + const onTextChanged = (textChanges: TextContents) => { + console.log(`text: ${textChanges.modified}\ntextOriginal: ${textChanges.original}`); + setTestState(textChanges.modified as string); + }; useEffect(() => { const timer = setTimeout(() => { console.log('Updating styles'); - setHeight('85vh'); - }, 2000); + setHeight('50vh'); + }, 1000); return () => clearTimeout(timer); }, []); return ( -
- -
+ <> +
+ + Debug:
{testState} +
+ ); }; const strictMode = (document.getElementById('checkbox-strictmode')! as HTMLInputElement).checked; diff --git a/packages/examples/src/langium/statemachine/main.ts b/packages/examples/src/langium/statemachine/main.ts index e75e4047..359120b0 100644 --- a/packages/examples/src/langium/statemachine/main.ts +++ b/packages/examples/src/langium/statemachine/main.ts @@ -5,7 +5,7 @@ import * as vscode from 'vscode'; import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js'; -import { buildModelReference, MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper'; +import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper'; import { createLangiumGlobalConfig } from './config/wrapperStatemachineConfig.js'; import workerUrl from './worker/statemachine-server?worker&url'; import workerPortUrl from './worker/statemachine-server-port?worker&url'; @@ -57,12 +57,11 @@ const startEditor = async () => { }); await wrapper.initAndStart(langiumGlobalConfig); - // here the modelReference is created manually and given to the updateEditorModels of the wrapper - wrapper.updateEditorModels({ - modelRefModified: await buildModelReference({ + wrapper.updateCodeResources({ + modified: { text, uri: '/workspace/statemachine-mod.statemachine' - }) + } }); // start the second wrapper without any languageclient config @@ -84,11 +83,11 @@ const startEditor = async () => { await delayExecution(1000); - wrapper.updateEditorModels({ - modelRefModified: await buildModelReference({ + wrapper.updateCodeResources({ + modified: { text: `// modified file\n\n${text}`, uri: '/workspace/statemachine-mod2.statemachine' - }) + } }); }; diff --git a/packages/examples/src/ts/wrapperTs.ts b/packages/examples/src/ts/wrapperTs.ts index af66d5f1..f6d2ba67 100644 --- a/packages/examples/src/ts/wrapperTs.ts +++ b/packages/examples/src/ts/wrapperTs.ts @@ -11,6 +11,7 @@ import '@codingame/monaco-vscode-typescript-language-features-default-extension' import { LogLevel } from '@codingame/monaco-vscode-api'; import { MonacoEditorLanguageClientWrapper, type WrapperConfig } from 'monaco-editor-wrapper'; import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; +import { disableElement } from '../common/client/utils.js'; export const runTsWrapper = async () => { const codeUri = '/workspace/hello.ts'; @@ -61,6 +62,7 @@ export const runTsWrapper = async () => { }; const wrapper = new MonacoEditorLanguageClientWrapper(); + disableElement('button-swap-code', true); try { document.querySelector('#button-start')?.addEventListener('click', async () => { @@ -76,7 +78,7 @@ export const runTsWrapper = async () => { await vscode.commands.executeCommand('actions.find'); }); document.querySelector('#button-swap-code')?.addEventListener('click', () => { - const codeResources = wrapper.getMonacoEditorApp()?.getConfig().codeResources; + const codeResources = wrapper.getEditorApp()?.getConfig().codeResources; if (codeResources?.modified?.uri === codeUri) { wrapper.updateCodeResources({ modified: { @@ -105,6 +107,8 @@ export const runTsWrapper = async () => { // ensure it is boolean value and not undefined const useDiffEditor = wrapperConfig.editorAppConfig!.useDiffEditor ?? false; wrapperConfig.editorAppConfig!.useDiffEditor = !useDiffEditor; + disableElement('button-swap-code', !wrapperConfig.editorAppConfig!.useDiffEditor); + await wrapper.initAndStart(wrapperConfig); }); document.querySelector('#button-dispose')?.addEventListener('click', async () => { diff --git a/packages/wrapper-react/src/index.tsx b/packages/wrapper-react/src/index.tsx index 23937f55..c9f63152 100644 --- a/packages/wrapper-react/src/index.tsx +++ b/packages/wrapper-react/src/index.tsx @@ -49,7 +49,7 @@ export const MonacoEditorReactComp: React.FC = (props) => { const startMonaco = async () => { if (containerRef.current) { try { - wrapperRef.current.registerTextChangeCallback(onTextChanged); + wrapperRef.current.registerTextChangedCallback(onTextChanged); await wrapperRef.current.start(); onLoad?.(wrapperRef.current); } catch (e) { @@ -69,7 +69,7 @@ export const MonacoEditorReactComp: React.FC = (props) => { await initMonaco(); await startMonaco(); })(); - }, [wrapperConfig, onTextChanged, onLoad, onError]); + }, [wrapperConfig]); useEffect(() => { // exact copy of the above function, to prevent declaration in useCallback diff --git a/packages/wrapper-react/test/helper.ts b/packages/wrapper-react/test/helper.ts index 647ddfdc..3c9cf05e 100644 --- a/packages/wrapper-react/test/helper.ts +++ b/packages/wrapper-react/test/helper.ts @@ -4,10 +4,10 @@ * ------------------------------------------------------------------------------------------ */ import { LogLevel } from '@codingame/monaco-vscode-api'; -import type { WrapperConfig } from 'monaco-editor-wrapper'; +import type { CodeResources, WrapperConfig } from 'monaco-editor-wrapper'; import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; -export const createDefaultWrapperConfig = (): WrapperConfig => { +export const createDefaultWrapperConfig = (codeResources: CodeResources): WrapperConfig => { return { $type: 'extended', logLevel: LogLevel.Debug, @@ -15,12 +15,7 @@ export const createDefaultWrapperConfig = (): WrapperConfig => { loadThemes: false }, editorAppConfig: { - codeResources: { - modified: { - text: 'hello world', - uri: '/workspace/test.js' - } - }, + codeResources, monacoWorkerFactory: configureDefaultWorkerFactory } }; diff --git a/packages/wrapper-react/test/index.test.tsx b/packages/wrapper-react/test/index.test.tsx index f0be5e0e..95a77621 100644 --- a/packages/wrapper-react/test/index.test.tsx +++ b/packages/wrapper-react/test/index.test.tsx @@ -13,7 +13,12 @@ import { createDefaultWrapperConfig } from './helper.js'; describe('Test MonacoEditorReactComp', () => { test('onLoad', async () => { - const wrapperConfig = createDefaultWrapperConfig(); + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); let renderResult: RenderResult; // we have to await the full start of the editor with the onLoad callback, then it is save to contine @@ -28,28 +33,38 @@ describe('Test MonacoEditorReactComp', () => { }); test('update onTextChanged', async () => { - const wrapperConfig = createDefaultWrapperConfig(); + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); const textReceiverHello = (textChanges: TextContents) => { - expect(textChanges.modified).toEqual('hello world'); + expect(textChanges.modified).toEqual('const text = "Hello World!";'); }; const handleOnLoad = async (wrapper: MonacoEditorLanguageClientWrapper) => { - expect(wrapper.getTextModels()?.modified?.getValue()).toEqual('hello world'); + expect(wrapper.getTextModels()?.modified?.getValue()).toEqual('const text = "Hello World!";'); }; render(); }); test('update codeResources', async () => { - const wrapperConfig = createDefaultWrapperConfig(); + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); let count = 0; const textReceiver = (textChanges: TextContents) => { // initial call if (count === 0) { - expect(textChanges.modified).toBe('hello world'); + expect(textChanges.modified).toBe('const text = "Hello World!";'); } else { - expect(textChanges.modified).toBe('goodbye world'); + expect(textChanges.modified).toBe('const text = "Goodbye World!";'); } }; @@ -57,8 +72,8 @@ describe('Test MonacoEditorReactComp', () => { count++; await wrapper.updateCodeResources({ modified: { - text: 'goodbye world', - uri: '/workspace/test.js' + text: 'const text = "Goodbye World!";', + uri: `/workspace/${expect.getState().testPath}_goodbye.js`, } }); @@ -69,9 +84,18 @@ describe('Test MonacoEditorReactComp', () => { test('rerender without error', async () => { let error = false; try { - const wrapperConfig = createDefaultWrapperConfig(); - const newWrapperConfig = createDefaultWrapperConfig(); - newWrapperConfig.editorAppConfig!.codeResources!.modified!.text = 'hello world 2'; + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); + const newWrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Goodbye World 2!";', + uri: `/workspace/${expect.getState().testPath}_2.js`, + } + }); let renderResult: RenderResult; const result1 = await new Promise(resolve => { diff --git a/packages/wrapper/package.json b/packages/wrapper/package.json index 58f41dcf..78d7276b 100644 --- a/packages/wrapper/package.json +++ b/packages/wrapper/package.json @@ -98,6 +98,7 @@ "vscode-ws-jsonrpc": "~3.4.0" }, "devDependencies": { + "@codingame/monaco-vscode-standalone-languages": "~15.0.3", "@codingame/monaco-vscode-standalone-css-language-features": "~15.0.3", "@codingame/monaco-vscode-standalone-html-language-features": "~15.0.3", "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", diff --git a/packages/wrapper/src/editorApp.ts b/packages/wrapper/src/editorApp.ts index 99409a3a..879e30d4 100644 --- a/packages/wrapper/src/editorApp.ts +++ b/packages/wrapper/src/editorApp.ts @@ -5,6 +5,7 @@ import * as vscode from 'vscode'; import * as monaco from '@codingame/monaco-vscode-editor-api'; +import { LogLevel } from '@codingame/monaco-vscode-api'; import { createModelReference, type ITextFileEditorModel } from '@codingame/monaco-vscode-api/monaco'; import { ConfigurationTarget, IConfigurationService, StandaloneServices } from '@codingame/monaco-vscode-api'; import type { IReference } from '@codingame/monaco-vscode-editor-service-override'; @@ -12,13 +13,13 @@ import type { Logger } from 'monaco-languageclient/tools'; import type { OverallConfigType } from './vscode/services.js'; export interface ModelRefs { - modelRefModified?: IReference; - modelRefOriginal?: IReference; + modified: IReference; + original?: IReference; } export interface TextModels { - modified?: monaco.editor.ITextModel; - original?: monaco.editor.ITextModel; + modified?: monaco.editor.ITextModel | null; + original?: monaco.editor.ITextModel | null; } export interface TextContents { @@ -37,6 +38,16 @@ export interface CodeResources { original?: CodeContent; } +export interface CallbackDisposeable { + modified?: monaco.IDisposable; + original?: monaco.IDisposable; +} + +export interface DisposableModelRefs { + modified?: IReference; + original?: IReference; +} + export interface EditorAppConfig { codeResources?: CodeResources; useDiffEditor?: boolean; @@ -65,18 +76,25 @@ export interface EditorAppConfig { */ export class EditorApp { + private $type: OverallConfigType; + private id: string; + private config: EditorAppConfig; protected logger: Logger | undefined; private editor: monaco.editor.IStandaloneCodeEditor | undefined; private diffEditor: monaco.editor.IStandaloneDiffEditor | undefined; - private modelRefModified: IReference | undefined; - private modelRefOriginal: IReference | undefined; + private modelRefs: ModelRefs; - private modelUpdateCallback?: (textModels: TextModels) => void; - private config: EditorAppConfig; + private onTextChanged?: (textChanges: TextContents) => void; + private textChangedDiposeables: CallbackDisposeable = {}; + private modelDisposables: DisposableModelRefs = {}; - constructor($type: OverallConfigType, userAppConfig?: EditorAppConfig, logger?: Logger) { + private modelRefDisposeTimeout = -1; + + constructor($type: OverallConfigType, id: string, userAppConfig?: EditorAppConfig, logger?: Logger) { + this.$type = $type; + this.id = id; this.logger = logger; this.config = { codeResources: userAppConfig?.codeResources ?? undefined, @@ -94,10 +112,12 @@ export class EditorApp { automaticLayout: userAppConfig?.overrideAutomaticLayout ?? true }; this.config.languageDef = userAppConfig?.languageDef; + } + async init(): Promise { const languageDef = this.config.languageDef; if (languageDef) { - if ($type === 'extended') { + if (this.$type === 'extended') { throw new Error('Language definition is not supported for extended editor apps where textmate is used.'); } // register own language first @@ -122,11 +142,30 @@ export class EditorApp { } } - if (this.config.editorOptions['semanticHighlighting.enabled'] !== undefined) { + if (this.config.editorOptions?.['semanticHighlighting.enabled'] !== undefined) { StandaloneServices.get(IConfigurationService).updateValue('editor.semanticHighlighting.enabled', this.config.editorOptions['semanticHighlighting.enabled'], ConfigurationTarget.USER); } + // ensure proper default resources are initialized, uris have to be unique + const modified = { + text: this.config.codeResources?.modified?.text ?? '', + uri: this.config.codeResources?.modified?.uri ?? `default-uri-modified-${this.id}`, + enforceLanguageId: this.config.codeResources?.modified?.enforceLanguageId ?? undefined + }; + this.modelRefs = { + modified: await this.buildModelReference(modified, this.logger) + }; + + if (this.config.useDiffEditor === true) { + const original = { + text: this.config.codeResources?.original?.text ?? '', + uri: this.config.codeResources?.original?.uri ?? `default-uri-original-${this.id}`, + enforceLanguageId: this.config.codeResources?.original?.enforceLanguageId ?? undefined + }; + this.modelRefs.original = await this.buildModelReference(original, this.logger); + } + this.logger?.info('Init of EditorApp was completed.'); } @@ -147,117 +186,174 @@ export class EditorApp { } async createEditors(htmlContainer: HTMLElement): Promise { - const modelRefs = await this.buildModelRefs(this.config.codeResources); - - if (this.config.useDiffEditor ?? false) { + if (this.config.useDiffEditor === true) { this.diffEditor = monaco.editor.createDiffEditor(htmlContainer, this.config.diffEditorOptions); + this.diffEditor.setModel({ + modified: this.modelRefs.modified.object.textEditorModel!, + original: this.modelRefs.original!.object.textEditorModel! + }); + + this.announceModelUpdate({ + modified: this.modelRefs.modified.object.textEditorModel, + original: this.modelRefs.original!.object.textEditorModel! + }); } else { - this.editor = monaco.editor.create(htmlContainer, this.config.editorOptions); + this.editor = monaco.editor.create(htmlContainer, { + ...this.config.editorOptions, + model: this.modelRefs.modified.object.textEditorModel + }); + + this.announceModelUpdate({ + modified: this.modelRefs.modified.object.textEditorModel + }); } + } - this.updateEditorModels(modelRefs); + async updateCodeResources(codeResources?: CodeResources): Promise { + let updateModified = false; + let updateOriginal = false; + + if (codeResources?.modified !== undefined && codeResources.modified.uri !== this.modelRefs.modified.object.resource.path) { + this.modelDisposables.modified = this.modelRefs.modified; + this.modelRefs.modified = await this.buildModelReference(codeResources.modified, this.logger); + updateModified = true; + } + if (codeResources?.original !== undefined && codeResources.original.uri !== this.modelRefs.original?.object.resource.path) { + this.modelDisposables.original = this.modelRefs.original; + this.modelRefs.original = await this.buildModelReference(codeResources.original, this.logger); + updateOriginal = true; + } + + // only update if all reaquired models are available + if (this.config.useDiffEditor === true) { + if (updateModified && updateOriginal) { + this.diffEditor?.setModel({ + modified: this.modelRefs.modified.object.textEditorModel!, + original: this.modelRefs.original!.object.textEditorModel! + }); + + this.announceModelUpdate({ + modified: this.modelRefs.modified.object.textEditorModel, + original: this.modelRefs.original!.object.textEditorModel! + }); + } else { + this.logger?.info('Diff Editor: Code resources were not updated. Either unchanged or undefined.'); + } + } else { + if (updateModified) { + this.editor?.setModel(this.modelRefs.modified.object.textEditorModel); + + this.announceModelUpdate({ + modified: this.modelRefs.modified.object.textEditorModel + }); + } else { + this.logger?.info('Editor: Code resources were not updated. Either unchanged or undefined.'); + } + } + + await this.disposeModelRefs(); } - protected disposeEditors() { + async dispose() { if (this.editor) { - this.modelRefModified?.dispose(); this.editor.dispose(); this.editor = undefined; } if (this.diffEditor) { - this.modelRefModified?.dispose(); - this.modelRefOriginal?.dispose(); this.diffEditor.dispose(); this.diffEditor = undefined; } + + this.textChangedDiposeables.modified?.dispose(); + this.textChangedDiposeables.original?.dispose(); + + await this.disposeModelRefs(); } - getTextContents(): TextContents { - const modelRefs = this.getModelRefs(); - return { - modified: modelRefs.modelRefModified?.object.textEditorModel?.getValue() ?? undefined, - original: modelRefs.modelRefOriginal?.object.textEditorModel?.getValue() ?? undefined + async disposeModelRefs() { + const diposeRefs = () => { + if (this.logger?.getLevel() === LogLevel.Debug) { + const models = monaco.editor.getModels(); + this.logger.debug('Current model URIs:'); + models.forEach((model, _index) => { + this.logger?.debug(`${model.uri.toString()}`); + }); + } + + if (this.modelDisposables.modified !== undefined && !this.modelDisposables.modified.object.isDisposed()) { + this.modelDisposables.modified.dispose(); + this.modelDisposables.modified = undefined; + } + if (this.modelDisposables.original !== undefined && !this.modelDisposables.original.object.isDisposed()) { + this.modelDisposables.original.dispose(); + this.modelDisposables.original = undefined; + } + if (this.modelDisposables.modified === undefined && this.modelDisposables.original === undefined) { + this.logger?.debug('All model references are disposed.'); + } else { + this.logger?.debug('Model references are still available.'); + } }; + + if (this.modelRefDisposeTimeout > 0) { + this.logger?.debug('Using async dispose of model references'); + await new Promise(resolve => setTimeout(() => { + diposeRefs(); + resolve(); + }, this.modelRefDisposeTimeout)); + } else { + diposeRefs(); + } } - getTextModels(): TextModels { - const modelRefs = this.getModelRefs(); + getTextContents(): TextContents { return { - modified: modelRefs.modelRefModified?.object.textEditorModel ?? undefined, - original: modelRefs.modelRefOriginal?.object.textEditorModel ?? undefined + modified: this.modelRefs.modified.object.textEditorModel?.getValue() ?? undefined, + original: this.modelRefs.original?.object.textEditorModel?.getValue() ?? undefined }; } - getModelRefs(): ModelRefs { + getTextModels(): TextModels { return { - modelRefModified: this.modelRefModified, - modelRefOriginal: this.modelRefOriginal + modified: this.modelRefs.modified.object.textEditorModel, + original: this.modelRefs.original?.object.textEditorModel ?? undefined }; } - registerModelUpdate(modelUpdateCallback: (textModels: TextModels) => void) { - this.modelUpdateCallback = modelUpdateCallback; - } - - async updateCodeResources(codeResources?: CodeResources): Promise { - const modelRefs = await this.buildModelRefs(codeResources); - this.updateEditorModels(modelRefs); + registerOnTextChangedCallbacks(onTextChanged?: (textChanges: TextContents) => void) { + this.onTextChanged = onTextChanged; } - async buildModelRefs(codeResources?: CodeResources): Promise { - const modelRefModified = await buildModelReference(codeResources?.modified, this.logger); - const modelRefOriginal = await buildModelReference(codeResources?.original, this.logger); - - return { - modelRefModified, - modelRefOriginal - }; + public setModelRefDisposeTimeout(modelRefDisposeTimeout: number) { + this.modelRefDisposeTimeout = modelRefDisposeTimeout; } - updateEditorModels(modelRefs: ModelRefs) { - let updateModified = false; - let updateOriginal = false; - let modelRefModifiedOld; - let modelRefOriginalOld; - - if (modelRefs.modelRefModified !== this.modelRefModified) { - modelRefModifiedOld = this.modelRefModified; - this.modelRefModified = modelRefs.modelRefModified; - updateModified = true; - } - if (modelRefs.modelRefOriginal !== this.modelRefOriginal) { - modelRefOriginalOld = this.modelRefOriginal; - this.modelRefOriginal = modelRefs.modelRefOriginal; - updateOriginal = true; - } + private announceModelUpdate(textModels: TextModels) { + if (this.onTextChanged !== undefined) { + let changed = false; + if (textModels.modified !== undefined && textModels.modified !== null) { + const old = this.textChangedDiposeables.modified; + this.textChangedDiposeables.modified = textModels.modified.onDidChangeContent(() => { + didModelContentChange(textModels, this.onTextChanged); + }); + old?.dispose(); + changed = true; + } - if (this.editor) { - const textModelModified = this.modelRefModified?.object.textEditorModel; - if (updateModified && textModelModified !== undefined && textModelModified !== null) { - this.editor.setModel(textModelModified); - this.modelUpdateCallback?.({ - modified: textModelModified + if (textModels.original !== undefined && textModels.original !== null) { + const old = this.textChangedDiposeables.original; + this.textChangedDiposeables.original = textModels.original.onDidChangeContent(() => { + didModelContentChange(textModels, this.onTextChanged); }); + old?.dispose(); + changed = true; } - } else if (this.diffEditor) { - const textModelModified = this.modelRefModified?.object.textEditorModel; - const textModelOriginal = this.modelRefOriginal?.object.textEditorModel; - if ((updateModified || updateOriginal) && - textModelModified !== undefined && textModelModified !== null && textModelOriginal !== undefined && textModelOriginal !== null) { - const textModels = { - original: textModelOriginal, - modified: textModelModified - }; - - this.diffEditor.setModel(textModels); - this.modelUpdateCallback?.(textModels); - } else { - throw new Error('You cannot update models, because original model ref is not contained, but required for DiffEditor.'); + + if (changed) { + // do it initially + didModelContentChange(textModels, this.onTextChanged); } } - - modelRefModifiedOld?.dispose(); - modelRefOriginalOld?.dispose(); } updateLayout() { @@ -272,9 +368,21 @@ export class EditorApp { this.getEditor()?.updateOptions(options); } - disposeApp(): void { - this.disposeEditors(); - } + async buildModelReference(codeContent: CodeContent, logger?: Logger): Promise> { + const code = codeContent.text; + const modelRef = await createModelReference(vscode.Uri.parse(codeContent.uri), code); + + // update the text if different + if (modelRef.object.textEditorModel?.getValue() !== code) { + modelRef.object.textEditorModel?.setValue(code); + } + const enforceLanguageId = codeContent.enforceLanguageId; + if (enforceLanguageId !== undefined) { + modelRef.object.setLanguageId(enforceLanguageId); + logger?.info(`Main languageId is enforced: ${enforceLanguageId}`); + } + return modelRef; + }; } @@ -297,24 +405,3 @@ export const didModelContentChange = (textModels: TextModels, onTextChanged?: (t original }); }; - -export const buildModelReference = async (code?: CodeContent, logger?: Logger): Promise | undefined> => { - if (code) { - const modelRef = await createModelReference(vscode.Uri.parse(code.uri), code.text); - - // update the text if different - if (modelRef.object.textEditorModel?.getValue() !== code.text) { - modelRef.object.textEditorModel?.setValue(code.text); - } - checkEnforceLanguageId(modelRef, code.enforceLanguageId, logger); - return modelRef; - } - return undefined; -}; - -export const checkEnforceLanguageId = (modelRef: IReference, enforceLanguageId?: string, logger?: Logger) => { - if (enforceLanguageId !== undefined) { - modelRef.object.setLanguageId(enforceLanguageId); - logger?.info(`Main languageId is enforced: ${enforceLanguageId}`); - } -}; diff --git a/packages/wrapper/src/wrapper.ts b/packages/wrapper/src/wrapper.ts index 7f00fca0..ca19eaab 100644 --- a/packages/wrapper/src/wrapper.ts +++ b/packages/wrapper/src/wrapper.ts @@ -11,7 +11,7 @@ import { MonacoLanguageClient } from 'monaco-languageclient'; import { initServices, type VscodeApiConfig } from 'monaco-languageclient/vscode/services'; import { type Logger, ConsoleLogger } from 'monaco-languageclient/tools'; import { augmentVscodeApiConfig, checkServiceConsistency, type OverallConfigType } from './vscode/services.js'; -import { type CodeResources, didModelContentChange, EditorApp, type EditorAppConfig, type ModelRefs, type TextContents, type TextModels, verifyUrlOrCreateDataUrl } from './editorApp.js'; +import { type CodeResources, EditorApp, type EditorAppConfig, type TextContents, type TextModels, verifyUrlOrCreateDataUrl } from './editorApp.js'; import { type LanguageClientConfig, LanguageClientWrapper } from './languageClientWrapper.js'; export interface ExtensionConfig { @@ -53,8 +53,7 @@ export class MonacoEditorLanguageClientWrapper { private id: string; private editorApp?: EditorApp; private extensionRegisterResults: Map = new Map(); - private disposableStoreExtensions?: DisposableStore = new DisposableStore(); - private disposableStoreMonaco?: DisposableStore = new DisposableStore(); + private disposableStore: DisposableStore = new DisposableStore(); private languageClientWrappers: Map = new Map(); private wrapperConfig?: WrapperConfig; private logger: Logger = new ConsoleLogger(); @@ -99,7 +98,7 @@ export class MonacoEditorLanguageClientWrapper { try { this.markInitializing(); - this.id = wrapperConfig.id ?? Math.floor(Math.random() * 101).toString(); + this.id = wrapperConfig.id ?? Math.floor(Math.random() * 1000001).toString(); this.logger.setLevel(wrapperConfig.logLevel ?? LogLevel.Off); if (typeof wrapperConfig.editorAppConfig?.monacoWorkerFactory === 'function') { @@ -126,7 +125,8 @@ export class MonacoEditorLanguageClientWrapper { this.initLanguageClients(); } await this.initExtensions(); - this.editorApp = new EditorApp(this.wrapperConfig.$type, this.wrapperConfig.editorAppConfig, this.logger); + this.editorApp = new EditorApp(this.wrapperConfig.$type, this.id, this.wrapperConfig.editorAppConfig, this.logger); + await this.editorApp.init(); // eslint-disable-next-line no-useless-catch } catch (e) { throw e; @@ -169,7 +169,7 @@ export class MonacoEditorLanguageClientWrapper { this.extensionRegisterResults.set(manifest.name, extRegResult); if (extensionConfig.filesOrContents && Object.hasOwn(extRegResult, 'registerFileUrl')) { for (const entry of extensionConfig.filesOrContents) { - this.disposableStoreExtensions?.add(extRegResult.registerFileUrl(entry[0], verifyUrlOrCreateDataUrl(entry[1]))); + this.disposableStore.add(extRegResult.registerFileUrl(entry[0], verifyUrlOrCreateDataUrl(entry[1]))); } } allPromises.push(extRegResult.whenReady()); @@ -300,7 +300,7 @@ export class MonacoEditorLanguageClientWrapper { return this.languageClientWrappers.size > 0; } - getMonacoEditorApp() { + getEditorApp() { return this.editorApp; } @@ -328,10 +328,6 @@ export class MonacoEditorLanguageClientWrapper { return this.editorApp?.getTextModels(); } - getModelRefs(): ModelRefs | undefined { - return this.editorApp?.getModelRefs(); - } - getWorker(languageId: string): Worker | undefined { return this.languageClientWrappers.get(languageId)?.getWorker(); } @@ -344,32 +340,8 @@ export class MonacoEditorLanguageClientWrapper { return this.editorApp?.updateCodeResources(codeResources); } - registerTextChangeCallback(onTextChanged?: (textChanges: TextContents) => void) { - this.editorApp?.registerModelUpdate((textModels: TextModels) => { - // clear on new registration - this.disposableStoreMonaco?.clear(); - - if (textModels.modified !== undefined || textModels.original !== undefined) { - - if (textModels.modified !== undefined) { - this.disposableStoreMonaco?.add(textModels.modified.onDidChangeContent(() => { - didModelContentChange(textModels, onTextChanged); - })); - } - - if (textModels.original !== undefined) { - this.disposableStoreMonaco?.add(textModels.original.onDidChangeContent(() => { - didModelContentChange(textModels, onTextChanged); - })); - } - // do it initially - didModelContentChange(textModels, onTextChanged); - } - }); - } - - updateEditorModels(modelRefs: ModelRefs) { - this.editorApp?.updateEditorModels(modelRefs); + registerTextChangedCallback(onTextChanged?: (textChanges: TextContents) => void) { + this.editorApp?.registerOnTextChangedCallbacks(onTextChanged); } reportStatus() { @@ -389,16 +361,14 @@ export class MonacoEditorLanguageClientWrapper { } this.markDisposing(); - this.editorApp?.disposeApp(); + await this.editorApp?.dispose(); this.editorApp = undefined; this.extensionRegisterResults.forEach((k) => k.dispose()); - this.disposableStoreExtensions?.dispose(); - this.disposableStoreMonaco?.dispose(); + this.disposableStore.dispose(); // re-create disposable stores - this.disposableStoreExtensions = new DisposableStore(); - this.disposableStoreMonaco = new DisposableStore(); + this.disposableStore = new DisposableStore(); try { if (this.wrapperConfig?.languageClientConfigs?.automaticallyDispose ?? true) { diff --git a/packages/wrapper/test/editorApp-classic.test.ts b/packages/wrapper/test/editorApp-classic.test.ts index 2b5a00db..d483c9af 100644 --- a/packages/wrapper/test/editorApp-classic.test.ts +++ b/packages/wrapper/test/editorApp-classic.test.ts @@ -10,14 +10,19 @@ import { createWrapperConfigClassicApp } from './support/helper-classic.js'; describe('Test Test EditorApp (classic)', () => { test('classic type: empty EditorAppConfigClassic', () => { - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({}); expect(wrapperConfig.$type).toBe('classic'); }); test('config defaults', () => { - const wrapperConfig = createWrapperConfigClassicApp(); - const editorApp = new EditorApp(wrapperConfig.$type, wrapperConfig.editorAppConfig); - expect(editorApp.getConfig().codeResources?.modified?.text).toEqual(''); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + const editorApp = new EditorApp(wrapperConfig.$type, 'test-config-defaults', wrapperConfig.editorAppConfig); + expect(editorApp.getConfig().codeResources?.modified?.text).toEqual('const text = "Hello World!";'); expect(editorApp.getConfig().codeResources?.original).toBeUndefined(); expect(editorApp.getConfig().useDiffEditor ?? false).toBeFalsy(); expect(editorApp.getConfig().readOnly).toBeFalsy(); @@ -25,29 +30,44 @@ describe('Test Test EditorApp (classic)', () => { }); test('editorOptions: semanticHighlighting=false', () => { - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); const configClassic = wrapperConfig.editorAppConfig; configClassic!.editorOptions!['semanticHighlighting.enabled'] = false; - const editorApp = new EditorApp(wrapperConfig.$type, configClassic); + const editorApp = new EditorApp(wrapperConfig.$type, 'test-semanticHighlighting-false', configClassic); expect(editorApp.getConfig().editorOptions?.['semanticHighlighting.enabled']).toBeFalsy(); }); test('editorOptions: semanticHighlighting="configuredByTheme"', () => { - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); const configClassic = wrapperConfig.editorAppConfig; configClassic!.editorOptions!['semanticHighlighting.enabled'] = 'configuredByTheme'; - const editorApp = new EditorApp(wrapperConfig.$type, configClassic); + const editorApp = new EditorApp(wrapperConfig.$type, 'test-semanticHighlighting-theme', configClassic); expect(editorApp.getConfig().editorOptions?.['semanticHighlighting.enabled']).toEqual('configuredByTheme'); }); test('editorOptions: semanticHighlighting=true', () => { - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); const configClassic = wrapperConfig.editorAppConfig; configClassic!.editorOptions!['semanticHighlighting.enabled'] = true; - const editorApp = new EditorApp(wrapperConfig.$type, configClassic); + const editorApp = new EditorApp(wrapperConfig.$type, 'test-semanticHighlighting-true', configClassic); expect(wrapperConfig.$type).toEqual('classic'); expect(editorApp.getConfig().editorOptions?.['semanticHighlighting.enabled']).toBeTruthy(); }); diff --git a/packages/wrapper/test/editorApp.test.ts b/packages/wrapper/test/editorApp.test.ts index b074da9b..e09fcec5 100644 --- a/packages/wrapper/test/editorApp.test.ts +++ b/packages/wrapper/test/editorApp.test.ts @@ -10,7 +10,12 @@ import { createWrapperConfigExtendedApp } from './support/helper.js'; describe('Test EditorApp', () => { test('extended type: empty EditorAppConfigExtended', () => { - const wrapperConfig = createWrapperConfigExtendedApp(); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); expect(wrapperConfig.$type).toBe('extended'); }); @@ -37,9 +42,14 @@ describe('Test EditorApp', () => { }); test('config defaults', () => { - const wrapperConfig = createWrapperConfigExtendedApp(); - const app = new EditorApp(wrapperConfig.$type, wrapperConfig.editorAppConfig); - expect(app.getConfig().codeResources?.modified?.text).toEqual('console.log("Hello World!");'); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + const app = new EditorApp(wrapperConfig.$type, 'test-config defaults', wrapperConfig.editorAppConfig); + expect(app.getConfig().codeResources?.modified?.text).toEqual('const text = "Hello World!";'); expect(app.getConfig().codeResources?.original).toBeUndefined(); expect(app.getConfig().useDiffEditor ?? false).toBeFalsy(); expect(app.getConfig().readOnly).toBeFalsy(); diff --git a/packages/wrapper/test/support/helper-classic.ts b/packages/wrapper/test/support/helper-classic.ts index d7f9094d..46b4fd7b 100644 --- a/packages/wrapper/test/support/helper-classic.ts +++ b/packages/wrapper/test/support/helper-classic.ts @@ -5,7 +5,7 @@ import { useWorkerFactory, type WorkerLoader } from 'monaco-languageclient/workerFactory'; import type { Logger } from 'monaco-languageclient/tools'; -import type { CodeContent, WrapperConfig } from 'monaco-editor-wrapper'; +import type { CodeResources, WrapperConfig } from 'monaco-editor-wrapper'; import { createMonacoEditorDiv } from './helper.js'; const workerResolver: Map) => void> = new Map(); @@ -51,7 +51,7 @@ const jsonWorker = new Worker( ); const tsWorker = new Worker( - new URL(' @codingame/monaco-vscode-standalone-typescript-language-features', import.meta.url), + new URL('@codingame/monaco-vscode-standalone-typescript-language-features', import.meta.url), { type: 'module' } ); @@ -84,7 +84,9 @@ export const defineClassisWorkerLoaders: () => Record = () css: workerFuncs.cssWorker, html: workerFuncs.htmlWorker, json: workerFuncs.jsonWorker, - javascript: workerFuncs.tsWorker + // both have to be defined otherwise this leads to a test error + javascript: workerFuncs.tsWorker, + typescript: workerFuncs.tsWorker }; }; @@ -95,7 +97,7 @@ export const configureClassicWorkerFactory = (logger?: Logger) => { }); }; -export const createWrapperConfigClassicApp = (modifiedCode?: CodeContent): WrapperConfig => { +export const createWrapperConfigClassicApp = (codeResources: CodeResources): WrapperConfig => { return { $type: 'classic', htmlContainer: createMonacoEditorDiv(), @@ -103,13 +105,7 @@ export const createWrapperConfigClassicApp = (modifiedCode?: CodeContent): Wrapp loadThemes: false }, editorAppConfig: { - codeResources: { - modified: modifiedCode ?? { - text: '', - uri: '/workspace/test.js', - enforceLanguageId: 'javascript' - } - }, + codeResources, editorOptions: {}, monacoWorkerFactory: configureClassicWorkerFactory } diff --git a/packages/wrapper/test/support/helper.ts b/packages/wrapper/test/support/helper.ts index a271cf94..915a525d 100644 --- a/packages/wrapper/test/support/helper.ts +++ b/packages/wrapper/test/support/helper.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See LICENSE in the package root for license information. * ------------------------------------------------------------------------------------------ */ -import type { LanguageClientConfig, WrapperConfig } from 'monaco-editor-wrapper'; +import type { CodeResources, LanguageClientConfig, WrapperConfig } from 'monaco-editor-wrapper'; import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; export const createMonacoEditorDiv = () => { @@ -13,7 +13,7 @@ export const createMonacoEditorDiv = () => { return div; }; -export const createWrapperConfigExtendedApp = (): WrapperConfig => { +export const createWrapperConfigExtendedApp = (codeResources: CodeResources): WrapperConfig => { return { $type: 'extended', htmlContainer: createMonacoEditorDiv(), @@ -21,12 +21,7 @@ export const createWrapperConfigExtendedApp = (): WrapperConfig => { loadThemes: false }, editorAppConfig: { - codeResources: { - modified: { - text: 'console.log("Hello World!");', - uri: '/workspace/test.js' - } - }, + codeResources, monacoWorkerFactory: configureDefaultWorkerFactory } }; diff --git a/packages/wrapper/test/workers/workerLoaders.test.ts b/packages/wrapper/test/workers/workerLoaders.test.ts index de4fdd35..a2dda7c9 100644 --- a/packages/wrapper/test/workers/workerLoaders.test.ts +++ b/packages/wrapper/test/workers/workerLoaders.test.ts @@ -19,7 +19,13 @@ describe('Test WorkerLoaders', () => { test('Test default worker application', async () => { // prepare const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + enforceLanguageId: 'javascript' + } + }); wrapperConfig.logLevel = LogLevel.Info; wrapperConfig.editorAppConfig!.monacoWorkerFactory = configureClassicWorkerFactory; @@ -28,12 +34,15 @@ describe('Test WorkerLoaders', () => { await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); await expect(await awaitWorkerPromises()).toStrictEqual([undefined, undefined]); + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + // ts worker, expect no worker to be loaded createWorkerPromises([]); await wrapper.updateCodeResources({ modified: { text: '', - uri: '/workspace/test.ts', + uri: `/workspace/${expect.getState().testPath}.ts`, enforceLanguageId: 'typescript' } }); @@ -44,7 +53,7 @@ describe('Test WorkerLoaders', () => { await wrapper.updateCodeResources({ modified: { text: '', - uri: '/workspace/test.css', + uri: `/workspace/${expect.getState().testPath}.css`, enforceLanguageId: 'css' } }); @@ -57,7 +66,7 @@ describe('Test WorkerLoaders', () => { await wrapper.updateCodeResources({ modified: { text: '', - uri: '/workspace/test.json', + uri: `/workspace/${expect.getState().testPath}.json`, enforceLanguageId: 'json' } }); @@ -68,10 +77,11 @@ describe('Test WorkerLoaders', () => { await wrapper.updateCodeResources({ modified: { text: '', - uri: '/workspace/test.html', + uri: `/workspace/${expect.getState().testPath}.html`, enforceLanguageId: 'html' } }); await expect(await awaitWorkerPromises()).toStrictEqual([undefined]); }); + }); diff --git a/packages/wrapper/test/wrapper-classic.test.ts b/packages/wrapper/test/wrapper-classic.test.ts index 19da91e5..c1fdab53 100644 --- a/packages/wrapper/test/wrapper-classic.test.ts +++ b/packages/wrapper/test/wrapper-classic.test.ts @@ -3,10 +3,12 @@ * Licensed under the MIT License. See LICENSE in the package root for license information. * ------------------------------------------------------------------------------------------ */ +/* eslint-disable dot-notation */ + import { describe, expect, test } from 'vitest'; import * as monaco from '@codingame/monaco-vscode-editor-api'; import { IConfigurationService, StandaloneServices } from '@codingame/monaco-vscode-api'; -import { buildModelReference, MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper'; +import { MonacoEditorLanguageClientWrapper, type TextContents } from 'monaco-editor-wrapper'; import { createMonacoEditorDiv } from './support/helper.js'; import { createWrapperConfigClassicApp } from './support/helper-classic.js'; @@ -15,9 +17,15 @@ describe('Test MonacoEditorLanguageClientWrapper (classic)', () => { test('Check default values', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - await expect(await wrapper.initAndStart(createWrapperConfigClassicApp())).toBeUndefined(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + const app = wrapper.getEditorApp(); expect(app).toBeDefined(); const appConfig = app!.getConfig(); @@ -27,125 +35,190 @@ describe('Test MonacoEditorLanguageClientWrapper (classic)', () => { test('Code resources main', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + const app = wrapper.getEditorApp(); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeDefined(); - expect(modelRefs?.modelRefOriginal).toBeUndefined(); - app?.disposeApp(); + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeUndefined(); + app?.dispose(); }); test('Expected throw: Call normal initAndstart with prior init', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const config = createWrapperConfigClassicApp(); - await expect(await wrapper.init(config)).toBeUndefined(); - await expect(await wrapper.initAndStart(config)).toBeUndefined(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); + await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); }); test('Expected throw: Call normal initAndstart with prior init and automaticallyDispose=false', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); await expect(async () => { - const config = createWrapperConfigClassicApp(); - config.automaticallyDispose = false; - await expect(await wrapper.init(config)).toBeUndefined(); - await wrapper.initAndStart(config); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + wrapperConfig.automaticallyDispose = false; + await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); + await wrapper.initAndStart(wrapperConfig); }).rejects.toThrowError('You configured the wrapper to not automatically dispose on init, but did not dispose manually. Please call dispose first if you want to re-start.'); }); - test('Code resources original', async () => { + test('Code resources original (regular editor)', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); const codeResources = wrapperConfig.editorAppConfig?.codeResources ?? {}; codeResources.modified = undefined; codeResources.original = { text: 'original', - uri: '/workspace/test.js', + uri: '/workspace/test-code-resources-original-regular-editor.js', }; await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + const app = wrapper.getEditorApp(); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeUndefined(); - expect(modelRefs?.modelRefOriginal).toBeDefined(); - app?.disposeApp(); + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeUndefined(); + app?.dispose(); + }); + + test('Code resources original (diff editor)', async () => { + createMonacoEditorDiv(); + const wrapper = new MonacoEditorLanguageClientWrapper(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); + wrapperConfig.editorAppConfig!.useDiffEditor = true; + const codeResources = wrapperConfig.editorAppConfig?.codeResources ?? {}; + codeResources.modified = undefined; + codeResources.original = { + text: 'original', + uri: '/workspace/test-code-resources-original-diff-editor.js', + }; + await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); + const app = wrapper.getEditorApp(); + + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeDefined(); + app?.dispose(); }); test('Code resources main and original', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); const wrapperConfig = createWrapperConfigClassicApp({ - text: 'modified', - uri: '/workspace/test_modified.js', + modified: { + text: 'modified', + uri: `/workspace/${expect.getState().testPath}_modified.js` + } }); const codeResources = wrapperConfig.editorAppConfig!.codeResources!; codeResources.original = { text: 'original', - uri: '/workspace/test_original.js', + uri: `/workspace/${expect.getState().testPath}_original.js` }; await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + const app = wrapper.getEditorApp(); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeDefined(); - expect(modelRefs?.modelRefOriginal).toBeDefined(); + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + // if no diff editor is used, the original modelRef is undefined + expect(modelRefs?.original).toBeUndefined(); - const name = modelRefs?.modelRefModified?.object.name; - const nameOriginal = modelRefs?.modelRefOriginal?.object.name; + const name = modelRefs?.modified.object.name; + const nameOriginal = modelRefs?.original?.object.name; expect(name).toBeDefined(); - expect(nameOriginal).toBeDefined(); + expect(nameOriginal).toBeUndefined(); expect(name).not.toEqual(nameOriginal); - app?.disposeApp(); + app?.dispose(); }); test('Code resources empty', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); wrapperConfig.editorAppConfig!.codeResources = {}; await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeUndefined(); - expect(modelRefs?.modelRefOriginal).toBeUndefined(); + const app = wrapper.getEditorApp(); + const modelRefs = app?.['modelRefs']; + // default modelRef is created with regular editor even if no codeResources are given + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeUndefined(); }); test('Code resources model direct', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); wrapperConfig.editorAppConfig!.codeResources = {}; await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); - // here the modelReference is created manually and given to the updateEditorModels of the wrapper - wrapper.updateEditorModels({ - modelRefModified: await buildModelReference({ - text: 'text', + wrapper.updateCodeResources({ + modified: { + text: 'const text = "Hello World!";', uri: '/workspace/statemachineUri.statemachine' - }) + } }); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeDefined(); - expect(modelRefs?.modelRefOriginal).toBeUndefined(); + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeUndefined(); }); test('Early code resources update on wrapper are ok', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); - wrapperConfig.editorAppConfig!.codeResources = {}; + const wrapperConfig = createWrapperConfigClassicApp({}); await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); - const app = wrapper.getMonacoEditorApp(); + + wrapper.registerTextChangedCallback((textChanges: TextContents) => { + expect(textChanges.modified).toEqual('// comment'); + }); + + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + await expect(await wrapper.updateCodeResources({ modified: { text: '// comment', @@ -155,16 +228,21 @@ describe('Test MonacoEditorLanguageClientWrapper (classic)', () => { expect(wrapper.getEditor()).toBeUndefined(); expect(wrapper.getDiffEditor()).toBeUndefined(); - const modelRefs = app?.getModelRefs(); - expect(modelRefs?.modelRefModified).toBeDefined(); - expect(modelRefs?.modelRefOriginal).toBeUndefined(); + const modelRefs = app?.['modelRefs']; + expect(modelRefs?.modified).toBeDefined(); + expect(modelRefs?.original).toBeUndefined(); await expect(await wrapper.start()).toBeUndefined(); }); test('editorConfig semanticHighlighting.enabled workaround', async () => { const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigClassicApp(); + const wrapperConfig = createWrapperConfigClassicApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); wrapperConfig.editorAppConfig!.editorOptions = { 'semanticHighlighting.enabled': true, @@ -183,8 +261,10 @@ describe('Test MonacoEditorLanguageClientWrapper (classic)', () => { test('Check current model is globally removed after dispose', async () => { const wrapper = new MonacoEditorLanguageClientWrapper(); const wrapperConfig = createWrapperConfigClassicApp({ - text: 'console.log("test")', - uri: '/workspace/testModel.js' + modified: { + text: 'const text = "test";', + uri: `/workspace/${expect.getState().testPath}_single-model.js` + } }); await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); @@ -194,25 +274,31 @@ describe('Test MonacoEditorLanguageClientWrapper (classic)', () => { expect(monaco.editor.getModels().includes(currentModel!)).toBeFalsy(); }); - test('Check current model is globally removed after dispose', async () => { + test('Check current model is globally removed after dispose (second model)', async () => { const wrapper = new MonacoEditorLanguageClientWrapper(); const wrapperConfig = createWrapperConfigClassicApp({ - text: 'console.log("test")', - uri: '/workspace/testModel.js' + modified: { + text: 'const text = "test";', + uri: `/workspace/${expect.getState().testPath}_second-model.js` + } }); await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); const currentModel = wrapper.getEditor()?.getModel(); expect(monaco.editor.getModels().includes(currentModel!)).toBeTruthy(); + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + await wrapper.updateCodeResources({ modified: { - text: 'console.log("test 2")', - uri: '/workspace/testModel2.js' + text: 'const text = "test 2";', + uri: `/workspace/${expect.getState().testPath}_second-model_2.js` } }); const currentModelMod = wrapper.getEditor()?.getModel(); expect(monaco.editor.getModels().includes(currentModelMod!)).toBeTruthy(); expect(monaco.editor.getModels().includes(currentModel!)).toBeFalsy(); }); + }); diff --git a/packages/wrapper/test/wrapper.test.ts b/packages/wrapper/test/wrapper.test.ts index a4f61459..a1d688bb 100644 --- a/packages/wrapper/test/wrapper.test.ts +++ b/packages/wrapper/test/wrapper.test.ts @@ -3,8 +3,10 @@ * Licensed under the MIT License. See LICENSE in the package root for license information. * ------------------------------------------------------------------------------------------ */ +/* eslint-disable dot-notation */ + import { describe, expect, test, vi } from 'vitest'; -import { buildModelReference, MonacoEditorLanguageClientWrapper, type TextContents } from 'monaco-editor-wrapper'; +import { MonacoEditorLanguageClientWrapper, type TextContents } from 'monaco-editor-wrapper'; import { createDefaultLcUnreachableUrlConfig, createMonacoEditorDiv, createWrapperConfigExtendedApp } from './support/helper.js'; describe('Test MonacoEditorLanguageClientWrapper', () => { @@ -31,7 +33,12 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { test('extended editor disposes extensions', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigExtendedApp(); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); wrapperConfig.extensions = [{ config: { name: 'unit-test-extension', @@ -66,67 +73,69 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { test('Update code resources after start (same file)', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigExtendedApp(); - wrapperConfig.editorAppConfig!.codeResources = { + const wrapperConfig = createWrapperConfigExtendedApp({ modified: { - text: 'console.log("Hello World");', - uri: '/workspace/test.js', - enforceLanguageId: 'javascript' + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}.js` } - }; + }); await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); expect(wrapper.isStarted()).toBeTruthy(); - wrapper.registerTextChangeCallback((textChanges: TextContents) => { + wrapper.registerTextChangedCallback((textChanges: TextContents) => { console.log(`text: ${textChanges.modified}\ntextOriginal: ${textChanges.original}`); }); + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + await wrapper.updateCodeResources({ modified: { - text: 'console.log("Goodbye World");', - uri: '/workspace/test2.js', - enforceLanguageId: 'javascript' + text: 'const text = "Goodbye World";', + uri: `/workspace/${expect.getState().testPath}_2.js` } }); const textContents = wrapper.getTextContents(); - expect(textContents?.modified).toEqual('console.log("Goodbye World");'); + expect(textContents?.modified).toEqual('const text = "Goodbye World";'); - expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('console.log("Goodbye World");'); + expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('const text = "Goodbye World";'); }); test('Update code resources after start (different file)', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigExtendedApp(); - wrapperConfig.editorAppConfig!.codeResources = { + const wrapperConfig = createWrapperConfigExtendedApp({ modified: { - text: 'console.log("Hello World");', - uri: '/workspace/main.js', + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}.js` } - }; + }); await expect(await wrapper.initAndStart(wrapperConfig)).toBeUndefined(); expect(wrapper.isStarted()).toBeTruthy(); + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + await expect(await wrapper.updateCodeResources({ modified: { - text: 'console.log("Goodbye World");', - uri: '/workspace/main2.js' + text: 'const text = "Goodbye World";', + uri: `/workspace/${expect.getState().testPath}_2.js`, } })).toBeUndefined(); const textContents = wrapper.getTextContents(); - expect(textContents?.modified).toEqual('console.log("Goodbye World");'); + expect(textContents?.modified).toEqual('const text = "Goodbye World";'); - expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('console.log("Goodbye World");'); + expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('const text = "Goodbye World";'); }); test('Verify registerTextChangeCallback', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigExtendedApp(); + const wrapperConfig = createWrapperConfigExtendedApp({}); const onTextChanged = (textChanges: TextContents) => { console.log(`text: ${textChanges.modified}\ntextOriginal: ${textChanges.original}`); @@ -134,46 +143,60 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); - // eslint-disable-next-line dot-notation - const disposableStoreMonaco = wrapper['disposableStoreMonaco']; - expect(disposableStoreMonaco).toBeDefined(); + let onTextChangedDiposeable = wrapper.getEditorApp()!['textChangedDiposeables'].modified; + expect(onTextChangedDiposeable).toBeUndefined(); - wrapper.registerTextChangeCallback(onTextChanged); + wrapper.registerTextChangedCallback(onTextChanged); - // eslint-disable-next-line dot-notation - const spyModelUpdateCallback = vi.spyOn(wrapper['editorApp'], 'modelUpdateCallback'); - const spyDisposableStoreMonaco = vi.spyOn(disposableStoreMonaco, 'clear'); + const spyAnnounceModelUpdate = vi.spyOn(wrapper['editorApp'], 'announceModelUpdate'); await expect(await wrapper.start()).toBeUndefined(); - expect(spyModelUpdateCallback).toHaveBeenCalledTimes(1); - expect(spyDisposableStoreMonaco).toHaveBeenCalledTimes(1); + onTextChangedDiposeable = wrapper.getEditorApp()!['textChangedDiposeables'].modified; + expect(onTextChangedDiposeable).toBeDefined(); - const codeContent = { - text: 'console.log("Hello World!");', - uri: '/workspace/statemachineUri.statemachine' - }; - const modelRefModified = await buildModelReference(codeContent); + const spyOnTextChangedDiposeable = vi.spyOn(onTextChangedDiposeable, 'dispose'); + + // because there are default models now, the first update of models will not lead to onTextChanged dispoe + expect(spyAnnounceModelUpdate).toHaveBeenCalledTimes(1); + expect(spyOnTextChangedDiposeable).toHaveBeenCalledTimes(0); - wrapper.updateEditorModels({ - modelRefModified + const app = wrapper.getEditorApp(); + app?.setModelRefDisposeTimeout(1000); + + await wrapper.updateCodeResources({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}_2.statemachine`, + } }); - expect(spyModelUpdateCallback).toHaveBeenCalledTimes(2); - expect(spyDisposableStoreMonaco).toHaveBeenCalledTimes(2); + expect(spyAnnounceModelUpdate).toHaveBeenCalledTimes(2); + expect(spyOnTextChangedDiposeable).toHaveBeenCalledTimes(1); }); test('LanguageClientWrapper Not defined after construction without configuration', async () => { const wrapper = new MonacoEditorLanguageClientWrapper(); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); - await expect(await wrapper.init(createWrapperConfigExtendedApp())).toBeUndefined(); + await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); const languageClientWrapper = wrapper.getLanguageClientWrapper('unknown'); expect(languageClientWrapper).toBeUndefined(); }); test('LanguageClientWrapper unreachable rejection handling', async () => { - const wrapperConfig = createWrapperConfigExtendedApp(); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); wrapperConfig.languageClientConfigs = { configs: { javascript: createDefaultLcUnreachableUrlConfig(12345) @@ -202,14 +225,24 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { expect(wrapper.isStarting()).toBeFalsy(); expect(wrapper.isDisposing()).toBeFalsy(); - const wrapperConfig2 = createWrapperConfigExtendedApp(); + const wrapperConfig2 = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}_2.js` + } + }); await expect(await wrapper.initAndStart(wrapperConfig2)).toBeUndefined(); }); test('Test html parameter with start', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - const wrapperConfig = createWrapperConfigExtendedApp(); + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World";', + uri: `/workspace/${expect.getState().testPath}.js` + } + }); const htmlContainer = wrapperConfig.htmlContainer; wrapperConfig.htmlContainer = undefined; diff --git a/vitest.config.classic.ts b/vitest.config.classic.ts deleted file mode 100644 index ce93ea57..00000000 --- a/vitest.config.classic.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* -------------------------------------------------------------------------------------------- - * Copyright (c) 2024 TypeFox and others. - * Licensed under the MIT License. See LICENSE in the package root for license information. - * ------------------------------------------------------------------------------------------ */ - -import { mergeConfig } from 'vite'; -import { defineConfig as defineVitestConfig } from 'vitest/config'; -import definedViteConfig from './vite.config.js'; -import { vitestConfig } from './vitest.config.js'; - -/// - -export const vitestClassicConfig = { - ...vitestConfig, -}; -vitestClassicConfig.test.include = [ - '**/wrapper/test/editorApp-classic.test.ts', - '**/wrapper/test/wrapper-classic.test.ts', - '**/wrapper/test/workers/workerLoaders.test.ts' -]; -vitestClassicConfig.test.testTimeout = 20000; -vitestClassicConfig.test.browser.api.port = 20102; - -const definedVitestConfig = defineVitestConfig(vitestClassicConfig); - -export default mergeConfig(definedVitestConfig, definedViteConfig); - diff --git a/vitest.config.ts b/vitest.config.ts index 99531a13..60086f91 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -11,7 +11,9 @@ import definedViteConfig from './vite.config.js'; export const vitestConfig = { test: { - testTimeout: 25000, + testTimeout: 30000, + // fileParallelism: false, + // threads: false, browser: { enabled: true, headless: true, From 4fe903f62b947ce2526d1c0e21b4afc14bfe4c13 Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Thu, 3 Apr 2025 13:22:42 +0200 Subject: [PATCH 2/6] EditorApp: Move code to better places, reduce some redundant code, remove getTextContents --- packages/wrapper/src/editorApp.ts | 216 ++++++++++++-------------- packages/wrapper/src/wrapper.ts | 4 - packages/wrapper/test/wrapper.test.ts | 8 +- 3 files changed, 105 insertions(+), 123 deletions(-) diff --git a/packages/wrapper/src/editorApp.ts b/packages/wrapper/src/editorApp.ts index 879e30d4..637d331e 100644 --- a/packages/wrapper/src/editorApp.ts +++ b/packages/wrapper/src/editorApp.ts @@ -114,6 +114,37 @@ export class EditorApp { this.config.languageDef = userAppConfig?.languageDef; } + getConfig(): EditorAppConfig { + return this.config; + } + + haveEditor() { + return this.editor !== undefined || this.diffEditor !== undefined; + } + + getEditor(): monaco.editor.IStandaloneCodeEditor | undefined { + return this.editor; + } + + getDiffEditor(): monaco.editor.IStandaloneDiffEditor | undefined { + return this.diffEditor; + } + + getTextModels(): TextModels { + return { + modified: this.modelRefs.modified.object.textEditorModel, + original: this.modelRefs.original?.object.textEditorModel ?? undefined + }; + } + + registerOnTextChangedCallbacks(onTextChanged?: (textChanges: TextContents) => void) { + this.onTextChanged = onTextChanged; + } + + public setModelRefDisposeTimeout(modelRefDisposeTimeout: number) { + this.modelRefDisposeTimeout = modelRefDisposeTimeout; + } + async init(): Promise { const languageDef = this.config.languageDef; if (languageDef) { @@ -169,43 +200,24 @@ export class EditorApp { this.logger?.info('Init of EditorApp was completed.'); } - getConfig(): EditorAppConfig { - return this.config; - } - - haveEditor() { - return this.editor !== undefined || this.diffEditor !== undefined; - } - - getEditor(): monaco.editor.IStandaloneCodeEditor | undefined { - return this.editor; - } - - getDiffEditor(): monaco.editor.IStandaloneDiffEditor | undefined { - return this.diffEditor; - } - async createEditors(htmlContainer: HTMLElement): Promise { if (this.config.useDiffEditor === true) { this.diffEditor = monaco.editor.createDiffEditor(htmlContainer, this.config.diffEditorOptions); - this.diffEditor.setModel({ + const model = { modified: this.modelRefs.modified.object.textEditorModel!, original: this.modelRefs.original!.object.textEditorModel! - }); - - this.announceModelUpdate({ - modified: this.modelRefs.modified.object.textEditorModel, - original: this.modelRefs.original!.object.textEditorModel! - }); + }; + this.diffEditor.setModel(model); + this.announceModelUpdate(model); } else { + const model = { + modified: this.modelRefs.modified.object.textEditorModel + }; this.editor = monaco.editor.create(htmlContainer, { ...this.config.editorOptions, - model: this.modelRefs.modified.object.textEditorModel - }); - - this.announceModelUpdate({ - modified: this.modelRefs.modified.object.textEditorModel + model: model.modified }); + this.announceModelUpdate(model); } } @@ -224,36 +236,77 @@ export class EditorApp { updateOriginal = true; } - // only update if all reaquired models are available if (this.config.useDiffEditor === true) { if (updateModified && updateOriginal) { - this.diffEditor?.setModel({ + const model = { modified: this.modelRefs.modified.object.textEditorModel!, original: this.modelRefs.original!.object.textEditorModel! - }); + }; + this.diffEditor?.setModel(model); - this.announceModelUpdate({ - modified: this.modelRefs.modified.object.textEditorModel, - original: this.modelRefs.original!.object.textEditorModel! - }); + this.announceModelUpdate(model); } else { - this.logger?.info('Diff Editor: Code resources were not updated. Either unchanged or undefined.'); + this.logger?.info('Diff Editor: Code resources were not updated. They are ether unchanged or undefined.'); } } else { if (updateModified) { - this.editor?.setModel(this.modelRefs.modified.object.textEditorModel); - - this.announceModelUpdate({ + const model = { modified: this.modelRefs.modified.object.textEditorModel - }); + }; + this.editor?.setModel(model.modified); + this.announceModelUpdate(model); } else { - this.logger?.info('Editor: Code resources were not updated. Either unchanged or undefined.'); + this.logger?.info('Editor: Code resources were not updated. They are either unchanged or undefined.'); } } await this.disposeModelRefs(); } + async buildModelReference(codeContent: CodeContent, logger?: Logger): Promise> { + const code = codeContent.text; + const modelRef = await createModelReference(vscode.Uri.parse(codeContent.uri), code); + + // update the text if different + if (modelRef.object.textEditorModel?.getValue() !== code) { + modelRef.object.textEditorModel?.setValue(code); + } + const enforceLanguageId = codeContent.enforceLanguageId; + if (enforceLanguageId !== undefined) { + modelRef.object.setLanguageId(enforceLanguageId); + logger?.info(`Main languageId is enforced: ${enforceLanguageId}`); + } + return modelRef; + }; + + private announceModelUpdate(textModels: TextModels) { + if (this.onTextChanged !== undefined) { + let changed = false; + if (textModels.modified !== undefined && textModels.modified !== null) { + const old = this.textChangedDiposeables.modified; + this.textChangedDiposeables.modified = textModels.modified.onDidChangeContent(() => { + didModelContentChange(textModels, this.onTextChanged); + }); + old?.dispose(); + changed = true; + } + + if (textModels.original !== undefined && textModels.original !== null) { + const old = this.textChangedDiposeables.original; + this.textChangedDiposeables.original = textModels.original.onDidChangeContent(() => { + didModelContentChange(textModels, this.onTextChanged); + }); + old?.dispose(); + changed = true; + } + + if (changed) { + // do it initially + didModelContentChange(textModels, this.onTextChanged); + } + } + } + async dispose() { if (this.editor) { this.editor.dispose(); @@ -288,10 +341,13 @@ export class EditorApp { this.modelDisposables.original.dispose(); this.modelDisposables.original = undefined; } - if (this.modelDisposables.modified === undefined && this.modelDisposables.original === undefined) { - this.logger?.debug('All model references are disposed.'); - } else { - this.logger?.debug('Model references are still available.'); + + if (this.logger?.getLevel() === LogLevel.Debug) { + if (this.modelDisposables.modified === undefined && this.modelDisposables.original === undefined) { + this.logger.debug('All model references are disposed.'); + } else { + this.logger.debug('Model references are still available.'); + } } }; @@ -306,56 +362,6 @@ export class EditorApp { } } - getTextContents(): TextContents { - return { - modified: this.modelRefs.modified.object.textEditorModel?.getValue() ?? undefined, - original: this.modelRefs.original?.object.textEditorModel?.getValue() ?? undefined - }; - } - - getTextModels(): TextModels { - return { - modified: this.modelRefs.modified.object.textEditorModel, - original: this.modelRefs.original?.object.textEditorModel ?? undefined - }; - } - - registerOnTextChangedCallbacks(onTextChanged?: (textChanges: TextContents) => void) { - this.onTextChanged = onTextChanged; - } - - public setModelRefDisposeTimeout(modelRefDisposeTimeout: number) { - this.modelRefDisposeTimeout = modelRefDisposeTimeout; - } - - private announceModelUpdate(textModels: TextModels) { - if (this.onTextChanged !== undefined) { - let changed = false; - if (textModels.modified !== undefined && textModels.modified !== null) { - const old = this.textChangedDiposeables.modified; - this.textChangedDiposeables.modified = textModels.modified.onDidChangeContent(() => { - didModelContentChange(textModels, this.onTextChanged); - }); - old?.dispose(); - changed = true; - } - - if (textModels.original !== undefined && textModels.original !== null) { - const old = this.textChangedDiposeables.original; - this.textChangedDiposeables.original = textModels.original.onDidChangeContent(() => { - didModelContentChange(textModels, this.onTextChanged); - }); - old?.dispose(); - changed = true; - } - - if (changed) { - // do it initially - didModelContentChange(textModels, this.onTextChanged); - } - } - } - updateLayout() { if (this.config.useDiffEditor ?? false) { this.diffEditor?.layout(); @@ -364,26 +370,6 @@ export class EditorApp { } } - updateMonacoEditorOptions(options: monaco.editor.IEditorOptions & monaco.editor.IGlobalEditorOptions) { - this.getEditor()?.updateOptions(options); - } - - async buildModelReference(codeContent: CodeContent, logger?: Logger): Promise> { - const code = codeContent.text; - const modelRef = await createModelReference(vscode.Uri.parse(codeContent.uri), code); - - // update the text if different - if (modelRef.object.textEditorModel?.getValue() !== code) { - modelRef.object.textEditorModel?.setValue(code); - } - const enforceLanguageId = codeContent.enforceLanguageId; - if (enforceLanguageId !== undefined) { - modelRef.object.setLanguageId(enforceLanguageId); - logger?.info(`Main languageId is enforced: ${enforceLanguageId}`); - } - return modelRef; - }; - } export const verifyUrlOrCreateDataUrl = (input: string | URL) => { diff --git a/packages/wrapper/src/wrapper.ts b/packages/wrapper/src/wrapper.ts index ca19eaab..af73eb2c 100644 --- a/packages/wrapper/src/wrapper.ts +++ b/packages/wrapper/src/wrapper.ts @@ -320,10 +320,6 @@ export class MonacoEditorLanguageClientWrapper { return this.languageClientWrappers.get(languageId)?.getLanguageClient(); } - getTextContents(): TextContents | undefined { - return this.editorApp?.getTextContents(); - } - getTextModels(): TextModels | undefined { return this.editorApp?.getTextModels(); } diff --git a/packages/wrapper/test/wrapper.test.ts b/packages/wrapper/test/wrapper.test.ts index a1d688bb..0f960441 100644 --- a/packages/wrapper/test/wrapper.test.ts +++ b/packages/wrapper/test/wrapper.test.ts @@ -97,8 +97,8 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { } }); - const textContents = wrapper.getTextContents(); - expect(textContents?.modified).toEqual('const text = "Goodbye World";'); + const textModels = wrapper.getTextModels(); + expect(textModels?.modified?.getValue()).toEqual('const text = "Goodbye World";'); expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('const text = "Goodbye World";'); }); @@ -126,8 +126,8 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { } })).toBeUndefined(); - const textContents = wrapper.getTextContents(); - expect(textContents?.modified).toEqual('const text = "Goodbye World";'); + const textModels = wrapper.getTextModels(); + expect(textModels?.modified?.getValue()).toEqual('const text = "Goodbye World";'); expect(wrapper.getEditor()?.getModel()?.getValue()).toEqual('const text = "Goodbye World";'); }); From d3da92250599f4adfb19091d9497b0b096e63ccc Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Fri, 4 Apr 2025 15:09:22 +0200 Subject: [PATCH 3/6] Implement review feedback: useRef for onTextChanged --- packages/wrapper-react/src/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/wrapper-react/src/index.tsx b/packages/wrapper-react/src/index.tsx index c9f63152..e0158262 100644 --- a/packages/wrapper-react/src/index.tsx +++ b/packages/wrapper-react/src/index.tsx @@ -27,6 +27,8 @@ export const MonacoEditorReactComp: React.FC = (props) => { const wrapperRef = useRef(new MonacoEditorLanguageClientWrapper()); const containerRef = useRef(null); + const onTextChangedRef = useRef(onTextChanged); + onTextChangedRef.current = onTextChanged; useEffect(() => { const disposeMonaco = async () => { @@ -49,7 +51,11 @@ export const MonacoEditorReactComp: React.FC = (props) => { const startMonaco = async () => { if (containerRef.current) { try { - wrapperRef.current.registerTextChangedCallback(onTextChanged); + wrapperRef.current.registerTextChangedCallback((textChanges) => { + if (onTextChangedRef.current !== undefined) { + onTextChangedRef.current(textChanges); + } + }); await wrapperRef.current.start(); onLoad?.(wrapperRef.current); } catch (e) { From ad82d3bd13700be58cbd33744f039a9859508ddb Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Fri, 11 Apr 2025 22:29:04 +0200 Subject: [PATCH 4/6] Update to monaco-vscode-api 16.0.2, improve react component restart behaviour --- .github/workflows/main.yml | 2 + README.md | 6 +- package-lock.json | 2910 ++++++++--------- package.json | 24 +- packages/client/package.json | 22 +- packages/examples/package.json | 81 +- .../langium-dsl/config/extendedConfig.ts | 3 +- .../langium-dsl/worker/langium-server.ts | 2 + packages/wrapper-react/package.json | 2 +- packages/wrapper-react/src/index.tsx | 35 +- packages/wrapper-react/test/helper.ts | 25 +- packages/wrapper-react/test/index.test.tsx | 110 +- packages/wrapper/package.json | 60 +- .../test/languageClientWrapper.test.ts | 12 +- packages/wrapper/test/support/helper.ts | 9 +- .../wrapper/test/workers/langium-server.ts | 26 - packages/wrapper/test/wrapper.test.ts | 62 +- verify/angular/package.json | 2 +- verify/peerNpm/package.json | 2 +- verify/peerPnpm/package.json | 2 +- verify/peerYarn/package.json | 22 +- vitest.config.ts | 2 - 22 files changed, 1747 insertions(+), 1674 deletions(-) delete mode 100644 packages/wrapper/test/workers/langium-server.ts diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 75d934db..ee555e78 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,6 +22,8 @@ jobs: - name: Volta uses: volta-cli/action@v4 + with: + node-version: 20 - name: Use pnpm uses: pnpm/action-setup@v3 diff --git a/README.md b/README.md index ef81baba..7612d4ad 100644 --- a/README.md +++ b/README.md @@ -256,12 +256,12 @@ Whenever you used `monaco-editor`/`@codingame/monaco-vscode-editor-api` `vscode` If you use pnpm or yarn, you have to add `vscode` / `@codingame/monaco-vscode-api` as direct dependency, otherwise the installation will fail: ```json -"vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3" +"vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2" ``` ### @codingame/monaco-vscode-editor-api / monaco-editor usage -When you use the libraries from this project you are no longer are required to proxy `monaco-editor` like `"monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~15.0.3"` in you `package.json`. You can directly use it like this: +When you use the libraries from this project you are no longer are required to proxy `monaco-editor` like `"monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~16.0.2"` in you `package.json`. You can directly use it like this: ```js import * as monaco from '@codingame/monaco-vscode-editor-api'; @@ -271,7 +271,7 @@ If your dependency stack already contains a reference `monaco-editor` you must e ```json "overrides": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~16.0.2" } ``` diff --git a/package-lock.json b/package-lock.json index 7dee93c7..f5acf7b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,21 +13,21 @@ ], "devDependencies": { "@codingame/esbuild-import-meta-url-plugin": "~1.0.3", - "@codingame/monaco-vscode-rollup-vsix-plugin": "~15.0.3", - "@eslint/eslintrc": "~3.3.0", - "@eslint/js": "~9.23.0", + "@codingame/monaco-vscode-rollup-vsix-plugin": "~16.0.2", + "@eslint/eslintrc": "~3.3.1", + "@eslint/js": "~9.24.0", "@stylistic/eslint-plugin": "~4.2.0", - "@testing-library/react": "~16.2.0", - "@types/node": "~22.13.17", - "@types/react": "~19.1.0", - "@types/react-dom": "~19.1.0", - "@typescript-eslint/eslint-plugin": "~8.29.0", - "@typescript-eslint/parser": "~8.29.0", + "@testing-library/react": "~16.3.0", + "@types/node": "~22.14.0", + "@types/react": "~19.1.1", + "@types/react-dom": "~19.1.2", + "@typescript-eslint/eslint-plugin": "~8.29.1", + "@typescript-eslint/parser": "~8.29.1", "@vitejs/plugin-react": "~4.3.4", "@vitest/browser": "~3.1.1", "editorconfig": "~2.0.1", "esbuild": "~0.25.2", - "eslint": "~9.23.0", + "eslint": "~9.24.0", "eslint-plugin-header": "~3.1.1", "eslint-plugin-import": "~2.31.0", "eslint-plugin-unused-imports": "~4.1.4", @@ -37,8 +37,8 @@ "playwright": "~1.51.1", "shx": "~0.4.0", "tsx": "~4.19.3", - "typescript": "~5.8.2", - "vite": "~6.2.4", + "typescript": "~5.8.3", + "vite": "~6.2.6", "vitest": "~3.1.1" }, "engines": { @@ -426,1929 +426,1946 @@ } }, "node_modules/@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common/-/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common-15.0.3.tgz", - "integrity": "sha512-RIe5gN1C3fdQhdwTvSOr61g1hQJ5kivdTMfMyT2FTtCdN4dQytz0N5T2n5uSDjHHdEogMGOJrq0l4yzte5TXTg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common/-/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common-16.0.2.tgz", + "integrity": "sha512-dxk+MqGxmnRn7zJ1PgxjKgmK+mg9g+xQEr4wvdvcvXXqe/+9pn1L2AJXXsVEZ83SV7Fc7ZD50bpLNxT7VEdYAA==", "license": "MIT" }, "node_modules/@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common/-/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common-15.0.3.tgz", - "integrity": "sha512-rpC8ILWQklPfNWJMy9sK1mKJRWcCQPNZAQXI/DGTo37wgoaKT7wnBHnNHwY7ccbDMuck7IjXyc8yvqPVnGnaLw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common/-/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common-16.0.2.tgz", + "integrity": "sha512-v7cSj2LoRrjfpIlJS89RdsC+gmTu2iYQO9M5d8/b/CaM7X0Hlw+98AnkcMzALq2O8XHIhclmuzrkTD84/ZOIew==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common/-/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common-15.0.3.tgz", - "integrity": "sha512-wsvQjwtAmmffinxZkN+zAMZ6KnqszjEnOSenhNgzuPyC3wLcV38obU1jJaO1RJCn2XQqFw0PrjpP65DCX8owMg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common/-/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common-16.0.2.tgz", + "integrity": "sha512-ztHWjvHD4xCZpid5lwYDZnCM/wcg5B2fME2+olOWnW0xIPBzqbIC4JZjxPp0ERr7g2P6UxSHnFjE5tEFakKgxQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common/-/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common-15.0.3.tgz", - "integrity": "sha512-vfrtx1j10CEGrC1jQ9Mfd5IRDWdTs77vSnyj57S7YwDC+Od8/TURFyWSKl97i63OktyJ0voi0e93m0ungkyKxg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common/-/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common-16.0.2.tgz", + "integrity": "sha512-G1Iy7z75aOBOWnoSIkgiPd/KUk1WguPlxdvxTHj6uW4lKG4mNhWTzk41GC2yhr21lTZtA/+bj2+1vgARrG8PxQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common/-/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common-15.0.3.tgz", - "integrity": "sha512-9s3keQsY4I5hyT7IEVoOjr+uH92Mm1XLkuRdhoCpA9xTV90FNlr4rLf7fCdsJV5bEUEArNmuSY34gRf2dcBsHQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common/-/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common-16.0.2.tgz", + "integrity": "sha512-g3DIeIVjsx/2ceDg27vCd79Ny8dwHS2pLgPGI0Q9IU9HqTi7hOWZS34sLnmrnt8v+yhc0PJU5sy4LJ/9ZEHgpA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common/-/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common-15.0.3.tgz", - "integrity": "sha512-+UG6Nug01lVXmuCpRpF4ufycAq6Rkymti0mOmaeWkd5hE87W9yP6lOmJyTezfSl2ngobirXVL2krDj2BTpZ3ag==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common/-/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common-16.0.2.tgz", + "integrity": "sha512-SVYVd8U4Ab/iqyYfrhUxjprCipLroMdyl+QC0FuIkzOInHkNPomtm7jbgCqSOuaUtSYh+uoJ6VCQ2S9VmOvZfQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common/-/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common-15.0.3.tgz", - "integrity": "sha512-0bmSKrWlOijW+NtHFdDzJ+mkHbe/hyNp7TDGkMljTlyHkX6bgNUfTxW8wyuG3VTCKE2tmkqYapk66zgXlQnR6w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common/-/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common-16.0.2.tgz", + "integrity": "sha512-Y4tn4itr+Bs8Fu3vWxrRBxos0zc5uTZjuJqqUuPe2LMUtsFqGuPDb7yVrD6OsyMA5PTHILAf3cZd+OEGwFuGug==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common/-/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common-15.0.3.tgz", - "integrity": "sha512-an0El54+qMgK3scJDayHRRCLzEp42F9qpIUNeyQANys4BvbeJtrMBfX1OJTbbN9hQprl49/vtOTXnTQI0Uv9vw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common/-/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common-16.0.2.tgz", + "integrity": "sha512-AnkOxBggz+AHhimeKUVj32ahtYH+O/zDTluwUFzt/OV1IRfIN9pe7gl8jg5rpXvztoH9zpk/7xaFD+wjkjLQHw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common/-/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common-15.0.3.tgz", - "integrity": "sha512-aH8Vubem2xdeB7ToLfd4TqT5R/JR+R4mcdJsCa3rUXAzZzENXUV9jSmpWYdL7Upknu4Oc7ktQU24JqeTucS8cw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common/-/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common-16.0.2.tgz", + "integrity": "sha512-GVtFInM9qEIblFdm0TvBFOSj4MA+kTxC+N3rGrby9cc4+41IuQKFa5V0K+jTtgEBe+J/uYo964xnueVJMMFRwQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-168b98e5-dc20-5807-b1f9-798f1f92b37f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-168b98e5-dc20-5807-b1f9-798f1f92b37f-common/-/monaco-vscode-168b98e5-dc20-5807-b1f9-798f1f92b37f-common-15.0.3.tgz", - "integrity": "sha512-VRvSryHp0pZZ0GEoVchXWEXuK5/4VEkM7ZsQlJzSdUhmQCX8548ZrMFzureC9zhtfXTLHRbSYm6icWSUXuZxdg==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common/-/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common-15.0.3.tgz", - "integrity": "sha512-2yQkfUGHrhqEXqFWmjxRC+dHh8A+cdKzcTBMgtF7NCoS367zZMRJ4ycuXTqal2GojXFMLogRDuVXeRQUnSzcgg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common/-/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common-16.0.2.tgz", + "integrity": "sha512-m5IzaTFx6jr8WB1871h9C3DHPLgnoMVq3kNBqbiACPK82x5r8w59cfEzn66VwZnFjlzUrmwmvFrQ+W9tOO6FPQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common/-/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common-15.0.3.tgz", - "integrity": "sha512-WGqzMF6eKeNpBbs5sHK/1HqvNvO3+BXnbMRanTlTbn5yQyibUiR6pTkCatjq+ORgLGROa7wOEivj8rGNa308tw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common/-/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common-16.0.2.tgz", + "integrity": "sha512-gl1MnH/VGuzwguD/rb2T3B3bj+E+7jXBUHfJIqVw112lKE9pGYZWDXdth/ayF8sFeNxEN8eDI8eY76teoy+FWg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3" + "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "16.0.2", + "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common/-/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common-15.0.3.tgz", - "integrity": "sha512-n7xSvpBlufvOrnzHQYYRQ9/9mLiLSJkCdYg4aUu45fGwHQX9/2tfJ6JQ2GpyNHPBHHc3F467/zCOZzIgOU5UmA==", + "node_modules/@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common/-/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common-16.0.2.tgz", + "integrity": "sha512-WMzRvN7W+4nIpGSEsL0ScXhSj8Ba09PQ2y9NYG0NaCky/0Gy0l4z7cM5+nxLHoYgLM/5t8ghmepLHvmxILET0A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common/-/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common-15.0.3.tgz", - "integrity": "sha512-H7b+DxVM0dKN4jjJwDUkGXdTyOgDgCs1LDungfT5daio0iOX3X8s5T3zgxGW8wCmYlcaGLYfOjbPFyP2jzz8PA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common/-/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common-16.0.2.tgz", + "integrity": "sha512-Wy0kngKx9dkZSU30oXaXkERky1oawnUwU6B/eRho3pU0PH6LMyWNTPYMmJrWO4TCwl1hfOKTFVDYh2W2dFI8Jg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common/-/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common-15.0.3.tgz", - "integrity": "sha512-puUB9cLjRmlxOsppr3EkiANhs48pNI9U8UxPmJvB9Z9FliK5SqXBUNc9qetaPeWKQ03+NqSOvjK0O+5HABkqpQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common/-/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common-16.0.2.tgz", + "integrity": "sha512-OwPhb0JVdJ4sW2Yvs+bFkLbYC5b6fjZXdC1d221OuPkedNNRv7W5RD2Im+jQKxaIDcb0+rJJEebaRErb9OakgQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common/-/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common-15.0.3.tgz", - "integrity": "sha512-qk9GXEH0543oDrbLAke/Yh4x5mVejZc2v2tigQhwSCufG+1G3xMjX3f85ptSNGUHG9hbZNLXEtZm+zIXdeKPgw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common/-/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common-16.0.2.tgz", + "integrity": "sha512-h7BSiqyZhm/iEGLjuBtSVui+SKIzCzPHshgiQYigupb0+vHa+h88QrLwsPD8nIgSkZ2nMqQblbUsiLDhP80e+Q==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3" + "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common/-/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common-15.0.3.tgz", - "integrity": "sha512-3bAUPcgnB0/Zcfci9BOQIZRTtLjv9ErIIEDYTNHBisDSMPu2Y0MJ+HmIccib8vFG7+/X8rR3X+cA3z7aN1GgPQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common/-/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common-16.0.2.tgz", + "integrity": "sha512-h4RTjmJZBNIZAFpvtxnRm21DF8Pz/vbEVIr3xcu4PfJ2pFXp3iajlAXUJ3PV61W2YAaO5Xdngy86bKj2T1tAVA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-api": "16.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common/-/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common-16.0.2.tgz", + "integrity": "sha512-hXiPyDKDGcuNZsAI++2DipxI2NTpNAqbkhbVX7GXE19yFOl14gpeTyP+WqBAY+eSpDEirxMeDN3e57XmtxLzSw==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common/-/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common-16.0.2.tgz", + "integrity": "sha512-pxcpQHFCfOSIFOWt2IJhUD6r6AN7JBxynHpZ4Aa8d7otFwybcq8e6uu/Svip1EUn3FPLOs31JB/OI3IAOmbLnw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common/-/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common-15.0.3.tgz", - "integrity": "sha512-jneKhOVaFGUbCJ3ypTEM2AA1epNJ/Q0Y/8p5xl1erbWwiKcSXGplIfW4HM9kFIvZeiVFZgl1Cndo9T/SQu5GJA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common/-/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common-16.0.2.tgz", + "integrity": "sha512-/7gOxu/K9isaGZEWxiVSD3Soa1l3QSvvKKEWo09GdghEAlX65AOkSFcZmXlupZuVauQ6GR71bntn8WtGYxRjww==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3", + "@codingame/monaco-vscode-api": "16.0.2", "@vscode/iconv-lite-umd": "0.7.0", "jschardet": "3.1.4" } }, "node_modules/@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common/-/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common-15.0.3.tgz", - "integrity": "sha512-2WXaQ0omlCmuVSirjSFtBF8zfOVbYWG8R7GdGb2KdXxOpiJMyvqqHbgTuCO4F/crE4wyTPZV243UAPIKHQqWsg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common/-/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common-16.0.2.tgz", + "integrity": "sha512-g8louzKRY2sTyGfCiPVAoJeOyIG/0qsLqfDqT7Hhuy/LiabFhUSnui/fUfCVYx7yBcQdF1Qi4wyJqxakpw0ZfQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common/-/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common-15.0.3.tgz", - "integrity": "sha512-RINRbA9lMIAVHdb16wQzIMoTIB7kXjG7XVNrJPcPYPrWScSXU14zsVppVkjxkLj1B92z714Usjd2+lyxYkrpPA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common/-/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common-16.0.2.tgz", + "integrity": "sha512-ellE3rRqHh8L7FdIayFTzymvjpELqAkG8Rn62k2kVTEwuY19lEVnUyWteHs/jyI8rCVMIRIbX7m7svUYF9I2OQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common/-/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common-15.0.3.tgz", - "integrity": "sha512-I308Ct3HzorkBncGXSDJGk0Li3sR+BmAhpTQ6EZ7cX7S0SnFHdGGkVyrTjjB85gzCzWnVfkp+zLFGdVIU1wdPg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common/-/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common-16.0.2.tgz", + "integrity": "sha512-IaQb/Az1SIJ3Iye48YCB4QNvIazrx2lBuVTdt0yTMknnhLDd3IBw4LQO9vLhpBXzV96bhjHN/wsl+2QMp1g+NQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common/-/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common-15.0.3.tgz", - "integrity": "sha512-zcfd1hLFV0M7DjvWo9+pjVKOKlf5KhUIXlmymGXNiLFg15r9OJZjizn2XuUH+gM18oyxwrTlrucplAlZe0847g==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common/-/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common-16.0.2.tgz", + "integrity": "sha512-TBDM/e4o8MpdSye3Xo7n6ngWjV3Y2MXon0Tp8jdInfCzv2Bb6zBxD2ytwtXJE1T+zQTBmu1berL91n1H9u1lSw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common/-/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common-15.0.3.tgz", - "integrity": "sha512-2/5na9EHB6kkzQiOFCy4LGC0cCzQrXXU/Z33wEOhTUhc9TXcw2Rd6p8XlNdshK7uZAkkkVqNBm/Ubr2j7eIlKw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common/-/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common-16.0.2.tgz", + "integrity": "sha512-pJuRi8lws7lh9ni68fYZcFMrwFPjkfmMYP6vO+ZLR4LPXc7FakDySLsh8R0/PG3tC2PA4+Pgs6ZRNQWbpitlaw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common/-/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common-15.0.3.tgz", - "integrity": "sha512-sC9nhJC/oOlRW58kjpf53/Ao6z3Rgc6G8XRxqZ1dY2BT01Q1KogIceCosTqB4I9mU3AdDqnWMDvP+toHjGvICg==", + "node_modules/@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common/-/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common-16.0.2.tgz", + "integrity": "sha512-QXXzdHY+1nEBygQ3EsQVnCWtJOu3gvUubuQBrkdmiOeL/W+Am2Uuuflt65bFiZkZOkduPD5/mMUHDPIg7c2mjg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common/-/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common-15.0.3.tgz", - "integrity": "sha512-klT3srWR5svpJ66Sbx6pW7kQc1h/zerB8RxFb0wVPFMoCc8OYBHU1MY7I3hrC6HbPCat/armOfy/gBHkip21lg==", + "node_modules/@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common/-/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common-16.0.2.tgz", + "integrity": "sha512-sCGRM7MT/Smp3VqVM9QKcc1GXowmWO9eCV1E9Uy2DjC+6h4w/zAxqARs4MEDZMR0ZCSIDr1i6+pajXIvYVRb4Q==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common/-/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common-15.0.3.tgz", - "integrity": "sha512-tT/9bzRsAlTbsDKURjTAAH5Yf8l3AxNl3r9MNZWbIcJCClIETUCQc3GD6BOwfEaVhf3QsCQn1fL3ExnuCTivNA==", + "node_modules/@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common/-/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common-16.0.2.tgz", + "integrity": "sha512-N8P56/3bVKl9N+4d3j8EVsjDYaVgtYNCfDUYzAJGTR0pNSwK1sBA832lIBAeSjXTmXxDGdHNwG1q0zDdkXYK8w==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common/-/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common-15.0.3.tgz", - "integrity": "sha512-8pDOEXCdX2OPjelgNx/sSAIwY0wwPimUvYpAq3sqaKhI3METe7WH8ET5IrrsXOqUocIahsGHABRQ96eZ9NEq9Q==", + "node_modules/@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common/-/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common-16.0.2.tgz", + "integrity": "sha512-M3H3n/ozyN48XsumoMC4HLORL23nkrSrKZux5s3pVUZCgVGA+X46DhCVgdCqGawRvEu36mICtvmsti5uis5aUQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-44b92f80-48ea-5562-a8d0-18a015f8d845-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-44b92f80-48ea-5562-a8d0-18a015f8d845-common/-/monaco-vscode-44b92f80-48ea-5562-a8d0-18a015f8d845-common-15.0.3.tgz", - "integrity": "sha512-5dijXBW3+qw18xw5Jsys8xJCF4omJ7AdLqJeWL1M0GHrUSVGzZbMfOlq9D6vVvi5JpF5MDaNtWXz1Fn2cIamaw==", + "node_modules/@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common/-/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common-16.0.2.tgz", + "integrity": "sha512-8XKBIMXHUvfKviObtR/TGMdd+Lz7t4EA2AnMDp4TsIUi6nLLinNnl8+v/8f2W1ctM0msbV81Rh6QaXCHr4JtAA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common/-/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common-15.0.3.tgz", - "integrity": "sha512-66tpicprKAk7PGNm4hG/0cnTIygZQqKP8Kfeag8TiZ2qHm3o+3RuosBgztQtJlNs7dv5zenwHHl2tPHIAYMDGg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common/-/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common-16.0.2.tgz", + "integrity": "sha512-B7Yre37hpi/5dnPNzJm+Lfpp2blsYSo9M0qr3GoNL3xqucNMeGIltE8Fg+ysXLNJSOz73RKUUh8A4bFS5oXqyw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3" + "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common/-/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common-15.0.3.tgz", - "integrity": "sha512-YedwZPfCRDRBCGKqBJN7VWi2EiAcQLRycpChU9ocjgtR4hAvpzAaaXq7bqVUXqLW36xq1peQ9POSBWh/BUg4Tw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common/-/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common-16.0.2.tgz", + "integrity": "sha512-F5rqgd6EyoE2HTiW0oc8LF72hojYH5RA4y4fHAsJLURXIlcCJB8Q994ZMizFxRclvTUySCpycWASC0qy+B+9KA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common/-/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common-15.0.3.tgz", - "integrity": "sha512-/cPxvh7QovITa7M5O2mMusDXX5GccZfNlX2ZUx6p6/P7UPUBNDI4B105uuod2VHc86KAHGuEjD9NC8ZshdBpMw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common/-/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common-16.0.2.tgz", + "integrity": "sha512-3jv8FlYyYOeO9E4AogBSLIPmqlANVGgFocaumYV1uRKUJnG6gOBxpbu4di0jtwFfpfDyNmoQlNVpetO9tPQn9g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common/-/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common-15.0.3.tgz", - "integrity": "sha512-MffqZffCMUKKkvtBqNyeFqT3MhhzfHDGSMI2Aa2XdonIKmNMNLGaVoP5Iq/nIXv26UwMM+71VZl69WJ5jN0qEA==", + "node_modules/@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common/-/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common-16.0.2.tgz", + "integrity": "sha512-uipUNB0hYljhFvmNU1sCEiUOI1a95SHEwArkbtAfOHlc1W70zU0UbNc8Cea4a+XwWBf9gTAnvmC2EPRHCEBmmQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common/-/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common-15.0.3.tgz", - "integrity": "sha512-tYkSk0KDY462y4QXliD//Bv2VVEDDS5DdWmgUMuTZSYBTspmI5eeVLnjQdHH7IJ7PHAzwMTCBc2MIf5GTCKMTA==", + "node_modules/@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common/-/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common-16.0.2.tgz", + "integrity": "sha512-E5FYJoFXyM1Qmp/d2vdq4MnE4iTApTWZMsKXbzebPJXODGmn4mMV/aj64Ud047vr+KcATCgw4mi/h7d8MykWyw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common/-/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common-15.0.3.tgz", - "integrity": "sha512-aevHMY8qnXqoJXagr33+DdpXhGqYBvcj5k3ad5jG6yhpUm64Fq8F8meL3BlbLA/wkQuF9UuBzb4WAkGDjtWVbQ==", + "node_modules/@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common/-/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common-16.0.2.tgz", + "integrity": "sha512-PsTV69JcV8cefNjebFdK/PDKlkFWiGcf4paOAObrAUlNXVWxWuEyv+3XsTeZQi6nj2GhOpbsH8s0d4J454siBQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common/-/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common-15.0.3.tgz", - "integrity": "sha512-xHQiLr1UZIcXv5Vx/kbTys/9Gt2YSWGL55hbtAZWyP+sREtk8249BIHFCyrWu4EbMP0aQo8vxlknvM5axw/mBg==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-168b98e5-dc20-5807-b1f9-798f1f92b37f-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common/-/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common-15.0.3.tgz", - "integrity": "sha512-qjta24Ue0Dkr04LU6PhoScP2A6junTxDPe2tsT8DFMlJkH57uwDOxgTvRMIEnUc8fNiEwdb5ZMRBBP8mv9tylA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common/-/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common-16.0.2.tgz", + "integrity": "sha512-jbGj2pWckHKbeCvfqhSExPi1eaJ9bhffXJsHE5Xb6R0jQQc2wMjbr3lcLLumoGVs/gUrosR+C7YWqR7EF2Te5A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common/-/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common-15.0.3.tgz", - "integrity": "sha512-TDInDNnbNdG6z0hU2fKpn7SFynJxyLAD8Pe+86xla3Ia7SczDbfJFs5VzPSHx0fuuYRFZyupou02h0sIDJcrFQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common/-/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common-16.0.2.tgz", + "integrity": "sha512-x5MTKDLBAum3fx3kH3E/J5qY4PaGmeW5IpXgKznTpPtiUdLehb1IrmWgdDF51uSEKj2CCdTe6ySVwEHA1rXtxA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common/-/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common-15.0.3.tgz", - "integrity": "sha512-J6gOEfh6P58xRzk1uXPToZAWmoa0SRCld7gr3RjQEiBCV6yXD1qLvq/lzdSrA+iJfXrMkopMYVo4c4EtYTvUEw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common/-/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common-16.0.2.tgz", + "integrity": "sha512-siAVTaaoz3EcBPAsuq3GpAj7smQbpN4UHzUxW+7ud8fsa7y7oN50+acV+jqo7HhzDYa0a5gebyecAh/n5Gs6Cg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common/-/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common-15.0.3.tgz", - "integrity": "sha512-7qonihIU6QqXojk9Dc8owMGc8LjYQXL4nZSjwOMkUgipzRQkYtSt/Em6dHbbpRaF4wW6NzZ5ZoOWtFdktPerqw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common/-/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common-16.0.2.tgz", + "integrity": "sha512-Iwt8/otj71mVd/hLI50GH/I5W6oP29eZkmuKkYgc1BKPdAV0/8f/deKoWi8lOhr8MHTJsLf+Hn6eNvFr1A9NUg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-695440c8-a687-5594-b476-bbc7b36bafe9-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-695440c8-a687-5594-b476-bbc7b36bafe9-common/-/monaco-vscode-695440c8-a687-5594-b476-bbc7b36bafe9-common-15.0.3.tgz", - "integrity": "sha512-LqQBJOleDTGMMUHiUZVmCtog9Cms/zf+orIExjH/Qj/hCFmZ/ormKdFaotV33zzB2wyrfbNWaJqe/c1HlD7bsg==", + "node_modules/@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common/-/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common-16.0.2.tgz", + "integrity": "sha512-hIa/kmzDMtjFp8G1Jn8FLDmXa2sXxRlyConhGklWebBZRtiPb0ZIrtG0GbTp++YTEVdzHY7Ang4N6HmA7uBbmw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common/-/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common-15.0.3.tgz", - "integrity": "sha512-W1dxa/COFkG13NGD806Zdwq3d3564kuT30u3gu7bMP1maiQvzKEqm99MVxw0Xp4GgeFqglnQFzHMs/JYXaMUeA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common/-/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common-16.0.2.tgz", + "integrity": "sha512-0bDRDP3S2Dr4BmOjgs98MLTLHyoxACMHTziXpQjzP+hEWO927LIIxGHiGTNoUP/yQXGC+O1+NOoa2/a3R6mKhw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "16.0.2", + "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common/-/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common-15.0.3.tgz", - "integrity": "sha512-ZElwsT8VGEEeA94+GHZLmHD75Fe3bcEKMQL4bwp4j6ZTn7MBdZtOYFLHQ0VsCsPbQQj5I84c/5JLJTE2VYJ1Kw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common/-/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common-16.0.2.tgz", + "integrity": "sha512-H3mxIBBY4UwKRT8e1QDwPVwDVXeRGeqY/eGaT/2dHpbOAWDt513pwAJHIbh6kzddBP/+d88tookgzfd6Jw8yGA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common/-/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common-15.0.3.tgz", - "integrity": "sha512-f8OyFTvouAHX/CKM/R2cNhqFO48tdN6WmUPePzdx/egq3UG85QILjGYiNz3G6UqR/wwxD0asi4COgZgs/41KIg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common/-/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common-16.0.2.tgz", + "integrity": "sha512-G4+H3ex3vfr6JPnHjZzJ2oBm4AhQ2f15yb0EwRk5RV/ytbkje8wEJ5GH7Y/4XiTGoVwQLcw2JUFSizoVfHAhdA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common/-/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common-15.0.3.tgz", - "integrity": "sha512-vbgnu3Z/i8akBsMdaJTTgBw6Dp7iCm9uQ0uStx65bK/9ZJ6DllhgfObh0ncTGYCvE+CUENgzlaf8PNfo0Vpr7Q==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common/-/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common-16.0.2.tgz", + "integrity": "sha512-F/vG8IrXLuS1SrGW8BsP+OQjsihnuuOLwqOBg+/BG23mGaOHcNYQd4W8i/V2H6bRq0gPqhOVTJQD4rNjPrd6/A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common/-/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common-15.0.3.tgz", - "integrity": "sha512-fPbOc/lAq+gC3+KR7hmYfaVVdjzbjPIZ0vrY9nvinq5Fp5ZHJKIlSp6B5NbNDJs0OXUIeSBBM8wGN/jq0W2Miw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common/-/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common-16.0.2.tgz", + "integrity": "sha512-8aXzfsqxJuQJY3BuUvAUNIYmReDALZoRXJc8ywHjCMNEX13uyqLkuW0IMu7aTjRqEB/Il4qJdvTZ62pboeuwrg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common/-/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common-15.0.3.tgz", - "integrity": "sha512-RC5pVLXGEScD4RUzoC6OhRaNxupfVGv05e98MaQxKLC5kgCQ6AjTya87Ws6urVDdbTuBO2Fl3CluZG4k6Tk3sA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common/-/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common-16.0.2.tgz", + "integrity": "sha512-JMbTvGeIEMG32ktfNseh2acVQrWe+sv0OWNCRmkB6mmtI5qDDO9XIkX6KBPb/L0EhJcMRXuTkmHGSfj97NctAg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common/-/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common-15.0.3.tgz", - "integrity": "sha512-Qkz7cokLFpgy5X2H1dbKpmaZQI20EbGGPsWeWXJkr8ZAsudYW4+Xc1J6LNmtVwtO2hAr/T3EW0NbzCeFet8QAQ==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common/-/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common-15.0.3.tgz", - "integrity": "sha512-ttM6Eq43id8KAS44EL3uYjGphQgkReMk/xo8LAj3anuhNeqlDxce6ODWXGwsqVpE5yj8T+o+ZlqDesFp13tieQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common/-/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common-16.0.2.tgz", + "integrity": "sha512-Th10yenoQYAJT+jeUeSzusa0nmiehqQ3LuVM3OVZHAhafdmeSaWxOl+nwovYsns24LWAVScA8rmmpVMNL7UU9g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common/-/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common-15.0.3.tgz", - "integrity": "sha512-S2AJVWzNJVksDQpGfk4ogn0BEC/fbX1DOzvjs3aEl8BbsbnPG/HH45q5FTHDVZ/pcGCepwPaPZ65X6ic9maZaw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common/-/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common-16.0.2.tgz", + "integrity": "sha512-gNfU05l2t0Zg9XiHhLfyWYeOQSoTbQzAc4ncU6i93nXXjDYg6UDYZv3+L3mFip7C60csqNg++NATRGvHLcxLoA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common/-/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common-15.0.3.tgz", - "integrity": "sha512-zGwph+GmmY7KJEGAbkG412xkHZFge7T6pu0uX6Gmil3B32h4Fd3dCozKRN5Yq+Vmop6nmglhUg+zK4jTgrohNA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common/-/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common-16.0.2.tgz", + "integrity": "sha512-mex8KskX4GSjDJ5y1iHLPkIQER0E2ROpJgZZ7o7c75PHsi1yU2NZ9oml8MoPTTWKv5IJgX/L5rpUSit/EcWDbA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common/-/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common-15.0.3.tgz", - "integrity": "sha512-fzuHOpPWWrs4KvM0K6xV6SwPQXw8H6LN7EO8NvP2K0xlXyiD1ydRQngPF5ZBmoUhUEfOKP3PwJn7TixIJGlRAw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common/-/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common-16.0.2.tgz", + "integrity": "sha512-uXwOg/vUsRwBO5oL1ME1cTWaFwDvHCULGwR8ANOf8HTkI3IpVHjfwHQ6HjVU/oI36ndBbAo7lTMtpbItJiSWew==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common/-/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common-15.0.3.tgz", - "integrity": "sha512-U73iIIBJYrt5Abcw3n/C+qYZ4eLSuYObz/P4wPrkgBJIbLxLnYMvVghgmy7lgB2BXG1QihL4rMzh7CnbvgIe6w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common/-/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common-16.0.2.tgz", + "integrity": "sha512-ml1WY9DmTbSAznOCwfOagUzQTwEFcmVR3SMRV1hrNzeFf0Kizpr6i693tC/yIR/t0RyIuWqwbYfxu+YnHzWZLg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common/-/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common-15.0.3.tgz", - "integrity": "sha512-bC6FMK2M4m5CtJ03aR86wJ5+VO8ySt5kN0/YeIDqtFb9KE3zWdZWo2zYmEYz1mb04851stErmPQ/4j1awg3upA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common/-/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common-16.0.2.tgz", + "integrity": "sha512-Yl6XNtN3Yj8Dv4QLz7JQj8tmN6kINPFCz5pbDKPXEi4vVLLnNwdA9836ZGs+9+DBRKvAo8ucWhjWlEfigrFXkg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common/-/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common-15.0.3.tgz", - "integrity": "sha512-ndbXvdqH9A3AQFljhhSgQZc9T/+14pUU0iv3Td+/C9okQTr/Lv/+S8Xw2+Skp/OVS5W//Nrh407oPhyLnhzFeQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common/-/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common-16.0.2.tgz", + "integrity": "sha512-KMAJ3qbMIXEdfyNcYo9a1iazSnNKFTIYWr5H3k8Njs9sW8SLpB9LtFhCIvwFDQ4FYj6yf5y0Tz5N5JSr1jm1Ug==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/-/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common-15.0.3.tgz", - "integrity": "sha512-scYg4NJ2DMzzRO4CUHvJI17kY0Wt5gxXeysyNS/PAbmz2E5a7Age58gwHuTqyUeVMxqSaA9CSnDNtw5t2Xhx0A==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "15.0.3", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common/-/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common-16.0.2.tgz", + "integrity": "sha512-5+qXEsqTYdiod2ExB71k7Xmty+NyBeNWV13VaNRuXR7IvI5gQpycfV5HexE4ABLiANyPbwGqtpKWVEzhMqVTVQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common": "16.0.2", + "@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": "16.0.2", + "@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "16.0.2", + "@codingame/monaco-vscode-ec21d4de-4d65-574c-8715-bb1a6bbad376-common": "16.0.2", "marked": "14.0.0" } }, "node_modules/@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common/-/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common-15.0.3.tgz", - "integrity": "sha512-JJwAIz+UzgfiHq+9LFduHvzXUhju4+g2awmXHOwygyFEWJuNLhPU9AfxkofM/zxkBh5CO604FE/CmBFg6tSCAw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common/-/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common-16.0.2.tgz", + "integrity": "sha512-h8yXb19Sti1G2sUxKcaXk151ToXFGMjMCUb5/Yd2i+fka0PaklHMo+SbqdA2nsl3gPh4xFl9T/WuYNkKEQDLag==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common/-/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common-15.0.3.tgz", - "integrity": "sha512-7qer436ZIXB/n+FCg6F07Odzi4+Dhl5Kz4d0w4rTIy122jCXC/AtmJv640POPHsXM4Yrsi6wHAo7wp0E3tW/Kg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common/-/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common-16.0.2.tgz", + "integrity": "sha512-mNRjFnk865kCRmhqSoLE9/6EHxIcFaxKYoN8hlWDAMTurs062fiO5+uo8maJxlLM2V2fQI2w8pkEYi3/7imHOg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common/-/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common-15.0.3.tgz", - "integrity": "sha512-XztTYSRRzko0HwSjvrdG2170z1p4bn5PptNN3BzVQ/EQFqN8Z+1+qa+tt10l6gRkeVuqnblPXuWD/pcz9Xpf5A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common/-/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common-16.0.2.tgz", + "integrity": "sha512-XPL400BJB+aWzoJ4Dau8M6Uk3vhnX6BZgynQvBxk8KU4t3b8sJo0MOOsKFeKXfROzRltVe41B/FWX4iZDX8RDw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common/-/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common-15.0.3.tgz", - "integrity": "sha512-2IAKoIsCEEl3aXHeJxjlQZ83WpFW4+xmQcdOjVQzqOcS/cfN25pRekqipcVdZeyVnoikAhGQiULn60AgdMcdyA==", + "node_modules/@codingame/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common/-/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common-16.0.2.tgz", + "integrity": "sha512-DE1cvnetxoyM+Tqywv2H5f4y9DXLIV6PVTBeqQ8Wuk5kPpTRIjoodFQdPbAd/D2vvaQa6KsCGHH5St7LkSP0gQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common/-/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common-15.0.3.tgz", - "integrity": "sha512-YbpVpZHGgWQ+ib44jq/TnJUcElpWSLWg//OI5RMpOsrkcerEi/tbKaZp8YCOkfPXB/rbrHw/QjU7XbQ88pwYnA==", + "node_modules/@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common/-/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common-16.0.2.tgz", + "integrity": "sha512-mjE2Aqaag2DPazYs07gE0OZ+e6WK16jflWN9QRfm4QqRcne8FN9Oll4q5ZpqOzbfO5zjO+co+dT+K7jRuCkc2A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, - "node_modules/@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common/-/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common-15.0.3.tgz", - "integrity": "sha512-NpLGxws5r8G72bffVSWEXLOvJS3iGm0CEW1iSaKlxEFmwxrCT7aMXC3eMiG9lct1f632E6BLLwzFnTnI+weNQQ==", + "node_modules/@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common/-/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common-16.0.2.tgz", + "integrity": "sha512-9OzBVU/DjvGqmVifvnKyw1gTCXnM050TIf/VWCXfA2vXx9YyGyop4y2b5Ys85xJ8cXH7Uhxkyv2BzE8fkZMLCA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common/-/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common-15.0.3.tgz", - "integrity": "sha512-qSoCUOWM4BCeyMo3D0tVIvFYFX3qOaWIZv/f4ankQufPiPDcDExGRbHeeeCiwuqnUqYSIEqDLloqIoOW6Ws9hw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common/-/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common-16.0.2.tgz", + "integrity": "sha512-cpzW9jvI71JdmAcd9xOtDgtuTVzQXLiFld2h9/wsnVxVtmXi6Zb1wNQrK9mEQ1l9QLMbejiFuxJw5uEDp0M+4A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common/-/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common-15.0.3.tgz", - "integrity": "sha512-e6gFnboBhB6opWtNQnlJgN5TW5VcCYrj8nq1cw+HM5CCB1DhJ2eo9Csku41XXe5WHrVaXcTd819QUVZDiFwGRA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common/-/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common-16.0.2.tgz", + "integrity": "sha512-XN5/Xo1hceS0sW1DLWQf0BKZF1XLsC/qmXFCKuqUfNqNjME5C25XMK+UyIPIc+NSi77dkT4fdibEgYT6r7Q6Hw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common/-/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common-15.0.3.tgz", - "integrity": "sha512-UUmvAjAYxbKpqdPh1klXeB6UhqCSVOhckW2XvAWL0K04kHVwd0u8wluMHpKFBSUe5Dyi+dK3BjSpZSLoWBdpLg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common/-/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common-16.0.2.tgz", + "integrity": "sha512-YbnHNa9pSDUsKlKLWdDNvur6g3C5Pzff6/LvHQ5XRpG5ATHI0iZMe9wGwYDcBgQrLdowojC2lyx92qHXVVFwDA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common/-/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common-15.0.3.tgz", - "integrity": "sha512-ibPAxQp+qrvEV1FMAjU2guBwufsXtSSdicB/I3qUiBofDPRkEHmjhkFRzjR+FwZ1+ALZsBvD2kWWSaCTdrPrYw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common/-/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common-16.0.2.tgz", + "integrity": "sha512-fpmv4DtK0EtFVkSYJu41oCQ5eo4uJ2Ig6Y1m4Qm5C//Q9RnnBc8ImnJmd6u8gy1TycrV38S30vHepKe61wjQkg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common/-/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common-16.0.2.tgz", + "integrity": "sha512-JCYY4Xzi4arIfjetMRsMoWaRXzdM/S0tp3VsRI8vp7Jx2BCKIEahtdYKjPDlwFGsGxbhdmGRJeVH357T5lzmWg==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common/-/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common-15.0.3.tgz", - "integrity": "sha512-SLoVDTz4XyLtbukjabEBdRZ276eD1EZtJk6NkR21nErj2R+svBKUObao0FgyiXEb4OAjO2MqRksyQo1fllVYyw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common/-/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common-16.0.2.tgz", + "integrity": "sha512-xVviM+Cdy9v1LLnFzUh01osjhKX8y0pMNbcAFd05NDXNLopPIxKt+MMw4OH7HuHkoOyNJs8GIRYVEgVN4mpbgg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-api": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-15.0.3.tgz", - "integrity": "sha512-709D8xwjhgwg2YTs5NlTRuc1B0zclkBU/1kMmVxKsNSsiZy7s1mQFk4RlNAW564FiuhTrZq7gewAzKVgTkf6SQ==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "15.0.3", - "@codingame/monaco-vscode-environment-service-override": "15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3", - "@codingame/monaco-vscode-host-service-override": "15.0.3", - "@codingame/monaco-vscode-layout-service-override": "15.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "15.0.3", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-16.0.2.tgz", + "integrity": "sha512-5G16rTxieP7WiGiONRGfqa+zG08hhaxeT/4r+8B2dY5xCdsR4YlOS0utb7b8VVk+jmTkrgdjfMwJF/pvLY0VXw==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "16.0.2", + "@codingame/monaco-vscode-environment-service-override": "16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2", + "@codingame/monaco-vscode-host-service-override": "16.0.2", + "@codingame/monaco-vscode-layout-service-override": "16.0.2", + "@codingame/monaco-vscode-quickaccess-service-override": "16.0.2", "marked": "14.0.0" } }, - "node_modules/@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common/-/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common-15.0.3.tgz", - "integrity": "sha512-pAeQNZsJQ9C8V2RPDaNG6eUs3ygZApsjKKkv2wJf7pcIOaebfWhWlHI2WmgyHeBbly50XDa8UDp7sRQ88H5+sQ==", + "node_modules/@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common/-/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common-16.0.2.tgz", + "integrity": "sha512-dogqCyuicGEFie3IRh8otWHg0zNpMSw03EGjX/NyqnBn0+Ba1O99CRDGsyA4xKeCkle2aPWmLW1Qu5iePOmf5g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common/-/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common-15.0.3.tgz", - "integrity": "sha512-HkYRaxTakli88W0BeU6JP3KjOBqKLi+7lK3cy67JmfUDNku8b7phmtgVTB+r3q9wAhs5Vp+l4pjLUW/e8/Ov+g==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common/-/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common-16.0.2.tgz", + "integrity": "sha512-tBtZ65YlyQbSNusMzbMBwjMAuxY1DeL9JX6dRHNBbwZOxA5qTJH9qowhkr7xXWQ0CWwCjvyAfxw+qk2381tRKw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common/-/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common-15.0.3.tgz", - "integrity": "sha512-IcmWgHE31OsBOvR1YKjwCZKFeDahC04sqI0IzwTBZLgzyfrO/hjR4IVjhDoxl5m4mTKTEvwB6zchSIVbTuWrnA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common/-/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common-16.0.2.tgz", + "integrity": "sha512-pUfwH/lGm5qQXp84N2YXpTG1CRzxwesypEIvNLshCVwaR4tqLd8XUoE6vJtZm9dQRBPYbohiMYaiNnKtZF4Kuw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "15.0.3" + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-15.0.3.tgz", - "integrity": "sha512-YzJtotCdm9jMsmQSI0lEee/aCc8gZedJN42kxiRu9emvu4uvq9kR9RpCLwTYcO+FkLSf109qn315sTEY8ZlZaA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-16.0.2.tgz", + "integrity": "sha512-Qvw6vjnd/qV+A4QoZyGWHNVu2Uuyh3WMKt8pLbIAfEOBPTziCQ7iMwJDgd8BNI5emaulganKIKsnofIRhfYZeA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common": "15.0.3" + "@codingame/monaco-vscode-039b5553-0838-562a-97c2-30d6e54a7b42-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common/-/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common-15.0.3.tgz", - "integrity": "sha512-BpGnvFKJ0qfwqygkGzZ67gcJrxNFYk5M8xsgOjMlYZkhRmAfAMuE6GuLt12od7+Pb4zVyRsdGOXCtwb6MfFefg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common/-/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common-16.0.2.tgz", + "integrity": "sha512-mhve3aKvup5IrMNEjfOXOAlnKT2xsPYOY40yGpKlCZ5QvP/ULUj9S4o9WPlws2A4c5Hzk1ua5JeWvw5OiTwLjQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common/-/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common-15.0.3.tgz", - "integrity": "sha512-QXKZMlC4lbcFrqg12YE0h4puerdJBe3G/A5TuaSyftxQ4p6woGTUl3XbUDcX7EQJxf+DtNrtTho3gdhWKl5qxw==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common": "16.0.2", + "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-a1eb43d5-da63-5f76-8ad4-acf0d6c3b749-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common/-/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common-15.0.3.tgz", - "integrity": "sha512-a4u/I9pTqH8dQABISIKDdeD3vOUjU8Awo4LUbUsfgF8iYd3DJRsNZdvjodQRqB5YZLNF/qyHUlo/kjpP+bPmPg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common/-/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common-16.0.2.tgz", + "integrity": "sha512-VD6Wof4UUM8VJQQWoQ1KPctljN3FBPQtwoxQQllLraMjLpSmxMRmYc/pSizdGw46Jk897X+gHZdmpwoZRTSlUQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common/-/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common-15.0.3.tgz", - "integrity": "sha512-Rz95SifOtRomRy4XWFyzfm3by3olQFMHrjcxZeKBkfwNLFB7AyZKWscm3rSmb44jS6BH0v9fcsXxsOolCLIFVg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common/-/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common-16.0.2.tgz", + "integrity": "sha512-zmpMXnvBPZkEMz6sY5vw361GZ6+pCMRSy5iQ7JPSMVNxZgSVLmLh7+7puZwymBbdIOjZ7Y4bZYgFhRKppYi45Q==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-bulk-edit-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bulk-edit-service-override/-/monaco-vscode-bulk-edit-service-override-15.0.3.tgz", - "integrity": "sha512-8N3gD9tC0e1DOI6z38sHRxssE7hZijeSwupt6RdiR2onD6hrvHc2avWC8HQ7pN+czjw5ccqPic+IO4gmg5RlJQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bulk-edit-service-override/-/monaco-vscode-bulk-edit-service-override-16.0.2.tgz", + "integrity": "sha512-YegPq3NTAE6+pJsEIoU9YibxrrkDiGanlNPKb1WbN/VXzOqTPHxSCVWy0gpUs+RNBlwXXjzlz8obaUOqZbzqLQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common/-/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common-15.0.3.tgz", - "integrity": "sha512-eTZjZWrkvZOjcr1RQKjgbhFADniCzPHRGIlh5jqJFuXv6V1KgnvYaNqUoq9opl9Gr6vdhnuAwWrFgDU5EGtPtg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common/-/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common-16.0.2.tgz", + "integrity": "sha512-e8/bWunA7hZ2N+UOv9dWJJJmb41t1oDKLM1wQUHfI9mqsLi8C/QDRdmrX0GPXWyH5MGNKYVKuysTHJy9lQ83xw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "15.0.3", - "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "15.0.3", - "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common": "15.0.3" + "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "16.0.2", + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common/-/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common-15.0.3.tgz", - "integrity": "sha512-ROftzFVe1pxl9I+OxK5YjZFOOCAnwQtnaF2/KND6OaHAtgyvSdsVPKGyDQMWqmKrBR4//CERBBRxIZwhEQhxXQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common/-/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common-16.0.2.tgz", + "integrity": "sha512-3VTGNhzHUL45mEzPhGM2Y2zQsh2LQdRuA4xOMsduQPD2B9hgdTh3IbIp426vmUK6Vv7EdfwNVKtACq130sRixQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common/-/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common-15.0.3.tgz", - "integrity": "sha512-acXSDNDzmLsxR4Rwu/+NmQDhKQUZ0GApyjJKu59Dp0ecl0skFJvcqJU/n4XnpGft9nhcIhJwK5XajgSC2SoEvw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common/-/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common-16.0.2.tgz", + "integrity": "sha512-bLH9GF8YFNxjQ+mtpFEYPR26ZKtyewJumiXfWyYstzedPoA0bD+NIP7nf/CBiHkpYZZWz+sXbNJTkXfF7BP7ig==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-configuration-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-15.0.3.tgz", - "integrity": "sha512-5Z+/+HCjmEcO7EnfdkHItx8uxtelPt7NbrCKAXPzOjNYzERz7s+0kjSeskhGU+I6G9eeKS+veASdT/YOUhqWog==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-16.0.2.tgz", + "integrity": "sha512-BotSXP5aeuzn5xtz7xkFnRqSC0jR5OHmWolqoiSl8i9nEASvhIlKFQG9wnGL9dbasopOKPACmwokclnTkwBP7A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common": "15.0.3", - "@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3" + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-cpp-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-cpp-default-extension/-/monaco-vscode-cpp-default-extension-15.0.3.tgz", - "integrity": "sha512-m6X1GA9oZL38vuSxs8IauZbJirn4nhZUhVhcu6HV/IKF3Wpo+jMa8bgf8KWF6f2LOJaFjESzujVO+tt2STRMLw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-cpp-default-extension/-/monaco-vscode-cpp-default-extension-16.0.2.tgz", + "integrity": "sha512-A5fsW64DLvpe09n1wUOqluT4qEbm2dEYSNLH+AtOxThdHinFY3WZyQ1prjOk7YrdTWmzxRVoOZH9MFjwgkiUBA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common/-/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common-15.0.3.tgz", - "integrity": "sha512-DEnL3Ol/l7JKCRM63UpdDgGlvzF3c2rVoDd3AOA4S/ZYmPj2J8ZSCKKen//OzUYapo27kZ/XDqSl6m/ji2EMJg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common/-/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common-16.0.2.tgz", + "integrity": "sha512-ciUxOktJ69HTCv9vNWxgWQ/Yb2ZmwD2W6lPM6kp/nBFS2K3tY3uokVmmAEfSQQ8la3TMzwHim1j6LEmur10RyQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common/-/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common-15.0.3.tgz", - "integrity": "sha512-gWkA1Und6rtkZmjPVuyBYHdskV8sR0g6uRBwc5ZfEqmymAyszVH1iOepFpfd4Ol4WGtguZjR6fIheNMWIB2MkA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common/-/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common-16.0.2.tgz", + "integrity": "sha512-kkIMj1pNa59nL2+Z1Ob169mRRxufQGrxQw8HCoyDKPlfs6vF++5ouszvIOQ0zsVkCWcSVNjoTAbX779h59sKiA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common/-/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common-15.0.3.tgz", - "integrity": "sha512-jDSmdxigSZzBy2YMeuqCyYn9Ga4+aG/Ca9ikIGpjnGyDXfzNU4lRYxwbCBgCJpyvC641mBQ4rr9H7hld8wxGKA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common/-/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common-16.0.2.tgz", + "integrity": "sha512-eyQSJCUZtwpyaaCQZS4XFkzLq2h8XE+qaADWB3WNzc3Lcuuq0d/60/qjqh2R/oQ76+Rd/K1iIUNnSL+/p38Izg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common/-/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common-15.0.3.tgz", - "integrity": "sha512-O4szjCfuJ2IkVzkf3xXQc9sd5oaCqk67uQgScssgOHmwYrS64f8n94jb5ULQODY2Zxa9XYrik7RFubOErxMrbQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common/-/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common-16.0.2.tgz", + "integrity": "sha512-68oKBHRiecVx4BP/+fXDs9YRGQaw/2fKfNlBLXG89226PzFFOSutOHt3naMbamd2adjilYHY0Mzq9rMltBJ2Tg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common/-/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common-15.0.3.tgz", - "integrity": "sha512-iYzY6p7uBtpQ3k6U41sDAFDK0nxHE1H7FjxgYdKrly/O5JO234+12cwIOE8fd2ZW98RrzhjMipuK/xOGLEqeGA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common/-/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common-16.0.2.tgz", + "integrity": "sha512-0TWzaZHv9w2L5IN4k1ZWmQZKSxM+MlHcZhIkuTSQXSVEb6YY9309CWP2NnyeJVOBLOBoVjUVnHceLDhfTRrG5A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common/-/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common-15.0.3.tgz", - "integrity": "sha512-5VdqwwgqwAvKowLhNz6RENvaWysgmAoqLP1bXec59m2T/aX76+cESgOZUO5nxFiIjXm/ut8OLbsy+LbBHuw+AQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common/-/monaco-vscode-d987325e-3e05-53aa-b9ff-6f97476f64db-common-16.0.2.tgz", + "integrity": "sha512-q1ioLvEt97EDfpelKxnyE7GoQErI2YN/0U0dHkyjPDuNyNrWJ2BKP8id3GtF9XTr3lHS9YqFmMAsHETXaDuwxw==", "license": "MIT" }, "node_modules/@codingame/monaco-vscode-debug-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-debug-service-override/-/monaco-vscode-debug-service-override-15.0.3.tgz", - "integrity": "sha512-5qRxbQp6hUWjk7xv4s3PcejBV7MqBLNDajYfV/+7QoyCnYlJtgdatdDe4OVpUaV6uDRiI+B323og0H91rx+hbw==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common": "15.0.3", - "@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-debug-service-override/-/monaco-vscode-debug-service-override-16.0.2.tgz", + "integrity": "sha512-gLMmu8Itq8a6pLoZeCoM9+dLJcYCzoQoyflqBJ8RNqeS4Rp84Y5s8yAf17zq73Ple52y85eP5TcySBnX1EgW0Q==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-88aa9a78-75f5-5aaa-89e9-bbdd580b3b5c-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-ab07af84-42e8-5a0f-8aef-b83fb90ede21-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common/-/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common-15.0.3.tgz", - "integrity": "sha512-5sRgEN/vCVNKAmyx8+YHihnTfx49r0WAPYg5ShbtTK9NssgrAGSitlyOWUPF+ZAhBk1Z2VHZSbzqkjVVTjeidA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common/-/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common-16.0.2.tgz", + "integrity": "sha512-FLXsY3l0BLPU6fgU3DfRh5+h269xR6pp/IVxm2tXj9BOXZTiZ4Vm/nKCIy7BesIrKwdeXvG9ORLYOCDS+/CWsQ==", "license": "MIT" }, "node_modules/@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common/-/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common-15.0.3.tgz", - "integrity": "sha512-WZi9d1SbdaetAVUoapbRyk216bfMu5I1XN7+an1SXlVa+SF8dO48ipXVioh3Vxge1DRf2rUJCfRg8uniSn4BNA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common/-/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common-16.0.2.tgz", + "integrity": "sha512-RfMxDthNKlBgbueUGs6P3mMn1Mu2JtksxO54woDPFxW6UP9WjnUz6sNzbuUM6sJ65SsF4ikNgyLXZDnivxc1SA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "15.0.3" + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common/-/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common-15.0.3.tgz", - "integrity": "sha512-ZSazMgZfPVRVEmF6fkCK8qhMNPC3UkP10fBr/8NbgPxKFXKTNPYLcequSC4/6xk+p+59ngl++Dlm4OFIJlsqog==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common/-/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common-16.0.2.tgz", + "integrity": "sha512-Hw2gWPu+TGjz4kktGy2F6RwqYi1cuoPCfVq0QbAioFxh0VmT5/f4sdLWx09Lyl5zB2CRo0w6zaHg5Z7bW8/2LQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common/-/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common-15.0.3.tgz", - "integrity": "sha512-nKNGfm+puwXTbRQWNiMcFawpaJAbpTO/AV3aEaxjJD9i/wO5yfGlLvTcpQXfmZmtqKeC7vkT57KX4cM1OOxUPg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common/-/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common-16.0.2.tgz", + "integrity": "sha512-HzaTqteZUwIZx5LGdX9vFnlZT8Nchq4OPooXsdTw7Ejb2OktB8A+JEnEuDClOGwYxemq7xCu5T1Hy/xRggnY7A==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-a3f28a41-ba19-5a7e-8f5a-d6c1403b507d-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common/-/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common-15.0.3.tgz", - "integrity": "sha512-VHh2ZqHCRGiwQ1IA/yED6ZPeB5UttOtM0etemu6RwP49fWAMQYRmCF8Val85J8LLhcqbSjnq1zAJHmANN1oO6w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common/-/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common-16.0.2.tgz", + "integrity": "sha512-oDzrFLv1hmohbwUapeIL917GQb6VfcaxPCxYZo208Qlco7rpU21bZ94wNpCQdf/c7DlyruoH5r+BahW09hxUFw==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-ec21d4de-4d65-574c-8715-bb1a6bbad376-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ec21d4de-4d65-574c-8715-bb1a6bbad376-common/-/monaco-vscode-ec21d4de-4d65-574c-8715-bb1a6bbad376-common-16.0.2.tgz", + "integrity": "sha512-QQ0WJ7iGtBLYFpZQ7RoxHRMm+PA8EKubVFj8jzNdXbrMFv1MchMTlQQCYWjXghSTsqPAH6zmFHIvsEOAgzT6Bw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-editor-api": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-15.0.3.tgz", - "integrity": "sha512-N/5bfWl8nK36xKO7ZZgGvTZc1VMhLRmPS8c9ewag3uvCVMw31wP9m1A5IDy4yjoOJsip+DvrfinczAJ4kFn+GQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-16.0.2.tgz", + "integrity": "sha512-S0yWvHtNsi/jMkLa6GDptqHhI39elSikVNXJIOjMR6XHb9WPjvRp8EEIRdkS4YETz2zCkg6VRbobrThl4jXamg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-editor-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-15.0.3.tgz", - "integrity": "sha512-JPY8STad51/3OeZC2k1pLUzE5kfIATo29D3hSwzRd+3UpHwIkgnKZ0w3AiTgShd/RuHpSHrK331rwXaRD6kAcw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-16.0.2.tgz", + "integrity": "sha512-Huej83mCcw5sEZhsFIcb9kNMh7m89brLFq7HBDri9ODCNYXByvYKPSWQZJJIM93pBJ+9PzB+LqBtQJPXS9j8mQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3" + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-15.0.3.tgz", - "integrity": "sha512-hTVde/dN1vNfW2NwNETh/+anQ6W3QUOZglvDsKAGjuCBPlHvB4J3ukQvs6TzQOeIqEWbPcfvl1UBqp6Q7B5OkQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-16.0.2.tgz", + "integrity": "sha512-sEsVj6uUP7O/6ml5Bxi6q23Si1f+yF00LE7DXkCiOZbv2nJe4RI+t14q0WUTNi6+AvCPTbj3/PZ47RAnI8ugww==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-explorer-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-explorer-service-override/-/monaco-vscode-explorer-service-override-15.0.3.tgz", - "integrity": "sha512-ba8hgsoUaH1DrurbgjNwv/OSyjVPs/+oJOPSwsvx6P7xgYD6vezyk1kIMC5LsKAchMIg58s9c6Zm6hul1LuTPQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-explorer-service-override/-/monaco-vscode-explorer-service-override-16.0.2.tgz", + "integrity": "sha512-y49juRRamqKonUJtxBFOVPZiR0MDKIauPmwW0NSueDkpgajIu7+ijHup86E+VdCsgJlNyJjwO7PZYVH+nhWX8Q==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "15.0.3", - "@codingame/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": "15.0.3" + "@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "16.0.2", + "@codingame/monaco-vscode-b71b5434-ce96-5581-8993-e8da380bd63f-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-extension-api": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extension-api/-/monaco-vscode-extension-api-15.0.3.tgz", - "integrity": "sha512-0sOMleFgTJADWSnguEA1VDwdvh1q+asQLVX8Z+AcWl/Z6KeWebqr+/4ZGNS4BVunMR4EUloLNYeEiyioJWAjzA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extension-api/-/monaco-vscode-extension-api-16.0.2.tgz", + "integrity": "sha512-uQe7htGMURb+5J9/YDii8RmZMjH3O58V8lt8N8HYpM601aJEapDKKOpSRar7DUG3Xeghf3C3JMACn3w7O2DOpQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-15.0.3.tgz", - "integrity": "sha512-b3FWLNYZFIwt+LortQqjIG+7dxIiEcZjeJnRYhfsUZyvVVb0MUit2nEQPzvMTBy4YBL0tFgdIyQiXedfdSGlqw==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-168b98e5-dc20-5807-b1f9-798f1f92b37f-common": "15.0.3", - "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "15.0.3", - "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "15.0.3", - "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3", - "@codingame/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common": "15.0.3", - "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "15.0.3", - "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common": "15.0.3", - "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "15.0.3", - "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-16.0.2.tgz", + "integrity": "sha512-jdSmTVInjTo4yOqqBJvDaPFNg9aeC0Ry9dfAWOVNoSg8fk19DO7E46DhJVhVtJ8Q0SnC8tI++J/aSF2C/G10Mg==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common": "16.0.2", + "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "16.0.2", + "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "16.0.2", + "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "16.0.2", + "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "16.0.2", + "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "16.0.2", + "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-bba55be6-41a2-50cd-a3cc-8bafa35bfa89-common": "16.0.2", + "@codingame/monaco-vscode-be8ddbb5-094a-5657-b1cc-fe106c94c632-common": "16.0.2", + "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "16.0.2", + "@codingame/monaco-vscode-d7f659f5-da33-5ea8-a3b8-9b94f2cf5f33-common": "16.0.2", + "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "16.0.2", + "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "16.0.2", + "@codingame/monaco-vscode-ec21d4de-4d65-574c-8715-bb1a6bbad376-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common/-/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common-16.0.2.tgz", + "integrity": "sha512-FZnokMKPgmNUcqgPBg/z6Do3RF01TkOKuYIHFfLmGvF/5hojpc1Rn3MDVjM/YJhoL9K6GIY9Ztcc2dG7ffrr6Q==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common/-/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common-15.0.3.tgz", - "integrity": "sha512-T46dgEmPOkqbL6hFJtvaxwRXMSLD4I3bCVSn9rdwJoGDKdJ6rVvlh9eQ/Wd2C0fq4meYFwPiuG5M1mVXkB9xcw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common/-/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common-16.0.2.tgz", + "integrity": "sha512-FOJCMVJ7Q2L6V3/CaJDysu/B0QcntViJHajs9Cz+GQXNetvywYeZgPxF5nWjsYYIJCERaANkGD3kLD73RmkXMw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common/-/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common-15.0.3.tgz", - "integrity": "sha512-JDHi2ps4MjGLAm/gLwXROiTT1CeU9We74PJc/+Y8X9YrwxEXo35UFxI0wYa62QRw+jptLrVeIjtCb1pSwl34MA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common/-/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common-16.0.2.tgz", + "integrity": "sha512-1i2zKeFpAL+F4TBxwgvuqcHkmEVHNTMU2QHQIw4OqSyKAci5sJYq2ZGctEhLeYRnxJNikn4go8AzEIe+kn3pjg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@xterm/addon-clipboard": "0.2.0-beta.81", - "@xterm/addon-image": "0.9.0-beta.98", - "@xterm/addon-ligatures": "0.10.0-beta.98", - "@xterm/addon-progress": "0.2.0-beta.4", - "@xterm/addon-search": "0.16.0-beta.98", - "@xterm/addon-serialize": "0.14.0-beta.98", - "@xterm/addon-unicode11": "0.9.0-beta.98", - "@xterm/addon-webgl": "0.19.0-beta.98" + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@xterm/addon-clipboard": "0.2.0-beta.82", + "@xterm/addon-image": "0.9.0-beta.99", + "@xterm/addon-ligatures": "0.10.0-beta.99", + "@xterm/addon-progress": "0.2.0-beta.5", + "@xterm/addon-search": "0.16.0-beta.99", + "@xterm/addon-serialize": "0.14.0-beta.99", + "@xterm/addon-unicode11": "0.9.0-beta.99", + "@xterm/addon-webgl": "0.19.0-beta.99" } }, "node_modules/@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common/-/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common-15.0.3.tgz", - "integrity": "sha512-cIctbHDSy4OCDL9cNS5SEfYleiMLiUTCu+s7AMixtsVwNlFH2ldYCYwQUkCfCg4P6MsuId0NMJ4i7IEMN7H0Mg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common/-/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common-16.0.2.tgz", + "integrity": "sha512-jN6FvcrjbNthVX3KhkW/Lm0MwDKv9n3F/oHGp15PULnv7hzT1nLJ7DJapCCV6e5YDANtaj4sYaaEMjaPSexEsg==", "license": "MIT" }, "node_modules/@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common/-/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common-15.0.3.tgz", - "integrity": "sha512-eIGonUUqTTD+D1i0B1iBvioNFiZGyvf+ZfmLgCY/TFYo6H3lLRFK53SD62M3fQ5xldw0cbkp/2lNIhT62Nybkg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common/-/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common-16.0.2.tgz", + "integrity": "sha512-oq0p7i1kwlTojhz7/DPOCxra6Ojl/Ya5Am1T3Ipw4xDYQBzMIdze7z3R8Ju0lWILrYkqZLyU0d/Cxd0SWSLzSA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common/-/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common-15.0.3.tgz", - "integrity": "sha512-VtcMsMxeQyuXEYhqFIWhaN1gUB1uOwtCkmrrBJU4K112fnP74msanoeOnHSkCu73t559NxrE4yZ5eUFeVra1pA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common/-/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common-16.0.2.tgz", + "integrity": "sha512-MVdr4dw7VlEOoFWXFeK7V6reUvHP+Oqoer6ufMILcEazg3TTUqGZwSiVUZAoZkhV/fdNmkckIm+uyRNDiPQBZg==", "license": "MIT" }, "node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-15.0.3.tgz", - "integrity": "sha512-uax/dwPEPr8Ge0uSAJWSov2XRZB+v36lPz/1CwM/FNPS8HyUWJSbZKj3KySqHBeP1DLAgbW1XaVi8irT0cp2rg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-16.0.2.tgz", + "integrity": "sha512-Etwvtbnts4q+CCeg1Kox1+JAwI8TfYsn9yJd/bos0rqtEWVZTQ7jW376KKlpQlvwSK9oSaYxWNNPc3Pn2ajSjQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "15.0.3", - "@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common": "15.0.3", - "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "15.0.3", - "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common": "15.0.3" + "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "16.0.2", + "@codingame/monaco-vscode-15626ec7-b165-51e1-8caf-7bcc2ae9b95a-common": "16.0.2", + "@codingame/monaco-vscode-2e67e044-0db9-5fa6-8bd1-3737a7d586d4-common": "16.0.2", + "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-ae8a8ca1-f243-508b-9c37-c88ebbd295fa-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-groovy-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-groovy-default-extension/-/monaco-vscode-groovy-default-extension-15.0.3.tgz", - "integrity": "sha512-J8f0Q+9bvLoLpslAMPwhP9SCypAfx57rShM30WQTcFCWxuq2EnwqOa0dfhykFFp9fI/rvyUh+EIvuVhs+yHroA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-groovy-default-extension/-/monaco-vscode-groovy-default-extension-16.0.2.tgz", + "integrity": "sha512-8fljcIrsuXxGAs1Gdde3it4dnpIyILxUEcMYJ9QtNQbUfzOAKSExt4qSSojg5jLuAmdnfijk/MqpkmLUm8t4dg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-15.0.3.tgz", - "integrity": "sha512-uTrmwjIc8765aud0BprDiG2Y7JlkUa/MT7ShpjiSBmFmJ4icFAQG5UwC7KuyG/MZofzOBXSDdog3257/UZHNmw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-16.0.2.tgz", + "integrity": "sha512-LU5AK3l5Lbj4n9Z1WmtzG0NCnpDe6AiDOeQke4wBx63DstiHzNdQz2UwmGNdoGILewK3ZX5qawPyagH+u8c7xw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-java-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-java-default-extension/-/monaco-vscode-java-default-extension-15.0.3.tgz", - "integrity": "sha512-9C5NGIjy4iCPjQbJXcuqwCyvlY8TxoUGk0Hpcla3G6ODu/Zhd/L5ko3MM4nOc0C6mIGMuL+QrTNZtriskBi17w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-java-default-extension/-/monaco-vscode-java-default-extension-16.0.2.tgz", + "integrity": "sha512-Ojw4T6JJgAYjMH+8v0yiyXYvGaOqWjpuq4mK4CJBqlRJPPFumrlX85gDesl1UcQdNJhbuuiDMF8AZiy2ayRmuA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-javascript-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-javascript-default-extension/-/monaco-vscode-javascript-default-extension-15.0.3.tgz", - "integrity": "sha512-XE2erIg8aqUu6/BPl8yPZH0CqHth23NqAGGI8avf/k453eqsexSLOZOg8Z1FreE7t1CrVN2K5CCO622nEFqdRQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-javascript-default-extension/-/monaco-vscode-javascript-default-extension-16.0.2.tgz", + "integrity": "sha512-A8TurpwMq/9YxcVzPDnP0Jsi/V0k+B+jOf2jNgTR4gfZRjbPLG99PmzCBkk+KRBFG4EB141sLqwer0kvzk73Qw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-json-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-json-default-extension/-/monaco-vscode-json-default-extension-15.0.3.tgz", - "integrity": "sha512-O606Bh7Me6MBx2sCFZTBNHMi6n98WmoxdcA7fRAauIGgRVIg35HRXN7rnzDOc4lkocCD69+ByRxV3MBrOko30Q==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-json-default-extension/-/monaco-vscode-json-default-extension-16.0.2.tgz", + "integrity": "sha512-cbbxSchM1BsLZpxS0IhWWlDVoqyoMt5wo6BiMNleDsh1h+hUnpLY2d2NielMGSvQTmYGJbo4nTiKN+8u6dJMyA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-keybindings-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-15.0.3.tgz", - "integrity": "sha512-ClWlMG4rTbmUfbyYU78Or8MamL5hapa9tJBE/B/o278DyFqZpwzNAAODJZghUL3isMCjAUnKun07oiPG37vI2w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-16.0.2.tgz", + "integrity": "sha512-VJnLp+NhH9HNHFqKeAjPa1zEioUvcZyz0uN/Olx34Olsmnotmk51+W/7AfTPJtXmJZuLv7ZOFAxmSPVtLaMvJg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common": "15.0.3", - "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "15.0.3", - "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3" + "@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common": "16.0.2", + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-cs": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-cs/-/monaco-vscode-language-pack-cs-15.0.3.tgz", - "integrity": "sha512-MtUt34NUB+ZvLSV3JQYs4xh1iVZteGWdrQZ7S/3Zg0RzZrvp5Qg+IgBhy1ZwuB3QImIyOg3CPsiB1+mumoPf2A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-cs/-/monaco-vscode-language-pack-cs-16.0.2.tgz", + "integrity": "sha512-1+mqXME0uvIg1HSPhbccXUt7Z4OWwbio3kgd/xlcvrWzbNg4xuxto5M2KAU6M6zCirn0o1PjBPrN4h+ZCvk9Ag==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-de": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-15.0.3.tgz", - "integrity": "sha512-20IO3DehDAY4PP3uuxsotu40iCdyHTY3zHdXPUoOYbPAAj3VxIffrHcTwCY/cWC0yTwNKIUtbwm5uwby3MvaKQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-16.0.2.tgz", + "integrity": "sha512-nMtvuME+OBzGBiYYBbk/aHi5gQv2EDG7M7D3fHhk66ebSsU6auewst2V1UZoI81MkhNvT92oLy+6UsHvvrOE8g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-es": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-15.0.3.tgz", - "integrity": "sha512-cI/YUruKElgSJyK69sZ3MKEe/Z811U0qhbtRsclvdKpFdTGNWXs3TNCDmUqDQxyfQj6f6sRa1PX4eTuBgJcSrw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-16.0.2.tgz", + "integrity": "sha512-aNBGLCCyPDFXNhta4AHpDm2Opd3NPQUgIvrvZEZdK1ZL+9K/YBvLzhUJ9HnaaDrYXNsQKrR2n9w8fS0nxvmSzw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-fr": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-15.0.3.tgz", - "integrity": "sha512-xmtmdUs5t1DC5t8Qt1dXYXhueUsCVeFlSC2+o7orO1Q1xamjrlnwReBpPCmd1p5l/TxDAcgirqQa7EArgqmoLg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-16.0.2.tgz", + "integrity": "sha512-BkXdN6donZPknsvnwFU4auIPtjvoom2NLMO6UldPEWcl63igCZ5SAOyiZKD2wj20AEAaE6jPnRZchm3kZ9LJsA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-it": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-it/-/monaco-vscode-language-pack-it-15.0.3.tgz", - "integrity": "sha512-f9CuDG0zTP1fZui3kw7CEkTcA2mMNQRFFbUPpPlDu5O3qFnNK31Es8Xrx/yWMrDsri3uQHyP+PSRQUv6JrFc1A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-it/-/monaco-vscode-language-pack-it-16.0.2.tgz", + "integrity": "sha512-C7+mMKiSy94LPeQA5KNBOo1RuoYCNrpRor8AapwtlA/xitWRhKqLZXasOv4Heb0SGIzUAoRrieHFP3J1uqFDOw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ja": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ja/-/monaco-vscode-language-pack-ja-15.0.3.tgz", - "integrity": "sha512-7vkTVkj2Pv9btRDw3vhg67tc9zmDDd09q8DsB7K2cCLdjyc5BWYofTKIM2wTosk+wtNnnNVErqJ5m1gwewjk5A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ja/-/monaco-vscode-language-pack-ja-16.0.2.tgz", + "integrity": "sha512-s0zo6S/WJyVegc0HWUPbuEPttEyCrPbT3S+q18y7yXXtPlCcsIxTP5+G2b3Iz3suaHXwVdmnHElFgZ02GOPRrg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ko": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ko/-/monaco-vscode-language-pack-ko-15.0.3.tgz", - "integrity": "sha512-YhN3zt1ZYOq4V4Jp1XyOW5U4kUTHj5qfqdlY9ztbQgQD204S6Az1Kaqq/t0PacgocD/9xiYxS/XbGroW6wjDeg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ko/-/monaco-vscode-language-pack-ko-16.0.2.tgz", + "integrity": "sha512-8WYghkIr3BM/cUo8yVXqBI79e9OGZ2w0YG1woIeYSB/h+Kx2Kt/2z203qp7jXG2EoLTwvBtZMIfbFkwe4clwyw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-pl": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pl/-/monaco-vscode-language-pack-pl-15.0.3.tgz", - "integrity": "sha512-8ZTfH8EwQr4I8vKkMsSEfz9T0gY5PEI2W+bMknTdcgxW2WZ1etSGHa1X/fKh2FT55E4DhBCnTvtWRiVMO4Wcbw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pl/-/monaco-vscode-language-pack-pl-16.0.2.tgz", + "integrity": "sha512-MDcd6jyl3vedZhTCFZiQXk2Acvv4inldVm04v/VBvMU7XN1nfbvwWS66wsBeRZxiFWsZJg4oMN5WqTsZ9IWYhw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-pt-br": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pt-br/-/monaco-vscode-language-pack-pt-br-15.0.3.tgz", - "integrity": "sha512-VT78t6rYIogaK5xRP4JMHS8P016Vu4cN+WkSsPe6P3/J46ZjY+89kMmM3syxJ7TbwzFanQvARBTVr4MRCWTmEw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pt-br/-/monaco-vscode-language-pack-pt-br-16.0.2.tgz", + "integrity": "sha512-kEQagLOUWRTw2HNAYCbTXa9XywfmBbQKaXuuYVLzERwcccShYDGA9Fi0a+Mk4Vd0m69ctl5yaSVfrYjjrxaznw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-qps-ploc/-/monaco-vscode-language-pack-qps-ploc-15.0.3.tgz", - "integrity": "sha512-YXFlzhcRRvr+/mVqUWGUgy4vErjr85myIyZMsIHkkYlK2nuSye3MLgaDXoe57au5CNTmgsTAgpZhUDOSiPjAIA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-qps-ploc/-/monaco-vscode-language-pack-qps-ploc-16.0.2.tgz", + "integrity": "sha512-cFokHDRbeR1xbVlLjTqaePGua+1YCycjAjcPzOQP1qR1YSAdOaYsg72ov4u9TF86gNksalh5zogUtyO7R4d0ew==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ru": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ru/-/monaco-vscode-language-pack-ru-15.0.3.tgz", - "integrity": "sha512-12HrrCnDQQUE05AMakIMPbtrhZVbIjcKs934EslxsNbuT85XO8v3LXZDOnA3t51f75vJPLkWF5yLegY9zGPmAQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ru/-/monaco-vscode-language-pack-ru-16.0.2.tgz", + "integrity": "sha512-fYgWGCJetDglaCvlLY/SiUBxQqLMjoaCYDJ1K4feMK2rEuWh7uIeoV/31FiZwqJGRqQesByqbhGxM/RTaocCfg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-tr": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-tr/-/monaco-vscode-language-pack-tr-15.0.3.tgz", - "integrity": "sha512-Umt5fTO87MxTFtrnNyWoZBS1ZsgHaglTSOT1lnAChcCUuDNRStXxHRIZJ+1g9fOlIN+fc6LN71A1OLwY2kgu2A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-tr/-/monaco-vscode-language-pack-tr-16.0.2.tgz", + "integrity": "sha512-IxGQ4M4WQi1SKikhNIsvPuxYfDFEXb2BOFGuwinB6Bb4+GFrQ7CZg4xzUxQt1AFhKGbVJtXhQPIb90bMJ211OQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-zh-hans": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hans/-/monaco-vscode-language-pack-zh-hans-15.0.3.tgz", - "integrity": "sha512-4vARvJjwEqO+n0SXnUC6TNTYfogToKXu3vTP6VgVXM05ewmAi2JZoJ/lTSibBlMf4j5AQ/L53qw50Qi+Pc+eWg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hans/-/monaco-vscode-language-pack-zh-hans-16.0.2.tgz", + "integrity": "sha512-aZLeQOba5vkVKby4i+kI6ZsBSIs+2mXYIt3cLzvEtHx3shQeWjfQNIJF52tkmBBfYDol8T+fV+xptmR2tKYayw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-zh-hant": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hant/-/monaco-vscode-language-pack-zh-hant-15.0.3.tgz", - "integrity": "sha512-iaSgy7XonFesTlnlYiL2EM9UkezsvCoQegpjWhnbTdyGy4c6BYVYcav6WIdOKCQlvXXupDuZN81Rm5tv0qBDyA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hant/-/monaco-vscode-language-pack-zh-hant-16.0.2.tgz", + "integrity": "sha512-49HiaWDkPC9gavWAXuWk4IpH89gQXfYi1HkBDqpNFWZhx6JNESb5mCKWSImetSNUhahYVCvX9GbJNaljRfRW0g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-languages-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-15.0.3.tgz", - "integrity": "sha512-dRKvjEVBgNFTmrREu3OXnd5eMlzyTtBIApUoXOo8/o46h906f5LRe4G8GMVCIjU8N2Vc2oO8iKh583iNygUD+w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-16.0.2.tgz", + "integrity": "sha512-waNAvI09A1RbK9KlbURmXHUo1Skd6xg0pnjG+vFgvyRdWnfsEbqSKa4BXQzY4SrCErDOPvIxn/QjEZ99/BDdSw==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-15.0.3.tgz", - "integrity": "sha512-AVt0CBG57HIRmyzk4FVROHW4VCR7g8Qr8xxrCdLEFiS6pgwfFLdGozj9TbUREoVn6lV8y6kDcX587Y08/PhPQQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-16.0.2.tgz", + "integrity": "sha512-PtymKP6I1j+ZK4Twgcnkect9p/wqzaAuXtQf43y+YOGZAA82tG1N+mjkfNusiCQO0JdKs4Ehy8OazSvGThr3hA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-lifecycle-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-lifecycle-service-override/-/monaco-vscode-lifecycle-service-override-15.0.3.tgz", - "integrity": "sha512-frZpqebl+rAmMtOoTv/7G154vTPX/lTXIpD+6aY7tFdINouj/vEpFtHyn+dq59qzIvzB4MdzKm3+jalXjYf0kg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-lifecycle-service-override/-/monaco-vscode-lifecycle-service-override-16.0.2.tgz", + "integrity": "sha512-Kh0F4pCzrwc1xtQ8iQFoI6OG/FVgFPUvLMjZgtfWlD0uwT07zu6QsdR6ZyVKStQHD81SsxXG+e1+WQyhumS2XQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-localization-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-localization-service-override/-/monaco-vscode-localization-service-override-15.0.3.tgz", - "integrity": "sha512-UnAi7Bge54vFC8LfMjFXH4n5JsP3L9dBDyHf2sVIfd/XgiYD/bJzHmodWFnkot/5cOyTZx1FC1EkbuA+D4e5Mw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-localization-service-override/-/monaco-vscode-localization-service-override-16.0.2.tgz", + "integrity": "sha512-X8Z+qaTKrXkpZz6VM20yIbyOajFjrHO2/E79HuneuMzMKrJCgsFIWN1DGau1lHGB0WRSCxvn0hFWVGmP/6yfUA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-log-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-log-service-override/-/monaco-vscode-log-service-override-15.0.3.tgz", - "integrity": "sha512-8Irr0yDOgbMQUgyToIZUnTiH8Ln9jvCx6yFEaWC+5CSSinj/0k3Cyg3uJgJoatbe3QfMMG3G07ATAFfB48yc8Q==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-log-service-override/-/monaco-vscode-log-service-override-16.0.2.tgz", + "integrity": "sha512-gBxFLOyaR/0HYrZiOEholKXv5yqG+HtRMKGDrkVXi2Xdi7t49k8hr5VJUYvyyAuUG1dw+CPzdr4MUgcqRnxv0g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common": "15.0.3", - "@codingame/monaco-vscode-environment-service-override": "15.0.3" + "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-cea4d01f-6526-5c2f-8b09-b168fead499f-common": "16.0.2", + "@codingame/monaco-vscode-environment-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-model-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-15.0.3.tgz", - "integrity": "sha512-9cXuN09ncXYdumLJ94RtXsVoM+Oke6mzmrV0jQD1gazxh3TTTFSvXhObwLNaHWO7vIVlIUqol2eEdOBtgA4YTA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-16.0.2.tgz", + "integrity": "sha512-Ru7Pn2G7uEii1bFg5xWDYvnEFPm4Kss406N2wx9K9Ne2iHq/v+IRKJei+ZOgi4rJDqyb1T+gmZf/+8u3UMxKRQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-monarch-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-monarch-service-override/-/monaco-vscode-monarch-service-override-15.0.3.tgz", - "integrity": "sha512-p2TB+YjGLIDHArLZuz3AsmTHeXrwftEJOBjVK8mNCZrVYDg37cYJgQ0mG5vFBYZlCdICL8u93Ab6m8nVbccOFw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-monarch-service-override/-/monaco-vscode-monarch-service-override-16.0.2.tgz", + "integrity": "sha512-Fyx7HWlFrJgZwEu4+K633P47cBdWUxXzH0rpmMC8P0oxc1SW0YNdCDdwr2kHeU+PyBmvCN6URd5i33cmkvdgpg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-preferences-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-preferences-service-override/-/monaco-vscode-preferences-service-override-15.0.3.tgz", - "integrity": "sha512-A0N5SZciBxhRiefo8tFfVfRLfpgtxA0fDqYVG8K7Au5GLkhHfugHgBmhflMO8qZzrLx5ESg85oXEMTYnByj2CA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "15.0.3", - "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "15.0.3", - "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1249c5b-1339-5278-b002-746f08105c6d-common": "15.0.3", - "@codingame/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common": "15.0.3", - "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "15.0.3", - "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "15.0.3", - "@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-preferences-service-override/-/monaco-vscode-preferences-service-override-16.0.2.tgz", + "integrity": "sha512-wdTcvlYSAJTK3sDHmfoXVJmxcc2FSPg4zc62eF6qgS1Ii9Xq9NafxePIlZXm9erdNZdydU7V/HoHceNi+iHcRA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "16.0.2", + "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2b1a9082-790f-527f-b013-d1b29d6265a3-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-c3b3387c-7bce-5b8f-9e14-bebeb636f1c8-common": "16.0.2", + "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "16.0.2", + "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "16.0.2", + "@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-python-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-python-default-extension/-/monaco-vscode-python-default-extension-15.0.3.tgz", - "integrity": "sha512-gY7yNR/2XNzztrnW7aYN8MlR+U7a4a/X6+rhS/3lsJwUF5GhnGq/1eoAtjSs0ELeM6DJoYNl4y1MArby1Cuntg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-python-default-extension/-/monaco-vscode-python-default-extension-16.0.2.tgz", + "integrity": "sha512-QHrr36rpDiixnzDvV+gV7QaWNqXUMGZlO8sYBcyh9bV7KTGCNK2xEPeOygEPKYBX9gEhp8u88+Xw6SbUD0SPBg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-15.0.3.tgz", - "integrity": "sha512-TYkqwYdnw0urlsQ4CaBHvinUFE5GoBogVbGMq+OnZPz59PIpQJyElxEKRVgGkgtYPcl7PVazkHhQ0+iVSi1N2w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-16.0.2.tgz", + "integrity": "sha512-6CxpOCDFUUo2y71KwrZ1pbFsN1qwBBiGNnGcU3EwwkVMKx8rZ4KnR5rGWj64vSdRIyCc9EwLO9TPHGwrQPT7SQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "15.0.3", - "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "15.0.3", - "@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-9a1a5840-af83-5d07-a156-ba32a36c5c4b-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "16.0.2", + "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "16.0.2", + "@codingame/monaco-vscode-fc985c90-0334-5b62-88bc-73e2efa0b80b-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-remote-agent-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-remote-agent-service-override/-/monaco-vscode-remote-agent-service-override-15.0.3.tgz", - "integrity": "sha512-0eidZ08QZYO260ysKf4r35Qqf2kFpbvrQ8PpcLS6wA9Zzy1OdEaYf+TFaCCANhnWyOyTL4igMMFtQ6GiO6lIEw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-remote-agent-service-override/-/monaco-vscode-remote-agent-service-override-16.0.2.tgz", + "integrity": "sha512-zaI83FzHYC1TwkIFoYfp0VANnSJ+TpGMckPpiJSdxFPV4SXfY7g+oaRHnQD3/OexYbDsFJdHixJeLDtgacOuHg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3", - "@codingame/monaco-vscode-environment-service-override": "15.0.3" + "@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "16.0.2", + "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-environment-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-rollup-vsix-plugin": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-rollup-vsix-plugin/-/monaco-vscode-rollup-vsix-plugin-15.0.3.tgz", - "integrity": "sha512-nXBMcxXR6fmLYsnh0H6wfXHjR8sWwJG5IwK42Dh7dF15ywjEj0cXEhmNf7BcXKOECB8K+oYG7NyJ5zrXe6ZQnw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-rollup-vsix-plugin/-/monaco-vscode-rollup-vsix-plugin-16.0.2.tgz", + "integrity": "sha512-2ZV+Anl3wZVsyKjDSZlDox10rwbrOD6bYd64YwnXW8ltFN/6dzcs5JPyvgHT8wYcv5DmUOx+kj35yoE9whRFGg==", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.4", "css-url-parser": "^1.1.4", "memfs": "^4.17.0", - "mime-types": "^2.1.35", + "mime-types": "^3.0.1", "thenby": "^1.3.4", "yauzl": "^3.0.0" } }, "node_modules/@codingame/monaco-vscode-search-result-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-search-result-default-extension/-/monaco-vscode-search-result-default-extension-15.0.3.tgz", - "integrity": "sha512-nabbwUj/21ggKlWQ5PsoEtgg4TMJSzclR6ul6LYg8+lV/lV5WxfGxYe+zFkGgBFb6946MSnoUDRbG+0w12Lz0g==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-search-result-default-extension/-/monaco-vscode-search-result-default-extension-16.0.2.tgz", + "integrity": "sha512-Jy1nVN0QYN7pGpLD1mXG3RiIIWg4+0blip5js2lyf18LhFHBbzx/r6rRut1dGMnbZYFaN+D5VNP6UNJ53LMu0g==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-search-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-search-service-override/-/monaco-vscode-search-service-override-15.0.3.tgz", - "integrity": "sha512-klVVT4qw3PZABOjErGq21UCI/e1vYRaRqg1Z/hLxqlsFs2wa7pst3wYf0+e174qL8FJ7/qk1LliGW5bll8UekQ==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common": "15.0.3", - "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "15.0.3", - "@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common": "15.0.3", - "@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": "15.0.3", - "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-695440c8-a687-5594-b476-bbc7b36bafe9-common": "15.0.3", - "@codingame/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "15.0.3", - "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-search-service-override/-/monaco-vscode-search-service-override-16.0.2.tgz", + "integrity": "sha512-gtasYuirs1oqUXPjwD7690qz1v6lBarDURrKHEMp8Z4YsU+wAPP6RrygvC+EQL7N38aOPXhvYfFsH+0ZTGW7zA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-1ae7d696-d960-5ac6-97a3-9fe7c8c3a793-common": "16.0.2", + "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "16.0.2", + "@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common": "16.0.2", + "@codingame/monaco-vscode-4ead9d5f-54da-5c5a-b093-32be4a84d711-common": "16.0.2", + "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-6f9bc782-77e0-5716-93bd-b05210c768c5-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d56fc266-2991-5e70-8f69-134ad70e1700-common": "16.0.2", + "@codingame/monaco-vscode-ea14e352-8f1c-5569-b79a-8a96a53e8abe-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-secret-storage-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-secret-storage-service-override/-/monaco-vscode-secret-storage-service-override-15.0.3.tgz", - "integrity": "sha512-i9Ow0/MZaTZueHwCrEco/HqOR74jkwsTQAhqtjQjmmUO4lSStK5nz5apCJnMOuYNd/cAfSC5YAs6Oxg6ltiG8g==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-secret-storage-service-override/-/monaco-vscode-secret-storage-service-override-16.0.2.tgz", + "integrity": "sha512-buvrV9FIASOth6qBMGZJ02uvHrpHxfl6ZzAt8gRWKu7D6UcgceruD6aqIFFydJ7E7QVEyJX360HM1QIEJfQXqA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-standalone-css-language-features": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-css-language-features/-/monaco-vscode-standalone-css-language-features-15.0.3.tgz", - "integrity": "sha512-VQ/cPcl7pJvgQxVulcYyWP7gorqHoifA+BAy4oPtqMML/97UPwkJG4REdUVdTpxLU/01udIgQdnpDrzo+62ySQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-css-language-features/-/monaco-vscode-standalone-css-language-features-16.0.2.tgz", + "integrity": "sha512-dGkcE6e0qJe69Shg6AiQuKrMRhGoMMUzGp+a54m8pZm9EwvP5a/th/aTUDdDKSu6OG76FZGnVBipyd4gOo3Izw==", "dev": true, "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@16.0.2" } }, "node_modules/@codingame/monaco-vscode-standalone-html-language-features": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-html-language-features/-/monaco-vscode-standalone-html-language-features-15.0.3.tgz", - "integrity": "sha512-GYVA1E+PTmphkuM+KZ7AFjYPfppSIqj1X9Aggd/7N/YbsWTssc/cdfkVtcrEtXGT+9zCEAS3/A7MYEEzzXZsMg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-html-language-features/-/monaco-vscode-standalone-html-language-features-16.0.2.tgz", + "integrity": "sha512-Mj+Y2vBoD/XC80JqBdlvHDNK8HjyGs+E/krcVf7is8RCpDru3iJj4kUoQdLs/M0nod3MOA1yCajHKSBcR3oKgw==", "dev": true, "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@16.0.2" } }, "node_modules/@codingame/monaco-vscode-standalone-json-language-features": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-json-language-features/-/monaco-vscode-standalone-json-language-features-15.0.3.tgz", - "integrity": "sha512-nfOSaBjrn2etz6nV86ITcGaRTCNLRke9ePBJlZ2elSDjV4rkyAvXrtu8/SxKzpz2fWdbvGtfaoOtV9qNrNlzvg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-json-language-features/-/monaco-vscode-standalone-json-language-features-16.0.2.tgz", + "integrity": "sha512-d9Yf3WCsyqu1Bys5BuZtoduink/G5Qcf8rrSAlfN7DhBvF9SnWvHkw5r0o/QwEbdwWHLn6uZpa9MGtNJZ4Bfrw==", "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@16.0.2" } }, "node_modules/@codingame/monaco-vscode-standalone-languages": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-15.0.3.tgz", - "integrity": "sha512-FwPzWvXQbnXd3lk4f0C7LHoVWs1kZNU9QB061CH5BdE8sBnTXeTQzyy2JnOzsrHz+jrXBgspgTbia6vH+viT5A==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-16.0.2.tgz", + "integrity": "sha512-gGfccXAgwtloVRVXZGI6N4DYKCa7/2Dbd3YOCArnHwYopTNpWvvIx9jqSypxEknIoswcr+oSYTkw7tew5i+eXg==", "dev": true, "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@16.0.2" } }, "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-typescript-language-features/-/monaco-vscode-standalone-typescript-language-features-15.0.3.tgz", - "integrity": "sha512-E0dMFzGliGSK0t212q9Xi2j1w/OubiJSCCyj71ItK0HLXH339z/Yiz33YjaxUSfxCUylnoTmF2i670rFEdElzw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-typescript-language-features/-/monaco-vscode-standalone-typescript-language-features-16.0.2.tgz", + "integrity": "sha512-GHeEF1pRUse4yRuOJ8zw6UYGvGkKDmogRpsUbw7GzvY9KQb11g/eUnxSZJZ839Gd7VBTyPLOKKmWjFUPDxWwuw==", "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@15.0.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@16.0.2" } }, "node_modules/@codingame/monaco-vscode-storage-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-storage-service-override/-/monaco-vscode-storage-service-override-15.0.3.tgz", - "integrity": "sha512-8SHFEnBZjdBwF0zOteEDJifHQcTjSvCwdIziJIO62MOLsnKi8t9k2rx3ytJDh8JV2NnxEaYwOTqTe2I7OiG+RQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-storage-service-override/-/monaco-vscode-storage-service-override-16.0.2.tgz", + "integrity": "sha512-Ec/cf31sfq5EeHQ2I5dPNb7uNs4jCAhRWN4nAevrBQyCokFiUIuVl2Vk5vAsJNcfla1RV/UGlV2DlvKOAJZcuQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common": "15.0.3", - "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-2f06fe84-148e-5e6b-a7ca-c7989c5f128a-common": "16.0.2", + "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-terminal-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-terminal-service-override/-/monaco-vscode-terminal-service-override-15.0.3.tgz", - "integrity": "sha512-+wRKK7Nof2BQJeILAx3jNuA+LHtvmBEikyJ54wq0rBQzW/YAEIEy227uBWXv9Ade05+6ExKvX9kdgQh8ZFehaQ==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "15.0.3", - "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "15.0.3", - "@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common": "15.0.3", - "@codingame/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common": "15.0.3", - "@codingame/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "15.0.3", - "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common": "15.0.3", - "@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common": "15.0.3", - "@xterm/xterm": "5.6.0-beta.98" - } - }, - "node_modules/@codingame/monaco-vscode-terminal-service-override/node_modules/@xterm/xterm": { - "version": "5.6.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.98.tgz", - "integrity": "sha512-fJexj3XKDAMGsR8KKaiEhGrtJD1eRANbT3094E3KSgvbHRa3524tSFvDCx5+5KRE/hYaECmi0knAUIWJCvSPTg==", - "license": "MIT" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-terminal-service-override/-/monaco-vscode-terminal-service-override-16.0.2.tgz", + "integrity": "sha512-faHm8Lr4+YXFAWmLiC98rQiua2+5ioOamw5K26U0U1PncajlE0yC0JXjjZh769dpeajdaVOdtL1jqKZ7F/G/1A==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-422642f2-7e3a-5c1c-9e1e-1d3ef1817346-common": "16.0.2", + "@codingame/monaco-vscode-42931eb9-e564-530c-bafc-fa23ab43a070-common": "16.0.2", + "@codingame/monaco-vscode-45a408c6-90ed-5d8b-801d-f3f69c7a97f2-common": "16.0.2", + "@codingame/monaco-vscode-625898ab-0e33-5b7f-a3ae-29c10271dc1c-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common": "16.0.2", + "@codingame/monaco-vscode-805e9c2f-56b6-5a43-8b5b-d2dc2d3805fc-common": "16.0.2", + "@codingame/monaco-vscode-9a6d8b6c-ad4c-5ea3-9558-f43d6dc4c0ad-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-f405f7ba-995b-5117-bc17-5bc7f77d92e9-common": "16.0.2", + "@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common": "16.0.2", + "@xterm/xterm": "5.6.0-beta.99" + } }, "node_modules/@codingame/monaco-vscode-testing-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-testing-service-override/-/monaco-vscode-testing-service-override-15.0.3.tgz", - "integrity": "sha512-bfFme7Q5rmACk6FnuUBipixr5Mu4f2ztQ7Qe30qWLdPgtk+ZMsPnf9fCRAfCyGvY6jHP1FP184h54MGOyuVe7w==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "15.0.3", - "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1bb39316-6fbf-572e-ab6a-818a2496c14f-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3", - "@codingame/monaco-vscode-terminal-service-override": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-testing-service-override/-/monaco-vscode-testing-service-override-16.0.2.tgz", + "integrity": "sha512-3umHSzTXNW89jJJrRvK3kZgLbKr3ydYeB+PGblg5UZVSnE6p9iX4NDx3+6VFftJ9lZaBNZTqeP3VuIzo8enPHQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0b087f42-a5a3-5eb9-9bfd-1eebc1bba163-common": "16.0.2", + "@codingame/monaco-vscode-10418ae3-ee63-5700-a757-89cbe6564ee4-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-3e369455-cc41-54c6-86fb-8b7cd999a5da-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-f6ab89b2-83b0-5a43-8772-cb0eafa650b5-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2", + "@codingame/monaco-vscode-terminal-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-textmate-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-15.0.3.tgz", - "integrity": "sha512-yh0bQFeA1jd+HN375fqMhoGa4OYuoTVtSHyun5pKttI3wAFeQONZFU9auvhfaZFQt4z8aKC6Q9vW7HNVEMz9Gg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-16.0.2.tgz", + "integrity": "sha512-psJrvvpEgIBIZYG1vcdROFBKncbmKLFGdm+hKO4R8QzAbTwg03zNN70fXDbAgzStg4Ro/zG8rivKq5tfWdieFA==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common": "15.0.3", - "@codingame/monaco-vscode-695440c8-a687-5594-b476-bbc7b36bafe9-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3", + "@codingame/monaco-vscode-33833ac7-3af3-5e9d-8fb9-11838d852c59-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2", "vscode-oniguruma": "1.7.0", "vscode-textmate": "9.2.0" } }, "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-15.0.3.tgz", - "integrity": "sha512-zzryO5WxDzdY/I9kEupz5TDustTogKxOkBfSwIkctuImq0Uhh5KDGQgt/zuX+6vSZVrdJvf2ui15NqSlop8WTQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-16.0.2.tgz", + "integrity": "sha512-F+Gcy9MaV7ZaxWjIbsQE04c1kclY5OhOe0YFjnMPeW/+MC2bRm8jEhfMP9/SFGeKhywIcmhA2ShpfYtNTve6BQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-theme-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-15.0.3.tgz", - "integrity": "sha512-JZjKFgOvg4uSrvWU1wNwZKWXl93ZpZypDdXxPs9w9xcmDvRBMN97nZhg1nDWgZBqkgszbMlt+mkjvKCDk/SwnA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-16.0.2.tgz", + "integrity": "sha512-wwne+cG+RLpIgafmqN7EiHc9Q+nGaHpijhBmVhH9PNelaL3ymZdEe8t8Ag57q3xNz/s5nwxiKq/LYQZBYKKzIg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-files-service-override": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-9d0168a3-519b-57f3-9bcc-89efc41f951a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-files-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-typescript-basics-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-15.0.3.tgz", - "integrity": "sha512-qvszOP3JuI9SXjyQxFR1eaO3sPbUJ7cU8K/fwBTS7w+TnQ1O0lgn1BahdzF8RGl+0KEwZBwZqdf6n58bgadWbg==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-basics-default-extension/-/monaco-vscode-typescript-basics-default-extension-16.0.2.tgz", + "integrity": "sha512-MhCCf702wQ8nY4UkK70ZbLbsOTOlvIiZhOwQ8McjYulxOr7IZD4ptW8NeeY5xVMZXc1B+g8GKArRs+AD8wfhHg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-typescript-language-features-default-extension": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-language-features-default-extension/-/monaco-vscode-typescript-language-features-default-extension-15.0.3.tgz", - "integrity": "sha512-efEnJzAxPSfS01WdrkQ+JEUfFOyzxFBMEpk+HELkdeCyerK7Z+ASBm/5KU8z3o1qGw9WOAjFGF2W1N2dYnpLPA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-typescript-language-features-default-extension/-/monaco-vscode-typescript-language-features-default-extension-16.0.2.tgz", + "integrity": "sha512-GxZwuEbeRPPhj0/FaoFFZ72JVGzhmBWqcAaMIQDny7ir7ABY7JLb6FQNzlREPPcA3OqDv5mEtuMotGUvAoaRGg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-view-banner-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-banner-service-override/-/monaco-vscode-view-banner-service-override-15.0.3.tgz", - "integrity": "sha512-zooxNkIARIr6V5Nm/GkyBL7LVKA618zN2PYOAQNEmL9BYylONdbU3LdO92SAADq89D/crfgXgDDmhpd2Cnnc/g==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-banner-service-override/-/monaco-vscode-view-banner-service-override-16.0.2.tgz", + "integrity": "sha512-OqJ9QbfFwuNw1c4BiC+0XvmTwEo7Ashrv/6p/KWe2fQBeGlpDm3LgcFWDmyKjXfW1z8os+UDA3FqUCpg8TZQig==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-view-common-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-common-service-override/-/monaco-vscode-view-common-service-override-15.0.3.tgz", - "integrity": "sha512-wb0k7yj9Gt83O/2m2n96nTduiXv7TYgSzDaahFfQvqulCpu4eCNPXYa37xwAoCtpdcm+tRxzhliWabdX5udVqg==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "15.0.3", - "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "15.0.3", - "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "15.0.3", - "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "15.0.3", - "@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "15.0.3", - "@codingame/monaco-vscode-44b92f80-48ea-5562-a8d0-18a015f8d845-common": "15.0.3", - "@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": "15.0.3", - "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "15.0.3", - "@codingame/monaco-vscode-55ed5668-e8ca-5335-a587-790bcf1200c0-common": "15.0.3", - "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "15.0.3", - "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "15.0.3", - "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "15.0.3", - "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.3", - "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "15.0.3", - "@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": "15.0.3", - "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "15.0.3", - "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.3", - "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.3", - "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "15.0.3", - "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3", - "@codingame/monaco-vscode-bulk-edit-service-override": "15.0.3", - "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "15.0.3", - "@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": "15.0.3", - "@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "15.0.3", - "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3", - "@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-common-service-override/-/monaco-vscode-view-common-service-override-16.0.2.tgz", + "integrity": "sha512-E2K0wFLbyMdjxFdC27KYr7Pi6d7yO7bKXnyxvmSSp+fneZnEJOOa+I5ui6QAJTPugo1wnqYVQqSKFjia9mmdxQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0c06bfba-d24d-5c4d-90cd-b40cefb7f811-common": "16.0.2", + "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "16.0.2", + "@codingame/monaco-vscode-0f5ced28-abde-558b-8652-db8e7d4d64aa-common": "16.0.2", + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "16.0.2", + "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common": "16.0.2", + "@codingame/monaco-vscode-29bc1406-2925-5b8f-b25e-d04a7772d896-common": "16.0.2", + "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "16.0.2", + "@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": "16.0.2", + "@codingame/monaco-vscode-523730aa-81e6-55d7-9916-87ad537fe087-common": "16.0.2", + "@codingame/monaco-vscode-65619f8f-0eab-5d8b-855a-43b6353fe527-common": "16.0.2", + "@codingame/monaco-vscode-68b3311c-eb96-5711-8f72-f5f4b2e31932-common": "16.0.2", + "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "16.0.2", + "@codingame/monaco-vscode-7559b0be-bfa5-5fe6-b731-1973fe9fffa1-common": "16.0.2", + "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "16.0.2", + "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "16.0.2", + "@codingame/monaco-vscode-89a82baf-8ded-5b2f-b8af-e5fbd72dc5ad-common": "16.0.2", + "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "16.0.2", + "@codingame/monaco-vscode-9b5a5e82-d649-5455-b4bf-ef90d6afd294-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "16.0.2", + "@codingame/monaco-vscode-ad89fae6-94f0-5ac2-a185-22dea4b68ee0-common": "16.0.2", + "@codingame/monaco-vscode-aff8bc9b-c6f8-578f-9c8a-f70d14f9c13c-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-b1e8558d-1726-5299-bc75-e43ee6d1a124-common": "16.0.2", + "@codingame/monaco-vscode-bulk-edit-service-override": "16.0.2", + "@codingame/monaco-vscode-c4e2825a-b5b1-5f0e-b547-068c32e06d50-common": "16.0.2", + "@codingame/monaco-vscode-d481a59e-259c-524e-bee1-76483d75d3a1-common": "16.0.2", + "@codingame/monaco-vscode-e59ecb8c-db32-5324-8fe4-cf9921fd92b8-common": "16.0.2", + "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "16.0.2", + "@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2", + "@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-view-status-bar-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-status-bar-service-override/-/monaco-vscode-view-status-bar-service-override-15.0.3.tgz", - "integrity": "sha512-wW4dnhpWn0TA2EUV/gBDMn2+E90Mc2gn9myBwLUjPFREXRlLR2UUYu0V0XZr0A1oVuWRKcjnhEfX24Lv62jWeA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-status-bar-service-override/-/monaco-vscode-view-status-bar-service-override-16.0.2.tgz", + "integrity": "sha512-Cv/B2xC3CuSYXlPqWAxAg/q/+KD3Ojid2ECEb+84DfSy3AtP7VIDZsXwgZtDztxmUqB3iMo4MvVaNCmtQ7gayQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-view-title-bar-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-title-bar-service-override/-/monaco-vscode-view-title-bar-service-override-15.0.3.tgz", - "integrity": "sha512-dB9JtrKem9YyhMYVvAIoVYVkmAQEoWR61nonSYEBlv+n173tr5lDIkAqsdqRMjzA+W8VRcpvqC1Hnpqi1bmdHQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-title-bar-service-override/-/monaco-vscode-view-title-bar-service-override-16.0.2.tgz", + "integrity": "sha512-K0svLCBPAbiii7w/91ww9aaHyyqiB4+DlaTRWWnsymMcKBM76ogMNbzdbi5g1LIRbOTTkBUyeNxYg2QKPI9ZXQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.3", - "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3" + "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "16.0.2", + "@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-views-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-views-service-override/-/monaco-vscode-views-service-override-15.0.3.tgz", - "integrity": "sha512-Tcbm27EXtYqU6UYCm28NdEIK1+Rw7RM/6oko82JH9Wp/xexDOEf8Lb1UyICFvBBFmpQoBrsBy2S7puxc4WlJYw==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3", - "@codingame/monaco-vscode-keybindings-service-override": "15.0.3", - "@codingame/monaco-vscode-layout-service-override": "15.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "15.0.3", - "@codingame/monaco-vscode-view-common-service-override": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-views-service-override/-/monaco-vscode-views-service-override-16.0.2.tgz", + "integrity": "sha512-YtlLuWCDgZk5ED2uz5eBZUUfQ60Dte42q549llXn2T7Xd91EnrnQcg3y4oLChjudr1aqBU1A+rWYrjlZfWmwfQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-0cc5da60-f921-59b9-bd8c-a018e93c0a6f-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "16.0.2", + "@codingame/monaco-vscode-layout-service-override": "16.0.2", + "@codingame/monaco-vscode-quickaccess-service-override": "16.0.2", + "@codingame/monaco-vscode-view-common-service-override": "16.0.2" } }, "node_modules/@codingame/monaco-vscode-workbench-service-override": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-workbench-service-override/-/monaco-vscode-workbench-service-override-15.0.3.tgz", - "integrity": "sha512-6iEB0u8CBFt8gSwc639TIo6WN1h04YSLzlIQuJqmfjpSOBXSGAhdVyQeLO/L+85ixe/Vvof1DI9ce4+l3xmSyg==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common": "15.0.3", - "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.3", - "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "15.0.3", - "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "15.0.3", - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common": "15.0.3", - "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "15.0.3", - "@codingame/monaco-vscode-81f603ca-d6ea-5402-90dd-3014dffc63b4-common": "15.0.3", - "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "15.0.3", - "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "15.0.3", - "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "15.0.3", - "@codingame/monaco-vscode-keybindings-service-override": "15.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "15.0.3", - "@codingame/monaco-vscode-view-banner-service-override": "15.0.3", - "@codingame/monaco-vscode-view-common-service-override": "15.0.3", - "@codingame/monaco-vscode-view-status-bar-service-override": "15.0.3", - "@codingame/monaco-vscode-view-title-bar-service-override": "15.0.3" + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-workbench-service-override/-/monaco-vscode-workbench-service-override-16.0.2.tgz", + "integrity": "sha512-FCPIjl+s0lVpM+XHl2nwpJMeh9qa31qJ9n3LfUIIKYI7AKcYiIYFH+iC8d/DJV5OBr7wHSBqoHg/9Ape2Sxyeg==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common": "16.0.2", + "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "16.0.2", + "@codingame/monaco-vscode-2e69e120-617a-5258-95e0-3b8902f4e014-common": "16.0.2", + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-494be54c-bd37-5b3c-af70-02f086e28768-common": "16.0.2", + "@codingame/monaco-vscode-6980eeab-47bb-5a48-8e15-32caf0785565-common": "16.0.2", + "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "16.0.2", + "@codingame/monaco-vscode-9efc1f50-c7de-55d6-8b28-bcc88bd49b5a-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-b1110435-a331-5549-ab1e-aa3d763c3a1f-common": "16.0.2", + "@codingame/monaco-vscode-d8236b3b-b91a-522d-89f4-94d70a546f6a-common": "16.0.2", + "@codingame/monaco-vscode-fdf643f9-94dd-5510-b97a-408abf26ad92-common": "16.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "16.0.2", + "@codingame/monaco-vscode-quickaccess-service-override": "16.0.2", + "@codingame/monaco-vscode-view-banner-service-override": "16.0.2", + "@codingame/monaco-vscode-view-common-service-override": "16.0.2", + "@codingame/monaco-vscode-view-status-bar-service-override": "16.0.2", + "@codingame/monaco-vscode-view-title-bar-service-override": "16.0.2" } }, "node_modules/@cspotcode/source-map-support": { @@ -2843,9 +2860,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2966,9 +2983,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", - "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", + "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", "dev": true, "license": "MIT", "engines": { @@ -3564,9 +3581,9 @@ } }, "node_modules/@testing-library/react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.2.0.tgz", - "integrity": "sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", "dev": true, "license": "MIT", "dependencies": { @@ -3788,13 +3805,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.13.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.17.tgz", - "integrity": "sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==", + "version": "22.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz", + "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/qs": { @@ -3812,9 +3829,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.0.tgz", - "integrity": "sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.1.tgz", + "integrity": "sha512-ePapxDL7qrgqSF67s0h9m412d9DbXyC1n59O2st+9rjuuamWsZuD2w55rqY12CbzsZ7uVXb5Nw0gEp9Z8MMutQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3822,9 +3839,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-21E2zejNNRtjG4hKIyJz4aWswGEcNFTgttA0bZIRGjj1HA/tbSUxIJnIcYbn98pwJck0cS1bsQhn6eaKqbcFWw==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", + "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3865,17 +3882,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", - "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz", + "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/type-utils": "8.29.0", - "@typescript-eslint/utils": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/type-utils": "8.29.1", + "@typescript-eslint/utils": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3895,16 +3912,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", - "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz", + "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4" }, "engines": { @@ -3920,14 +3937,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", - "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz", + "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0" + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3938,14 +3955,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", - "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz", + "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.29.0", - "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.1", + "@typescript-eslint/utils": "8.29.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -3962,9 +3979,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", - "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz", + "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==", "dev": true, "license": "MIT", "engines": { @@ -3976,14 +3993,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", - "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz", + "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/visitor-keys": "8.29.0", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/visitor-keys": "8.29.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4019,16 +4036,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz", + "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.29.0", - "@typescript-eslint/types": "8.29.0", - "@typescript-eslint/typescript-estree": "8.29.0" + "@typescript-eslint/scope-manager": "8.29.1", + "@typescript-eslint/types": "8.29.1", + "@typescript-eslint/typescript-estree": "8.29.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4043,13 +4060,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", - "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz", + "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/types": "8.29.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4252,30 +4269,30 @@ "license": "MIT" }, "node_modules/@xterm/addon-clipboard": { - "version": "0.2.0-beta.81", - "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.81.tgz", - "integrity": "sha512-vDxRyBO9VHzsl+gUQsDlUM9o2ZxSJKzE2eYQtuILKcf5D0EXYI86aMwKT/1iguX41vcMg42WXQBQ0TLWZ2MyTQ==", + "version": "0.2.0-beta.82", + "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.82.tgz", + "integrity": "sha512-6PCRV0AHm/+ogeRdz2Txndau3l2Z7X7Buu8v5kpnNB30DKyvMh5p9J35maBPIwKF8XUSBvgywu+AW5x6mVqu9g==", "license": "MIT", "dependencies": { "js-base64": "^3.7.5" }, "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-image": { - "version": "0.9.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.98.tgz", - "integrity": "sha512-yJaezwUc1Y3QYCmYSpjFW9IzMTLPSqrRCgdPnQ0JbCAVASRVmH6DLRfeikheJCvoXW6VUwMmGkb3fSplTxiV1w==", + "version": "0.9.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.99.tgz", + "integrity": "sha512-fU6VsnB3X6RUVo5Y2ZACEnbS/3CSFPhWxkDML6r+fgPz6pV4IwGBFLuyvUPxfyfpYt5+3muh6ChDDwUjxG1Ldg==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-ligatures": { - "version": "0.10.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-ligatures/-/addon-ligatures-0.10.0-beta.98.tgz", - "integrity": "sha512-1zYeS9OUBR2ThG7dsxsGKOqeSlUo+DNTd5aaV5ZFbKQsQ1w+sQCaL73ZrXp1kuVK7pBiP5NCo4ffcXfzcztztA==", + "version": "0.10.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-ligatures/-/addon-ligatures-0.10.0-beta.99.tgz", + "integrity": "sha512-QlhUtBlIC7ZgEykpWxFl5lc2MtIFJD41pT8bQVRD1wGShgUmceNTk4xd3CjiQdVOtTrHcgOTM75YmS5GOlobOA==", "license": "MIT", "dependencies": { "font-finder": "^1.1.0", @@ -4285,60 +4302,59 @@ "node": ">8.0.0" }, "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-progress": { - "version": "0.2.0-beta.4", - "resolved": "https://registry.npmjs.org/@xterm/addon-progress/-/addon-progress-0.2.0-beta.4.tgz", - "integrity": "sha512-7t1nlaANdEjUBVvuTTs5gw6UQgB+unFLwSGGnYXIvdQroYdkXQXSSATSqpYKVCd/6QFhBerzdB2VwPM5L5lxIw==", + "version": "0.2.0-beta.5", + "resolved": "https://registry.npmjs.org/@xterm/addon-progress/-/addon-progress-0.2.0-beta.5.tgz", + "integrity": "sha512-6dfUtCqK/anFiVilv1KNyVWbEql2hJwINlAXnl5YtIyEwR8F/i+zWBuzUj9152gT3rDASTmgXE5HG6mnyaUI9w==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-search": { - "version": "0.16.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.98.tgz", - "integrity": "sha512-7gtx7eYvwFLxlb5q2IKxa7jG1KEinVwTlT3ijnSsPawwn7rGi6nR135rGiR8DAjEV0GUO406ICeoYyVbgiFNwQ==", + "version": "0.16.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.99.tgz", + "integrity": "sha512-nyqGsZDR/l0Gp4gaS+Brrjm53dpaNAqOUtAC8BXmvuzK21sQgyLsC99MTLNR5yh3dYJAfWAAhG5ke/Re3AaamQ==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-serialize": { - "version": "0.14.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.98.tgz", - "integrity": "sha512-Tsr8j3wnun2raYR1DgsNClQP/I5a85u/uW/5EiYH+/iPPua6EWJvPlr5Q6TCU/cdIKW1o27Z3L5/mw0pfMUXrQ==", + "version": "0.14.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.99.tgz", + "integrity": "sha512-7ULW4BUUGL1Bv8vGBNylaBTpKFDm7rjMdkOwJt+LVd/oJkyL8RFSGgQSuYb+5DyiEhBSpeahg3bi8bStxufvMQ==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-unicode11": { - "version": "0.9.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.98.tgz", - "integrity": "sha512-3GjjEYAPWAEGE1CaTFDjQxKcY5NiHHPmeufTsRp3IL5850ZiaMMq9bIL2WSdoFIbVgfbxh5mRy2cJPdu9m0uRQ==", + "version": "0.9.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.99.tgz", + "integrity": "sha512-4epGzbOc7X+NyPIMPxnQxaUlZYhCRTEPRsvfuIx55+Yyzip/zGX5ahy/Z22YrGTVv7qjxhVsu1tCbCgiF9HtTA==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/addon-webgl": { - "version": "0.19.0-beta.98", - "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.98.tgz", - "integrity": "sha512-09FbNHgN2ad/8JI+AEyg8C3msyk04ET1FihQIpTeWPfd2LJIAdps7G4St2+qzZbhlFkR6m9Dgrgh/AC2uegh8A==", + "version": "0.19.0-beta.99", + "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.99.tgz", + "integrity": "sha512-t4vTtwDLYWgzcH86s3hlCGaZWJWzTXLXUcgw/2l+Fkq9LFy4cLuQgWTVjOWLB0KOJ0FmT+g0sBWLApUw9bYa2w==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.98" + "@xterm/xterm": "^5.6.0-beta.99" } }, "node_modules/@xterm/xterm": { "version": "5.6.0-beta.99", "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.99.tgz", "integrity": "sha512-TwBXSyio63Sr2+eJ24BtrPiwTA8JpRbdzhNBYzCXs32yWX30X47UAcdgkahjkyt4JHSqhu7614/w5FOzHsNc/g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/accepts": { "version": "2.0.0", @@ -4353,27 +4369,6 @@ "node": ">= 0.6" } }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -5607,19 +5602,19 @@ } }, "node_modules/eslint": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", - "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", + "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", + "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.23.0", + "@eslint/js": "9.24.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -6115,27 +6110,6 @@ "node": ">= 0.6" } }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7769,23 +7743,21 @@ } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { "node": ">= 0.6" @@ -7845,13 +7817,13 @@ }, "node_modules/monaco-editor": { "name": "@codingame/monaco-vscode-editor-api", - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-15.0.3.tgz", - "integrity": "sha512-N/5bfWl8nK36xKO7ZZgGvTZc1VMhLRmPS8c9ewag3uvCVMw31wP9m1A5IDy4yjoOJsip+DvrfinczAJ4kFn+GQ==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-16.0.2.tgz", + "integrity": "sha512-S0yWvHtNsi/jMkLa6GDptqHhI39elSikVNXJIOjMR6XHb9WPjvRp8EEIRdkS4YETz2zCkg6VRbobrThl4jXamg==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3" + "@codingame/monaco-vscode-5452e2b7-9081-5f95-839b-4ab3544ce28f-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2" } }, "node_modules/monaco-editor-wrapper": { @@ -8495,9 +8467,9 @@ } }, "node_modules/pyright": { - "version": "1.1.398", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.398.tgz", - "integrity": "sha512-KrqCYCw+p+mtoQ7kOiIKyEvfJxi4rMbJAvjSGjtScMaOHVqHVKYOFlchgiePj9AbjmkR/iNzWOodYJfXLjpHtQ==", + "version": "1.1.399", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.399.tgz", + "integrity": "sha512-roYApcOUEraOc2gTZX052/cw/AZ5rQGkdG/2DtU1/KyhfP+C5zHDlvOT24qRgPXDDkh76AvFwq5quZ1SMahq7w==", "license": "MIT", "bin": { "pyright": "index.js", @@ -8997,27 +8969,6 @@ "node": ">= 18" } }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/serve-static": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", @@ -9698,27 +9649,6 @@ "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -9798,9 +9728,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -9831,9 +9761,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, @@ -9929,9 +9859,9 @@ } }, "node_modules/vite": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", - "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", + "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", "dev": true, "license": "MIT", "dependencies": { @@ -10024,9 +9954,9 @@ } }, "node_modules/vite-plugin-static-copy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.0.tgz", - "integrity": "sha512-LLKwhhHetGaCnWz4mas4qqjjguDka6/6b4+SeIohRroj8aCE7QTfiZECfPecslFQkWZ3HdQuq5kOPmWZjNYlKA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz", + "integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==", "dev": true, "license": "MIT", "dependencies": { @@ -10130,15 +10060,15 @@ }, "node_modules/vscode": { "name": "@codingame/monaco-vscode-extension-api", - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extension-api/-/monaco-vscode-extension-api-15.0.3.tgz", - "integrity": "sha512-0sOMleFgTJADWSnguEA1VDwdvh1q+asQLVX8Z+AcWl/Z6KeWebqr+/4ZGNS4BVunMR4EUloLNYeEiyioJWAjzA==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extension-api/-/monaco-vscode-extension-api-16.0.2.tgz", + "integrity": "sha512-uQe7htGMURb+5J9/YDii8RmZMjH3O58V8lt8N8HYpM601aJEapDKKOpSRar7DUG3Xeghf3C3JMACn3w7O2DOpQ==", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.3", - "@codingame/monaco-vscode-api": "15.0.3", - "@codingame/monaco-vscode-bd6ad8b7-9db3-51a8-9895-0046508c029d-common": "15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "15.0.3" + "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "16.0.2", + "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "16.0.2", + "@codingame/monaco-vscode-api": "16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "16.0.2" } }, "node_modules/vscode-json-languageservice": { @@ -10486,17 +10416,17 @@ "version": "9.6.0-next.0", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "~15.0.3", - "@codingame/monaco-vscode-configuration-service-override": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-editor-service-override": "~15.0.3", - "@codingame/monaco-vscode-extension-api": "~15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "~15.0.3", - "@codingame/monaco-vscode-languages-service-override": "~15.0.3", - "@codingame/monaco-vscode-localization-service-override": "~15.0.3", - "@codingame/monaco-vscode-log-service-override": "~15.0.3", - "@codingame/monaco-vscode-model-service-override": "~15.0.3", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "@codingame/monaco-vscode-api": "~16.0.2", + "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-editor-service-override": "~16.0.2", + "@codingame/monaco-vscode-extension-api": "~16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "~16.0.2", + "@codingame/monaco-vscode-languages-service-override": "~16.0.2", + "@codingame/monaco-vscode-localization-service-override": "~16.0.2", + "@codingame/monaco-vscode-log-service-override": "~16.0.2", + "@codingame/monaco-vscode-model-service-override": "~16.0.2", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1" }, "engines": { @@ -10509,36 +10439,36 @@ "version": "2025.4.1", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~15.0.3", - "@codingame/monaco-vscode-cpp-default-extension": "~15.0.3", - "@codingame/monaco-vscode-debug-service-override": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-environment-service-override": "~15.0.3", - "@codingame/monaco-vscode-explorer-service-override": "~15.0.3", - "@codingame/monaco-vscode-files-service-override": "~15.0.3", - "@codingame/monaco-vscode-groovy-default-extension": "~15.0.3", - "@codingame/monaco-vscode-java-default-extension": "~15.0.3", - "@codingame/monaco-vscode-javascript-default-extension": "~15.0.3", - "@codingame/monaco-vscode-json-default-extension": "~15.0.3", - "@codingame/monaco-vscode-keybindings-service-override": "~15.0.3", - "@codingame/monaco-vscode-lifecycle-service-override": "~15.0.3", - "@codingame/monaco-vscode-localization-service-override": "~15.0.3", - "@codingame/monaco-vscode-preferences-service-override": "~15.0.3", - "@codingame/monaco-vscode-python-default-extension": "~15.0.3", - "@codingame/monaco-vscode-remote-agent-service-override": "~15.0.3", - "@codingame/monaco-vscode-search-result-default-extension": "~15.0.3", - "@codingame/monaco-vscode-search-service-override": "~15.0.3", - "@codingame/monaco-vscode-secret-storage-service-override": "~15.0.3", - "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3", - "@codingame/monaco-vscode-storage-service-override": "~15.0.3", - "@codingame/monaco-vscode-testing-service-override": "~15.0.3", - "@codingame/monaco-vscode-textmate-service-override": "~15.0.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~15.0.3", - "@codingame/monaco-vscode-theme-service-override": "~15.0.3", - "@codingame/monaco-vscode-typescript-basics-default-extension": "~15.0.3", - "@codingame/monaco-vscode-typescript-language-features-default-extension": "~15.0.3", - "@codingame/monaco-vscode-views-service-override": "~15.0.3", + "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", + "@codingame/monaco-vscode-cpp-default-extension": "~16.0.2", + "@codingame/monaco-vscode-debug-service-override": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-environment-service-override": "~16.0.2", + "@codingame/monaco-vscode-explorer-service-override": "~16.0.2", + "@codingame/monaco-vscode-files-service-override": "~16.0.2", + "@codingame/monaco-vscode-groovy-default-extension": "~16.0.2", + "@codingame/monaco-vscode-java-default-extension": "~16.0.2", + "@codingame/monaco-vscode-javascript-default-extension": "~16.0.2", + "@codingame/monaco-vscode-json-default-extension": "~16.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "~16.0.2", + "@codingame/monaco-vscode-lifecycle-service-override": "~16.0.2", + "@codingame/monaco-vscode-localization-service-override": "~16.0.2", + "@codingame/monaco-vscode-preferences-service-override": "~16.0.2", + "@codingame/monaco-vscode-python-default-extension": "~16.0.2", + "@codingame/monaco-vscode-remote-agent-service-override": "~16.0.2", + "@codingame/monaco-vscode-search-result-default-extension": "~16.0.2", + "@codingame/monaco-vscode-search-service-override": "~16.0.2", + "@codingame/monaco-vscode-secret-storage-service-override": "~16.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2", + "@codingame/monaco-vscode-storage-service-override": "~16.0.2", + "@codingame/monaco-vscode-testing-service-override": "~16.0.2", + "@codingame/monaco-vscode-textmate-service-override": "~16.0.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~16.0.2", + "@codingame/monaco-vscode-theme-service-override": "~16.0.2", + "@codingame/monaco-vscode-typescript-basics-default-extension": "~16.0.2", + "@codingame/monaco-vscode-typescript-language-features-default-extension": "~16.0.2", + "@codingame/monaco-vscode-views-service-override": "~16.0.2", "@typefox/monaco-editor-react": "~6.7.0-next.0", "cors": "^2.8.5", "express": "~5.1.0", @@ -10546,11 +10476,11 @@ "langium": "~3.4.0", "monaco-editor-wrapper": "~6.7.0-next.0", "monaco-languageclient": "~9.6.0-next.0", - "pyright": "~1.1.398", + "pyright": "~1.1.399", "react": "~19.1.0", "react-dom": "~19.1.0", "request-light": "~0.8.0", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-json-languageservice": "~5.4.4", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1", @@ -10567,7 +10497,7 @@ "langium-cli": "~3.4.0", "mini-coi": "~0.4.2", "ts-node": "~10.9.1", - "vite-plugin-static-copy": "~2.3.0", + "vite-plugin-static-copy": "~2.3.1", "vscode-languageserver-types": "~3.17.5" }, "engines": { @@ -10597,42 +10527,42 @@ "version": "6.7.0-next.0", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-api": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-editor-service-override": "~15.0.3", - "@codingame/monaco-vscode-extension-api": "~15.0.3", - "@codingame/monaco-vscode-language-pack-cs": "~15.0.3", - "@codingame/monaco-vscode-language-pack-de": "~15.0.3", - "@codingame/monaco-vscode-language-pack-es": "~15.0.3", - "@codingame/monaco-vscode-language-pack-fr": "~15.0.3", - "@codingame/monaco-vscode-language-pack-it": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ja": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ko": "~15.0.3", - "@codingame/monaco-vscode-language-pack-pl": "~15.0.3", - "@codingame/monaco-vscode-language-pack-pt-br": "~15.0.3", - "@codingame/monaco-vscode-language-pack-qps-ploc": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ru": "~15.0.3", - "@codingame/monaco-vscode-language-pack-tr": "~15.0.3", - "@codingame/monaco-vscode-language-pack-zh-hans": "~15.0.3", - "@codingame/monaco-vscode-language-pack-zh-hant": "~15.0.3", - "@codingame/monaco-vscode-monarch-service-override": "~15.0.3", - "@codingame/monaco-vscode-textmate-service-override": "~15.0.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~15.0.3", - "@codingame/monaco-vscode-theme-service-override": "~15.0.3", - "@codingame/monaco-vscode-views-service-override": "~15.0.3", - "@codingame/monaco-vscode-workbench-service-override": "~15.0.3", + "@codingame/monaco-vscode-api": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-editor-service-override": "~16.0.2", + "@codingame/monaco-vscode-extension-api": "~16.0.2", + "@codingame/monaco-vscode-language-pack-cs": "~16.0.2", + "@codingame/monaco-vscode-language-pack-de": "~16.0.2", + "@codingame/monaco-vscode-language-pack-es": "~16.0.2", + "@codingame/monaco-vscode-language-pack-fr": "~16.0.2", + "@codingame/monaco-vscode-language-pack-it": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ja": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ko": "~16.0.2", + "@codingame/monaco-vscode-language-pack-pl": "~16.0.2", + "@codingame/monaco-vscode-language-pack-pt-br": "~16.0.2", + "@codingame/monaco-vscode-language-pack-qps-ploc": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ru": "~16.0.2", + "@codingame/monaco-vscode-language-pack-tr": "~16.0.2", + "@codingame/monaco-vscode-language-pack-zh-hans": "~16.0.2", + "@codingame/monaco-vscode-language-pack-zh-hant": "~16.0.2", + "@codingame/monaco-vscode-monarch-service-override": "~16.0.2", + "@codingame/monaco-vscode-textmate-service-override": "~16.0.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~16.0.2", + "@codingame/monaco-vscode-theme-service-override": "~16.0.2", + "@codingame/monaco-vscode-views-service-override": "~16.0.2", + "@codingame/monaco-vscode-workbench-service-override": "~16.0.2", "monaco-languageclient": "~9.6.0-next.0", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol": "~3.17.5", "vscode-ws-jsonrpc": "~3.4.0" }, "devDependencies": { - "@codingame/monaco-vscode-standalone-css-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-html-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-languages": "~15.0.3", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3" + "@codingame/monaco-vscode-standalone-css-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-html-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-languages": "~16.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2" }, "engines": { "node": ">=20.10.0", @@ -10644,7 +10574,7 @@ "version": "6.7.0-next.0", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-editor-api": "~15.0.3", + "@codingame/monaco-vscode-editor-api": "~16.0.2", "monaco-editor-wrapper": "~6.7.0-next.0", "react": ">=18.0.0 || <20.0.0" }, diff --git a/package.json b/package.json index f3f9a401..8d4b63a1 100644 --- a/package.json +++ b/package.json @@ -13,21 +13,21 @@ }, "devDependencies": { "@codingame/esbuild-import-meta-url-plugin": "~1.0.3", - "@codingame/monaco-vscode-rollup-vsix-plugin": "~15.0.3", - "@eslint/eslintrc": "~3.3.0", - "@eslint/js": "~9.23.0", + "@codingame/monaco-vscode-rollup-vsix-plugin": "~16.0.2", + "@eslint/eslintrc": "~3.3.1", + "@eslint/js": "~9.24.0", "@stylistic/eslint-plugin": "~4.2.0", - "@testing-library/react": "~16.2.0", - "@types/node": "~22.13.17", - "@types/react": "~19.1.0", - "@types/react-dom": "~19.1.0", - "@typescript-eslint/eslint-plugin": "~8.29.0", - "@typescript-eslint/parser": "~8.29.0", + "@testing-library/react": "~16.3.0", + "@types/node": "~22.14.0", + "@types/react": "~19.1.1", + "@types/react-dom": "~19.1.2", + "@typescript-eslint/eslint-plugin": "~8.29.1", + "@typescript-eslint/parser": "~8.29.1", "@vitejs/plugin-react": "~4.3.4", "@vitest/browser": "~3.1.1", "editorconfig": "~2.0.1", "esbuild": "~0.25.2", - "eslint": "~9.23.0", + "eslint": "~9.24.0", "eslint-plugin-header": "~3.1.1", "eslint-plugin-import": "~2.31.0", "eslint-plugin-unused-imports": "~4.1.4", @@ -36,9 +36,9 @@ "minimatch": "~10.0.1", "playwright": "~1.51.1", "shx": "~0.4.0", - "typescript": "~5.8.2", "tsx": "~4.19.3", - "vite": "~6.2.4", + "typescript": "~5.8.3", + "vite": "~6.2.6", "vitest": "~3.1.1" }, "scripts": { diff --git a/packages/client/package.json b/packages/client/package.json index b449f040..9192cc7f 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -76,17 +76,17 @@ "LICENSE" ], "dependencies": { - "@codingame/monaco-vscode-api": "~15.0.3", - "@codingame/monaco-vscode-configuration-service-override": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-editor-service-override": "~15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "~15.0.3", - "@codingame/monaco-vscode-extension-api": "~15.0.3", - "@codingame/monaco-vscode-languages-service-override": "~15.0.3", - "@codingame/monaco-vscode-localization-service-override": "~15.0.3", - "@codingame/monaco-vscode-log-service-override": "~15.0.3", - "@codingame/monaco-vscode-model-service-override": "~15.0.3", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "@codingame/monaco-vscode-api": "~16.0.2", + "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-editor-service-override": "~16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "~16.0.2", + "@codingame/monaco-vscode-extension-api": "~16.0.2", + "@codingame/monaco-vscode-languages-service-override": "~16.0.2", + "@codingame/monaco-vscode-localization-service-override": "~16.0.2", + "@codingame/monaco-vscode-log-service-override": "~16.0.2", + "@codingame/monaco-vscode-model-service-override": "~16.0.2", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1" }, "scripts": { diff --git a/packages/examples/package.json b/packages/examples/package.json index b5f530e7..3c59a19d 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -35,6 +35,14 @@ "./python-client": { "types": "./dist/python/client/main.d.ts", "default": "./dist/python/client/main.js" + }, + "./worker/langium": { + "types": "./dist/langium/langium-dsl/worker/langium-server.d.ts", + "default": "./dist/langium/langium-dsl/worker/langium-server.js" + }, + "./worker/statemachine": { + "types": "./dist/langium/statemachine/worker/statemachine-server.d.ts", + "default": "./dist/langium/statemachine/worker/statemachine-server.js" } }, "typesVersions": { @@ -48,8 +56,11 @@ "json-client": [ "dist/json/client/wrapperWs" ], - "python-client": [ - "dist/python/client/main" + "worker/langium": [ + "dist/langium/langium-dsl/worker/langium-server" + ], + "worker/statemachine": [ + "dist/langium/statemachine/worker/statemachine-server" ] } }, @@ -71,36 +82,36 @@ "LICENSE" ], "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~15.0.3", - "@codingame/monaco-vscode-cpp-default-extension": "~15.0.3", - "@codingame/monaco-vscode-debug-service-override": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-environment-service-override": "~15.0.3", - "@codingame/monaco-vscode-explorer-service-override": "~15.0.3", - "@codingame/monaco-vscode-files-service-override": "~15.0.3", - "@codingame/monaco-vscode-groovy-default-extension": "~15.0.3", - "@codingame/monaco-vscode-java-default-extension": "~15.0.3", - "@codingame/monaco-vscode-javascript-default-extension": "~15.0.3", - "@codingame/monaco-vscode-json-default-extension": "~15.0.3", - "@codingame/monaco-vscode-keybindings-service-override": "~15.0.3", - "@codingame/monaco-vscode-lifecycle-service-override": "~15.0.3", - "@codingame/monaco-vscode-localization-service-override": "~15.0.3", - "@codingame/monaco-vscode-preferences-service-override": "~15.0.3", - "@codingame/monaco-vscode-python-default-extension": "~15.0.3", - "@codingame/monaco-vscode-remote-agent-service-override": "~15.0.3", - "@codingame/monaco-vscode-search-result-default-extension": "~15.0.3", - "@codingame/monaco-vscode-search-service-override": "~15.0.3", - "@codingame/monaco-vscode-secret-storage-service-override": "~15.0.3", - "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3", - "@codingame/monaco-vscode-testing-service-override": "~15.0.3", - "@codingame/monaco-vscode-storage-service-override": "~15.0.3", - "@codingame/monaco-vscode-textmate-service-override": "~15.0.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~15.0.3", - "@codingame/monaco-vscode-theme-service-override": "~15.0.3", - "@codingame/monaco-vscode-typescript-basics-default-extension": "~15.0.3", - "@codingame/monaco-vscode-typescript-language-features-default-extension": "~15.0.3", - "@codingame/monaco-vscode-views-service-override": "~15.0.3", + "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", + "@codingame/monaco-vscode-cpp-default-extension": "~16.0.2", + "@codingame/monaco-vscode-debug-service-override": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-environment-service-override": "~16.0.2", + "@codingame/monaco-vscode-explorer-service-override": "~16.0.2", + "@codingame/monaco-vscode-files-service-override": "~16.0.2", + "@codingame/monaco-vscode-groovy-default-extension": "~16.0.2", + "@codingame/monaco-vscode-java-default-extension": "~16.0.2", + "@codingame/monaco-vscode-javascript-default-extension": "~16.0.2", + "@codingame/monaco-vscode-json-default-extension": "~16.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "~16.0.2", + "@codingame/monaco-vscode-lifecycle-service-override": "~16.0.2", + "@codingame/monaco-vscode-localization-service-override": "~16.0.2", + "@codingame/monaco-vscode-preferences-service-override": "~16.0.2", + "@codingame/monaco-vscode-python-default-extension": "~16.0.2", + "@codingame/monaco-vscode-remote-agent-service-override": "~16.0.2", + "@codingame/monaco-vscode-search-result-default-extension": "~16.0.2", + "@codingame/monaco-vscode-search-service-override": "~16.0.2", + "@codingame/monaco-vscode-secret-storage-service-override": "~16.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2", + "@codingame/monaco-vscode-testing-service-override": "~16.0.2", + "@codingame/monaco-vscode-storage-service-override": "~16.0.2", + "@codingame/monaco-vscode-textmate-service-override": "~16.0.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~16.0.2", + "@codingame/monaco-vscode-theme-service-override": "~16.0.2", + "@codingame/monaco-vscode-typescript-basics-default-extension": "~16.0.2", + "@codingame/monaco-vscode-typescript-language-features-default-extension": "~16.0.2", + "@codingame/monaco-vscode-views-service-override": "~16.0.2", "@typefox/monaco-editor-react": "~6.7.0-next.0", "cors": "^2.8.5", "express": "~5.1.0", @@ -108,11 +119,11 @@ "langium": "~3.4.0", "monaco-editor-wrapper": "~6.7.0-next.0", "monaco-languageclient": "~9.6.0-next.0", - "pyright": "~1.1.398", + "pyright": "~1.1.399", "react": "~19.1.0", "react-dom": "~19.1.0", "request-light": "~0.8.0", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-json-languageservice": "~5.4.4", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1", @@ -129,7 +140,7 @@ "langium-cli": "~3.4.0", "mini-coi": "~0.4.2", "ts-node": "~10.9.1", - "vite-plugin-static-copy": "~2.3.0", + "vite-plugin-static-copy": "~2.3.1", "vscode-languageserver-types": "~3.17.5" }, "scripts": { diff --git a/packages/examples/src/langium/langium-dsl/config/extendedConfig.ts b/packages/examples/src/langium/langium-dsl/config/extendedConfig.ts index 31e59c77..7572ef2b 100644 --- a/packages/examples/src/langium/langium-dsl/config/extendedConfig.ts +++ b/packages/examples/src/langium/langium-dsl/config/extendedConfig.ts @@ -35,7 +35,8 @@ export const setupLangiumClientExtended = async (params: { 'workbench.colorTheme': 'GitHub Dark High Contrast', 'editor.guides.bracketPairsHorizontal': 'active', 'editor.wordBasedSuggestions': 'off', - 'editor.experimental.asyncTokenization': true + 'editor.experimental.asyncTokenization': true, + 'vitest.disableWorkspaceWarning': true }) } }, diff --git a/packages/examples/src/langium/langium-dsl/worker/langium-server.ts b/packages/examples/src/langium/langium-dsl/worker/langium-server.ts index f6f81664..8144b317 100644 --- a/packages/examples/src/langium/langium-dsl/worker/langium-server.ts +++ b/packages/examples/src/langium/langium-dsl/worker/langium-server.ts @@ -24,5 +24,7 @@ const context = { } as unknown as DefaultSharedModuleContext; const { shared } = createLangiumGrammarServices(context); +console.log('Starting langium-dsl server...'); + // Start the language server with the shared services startLanguageServer(shared); diff --git a/packages/wrapper-react/package.json b/packages/wrapper-react/package.json index 2c3da564..16560828 100644 --- a/packages/wrapper-react/package.json +++ b/packages/wrapper-react/package.json @@ -46,7 +46,7 @@ "npm": "10.9.2" }, "dependencies": { - "@codingame/monaco-vscode-editor-api": "~15.0.3", + "@codingame/monaco-vscode-editor-api": "~16.0.2", "monaco-editor-wrapper": "~6.7.0-next.0", "react": ">=18.0.0 || <20.0.0" }, diff --git a/packages/wrapper-react/src/index.tsx b/packages/wrapper-react/src/index.tsx index e0158262..94a6f642 100644 --- a/packages/wrapper-react/src/index.tsx +++ b/packages/wrapper-react/src/index.tsx @@ -31,26 +31,21 @@ export const MonacoEditorReactComp: React.FC = (props) => { onTextChangedRef.current = onTextChanged; useEffect(() => { - const disposeMonaco = async () => { - try { - await wrapperRef.current.dispose(); - } catch { - // The language client may throw an error during disposal, but we want to continue anyway - } - }; - - const initMonaco = async () => { - if (containerRef.current) { - wrapperConfig.htmlContainer = containerRef.current; - await wrapperRef.current.init(wrapperConfig); - } else { - throw new Error('No htmlContainer found! Aborting...'); - } - }; - const startMonaco = async () => { + (async () => { if (containerRef.current) { try { + wrapperConfig.htmlContainer = containerRef.current; + if (wrapperRef.current.isInitializing() || wrapperRef.current.isStarting() || wrapperRef.current.isDisposing()) { + await Promise.all([ + wrapperRef.current.getInitializingAwait(), + wrapperRef.current.getStartingAwait(), + wrapperRef.current.getDisposingAwait() + ]); + } + + await wrapperRef.current.init(wrapperConfig); + wrapperRef.current.registerTextChangedCallback((textChanges) => { if (onTextChangedRef.current !== undefined) { onTextChangedRef.current(textChanges); @@ -68,12 +63,6 @@ export const MonacoEditorReactComp: React.FC = (props) => { } else { throw new Error('No htmlContainer found! Aborting...'); } - }; - - (async () => { - await disposeMonaco(); - await initMonaco(); - await startMonaco(); })(); }, [wrapperConfig]); diff --git a/packages/wrapper-react/test/helper.ts b/packages/wrapper-react/test/helper.ts index 3c9cf05e..189c2c9a 100644 --- a/packages/wrapper-react/test/helper.ts +++ b/packages/wrapper-react/test/helper.ts @@ -3,14 +3,15 @@ * Licensed under the MIT License. See LICENSE in the package root for license information. * ------------------------------------------------------------------------------------------ */ +import { MessageTransports } from 'vscode-languageclient'; import { LogLevel } from '@codingame/monaco-vscode-api'; -import type { CodeResources, WrapperConfig } from 'monaco-editor-wrapper'; +import type { CodeResources, LanguageClientConfig, WrapperConfig } from 'monaco-editor-wrapper'; import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; -export const createDefaultWrapperConfig = (codeResources: CodeResources): WrapperConfig => { +export const createDefaultWrapperConfig = (codeResources: CodeResources, logLevel?: LogLevel): WrapperConfig => { return { $type: 'extended', - logLevel: LogLevel.Debug, + logLevel, vscodeApiConfig: { loadThemes: false }, @@ -20,3 +21,21 @@ export const createDefaultWrapperConfig = (codeResources: CodeResources): Wrappe } }; }; + +export const createDefaultLcWorkerConfig = (worker: Worker, languageId: string, + messageTransports?: MessageTransports): LanguageClientConfig => { + return { + name: 'test-worker-direct', + clientOptions: { + documentSelector: [languageId] + }, + connection: { + options: { + $type: 'WorkerDirect', + // create a web worker to pass to the wrapper + worker + }, + messageTransports + } + }; +}; diff --git a/packages/wrapper-react/test/index.test.tsx b/packages/wrapper-react/test/index.test.tsx index 95a77621..a0934ccc 100644 --- a/packages/wrapper-react/test/index.test.tsx +++ b/packages/wrapper-react/test/index.test.tsx @@ -5,10 +5,10 @@ import { describe, expect, test } from 'vitest'; import { render, type RenderResult } from '@testing-library/react'; -import React from 'react'; +import React, { StrictMode } from 'react'; import { MonacoEditorLanguageClientWrapper, type TextContents } from 'monaco-editor-wrapper'; import { MonacoEditorReactComp } from '@typefox/monaco-editor-react'; -import { createDefaultWrapperConfig } from './helper.js'; +import { createDefaultLcWorkerConfig, createDefaultWrapperConfig } from './helper.js'; describe('Test MonacoEditorReactComp', () => { @@ -83,21 +83,40 @@ describe('Test MonacoEditorReactComp', () => { test('rerender without error', async () => { let error = false; - try { - const wrapperConfig = createDefaultWrapperConfig({ - modified: { - text: 'const text = "Hello World!";', - uri: `/workspace/${expect.getState().testPath}.js`, - } - }); - const newWrapperConfig = createDefaultWrapperConfig({ - modified: { - text: 'const text = "Goodbye World 2!";', - uri: `/workspace/${expect.getState().testPath}_2.js`, - } - }); - let renderResult: RenderResult; + const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); + const worker = new Worker(workerUrl, { + type: 'module', + name: 'Langium LS (React Test)' + }); + const languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium'); + + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); + wrapperConfig.languageClientConfigs = { + configs: { + 'langium': languageClientConfig + } + }; + const newWrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Goodbye World 2!";', + uri: `/workspace/${expect.getState().testPath}_2.js`, + } + }); + newWrapperConfig.languageClientConfigs = { + automaticallyDisposeWorkers: true, + configs: { + 'langium': languageClientConfig + } + }; + + let renderResult: RenderResult; + try { const result1 = await new Promise(resolve => { const handleOnLoad = async (_wrapper: MonacoEditorLanguageClientWrapper) => { renderResult.rerender(); @@ -116,4 +135,63 @@ describe('Test MonacoEditorReactComp', () => { } expect(error).toBe(false); }); + + test('strict-mode: editor only', async () => { + let error = false; + + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + }, + }); + + try { + const handleOnLoad = async (_wrapper: MonacoEditorLanguageClientWrapper) => { + console.log('onLoad'); + }; + render(); + + } catch (e) { + console.error(`Unexpected error occured: ${e}`); + error = true; + } + expect(error).toBe(false); + }); + + test('strict-mode: language server', async () => { + let error = false; + + const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); + const worker = new Worker(workerUrl, { + type: 'module', + name: 'Langium LS (React Test 1)' + }); + const languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium'); + + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.langium`, + }, + }); + wrapperConfig.languageClientConfigs = { + configs: { + 'langium': languageClientConfig + } + }; + + try { + const handleOnLoad = async (_wrapper: MonacoEditorLanguageClientWrapper) => { + console.log('onLoad'); + }; + render(); + + } catch (e) { + console.error(`Unexpected error occured: ${e}`); + error = true; + } + expect(error).toBe(false); + }); + }); diff --git a/packages/wrapper/package.json b/packages/wrapper/package.json index 78d7276b..cf1d84b3 100644 --- a/packages/wrapper/package.json +++ b/packages/wrapper/package.json @@ -67,42 +67,42 @@ "npm": "10.9.2" }, "dependencies": { - "@codingame/monaco-vscode-api": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-editor-service-override": "~15.0.3", - "@codingame/monaco-vscode-extension-api": "~15.0.3", - "@codingame/monaco-vscode-language-pack-cs": "~15.0.3", - "@codingame/monaco-vscode-language-pack-de": "~15.0.3", - "@codingame/monaco-vscode-language-pack-es": "~15.0.3", - "@codingame/monaco-vscode-language-pack-fr": "~15.0.3", - "@codingame/monaco-vscode-language-pack-it": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ja": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ko": "~15.0.3", - "@codingame/monaco-vscode-language-pack-pl": "~15.0.3", - "@codingame/monaco-vscode-language-pack-pt-br": "~15.0.3", - "@codingame/monaco-vscode-language-pack-qps-ploc": "~15.0.3", - "@codingame/monaco-vscode-language-pack-ru": "~15.0.3", - "@codingame/monaco-vscode-language-pack-tr": "~15.0.3", - "@codingame/monaco-vscode-language-pack-zh-hans": "~15.0.3", - "@codingame/monaco-vscode-language-pack-zh-hant": "~15.0.3", - "@codingame/monaco-vscode-monarch-service-override": "~15.0.3", - "@codingame/monaco-vscode-textmate-service-override": "~15.0.3", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~15.0.3", - "@codingame/monaco-vscode-theme-service-override": "~15.0.3", - "@codingame/monaco-vscode-views-service-override": "~15.0.3", - "@codingame/monaco-vscode-workbench-service-override": "~15.0.3", + "@codingame/monaco-vscode-api": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-editor-service-override": "~16.0.2", + "@codingame/monaco-vscode-extension-api": "~16.0.2", + "@codingame/monaco-vscode-language-pack-cs": "~16.0.2", + "@codingame/monaco-vscode-language-pack-de": "~16.0.2", + "@codingame/monaco-vscode-language-pack-es": "~16.0.2", + "@codingame/monaco-vscode-language-pack-fr": "~16.0.2", + "@codingame/monaco-vscode-language-pack-it": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ja": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ko": "~16.0.2", + "@codingame/monaco-vscode-language-pack-pl": "~16.0.2", + "@codingame/monaco-vscode-language-pack-pt-br": "~16.0.2", + "@codingame/monaco-vscode-language-pack-qps-ploc": "~16.0.2", + "@codingame/monaco-vscode-language-pack-ru": "~16.0.2", + "@codingame/monaco-vscode-language-pack-tr": "~16.0.2", + "@codingame/monaco-vscode-language-pack-zh-hans": "~16.0.2", + "@codingame/monaco-vscode-language-pack-zh-hant": "~16.0.2", + "@codingame/monaco-vscode-monarch-service-override": "~16.0.2", + "@codingame/monaco-vscode-textmate-service-override": "~16.0.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~16.0.2", + "@codingame/monaco-vscode-theme-service-override": "~16.0.2", + "@codingame/monaco-vscode-views-service-override": "~16.0.2", + "@codingame/monaco-vscode-workbench-service-override": "~16.0.2", "monaco-languageclient": "~9.6.0-next.0", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol": "~3.17.5", "vscode-ws-jsonrpc": "~3.4.0" }, "devDependencies": { - "@codingame/monaco-vscode-standalone-languages": "~15.0.3", - "@codingame/monaco-vscode-standalone-css-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-html-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-json-language-features": "~15.0.3", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~15.0.3" + "@codingame/monaco-vscode-standalone-languages": "~16.0.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-html-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2" }, "repository": { "type": "git", diff --git a/packages/wrapper/test/languageClientWrapper.test.ts b/packages/wrapper/test/languageClientWrapper.test.ts index c6d7b9c4..81bcb959 100644 --- a/packages/wrapper/test/languageClientWrapper.test.ts +++ b/packages/wrapper/test/languageClientWrapper.test.ts @@ -4,6 +4,7 @@ * ------------------------------------------------------------------------------------------ */ import { beforeAll, describe, expect, test } from 'vitest'; +import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js'; import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-editor-wrapper'; import { initServices } from 'monaco-languageclient/vscode/services'; import { createDefaultLcUnreachableUrlConfig, createDefaultLcWorkerConfig, createUnreachableWorkerConfig } from './support/helper.js'; @@ -16,11 +17,18 @@ describe('Test LanguageClientWrapper', () => { beforeAll(async () => { await initServices({}); - worker = new Worker('../workers/langium-server.ts', { + const workerUrl = 'monaco-languageclient-examples/worker/langium'; + worker = new Worker(workerUrl, { type: 'module', name: 'Langium LS' }); - languageClientConfig = createDefaultLcWorkerConfig(worker); + + const reader = new BrowserMessageReader(worker); + const writer = new BrowserMessageWriter(worker); + reader.listen((message) => { + console.log('Received message from worker:', message); + }); + languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium', { reader, writer }); }); test('Constructor: no config', () => { diff --git a/packages/wrapper/test/support/helper.ts b/packages/wrapper/test/support/helper.ts index 915a525d..a437ab74 100644 --- a/packages/wrapper/test/support/helper.ts +++ b/packages/wrapper/test/support/helper.ts @@ -3,6 +3,7 @@ * Licensed under the MIT License. See LICENSE in the package root for license information. * ------------------------------------------------------------------------------------------ */ +import { MessageTransports } from 'vscode-languageclient'; import type { CodeResources, LanguageClientConfig, WrapperConfig } from 'monaco-editor-wrapper'; import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders'; @@ -27,18 +28,20 @@ export const createWrapperConfigExtendedApp = (codeResources: CodeResources): Wr }; }; -export const createDefaultLcWorkerConfig = (worker: Worker): LanguageClientConfig => { +export const createDefaultLcWorkerConfig = (worker: Worker, languageId: string, + messageTransports?: MessageTransports): LanguageClientConfig => { return { name: 'test-worker-direct', clientOptions: { - documentSelector: ['javascript'] + documentSelector: [languageId] }, connection: { options: { $type: 'WorkerDirect', // create a web worker to pass to the wrapper worker - } + }, + messageTransports } }; }; diff --git a/packages/wrapper/test/workers/langium-server.ts b/packages/wrapper/test/workers/langium-server.ts deleted file mode 100644 index ee3c4e74..00000000 --- a/packages/wrapper/test/workers/langium-server.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* -------------------------------------------------------------------------------------------- - * Copyright (c) 2018-2022 TypeFox and others. - * Licensed under the MIT License. See LICENSE in the package root for license information. - * ------------------------------------------------------------------------------------------ */ -/// - -import { EmptyFileSystem } from 'langium'; -import { type DefaultSharedModuleContext, startLanguageServer } from 'langium/lsp'; -import { createLangiumGrammarServices } from 'langium/grammar'; -import { BrowserMessageReader, BrowserMessageWriter, createConnection } from 'vscode-languageserver/browser.js'; - -console.log('Langium Worker started for test'); - -/* browser specific setup code */ -const messageReader = new BrowserMessageReader(self as DedicatedWorkerGlobalScope); -const messageWriter = new BrowserMessageWriter(self as DedicatedWorkerGlobalScope); - -// Inject the shared services and language-specific services -const context = { - connection: createConnection(messageReader, messageWriter), - ...EmptyFileSystem -} as unknown as DefaultSharedModuleContext; -const { shared } = createLangiumGrammarServices(context); - -// Start the language server with the shared services -startLanguageServer(shared); diff --git a/packages/wrapper/test/wrapper.test.ts b/packages/wrapper/test/wrapper.test.ts index 0f960441..004fbff8 100644 --- a/packages/wrapper/test/wrapper.test.ts +++ b/packages/wrapper/test/wrapper.test.ts @@ -6,9 +6,10 @@ /* eslint-disable dot-notation */ import { describe, expect, test, vi } from 'vitest'; +import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js'; import { MonacoEditorLanguageClientWrapper, type TextContents } from 'monaco-editor-wrapper'; -import { createDefaultLcUnreachableUrlConfig, createMonacoEditorDiv, createWrapperConfigExtendedApp } from './support/helper.js'; - +import { delayExecution } from 'monaco-languageclient-examples'; +import { createDefaultLcUnreachableUrlConfig, createDefaultLcWorkerConfig, createMonacoEditorDiv, createWrapperConfigExtendedApp } from './support/helper.js'; describe('Test MonacoEditorLanguageClientWrapper', () => { test('New wrapper has undefined editor', () => { @@ -249,4 +250,61 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); await expect(await wrapper.start(htmlContainer)).toBeUndefined(); }); + + test('restart with languageclient', async () => { + let error = false; + + const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); + const worker = new Worker(workerUrl, { + type: 'module', + name: 'Langium LS (Regular Test)' + }); + + const reader = new BrowserMessageReader(worker); + const writer = new BrowserMessageWriter(worker); + const languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium', { reader, writer }); + + const wrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.js`, + } + }); + wrapperConfig.languageClientConfigs = { + configs: { + 'langium': languageClientConfig + } + }; + const newWrapperConfig = createWrapperConfigExtendedApp({ + modified: { + text: 'const text = "Goodbye World 2!";', + uri: `/workspace/${expect.getState().testPath}_2.js`, + } + }); + newWrapperConfig.languageClientConfigs = { + automaticallyDisposeWorkers: true, + configs: { + 'langium': languageClientConfig + } + }; + + const wrapper = new MonacoEditorLanguageClientWrapper(); + try { + await expect(await wrapper.init(wrapperConfig)).toBeUndefined(); + await expect(await wrapper.start()).toBeUndefined(); + await expect(await wrapper.dispose()).toBeUndefined(); + + await delayExecution(1000); + + await expect(await wrapper.init(newWrapperConfig)).toBeUndefined(); + await expect(await wrapper.start()).toBeUndefined(); + await expect(await wrapper.dispose()).toBeUndefined(); + } catch (e) { + console.error(`Unexpected error occured: ${e}`); + error = true; + } + + expect(error).toBe(false); + }); + }); diff --git a/verify/angular/package.json b/verify/angular/package.json index e62ae9a4..310a3002 100644 --- a/verify/angular/package.json +++ b/verify/angular/package.json @@ -16,7 +16,7 @@ "@angular/core": "~18.2.8", "@angular/platform-browser": "~18.2.8", "@angular/platform-browser-dynamic": "~18.2.8", - "@codingame/monaco-vscode-editor-api": "~15.0.3", + "@codingame/monaco-vscode-editor-api": "~16.0.2", "monaco-editor-wrapper": "~6.7.0-next.0", "monaco-languageclient-examples": "~2025.4.1", "rxjs": "~7.8.1", diff --git a/verify/peerNpm/package.json b/verify/peerNpm/package.json index ae5f12ff..13f349df 100644 --- a/verify/peerNpm/package.json +++ b/verify/peerNpm/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "monaco-languageclient-examples": "~2025.4.1", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3" + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2" }, "devDependencies": { "typescript": "~5.8.2" diff --git a/verify/peerPnpm/package.json b/verify/peerPnpm/package.json index 6d709694..f4c28311 100644 --- a/verify/peerPnpm/package.json +++ b/verify/peerPnpm/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "monaco-languageclient-examples": "~2025.4.1", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3" + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2" }, "devDependencies": { "typescript": "~5.8.2" diff --git a/verify/peerYarn/package.json b/verify/peerYarn/package.json index 467a6e71..a498355b 100644 --- a/verify/peerYarn/package.json +++ b/verify/peerYarn/package.json @@ -13,18 +13,18 @@ "yarn": "4.6.0" }, "dependencies": { - "@codingame/monaco-vscode-api": "~15.0.3", - "@codingame/monaco-vscode-configuration-service-override": "~15.0.3", - "@codingame/monaco-vscode-editor-api": "~15.0.3", - "@codingame/monaco-vscode-editor-service-override": "~15.0.3", - "@codingame/monaco-vscode-extension-api": "~15.0.3", - "@codingame/monaco-vscode-extensions-service-override": "~15.0.3", - "@codingame/monaco-vscode-languages-service-override": "~15.0.3", - "@codingame/monaco-vscode-localization-service-override": "~15.0.3", - "@codingame/monaco-vscode-log-service-override": "~15.0.3", - "@codingame/monaco-vscode-model-service-override": "~15.0.3", + "@codingame/monaco-vscode-api": "~16.0.2", + "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", + "@codingame/monaco-vscode-editor-api": "~16.0.2", + "@codingame/monaco-vscode-editor-service-override": "~16.0.2", + "@codingame/monaco-vscode-extension-api": "~16.0.2", + "@codingame/monaco-vscode-extensions-service-override": "~16.0.2", + "@codingame/monaco-vscode-languages-service-override": "~16.0.2", + "@codingame/monaco-vscode-localization-service-override": "~16.0.2", + "@codingame/monaco-vscode-log-service-override": "~16.0.2", + "@codingame/monaco-vscode-model-service-override": "~16.0.2", "monaco-languageclient-examples": "~2025.4.1", - "vscode": "npm:@codingame/monaco-vscode-extension-api@~15.0.3", + "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1" }, "devDependencies": { diff --git a/vitest.config.ts b/vitest.config.ts index 60086f91..ecb88e8b 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -42,8 +42,6 @@ export const vitestConfig = { '**/wrapper/test/wrapper-classic.test.ts', '**/wrapper/test/workers/workerLoaders.test.ts', '**/wrapper-react/test/index.test.tsx' - // '**/*.test.ts', - // '**/*.test.tsx' ] } }; From 76627c0ec5c20252c41cc6bdf7acac2c31bd5d4c Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Fri, 11 Apr 2025 22:55:25 +0200 Subject: [PATCH 5/6] Increment to versions to next.1 --- README.md | 10 +++++----- docs/versions-and-history.md | 2 +- package-lock.json | 21 +++++++++++---------- packages/client/CHANGELOG.md | 4 ++-- packages/client/package.json | 2 +- packages/examples/CHANGELOG.md | 7 ++++++- packages/examples/package.json | 8 ++++---- packages/wrapper-react/CHANGELOG.md | 4 ++-- packages/wrapper-react/package.json | 4 ++-- packages/wrapper-react/tsconfig.test.json | 2 ++ packages/wrapper/CHANGELOG.md | 6 +++--- packages/wrapper/package.json | 7 ++++--- packages/wrapper/tsconfig.test.json | 4 +++- verify/angular/package.json | 4 ++-- verify/next/package.json | 4 ++-- verify/peerNpm/package.json | 2 +- verify/peerPnpm/package.json | 2 +- verify/peerYarn/package.json | 2 +- verify/vite/package.json | 2 +- verify/webpack/package.json | 2 +- vite.config.ts | 1 + vitest.config.ts | 2 +- 22 files changed, 57 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 7612d4ad..3505ed22 100644 --- a/README.md +++ b/README.md @@ -79,12 +79,12 @@ Important Project changes and notes about the project's history are found [here] These are the current versions of packages from this repository and their alignment with **@codingame/monaco-vscode-api** **monaco-editor** and **vscode**: -- **monaco-languageclient**: `9.6.0-next.0` (release date: 2025-04-0x) -- **monaco-editor-wrapper**: `6.7.0-next.0` (release date: 2025-04-0x) -- **@typefox/monaco-editor-react**: `6.7.0-next.0` (release date: 2025-04-0x) +- **monaco-languageclient**: `9.6.0-next.1` (release date: 2025-04-11) +- **monaco-editor-wrapper**: `6.7.0-next.1` (release date: 2025-04-11) +- **@typefox/monaco-editor-react**: `6.7.0-next.1` (release date: 2025-04-11) - Aligned with: - - **@codingame/monaco-vscode-[editor]-api**: `15.0.3` - - **vscode**: `1.98.2` + - **@codingame/monaco-vscode-[editor]-api**: `16.0.2` + - **vscode**: `1.99.2` - **monaco-editor**: `0.52.2` - **vscode-ws-jsonrpc**: `3.4.0` (release date: 2024-12-18) diff --git a/docs/versions-and-history.md b/docs/versions-and-history.md index fadd309d..68f7e896 100644 --- a/docs/versions-and-history.md +++ b/docs/versions-and-history.md @@ -6,7 +6,7 @@ The following table describes which version of **monaco-languageclient** and **@ | monaco-languageclient | monaco-editor-wrapper | monaco-editor-react | monaco-vscode-api / editor-api | vscode | monaco-editor | release date | comment | | :---- | :---- | :--- | :--- | :--- | :--- | :--- | :--- | -| 9.6.0-next.0 | 6.7.0-next.0 | 6.7.0-next.0 | 15.0.3 | 1.98.2 | 0.52.2 | 2025-04-0x | | +| 9.6.0-next.1 | 6.7.0-next.1 | 6.7.0-next.1 | 16.0.2 | 1.99.2 | 0.52.2 | 2025-04-11 | | | 9.5.0 | 6.6.0 | 6.6.0 | 15.0.2 | 1.97.2 | 0.52.2 | 2025-03-13 | | | 9.4.0 | 6.4.0 | 6.4.0 | 14.0.4 | 1.97.2 | 0.52.2 | 2025-02-18 | | | 9.3.0 | 6.3.0 | 6.3.0 | 14.0.2 | 1.97.0 | 0.52.2 | 2025-02-12 | | diff --git a/package-lock.json b/package-lock.json index f5acf7b4..6ef576cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10413,7 +10413,7 @@ }, "packages/client": { "name": "monaco-languageclient", - "version": "9.6.0-next.0", + "version": "9.6.0-next.1", "license": "MIT", "dependencies": { "@codingame/monaco-vscode-api": "~16.0.2", @@ -10436,7 +10436,7 @@ }, "packages/examples": { "name": "monaco-languageclient-examples", - "version": "2025.4.1", + "version": "2025.4.2", "license": "MIT", "dependencies": { "@codingame/monaco-vscode-configuration-service-override": "~16.0.2", @@ -10469,13 +10469,13 @@ "@codingame/monaco-vscode-typescript-basics-default-extension": "~16.0.2", "@codingame/monaco-vscode-typescript-language-features-default-extension": "~16.0.2", "@codingame/monaco-vscode-views-service-override": "~16.0.2", - "@typefox/monaco-editor-react": "~6.7.0-next.0", + "@typefox/monaco-editor-react": "~6.7.0-next.1", "cors": "^2.8.5", "express": "~5.1.0", "jszip": "~3.10.1", "langium": "~3.4.0", - "monaco-editor-wrapper": "~6.7.0-next.0", - "monaco-languageclient": "~9.6.0-next.0", + "monaco-editor-wrapper": "~6.7.0-next.1", + "monaco-languageclient": "~9.6.0-next.1", "pyright": "~1.1.399", "react": "~19.1.0", "react-dom": "~19.1.0", @@ -10524,7 +10524,7 @@ }, "packages/wrapper": { "name": "monaco-editor-wrapper", - "version": "6.7.0-next.0", + "version": "6.7.0-next.1", "license": "MIT", "dependencies": { "@codingame/monaco-vscode-api": "~16.0.2", @@ -10551,7 +10551,7 @@ "@codingame/monaco-vscode-theme-service-override": "~16.0.2", "@codingame/monaco-vscode-views-service-override": "~16.0.2", "@codingame/monaco-vscode-workbench-service-override": "~16.0.2", - "monaco-languageclient": "~9.6.0-next.0", + "monaco-languageclient": "~9.6.0-next.1", "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol": "~3.17.5", @@ -10562,7 +10562,8 @@ "@codingame/monaco-vscode-standalone-html-language-features": "~16.0.2", "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", "@codingame/monaco-vscode-standalone-languages": "~16.0.2", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2" + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2", + "monaco-languageclient-examples": "~2025.4.2" }, "engines": { "node": ">=20.10.0", @@ -10571,11 +10572,11 @@ }, "packages/wrapper-react": { "name": "@typefox/monaco-editor-react", - "version": "6.7.0-next.0", + "version": "6.7.0-next.1", "license": "MIT", "dependencies": { "@codingame/monaco-vscode-editor-api": "~16.0.2", - "monaco-editor-wrapper": "~6.7.0-next.0", + "monaco-editor-wrapper": "~6.7.0-next.1", "react": ">=18.0.0 || <20.0.0" }, "engines": { diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index cc941a3b..88e3a466 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -2,9 +2,9 @@ All notable changes to this npm module are documented in this file. -## [9.6.0-next.0] - 2025-04-0x +## [9.6.0-next.1] - 2025-04-1x -- Updated all `@codingame/monaco-vscode` packages to `15.0.3`. +- Updated all `@codingame/monaco-vscode` packages to `16.0.2`. ## [9.5.0] - 2025-03-13 diff --git a/packages/client/package.json b/packages/client/package.json index 9192cc7f..22885620 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "monaco-languageclient", - "version": "9.6.0-next.0", + "version": "9.6.0-next.1", "description": "Monaco Language client implementation", "author": { "name": "TypeFox GmbH", diff --git a/packages/examples/CHANGELOG.md b/packages/examples/CHANGELOG.md index e6bd2fe1..22892771 100644 --- a/packages/examples/CHANGELOG.md +++ b/packages/examples/CHANGELOG.md @@ -2,7 +2,12 @@ All notable changes to this npm module are documented in this file. -## [2025.4.1] - 2025-04-0x +## [2025.4.2] - 2025-04-11 + +- Updated to `monaco-languageclient@9.6.0-next.1`, `monaco-editor-wrapper@6.7.0-next.1` and `@typefox/monaco-editor-react@6.7.0-next.1`. +- Export langium worker via package sub exports. + +## [2025.4.1] - 2025-04-02 - Updated to `monaco-languageclient@9.6.0-next.0`, `monaco-editor-wrapper@6.7.0-next.0` and `@typefox/monaco-editor-react@6.7.0-next.0`. diff --git a/packages/examples/package.json b/packages/examples/package.json index 3c59a19d..e25f59b9 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -1,6 +1,6 @@ { "name": "monaco-languageclient-examples", - "version": "2025.4.1", + "version": "2025.4.2", "description": "Monaco Language client examples", "author": { "name": "TypeFox GmbH", @@ -112,13 +112,13 @@ "@codingame/monaco-vscode-typescript-basics-default-extension": "~16.0.2", "@codingame/monaco-vscode-typescript-language-features-default-extension": "~16.0.2", "@codingame/monaco-vscode-views-service-override": "~16.0.2", - "@typefox/monaco-editor-react": "~6.7.0-next.0", + "@typefox/monaco-editor-react": "~6.7.0-next.1", "cors": "^2.8.5", "express": "~5.1.0", "jszip": "~3.10.1", "langium": "~3.4.0", - "monaco-editor-wrapper": "~6.7.0-next.0", - "monaco-languageclient": "~9.6.0-next.0", + "monaco-editor-wrapper": "~6.7.0-next.1", + "monaco-languageclient": "~9.6.0-next.1", "pyright": "~1.1.399", "react": "~19.1.0", "react-dom": "~19.1.0", diff --git a/packages/wrapper-react/CHANGELOG.md b/packages/wrapper-react/CHANGELOG.md index 4ca0921c..e7817395 100644 --- a/packages/wrapper-react/CHANGELOG.md +++ b/packages/wrapper-react/CHANGELOG.md @@ -2,9 +2,9 @@ All notable changes to npm module [@typefox/monaco-editor-react](https://www.npmjs.com/package/@typefox/monaco-editor-react) are documented in this file. -## [6.7.0-next.0] - 2025-04-0x +## [6.7.0-next.1] - 2025-04-1x -- Updated to `monaco-languageclient@9.6.0-next.0` and `monaco-editor-wrapper@6.7.0-next.0`. +- Updated to `monaco-languageclient@9.6.0-next.1` and `monaco-editor-wrapper@6.7.0-next.1`. ## [6.6.0] - 2025-03-13 diff --git a/packages/wrapper-react/package.json b/packages/wrapper-react/package.json index 16560828..6704b258 100644 --- a/packages/wrapper-react/package.json +++ b/packages/wrapper-react/package.json @@ -1,6 +1,6 @@ { "name": "@typefox/monaco-editor-react", - "version": "6.7.0-next.0", + "version": "6.7.0-next.1", "license": "MIT", "description": "React component for Monaco-Editor and Monaco Languageclient", "keywords": [ @@ -47,7 +47,7 @@ }, "dependencies": { "@codingame/monaco-vscode-editor-api": "~16.0.2", - "monaco-editor-wrapper": "~6.7.0-next.0", + "monaco-editor-wrapper": "~6.7.0-next.1", "react": ">=18.0.0 || <20.0.0" }, "repository": { diff --git a/packages/wrapper-react/tsconfig.test.json b/packages/wrapper-react/tsconfig.test.json index dfccd5b7..cdbf5925 100644 --- a/packages/wrapper-react/tsconfig.test.json +++ b/packages/wrapper-react/tsconfig.test.json @@ -10,6 +10,8 @@ }, "references": [{ "path": "./tsconfig.src.json" + }, { + "path": "../examples/tsconfig.src.json", }], "include": [ "test/**/*.ts", diff --git a/packages/wrapper/CHANGELOG.md b/packages/wrapper/CHANGELOG.md index 2a23529e..08f96ce4 100644 --- a/packages/wrapper/CHANGELOG.md +++ b/packages/wrapper/CHANGELOG.md @@ -2,11 +2,11 @@ All notable changes to npm module [monaco-editor-wrapper](https://www.npmjs.com/package/monaco-editor-wrapper) are documented in this file. -## [6.7.0-next.0] - 2025-04-0x +## [6.7.0-next.1] - 2025-04-1x - Removed the pre-bundled workers and the corresponding export `monaco-editor-wrapper/workers/module/*` for the second time (now for real). You can create your own definition. See what is done in the [default worker factory](https://github.com/TypeFox/monaco-languageclient/blob/main/packages/wrapper/src/workers/workerLoaders.ts). A [webpack worker troubleshooting guide](../../README.md#webpack-worker-issues) is now available. -- Updated to `monaco-languageclient@9.6.0-next.0`. -- Updated all `@codingame/monaco-vscode` packages to `15.0.3`. +- Updated to `monaco-languageclient@9.6.0-next.1`. +- Updated all `@codingame/monaco-vscode` packages to `16.0.2`. ## [6.6.0] - 2025-03-13 diff --git a/packages/wrapper/package.json b/packages/wrapper/package.json index cf1d84b3..4d06736d 100644 --- a/packages/wrapper/package.json +++ b/packages/wrapper/package.json @@ -1,6 +1,6 @@ { "name": "monaco-editor-wrapper", - "version": "6.7.0-next.0", + "version": "6.7.0-next.1", "license": "MIT", "description": "Wrapper for monaco-vscode-editor-api and monaco-languageclient", "keywords": [ @@ -91,7 +91,7 @@ "@codingame/monaco-vscode-theme-service-override": "~16.0.2", "@codingame/monaco-vscode-views-service-override": "~16.0.2", "@codingame/monaco-vscode-workbench-service-override": "~16.0.2", - "monaco-languageclient": "~9.6.0-next.0", + "monaco-languageclient": "~9.6.0-next.1", "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol": "~3.17.5", @@ -102,7 +102,8 @@ "@codingame/monaco-vscode-standalone-css-language-features": "~16.0.2", "@codingame/monaco-vscode-standalone-html-language-features": "~16.0.2", "@codingame/monaco-vscode-standalone-json-language-features": "~16.0.2", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2" + "@codingame/monaco-vscode-standalone-typescript-language-features": "~16.0.2", + "monaco-languageclient-examples": "~2025.4.2" }, "repository": { "type": "git", diff --git a/packages/wrapper/tsconfig.test.json b/packages/wrapper/tsconfig.test.json index 143bf44e..0697ba18 100644 --- a/packages/wrapper/tsconfig.test.json +++ b/packages/wrapper/tsconfig.test.json @@ -9,7 +9,9 @@ "skipLibCheck": true }, "references": [{ - "path": "./tsconfig.src.json" + "path": "./tsconfig.src.json", + }, { + "path": "../examples/tsconfig.src.json", }], "include": [ "test/**/*.ts", diff --git a/verify/angular/package.json b/verify/angular/package.json index 310a3002..03ca0b73 100644 --- a/verify/angular/package.json +++ b/verify/angular/package.json @@ -17,8 +17,8 @@ "@angular/platform-browser": "~18.2.8", "@angular/platform-browser-dynamic": "~18.2.8", "@codingame/monaco-vscode-editor-api": "~16.0.2", - "monaco-editor-wrapper": "~6.7.0-next.0", - "monaco-languageclient-examples": "~2025.4.1", + "monaco-editor-wrapper": "~6.7.0-next.1", + "monaco-languageclient-examples": "~2025.4.2", "rxjs": "~7.8.1", "zone.js": "~0.14.10" }, diff --git a/verify/next/package.json b/verify/next/package.json index 6e608145..1c3fa689 100644 --- a/verify/next/package.json +++ b/verify/next/package.json @@ -11,8 +11,8 @@ }, "type": "module", "dependencies": { - "@typefox/monaco-editor-react": "~6.7.0-next.0", - "monaco-languageclient-examples": "~2025.4.1", + "@typefox/monaco-editor-react": "~6.7.0-next.1", + "monaco-languageclient-examples": "~2025.4.2", "next": "~15.2.2", "react": "~19.0.0", "react-dom": "~19.0.0" diff --git a/verify/peerNpm/package.json b/verify/peerNpm/package.json index 13f349df..e621c3e0 100644 --- a/verify/peerNpm/package.json +++ b/verify/peerNpm/package.json @@ -12,7 +12,7 @@ "npm": "10.9.2" }, "dependencies": { - "monaco-languageclient-examples": "~2025.4.1", + "monaco-languageclient-examples": "~2025.4.2", "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2" }, "devDependencies": { diff --git a/verify/peerPnpm/package.json b/verify/peerPnpm/package.json index f4c28311..3aa16ab3 100644 --- a/verify/peerPnpm/package.json +++ b/verify/peerPnpm/package.json @@ -12,7 +12,7 @@ "pnpm": "10.3.0" }, "dependencies": { - "monaco-languageclient-examples": "~2025.4.1", + "monaco-languageclient-examples": "~2025.4.2", "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2" }, "devDependencies": { diff --git a/verify/peerYarn/package.json b/verify/peerYarn/package.json index a498355b..ee0bf89f 100644 --- a/verify/peerYarn/package.json +++ b/verify/peerYarn/package.json @@ -23,7 +23,7 @@ "@codingame/monaco-vscode-localization-service-override": "~16.0.2", "@codingame/monaco-vscode-log-service-override": "~16.0.2", "@codingame/monaco-vscode-model-service-override": "~16.0.2", - "monaco-languageclient-examples": "~2025.4.1", + "monaco-languageclient-examples": "~2025.4.2", "vscode": "npm:@codingame/monaco-vscode-extension-api@~16.0.2", "vscode-languageclient": "~9.0.1" }, diff --git a/verify/vite/package.json b/verify/vite/package.json index 12b6a8f8..cc4da324 100644 --- a/verify/vite/package.json +++ b/verify/vite/package.json @@ -12,7 +12,7 @@ "npm": "10.9.2" }, "dependencies": { - "monaco-languageclient-examples": "~2025.4.1" + "monaco-languageclient-examples": "~2025.4.2" }, "devDependencies": { "shx": "~0.3.4", diff --git a/verify/webpack/package.json b/verify/webpack/package.json index 7e484100..15979f4d 100644 --- a/verify/webpack/package.json +++ b/verify/webpack/package.json @@ -12,7 +12,7 @@ "npm": "10.9.2" }, "dependencies": { - "monaco-languageclient-examples": "~2025.4.1" + "monaco-languageclient-examples": "~2025.4.2" }, "devDependencies": { "css-loader": "~7.1.2", diff --git a/vite.config.ts b/vite.config.ts index ec7ccf4c..8ca01068 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -66,6 +66,7 @@ export const definedViteConfig = defineConfig({ 'vscode-textmate', 'vscode-oniguruma', 'vscode-languageclient', + 'langium', 'vscode-languageserver/browser.js' ] }, diff --git a/vitest.config.ts b/vitest.config.ts index ecb88e8b..b7335fc8 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -11,7 +11,7 @@ import definedViteConfig from './vite.config.js'; export const vitestConfig = { test: { - testTimeout: 30000, + testTimeout: 40000, // fileParallelism: false, // threads: false, browser: { From 3dd6e1cc6ab0befe410dd3b599faa75b9ea23f01 Mon Sep 17 00:00:00 2001 From: Kai Salmen Date: Thu, 24 Apr 2025 16:26:50 +0200 Subject: [PATCH 6/6] Fix tests and add new tests and updated vite optimizeDeps --- packages/wrapper-react/src/index.tsx | 4 +- packages/wrapper-react/test/index.test.tsx | 82 +++++++++++++++---- packages/wrapper/src/wrapper.ts | 1 + .../test/languageClientWrapper.test.ts | 57 ++++++++++--- vite.config.ts | 60 +++++++++++++- 5 files changed, 177 insertions(+), 27 deletions(-) diff --git a/packages/wrapper-react/src/index.tsx b/packages/wrapper-react/src/index.tsx index 94a6f642..69fc9b24 100644 --- a/packages/wrapper-react/src/index.tsx +++ b/packages/wrapper-react/src/index.tsx @@ -67,12 +67,12 @@ export const MonacoEditorReactComp: React.FC = (props) => { }, [wrapperConfig]); useEffect(() => { - // exact copy of the above function, to prevent declaration in useCallback const disposeMonaco = async () => { try { await wrapperRef.current.dispose(); - } catch { + } catch (error) { // The language client may throw an error during disposal, but we want to continue anyway + console.error(`Unexpected error occurred during disposal of the language client: ${error}`); } }; diff --git a/packages/wrapper-react/test/index.test.tsx b/packages/wrapper-react/test/index.test.tsx index a0934ccc..b124b0fd 100644 --- a/packages/wrapper-react/test/index.test.tsx +++ b/packages/wrapper-react/test/index.test.tsx @@ -82,7 +82,7 @@ describe('Test MonacoEditorReactComp', () => { }); test('rerender without error', async () => { - let error = false; + let errorOccurred = false; const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); const worker = new Worker(workerUrl, { @@ -130,14 +130,15 @@ describe('Test MonacoEditorReactComp', () => { expect(result1).toBeUndefined(); renderResult!.rerender(); - } catch (_e) { - error = true; + } catch (error) { + console.error(`Unexpected error occured: ${error}`); + errorOccurred = true; } - expect(error).toBe(false); + expect(errorOccurred).toBe(false); }); test('strict-mode: editor only', async () => { - let error = false; + let errorOccurred = false; const wrapperConfig = createDefaultWrapperConfig({ modified: { @@ -152,15 +153,15 @@ describe('Test MonacoEditorReactComp', () => { }; render(); - } catch (e) { - console.error(`Unexpected error occured: ${e}`); - error = true; + } catch (error) { + console.error(`Unexpected error occured: ${error}`); + errorOccurred = true; } - expect(error).toBe(false); + expect(errorOccurred).toBe(false); }); test('strict-mode: language server', async () => { - let error = false; + let errorOccurred = false; const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); const worker = new Worker(workerUrl, { @@ -187,11 +188,64 @@ describe('Test MonacoEditorReactComp', () => { }; render(); - } catch (e) { - console.error(`Unexpected error occured: ${e}`); - error = true; + } catch (error) { + console.error(`Unexpected error occured: ${error}`); + errorOccurred = true; } - expect(error).toBe(false); + expect(errorOccurred).toBe(false); }); + test('strict-mode: language server (re-render)', async () => { + let errorOccurred = false; + + const workerUrl = new URL('monaco-languageclient-examples/worker/langium', import.meta.url); + const worker = new Worker(workerUrl, { + type: 'module', + name: 'Langium LS (React Test 1)' + }); + const languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium'); + + const wrapperConfig = createDefaultWrapperConfig({ + modified: { + text: 'const text = "Hello World!";', + uri: `/workspace/${expect.getState().testPath}.langium`, + }, + }); + wrapperConfig.languageClientConfigs = { + automaticallyDisposeWorkers: false, + configs: { + 'langium': languageClientConfig + } + }; + + let renderResult: RenderResult; + try { + const result1 = await new Promise(resolve => { + let called = 0; + const handleOnLoad = async (wrapper: MonacoEditorLanguageClientWrapper) => { + called++; + console.log(`onLoad re-render call: ${called}`); + + const lcWrapper = wrapper.getLanguageClientWrapper('langium'); + console.log(lcWrapper?.reportStatus()); + + if (called === 2) { + renderResult.rerender([]); + resolve(); + } + }; + + renderResult = render(); + // renderResult = render(); + }); + + // void promise is undefined after it was awaited + expect(result1).toBeUndefined(); + } catch (error) { + console.error(`Unexpected error occured: ${error}`); + errorOccurred = true; + } + + expect(errorOccurred).toBe(false); + }); }); diff --git a/packages/wrapper/src/wrapper.ts b/packages/wrapper/src/wrapper.ts index af73eb2c..58d9acb9 100644 --- a/packages/wrapper/src/wrapper.ts +++ b/packages/wrapper/src/wrapper.ts @@ -36,6 +36,7 @@ export interface WrapperConfig { htmlContainer?: HTMLElement; id?: string; logLevel?: LogLevel | number; + // default is true if not specified as it is optional automaticallyDispose?: boolean; extensions?: ExtensionConfig[]; vscodeApiConfig?: VscodeApiConfig; diff --git a/packages/wrapper/test/languageClientWrapper.test.ts b/packages/wrapper/test/languageClientWrapper.test.ts index 81bcb959..7dffa7be 100644 --- a/packages/wrapper/test/languageClientWrapper.test.ts +++ b/packages/wrapper/test/languageClientWrapper.test.ts @@ -5,20 +5,19 @@ import { beforeAll, describe, expect, test } from 'vitest'; import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-languageclient/browser.js'; -import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-editor-wrapper'; +import { LanguageClientWrapper } from 'monaco-editor-wrapper'; import { initServices } from 'monaco-languageclient/vscode/services'; import { createDefaultLcUnreachableUrlConfig, createDefaultLcWorkerConfig, createUnreachableWorkerConfig } from './support/helper.js'; describe('Test LanguageClientWrapper', () => { - let worker: Worker; - let languageClientConfig: LanguageClientConfig; - beforeAll(async () => { await initServices({}); + }); + const createWorkerAndConfig = () => { const workerUrl = 'monaco-languageclient-examples/worker/langium'; - worker = new Worker(workerUrl, { + const worker = new Worker(workerUrl, { type: 'module', name: 'Langium LS' }); @@ -28,22 +27,28 @@ describe('Test LanguageClientWrapper', () => { reader.listen((message) => { console.log('Received message from worker:', message); }); - languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium', { reader, writer }); - }); + const languageClientConfig = createDefaultLcWorkerConfig(worker, 'langium', { reader, writer }); + return { + worker, + languageClientConfig + }; + }; test('Constructor: no config', () => { + const workerAndConfig = createWorkerAndConfig(); const languageClientWrapper = new LanguageClientWrapper({ - languageClientConfig + languageClientConfig: workerAndConfig.languageClientConfig }); expect(languageClientWrapper.haveLanguageClient()).toBeFalsy(); }); test('Dispose: direct worker is cleaned up afterwards', async () => { + const workerAndConfig = createWorkerAndConfig(); const languageClientWrapper = new LanguageClientWrapper({ - languageClientConfig + languageClientConfig: workerAndConfig.languageClientConfig }); - expect(worker).toBeDefined(); + expect(workerAndConfig.worker).toBeDefined(); expect(languageClientWrapper.getWorker()).toBeUndefined(); // WA: language client in fails due to vitest (reason not clear, yet) @@ -99,4 +104,36 @@ describe('Test LanguageClientWrapper', () => { }); }); + test('Dispose: start, dispose worker and restart', async () => { + const workerAndConfig = createWorkerAndConfig(); + const languageClientWrapper = new LanguageClientWrapper({ + languageClientConfig: workerAndConfig.languageClientConfig + }); + + expect(workerAndConfig.worker).toBeDefined(); + expect(languageClientWrapper.getWorker()).toBeUndefined(); + + // WA: language client in fails due to vitest (reason not clear, yet) + try { + await languageClientWrapper.start(); + } catch (_error) { + // ignore + console.error(_error); + }; + expect(languageClientWrapper.getWorker()).toBeTruthy(); + + // dispose & verify + await languageClientWrapper.disposeLanguageClient(true); + expect(languageClientWrapper.getWorker()).toBeUndefined(); + + // restart & verify + try { + await languageClientWrapper.start(); + } catch (_error) { + // ignore + console.error(_error); + }; + expect(languageClientWrapper.getWorker()).toBeTruthy(); + }); + }); diff --git a/vite.config.ts b/vite.config.ts index 8ca01068..58d55cd8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -61,12 +61,70 @@ export const definedViteConfig = defineConfig({ ] }, include: [ + '@codingame/monaco-vscode-api', + '@codingame/monaco-vscode-configuration-service-override', + '@codingame/monaco-vscode-cpp-default-extension', + '@codingame/monaco-vscode-debug-service-override', + '@codingame/monaco-vscode-editor-api', + '@codingame/monaco-vscode-editor-service-override', + '@codingame/monaco-vscode-environment-service-override', + '@codingame/monaco-vscode-explorer-service-override', + '@codingame/monaco-vscode-extension-api', + '@codingame/monaco-vscode-extensions-service-override', + '@codingame/monaco-vscode-files-service-override', + '@codingame/monaco-vscode-groovy-default-extension', + '@codingame/monaco-vscode-java-default-extension', + '@codingame/monaco-vscode-javascript-default-extension', + '@codingame/monaco-vscode-json-default-extension', + '@codingame/monaco-vscode-keybindings-service-override', + '@codingame/monaco-vscode-language-pack-cs', + '@codingame/monaco-vscode-language-pack-de', + '@codingame/monaco-vscode-language-pack-es', + '@codingame/monaco-vscode-language-pack-fr', + '@codingame/monaco-vscode-language-pack-it', + '@codingame/monaco-vscode-language-pack-ja', + '@codingame/monaco-vscode-language-pack-ko', + '@codingame/monaco-vscode-language-pack-pl', + '@codingame/monaco-vscode-language-pack-pt-br', + '@codingame/monaco-vscode-language-pack-qps-ploc', + '@codingame/monaco-vscode-language-pack-ru', + '@codingame/monaco-vscode-language-pack-tr', + '@codingame/monaco-vscode-language-pack-zh-hans', + '@codingame/monaco-vscode-language-pack-zh-hant', + '@codingame/monaco-vscode-languages-service-override', + '@codingame/monaco-vscode-lifecycle-service-override', + '@codingame/monaco-vscode-localization-service-override', + '@codingame/monaco-vscode-log-service-override', + '@codingame/monaco-vscode-model-service-override', + '@codingame/monaco-vscode-monarch-service-override', + '@codingame/monaco-vscode-preferences-service-override', + '@codingame/monaco-vscode-python-default-extension', + '@codingame/monaco-vscode-remote-agent-service-override', + '@codingame/monaco-vscode-search-result-default-extension', + '@codingame/monaco-vscode-search-service-override', + '@codingame/monaco-vscode-secret-storage-service-override', + '@codingame/monaco-vscode-standalone-css-language-features', + '@codingame/monaco-vscode-standalone-html-language-features', + '@codingame/monaco-vscode-standalone-json-language-features', + '@codingame/monaco-vscode-standalone-languages', + '@codingame/monaco-vscode-standalone-typescript-language-features', + '@codingame/monaco-vscode-storage-service-override', + '@codingame/monaco-vscode-testing-service-override', + '@codingame/monaco-vscode-textmate-service-override', + '@codingame/monaco-vscode-theme-defaults-default-extension', + '@codingame/monaco-vscode-theme-service-override', + '@codingame/monaco-vscode-typescript-basics-default-extension', + '@codingame/monaco-vscode-typescript-language-features-default-extension', + '@codingame/monaco-vscode-views-service-override', + '@codingame/monaco-vscode-workbench-service-override', '@testing-library/react', + 'langium', + 'langium/lsp', + 'langium/grammar', 'vscode/localExtensionHost', 'vscode-textmate', 'vscode-oniguruma', 'vscode-languageclient', - 'langium', 'vscode-languageserver/browser.js' ] },