diff --git a/package-lock.json b/package-lock.json index b2c7e41..7d85dc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,20 +11,20 @@ "packages/examples" ], "devDependencies": { - "@types/node": "~18.18.9", + "@types/node": "~18.18.13", "@types/shelljs": "~0.8.15", "@types/vscode": "~1.83.3", - "@typescript-eslint/eslint-plugin": "~6.10.0", - "@typescript-eslint/parser": "~6.10.0", + "@typescript-eslint/eslint-plugin": "~6.12.0", + "@typescript-eslint/parser": "~6.12.0", "@vitest/browser": "~0.34.6", "editorconfig": "~2.0.0", - "eslint": "~8.53.0", + "eslint": "~8.54.0", "shelljs": "~0.8.5", "shx": "~0.3.4", - "typescript": "~5.2.2", - "vite": "~4.5.0", + "typescript": "~5.3.2", + "vite": "~5.0.2", "vitest": "~0.34.6", - "webdriverio": "~8.22.0" + "webdriverio": "~8.24.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -36,184 +36,6 @@ "node": ">=0.10.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@chevrotain/cst-dts-gen": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", @@ -249,125 +71,125 @@ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==" }, "node_modules/@codingame/monaco-vscode-configuration-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.83.5.tgz", - "integrity": "sha512-v7fvE+XfcgRKYHl2RvHpsLwvnKAiMj9or/SrXsW6GmeiuFXD/upM5RsifoHKzEKS90tpGM6gLItODvZnD4WZrA==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-1.83.7.tgz", + "integrity": "sha512-nj/UH7FKN4jHgUA+uGbNk2uf51LwMZ7WOPGZdG/8EmK2wbAPB18z0AP/2ik+c0/rigQL6SjjwM7LowOioURuqA==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-editor-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.83.5.tgz", - "integrity": "sha512-MORmlcfBHmhHmnkXq6jAH9uB4N08RIgFGOC2gpySgCMWpD0dHd/hsJdJNS39FSRpbPj69gbaZvDW4daKvJABrA==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.83.7.tgz", + "integrity": "sha512-/jZeX5ULf10u8/QNjsdDQsZSeARNo3V/blcMnuMvHEJtnEDLnvVM+fAdSMrUwJzfEI0U3DD5H0Hiv/qFuTXrqQ==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-1.83.5.tgz", - "integrity": "sha512-k1Ry7GZm+5dKFkbNol0EzT/aaoS+1mBzgr8p0k/kw3PsNhISs9JwwrMINKTuq2ho+3juHpcmm4mXiwJbQBof4w==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-1.83.7.tgz", + "integrity": "sha512-ALF4jmBcIbcyz93OcV+CpOjJIjXyxsPAwx3NZ8Q+F6sqii3rMaDpduzHuqm2V7bhf58g5OhAmv9wFUlJ++oUhw==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-json-default-extension": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-json-default-extension/-/monaco-vscode-json-default-extension-1.83.5.tgz", - "integrity": "sha512-IvFre1xgfhV3ThDjzpsRq8einhJMiITV/z2NwMHZaVWhncpUAkwit7nxNxh4S9D3ir5UwW6xEW9fv3YKU4771Q==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-json-default-extension/-/monaco-vscode-json-default-extension-1.83.7.tgz", + "integrity": "sha512-tNIhMZxqvtLIUi72a+p5dYiF7SjpcAOdKTHs/bwtD8G5j1TGyuYp9T69fIr9qeSP0AVyrfTgY0g2eI+hKnfs8g==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-keybindings-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-1.83.5.tgz", - "integrity": "sha512-F2md/cu4UM2SnaQE9BlvLk6GM4At2D4HIU4EH+M8jOTQe/dyGWKVu0/+fyU5dMlEmk4BQEAAGWUCd7FDO14ykQ==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-1.83.7.tgz", + "integrity": "sha512-fuD/pnEHd3FvYJi1IV+WV44ttRq3bnOSie9xIODf+VlxEK/jn8uP8w8mBPoB52v8mFmtjE5uz5sdj8VLJ/LyPg==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-language-pack-de": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-1.83.5.tgz", - "integrity": "sha512-X4Eql50ui0/FjcjLRJLM/uwjB2citGRg0EjnI1nST4LBhn3BUuGfLk4j3eihodtd5hSgZ7xwRg9ueBlpYjGerA==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-1.83.7.tgz", + "integrity": "sha512-3PwJSp47aY08fNr4O9Wvm4LRX7NRDyYl6lN5AbNIc/eLxZ7r0Q+6Xv3yePM3QndXC/eM9IrPOHdydtLldPnaCA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-language-pack-es": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-1.83.5.tgz", - "integrity": "sha512-2TdfQCvHbvjkla2b9tLl297Npy7dKC3S2TYdqMjgQqXvgDuuYIIeXRrPHYpNZ2U1a5Vc8Lr0PNaGcjLHT+a3ug==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-1.83.7.tgz", + "integrity": "sha512-TRDFy7pRiPTZqEvA3xGymuEl3qwjGjXAuVe52F9ZufEXyjb+t7+k0ReIb8/T3Uv3qxEms6VEHyun1tcipVWltg==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-language-pack-fr": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-1.83.5.tgz", - "integrity": "sha512-pmByX6M1DO+Y/D5o/TNzSCQg15KcEe8SiroRuAnFqTVJSNLm24+UR29vL1+fC8lDvenqus01w87BlKDEWEupCg==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-1.83.7.tgz", + "integrity": "sha512-90M1bFreteS1fwZDFrqIhPs0+Kblclz0Td1dWRhWxCqRxgFEttV2Zyz2uy3W3AgYV1VJzttW+3nFkLvqZqIuqA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-languages-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.83.5.tgz", - "integrity": "sha512-8mo9qGEBYl0whFq0PQslLBwFb2zV9asyOJYuR+BIrUyGb73NYJjKd0PghaDi8NBsBS7EBSxx3bugVNs1FXQNYw==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.83.7.tgz", + "integrity": "sha512-hssTRtIkL8SKe4xQMAj7O3eW++rBwaF0o+ElpxOwAxIVA7jUYuIzAsi0p2gSTyPXDQ+IZ2DuDJAd1PH6merIrA==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-model-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.83.5.tgz", - "integrity": "sha512-/mNyXlBdv+55taMuuCX4mHGwmMqvcNzlatYAX45QPLFW48hyQYUt+xQBYX1jBNcyjcFY4Mx7VzxT6SvNJGJA3A==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.83.7.tgz", + "integrity": "sha512-5UpZzCD6Dld/wu3WtMoDVVaZuRehBmPZfE2McJkuK8GEKUwlsYy8ozzbnT79URtZ1u6pqDn9e3Wkh7ZXboYHWQ==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-python-default-extension": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-python-default-extension/-/monaco-vscode-python-default-extension-1.83.5.tgz", - "integrity": "sha512-nh1EbWTKYLfe3q0YnIvog3+f7u5jxyiLVJGQf6btTgZAr3qGz2LS+HJ2LHQ6wIZb/c4sfFM86/M3M1SDKKc6GQ==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-python-default-extension/-/monaco-vscode-python-default-extension-1.83.7.tgz", + "integrity": "sha512-rFNeINSUGuQnQgThvOX48E/u7E2HaiJxZ6sW1IdGlZzkDdEapLTwS3lP2TVys+ZZlBYDg34pIkt9mUKcZ/qnNQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-textmate-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.83.5.tgz", - "integrity": "sha512-hYVr1aODn7lM49L3Br4ZECNEyHU4OG9baTgxhQ8fDX5IWd8Su0PtNxTUm4OHCKvu5V5mV16zA+TUcTCrJ9pMwg==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-1.83.7.tgz", + "integrity": "sha512-bN9rPIFFaUuTNsHBlTRsthXOiuxdE9tN1UEMOAEZTFU0gZyGmSJxpeI2bxi7B59C6EVMS4dbGZRqSdmwiaSmYg==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5", + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7", "vscode-oniguruma": "1.7.0", "vscode-textmate": "9.0.0" } }, "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.83.5.tgz", - "integrity": "sha512-fZHXG6T4WJ5a5wKfWqmZ3CFkUh3pvbEeh7KXSEjxciVIAOg4c8HTYlLkEg3kyJcJAMHVYSg3+XI/+u8JD98AiQ==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-1.83.7.tgz", + "integrity": "sha512-q+nN8kialSlLl5kbf7/+DkLzFTUsv7RSn4xHDAi0c4oktiofqfYhsj8cPYNhFdFOtKPe1wwor6gaUHqO3APmAw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@codingame/monaco-vscode-theme-service-override": { - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.83.5.tgz", - "integrity": "sha512-dJpdwQX42n1ynRvsT3K9nNvGtby3rNEMYCgGeOZ48nLa7zqXfiv5ZevdTcaC+pzCwWnBo+T3TAAVNvmLU0Savw==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-1.83.7.tgz", + "integrity": "sha512-KP0dBqdSwui2zum5R4AsWSyE7/ZiEEuOldpH+SHmR8+TQl9693Mlbu9CoY1uuevVSYxwQnGB1zwGpwjYCs7drw==", "dependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.5" + "vscode": "npm:@codingame/monaco-vscode-api@1.83.7" } }, "node_modules/@cspotcode/source-map-support": { @@ -394,6 +216,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=12" } @@ -410,6 +233,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=12" } @@ -426,6 +250,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=12" } @@ -442,6 +267,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=12" } @@ -458,6 +284,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=12" } @@ -474,6 +301,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=12" } @@ -490,6 +318,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=12" } @@ -506,6 +335,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -522,6 +352,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -538,6 +369,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -554,6 +386,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -570,6 +403,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -586,6 +420,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -602,6 +437,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -618,6 +454,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -634,6 +471,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=12" } @@ -650,6 +488,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=12" } @@ -666,6 +505,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=12" } @@ -682,6 +522,7 @@ "os": [ "sunos" ], + "peer": true, "engines": { "node": ">=12" } @@ -698,6 +539,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=12" } @@ -714,6 +556,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=12" } @@ -730,6 +573,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=12" } @@ -804,9 +648,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1112,6 +956,162 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz", + "integrity": "sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz", + "integrity": "sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz", + "integrity": "sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz", + "integrity": "sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz", + "integrity": "sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz", + "integrity": "sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz", + "integrity": "sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz", + "integrity": "sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz", + "integrity": "sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz", + "integrity": "sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz", + "integrity": "sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz", + "integrity": "sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1177,24 +1177,24 @@ "link": true }, "node_modules/@types/chai": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz", - "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", "dev": true }, "node_modules/@types/chai-subset": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.4.tgz", - "integrity": "sha512-CCWNXrJYSUIojZ1149ksLl3AN9cmZ5djf+yUoVVV+NuYrtydItQVlL2ZDqyC6M6O9LWRnVf8yYDxbXHO2TfQZg==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", "dev": true, "dependencies": { "@types/chai": "*" } }, "node_modules/@types/estree": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", - "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/glob": { @@ -1226,36 +1226,30 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.18.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", - "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "version": "18.18.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", + "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, "node_modules/@types/prop-types": { - "version": "15.7.9", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==", + "version": "15.7.10", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", + "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==", "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", - "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==", + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", + "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==", "dev": true }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true }, "node_modules/@types/shelljs": { @@ -1281,18 +1275,18 @@ "dev": true }, "node_modules/@types/ws": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", - "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/yauzl": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz", - "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "optional": true, "dependencies": { @@ -1300,16 +1294,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", + "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/type-utils": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1335,15 +1329,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", + "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4" }, "engines": { @@ -1363,13 +1357,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", + "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1380,13 +1374,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", + "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/utils": "6.12.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1407,9 +1401,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", + "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1420,13 +1414,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", + "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1447,17 +1441,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", "semver": "^7.5.4" }, "engines": { @@ -1472,12 +1466,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", + "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.12.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1613,19 +1607,18 @@ "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" }, "node_modules/@wdio/config": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.22.0.tgz", - "integrity": "sha512-VednIcahdvUKFpjinGuqI0r5bUs6VJLZN+386AA+D8sy3HO3jPbBzK/eQoxyH8fVI3smDfPdfe3SMhdzrf1z0A==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.24.0.tgz", + "integrity": "sha512-n92MPtRCLH763ssS6f/r7uWhnFkIg072nqZK+YnXTlTVIED9SdlMXlyjp9e/1sRmXUc7LbVPwvEVa35lsO0S8w==", "dev": true, "dependencies": { "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/types": "8.24.0", + "@wdio/utils": "8.24.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", - "import-meta-resolve": "^3.0.0", - "read-package-up": "^11.0.0" + "import-meta-resolve": "^3.0.0" }, "engines": { "node": "^16.13 || >=18" @@ -1708,15 +1701,15 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.22.0.tgz", - "integrity": "sha512-2y5lTYAAzQWvExL1FGCe6gujVpOpTxk+czT0Qx0j0iUlfdOwp9gWVLYl8ochTJHzfeM45GHvuZ/ndT52grsTtg==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.23.0.tgz", + "integrity": "sha512-2XTzD+lqQP3g8BWn+Bn5BTFzjHqzZNwq7DjlYrb27Bq8nOA+1DEcj3WzQ6V6CktTnKI/LAYKA1IFAF//Azrp/Q==", "dev": true }, "node_modules/@wdio/repl": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.10.1.tgz", - "integrity": "sha512-VZ1WFHTNKjR8Ga97TtV2SZM6fvRjWbYI2i/f4pJB4PtusorKvONAMJf2LQcUBIyzbVobqr7KSrcjmSwRolI+yw==", + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.23.1.tgz", + "integrity": "sha512-u6zG2cgBm67V5/WlQzadWqLGXs3moH8MOsgoljULQncelSBBZGZ5DyLB4p7jKcUAsKtMjgmFQmIvpQoqmyvdfg==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1726,18 +1719,18 @@ } }, "node_modules/@wdio/repl/node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", + "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@wdio/types": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.21.0.tgz", - "integrity": "sha512-mZFOipmu541z0BXBW7mBAUjM4zZWhNnP/w321OSYx082Jy4d0UHMFXYWaOC98DIMBPahJu/yLX2WH5iCrazKSA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.24.0.tgz", + "integrity": "sha512-FXbJnQCS1b39RKqBlW9HTNEP4vukxjFc+GiwvPS+XPtY+3Vn7eOyBv3X3CiH1K7C+tzelqlio/HgP68pV5cXsQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1747,23 +1740,23 @@ } }, "node_modules/@wdio/types/node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "20.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", + "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@wdio/utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-n09ZLfe6NADQ7XyeO45nPBtNHi8nwu1RpOI18c94SrRS7gmO0CQWpjSilJCoHvu10ekUPJE7Oh/1Nw28w7ceVg==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.24.0.tgz", + "integrity": "sha512-m0qsWx2U5ZBTS0vzg1gTBp9mTrcLQlDrOBVR28LJ93a/e0bj+4aQ4c5U2y9gUzV+lKH0wUJSZTLnhebQwapURQ==", "dev": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", "@wdio/logger": "8.16.17", - "@wdio/types": "8.21.0", + "@wdio/types": "8.24.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", "edgedriver": "^5.3.5", @@ -1996,9 +1989,9 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/b4a": { @@ -2058,9 +2051,9 @@ } }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, "engines": { "node": ">=0.6" @@ -2918,6 +2911,7 @@ "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -2997,15 +2991,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/js": "8.54.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3432,22 +3426,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up-simple": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", - "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", @@ -3455,7 +3437,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -3949,27 +3931,6 @@ "he": "bin/he" } }, - "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -4055,9 +4016,9 @@ } }, "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, "dependencies": { "quick-lru": "^5.1.1", @@ -4155,18 +4116,6 @@ "node": ">=0.8.19" } }, - "node_modules/index-to-position": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.0.tgz", - "integrity": "sha512-I6PLk0E6Jk8t/W212xp9euPed30tIN9mYdslb0Vkd03hG9sd0pByboBdtIRL+Y/103JLp1alP3OuMgxfbIQyFw==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4330,15 +4279,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4387,9 +4327,9 @@ } }, "node_modules/langium": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/langium/-/langium-2.1.0.tgz", - "integrity": "sha512-VDJNyJHfFkamwX+IGp2cLiVIsdOqeVwEZ7b95DWs1jcJmf5e47NGLsfb4aLb0mVrCTU4mvfghfoiTkOMVSdpqA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/langium/-/langium-2.1.2.tgz", + "integrity": "sha512-1NDUmhm111xs6NLh1DzQ9YPrOhL6JqJryY9igPIGrG0AbKKGmGf3fahAiY1MUChwIYSec6Fvoj+igwKzvGXQog==", "dependencies": { "chevrotain": "~11.0.3", "chevrotain-allstar": "~0.3.0", @@ -4828,9 +4768,9 @@ }, "node_modules/monaco-editor": { "name": "@codingame/monaco-editor-treemended", - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-editor-treemended/-/monaco-editor-treemended-1.83.5.tgz", - "integrity": "sha512-YiiEUReD4YytuoEZh4KjWRlliRfeOFsFwJvMs2cMMUcIsAJKj804nramTmpWyJDSoxdSgLgaeiKu1gSEvxCvJw==" + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-editor-treemended/-/monaco-editor-treemended-1.83.7.tgz", + "integrity": "sha512-ol1evPNZ2DyR3vrXo8SVyVXurwfuqIz28TXVq5zNsSmfBbfA1iHPqKLW+krrObREXdzsE4JUwELLoqdjvKIrsw==" }, "node_modules/monaco-editor-workers": { "version": "0.44.0", @@ -4852,15 +4792,15 @@ "link": true }, "node_modules/monaco-languageclient": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-7.0.0.tgz", - "integrity": "sha512-UuFYGKaZe13HwUfugzRZPTrp9Q95+47g7jGtR7loX5psiuqB/q9H+V5AkBbWfDJ03SOWkw0qPpmJ2ZIomOIvaw==", - "dependencies": { - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-languages-service-override": "~1.83.5", - "@codingame/monaco-vscode-model-service-override": "~1.83.5", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-7.0.2.tgz", + "integrity": "sha512-fSh+bfJ8SAXwaXLt+Q6tOuLrq7o45TwT8Bs9LXLUsxJzzKs19/VCxIYSVGEbKZGuIh1vXGOCDAUDcDUC5rGR8Q==", + "dependencies": { + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-languages-service-override": "~1.83.7", + "@codingame/monaco-vscode-model-service-override": "~1.83.7", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-languageclient": "~9.0.1" }, "engines": { @@ -4869,7 +4809,7 @@ }, "peerDependencies": { "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "peerDependenciesMeta": { "monaco-editor": { @@ -4881,33 +4821,33 @@ } }, "node_modules/monaco-languageclient-examples": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/monaco-languageclient-examples/-/monaco-languageclient-examples-7.0.0.tgz", - "integrity": "sha512-tAZgYmmhgvnZtajVwTGPubtvPOmD2Pu2jzyvOu2FCosSbgOvZ35k+QxZZt8ZP82qa2tEdu2HoZlvEA2Re0feDA==", - "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~1.83.5", - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-files-service-override": "~1.83.5", - "@codingame/monaco-vscode-json-default-extension": "~1.83.5", - "@codingame/monaco-vscode-keybindings-service-override": "~1.83.5", - "@codingame/monaco-vscode-language-pack-de": "~1.83.5", - "@codingame/monaco-vscode-language-pack-es": "~1.83.5", - "@codingame/monaco-vscode-language-pack-fr": "~1.83.5", - "@codingame/monaco-vscode-python-default-extension": "~1.83.5", - "@codingame/monaco-vscode-textmate-service-override": "~1.83.5", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.5", - "@codingame/monaco-vscode-theme-service-override": "~1.83.5", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/monaco-languageclient-examples/-/monaco-languageclient-examples-7.0.2.tgz", + "integrity": "sha512-Tj/r9j7vRtI1jPTUSz8xHb735MC1lcgsb4zSLZueFVku5wkLKGubiF2cdtlk2JjMwuxJL1R1xmGKD3rbgvXfsg==", + "dependencies": { + "@codingame/monaco-vscode-configuration-service-override": "~1.83.7", + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-files-service-override": "~1.83.7", + "@codingame/monaco-vscode-json-default-extension": "~1.83.7", + "@codingame/monaco-vscode-keybindings-service-override": "~1.83.7", + "@codingame/monaco-vscode-language-pack-de": "~1.83.7", + "@codingame/monaco-vscode-language-pack-es": "~1.83.7", + "@codingame/monaco-vscode-language-pack-fr": "~1.83.7", + "@codingame/monaco-vscode-python-default-extension": "~1.83.7", + "@codingame/monaco-vscode-textmate-service-override": "~1.83.7", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.7", + "@codingame/monaco-vscode-theme-service-override": "~1.83.7", "express": "~4.18.2", "langium": "~2.1.0", "langium-statemachine-dsl": "~2.1.0", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", "monaco-editor-workers": "~0.44.0", - "monaco-languageclient": "~7.0.0", + "monaco-languageclient": "~7.0.2", "pyright": "~1.1.333", "react": "~18.2.0", "react-dom": "~18.2.0", "request-light": "~0.7.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-json-languageservice": "~5.3.7", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1", @@ -4957,9 +4897,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -5034,21 +4974,6 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5207,36 +5132,6 @@ "node": ">=6" } }, - "node_modules/parse-json": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.0.0.tgz", - "integrity": "sha512-QtWnjHuun44MCLbq9f2rlcX9Bp9FSsPgQS9nuGcIm3J557b3/CvmYUhwChgJJDlMpuNN0sFRAogzQ8xMitD1oQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.0", - "json-parse-even-better-errors": "^3.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/type-fest": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", - "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -5295,9 +5190,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -5646,9 +5541,9 @@ } }, "node_modules/pyright": { - "version": "1.1.334", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.334.tgz", - "integrity": "sha512-EJoW78gXPeAWd0e86P8kSIbY1pO3JJxNYu2BRlv/ZflcMvCY+zpyamuQC5EcXxXtr1WzBdcQwfo/NIBqtQPEow==", + "version": "1.1.336", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.336.tgz", + "integrity": "sha512-PE/ArjnfS5dKon05zAX2eMzSQmu4ftCITzLqKgFKuwLIRnKJ+l4QGwkCKtYvWoXKm1fWr+TjqYpdRejrYkolyg==", "bin": { "pyright": "index.js", "pyright-langserver": "langserver.index.js" @@ -5769,65 +5664,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/read-package-up": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", - "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", - "dev": true, - "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-package-up/node_modules/type-fest": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", - "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.0.tgz", - "integrity": "sha512-SBoBio4xhJmlF4xs9IBliWZGSbDAnrOfQkLGL7xB+RYEUZNAN2LlNkzO45B7gc7c2dLMX987bhHAaJ/LG3efeQ==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.3", - "normalize-package-data": "^6.0.0", - "parse-json": "^8.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", - "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -5988,18 +5824,30 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.2.tgz", + "integrity": "sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.5.2", + "@rollup/rollup-android-arm64": "4.5.2", + "@rollup/rollup-darwin-arm64": "4.5.2", + "@rollup/rollup-darwin-x64": "4.5.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.5.2", + "@rollup/rollup-linux-arm64-gnu": "4.5.2", + "@rollup/rollup-linux-arm64-musl": "4.5.2", + "@rollup/rollup-linux-x64-gnu": "4.5.2", + "@rollup/rollup-linux-x64-musl": "4.5.2", + "@rollup/rollup-win32-arm64-msvc": "4.5.2", + "@rollup/rollup-win32-ia32-msvc": "4.5.2", + "@rollup/rollup-win32-x64-msvc": "4.5.2", "fsevents": "~2.3.2" } }, @@ -6125,9 +5973,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serialize-error": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-11.0.2.tgz", - "integrity": "sha512-o43i0jLcA0LXA5Uu+gI1Vj+lF66KR9IAcy0ThbGq1bAMPN+k5IgSHsulfnqf/ddKAz6dWf+k8PD5hAr9oCSHEQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-11.0.3.tgz", + "integrity": "sha512-2G2y++21dhj2R7iHAdd0FIzjGwuKZld+7Pl/bTU6YIkrC2ZMbVUjm+luj6A6V34Rv9XfKJDKpTWu9W4Gse1D9g==", "dev": true, "dependencies": { "type-fest": "^2.12.2" @@ -6361,38 +6209,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -6417,15 +6233,15 @@ } }, "node_modules/std-env": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", "dev": true }, "node_modules/streamx": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", - "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", @@ -6751,9 +6567,9 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -6904,16 +6720,6 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -6923,29 +6729,29 @@ } }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.2.tgz", + "integrity": "sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.19.3", + "postcss": "^8.4.31", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", @@ -7000,6 +6806,395 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", + "integrity": "sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz", + "integrity": "sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz", + "integrity": "sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz", + "integrity": "sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz", + "integrity": "sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz", + "integrity": "sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz", + "integrity": "sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz", + "integrity": "sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz", + "integrity": "sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz", + "integrity": "sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz", + "integrity": "sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz", + "integrity": "sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz", + "integrity": "sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz", + "integrity": "sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz", + "integrity": "sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz", + "integrity": "sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz", + "integrity": "sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz", + "integrity": "sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz", + "integrity": "sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz", + "integrity": "sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz", + "integrity": "sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz", + "integrity": "sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz", + "integrity": "sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.7", + "@esbuild/android-arm64": "0.19.7", + "@esbuild/android-x64": "0.19.7", + "@esbuild/darwin-arm64": "0.19.7", + "@esbuild/darwin-x64": "0.19.7", + "@esbuild/freebsd-arm64": "0.19.7", + "@esbuild/freebsd-x64": "0.19.7", + "@esbuild/linux-arm": "0.19.7", + "@esbuild/linux-arm64": "0.19.7", + "@esbuild/linux-ia32": "0.19.7", + "@esbuild/linux-loong64": "0.19.7", + "@esbuild/linux-mips64el": "0.19.7", + "@esbuild/linux-ppc64": "0.19.7", + "@esbuild/linux-riscv64": "0.19.7", + "@esbuild/linux-s390x": "0.19.7", + "@esbuild/linux-x64": "0.19.7", + "@esbuild/netbsd-x64": "0.19.7", + "@esbuild/openbsd-x64": "0.19.7", + "@esbuild/sunos-x64": "0.19.7", + "@esbuild/win32-arm64": "0.19.7", + "@esbuild/win32-ia32": "0.19.7", + "@esbuild/win32-x64": "0.19.7" + } + }, "node_modules/vitest": { "version": "0.34.6", "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", @@ -7079,9 +7274,9 @@ }, "node_modules/vscode": { "name": "@codingame/monaco-vscode-api", - "version": "1.83.5", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.83.5.tgz", - "integrity": "sha512-HWmI3e2LooNkJG7AB5KYkzqkFma6G7tlk8QO6RI54HykazMQEFNpOEkrnS9UJHGsvpT+1hDCtIkufalLdxqMzA==", + "version": "1.83.7", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.83.7.tgz", + "integrity": "sha512-Z9eVsVK4rAAC8Pz0L5X+oa0noK8Hd+KbRLSW4oYgmuxVgvQeNtnQ7FU8hOlNtxoDiw1FVZ/5ZGZv5WGDSLx/EQ==", "dependencies": { "monaco-editor": "0.44.0" }, @@ -7226,18 +7421,18 @@ } }, "node_modules/webdriver": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.22.0.tgz", - "integrity": "sha512-37XgoqCZoy5HdF62IRQWkMl5SsEmqgS4CMdYh9YOrAuYuOpLJycuTioj3o0M8zDcrQdvwei+JrR/ecyA2CHjNA==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.24.0.tgz", + "integrity": "sha512-zI1zw4lbP2cg1NPikIaUBHQU3+xdvEEBi0Jrydhtp3VVeIEqJWwUFxG/P9LwJpiQ0PYMb/5cxoQrSRhrEXyXHQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.22.0", + "@wdio/config": "8.24.0", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.22.0", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/protocols": "8.23.0", + "@wdio/types": "8.24.0", + "@wdio/utils": "8.24.0", "deepmerge-ts": "^5.1.0", "got": "^ 12.6.1", "ky": "^0.33.0", @@ -7248,9 +7443,9 @@ } }, "node_modules/webdriver/node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "20.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", + "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -7294,18 +7489,18 @@ } }, "node_modules/webdriverio": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.22.0.tgz", - "integrity": "sha512-8oUZDArbwBBq2HF/A8sZbnTGVoYzBGnfjyo10hGzQnCWjWLPCVCudHqW68pXwbqu5qxvTNqHvEbhGZRYyMjBGA==", + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.24.1.tgz", + "integrity": "sha512-NMu5Y0EFjx7GK4K8uDDi14q8IdHdSQiqzJoyGjuzGy8mj5c04Ta1hoLG5KPag5LzIQNOtJmqwbTFL5PLqragOg==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.22.0", + "@wdio/config": "8.24.0", "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.22.0", - "@wdio/repl": "8.10.1", - "@wdio/types": "8.21.0", - "@wdio/utils": "8.22.0", + "@wdio/protocols": "8.23.0", + "@wdio/repl": "8.23.1", + "@wdio/types": "8.24.0", + "@wdio/utils": "8.24.0", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", @@ -7322,7 +7517,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.22.0" + "webdriver": "8.24.0" }, "engines": { "node": "^16.13 || >=18" @@ -7337,9 +7532,9 @@ } }, "node_modules/webdriverio/node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -7564,41 +7759,41 @@ }, "packages/examples": { "name": "monaco-editor-wrapper-examples", - "version": "3.4.0-next.0", - "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~1.83.5", - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-json-default-extension": "~1.83.5", - "@codingame/monaco-vscode-keybindings-service-override": "~1.83.5", - "@codingame/monaco-vscode-python-default-extension": "~1.83.5", - "@typefox/monaco-editor-react": "~2.4.0-next.0", + "version": "3.4.0-next.7", + "dependencies": { + "@codingame/monaco-vscode-configuration-service-override": "~1.83.7", + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-json-default-extension": "~1.83.7", + "@codingame/monaco-vscode-keybindings-service-override": "~1.83.7", + "@codingame/monaco-vscode-python-default-extension": "~1.83.7", + "@typefox/monaco-editor-react": "~2.4.0-next.7", "http-server": "~14.1.1", - "langium": "~2.1.1", + "langium": "~2.1.3", "langium-statemachine-dsl": "~2.1.0", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", "monaco-editor-workers": "~0.44.0", - "monaco-editor-wrapper": "~3.4.0-next.0", - "monaco-languageclient": "~7.0.0", - "monaco-languageclient-examples": "~7.0.0", + "monaco-editor-wrapper": "~3.4.0-next.7", + "monaco-languageclient": "~7.0.2", + "monaco-languageclient-examples": "~7.0.2", "react": "~18.2.0", "react-dom": "~18.2.0", "request-light": "~0.7.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-json-languageservice": "~5.3.7", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1", "vscode-uri": "~3.0.8" }, "devDependencies": { - "@types/react": "~18.2.37", - "@types/react-dom": "~18.2.15", + "@types/react": "~18.2.38", + "@types/react-dom": "~18.2.17", "ts-node": "~10.9.1" } }, "packages/examples/node_modules/@types/react": { - "version": "18.2.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", - "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", + "version": "18.2.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", + "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -7607,18 +7802,18 @@ } }, "packages/examples/node_modules/@types/react-dom": { - "version": "18.2.15", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.15.tgz", - "integrity": "sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==", + "version": "18.2.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", + "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", "dev": true, "dependencies": { "@types/react": "*" } }, "packages/examples/node_modules/langium": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/langium/-/langium-2.1.1.tgz", - "integrity": "sha512-2HmGq1T79ap7OCuLYgy62XVkoW8MuNZ5uJnlKE+WvBIYNpCcaco09jriV0Ngj/9NaAR7X4dYRxXlJashQOCE7w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/langium/-/langium-2.1.3.tgz", + "integrity": "sha512-/WN1xHoNBg0mi1Jp9ydMFSHIv8Jhq7K+0stNVURdoG4NgZx4/06AfNeeixmmU8X842wBl9gFZJP5O93Ge5Oasw==", "dependencies": { "chevrotain": "~11.0.3", "chevrotain-allstar": "~0.3.0", @@ -7632,25 +7827,25 @@ }, "packages/monaco-editor-react": { "name": "@typefox/monaco-editor-react", - "version": "2.4.0-next.0", + "version": "2.4.0-next.7", "license": "MIT", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-editor-wrapper": "~3.4.0-next.0", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "monaco-editor-wrapper": "~3.4.0-next.7", "react": "~18.2.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "devDependencies": { - "@types/react": "~18.2.37" + "@types/react": "~18.2.38" }, "peerDependencies": { - "monaco-editor-wrapper": "~3.4.0-next.0" + "monaco-editor-wrapper": "~3.4.0-next.7" } }, "packages/monaco-editor-react/node_modules/@types/react": { - "version": "18.2.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", - "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", + "version": "18.2.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", + "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -7659,23 +7854,23 @@ } }, "packages/monaco-editor-wrapper": { - "version": "3.4.0-next.0", + "version": "3.4.0-next.7", "license": "MIT", "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~1.83.5", - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-textmate-service-override": "~1.83.5", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.5", - "@codingame/monaco-vscode-theme-service-override": "~1.83.5", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-languageclient": "~7.0.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "@codingame/monaco-vscode-configuration-service-override": "~1.83.7", + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-textmate-service-override": "~1.83.7", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.7", + "@codingame/monaco-vscode-theme-service-override": "~1.83.7", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "monaco-languageclient": "~7.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol": "~3.17.5", "vscode-ws-jsonrpc": "~3.1.0" }, "peerDependencies": { - "monaco-languageclient": "~7.0.0", + "monaco-languageclient": "~7.0.2", "vscode-ws-jsonrpc": "~3.1.0" } } diff --git a/package.json b/package.json index ab7c6d1..ed80b42 100644 --- a/package.json +++ b/package.json @@ -10,35 +10,35 @@ "watch": "tsc --build tsconfig.build.json --watch --verbose", "lint": "eslint {**/src/**/*.ts,**/src/**/*.tsx,**/test/**/*.ts,**/test/**/*.tsx}", "build": "npm run build --workspaces", - "test": "vitest -c vitest.config.ts", + "test": "node --experimental-import-meta-resolve ./node_modules/vitest/vitest.mjs -c vite.config.ts", "release:prepare": "npm run reset:repo && npm ci && npm run lint && npm run build", "reset:repo": "git clean -f -X -d", "start:example:server:json": "npm run start:server:json --workspace packages/examples", "start:example:server:python": "npm run start:server:python --workspace packages/examples" }, "devDependencies": { - "@types/node": "~18.18.9", + "@types/node": "~18.18.13", "@types/shelljs": "~0.8.15", "@types/vscode": "~1.83.3", - "@typescript-eslint/eslint-plugin": "~6.10.0", - "@typescript-eslint/parser": "~6.10.0", + "@typescript-eslint/eslint-plugin": "~6.12.0", + "@typescript-eslint/parser": "~6.12.0", "@vitest/browser": "~0.34.6", "editorconfig": "~2.0.0", - "eslint": "~8.53.0", + "eslint": "~8.54.0", "shelljs": "~0.8.5", "shx": "~0.3.4", - "typescript": "~5.2.2", - "vite": "~4.5.0", + "typescript": "~5.3.2", + "vite": "~5.0.2", "vitest": "~0.34.6", - "webdriverio": "~8.22.0" + "webdriverio": "~8.24.1" }, "overrides": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "resolutions": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "volta": { "node": "18.18.2", diff --git a/packages/examples/package.json b/packages/examples/package.json index d0a965d..a5d60ca 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -1,35 +1,35 @@ { "name": "monaco-editor-wrapper-examples", "private": true, - "version": "3.4.0-next.0", + "version": "3.4.0-next.7", "type": "module", "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~1.83.5", - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-json-default-extension": "~1.83.5", - "@codingame/monaco-vscode-keybindings-service-override": "~1.83.5", - "@codingame/monaco-vscode-python-default-extension": "~1.83.5", - "@typefox/monaco-editor-react": "~2.4.0-next.0", + "@codingame/monaco-vscode-configuration-service-override": "~1.83.7", + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-json-default-extension": "~1.83.7", + "@codingame/monaco-vscode-keybindings-service-override": "~1.83.7", + "@codingame/monaco-vscode-python-default-extension": "~1.83.7", + "@typefox/monaco-editor-react": "~2.4.0-next.7", "http-server": "~14.1.1", - "langium": "~2.1.1", + "langium": "~2.1.3", "langium-statemachine-dsl": "~2.1.0", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", "monaco-editor-workers": "~0.44.0", - "monaco-editor-wrapper": "~3.4.0-next.0", - "monaco-languageclient": "~7.0.0", - "monaco-languageclient-examples": "~7.0.0", + "monaco-editor-wrapper": "~3.4.0-next.7", + "monaco-languageclient": "~7.0.2", + "monaco-languageclient-examples": "~7.0.2", "react": "~18.2.0", "react-dom": "~18.2.0", "request-light": "~0.7.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-uri": "~3.0.8", "vscode-languageclient": "~9.0.1", "vscode-languageserver": "~9.0.1", "vscode-json-languageservice": "~5.3.7" }, "devDependencies": { - "@types/react": "~18.2.37", - "@types/react-dom": "~18.2.15", + "@types/react": "~18.2.38", + "@types/react-dom": "~18.2.17", "ts-node": "~10.9.1" }, "overrides": { @@ -37,8 +37,8 @@ "vscode": "$vscode" }, "resolutions": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "volta": { "node": "18.18.2", diff --git a/packages/examples/src/common.ts b/packages/examples/src/common.ts index bd3e491..0bfbd63 100644 --- a/packages/examples/src/common.ts +++ b/packages/examples/src/common.ts @@ -38,7 +38,8 @@ export const disposeEditor = async (useDiffEditor: boolean) => { }; const restartEditor = async (userConfig: UserConfig, htmlElement: HTMLElement | null) => { - await wrapper.start(userConfig, htmlElement); + await wrapper.dispose(); + await wrapper.initAndStart(userConfig, htmlElement); logEditorInfo(userConfig); }; diff --git a/packages/examples/src/langium/wrapperLangium.ts b/packages/examples/src/langium/wrapperLangium.ts index 9230206..4b58082 100644 --- a/packages/examples/src/langium/wrapperLangium.ts +++ b/packages/examples/src/langium/wrapperLangium.ts @@ -11,6 +11,7 @@ import { buildWorkerDefinition } from 'monaco-editor-workers'; buildWorkerDefinition('../../../node_modules/monaco-editor-workers/dist/workers/', new URL('', window.location.href).href, false); let wrapper: MonacoEditorLanguageClientWrapper | undefined; +let extended = false; const htmlElement = document.getElementById('monaco-editor-root'); export const run = async () => { @@ -26,10 +27,12 @@ export const run = async () => { export const startLangiumClientExtended = async () => { try { if (checkStarted()) return; - disableButton('button-start-classic'); + extended = true; + disableButton('button-start-classic', true); + disableButton('button-start-extended', true); const config = await setupLangiumClientExtended(); wrapper = new MonacoEditorLanguageClientWrapper(); - wrapper.start(config, htmlElement); + wrapper.initAndStart(config, htmlElement); } catch (e) { console.log(e); } @@ -38,10 +41,11 @@ export const startLangiumClientExtended = async () => { export const startLangiumClientClassic = async () => { try { if (checkStarted()) return; - disableButton('button-start-extended'); + disableButton('button-start-classic', true); + disableButton('button-start-extended', true); const config = await setupLangiumClientClassic(); wrapper = new MonacoEditorLanguageClientWrapper(); - await wrapper.start(config, htmlElement!); + await wrapper.initAndStart(config, htmlElement!); } catch (e) { console.log(e); } @@ -55,10 +59,10 @@ const checkStarted = () => { return false; }; -const disableButton = (id: string) => { +const disableButton = (id: string, disabled: boolean) => { const button = document.getElementById(id) as HTMLButtonElement; if (button !== null) { - button.disabled = true; + button.disabled = disabled; } }; @@ -67,6 +71,11 @@ export const disposeEditor = async () => { wrapper.reportStatus(); await wrapper.dispose(); wrapper = undefined; + if (extended) { + disableButton('button-start-extended', false); + } else { + disableButton('button-start-classic', false); + } }; export const loadLangiumWorker = () => { diff --git a/packages/examples/src/langium/wrapperStatemachine.ts b/packages/examples/src/langium/wrapperStatemachine.ts index f7a3aa6..95727d9 100644 --- a/packages/examples/src/langium/wrapperStatemachine.ts +++ b/packages/examples/src/langium/wrapperStatemachine.ts @@ -14,9 +14,9 @@ const startEditor = async () => { return; } const langiumGlobalConfig = await createLangiumGlobalConfig(); - await wrapper.start(langiumGlobalConfig, document.getElementById('monaco-editor-root')); + await wrapper.initAndStart(langiumGlobalConfig, document.getElementById('monaco-editor-root')); const langiumGlobalConfig2 = await createLangiumGlobalConfig(); - await wrapper2.start(langiumGlobalConfig2, document.getElementById('monaco-editor-root2')); + await wrapper2.initAndStart(langiumGlobalConfig2, document.getElementById('monaco-editor-root2')); vscode.commands.getCommands().then((x) => { console.log('Currently registered # of vscode commands: ' + x.length); diff --git a/packages/examples/src/wrapperAdvanced.ts b/packages/examples/src/wrapperAdvanced.ts index dcb4319..36aad5a 100644 --- a/packages/examples/src/wrapperAdvanced.ts +++ b/packages/examples/src/wrapperAdvanced.ts @@ -1,5 +1,6 @@ import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override'; import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js'; +import 'monaco-editor/esm/vs/language/typescript/monaco.contribution.js'; import { EditorAppConfigClassic, LanguageClientError, MonacoEditorLanguageClientWrapper, UserConfig } from 'monaco-editor-wrapper'; import { buildWorkerDefinition } from 'monaco-editor-workers'; @@ -96,16 +97,16 @@ const wrapper44Config: UserConfig = { }; const startWrapper42 = async () => { - await wrapper42.start(wrapper42Config, document.getElementById('monaco-editor-root-42')); + await wrapper42.initAndStart(wrapper42Config, document.getElementById('monaco-editor-root-42')); console.log('wrapper42 was started.'); }; const startWrapper43 = async () => { - await wrapper43.start(wrapper43Config, document.getElementById('monaco-editor-root-43')); + await wrapper43.initAndStart(wrapper43Config, document.getElementById('monaco-editor-root-43')); console.log('wrapper43 was started.'); }; const startWrapper44 = async () => { - await wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44')); + await wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44')); console.log('wrapper44 was started.'); }; @@ -114,6 +115,7 @@ const sleepOne = (milliseconds: number) => { setTimeout(async () => { alert(`Updating editors after ${milliseconds}ms`); + await wrapper42.dispose(); wrapper42Config.languageClientConfig = undefined; const appConfig42 = wrapper42Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic; appConfig42.languageId = 'javascript'; @@ -121,7 +123,7 @@ const sleepOne = (milliseconds: number) => { appConfig42.code = `function logMe() { console.log('Hello swap editors!'); };`; - const w42Start = wrapper42.start(wrapper42Config, document.getElementById('monaco-editor-root-42')); + const w42Start = wrapper42.initAndStart(wrapper42Config, document.getElementById('monaco-editor-root-42')); const w43Start = wrapper43.updateDiffModel({ languageId: 'javascript', @@ -129,6 +131,7 @@ const sleepOne = (milliseconds: number) => { codeOriginal: 'text 1234' }); + await wrapper44.dispose(); const appConfig44 = wrapper44Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic; appConfig44.languageId = 'text/plain'; appConfig44.useDiffEditor = true; @@ -137,7 +140,7 @@ const sleepOne = (milliseconds: number) => { // This affects all editors globally and is only effective // if it is not in contrast to one configured later appConfig44.theme = 'vs-light'; - const w44Start = wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44')); + const w44Start = wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44')); await w42Start; console.log('Restarted wrapper42.'); @@ -152,11 +155,11 @@ const sleepTwo = (milliseconds: number) => { setTimeout(async () => { alert(`Updating last editor after ${milliseconds}ms`); + await wrapper44.dispose(); const appConfig44 = wrapper44Config.wrapperConfig.editorAppConfig as EditorAppConfigClassic; appConfig44.useDiffEditor = false; appConfig44.theme = 'vs-dark'; - - await wrapper44.start(wrapper44Config, document.getElementById('monaco-editor-root-44')); + await wrapper44.initAndStart(wrapper44Config, document.getElementById('monaco-editor-root-44')); console.log('Restarted wrapper44.'); }, milliseconds); }; diff --git a/packages/examples/vite.bundle-mew.ts b/packages/examples/vite.bundle-mew.ts index 5df5d69..0989437 100644 --- a/packages/examples/vite.bundle-mew.ts +++ b/packages/examples/vite.bundle-mew.ts @@ -16,11 +16,11 @@ const config = defineConfig({ commonjsOptions: { strictRequires: true }, + sourcemap: true, rollupOptions: { output: { name: 'mew', exports: 'named', - sourcemap: true, assetFileNames: (assetInfo) => { return `assets/${assetInfo.name}`; } diff --git a/packages/monaco-editor-react/package.json b/packages/monaco-editor-react/package.json index aeb96b7..0be0d80 100644 --- a/packages/monaco-editor-react/package.json +++ b/packages/monaco-editor-react/package.json @@ -1,6 +1,6 @@ { "name": "@typefox/monaco-editor-react", - "version": "2.4.0-next.0", + "version": "2.4.0-next.7", "license": "MIT", "description": "React component for Monaco-Editor and Monaco Languageclient", "keywords": [ @@ -50,24 +50,24 @@ "npm": "9.9.0" }, "dependencies": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-editor-wrapper": "~3.4.0-next.0", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "monaco-editor-wrapper": "~3.4.0-next.7", "react": "~18.2.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "peerDependencies": { - "monaco-editor-wrapper": "~3.4.0-next.0" + "monaco-editor-wrapper": "~3.4.0-next.7" }, "devDependencies": { - "@types/react": "~18.2.37" + "@types/react": "~18.2.38" }, "overrides": { "monaco-editor": "$monaco-editor", "vscode": "$vscode" }, "resolutions": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "repository": { "type": "git", diff --git a/packages/monaco-editor-react/src/index.tsx b/packages/monaco-editor-react/src/index.tsx index 4ba8a8f..ee465aa 100644 --- a/packages/monaco-editor-react/src/index.tsx +++ b/packages/monaco-editor-react/src/index.tsx @@ -16,7 +16,8 @@ export class MonacoEditorReactComp; + private isRestarting?: Promise; + private started: (value: void | PromiseLike) => void; constructor(props: T) { super(props); @@ -27,12 +28,35 @@ export class MonacoEditorReactComp { + protected assignRef = (component: HTMLDivElement) => { this.containerElement = component; }; - private async destroyMonaco(): Promise { + protected async destroyMonaco(): Promise { if (this.wrapper) { - await this.isStarting; + if (this.isRestarting) { + await this.isRestarting; + } try { await this.wrapper.dispose(); } catch { - // This is fine - // Sometimes the language client throws an error during disposal - // This should not prevent us from continue working + // The language client may throw an error during disposal. + // This should not prevent us from continue working. } } if (this._subscription) { @@ -105,38 +119,57 @@ export class MonacoEditorReactComp((resolve) => { + this.started = resolve; + }); + await this.wrapper.init(userConfig); + } + + protected async startMonaco() { const { className, - userConfig, - onTextChanged, onLoad, } = this.props; if (this.containerElement) { this.containerElement.className = className ?? ''; - this.isStarting = this.wrapper.start(userConfig, this.containerElement); - await this.isStarting; + await this.wrapper.start(this.containerElement); + this.started(); + this.isRestarting = undefined; // once awaiting isStarting is done onLoad is called if available - onLoad && onLoad(); - - if (onTextChanged) { - const model = this.wrapper.getModel(); - if (model) { - const verifyModelContent = () => { - const modelText = model.getValue(); - onTextChanged(modelText, modelText !== userConfig.wrapperConfig.editorAppConfig.code); - }; - - this._subscription = model.onDidChangeContent(() => { - verifyModelContent(); - }); - // do it initially - verifyModelContent(); - } - } + onLoad?.(); + + this.handleOnTextChanged(); + } + } + + private handleOnTextChanged() { + const { + userConfig, + onTextChanged + } = this.props; + if (!onTextChanged) return; + + const model = this.wrapper.getModel(); + if (model) { + const verifyModelContent = () => { + const modelText = model.getValue(); + onTextChanged(modelText, modelText !== userConfig.wrapperConfig.editorAppConfig.code); + }; + + this._subscription = model.onDidChangeContent(() => { + verifyModelContent(); + }); + // do it initially + verifyModelContent(); } } diff --git a/packages/monaco-editor-wrapper/package.json b/packages/monaco-editor-wrapper/package.json index 7dd9380..499dfca 100644 --- a/packages/monaco-editor-wrapper/package.json +++ b/packages/monaco-editor-wrapper/package.json @@ -1,6 +1,6 @@ { "name": "monaco-editor-wrapper", - "version": "3.4.0-next.0", + "version": "3.4.0-next.7", "license": "MIT", "description": "Monaco-Editor and Monaco Languageclient Wrapper", "keywords": [ @@ -58,20 +58,20 @@ "npm": "9.9.0" }, "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~1.83.5", - "@codingame/monaco-vscode-editor-service-override": "~1.83.5", - "@codingame/monaco-vscode-textmate-service-override": "~1.83.5", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.5", - "@codingame/monaco-vscode-theme-service-override": "~1.83.5", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-languageclient": "~7.0.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "@codingame/monaco-vscode-configuration-service-override": "~1.83.7", + "@codingame/monaco-vscode-editor-service-override": "~1.83.7", + "@codingame/monaco-vscode-textmate-service-override": "~1.83.7", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~1.83.7", + "@codingame/monaco-vscode-theme-service-override": "~1.83.7", + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "monaco-languageclient": "~7.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0", "vscode-languageclient": "~9.0.1", "vscode-languageserver-protocol":"~3.17.5", "vscode-ws-jsonrpc": "~3.1.0" }, "peerDependencies": { - "monaco-languageclient": "~7.0.0", + "monaco-languageclient": "~7.0.2", "vscode-ws-jsonrpc": "~3.1.0" }, "overrides": { @@ -79,8 +79,8 @@ "vscode": "$vscode" }, "resolutions": { - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.7 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" }, "repository": { "type": "git", diff --git a/packages/monaco-editor-wrapper/src/editorAppBase.ts b/packages/monaco-editor-wrapper/src/editorAppBase.ts index b4c757a..177ff37 100644 --- a/packages/monaco-editor-wrapper/src/editorAppBase.ts +++ b/packages/monaco-editor-wrapper/src/editorAppBase.ts @@ -266,3 +266,16 @@ export const isModelUpdateRequired = (config: EditorAppConfigBase, modelUpdate: const updateRequired = propsModelUpdate.some(propCompare); return updateRequired ? ModelUpdateType.MODEL : codeUpdate; }; + +/** + * The check for equality relies on JSON.stringify for instances of type Object. + * Everything else is directly compared. + * In this context, the check for equality is sufficient. + */ +export const isEqual = (obj1: unknown, obj2: unknown) => { + if (obj1 instanceof Object && obj2 instanceof Object) { + return JSON.stringify(obj1) === JSON.stringify(obj2); + } else { + return obj1 === obj2; + } +}; diff --git a/packages/monaco-editor-wrapper/src/editorAppClassic.ts b/packages/monaco-editor-wrapper/src/editorAppClassic.ts index d84e348..933a609 100644 --- a/packages/monaco-editor-wrapper/src/editorAppClassic.ts +++ b/packages/monaco-editor-wrapper/src/editorAppClassic.ts @@ -1,5 +1,5 @@ import { editor, languages } from 'monaco-editor'; -import { EditorAppBase, EditorAppConfigBase, ModelUpdateType, isModelUpdateRequired } from './editorAppBase.js'; +import { EditorAppBase, EditorAppConfigBase, ModelUpdateType, isEqual, isModelUpdateRequired } from './editorAppBase.js'; import { UserConfig } from './wrapper.js'; import { Logger } from './logger.js'; @@ -91,7 +91,7 @@ export class EditorAppClassic extends EditorAppBase { type ClassicKeys = keyof typeof orgConfig; const propsClassic = ['useDiffEditor', 'domReadOnly', 'readOnly', 'awaitExtensionReadiness', 'overrideAutomaticLayout', 'editorOptions', 'diffEditorOptions', 'languageDef', 'languageExtensionConfig', 'theme', 'themeData']; const propCompareClassic = (name: string) => { - return orgConfig[name as ClassicKeys] !== config[name as ClassicKeys]; + return !isEqual(orgConfig[name as ClassicKeys], config[name as ClassicKeys]); }; different = different || propsClassic.some(propCompareClassic); return different; diff --git a/packages/monaco-editor-wrapper/src/editorAppExtended.ts b/packages/monaco-editor-wrapper/src/editorAppExtended.ts index 614b973..d5abe05 100644 --- a/packages/monaco-editor-wrapper/src/editorAppExtended.ts +++ b/packages/monaco-editor-wrapper/src/editorAppExtended.ts @@ -3,7 +3,7 @@ import { IDisposable, editor } from 'monaco-editor'; import getThemeServiceOverride from '@codingame/monaco-vscode-theme-service-override'; import getTextmateServiceOverride from '@codingame/monaco-vscode-textmate-service-override'; import { whenReady as whenReadyTheme } from '@codingame/monaco-vscode-theme-defaults-default-extension'; -import { EditorAppBase, EditorAppConfigBase, ModelUpdateType, isModelUpdateRequired } from './editorAppBase.js'; +import { EditorAppBase, EditorAppConfigBase, ModelUpdateType, isEqual, isModelUpdateRequired } from './editorAppBase.js'; import { registerExtension, IExtensionManifest, ExtensionHostKind } from 'vscode/extensions'; import { UserConfig } from './wrapper.js'; import { verifyUrlorCreateDataUrl } from './utils.js'; @@ -113,7 +113,7 @@ export class EditorAppExtended extends EditorAppBase { const propsExtended = ['useDiffEditor', 'domReadOnly', 'readOnly', 'awaitExtensionReadiness', 'overrideAutomaticLayout', 'editorOptions', 'diffEditorOptions', 'userConfiguration', 'extensions']; type ExtendedKeys = keyof typeof orgConfig; const propCompareExtended = (name: string) => { - return orgConfig[name as ExtendedKeys] !== config[name as ExtendedKeys]; + return !isEqual(orgConfig[name as ExtendedKeys], config[name as ExtendedKeys]); }; different = different || propsExtended.some(propCompareExtended); return different; diff --git a/packages/monaco-editor-wrapper/src/index.ts b/packages/monaco-editor-wrapper/src/index.ts index 6efc341..92d04e3 100644 --- a/packages/monaco-editor-wrapper/src/index.ts +++ b/packages/monaco-editor-wrapper/src/index.ts @@ -2,6 +2,7 @@ import { EditorAppBase, isCodeUpdateRequired, isModelUpdateRequired, + isEqual, ModelUpdateType } from './editorAppBase.js'; @@ -92,6 +93,7 @@ export { EditorAppBase, isCodeUpdateRequired, isModelUpdateRequired, + isEqual, ModelUpdateType, EditorAppClassic, EditorAppExtended, diff --git a/packages/monaco-editor-wrapper/src/languageClientWrapper.ts b/packages/monaco-editor-wrapper/src/languageClientWrapper.ts index d9d1246..5fafc7a 100644 --- a/packages/monaco-editor-wrapper/src/languageClientWrapper.ts +++ b/packages/monaco-editor-wrapper/src/languageClientWrapper.ts @@ -73,10 +73,10 @@ export class LanguageClientWrapper { private languageClientConfig?: LanguageClientConfig; private worker: Worker | undefined; private languageId: string; - private name; + private name?: string; private logger: Logger | undefined; - constructor(languageId: string, languageClientConfig?: LanguageClientConfig, logger?: Logger) { + init(languageId: string, languageClientConfig?: LanguageClientConfig, logger?: Logger) { this.languageId = languageId; if (languageClientConfig) { this.languageClientConfig = languageClientConfig; @@ -292,11 +292,8 @@ export class LanguageClientWrapper { } } else { - const languageClientError: LanguageClientError = { - message: `languageClientWrapper (${this.name}): Unable to dispose monaco-languageclient: It is not yet started.`, - error: 'No error was provided.' - }; - return Promise.reject(languageClientError); + // disposing the languageclient if it does not exist is considered ok + return Promise.resolve(); } } diff --git a/packages/monaco-editor-wrapper/src/wrapper.ts b/packages/monaco-editor-wrapper/src/wrapper.ts index f24dd13..d022400 100644 --- a/packages/monaco-editor-wrapper/src/wrapper.ts +++ b/packages/monaco-editor-wrapper/src/wrapper.ts @@ -1,6 +1,6 @@ import { editor, Uri } from 'monaco-editor'; import getConfigurationServiceOverride from '@codingame/monaco-vscode-configuration-service-override'; -import { initServices, wasVscodeApiInitialized, InitializeServiceConfig, MonacoLanguageClient, mergeServices } from 'monaco-languageclient'; +import { initServices, InitializeServiceConfig, MonacoLanguageClient, mergeServices } from 'monaco-languageclient'; import { EditorAppExtended, EditorAppConfigExtended } from './editorAppExtended.js'; import { EditorAppClassic, EditorAppConfigClassic } from './editorAppClassic.js'; import { ModelUpdate } from './editorAppBase.js'; @@ -29,24 +29,51 @@ export class MonacoEditorLanguageClientWrapper { private id: string; private editorApp: EditorAppClassic | EditorAppExtended | undefined; - private languageClientWrapper: LanguageClientWrapper; + private languageClientWrapper: LanguageClientWrapper = new LanguageClientWrapper(); private serviceConfig: InitializeServiceConfig; private logger: Logger; - - private init(userConfig: UserConfig) { + private initDone = false; + + /** + * Perform an isolated initialization of the user services and the languageclient wrapper (if used). + */ + async init(userConfig: UserConfig) { + if (this.initDone) { + throw new Error('init was already performed. Please call dispose first if you want to re-start.'); + } if (userConfig.wrapperConfig.editorAppConfig.useDiffEditor && !userConfig.wrapperConfig.editorAppConfig.codeOriginal) { throw new Error('Use diff editor was used without a valid config.'); } + // Always dispose old instances before start + this.editorApp?.disposeApp(); this.id = userConfig.id ?? Math.floor(Math.random() * 101).toString(); this.logger = new Logger(userConfig.loggerConfig); this.serviceConfig = userConfig.wrapperConfig.serviceConfig ?? {}; + + if (userConfig.wrapperConfig.editorAppConfig.$type === 'classic') { + this.editorApp = new EditorAppClassic(this.id, userConfig, this.logger); + } else { + this.editorApp = new EditorAppExtended(this.id, userConfig, this.logger); + } + + // editorApps init their own service thats why they have to be created first + this.configureServices(); + await initServices(this.serviceConfig); + + this.languageClientWrapper.init(this.editorApp.getConfig().languageId, + userConfig.languageClientConfig, this.logger); + + this.initDone = true; } - private async initServices() { - // always set required services if not configure + /** + * Child classes are allow to override the services configuration implementation. + */ + protected configureServices() { + // always set required services if not configured this.serviceConfig.userServices = this.serviceConfig.userServices ?? {}; - const configureService = this.serviceConfig.userServices.configure; + const configureService = this.serviceConfig.userServices.configure ?? undefined; if (!configureService) { const mlcDefautServices = { @@ -58,37 +85,30 @@ export class MonacoEditorLanguageClientWrapper { // overrule debug log flag this.serviceConfig.debugLogging = this.logger.isEnabled() && (this.serviceConfig.debugLogging || this.logger.isDebugEnabled()); + } - if (wasVscodeApiInitialized()) { - this.logger.debug('No service init on restart', this.serviceConfig.debugLogging); - } else { - this.logger.debug('Init Services', this.serviceConfig.debugLogging); - await initServices(this.serviceConfig); - } + /** + * Performs a full user configuration and the languageclient wrapper (if used) init and then start the application. + */ + async initAndStart(userConfig: UserConfig, htmlElement: HTMLElement | null) { + await this.init(userConfig); + await this.start(htmlElement); } - async start(userConfig: UserConfig, htmlElement: HTMLElement | null) { + /** + * Does not perform any user configuration or other application init and just starts the application. + */ + async start(htmlElement: HTMLElement | null) { + if (!this.initDone) { + throw new Error('No init was performed. Please call init() before start()'); + } if (!htmlElement) { throw new Error('No HTMLElement provided for monaco-editor.'); } - // Always dispose old instances before start - this.editorApp?.disposeApp(); - - this.init(userConfig); - - if (userConfig.wrapperConfig.editorAppConfig.$type === 'classic') { - this.editorApp = new EditorAppClassic(this.id, userConfig, this.logger); - } else { - this.editorApp = new EditorAppExtended(this.id, userConfig, this.logger); - } - await this.initServices(); - - this.languageClientWrapper = new LanguageClientWrapper(this.editorApp.getConfig().languageId, - userConfig.languageClientConfig, this.logger); this.logger.info(`Starting monaco-editor (${this.id})`); await this.editorApp?.init(); - await this.editorApp.createEditors(htmlElement); + await this.editorApp?.createEditors(htmlElement); if (this.languageClientWrapper.haveLanguageClientConfig()) { await this.languageClientWrapper.start(); @@ -147,6 +167,9 @@ export class MonacoEditorLanguageClientWrapper { return status; } + /** + * Disposes all application and editor resources, plus the languageclient (if used). + */ async dispose(): Promise { this.editorApp?.disposeApp(); @@ -158,6 +181,7 @@ export class MonacoEditorLanguageClientWrapper { else { await Promise.resolve('Monaco editor has been disposed.'); } + this.initDone = false; } updateLayout() { diff --git a/packages/monaco-editor-wrapper/test/editorAppBase.test.ts b/packages/monaco-editor-wrapper/test/editorAppBase.test.ts index 5faa07a..540e1f0 100644 --- a/packages/monaco-editor-wrapper/test/editorAppBase.test.ts +++ b/packages/monaco-editor-wrapper/test/editorAppBase.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from 'vitest'; -import { isModelUpdateRequired, EditorAppClassic, ModelUpdateType, EditorAppConfigExtended, EditorAppExtended, EditorAppConfigClassic } from 'monaco-editor-wrapper'; +import { isModelUpdateRequired, EditorAppClassic, ModelUpdateType } from 'monaco-editor-wrapper'; import { createBaseConfig, createEditorAppConfig, createWrapperConfig } from './helper.js'; describe('Test EditorAppBase', () => { @@ -27,16 +27,6 @@ describe('Test EditorAppBase', () => { expect(app.getConfig().domReadOnly).toBeFalsy(); }); - test('config userConfiguration', () => { - const config = createBaseConfig('extended'); - const appConfig = config.wrapperConfig.editorAppConfig as EditorAppConfigExtended; - appConfig.userConfiguration = { - json: '{ "editor.semanticHighlighting.enabled": true }' - }; - const app = new EditorAppExtended('config defaults', config); - expect(app.getConfig().userConfiguration?.json).toEqual('{ "editor.semanticHighlighting.enabled": true }'); - }); - test('isModelUpdateRequired', () => { const config = createEditorAppConfig('classic'); let modelUpdateType = isModelUpdateRequired(config, { languageId: 'typescript', code: '' }); @@ -52,42 +42,4 @@ describe('Test EditorAppBase', () => { expect(modelUpdateType).toBe(ModelUpdateType.MODEL); }); - test('isAppConfigDifferent: classic', () => { - const orgConfig = createEditorAppConfig('classic') as EditorAppConfigClassic; - const config = createEditorAppConfig('classic') as EditorAppConfigClassic; - const app = new EditorAppClassic('test', createBaseConfig('classic')); - expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); - - config.code = 'test'; - expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); - expect(app.isAppConfigDifferent(orgConfig, config, true)).toBeTruthy(); - - config.code = ''; - config.useDiffEditor = true; - expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeTruthy(); - }); - - test('isAppConfigDifferent: vscode', () => { - const orgConfig = createEditorAppConfig('extended') as EditorAppConfigExtended; - const config = createEditorAppConfig('extended') as EditorAppConfigExtended; - const app = new EditorAppExtended('test', createBaseConfig('extended')); - expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); - - config.code = 'test'; - expect(app.isAppConfigDifferent(orgConfig, config, true)).toBeTruthy(); - - config.code = ''; - config.extensions = [{ - config: { - name: 'Tester', - publisher: 'Tester', - version: '1.0.0', - engines: { - vscode: '*' - } - } - }]; - expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeTruthy(); - }); - }); diff --git a/packages/monaco-editor-wrapper/test/editorAppClassic.test.ts b/packages/monaco-editor-wrapper/test/editorAppClassic.test.ts index b9539ea..bdef388 100644 --- a/packages/monaco-editor-wrapper/test/editorAppClassic.test.ts +++ b/packages/monaco-editor-wrapper/test/editorAppClassic.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from 'vitest'; import { EditorAppClassic, EditorAppConfigClassic } from 'monaco-editor-wrapper'; -import { createBaseConfig } from './helper.js'; +import { createBaseConfig, createEditorAppConfig } from './helper.js'; const buildConfig = () => { const config = createBaseConfig('classic'); @@ -17,7 +17,7 @@ describe('Test EditorAppClassic', () => { const app = new EditorAppClassic('config defaults', config); expect(configclassic.$type).toEqual('classic'); - expect(app.getConfig().editorOptions?.['semanticHighlighting.enabled']).toEqual(true); + expect(app.getConfig().editorOptions?.['semanticHighlighting.enabled']).toBeTruthy(); }); test('editorOptions: semanticHighlighting=false', () => { @@ -26,7 +26,7 @@ describe('Test EditorAppClassic', () => { configclassic.editorOptions!['semanticHighlighting.enabled'] = false; const app = new EditorAppClassic('config defaults', config); - expect(app.getConfig().editorOptions?.['semanticHighlighting.enabled']).toEqual(false); + expect(app.getConfig().editorOptions?.['semanticHighlighting.enabled']).toBeFalsy(); }); test('editorOptions: semanticHighlighting="configuredByTheme"', () => { @@ -37,4 +37,31 @@ describe('Test EditorAppClassic', () => { const app = new EditorAppClassic('config defaults', config); expect(app.getConfig().editorOptions?.['semanticHighlighting.enabled']).toEqual('configuredByTheme'); }); + + test('isAppConfigDifferent: basic', () => { + const orgConfig = createEditorAppConfig('classic') as EditorAppConfigClassic; + const config = createEditorAppConfig('classic') as EditorAppConfigClassic; + const app = new EditorAppClassic('test', createBaseConfig('classic')); + expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); + + config.code = 'test'; + expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); + expect(app.isAppConfigDifferent(orgConfig, config, true)).toBeTruthy(); + + config.code = ''; + config.useDiffEditor = true; + expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeTruthy(); + }); + + test('isAppConfigDifferent: non-simple properties"', () => { + const config1 = buildConfig(); + const config2 = buildConfig(); + const configclassic1 = config1.wrapperConfig.editorAppConfig as EditorAppConfigClassic; + configclassic1.editorOptions!['semanticHighlighting.enabled'] = true; + const configclassic2 = config2.wrapperConfig.editorAppConfig as EditorAppConfigClassic; + configclassic2.editorOptions!['semanticHighlighting.enabled'] = true; + + const app = new EditorAppClassic('config defaults', config1); + expect(app.isAppConfigDifferent(configclassic1, configclassic2, false)).toBeFalsy(); + }); }); diff --git a/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts b/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts index eb2bb31..60466c6 100644 --- a/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts +++ b/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from 'vitest'; -import { verifyUrlorCreateDataUrl } from 'monaco-editor-wrapper'; +import { EditorAppConfigExtended, EditorAppExtended, verifyUrlorCreateDataUrl } from 'monaco-editor-wrapper'; +import { createBaseConfig, createEditorAppConfig } from './helper.js'; describe('Test EditorAppExtended', () => { @@ -14,4 +15,36 @@ describe('Test EditorAppExtended', () => { expect(verifyUrlorCreateDataUrl(text)).toBe(`data:text/plain;base64,${btoa(text)}`); }); + test('config userConfiguration', () => { + const config = createBaseConfig('extended'); + const appConfig = config.wrapperConfig.editorAppConfig as EditorAppConfigExtended; + appConfig.userConfiguration = { + json: '{ "editor.semanticHighlighting.enabled": true }' + }; + const app = new EditorAppExtended('config defaults', config); + expect(app.getConfig().userConfiguration?.json).toEqual('{ "editor.semanticHighlighting.enabled": true }'); + }); + + test('isAppConfigDifferent: basic', () => { + const orgConfig = createEditorAppConfig('extended') as EditorAppConfigExtended; + const config = createEditorAppConfig('extended') as EditorAppConfigExtended; + const app = new EditorAppExtended('test', createBaseConfig('extended')); + expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy(); + + config.code = 'test'; + expect(app.isAppConfigDifferent(orgConfig, config, true)).toBeTruthy(); + + config.code = ''; + config.extensions = [{ + config: { + name: 'Tester', + publisher: 'Tester', + version: '1.0.0', + engines: { + vscode: '*' + } + } + }]; + expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeTruthy(); + }); }); diff --git a/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts b/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts index 2cc62ce..745966c 100644 --- a/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts +++ b/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts @@ -4,14 +4,16 @@ import { LanguageClientConfig, LanguageClientWrapper } from 'monaco-editor-wrapp describe('Test LanguageClientWrapper', () => { test('Not Running after construction', () => { - const languageClientWrapper = new LanguageClientWrapper('my-lang'); + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang'); expect(languageClientWrapper.haveLanguageClient()).toBeFalsy(); expect(languageClientWrapper.haveLanguageClientConfig()).toBeFalsy(); expect(languageClientWrapper.isStarted()).toBeFalsy(); }); test('Constructor: no config', async () => { - const languageClientWrapper = new LanguageClientWrapper('my-lang'); + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang'); expect(async () => { await languageClientWrapper.start(); }).rejects.toEqual({ @@ -37,7 +39,8 @@ describe('Test LanguageClientWrapper', () => { }); // setup the wrapper - const languageClientWrapper = new LanguageClientWrapper('my-lang', { + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang', { options: { $type: 'WorkerDirect', worker @@ -61,7 +64,8 @@ describe('Test LanguageClientWrapper', () => { url: 'ws://localhost:12345/Tester' } }; - const languageClientWrapper = new LanguageClientWrapper('my-lang', languageClientConfig); + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang', languageClientConfig); expect(languageClientWrapper.haveLanguageClientConfig()).toBeTruthy(); }); @@ -73,7 +77,8 @@ describe('Test LanguageClientWrapper', () => { name: 'test-unreachable' } }; - const languageClientWrapper = new LanguageClientWrapper('my-lang', languageClientConfig); + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang', languageClientConfig); expect(languageClientWrapper.haveLanguageClientConfig()).toBeTruthy(); await expect(languageClientWrapper.start()).rejects.toEqual({ message: 'languageClientWrapper (test-unreachable): Websocket connection failed.', @@ -100,7 +105,8 @@ describe('Test LanguageClientWrapper', () => { type: 'classic' } }; - const languageClientWrapper = new LanguageClientWrapper('my-lang', languageClientConfig); + const languageClientWrapper = new LanguageClientWrapper(); + languageClientWrapper.init('my-lang', languageClientConfig); expect(languageClientWrapper.haveLanguageClientConfig()).toBeTruthy(); await expect(languageClientWrapper.start()).rejects.toEqual({ message: 'languageClientWrapper (unnamed): Illegal worker configuration detected. Potentially the url is wrong.', diff --git a/packages/monaco-editor-wrapper/test/wrapper.test.ts b/packages/monaco-editor-wrapper/test/wrapper.test.ts index ba9614b..2a4163e 100644 --- a/packages/monaco-editor-wrapper/test/wrapper.test.ts +++ b/packages/monaco-editor-wrapper/test/wrapper.test.ts @@ -20,7 +20,7 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { test('Check default values', async () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); - await wrapper.start(createBaseConfig('classic'), document.getElementById('monaco-editor-root')); + await wrapper.initAndStart(createBaseConfig('classic'), document.getElementById('monaco-editor-root')); const app = wrapper.getMonacoEditorApp() as EditorAppClassic; expect(app).toBeDefined(); @@ -34,7 +34,25 @@ describe('Test MonacoEditorLanguageClientWrapper', () => { createMonacoEditorDiv(); const wrapper = new MonacoEditorLanguageClientWrapper(); await expect(async () => { - await wrapper.start(createBaseConfig('classic'), null); + await wrapper.initAndStart(createBaseConfig('classic'), null); }).rejects.toThrowError('No HTMLElement provided for monaco-editor.'); }); + + test('Expected throw: Start without init', async () => { + createMonacoEditorDiv(); + const wrapper = new MonacoEditorLanguageClientWrapper(); + await expect(async () => { + await wrapper.start(document.getElementById('monaco-editor-root')); + }).rejects.toThrowError('No init was performed. Please call init() before start()'); + }); + + test('Expected throw: Call normal start with prior init', async () => { + createMonacoEditorDiv(); + const wrapper = new MonacoEditorLanguageClientWrapper(); + await expect(async () => { + const config = createBaseConfig('classic'); + await wrapper.init(config); + await wrapper.initAndStart(config, document.getElementById('monaco-editor-root')); + }).rejects.toThrowError('init was already performed. Please call dispose first if you want to re-start.'); + }); }); diff --git a/packages/monaco-editor-wrapper/vite.bundle.config.ts b/packages/monaco-editor-wrapper/vite.bundle.config.ts index f09e817..d7fee8e 100644 --- a/packages/monaco-editor-wrapper/vite.bundle.config.ts +++ b/packages/monaco-editor-wrapper/vite.bundle.config.ts @@ -13,11 +13,11 @@ export default defineConfig({ assetsDir: 'bundle/assets', emptyOutDir: true, cssCodeSplit: false, + sourcemap: true, rollupOptions: { output: { name: 'monaco-editor-wrapper', exports: 'named', - sourcemap: true, assetFileNames: (assetInfo) => { return `assets/${assetInfo.name}`; } diff --git a/vite.config.ts b/vite.config.ts index e3eb77e..209bd87 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -63,6 +63,13 @@ export default defineConfig(() => { }, define: { rootDirectory: JSON.stringify(__dirname) + }, + test: { + browser: { + enabled: true, + headless: true, + name: 'chrome' + } } }; return config; diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index 20914c0..0000000 --- a/vitest.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from 'vite'; - -export default defineConfig({ - test: { - browser: { - enabled: true, - headless: true, - name: 'chrome' - } - } -});