From 32c0b89729d98a25a5937af1ee41e8ea36334509 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 25 Aug 2024 15:29:28 +0200 Subject: [PATCH 001/200] fix: update monaco-editor to latest monaco/language-client (#4285) * all * all * all * recomment useless extralib imports * small impr --- frontend/package-lock.json | 2994 +++++++++++++++-- frontend/package.json | 38 +- frontend/src/lib/components/DiffDrawer.svelte | 2 + frontend/src/lib/components/DiffEditor.svelte | 32 +- frontend/src/lib/components/Editor.svelte | 261 +- .../src/lib/components/EditorTheme.svelte | 3 +- .../src/lib/components/ScriptEditor.svelte | 3 +- .../src/lib/components/SimpleEditor.svelte | 82 +- .../src/lib/components/TemplateEditor.svelte | 10 +- .../InlineScriptEditor.svelte | 4 +- .../inputEditor/JsonEditor.svelte | 2 + frontend/src/lib/components/build_workers.ts | 122 +- .../flows/content/FlowModuleComponent.svelte | 4 +- .../flows/content/FlowModuleScript.svelte | 1 + frontend/src/lib/components/vscode.ts | 30 +- frontend/src/lib/editorUtils.ts | 7 +- frontend/src/lib/scripts.ts | 6 +- .../src/routes/test_dev_page_2/+page.svelte | 4 + frontend/vite.config.js | 17 +- 19 files changed, 3140 insertions(+), 482 deletions(-) create mode 100644 frontend/src/routes/test_dev_page_2/+page.svelte diff --git a/frontend/package-lock.json b/frontend/package-lock.json index eabd5016fd..032a655fc5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,15 +1,24 @@ { "name": "windmill-components", - "version": "1.383.1", + "version": "1.383.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.383.1", + "version": "1.383.8", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", + "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", + "@codingame/monaco-vscode-files-service-override": "~8.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2", + "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2", + "@codingame/monaco-vscode-localization-service-override": "~8.0.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2", + "@codingame/monaco-vscode-standalone-languages": "~8.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2", "@json2csv/plainjs": "^7.0.6", "@leeoniya/ufuzzy": "^1.0.8", "@popperjs/core": "^2.11.6", @@ -36,9 +45,10 @@ "highlight.js": "^11.8.0", "lucide-svelte": "^0.293.0", "minimatch": "^10.0.1", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-graphql": "^1.5.1", - "monaco-languageclient": "~7.0.1", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "monaco-editor-wrapper": "^5.5.2", + "monaco-graphql": "^1.6.0", + "monaco-languageclient": "~8.8.2", "ol": "^7.4.0", "openai": "^4.47.1", "p-limit": "^6.1.0", @@ -51,10 +61,10 @@ "svelte-infinite-loading": "^1.3.8", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", - "vscode-ws-jsonrpc": "~3.1.0", + "vscode-ws-jsonrpc": "~3.3.2", "windmill-parser-wasm": "^1.367.2", "windmill-sql-datatype-parser-wasm": "^1.318.0", "y-monaco": "^0.1.4", @@ -80,6 +90,7 @@ "@types/vscode": "^1.83.5", "@typescript-eslint/eslint-plugin": "^5.59.8", "@typescript-eslint/parser": "^5.60.0", + "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release", "@zerodevx/svelte-toast": "^0.9.5", "autoprefixer": "^10.4.13", "cssnano": "^6.0.1", @@ -225,117 +236,43 @@ } }, "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==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "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, - "peer": 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, - "peer": 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, - "peer": 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, - "peer": 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, - "peer": 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, - "peer": 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, - "peer": 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==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, + "license": "MIT", "peer": 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==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -346,6 +283,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^1.9.0" @@ -359,6 +297,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^3.2.1", @@ -374,6 +313,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "color-name": "1.1.3" @@ -384,6 +324,7 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { @@ -391,6 +332,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.8.0" @@ -401,6 +343,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -411,6 +354,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^3.0.0" @@ -430,37 +374,2494 @@ "node": ">=6.9.0" } }, - "node_modules/@codingame/monaco-vscode-editor-service-override": { - "version": "1.83.8", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-1.83.8.tgz", - "integrity": "sha512-gBGhAJtHTy6l7VS99HnwNOpjf2/cSM2P92hi1FBCKkFMGSnob3KBR6inDm1NeYEkBAsNg44P09vck+p7Ar4k1g==", + "node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.2.tgz", + "integrity": "sha512-nE53oxB6INHQ2+81v8+AsY9sTTiaS3xhq9gS3V+XDnxjGr5EgkV61wSeR9dI90EL7CiUN0p0Pcn2sUwRnmzsXQ==", + "license": "MIT", "dependencies": { - "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.8" + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-8.0.3.tgz", + "integrity": "sha512-Hvpdbq2MbB1VerHf9us/zOL7KzP9djuX2ESlBML0Z1qiu7iyhEylKOmeDp1DTxKd+5xZSeR7637EbJ7XGzVgug==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-8.0.3.tgz", + "integrity": "sha512-drt4tDSH+zbGzgfpCgZ+zqpR48TWr7xqEopjdNb+Jva6LcfW7vh2D410uslZBG716Tyq21jthFplDZELuChrhw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.2.tgz", + "integrity": "sha512-X16aJhxVWxtekbre2rnqHerKBL7pMKi1TS7+8zjiE2VTTqcYABJ2TV3Geqlt2tgeXZOrSky6N8iGZRAkSmwdPA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.2.tgz", + "integrity": "sha512-eOeYLlv+V/cuhtDiJapHP3NyHnCmJu+Rj5l7d5RuI4Ggvn68MjC2GpV95O/EHWTrPLOSDCEpA2PDk06WRqlxwQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.2.tgz", + "integrity": "sha512-7DET08EDz68R/XsBpQ3AVcIebNkAguADOSZ1ETyFPn8O9FOtPPew3fUuP8AHpL7ecOzBwHvescnMiBikGaRAcQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.2.tgz", + "integrity": "sha512-ZQBboqtBrMMb37wUBdg8h5RLM7gWHrTdg1Z9Xl2wp/rmIzfTaZBcz0s91+BH+ilTJ9QyUcTUYWXoj5HjHhnJ7g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-8.0.3.tgz", + "integrity": "sha512-eknpEamUd3Luk75h02zypQmZgTWuJKXumJxo1lLztSTcRiErehUPbIpRdM8JcD2PSlCD2yyC6q2CkiFdNWi9Yg==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-cs/-/monaco-vscode-language-pack-cs-8.0.3.tgz", + "integrity": "sha512-4yzIEPFPK8mrbakRpQh1E/2I5ptu1OEDdevCvrtf5+w/KlzRNobV+FCCPV4AZH0JxUBZFO4Ax/nyA+Vmzrv7aQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-8.0.3.tgz", + "integrity": "sha512-DT/SRJYzSwwd6BJRDHVUshyiVX8yu19Z4q3OiyUTrEKp3BrdMn8nMj0M/7mad9tjJhj4xYJJABS7PyND41gqTw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-8.0.3.tgz", + "integrity": "sha512-EFK6mwCeoKH4fnjUzZWe46VyYB6C+zGy0kYDzvaznXG/JN97tipd37gEXsUpU7ZdHtyh4wFoPzeMCeQfXKsNxA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-8.0.3.tgz", + "integrity": "sha512-OZvURxC3apd7+g93NIB0OAtuqVR64G1aKLdQ8w0GwhHJa9C0bB+zjD7DNRMqnWU58HEcSSZvN3Y2H6N+viXS4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-it/-/monaco-vscode-language-pack-it-8.0.3.tgz", + "integrity": "sha512-WGChBybs9a+eT08/xT5OSGJryUgSlHDi7HRjBXDc72s06IvL4iyL4BZnxShXeS+pR0Z83IlPbxtPDZ4z4RIH4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ja/-/monaco-vscode-language-pack-ja-8.0.3.tgz", + "integrity": "sha512-ilzXv35gWhhyMkgGJqjkjkltyuNjJ3a29xVTIQpECXSIAJvZBpAhxCeCbF2CbsPcEwHbeqaDaYljenlCoXCwHg==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ko/-/monaco-vscode-language-pack-ko-8.0.3.tgz", + "integrity": "sha512-KCjRcBC4F4uUlfkuaAVUijYykHFvSJMWVpBtn8LTb+Sgc+XcAdCjsWfVtegrJddsP0IP0nvxQl6yi62lezj4Gw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pl/-/monaco-vscode-language-pack-pl-8.0.3.tgz", + "integrity": "sha512-IhQwg02cq0bWdSNpkV8ynFqNpRNt5TvKat5JAVYhlVmCoXq5H1D4Grlkl5Lfh7lHJArFvAm1HegXTUxLuylPSw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pt-br/-/monaco-vscode-language-pack-pt-br-8.0.3.tgz", + "integrity": "sha512-CdvYCyzRb1l54BgJEzAav9amVHdAx77BepxpkS7QacTkLURm4Td5A79CNHzwHUiDHPnviBY2Z9Jve/BJAksI4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-qps-ploc/-/monaco-vscode-language-pack-qps-ploc-8.0.3.tgz", + "integrity": "sha512-KeCU/g56cZcZ8rd/wfrR+cMznDLDIxDorFnXUEcr1ei31zlfpspUeJ8wAqQ+gxw56Idr70d36iSxlGCVWjwcbA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ru/-/monaco-vscode-language-pack-ru-8.0.3.tgz", + "integrity": "sha512-xSEu4ubhtYMlK7RrAyoNFwDbbAhY3S754sxxNeQpbyt7+6JWHNpSdWBTOSAprQyQf37taL/ceQaJQoPYwSAyjg==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-tr/-/monaco-vscode-language-pack-tr-8.0.3.tgz", + "integrity": "sha512-slfG1d0og8h7duUh15BFxNQTNEEg0YguPwHxumJoMkzBnVQZPNv5ZCG3uKgy3pfpneArh/9B4jvlLzhpjwJHXw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hans/-/monaco-vscode-language-pack-zh-hans-8.0.3.tgz", + "integrity": "sha512-vKDZUgm5sgsGn6Bipoo8BWgPLkkhSAza/fAcI9HHqfk1MO9RX0ES/HAVn+FGrWHSvQi4Z5fNUNBq0hgzVnZLFQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hant/-/monaco-vscode-language-pack-zh-hant-8.0.3.tgz", + "integrity": "sha512-Oqn9VmavmqWMCOno0ZAXzqb0Mepq6+21mMHVqEe4sWc6Fr4zM+cYx9h60y7C1leVUc3UDd0qbMYEVElxDVzyKQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" } }, "node_modules/@codingame/monaco-vscode-languages-service-override": { - "version": "1.83.8", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-1.83.8.tgz", - "integrity": "sha512-iNSgeYqcYMJsDm5DEy+p/tW8c3jupHsrM4G39AS2aR5rnjPwVv4hOU1d8mIqzYrPfywWfeR77orh0reiyGS+6w==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-8.0.3.tgz", + "integrity": "sha512-sixRGBScbhW24xKLn9RXPiY406MWL/trAWAhyyAeuFPL59eUYewaFiPxGBO7fJ5sx6iE8UaRKo4qxhtRraDbxw==", + "license": "MIT", "dependencies": { - "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.8" + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.2.tgz", + "integrity": "sha512-guwDg1G8qkf6I3ArpWuqtdsLkxYuAR3GxfhtzYIFLLQtrPrsOeyPXWecrYKslTt/7fWEY4QyMis/eIq5us5bAg==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-lifecycle-service-override/-/monaco-vscode-lifecycle-service-override-8.0.3.tgz", + "integrity": "sha512-4u2MeMAYqlMsZPoXdKTuqDhEdd3COR4pneXX0mIAUb40fA3BfqAovoi2Nay8qRkEO7ZU5pbM7b6pX0GN6yLLYw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-localization-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-localization-service-override/-/monaco-vscode-localization-service-override-8.0.2.tgz", + "integrity": "sha512-XiU3qCS9jCVWeAcEmaxfJnKaQiHoKlpYEMEfstOuvLfRCuRswWXjhYPG9gJVTx0m28MbCY0uhtjOXtOz3GRTtA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" } }, "node_modules/@codingame/monaco-vscode-model-service-override": { - "version": "1.83.8", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-1.83.8.tgz", - "integrity": "sha512-hh+lPYqZE+rBkiWmOxxp8WcKBFjCHHNFkchX3klPpWltzx5gxYWmE8lrGos8F9qAbEBI8OjL8kmJUYJNbtZ2Yw==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-8.0.3.tgz", + "integrity": "sha512-1qdXPtUcyB729dK8bsSdvChifTQXewW6kZSBOClIbZ22zuCgoIbFQ0xfJXkrB+z3fxoEW6s1L148dEuIVFP9xA==", + "license": "MIT", "dependencies": { - "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@1.83.8" + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-monarch-service-override/-/monaco-vscode-monarch-service-override-8.0.3.tgz", + "integrity": "sha512-UwRGlZz/1QpP7i7v+sJGmrY0FI9hGC/7oul8dSk/UMRaeEd4YNu6LAjKruhGhPhUp+fm8ixkb0XAPpcvH6dR3Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.2.tgz", + "integrity": "sha512-4Wli5dY0NPuotwjmnyyJOqTo4CZmI4TlI/sjOSJvOvwHSwbCgaNWovTgDceoCmopsiiTG00n9SyT2geA8gxpqg==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-css-language-features/-/monaco-vscode-standalone-css-language-features-8.0.3.tgz", + "integrity": "sha512-n7u/rSAsewtTeFCgLMhTguoD4vH7Mr9LVAIK4rbwRykyyYbnHVIdXchdJwLLL0D4JqN5am8WyYtcJSfTB5LqXA==", + "license": "MIT", + "dependencies": { + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/monaco-editor": { + "name": "@codingame/monaco-vscode-editor-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.3.tgz", + "integrity": "sha512-GTfLNnczFGOcOE6tdQ+GQTtFwecB9aVNDIawGIBKxCzZxKbvWvWMkh1ZFzyMsO1Vq4/h3xHj2sL3U/gNqNV3kA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-json-language-features": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-json-language-features/-/monaco-vscode-standalone-json-language-features-8.0.2.tgz", + "integrity": "sha512-jek9BtxkpTI3E4ap9wv8tyHlBB6Gnv5NdEXHckL9juQZ5Tjsjh/NBBrT9ne58jyf28xCM/YwI94R3kNkQRcr6g==", + "license": "MIT", + "dependencies": { + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-languages": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-8.0.2.tgz", + "integrity": "sha512-KRr8Rde4E5A5ctRVlrFiHPQhr+oMtJT9q5H7AUKXzU2KN0+VEAZFUmtCzUoyqhWjOwmvPK8cTTnSQHME3eqqmw==", + "license": "MIT", + "dependencies": { + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.2" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-typescript-language-features/-/monaco-vscode-standalone-typescript-language-features-8.0.3.tgz", + "integrity": "sha512-IoaB3WhzTdRkbZiWLXBzZI0nnn1aSDkzje1znOwkWCqEpLHl3kuMebJcAUSdjlRPWXvHgtSXqyZqZ1FmaVXhEg==", + "license": "MIT", + "dependencies": { + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/monaco-editor": { + "name": "@codingame/monaco-vscode-editor-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.3.tgz", + "integrity": "sha512-GTfLNnczFGOcOE6tdQ+GQTtFwecB9aVNDIawGIBKxCzZxKbvWvWMkh1ZFzyMsO1Vq4/h3xHj2sL3U/gNqNV3kA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-8.0.3.tgz", + "integrity": "sha512-6FQvF5b5SSi3XQo1xZNV3ibSAm6LGk4D/ImGf6GXGzDul/4xkeLQnmPgfb8L8ME/NLafjzLXg4AAzcvPfSZFNg==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3", + "vscode-oniguruma": "1.7.0", + "vscode-textmate": "9.0.0" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-8.0.3.tgz", + "integrity": "sha512-xJ/ghjWvXPRDgY9GBws9jesHinF8RL4wHNGcF7E1421zujjsMNwJLfBShgTCyNb9jT/UTLo8f1FZRllJnXDZww==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-8.0.3.tgz", + "integrity": "sha512-w/hlLEOSWNOAErqylXyzrRhmdtipBvZkuQHKrvOv6A492bvrh0kKMuvzOknwLz3Hfy30IcJzy3uDF6vJAt4CuQ==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", + "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", + "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", + "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", + "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", + "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", + "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", + "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + } + }, + "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/vscode": { + "name": "@codingame/monaco-vscode-api", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", + "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-base-service-override": "8.0.3", + "@codingame/monaco-vscode-environment-service-override": "8.0.3", + "@codingame/monaco-vscode-extensions-service-override": "8.0.3", + "@codingame/monaco-vscode-files-service-override": "8.0.3", + "@codingame/monaco-vscode-host-service-override": "8.0.3", + "@codingame/monaco-vscode-layout-service-override": "8.0.3", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", - "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", + "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", "dev": true, "funding": [ { @@ -472,18 +2873,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "peer": true, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.1" + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", - "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", + "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", "dev": true, "funding": [ { @@ -495,15 +2897,16 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "peer": true, "engines": { "node": "^14 || ^16 || >=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", - "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", + "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", "dev": true, "funding": [ { @@ -515,13 +2918,14 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "peer": true, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@esbuild/aix-ppc64": { @@ -2260,6 +4664,7 @@ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@types/ms": { @@ -2289,6 +4694,7 @@ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@types/pug": { @@ -2507,6 +4913,23 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, + "node_modules/@vscode/iconv-lite-umd": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.0.tgz", + "integrity": "sha512-bRRFxLfg5dtAyl5XyiVWz/ZBPahpOpPrNYnnHpOpUZvam4tKH35wdhP4Kj6PbM0+KdliOsPzbGWpkxcdpNB/sg==", + "license": "MIT" + }, + "node_modules/@windmill-labs/esbuild-import-meta-url-plugin": { + "version": "0.0.0-semantic-release", + "resolved": "https://registry.npmjs.org/@windmill-labs/esbuild-import-meta-url-plugin/-/esbuild-import-meta-url-plugin-0.0.0-semantic-release.tgz", + "integrity": "sha512-WaexVcQOpYhX+bRmLq0ZyST1NWu1ujPVLxfcfScP7AX7DUdHfXiLTL1mhdwBcFYiucylOZbkUp2z5lkeSC4abg==", + "dev": true, + "license": "ISC", + "dependencies": { + "esbuild": ">=0.19.x", + "import-meta-resolve": "^4.0.0" + } + }, "node_modules/@windmill-labs/svelte-dnd-action": { "version": "0.9.48", "resolved": "https://registry.npmjs.org/@windmill-labs/svelte-dnd-action/-/svelte-dnd-action-0.9.48.tgz", @@ -2787,6 +5210,7 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -2797,6 +5221,7 @@ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -3058,6 +5483,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -3080,6 +5506,7 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "camelcase": "^6.3.0", @@ -3099,6 +5526,7 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -3112,6 +5540,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -3384,6 +5813,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "import-fresh": "^3.3.0", @@ -3433,10 +5863,11 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12 || >=16" @@ -3742,6 +6173,12 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/debounce-promise": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", + "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3763,6 +6200,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -3776,6 +6214,7 @@ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "decamelize": "^1.1.0", @@ -3793,6 +6232,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -3803,6 +6243,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -4178,6 +6619,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-arrayish": "^0.2.1" @@ -4697,11 +7139,20 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 4.9.1" @@ -5055,6 +7506,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "global-prefix": "^3.0.0" @@ -5068,6 +7520,7 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ini": "^1.3.5", @@ -5083,6 +7536,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "isexe": "^2.0.0" @@ -5137,6 +7591,7 @@ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/globrex": { @@ -5177,10 +7632,12 @@ } }, "node_modules/graphql-language-service": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.2.0.tgz", - "integrity": "sha512-o/ZgTS0pBxWm3hSF4+6GwiV1//DxzoLWEbS38+jqpzzy1d/QXBidwQuVYTOksclbtOJZ3KR/tZ8fi/tI6VpVMg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.3.0.tgz", + "integrity": "sha512-gCQIIy7lM9CB1KPLEb+DNZLczA9zuTLEOJE2hEQZTFYInogdmMDRa6RAkvM4LL0LcgcS+3uPs6KtHlcjCqRbUg==", + "license": "MIT", "dependencies": { + "debounce-promise": "^3.1.2", "nullthrows": "^1.0.0", "vscode-languageserver-types": "^3.17.1" }, @@ -5188,7 +7645,7 @@ "graphql": "dist/temp-bin.js" }, "peerDependencies": { - "graphql": "^15.5.0 || ^16.0.0" + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2" } }, "node_modules/hammerjs": { @@ -5225,6 +7682,7 @@ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -5321,6 +7779,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5334,6 +7793,7 @@ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -5427,6 +7887,7 @@ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -5456,6 +7917,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -5485,6 +7947,7 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/inline-style-parser": { @@ -5522,6 +7985,7 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/is-binary-path": { @@ -5615,6 +8079,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -5625,6 +8090,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -5700,6 +8166,7 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/js-yaml": { @@ -5714,6 +8181,15 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jschardet": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-3.1.3.tgz", + "integrity": "sha512-Q1PKVMK/uu+yjdlobgWIYkUOCR1SqUmW9m/eUJNNj4zI2N12i25v8fYpVf+zCakQeaTdBdhnZTFbVIAVZIVVOg==", + "license": "LGPL-2.1+", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -5725,6 +8201,7 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-schema-traverse": { @@ -5745,10 +8222,11 @@ "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==" }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", @@ -5764,6 +8242,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -6038,6 +8517,7 @@ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.uniq": { @@ -6129,6 +8609,7 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -6156,6 +8637,7 @@ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, + "license": "MIT", "peer": true, "funding": { "type": "github", @@ -6380,6 +8862,7 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/minimist": "^1.2.2", @@ -6407,6 +8890,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -7078,6 +9562,7 @@ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "arrify": "^1.0.1", @@ -7147,35 +9632,91 @@ } }, "node_modules/monaco-editor": { - "name": "@codingame/monaco-editor-treemended", - "version": "1.83.8", - "resolved": "https://registry.npmjs.org/@codingame/monaco-editor-treemended/-/monaco-editor-treemended-1.83.8.tgz", - "integrity": "sha512-zlV9UGmq9TeW1SIHhIkMtU92m/k0LE3GkB+h+oMwDr2IkqdCP/QeZtKeV1V0Zu4KJsWseS7gETiZP8RTSCCiCQ==" + "name": "@codingame/monaco-vscode-editor-api", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.2.tgz", + "integrity": "sha512-uA0vYsupVQ/k3UW1Yj7WizdoUxo9WkEKcy83PGvm5yhhx/CMkA5b2tEhCjgqVyWTJVeAETI6ICHDsGuh+kmXcg==", + "license": "MIT", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + } + }, + "node_modules/monaco-editor-wrapper": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-5.5.2.tgz", + "integrity": "sha512-YuoIV2hxqGpgYGFshsDNvItLMKeriCbFcroCo/NinrEDzr2PlWuIFbaKBr2r6to2sNq53d6iUpjz6P7PTe/nrw==", + "license": "MIT", + "dependencies": { + "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", + "@codingame/monaco-vscode-editor-service-override": "~8.0.2", + "@codingame/monaco-vscode-language-pack-cs": "~8.0.2", + "@codingame/monaco-vscode-language-pack-de": "~8.0.2", + "@codingame/monaco-vscode-language-pack-es": "~8.0.2", + "@codingame/monaco-vscode-language-pack-fr": "~8.0.2", + "@codingame/monaco-vscode-language-pack-it": "~8.0.2", + "@codingame/monaco-vscode-language-pack-ja": "~8.0.2", + "@codingame/monaco-vscode-language-pack-ko": "~8.0.2", + "@codingame/monaco-vscode-language-pack-pl": "~8.0.2", + "@codingame/monaco-vscode-language-pack-pt-br": "~8.0.2", + "@codingame/monaco-vscode-language-pack-qps-ploc": "~8.0.2", + "@codingame/monaco-vscode-language-pack-ru": "~8.0.2", + "@codingame/monaco-vscode-language-pack-tr": "~8.0.2", + "@codingame/monaco-vscode-language-pack-zh-hans": "~8.0.2", + "@codingame/monaco-vscode-language-pack-zh-hant": "~8.0.2", + "@codingame/monaco-vscode-monarch-service-override": "~8.0.2", + "@codingame/monaco-vscode-textmate-service-override": "~8.0.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~8.0.2", + "@codingame/monaco-vscode-theme-service-override": "~8.0.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", + "vscode-languageclient": "~9.0.1", + "vscode-languageserver-protocol": "~3.17.5", + "vscode-ws-jsonrpc": "~3.3.2" + }, + "peerDependencies": { + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "monaco-languageclient": "~8.8.2", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2" + }, + "peerDependenciesMeta": { + "monaco-editor": { + "optional": false + }, + "monaco-languageclient": { + "optional": false + }, + "vscode": { + "optional": false + } + } }, "node_modules/monaco-graphql": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/monaco-graphql/-/monaco-graphql-1.5.1.tgz", - "integrity": "sha512-WsI/gaaltLNApOrSvFOWngiPZfhk3EQV/nV8alm/o9Z/T7elvSB2dogSNKmaPwZ7nvRK/c17zk5ZqZWY6aiogw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/monaco-graphql/-/monaco-graphql-1.6.0.tgz", + "integrity": "sha512-KFANLCtgsaHhLAqxiIbwjGwjsO19j1vQhw1iSgaewxr1/RfUEs5FBoUVfq3JITrpgLjBahfcgIWlB0mdgb9RgA==", + "license": "MIT", "dependencies": { - "graphql-language-service": "^5.2.0", + "graphql-language-service": "^5.3.0", "picomatch-browser": "^2.2.6" }, "peerDependencies": { - "graphql": "^15.5.0 || ^16.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2", "monaco-editor": ">= 0.20.0 < 1", "prettier": "^2.8.0 || ^3.0.0" } }, "node_modules/monaco-languageclient": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-7.0.2.tgz", - "integrity": "sha512-fSh+bfJ8SAXwaXLt+Q6tOuLrq7o45TwT8Bs9LXLUsxJzzKs19/VCxIYSVGEbKZGuIh1vXGOCDAUDcDUC5rGR8Q==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-8.8.2.tgz", + "integrity": "sha512-qE5LaHcTELjGMbq3iwBq1DqBEjzEYsPHaQUeAqNmGAFyMEJ0O+wldXAQgAqfB+oWrh2xmSiFcizmXqRawrx8oQ==", + "license": "MIT", "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", + "@codingame/monaco-vscode-extensions-service-override": "~8.0.2", + "@codingame/monaco-vscode-languages-service-override": "~8.0.2", + "@codingame/monaco-vscode-localization-service-override": "~8.0.2", + "@codingame/monaco-vscode-model-service-override": "~8.0.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", "vscode-languageclient": "~9.0.1" }, "engines": { @@ -7183,8 +9724,8 @@ "npm": ">=9.0.0" }, "peerDependencies": { - "monaco-editor": "0.44.0", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.7 <1.84.0" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2" }, "peerDependenciesMeta": { "monaco-editor": { @@ -7367,6 +9908,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "hosted-git-info": "^4.0.1", @@ -7450,7 +9992,8 @@ "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "license": "MIT" }, "node_modules/nypm": { "version": "0.3.8", @@ -7702,6 +10245,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -8434,10 +10978,11 @@ } }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/postcss-safe-parser": { @@ -8695,6 +11240,7 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", @@ -8714,6 +11260,7 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "find-up": "^5.0.0", @@ -8732,6 +11279,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -8745,6 +11293,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -8796,6 +11345,7 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "indent-string": "^5.0.0", @@ -8896,6 +11446,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -9230,6 +11781,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -9309,6 +11861,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -9316,10 +11869,11 @@ } }, "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==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true, + "license": "CC-BY-3.0", "peer": true }, "node_modules/spdx-expression-parse": { @@ -9327,6 +11881,7 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", @@ -9334,10 +11889,11 @@ } }, "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==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, + "license": "CC0-1.0", "peer": true }, "node_modules/string_decoder": { @@ -9392,6 +11948,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "min-indent": "^1.0.1" @@ -9420,6 +11977,7 @@ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/style-to-object": { @@ -9452,6 +12010,7 @@ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.3.1", @@ -9519,9 +12078,9 @@ } }, "node_modules/stylelint/node_modules/@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", "dev": true, "funding": [ { @@ -9533,6 +12092,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "peer": true, "engines": { "node": "^14 || ^16 || >=18" @@ -9546,6 +12106,7 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/stylelint/node_modules/file-entry-cache": { @@ -9553,6 +12114,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flat-cache": "^3.2.0" @@ -9562,10 +12124,11 @@ } }, "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "cssesc": "^3.0.0", @@ -9580,6 +12143,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -9671,10 +12235,11 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0", @@ -9682,6 +12247,9 @@ }, "engines": { "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -10053,10 +12621,11 @@ } }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "ajv": "^8.0.1", @@ -10070,16 +12639,17 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -10091,6 +12661,7 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/tailwind-merge": { @@ -10270,6 +12841,7 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -10529,6 +13101,7 @@ "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, + "license": "Apache-2.0", "peer": true, "dependencies": { "spdx-correct": "^3.0.0", @@ -10667,14 +13240,20 @@ }, "node_modules/vscode": { "name": "@codingame/monaco-vscode-api", - "version": "1.83.8", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-1.83.8.tgz", - "integrity": "sha512-iRifRsQZOGCpdJUKrJ3/SC+gOD74inzfWE4MBE0AFrAXlLOL8ATVEBS52TT7gbFqJtqsYGpZB95ezKGUTswYsQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.2.tgz", + "integrity": "sha512-n9UZrJk4u4vwZxzVfLDLG93XceEsGAjs6clkKwFVX/dbVjOvxbyt6O7m2QL6+kbF17SBHBUHiRiOgD3q2FBaJA==", + "license": "MIT", "dependencies": { - "monaco-editor": "0.44.0" - }, - "bin": { - "monaco-treemending": "monaco-treemending.js" + "@codingame/monaco-vscode-base-service-override": "8.0.2", + "@codingame/monaco-vscode-environment-service-override": "8.0.2", + "@codingame/monaco-vscode-extensions-service-override": "8.0.2", + "@codingame/monaco-vscode-files-service-override": "8.0.2", + "@codingame/monaco-vscode-host-service-override": "8.0.2", + "@codingame/monaco-vscode-layout-service-override": "8.0.2", + "@codingame/monaco-vscode-quickaccess-service-override": "8.0.2", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.3" } }, "node_modules/vscode-jsonrpc": { @@ -10723,23 +13302,45 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "license": "MIT" + }, + "node_modules/vscode-textmate": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz", + "integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==", + "license": "MIT" + }, "node_modules/vscode-uri": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" }, "node_modules/vscode-ws-jsonrpc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.1.0.tgz", - "integrity": "sha512-Z3as2O9rml9rYMYjZQABeCtYEqmRa0TJRUOe6MElXDswNvXiJnu7+vqyy4c6GX+/8SfI0C+sDBJ7naM5wHz0gA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.3.2.tgz", + "integrity": "sha512-jxGHxAuow67sNRkkS2svsW00ZACX+Zrbury9Au2A22px6sg4pe858Nnnwvtg0Pm4D0L/W9Yzn7N7X3R/RIMxsQ==", + "license": "MIT", "dependencies": { - "vscode-jsonrpc": "~8.2.0" + "vscode-jsonrpc": "~8.2.1" }, "engines": { "node": ">=16.11.0", "npm": ">=8.0.0" } }, + "node_modules/vscode-ws-jsonrpc/node_modules/vscode-jsonrpc": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz", + "integrity": "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -10818,6 +13419,7 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "imurmurhash": "^0.1.4", @@ -10832,6 +13434,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "peer": true, "engines": { "node": ">=14" @@ -10958,6 +13561,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "peer": true, "engines": { "node": ">=10" diff --git a/frontend/package.json b/frontend/package.json index 03f65d0b25..686a64bc4b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.383.1", + "version": "1.383.8", "scripts": { "dev": "vite dev", "build": "vite build", @@ -17,6 +17,7 @@ "filter-classes": "node filterTailwindClasses.js" }, "devDependencies": { + "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release", "@floating-ui/core": "^1.3.1", "@hey-api/openapi-ts": "^0.43.0", "@playwright/test": "^1.34.3", @@ -72,25 +73,25 @@ "@rgossiaux/svelte-headlessui": { "svelte": "$svelte" }, - "ag-grid-svelte": { - "svelte": "$svelte" + "monaco-graphql": { + "monaco-editor": "$monaco-editor" }, "svelte-chartjs": { "svelte": "$svelte" - }, - "svelte-timezone-picker": { - "svelte": "$svelte" - }, - "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" + } }, "type": "module", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", + "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", + "@codingame/monaco-vscode-files-service-override": "~8.0.2", + "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2", + "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2", + "@codingame/monaco-vscode-localization-service-override": "~8.0.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2", + "@codingame/monaco-vscode-standalone-languages": "~8.0.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2", "@json2csv/plainjs": "^7.0.6", "@leeoniya/ufuzzy": "^1.0.8", "@popperjs/core": "^2.11.6", @@ -117,9 +118,10 @@ "highlight.js": "^11.8.0", "lucide-svelte": "^0.293.0", "minimatch": "^10.0.1", - "monaco-editor": "npm:@codingame/monaco-editor-treemended@>=1.83.5 <1.84.0", - "monaco-graphql": "^1.5.1", - "monaco-languageclient": "~7.0.1", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", + "monaco-editor-wrapper": "^5.5.2", + "monaco-graphql": "^1.6.0", + "monaco-languageclient": "~8.8.2", "ol": "^7.4.0", "openai": "^4.47.1", "p-limit": "^6.1.0", @@ -132,10 +134,10 @@ "svelte-infinite-loading": "^1.3.8", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", - "vscode": "npm:@codingame/monaco-vscode-api@>=1.83.5 <1.84.0", + "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", - "vscode-ws-jsonrpc": "~3.1.0", + "vscode-ws-jsonrpc": "~3.3.2", "windmill-parser-wasm": "^1.367.2", "windmill-sql-datatype-parser-wasm": "^1.318.0", "y-monaco": "^0.1.4", diff --git a/frontend/src/lib/components/DiffDrawer.svelte b/frontend/src/lib/components/DiffDrawer.svelte index 8b638fa903..6c59a1aebc 100644 --- a/frontend/src/lib/components/DiffDrawer.svelte +++ b/frontend/src/lib/components/DiffDrawer.svelte @@ -209,6 +209,7 @@ {#key diffType} {#if contentType === 'content'} {:else if contentType === 'metadata'} { if (BROWSER) { - loadDiffEditor() return () => { diffEditor?.dispose() } @@ -116,6 +123,7 @@ }) - - -
+{#if open} + +
+{/if} diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index 733cb6dbcc..40162d432e 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -1,3 +1,106 @@ + + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 31b2ae6d38..b362913835 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -3,6 +3,7 @@ import { readFileSync } from 'fs' import { fileURLToPath } from 'url' import circleDependency from 'vite-plugin-circular-dependency' // import mkcert from 'vite-plugin-mkcert' +import importMetaUrlPlugin from '@windmill-labs/esbuild-import-meta-url-plugin' const file = fileURLToPath(new URL('package.json', import.meta.url)) const json = readFileSync(file, 'utf8') @@ -39,13 +40,23 @@ const config = { __pkg__: version }, optimizeDeps: { - include: ['highlight.js', 'highlight.js/lib/core'] + include: ['highlight.js', 'highlight.js/lib/core'], + exclude: [ + '@codingame/monaco-vscode-standalone-typescript-language-features', + '@codingame/monaco-vscode-standalone-languages', + 'monaco-graphql' + ], + esbuildOptions: { + plugins: [importMetaUrlPlugin] + } }, resolve: { alias: { - path: 'path-browserify' + path: 'path-browserify', + 'vscode/vscode/vs/editor/contrib/hover/browser/hover': + 'vscode/vscode/vs/editor/contrib/hover/browser/hoverController' }, - dedupe: ['monaco-editor', 'vscode'] + dedupe: ['vscode', 'monaco-editor'] }, assetsInclude: ['**/*.wasm'] } From fdfd385a68c8e05eff147a9471a9f3f44f39e13e Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Mon, 26 Aug 2024 10:48:36 +0200 Subject: [PATCH 002/200] feat(frontend): hide/show app editor panels (#4266) * feat(frontend): wip * feat(frontend): wip * feat(frontend): wip * feat(frontend): wip * feat(frontend): add all shortcuts * feat(frontend): improve the shorcuts * feat(frontend): improve the shorcuts * feat(frontend): hide the buttons in preview mode * feat(frontend): improve the shorcuts * feat(frontend): fix shortcuts * feat(frontend): fix shared state between log panels --- .../components/apps/editor/AppEditor.svelte | 343 +++++++++++++----- .../apps/editor/AppEditorBottomPanel.svelte | 24 ++ .../apps/editor/AppEditorHeader.svelte | 48 ++- .../apps/editor/RunnableJobPanel.svelte | 82 ++--- .../apps/editor/RunnalbeJobPanelInner.svelte | 61 ++++ .../editor/contextPanel/ContextPanel.svelte | 11 +- .../InlineScriptsPanel.svelte | 10 +- .../InlineScriptsPanelList.svelte | 16 +- .../editor/settingsPanel/HideButton.svelte | 52 +++ 9 files changed, 489 insertions(+), 158 deletions(-) create mode 100644 frontend/src/lib/components/apps/editor/AppEditorBottomPanel.svelte create mode 100644 frontend/src/lib/components/apps/editor/RunnalbeJobPanelInner.svelte create mode 100644 frontend/src/lib/components/apps/editor/settingsPanel/HideButton.svelte diff --git a/frontend/src/lib/components/apps/editor/AppEditor.svelte b/frontend/src/lib/components/apps/editor/AppEditor.svelte index 72a83f02e1..716fcbfa91 100644 --- a/frontend/src/lib/components/apps/editor/AppEditor.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditor.svelte @@ -28,12 +28,10 @@ import ComponentList from './componentsPanel/ComponentList.svelte' import ContextPanel from './contextPanel/ContextPanel.svelte' - import InlineScriptsPanel from './inlineScriptsPanel/InlineScriptsPanel.svelte' - import { page } from '$app/stores' import ItemPicker from '$lib/components/ItemPicker.svelte' import VariableEditor from '$lib/components/VariableEditor.svelte' - import { VariableService, type Policy } from '$lib/gen' + import { VariableService, type Job, type Policy } from '$lib/gen' import { initHistory } from '$lib/history' import { Component, Minus, Paintbrush, Plus, Smartphone } from 'lucide-svelte' import { findGridItem, findGridItemParentGrid } from './appUtils' @@ -56,6 +54,8 @@ import type DiffDrawer from '$lib/components/DiffDrawer.svelte' import RunnableJobPanel from './RunnableJobPanel.svelte' import { goto, replaceState } from '$app/navigation' + import HideButton from './settingsPanel/HideButton.svelte' + import AppEditorBottomPanel from './AppEditorBottomPanel.svelte' export let app: App export let path: string @@ -311,7 +311,7 @@ let gridPanelSize = 70 let leftPanelSize = 22 - let centerPanelSize = 63 + let centerPanelSize = 56 let rightPanelSize = 22 let tmpRunnablePanelSize = -1 @@ -540,11 +540,105 @@ let runnableJobEnterTimeout: NodeJS.Timeout | undefined = undefined let stillInJobEnter = false + let storedLeftPanelSize = 0 + let storedRightPanelSize = 0 + let storedBottomPanelSize = 0 + + let centerPanelWidth = 0 + + function hideLeftPanel() { + storedLeftPanelSize = leftPanelSize + leftPanelSize = 0 + centerPanelSize = centerPanelSize + storedLeftPanelSize + } + + function hideRightPanel() { + storedRightPanelSize = rightPanelSize + rightPanelSize = 0 + centerPanelSize = centerPanelSize + storedRightPanelSize + } + + function hideBottomPanel() { + storedBottomPanelSize = runnablePanelSize + gridPanelSize = 99 + runnablePanelSize = 0 + } + + function showLeftPanel() { + leftPanelSize = storedLeftPanelSize + centerPanelSize = centerPanelSize - storedLeftPanelSize + storedLeftPanelSize = 0 + } + + function showRightPanel() { + rightPanelSize = storedRightPanelSize + centerPanelSize = centerPanelSize - storedRightPanelSize + storedRightPanelSize = 0 + } + + function showBottomPanel() { + runnablePanelSize = storedBottomPanelSize + gridPanelSize = gridPanelSize - storedBottomPanelSize + storedBottomPanelSize = 0 + } + + function keydown(event: KeyboardEvent) { + let classes = event.target?.['className'] + if ( + (typeof classes === 'string' && classes.includes('inputarea')) || + ['INPUT', 'TEXTAREA'].includes(document.activeElement?.tagName!) + ) { + return + } + + switch (event.key) { + case 'b': { + if (event.ctrlKey || event.metaKey) { + event.preventDefault() + + if (leftPanelSize !== 0) { + hideLeftPanel() + } else { + showLeftPanel() + } + } + break + } + + case 'u': { + if (event.ctrlKey || event.metaKey) { + event.preventDefault() + + if (rightPanelSize !== 0) { + hideRightPanel() + } else { + showRightPanel() + } + } + break + } + + case 'l': { + if (event.ctrlKey || event.metaKey) { + event.preventDefault() + + if (runnablePanelSize !== 0) { + hideBottomPanel() + } else { + showBottomPanel() + } + } + break + } + } + } + let testJob: Job | undefined = undefined + let jobToWatch: { componentId: string; job: string } | undefined = undefined - + {#if !$userStore?.operator} {#if $appStore} @@ -556,6 +650,15 @@ {diffDrawer} bind:savedApp {version} + leftPanelHidden={leftPanelSize === 0} + rightPanelHidden={rightPanelSize === 0} + bottomPanelHidden={runnablePanelSize === 0} + on:showLeftPanel={() => showLeftPanel()} + on:showRightPanel={() => showRightPanel()} + on:hideLeftPanel={() => hideLeftPanel()} + on:hideRightPanel={() => hideRightPanel()} + on:hideBottomPanel={() => hideBottomPanel()} + on:showBottomPanel={() => showBottomPanel()} /> {#if $mode === 'preview'} @@ -601,7 +704,7 @@ - + hideLeftPanel()} />
@@ -618,7 +721,39 @@ 'wm-app-viewer h-full overflow-visible' )} style={$appStore.css?.['app']?.['viewer']?.style} + bind:clientWidth={centerPanelWidth} > + {#if leftPanelSize === 0} +
+ showLeftPanel()} + direction="right" + hidden + btnClasses="border bg-surface" + /> +
+ {/if} + {#if rightPanelSize === 0} +
+ showRightPanel()} + direction="left" + hidden + btnClasses="border bg-surface" + /> +
+ {/if} + {#if runnablePanelSize === 0} +
+ showBottomPanel()} + direction="bottom" + hidden + btnClasses="border bg-surface" + /> +
+ {/if} +
{/if}
- {#if typeof result?.s3 == 'string' && (result?.s3?.endsWith('.parquet') || result?.s3?.endsWith('.csv'))} - {#key result.s3} - - {/key} + {#if typeof result?.s3 === 'string'} + {#if result?.s3?.endsWith('.parquet') || result?.s3?.endsWith('.csv')} + {#key result.s3} + + {/key} + {:else if result?.s3?.endsWith('.png') || result?.s3?.endsWith('.jpeg') || result?.s3?.endsWith('.jpg') || result?.s3?.endsWith('.webp')} +
+ preview rendered +
+ {/if} {/if}
{:else if !forceJson && resultKind == 's3object-list'} @@ -693,6 +704,25 @@ >open table preview {/if} + {:else if s3object?.s3?.endsWith('.png') || s3object?.s3?.endsWith('.jpeg') || s3object?.s3?.endsWith('.jpg') || s3object?.s3?.endsWith('.webp')} + {#if seeS3PreviewFileFromList == s3object?.s3} +
+ preview rendered +
+ {:else} + + {/if} {/if} {/each}
diff --git a/frontend/src/lib/components/S3FilePicker.svelte b/frontend/src/lib/components/S3FilePicker.svelte index dfe961de45..bd4270a836 100644 --- a/frontend/src/lib/components/S3FilePicker.svelte +++ b/frontend/src/lib/components/S3FilePicker.svelte @@ -608,8 +608,20 @@ {/if}
- {#if fileMetadata !== undefined && filePreview !== undefined} + {#if fileMetadata?.fileKey.endsWith('.png') || fileMetadata?.fileKey.endsWith('.jpg') || fileMetadata?.fileKey.endsWith('.jpeg') || fileMetadata?.fileKey.endsWith('.webp')} +
+ S3 preview +
+ {:else if filePreviewLoading}
+ File preview loading +
+ {:else if fileMetadata !== undefined && filePreview !== undefined} +
{#if filePreview.contentType === 'Unknown'} Type of file not supported for preview. {:else if filePreview.contentType === 'Csv'} @@ -653,13 +665,13 @@ Previewing a {filePreview.contentType?.toLowerCase()} file. {/if}
-
{#if !emptyString(filePreview.contentPreview)}{filePreview.contentPreview}{:else if filePreview.contentType !== undefined}Preview impossible.{/if}
- {:else if filePreviewLoading} -
- File preview loading -
+
+									{#if !emptyString(filePreview.contentPreview)}
+									{filePreview.contentPreview}
+								{:else if filePreview.contentType !== undefined}
+									Preview impossible.
+								{/if}
+							
{/if}
From 4efc40fbb0214fba65f6ff95782e6ead3b20bc71 Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Mon, 26 Aug 2024 16:36:22 +0200 Subject: [PATCH 006/200] fix(frontend): fix inserting Ws scripts from the search menu (#4290) * fix(frontend): fix inserting Ws scripts from the AI gen * fix(frontend): fix inserting Ws scripts from the search menu --- .../src/lib/components/copilot/StepGen.svelte | 3 ++- .../flows/map/InsertTriggerButton.svelte | 2 +- .../graph/renderers/edges/BaseEdge.svelte | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/components/copilot/StepGen.svelte b/frontend/src/lib/components/copilot/StepGen.svelte index ff009b9e69..8b2aa3605b 100644 --- a/frontend/src/lib/components/copilot/StepGen.svelte +++ b/frontend/src/lib/components/copilot/StepGen.svelte @@ -36,7 +36,8 @@ async function loadScripts(): Promise { const loadedScripts = await ScriptService.listScripts({ workspace: $workspaceStore!, - perPage: 300 + perPage: 300, + kinds: trigger ? 'trigger' : 'script' }) scripts = loadedScripts diff --git a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte index 88b3593f2f..03d819b2c5 100644 --- a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte +++ b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte @@ -32,7 +32,7 @@ {#if !disableAi} - + {/if} {#if funcDesc.length === 0}
diff --git a/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte b/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte index 39bac15583..b29e481fb9 100644 --- a/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte +++ b/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte @@ -65,6 +65,14 @@ on:new={(e) => { data?.eventHandlers.insert({ modules: data.modules, index: data.index, detail: e.detail }) }} + on:insert={(e) => { + data?.eventHandlers.insert({ + modules: data.modules, + index: data.index, + script: e.detail, + detail: 'script' + }) + }} bind:open={menuOpen} />
@@ -82,6 +90,14 @@ detail: e.detail }) }} + on:insert={(e) => { + data?.eventHandlers.insert({ + modules: data.modules, + index: data.index, + script: e.detail, + detail: 'script' + }) + }} index={data?.index ?? 0} modules={data?.modules ?? []} /> From de54bfa12b9e381968d9d9155436bcd5d1db5f0e Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 26 Aug 2024 17:49:56 +0200 Subject: [PATCH 007/200] update rust image to 1.80 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6d5a2d29f4..deda1eabbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ARG DEBIAN_IMAGE=debian:bookworm-slim -ARG RUST_IMAGE=rust:1.79-slim-bookworm +ARG RUST_IMAGE=rust:1.80-slim-bookworm ARG PYTHON_IMAGE=python:3.11.8-slim-bookworm FROM ${RUST_IMAGE} AS rust_base From 125ecd64acf0dcaa781841b89ba6a8fb7c25084a Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 26 Aug 2024 18:59:38 +0200 Subject: [PATCH 008/200] chore(main): release 1.385.0 (#4288) * chore(main): release 1.385.0 * Apply automatic changes --------- Co-authored-by: rubenfiszel --- CHANGELOG.md | 12 +++++ backend/Cargo.lock | 44 +++++++++---------- backend/Cargo.toml | 4 +- backend/windmill-api/openapi.yaml | 2 +- benchmarks/lib.ts | 2 +- cli/main.ts | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- lsp/Pipfile | 4 +- openflow.openapi.yaml | 2 +- .../WindmillClient/WindmillClient.psd1 | 2 +- python-client/wmill/pyproject.toml | 2 +- python-client/wmill_pg/pyproject.toml | 2 +- typescript-client/jsr.json | 2 +- typescript-client/package.json | 2 +- version.txt | 2 +- 16 files changed, 51 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2aeafacf9..503a04d353 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.385.0](https://github.com/windmill-labs/windmill/compare/v1.384.0...v1.385.0) (2024-08-26) + + +### Features + +* s3 image preview ([#4262](https://github.com/windmill-labs/windmill/issues/4262)) ([35d665f](https://github.com/windmill-labs/windmill/commit/35d665f6179e0a52dd30512e378f270c44703f48)) + + +### Bug Fixes + +* **frontend:** fix inserting Ws scripts from the search menu ([#4290](https://github.com/windmill-labs/windmill/issues/4290)) ([4efc40f](https://github.com/windmill-labs/windmill/commit/4efc40fbb0214fba65f6ff95782e6ead3b20bc71)) + ## [1.384.0](https://github.com/windmill-labs/windmill/compare/v1.383.1...v1.384.0) (2024-08-26) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 56a24c8249..757546715b 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -1637,9 +1637,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" dependencies = [ "jobserver", "libc", @@ -10466,7 +10466,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "axum", @@ -10506,7 +10506,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "argon2", @@ -10590,7 +10590,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.384.0" +version = "1.385.0" dependencies = [ "base64 0.21.7", "chrono", @@ -10608,7 +10608,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.384.0" +version = "1.385.0" dependencies = [ "chrono", "serde", @@ -10621,7 +10621,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "async-stream", @@ -10662,7 +10662,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.384.0" +version = "1.385.0" dependencies = [ "regex", "rsmq_async", @@ -10677,7 +10677,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "bytes", @@ -10698,7 +10698,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.384.0" +version = "1.385.0" dependencies = [ "serde", "serde_json", @@ -10706,7 +10706,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "lazy_static", @@ -10717,7 +10717,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "gosyn", @@ -10729,7 +10729,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "lazy_static", @@ -10740,7 +10740,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10754,7 +10754,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10765,7 +10765,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "async-recursion", @@ -10782,7 +10782,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "lazy_static", @@ -10793,7 +10793,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10812,7 +10812,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -10831,7 +10831,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "async-recursion", @@ -10864,7 +10864,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.384.0" +version = "1.385.0" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -10874,7 +10874,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.384.0" +version = "1.385.0" dependencies = [ "anyhow", "async-recursion", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 6fe7390cf8..54583b089d 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.384.0" +version = "1.385.0" authors.workspace = true edition.workspace = true @@ -25,7 +25,7 @@ members = [ ] [workspace.package] -version = "1.384.0" +version = "1.385.0" authors = ["Ruben Fiszel "] edition = "2021" diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 8090a5825d..1d4e753d8f 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.384.0 + version: 1.385.0 title: Windmill API contact: diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index dadd0e6739..90117d8286 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.384.0"; +export const VERSION = "v1.385.0"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/main.ts b/cli/main.ts index 61d268ac08..ba69dd0734 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -34,7 +34,7 @@ addEventListener("error", (event) => { } }); -export const VERSION = "v1.384.0"; +export const VERSION = "v1.385.0"; let command: any = new Command() .name("wmill") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 54e6f78446..6999e54e4f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "windmill-components", - "version": "1.384.0", + "version": "1.385.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.384.0", + "version": "1.385.0", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", diff --git a/frontend/package.json b/frontend/package.json index b190f15344..33bda3df10 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.384.0", + "version": "1.385.0", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/lsp/Pipfile b/lsp/Pipfile index a68cbe44c6..40f3d0f79b 100644 --- a/lsp/Pipfile +++ b/lsp/Pipfile @@ -4,8 +4,8 @@ verify_ssl = true name = "pypi" [packages] -wmill = ">=1.384.0" -wmill_pg = ">=1.384.0" +wmill = ">=1.385.0" +wmill_pg = ">=1.385.0" sendgrid = "*" mysql-connector-python = "*" pymongo = "*" diff --git a/openflow.openapi.yaml b/openflow.openapi.yaml index 89cd5f06d2..1915c55d23 100644 --- a/openflow.openapi.yaml +++ b/openflow.openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.384.0 + version: 1.385.0 title: OpenFlow Spec contact: name: Ruben Fiszel diff --git a/powershell-client/WindmillClient/WindmillClient.psd1 b/powershell-client/WindmillClient/WindmillClient.psd1 index 2e99d466a4..2b7b00abb0 100644 --- a/powershell-client/WindmillClient/WindmillClient.psd1 +++ b/powershell-client/WindmillClient/WindmillClient.psd1 @@ -12,7 +12,7 @@ RootModule = 'WindmillClient.psm1' # Version number of this module. -ModuleVersion = '1.384.0' +ModuleVersion = '1.385.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/python-client/wmill/pyproject.toml b/python-client/wmill/pyproject.toml index a49c10fe57..43336e4c77 100644 --- a/python-client/wmill/pyproject.toml +++ b/python-client/wmill/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill" -version = "1.384.0" +version = "1.385.0" description = "A client library for accessing Windmill server wrapping the Windmill client API" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/python-client/wmill_pg/pyproject.toml b/python-client/wmill_pg/pyproject.toml index 873e541a1f..a9a1483771 100644 --- a/python-client/wmill_pg/pyproject.toml +++ b/python-client/wmill_pg/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill-pg" -version = "1.384.0" +version = "1.385.0" description = "An extension client for the wmill client library focused on pg" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json index 45cce6f9d7..c56c0418ba 100644 --- a/typescript-client/jsr.json +++ b/typescript-client/jsr.json @@ -1,6 +1,6 @@ { "name": "@windmill/windmill", - "version": "1.384.0", + "version": "1.385.0", "exports": "./src/index.ts", "publish": { "exclude": ["!src", "./s3Types.ts", "./client.ts"] diff --git a/typescript-client/package.json b/typescript-client/package.json index 094f6dd36e..3c43e3f2fd 100644 --- a/typescript-client/package.json +++ b/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "windmill-client", "description": "Windmill SDK client for browsers and Node.js", - "version": "1.384.0", + "version": "1.385.0", "author": "Ruben Fiszel", "license": "Apache 2.0", "devDependencies": { diff --git a/version.txt b/version.txt index 18b364a1a8..98c24f6858 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.384.0 +1.385.0 From 6e592a20d1638094e5b37c58a27932841c4e0308 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 26 Aug 2024 19:28:16 +0200 Subject: [PATCH 009/200] update tests to 1.80 --- .github/workflows/backend-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/backend-test.yml b/.github/workflows/backend-test.yml index 4a3a9f69e7..3beb642fa6 100644 --- a/.github/workflows/backend-test.yml +++ b/.github/workflows/backend-test.yml @@ -32,7 +32,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.79.0 + toolchain: 1.80.0 # - uses: Swatinem/rust-cache@v2 # with: # workspaces: | From 1ec45e5ad6436d36d3951a75663b4f310025d765 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 26 Aug 2024 22:31:23 +0200 Subject: [PATCH 010/200] feat: add vim support for monaco/webeditor --- .github/DockerfileBackendTests | 2 +- .../windmill-worker/src/python_executor.rs | 2 +- frontend/package-lock.json | 26 +++++++ frontend/package.json | 5 +- frontend/src/lib/assets/app.css | 4 + frontend/src/lib/components/DiffEditor.svelte | 6 +- frontend/src/lib/components/Editor.svelte | 34 ++++++++- frontend/src/lib/components/EditorBar.svelte | 13 +--- .../src/lib/components/EditorSettings.svelte | 47 ++++++++++++ .../src/lib/components/FormatOnSave.svelte | 43 +++-------- .../src/lib/components/ScriptBuilder.svelte | 3 + .../src/lib/components/ScriptEditor.svelte | 1 + .../src/lib/components/SimpleEditor.svelte | 34 ++++++++- .../src/lib/components/TemplateEditor.svelte | 2 +- frontend/src/lib/components/VimMode.svelte | 18 +++++ .../inlineScriptsPanel/CacheTtlPopup.svelte | 1 + .../InlineScriptEditor.svelte | 3 + .../copilot/CodeCompletionStatus.svelte | 73 +++++++------------ frontend/src/lib/components/custom_ui.ts | 3 +- .../flows/content/ScriptEditorDrawer.svelte | 3 + .../src/lib/components/monaco_keybindings.ts | 14 ++++ frontend/src/lib/stores.ts | 13 +++- frontend/vite.config.js | 2 +- python-client/wmill/wmill/client.py | 2 +- 24 files changed, 250 insertions(+), 104 deletions(-) create mode 100644 frontend/src/lib/components/EditorSettings.svelte create mode 100644 frontend/src/lib/components/VimMode.svelte create mode 100644 frontend/src/lib/components/monaco_keybindings.ts diff --git a/.github/DockerfileBackendTests b/.github/DockerfileBackendTests index b56e64d085..3050e9ab54 100644 --- a/.github/DockerfileBackendTests +++ b/.github/DockerfileBackendTests @@ -1,5 +1,5 @@ ARG DEBIAN_IMAGE=debian:bookworm-slim -ARG RUST_IMAGE=rust:1.79-slim-bookworm +ARG RUST_IMAGE=rust:1.80-slim-bookworm ARG PYTHON_IMAGE=python:3.11.4-slim-bookworm FROM ${DEBIAN_IMAGE} as downloader diff --git a/backend/windmill-worker/src/python_executor.rs b/backend/windmill-worker/src/python_executor.rs index 3186bd41c5..8d33a057b3 100644 --- a/backend/windmill-worker/src/python_executor.rs +++ b/backend/windmill-worker/src/python_executor.rs @@ -318,7 +318,7 @@ def to_b_64(v: bytes): b64 = base64.b64encode(v) return b64.decode('ascii') -replace_nan = re.compile(r'(?:\bNaN\b|\\u0000)') +replace_nan = re.compile(r'(?:\bNaN\b|\\*\\u0000)') result_json = os.path.join(os.path.abspath(os.path.dirname(__file__)), "result.json") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6999e54e4f..7aaeb8a75e 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,28 @@ { "name": "windmill-components", +<<<<<<< Updated upstream "version": "1.385.0", +======= +<<<<<<< Updated upstream + "version": "1.384.0", +======= + "version": "1.383.9", +>>>>>>> Stashed changes +>>>>>>> Stashed changes "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", +<<<<<<< Updated upstream "version": "1.385.0", +======= +<<<<<<< Updated upstream + "version": "1.384.0", +======= + "version": "1.383.9", +>>>>>>> Stashed changes +>>>>>>> Stashed changes "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", @@ -49,6 +65,7 @@ "monaco-editor-wrapper": "^5.5.2", "monaco-graphql": "^1.6.0", "monaco-languageclient": "~8.8.2", + "monaco-vim": "^0.4.1", "ol": "^7.4.0", "openai": "^4.47.1", "p-limit": "^6.1.0", @@ -9736,6 +9753,15 @@ } } }, + "node_modules/monaco-vim": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/monaco-vim/-/monaco-vim-0.4.1.tgz", + "integrity": "sha512-+cy0TE9xarjLIgUexqxIEbat3K1l7WbiFSLZKAO2kYl1qFRvkeWn4ro/C4c6dK0i9+WQKUC4Dhu/nyCbZfA37w==", + "license": "MIT", + "peerDependencies": { + "monaco-editor": "*" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 33bda3df10..f8d1ceb79e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,7 +17,6 @@ "filter-classes": "node filterTailwindClasses.js" }, "devDependencies": { - "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release", "@floating-ui/core": "^1.3.1", "@hey-api/openapi-ts": "^0.43.0", "@playwright/test": "^1.34.3", @@ -35,6 +34,7 @@ "@types/vscode": "^1.83.5", "@typescript-eslint/eslint-plugin": "^5.59.8", "@typescript-eslint/parser": "^5.60.0", + "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release", "@zerodevx/svelte-toast": "^0.9.5", "autoprefixer": "^10.4.13", "cssnano": "^6.0.1", @@ -88,9 +88,9 @@ "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2", "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2", "@codingame/monaco-vscode-localization-service-override": "~8.0.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2", "@codingame/monaco-vscode-standalone-languages": "~8.0.2", - "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2", "@json2csv/plainjs": "^7.0.6", "@leeoniya/ufuzzy": "^1.0.8", @@ -122,6 +122,7 @@ "monaco-editor-wrapper": "^5.5.2", "monaco-graphql": "^1.6.0", "monaco-languageclient": "~8.8.2", + "monaco-vim": "^0.4.1", "ol": "^7.4.0", "openai": "^4.47.1", "p-limit": "^6.1.0", diff --git a/frontend/src/lib/assets/app.css b/frontend/src/lib/assets/app.css index e86a21190f..069b58e827 100644 --- a/frontend/src/lib/assets/app.css +++ b/frontend/src/lib/assets/app.css @@ -120,3 +120,7 @@ svelte-virtual-list-contents > * + * { @apply bg-surface; @apply disabled:placeholder:text-gray-200 disabled:placeholder:dark:text-gray-500 disabled:text-gray-200 disabled:dark:text-gray-500 disabled:border-gray-200 disabled:dark:border-gray-600; } + +.nonmain-editor .cursor.monaco-mouse-cursor-text { + width: 1px !important; +} diff --git a/frontend/src/lib/components/DiffEditor.svelte b/frontend/src/lib/components/DiffEditor.svelte index 379f84908f..4be144c70a 100644 --- a/frontend/src/lib/components/DiffEditor.svelte +++ b/frontend/src/lib/components/DiffEditor.svelte @@ -125,5 +125,9 @@ {#if open} -
+
{/if} diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index 40162d432e..0d2617f2be 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -3,7 +3,6 @@ + +{#if customUi?.autoformatting != false || customUi?.vimMode != false || customUi?.aiCompletion != false} + + +
{/if} -
+
+{#if allowVim && $vimMode} +
+{/if} %sveltekit.head%
+
+
+
.app-title { - @apply block text-sm w-full p-1 px-2 rounded border-0 font-semibold; + @apply !block !text-sm !w-full !p-1 !px-2 !rounded !border-0 !font-semibold; } .app-title:hover { - @apply ring-frost-100 ring-offset-0 ring-1; + @apply !ring-frost-100 !ring-offset-0 !ring-1; } .app-title:focus { - @apply ring-gray-300 ring-offset-0 ring-1; + @apply !ring-gray-300 !ring-offset-0 !ring-1; box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .dark .app-title { - @apply bg-gray-700 text-secondary border-gray-600; + @apply !text-secondary !border-gray-600; } .dark .app-title:focus { @@ -45,9 +45,9 @@ } .dark .app-title:hover { - @apply ring-frost-700; + @apply !ring-frost-700; } .app-title:focus + .pen-icon { - @apply hidden; + @apply !hidden; } From 543a8e98fc5d89c96c5040e8f0f52fc28e07fe1e Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Thu, 29 Aug 2024 10:59:31 +0200 Subject: [PATCH 035/200] remove the dotted outline around the app editor (#4301) --- .../src/lib/components/apps/editor/GridEditor.svelte | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/frontend/src/lib/components/apps/editor/GridEditor.svelte b/frontend/src/lib/components/apps/editor/GridEditor.svelte index 52602551d2..21f3b0afcb 100644 --- a/frontend/src/lib/components/apps/editor/GridEditor.svelte +++ b/frontend/src/lib/components/apps/editor/GridEditor.svelte @@ -26,7 +26,6 @@ const { selectedComponent, app, - mode, connectingInput, summary, focusedGrid, @@ -126,14 +125,7 @@ }} bind:clientWidth={$parentWidth} > -
+
Date: Thu, 29 Aug 2024 11:14:04 +0200 Subject: [PATCH 036/200] feat(frontend): add indicator when a component is locked (#4296) * feat(frontend): add indicator when a component is locked * feat(frontend): add indicator when a component is locked * feat(frontend): improve interactivity * feat(frontend): fix how the lock overlay renders * feat(frontend): use builin detection * feat(frontend): fix zIndex * feat(frontend): update the shadow when dragged over a locked component --- frontend/src/lib/assets/app.css | 20 ++++++++++++++ .../components/apps/editor/GridEditor.svelte | 6 ++--- .../apps/editor/component/Component.svelte | 27 ++++++++++++++++--- .../components/apps/svelte-grid/Grid.svelte | 8 ++++-- .../apps/svelte-grid/MoveResize.svelte | 14 +++++++--- .../components/apps/svelte-grid/utils/item.ts | 14 +++++++--- 6 files changed, 73 insertions(+), 16 deletions(-) diff --git a/frontend/src/lib/assets/app.css b/frontend/src/lib/assets/app.css index 0a611f0862..2e41b279c0 100644 --- a/frontend/src/lib/assets/app.css +++ b/frontend/src/lib/assets/app.css @@ -124,3 +124,23 @@ svelte-virtual-list-contents > * + * { .nonmain-editor .cursor.monaco-mouse-cursor-text { width: 1px !important; } + +.bg-locked { + background-image: repeating-linear-gradient( + -45deg, + rgba(128, 128, 128, 0.2), + rgba(128, 128, 128, 0.2) 10px, + rgba(192, 192, 192, 0.2) 10px, + rgba(192, 192, 192, 0.2) 20px + ); +} + +.bg-locked-hover { + background-image: repeating-linear-gradient( + -45deg, + rgba(255, 99, 71, 0.2), + rgba(255, 99, 71, 0.2) 10px, + rgba(255, 69, 58, 0.2), + rgba(255, 69, 58, 0.2) 20px + ); +} diff --git a/frontend/src/lib/components/apps/editor/GridEditor.svelte b/frontend/src/lib/components/apps/editor/GridEditor.svelte index 21f3b0afcb..926c5fe26f 100644 --- a/frontend/src/lib/components/apps/editor/GridEditor.svelte +++ b/frontend/src/lib/components/apps/editor/GridEditor.svelte @@ -136,6 +136,7 @@ }} let:dataItem let:hidden + let:overlapped cols={columnConfiguration} > { handleFillHeight(dataItem.id) }} + overlapped={overlapped !== undefined} /> @@ -193,10 +195,6 @@ {/if} diff --git a/frontend/src/lib/components/apps/svelte-grid/utils/item.ts b/frontend/src/lib/components/apps/svelte-grid/utils/item.ts index 1a587ba77c..8cb691d3e5 100644 --- a/frontend/src/lib/components/apps/svelte-grid/utils/item.ts +++ b/frontend/src/lib/components/apps/svelte-grid/utils/item.ts @@ -133,7 +133,12 @@ export function moveItem(active, items, cols) { const fixed = closeObj.find((value) => value[cols].fixed) // If found fixed, reset the active to its original position - if (fixed) return items + if (fixed) { + return { + items: items, + overlap: true + } + } // Update items items = updateItem(items, active, item, cols) @@ -171,7 +176,10 @@ export function moveItem(active, items, cols) { }) // Return result - return tempItems + return { + items: tempItems, + overlap: false + } } // Helper function @@ -181,7 +189,7 @@ export function normalize(items, col) { result.forEach((value) => { const getItem = value[col] if (!getItem.static) { - result = moveItem(getItem, result, col) + result = moveItem(getItem, result, col).items } }) From 8a3367f70d1fbb49c5909688247fc471cfa786f1 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 29 Aug 2024 11:20:04 +0200 Subject: [PATCH 037/200] nits anchor --- .../src/lib/components/apps/editor/SubGridEditor.svelte | 2 +- .../lib/components/apps/editor/component/Component.svelte | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/components/apps/editor/SubGridEditor.svelte b/frontend/src/lib/components/apps/editor/SubGridEditor.svelte index 8c026d13a2..b1a6f282a8 100644 --- a/frontend/src/lib/components/apps/editor/SubGridEditor.svelte +++ b/frontend/src/lib/components/apps/editor/SubGridEditor.svelte @@ -92,7 +92,7 @@ ? `animate-border border-dashed border-2 min-h-full ${ isActive && !$selectedComponent?.includes(id) ? 'border-orange-600' - : 'border-gray-600' + : 'dark:border-gray-600 border-gray-400' }` : ''} > diff --git a/frontend/src/lib/components/apps/editor/component/Component.svelte b/frontend/src/lib/components/apps/editor/component/Component.svelte index 4d52722bc2..fdb2cee4be 100644 --- a/frontend/src/lib/components/apps/editor/component/Component.svelte +++ b/frontend/src/lib/components/apps/editor/component/Component.svelte @@ -8,7 +8,6 @@ import type { AppEditorContext, AppViewerContext } from '../../types' import ComponentHeader from '../ComponentHeader.svelte' import type { AppComponent } from './components' - import { Lock } from 'lucide-svelte' import AppMultiSelect from '../../components/inputs/AppMultiSelect.svelte' import AppMultiSelectV2 from '../../components/inputs/AppMultiSelectV2.svelte' @@ -81,6 +80,7 @@ import AppDisplayComponentByJobId from '../../components/display/AppRecomputeAll.svelte' import AppRecomputeAll from '../../components/display/AppRecomputeAll.svelte' import AppUserResource from '../../components/inputs/AppUserResource.svelte' + import { Anchor } from 'lucide-svelte' export let component: AppComponent export let selected: boolean @@ -147,8 +147,8 @@ )} >
- -
Locked. The component cannot be moved.
+ +
Anchored: The component cannot be moved
{/if} From af10b5064035d55c51fa08c99e6bb82b9e66766c Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Thu, 29 Aug 2024 12:41:53 +0200 Subject: [PATCH 038/200] update instance user name (#4294) * feat(frontend): update instance user name * feat(frontend): edit instance user name * feat(frontend): improve UX --------- Co-authored-by: Ruben Fiszel --- .../components/ChangeInstanceUsername.svelte | 136 ++---------------- .../ChangeInstanceUsernameInner.svelte | 135 +++++++++++++++++ .../lib/components/InstanceNameEditor.svelte | 68 +++++++++ .../lib/components/SuperadminSettings.svelte | 38 +++-- 4 files changed, 239 insertions(+), 138 deletions(-) create mode 100644 frontend/src/lib/components/ChangeInstanceUsernameInner.svelte create mode 100644 frontend/src/lib/components/InstanceNameEditor.svelte diff --git a/frontend/src/lib/components/ChangeInstanceUsername.svelte b/frontend/src/lib/components/ChangeInstanceUsername.svelte index 89e7f470a1..e4f696bfd0 100644 --- a/frontend/src/lib/components/ChangeInstanceUsername.svelte +++ b/frontend/src/lib/components/ChangeInstanceUsername.svelte @@ -1,75 +1,11 @@ {isConflict ? 'Fix username conflict' : 'Change username'} -
- {isConflict ? 'Fix username conflict' : 'Change username'} - - {isConflict ? 'Auto-generated instance username' : 'New username'} - - - {#if isConflict} - - Users are required to have an instance-wide username that is shared across all workspaces. - However, this user has different usernames in different workspaces. - - {#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0} -
-
- Workspaces requiring username modification: {usernameInfo.workspace_usernames - .filter((w) => w.username !== username) - .map((wu) => `${wu.workspace_id} (${wu.username})`) - .join(', ')} - {/if} -
- {/if} - - {#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0} - - {usernameInfo.workspace_usernames - .filter((w) => w.username !== username) - .map((wu) => `${wu.workspace_id}`) - .join(', ')} - - {/if} - - - This operation does not handle references in scripts, workflows and applications to scripts in - the workspace, and references in resources to variables. You will have to handle those - manually. -
-
- - -
+ close(null)} + on:renamed + />
diff --git a/frontend/src/lib/components/ChangeInstanceUsernameInner.svelte b/frontend/src/lib/components/ChangeInstanceUsernameInner.svelte new file mode 100644 index 0000000000..a321f4ac1d --- /dev/null +++ b/frontend/src/lib/components/ChangeInstanceUsernameInner.svelte @@ -0,0 +1,135 @@ + + +
+ {isConflict ? 'Fix username conflict' : 'Change username'} + + {isConflict ? 'Auto-generated instance username' : 'New username'} + + + {#if isConflict} + + Users are required to have an instance-wide username that is shared across all workspaces. + However, this user has different usernames in different workspaces. + + {#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0} +
+
+ Workspaces requiring username modification: {usernameInfo.workspace_usernames + .filter((w) => w.username !== username) + .map((wu) => `${wu.workspace_id} (${wu.username})`) + .join(', ')} + {/if} +
+ {/if} + + {#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0} + + {usernameInfo.workspace_usernames + .filter((w) => w.username !== username) + .map((wu) => `${wu.workspace_id}`) + .join(', ')} + + {/if} + + + This operation does not handle references in scripts, workflows and applications to scripts in + the workspace, and references in resources to variables. You will have to handle those manually. +
+
+ + +
diff --git a/frontend/src/lib/components/InstanceNameEditor.svelte b/frontend/src/lib/components/InstanceNameEditor.svelte new file mode 100644 index 0000000000..20f2993715 --- /dev/null +++ b/frontend/src/lib/components/InstanceNameEditor.svelte @@ -0,0 +1,68 @@ + + + + + + +
+ diff --git a/frontend/src/lib/components/SuperadminSettings.svelte b/frontend/src/lib/components/SuperadminSettings.svelte index d6b1d22755..104918b2eb 100644 --- a/frontend/src/lib/components/SuperadminSettings.svelte +++ b/frontend/src/lib/components/SuperadminSettings.svelte @@ -22,6 +22,7 @@ import ChangeInstanceUsername from './ChangeInstanceUsername.svelte' import Tooltip from './Tooltip.svelte' import { isCloudHosted } from '$lib/cloud' + import InstanceNameEditor from './InstanceNameEditor.svelte' let drawer: Drawer let filter = '' @@ -72,6 +73,21 @@ sendUserToast('Automatic username creation enabled') listUsers() } + + async function updateName(name: string | undefined, email: string) { + try { + await UserService.globalUserUpdate({ + email, + requestBody: { + name + } + }) + sendUserToast('User updated') + listUsers() + } catch (e) { + sendUserToast('Error updating user', true) + } + }
- {#if automateUsernameCreation && username} - { - listUsers() - }} - /> - {/if} + { + updateName(e.detail, email) + }} + on:renamed={() => { + listUsers() + }} + {automateUsernameCreation} + />
{/if} - {#if job.tag && !['deno', 'python3', 'flow', 'other', 'go', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bash', 'powershell', 'php', 'other', 'dependency'].includes(job.tag)} + {#if job.tag && !['deno', 'python3', 'flow', 'other', 'go', 'postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql', 'graphql', 'nativets', 'bash', 'powershell', 'php', 'rust', 'other', 'dependency'].includes(job.tag)}
Tag: {job.tag}
From aa6fd84079b6015d82d7603218b2c8cb7a156c40 Mon Sep 17 00:00:00 2001 From: HugoCasa Date: Fri, 30 Aug 2024 17:25:53 +0200 Subject: [PATCH 050/200] feat: min workers in worker group alert + zombie job critical alert (#4307) * feat: min workers in worker group alert + zombie job critical alert * updatee ee ref --- ...3a64b9e78c4beb423f04baef9a53fbf87e9f9.json | 14 ++++++ ...f408ff1ac92ed0f5d31a3ef6c58313e1f8671.json | 28 +++++++++++ ...c69b08c6a86116cbfd0ecad8f112f7f49d8d1.json | 26 +++++++++++ ...8b2ce70503935645973fb6a5b35ec47ad1c4c.json | 14 ++++++ ...7375a9a33671be8ef406427d90f67a98c9c9f.json | 14 ++++++ ...d9fdee37dd8df66974c8d33f58a88b1bca537.json | 12 +++++ ...a614a50fa5fd03c2d3b9a41bd85a7f156345e.json | 22 +++++++++ ...eec3da9216d4eee23d81fdf6ade95cb7aa1ef.json | 14 ++++++ ...96f78c2cfd42ed7d1ca6cfd35288b561120db.json | 28 +++++++++++ backend/ee-repo-ref.txt | 2 +- .../20240829143329_alert_center.down.sql | 3 ++ .../20240829143329_alert_center.up.sql | 16 +++++++ backend/src/monitor.rs | 30 ++++++++---- backend/windmill-common/src/ee.rs | 9 +++- backend/windmill-common/src/utils.rs | 35 ++++++++++++-- backend/windmill-queue/src/jobs.rs | 29 ++++++------ .../src/lib/components/WorkspaceGroup.svelte | 46 +++++++++++++++++++ .../src/lib/components/instanceSettings.ts | 4 +- 18 files changed, 316 insertions(+), 30 deletions(-) create mode 100644 backend/.sqlx/query-00ce4ed3ca0eac7cb6283b047353a64b9e78c4beb423f04baef9a53fbf87e9f9.json create mode 100644 backend/.sqlx/query-050fb876e10ad13654dbbde4532f408ff1ac92ed0f5d31a3ef6c58313e1f8671.json create mode 100644 backend/.sqlx/query-354f88b23d20f92c6b6d5bdd8d6c69b08c6a86116cbfd0ecad8f112f7f49d8d1.json create mode 100644 backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json create mode 100644 backend/.sqlx/query-4c0067c2135a259aea5cc2db60f7375a9a33671be8ef406427d90f67a98c9c9f.json create mode 100644 backend/.sqlx/query-7fa8fca5b5cdf147da0cf8ae5a0d9fdee37dd8df66974c8d33f58a88b1bca537.json create mode 100644 backend/.sqlx/query-8dd1de2aca8c6c9ffaddd2c41c3a614a50fa5fd03c2d3b9a41bd85a7f156345e.json create mode 100644 backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json create mode 100644 backend/.sqlx/query-c1ceb03e0eafd2e494c06cef1ec96f78c2cfd42ed7d1ca6cfd35288b561120db.json create mode 100644 backend/migrations/20240829143329_alert_center.down.sql create mode 100644 backend/migrations/20240829143329_alert_center.up.sql diff --git a/backend/.sqlx/query-00ce4ed3ca0eac7cb6283b047353a64b9e78c4beb423f04baef9a53fbf87e9f9.json b/backend/.sqlx/query-00ce4ed3ca0eac7cb6283b047353a64b9e78c4beb423f04baef9a53fbf87e9f9.json new file mode 100644 index 0000000000..e4909fc4da --- /dev/null +++ b/backend/.sqlx/query-00ce4ed3ca0eac7cb6283b047353a64b9e78c4beb423f04baef9a53fbf87e9f9.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO alerts (alert_type, message) VALUES ('recovered_critical_error', $1)", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "00ce4ed3ca0eac7cb6283b047353a64b9e78c4beb423f04baef9a53fbf87e9f9" +} diff --git a/backend/.sqlx/query-050fb876e10ad13654dbbde4532f408ff1ac92ed0f5d31a3ef6c58313e1f8671.json b/backend/.sqlx/query-050fb876e10ad13654dbbde4532f408ff1ac92ed0f5d31a3ef6c58313e1f8671.json new file mode 100644 index 0000000000..9b50ef2c69 --- /dev/null +++ b/backend/.sqlx/query-050fb876e10ad13654dbbde4532f408ff1ac92ed0f5d31a3ef6c58313e1f8671.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT healthy, created_at FROM healthchecks WHERE check_type = 'min_alive_workers_' || $1 ORDER BY created_at DESC LIMIT 1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "healthy", + "type_info": "Bool" + }, + { + "ordinal": 1, + "name": "created_at", + "type_info": "Timestamptz" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false, + false + ] + }, + "hash": "050fb876e10ad13654dbbde4532f408ff1ac92ed0f5d31a3ef6c58313e1f8671" +} diff --git a/backend/.sqlx/query-354f88b23d20f92c6b6d5bdd8d6c69b08c6a86116cbfd0ecad8f112f7f49d8d1.json b/backend/.sqlx/query-354f88b23d20f92c6b6d5bdd8d6c69b08c6a86116cbfd0ecad8f112f7f49d8d1.json new file mode 100644 index 0000000000..4b03b16262 --- /dev/null +++ b/backend/.sqlx/query-354f88b23d20f92c6b6d5bdd8d6c69b08c6a86116cbfd0ecad8f112f7f49d8d1.json @@ -0,0 +1,26 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT SUBSTRING(name, 9) as \"name!\", (config.config->'min_alive_workers_alert_threshold')::INT as \"threshold!\" \n FROM config \n WHERE name LIKE 'worker__%' AND config->'min_alive_workers_alert_threshold' IS NOT NULL", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "name!", + "type_info": "Text" + }, + { + "ordinal": 1, + "name": "threshold!", + "type_info": "Int4" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + null, + null + ] + }, + "hash": "354f88b23d20f92c6b6d5bdd8d6c69b08c6a86116cbfd0ecad8f112f7f49d8d1" +} diff --git a/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json b/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json new file mode 100644 index 0000000000..229893e0a6 --- /dev/null +++ b/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO healthchecks (check_type, healthy) \n VALUES ('min_alive_workers_' || $1, false)", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c" +} diff --git a/backend/.sqlx/query-4c0067c2135a259aea5cc2db60f7375a9a33671be8ef406427d90f67a98c9c9f.json b/backend/.sqlx/query-4c0067c2135a259aea5cc2db60f7375a9a33671be8ef406427d90f67a98c9c9f.json new file mode 100644 index 0000000000..32295ea1e1 --- /dev/null +++ b/backend/.sqlx/query-4c0067c2135a259aea5cc2db60f7375a9a33671be8ef406427d90f67a98c9c9f.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO alerts (alert_type, message) VALUES ('critical_error', $1)", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "4c0067c2135a259aea5cc2db60f7375a9a33671be8ef406427d90f67a98c9c9f" +} diff --git a/backend/.sqlx/query-7fa8fca5b5cdf147da0cf8ae5a0d9fdee37dd8df66974c8d33f58a88b1bca537.json b/backend/.sqlx/query-7fa8fca5b5cdf147da0cf8ae5a0d9fdee37dd8df66974c8d33f58a88b1bca537.json new file mode 100644 index 0000000000..e4aa1f4f24 --- /dev/null +++ b/backend/.sqlx/query-7fa8fca5b5cdf147da0cf8ae5a0d9fdee37dd8df66974c8d33f58a88b1bca537.json @@ -0,0 +1,12 @@ +{ + "db_name": "PostgreSQL", + "query": "DELETE FROM healthchecks WHERE check_type LIKE 'min_alive_workers_%' AND created_at < NOW() - INTERVAL '48 hours'", + "describe": { + "columns": [], + "parameters": { + "Left": [] + }, + "nullable": [] + }, + "hash": "7fa8fca5b5cdf147da0cf8ae5a0d9fdee37dd8df66974c8d33f58a88b1bca537" +} diff --git a/backend/.sqlx/query-8dd1de2aca8c6c9ffaddd2c41c3a614a50fa5fd03c2d3b9a41bd85a7f156345e.json b/backend/.sqlx/query-8dd1de2aca8c6c9ffaddd2c41c3a614a50fa5fd03c2d3b9a41bd85a7f156345e.json new file mode 100644 index 0000000000..c1a63e668f --- /dev/null +++ b/backend/.sqlx/query-8dd1de2aca8c6c9ffaddd2c41c3a614a50fa5fd03c2d3b9a41bd85a7f156345e.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT count(*) \n FROM worker_ping \n WHERE worker_group LIKE $1 AND ping_at > now() - INTERVAL '2 minutes'", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + null + ] + }, + "hash": "8dd1de2aca8c6c9ffaddd2c41c3a614a50fa5fd03c2d3b9a41bd85a7f156345e" +} diff --git a/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json b/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json new file mode 100644 index 0000000000..7ed6fbf4e5 --- /dev/null +++ b/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO healthchecks (check_type, healthy) VALUES ('min_alive_workers_' || $1, true)", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef" +} diff --git a/backend/.sqlx/query-c1ceb03e0eafd2e494c06cef1ec96f78c2cfd42ed7d1ca6cfd35288b561120db.json b/backend/.sqlx/query-c1ceb03e0eafd2e494c06cef1ec96f78c2cfd42ed7d1ca6cfd35288b561120db.json new file mode 100644 index 0000000000..d1a89a6ad6 --- /dev/null +++ b/backend/.sqlx/query-c1ceb03e0eafd2e494c06cef1ec96f78c2cfd42ed7d1ca6cfd35288b561120db.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT healthy, created_at FROM healthchecks WHERE check_type = 'min_alive_workers_' || $1 AND created_at > NOW() - INTERVAL '24 hours' ORDER BY created_at DESC", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "healthy", + "type_info": "Bool" + }, + { + "ordinal": 1, + "name": "created_at", + "type_info": "Timestamptz" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false, + false + ] + }, + "hash": "c1ceb03e0eafd2e494c06cef1ec96f78c2cfd42ed7d1ca6cfd35288b561120db" +} diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index ea41b65d15..1e92fcfbb5 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -27b5eece4d6b0a54e9caee0933d29a2f8dc92c57 \ No newline at end of file +b86b52e5d1ed2a67ee89c5924e333a28da8b76ca \ No newline at end of file diff --git a/backend/migrations/20240829143329_alert_center.down.sql b/backend/migrations/20240829143329_alert_center.down.sql new file mode 100644 index 0000000000..fe1cb273be --- /dev/null +++ b/backend/migrations/20240829143329_alert_center.down.sql @@ -0,0 +1,3 @@ +-- Add down migration script here +drop table alerts; +drop table healthchecks; \ No newline at end of file diff --git a/backend/migrations/20240829143329_alert_center.up.sql b/backend/migrations/20240829143329_alert_center.up.sql new file mode 100644 index 0000000000..7cf4f65ba7 --- /dev/null +++ b/backend/migrations/20240829143329_alert_center.up.sql @@ -0,0 +1,16 @@ +-- Add up migration script here +create table alerts ( + id serial PRIMARY KEY, + alert_type varchar(50) NOT NULL, + message text NOT NULL, + created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +create table healthchecks ( + id bigserial PRIMARY KEY, + check_type varchar(50) NOT NULL, + healthy boolean NOT NULL, + created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +create index healthchecks_check_type_created_at on healthchecks(check_type, created_at); diff --git a/backend/src/monitor.rs b/backend/src/monitor.rs index ad835c713b..6c4eec209e 100644 --- a/backend/src/monitor.rs +++ b/backend/src/monitor.rs @@ -21,6 +21,8 @@ use windmill_api::{ oauth2_ee::{build_oauth_clients, OAuthClient}, DEFAULT_BODY_LIMIT, IS_SECURE, OAUTH_CLIENTS, REQUEST_SIZE_LIMIT, SAML_METADATA, SCIM_TOKEN, }; +#[cfg(feature = "enterprise")] +use windmill_common::ee::worker_groups_alerts; use windmill_common::{ auth::JWT_SECRET, ee::CriticalErrorChannel, @@ -40,7 +42,7 @@ use windmill_common::{ oauth2::REQUIRE_PREEXISTING_USER_FOR_OAUTH, server::load_server_config, users::truncate_token, - utils::{now_from_db, rd_string}, + utils::{now_from_db, rd_string, report_critical_error}, worker::{ load_worker_config, make_pull_query, make_suspended_pull_query, reload_custom_tags_setting, DEFAULT_TAGS_PER_WORKSPACE, DEFAULT_TAGS_WORKSPACES, SERVER_CONFIG, WORKER_CONFIG, @@ -835,11 +837,19 @@ pub async fn monitor_db( } }; + let worker_groups_alerts_f = async { + #[cfg(feature = "enterprise")] + if server_mode { + worker_groups_alerts(&db).await; + } + }; + join!( expired_items_f, zombie_jobs_f, expose_queue_metrics_f, - verify_license_key_f + verify_license_key_f, + worker_groups_alerts_f ); } @@ -1051,12 +1061,12 @@ async fn handle_zombie_jobs QUEUE_ZOMBIE_RESTART_COUNT.inc_by(restarted.len() as _); } for r in restarted { - tracing::error!( + let error_message = format!( "Zombie job detected, restarting it: {} {} {:?}", - r.id, - r.workspace_id, - r.last_ping + r.id, r.workspace_id, r.last_ping ); + tracing::error!(error_message); + report_critical_error(error_message, db.clone()).await; } } @@ -1159,11 +1169,12 @@ async fn handle_zombie_flows( .get(0) .is_some_and(|x| matches!(x, FlowStatusModule::WaitingForPriorSteps { .. })) }) { - tracing::error!( + let error_message = format!( "Zombie flow detected: {} in workspace {}. It hasn't started yet, restarting it.", - flow.id, - flow.workspace_id + flow.id, flow.workspace_id ); + tracing::error!(error_message); + report_critical_error(error_message, db.clone()).await; // if the flow hasn't started and is a zombie, we can simply restart it sqlx::query!( "UPDATE queue SET running = false, started_at = null WHERE id = $1 AND canceled = false", @@ -1183,6 +1194,7 @@ async fn handle_zombie_flows( format!("Flow {id} was cancelled because it") } ); + report_critical_error(reason.clone(), db.clone()).await; cancel_zombie_flow_job(db, flow, &rsmq, reason).await?; } } diff --git a/backend/windmill-common/src/ee.rs b/backend/windmill-common/src/ee.rs index fb2f0a0837..14355b0157 100644 --- a/backend/windmill-common/src/ee.rs +++ b/backend/windmill-common/src/ee.rs @@ -1,3 +1,4 @@ +use crate::db::DB; use crate::ee::LicensePlan::Community; #[cfg(feature = "enterprise")] use crate::error; @@ -26,7 +27,10 @@ pub async fn get_license_plan() -> LicensePlan { #[serde(untagged)] pub enum CriticalErrorChannel {} -pub async fn trigger_critical_error_channels(_error_message: String) {} +#[cfg(feature = "enterprise")] +pub async fn send_critical_error(_error_message: String) {} +#[cfg(feature = "enterprise")] +pub async fn send_recovered_critical_error(_error_message: String) {} #[cfg(feature = "enterprise")] pub async fn schedule_key_renewal(_http_client: &reqwest::Client, _db: &crate::db::DB) -> () { @@ -51,3 +55,6 @@ pub async fn create_customer_portal_session( // Implementation is not open source Ok("".to_string()) } + +#[cfg(feature = "enterprise")] +pub async fn worker_groups_alerts(_db: &DB) {} diff --git a/backend/windmill-common/src/utils.rs b/backend/windmill-common/src/utils.rs index 63cece0fe2..fd14fc0fb0 100644 --- a/backend/windmill-common/src/utils.rs +++ b/backend/windmill-common/src/utils.rs @@ -6,9 +6,9 @@ * LICENSE-AGPL for a copy of the license. */ -#[cfg(feature = "enterprise")] -use crate::ee::trigger_critical_error_channels; use crate::ee::LICENSE_KEY_ID; +#[cfg(feature = "enterprise")] +use crate::ee::{send_critical_error, send_recovered_critical_error}; use crate::error::{to_anyhow, Error, Result}; use crate::global_settings::UNIQUE_ID_SETTING; use crate::server::Smtp; @@ -245,8 +245,35 @@ pub async fn send_email( return Ok(()); } -pub async fn report_critical_error(error_message: String) -> () { +pub async fn report_critical_error(error_message: String, _db: DB) -> () { tracing::error!("CRITICAL ERROR: {error_message}"); + + if let Err(err) = sqlx::query!( + "INSERT INTO alerts (alert_type, message) VALUES ('critical_error', $1)", + error_message + ) + .execute(&_db) + .await + { + tracing::error!("Failed to save critical error to database: {}", err); + } + #[cfg(feature = "enterprise")] - trigger_critical_error_channels(error_message).await; + send_critical_error(error_message).await; +} + +pub async fn report_recovered_critical_error(message: String, _db: DB) -> () { + tracing::info!("RECOVERED CRITICAL ERROR: {message}"); + + if let Err(err) = sqlx::query!( + "INSERT INTO alerts (alert_type, message) VALUES ('recovered_critical_error', $1)", + message + ) + .execute(&_db) + .await + { + tracing::error!("Failed to save critical error to database: {}", err); + } + #[cfg(feature = "enterprise")] + send_recovered_critical_error(message).await; } diff --git a/backend/windmill-queue/src/jobs.rs b/backend/windmill-queue/src/jobs.rs index ad43fb6455..3bf0c4c9ec 100644 --- a/backend/windmill-queue/src/jobs.rs +++ b/backend/windmill-queue/src/jobs.rs @@ -886,16 +886,19 @@ pub async fn add_completed_job< if queued_job.email == ERROR_HANDLER_USER_EMAIL { let base_url = BASE_URL.read().await; let w_id = &queued_job.workspace_id; - report_critical_error(format!( - "Workspace error handler job failed ({base_url}/run/{}?workspace={w_id}){}", - queued_job.id, - queued_job - .parent_job - .map(|id| format!( - " trying to handle failed job ({base_url}/run/{id}?workspace={w_id})" - )) - .unwrap_or("".to_string()), - )) + report_critical_error( + format!( + "Workspace error handler job failed ({base_url}/run/{}?workspace={w_id}){}", + queued_job.id, + queued_job + .parent_job + .map(|id| format!( + " trying to handle failed job ({base_url}/run/{id}?workspace={w_id})" + )) + .unwrap_or("".to_string()), + ), + db.clone(), + ) .await; } else if queued_job.email == SCHEDULE_ERROR_HANDLER_USER_EMAIL { let base_url = BASE_URL.read().await; @@ -961,7 +964,7 @@ pub async fn add_completed_job< "Could not push workspace error handler for failed job ({base_url}/run/{}?workspace={w_id}): {}", queued_job.id, err - )) + ), db.clone()) .await; } } @@ -1143,10 +1146,10 @@ pub async fn report_error_to_workspace_handler_or_critical_side_channel< queued_job.id, err ); - report_critical_error(error_message).await; + report_critical_error(error_message, db.clone()).await; } } else { - report_critical_error(error_message).await; + report_critical_error(error_message, db.clone()).await; } } diff --git a/frontend/src/lib/components/WorkspaceGroup.svelte b/frontend/src/lib/components/WorkspaceGroup.svelte index 83d2c24bfe..7ada518172 100644 --- a/frontend/src/lib/components/WorkspaceGroup.svelte +++ b/frontend/src/lib/components/WorkspaceGroup.svelte @@ -17,6 +17,7 @@ import Label from './Label.svelte' import AutoComplete from 'simple-svelte-autocomplete' import YAML from 'yaml' + import Toggle from './Toggle.svelte' export let name: string export let config: @@ -29,6 +30,7 @@ init_bash?: string additional_python_paths?: string[] pip_local_dependencies?: string[] + min_alive_workers_alert_threshold?: number } export let activeWorkers: number export let customTags: string[] | undefined @@ -62,6 +64,7 @@ env_vars_allowlist?: string[] additional_python_paths?: string[] pip_local_dependencies?: string[] + min_alive_workers_alert_threshold?: number } = {} function loadNConfig() { @@ -465,6 +468,42 @@ {/if} {/if} + {#if nconfig !== undefined} +
+
+ { + if (nconfig !== undefined) { + nconfig.min_alive_workers_alert_threshold = ev.detail ? 1 : undefined + dirty = true + } + }} + disabled{!$enterpriseLicense} + /> + {#if nconfig.min_alive_workers_alert_threshold !== undefined} +
+
+

Triggered when number of workers in group is lower than

+ { + dirty = true + }} + /> +
+
+ {/if} +
+ {/if} {:else if selected == 'dedicated'} {#if nconfig?.dedicated_worker != undefined} { + if ( + nconfig?.min_alive_workers_alert_threshold && + nconfig?.min_alive_workers_alert_threshold < 1 + ) { + sendUserToast('Minimum alive workers alert threshold must be at least 1', true) + return + } customEnvVars.forEach((envvar) => { if ( nconfig.env_vars_static !== undefined && diff --git a/frontend/src/lib/components/instanceSettings.ts b/frontend/src/lib/components/instanceSettings.ts index b5678b6b1f..13bf6495ed 100644 --- a/frontend/src/lib/components/instanceSettings.ts +++ b/frontend/src/lib/components/instanceSettings.ts @@ -120,9 +120,9 @@ export const settings: Record = { ee_only: '' }, { - label: 'Critical Error Channels', + label: 'Critical Alert Channels', description: - 'Channels to send critical errors to. SMTP must be configured for the email channel.', + 'Channels to send critical alerts to. SMTP must be configured for the email channel.', key: 'critical_error_channels', fieldType: 'critical_error_channels', storage: 'setting', From d7e7c6e2d4c44efce711951ad8e631cf2dc82986 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 30 Aug 2024 17:47:06 +0200 Subject: [PATCH 051/200] chore(main): release 1.388.0 (#4308) * chore(main): release 1.388.0 * Apply automatic changes --------- Co-authored-by: rubenfiszel --- CHANGELOG.md | 8 ++++ backend/Cargo.lock | 44 +++++++++---------- backend/Cargo.toml | 4 +- backend/windmill-api/openapi.yaml | 2 +- benchmarks/lib.ts | 2 +- cli/main.ts | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- lsp/Pipfile | 4 +- openflow.openapi.yaml | 2 +- .../WindmillClient/WindmillClient.psd1 | 2 +- python-client/wmill/pyproject.toml | 2 +- python-client/wmill_pg/pyproject.toml | 2 +- typescript-client/jsr.json | 2 +- typescript-client/package.json | 2 +- version.txt | 2 +- 16 files changed, 47 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6058997297..23f3e869f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [1.388.0](https://github.com/windmill-labs/windmill/compare/v1.387.1...v1.388.0) (2024-08-30) + + +### Features + +* add rust ([#4253](https://github.com/windmill-labs/windmill/issues/4253)) ([a2beed9](https://github.com/windmill-labs/windmill/commit/a2beed9d7335856bc956ff34343cdaf5a9b8d281)) +* min workers in worker group alert + zombie job critical alert ([#4307](https://github.com/windmill-labs/windmill/issues/4307)) ([aa6fd84](https://github.com/windmill-labs/windmill/commit/aa6fd84079b6015d82d7603218b2c8cb7a156c40)) + ## [1.387.1](https://github.com/windmill-labs/windmill/compare/v1.387.0...v1.387.1) (2024-08-30) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 7edc24f13a..6337f452ae 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -10468,7 +10468,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "axum", @@ -10509,7 +10509,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "argon2", @@ -10593,7 +10593,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.387.1" +version = "1.388.0" dependencies = [ "base64 0.21.7", "chrono", @@ -10611,7 +10611,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.387.1" +version = "1.388.0" dependencies = [ "chrono", "serde", @@ -10624,7 +10624,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "async-stream", @@ -10666,7 +10666,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.387.1" +version = "1.388.0" dependencies = [ "regex", "rsmq_async", @@ -10681,7 +10681,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "bytes", @@ -10702,7 +10702,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.387.1" +version = "1.388.0" dependencies = [ "convert_case 0.6.0", "serde", @@ -10711,7 +10711,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "lazy_static", @@ -10723,7 +10723,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "gosyn", @@ -10735,7 +10735,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "lazy_static", @@ -10747,7 +10747,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10758,7 +10758,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10769,7 +10769,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "async-recursion", @@ -10787,11 +10787,11 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.387.0" +version = "1.388.0" dependencies = [ "anyhow", "convert_case 0.6.0", - "itertools 0.10.5", + "itertools 0.13.0", "lazy_static", "pulldown-cmark", "quote", @@ -10804,7 +10804,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "lazy_static", @@ -10816,7 +10816,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "lazy_static", @@ -10834,7 +10834,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -10854,7 +10854,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "async-recursion", @@ -10887,7 +10887,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.387.1" +version = "1.388.0" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -10897,7 +10897,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.387.1" +version = "1.388.0" dependencies = [ "anyhow", "async-recursion", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index e4b1009022..0fff054078 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.387.1" +version = "1.388.0" authors.workspace = true edition.workspace = true @@ -26,7 +26,7 @@ members = [ ] [workspace.package] -version = "1.387.1" +version = "1.388.0" authors = ["Ruben Fiszel "] edition = "2021" diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index ba2a259774..2e275e4f40 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.387.1 + version: 1.388.0 title: Windmill API contact: diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index 18757c3d66..c194e8c5f2 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.387.1"; +export const VERSION = "v1.388.0"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/main.ts b/cli/main.ts index cc3265bfbe..566aae402e 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -34,7 +34,7 @@ addEventListener("error", (event) => { } }); -export const VERSION = "v1.387.1"; +export const VERSION = "v1.388.0"; let command: any = new Command() .name("wmill") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ae6f7ea75f..46b5693114 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "windmill-components", - "version": "1.387.1", + "version": "1.388.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.387.1", + "version": "1.388.0", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", diff --git a/frontend/package.json b/frontend/package.json index d1e3883252..800c69c313 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.387.1", + "version": "1.388.0", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/lsp/Pipfile b/lsp/Pipfile index 77e187367e..97c13c4a5f 100644 --- a/lsp/Pipfile +++ b/lsp/Pipfile @@ -4,8 +4,8 @@ verify_ssl = true name = "pypi" [packages] -wmill = ">=1.387.1" -wmill_pg = ">=1.387.1" +wmill = ">=1.388.0" +wmill_pg = ">=1.388.0" sendgrid = "*" mysql-connector-python = "*" pymongo = "*" diff --git a/openflow.openapi.yaml b/openflow.openapi.yaml index cbb475c386..92f058a8ee 100644 --- a/openflow.openapi.yaml +++ b/openflow.openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.387.1 + version: 1.388.0 title: OpenFlow Spec contact: name: Ruben Fiszel diff --git a/powershell-client/WindmillClient/WindmillClient.psd1 b/powershell-client/WindmillClient/WindmillClient.psd1 index 23b8d135c2..a30c99644e 100644 --- a/powershell-client/WindmillClient/WindmillClient.psd1 +++ b/powershell-client/WindmillClient/WindmillClient.psd1 @@ -12,7 +12,7 @@ RootModule = 'WindmillClient.psm1' # Version number of this module. -ModuleVersion = '1.387.1' +ModuleVersion = '1.388.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/python-client/wmill/pyproject.toml b/python-client/wmill/pyproject.toml index 4826142137..ee9ccd5b2a 100644 --- a/python-client/wmill/pyproject.toml +++ b/python-client/wmill/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill" -version = "1.387.1" +version = "1.388.0" description = "A client library for accessing Windmill server wrapping the Windmill client API" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/python-client/wmill_pg/pyproject.toml b/python-client/wmill_pg/pyproject.toml index cfc1c12308..15a9b333bb 100644 --- a/python-client/wmill_pg/pyproject.toml +++ b/python-client/wmill_pg/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill-pg" -version = "1.387.1" +version = "1.388.0" description = "An extension client for the wmill client library focused on pg" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json index 8841d9ec86..4818598cd1 100644 --- a/typescript-client/jsr.json +++ b/typescript-client/jsr.json @@ -1,6 +1,6 @@ { "name": "@windmill/windmill", - "version": "1.387.1", + "version": "1.388.0", "exports": "./src/index.ts", "publish": { "exclude": ["!src", "./s3Types.ts", "./client.ts"] diff --git a/typescript-client/package.json b/typescript-client/package.json index 21c453f245..b5bb05c125 100644 --- a/typescript-client/package.json +++ b/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "windmill-client", "description": "Windmill SDK client for browsers and Node.js", - "version": "1.387.1", + "version": "1.388.0", "author": "Ruben Fiszel", "license": "Apache 2.0", "devDependencies": { diff --git a/version.txt b/version.txt index 982d52764a..7be5dec806 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.387.1 +1.388.0 From 03ec37a9561a056c11614c00c1ec789b15121c2e Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 30 Aug 2024 23:16:27 +0200 Subject: [PATCH 052/200] add rust in list of languages --- frontend/src/lib/scripts.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/scripts.ts b/frontend/src/lib/scripts.ts index c46fc7ae9c..fd0cdef51f 100644 --- a/frontend/src/lib/scripts.ts +++ b/frontend/src/lib/scripts.ts @@ -113,16 +113,21 @@ const scriptLanguagesArray: [SupportedLanguage | 'docker' | 'bunnative', string] ['powershell', 'PowerShell'], ['php', 'PHP'], ['rust', 'Rust'], - ['docker', 'Docker'], + ['docker', 'Docker'] ] export function processLangs(selected: string | undefined, langs: string[]): string[] { if (selected === 'nativets') { return langs } else { let ls = langs.filter((lang) => lang !== 'nativets') - if (!ls.includes('bunnative')) { - ls.push('bunnative') - } + + //those languages are newer and may not be in the saved list + let nl = ['bunnative', 'rust'] + nl.forEach((lang) => { + if (!ls.includes(lang)) { + ls.push(lang) + } + }) return ls } } From 8e30928a78c20daef81bc4f98487ab601ecc9b58 Mon Sep 17 00:00:00 2001 From: HugoCasa Date: Sat, 31 Aug 2024 13:27:59 +0200 Subject: [PATCH 053/200] fix: prevent duplicate worker alerts (#4309) --- ...8b2ce70503935645973fb6a5b35ec47ad1c4c.json | 14 ------------ ...55b21bbc487b80bda7fd6250ac12e93938577.json | 22 +++++++++++++++++++ ...fb1d462d5c796f08c7481c42154f9bfacf388.json | 22 +++++++++++++++++++ ...eec3da9216d4eee23d81fdf6ade95cb7aa1ef.json | 14 ------------ backend/ee-repo-ref.txt | 2 +- 5 files changed, 45 insertions(+), 29 deletions(-) delete mode 100644 backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json create mode 100644 backend/.sqlx/query-4cfa57b2a836242d55071ef237855b21bbc487b80bda7fd6250ac12e93938577.json create mode 100644 backend/.sqlx/query-5f22a7c9170f035779782591b4bfb1d462d5c796f08c7481c42154f9bfacf388.json delete mode 100644 backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json diff --git a/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json b/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json deleted file mode 100644 index 229893e0a6..0000000000 --- a/backend/.sqlx/query-3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO healthchecks (check_type, healthy) \n VALUES ('min_alive_workers_' || $1, false)", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [] - }, - "hash": "3aa1ca29c751f13ea1249c7d43c8b2ce70503935645973fb6a5b35ec47ad1c4c" -} diff --git a/backend/.sqlx/query-4cfa57b2a836242d55071ef237855b21bbc487b80bda7fd6250ac12e93938577.json b/backend/.sqlx/query-4cfa57b2a836242d55071ef237855b21bbc487b80bda7fd6250ac12e93938577.json new file mode 100644 index 0000000000..5ac1cd561e --- /dev/null +++ b/backend/.sqlx/query-4cfa57b2a836242d55071ef237855b21bbc487b80bda7fd6250ac12e93938577.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO healthchecks (check_type, healthy) \n SELECT 'min_alive_workers_' || $1, true \n WHERE NOT EXISTS (\n SELECT 1 FROM healthchecks \n WHERE check_type = 'min_alive_workers_' || $1 AND created_at > NOW() - INTERVAL '2 minutes'\n )\n RETURNING id", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "4cfa57b2a836242d55071ef237855b21bbc487b80bda7fd6250ac12e93938577" +} diff --git a/backend/.sqlx/query-5f22a7c9170f035779782591b4bfb1d462d5c796f08c7481c42154f9bfacf388.json b/backend/.sqlx/query-5f22a7c9170f035779782591b4bfb1d462d5c796f08c7481c42154f9bfacf388.json new file mode 100644 index 0000000000..1aea7e585c --- /dev/null +++ b/backend/.sqlx/query-5f22a7c9170f035779782591b4bfb1d462d5c796f08c7481c42154f9bfacf388.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO healthchecks (check_type, healthy) \n SELECT 'min_alive_workers_' || $1, false\n WHERE NOT EXISTS (\n SELECT 1 FROM healthchecks \n WHERE check_type = 'min_alive_workers_' || $1 AND created_at > NOW() - INTERVAL '2 minutes'\n )\n RETURNING id", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "5f22a7c9170f035779782591b4bfb1d462d5c796f08c7481c42154f9bfacf388" +} diff --git a/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json b/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json deleted file mode 100644 index 7ed6fbf4e5..0000000000 --- a/backend/.sqlx/query-b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO healthchecks (check_type, healthy) VALUES ('min_alive_workers_' || $1, true)", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [] - }, - "hash": "b140388b2e31d15ab4b3a348b6aeec3da9216d4eee23d81fdf6ade95cb7aa1ef" -} diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 1e92fcfbb5..0e2a319ed7 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -b86b52e5d1ed2a67ee89c5924e333a28da8b76ca \ No newline at end of file +04a34e95a377afdc45cf4f354d5009f02260f3b1 \ No newline at end of file From 2fe48df720b102255832dc6438d5d64f3443207a Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sat, 31 Aug 2024 14:57:35 +0200 Subject: [PATCH 054/200] feat: service logs (#4244) --- ...207684c52d8571b3507f4877c2cc151ff18b9.json | 20 + ...8cce4a406b74c9a8c8590a3bae323d59d046a.json | 14 + ...4ca60cbf562e6f6a371d5f9a9943fb30254c.json} | 4 +- ...f2062c36ee5dab3d4894ad4b2aa8b2f5a0db9.json | 23 + backend/Cargo.lock | 169 ++++-- backend/Cargo.toml | 4 +- .../20240613150524_add_job_perms.down.sql | 1 + .../20240815085729_add_logfile.down.sql | 4 + .../20240815085729_add_logfile.up.sql | 16 + backend/src/main.rs | 18 +- backend/src/monitor.rs | 202 ++++++- backend/tests/worker.rs | 4 +- backend/windmill-api/openapi.yaml | 78 ++- backend/windmill-api/src/jobs.rs | 9 +- backend/windmill-api/src/lib.rs | 2 + backend/windmill-api/src/service_logs.rs | 139 +++++ backend/windmill-api/src/utils.rs | 9 + backend/windmill-common/Cargo.toml | 2 + backend/windmill-common/src/tracing_init.rs | 106 +++- backend/windmill-common/src/utils.rs | 20 + .../windmill-worker/src/worker_lockfiles.rs | 2 +- frontend/package-lock.json | 9 +- frontend/package.json | 2 +- frontend/src/lib/components/LogViewer.svelte | 66 ++- .../lib/components/QueueMetricsDrawer.svelte | 275 +--------- .../components/QueueMetricsDrawerInner.svelte | 265 ++++++++++ .../lib/components/ServiceLogsInner.svelte | 495 ++++++++++++++++++ .../src/lib/components/WorkspaceGroup.svelte | 2 +- .../table/AppAggridExplorerTable.svelte | 2 +- .../components/common/button/Button.svelte | 2 +- .../calendarPicker/CalendarPicker.svelte | 8 +- .../common/drawer/ConditionalPortal.svelte | 3 +- .../lib/components/common/popup/Popup.svelte | 3 +- .../components/runs/ManuelDatePicker.svelte | 29 +- .../search/GlobalSearchModal.svelte | 57 +- .../(root)/(logged)/workers/+page.svelte | 4 +- 36 files changed, 1636 insertions(+), 432 deletions(-) create mode 100644 backend/.sqlx/query-5c54f145e94dac117de02a94adf207684c52d8571b3507f4877c2cc151ff18b9.json create mode 100644 backend/.sqlx/query-845120388af12c2b2f57fedf95c8cce4a406b74c9a8c8590a3bae323d59d046a.json rename backend/.sqlx/{query-e87c317550af671e4b65752a9c0b659cedf430fb7242faee4379b4a13e5fd763.json => query-958ed17dafffdd37e636ccd244dc4ca60cbf562e6f6a371d5f9a9943fb30254c.json} (69%) create mode 100644 backend/.sqlx/query-dee32ce9c4010ae407b4d1ba2ecf2062c36ee5dab3d4894ad4b2aa8b2f5a0db9.json create mode 100644 backend/migrations/20240815085729_add_logfile.down.sql create mode 100644 backend/migrations/20240815085729_add_logfile.up.sql create mode 100644 backend/windmill-api/src/service_logs.rs create mode 100644 frontend/src/lib/components/QueueMetricsDrawerInner.svelte create mode 100644 frontend/src/lib/components/ServiceLogsInner.svelte diff --git a/backend/.sqlx/query-5c54f145e94dac117de02a94adf207684c52d8571b3507f4877c2cc151ff18b9.json b/backend/.sqlx/query-5c54f145e94dac117de02a94adf207684c52d8571b3507f4877c2cc151ff18b9.json new file mode 100644 index 0000000000..642f4a9592 --- /dev/null +++ b/backend/.sqlx/query-5c54f145e94dac117de02a94adf207684c52d8571b3507f4877c2cc151ff18b9.json @@ -0,0 +1,20 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO log_file (hostname, mode, worker_group, log_ts, file_path, ok_lines, err_lines) VALUES ($1, $2::text::LOG_MODE, $3, $4, $5, $6, $7)", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text", + "Varchar", + "Timestamp", + "Varchar", + "Int8", + "Int8" + ] + }, + "nullable": [] + }, + "hash": "5c54f145e94dac117de02a94adf207684c52d8571b3507f4877c2cc151ff18b9" +} diff --git a/backend/.sqlx/query-845120388af12c2b2f57fedf95c8cce4a406b74c9a8c8590a3bae323d59d046a.json b/backend/.sqlx/query-845120388af12c2b2f57fedf95c8cce4a406b74c9a8c8590a3bae323d59d046a.json new file mode 100644 index 0000000000..afede37f44 --- /dev/null +++ b/backend/.sqlx/query-845120388af12c2b2f57fedf95c8cce4a406b74c9a8c8590a3bae323d59d046a.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "DELETE FROM log_file WHERE log_ts <= now() - ($1::bigint::text || ' s')::interval ", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [] + }, + "hash": "845120388af12c2b2f57fedf95c8cce4a406b74c9a8c8590a3bae323d59d046a" +} diff --git a/backend/.sqlx/query-e87c317550af671e4b65752a9c0b659cedf430fb7242faee4379b4a13e5fd763.json b/backend/.sqlx/query-958ed17dafffdd37e636ccd244dc4ca60cbf562e6f6a371d5f9a9943fb30254c.json similarity index 69% rename from backend/.sqlx/query-e87c317550af671e4b65752a9c0b659cedf430fb7242faee4379b4a13e5fd763.json rename to backend/.sqlx/query-958ed17dafffdd37e636ccd244dc4ca60cbf562e6f6a371d5f9a9943fb30254c.json index 83ae3520d7..31501b4094 100644 --- a/backend/.sqlx/query-e87c317550af671e4b65752a9c0b659cedf430fb7242faee4379b4a13e5fd763.json +++ b/backend/.sqlx/query-958ed17dafffdd37e636ccd244dc4ca60cbf562e6f6a371d5f9a9943fb30254c.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO dependency_map (workspace_id, importer_path, importer_kind, imported_path, importer_node_id)\n VALUES ($1, $2, $4::text::IMPORTER_KIND, $3, $5)", + "query": "INSERT INTO dependency_map (workspace_id, importer_path, importer_kind, imported_path, importer_node_id)\n VALUES ($1, $2, $4::text::IMPORTER_KIND, $3, $5) ON CONFLICT DO NOTHING", "describe": { "columns": [], "parameters": { @@ -14,5 +14,5 @@ }, "nullable": [] }, - "hash": "e87c317550af671e4b65752a9c0b659cedf430fb7242faee4379b4a13e5fd763" + "hash": "958ed17dafffdd37e636ccd244dc4ca60cbf562e6f6a371d5f9a9943fb30254c" } diff --git a/backend/.sqlx/query-dee32ce9c4010ae407b4d1ba2ecf2062c36ee5dab3d4894ad4b2aa8b2f5a0db9.json b/backend/.sqlx/query-dee32ce9c4010ae407b4d1ba2ecf2062c36ee5dab3d4894ad4b2aa8b2f5a0db9.json new file mode 100644 index 0000000000..bb8d339e55 --- /dev/null +++ b/backend/.sqlx/query-dee32ce9c4010ae407b4d1ba2ecf2062c36ee5dab3d4894ad4b2aa8b2f5a0db9.json @@ -0,0 +1,23 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT EXISTS(SELECT 1 FROM log_file WHERE hostname = $1 AND log_ts = $2)", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "exists", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Text", + "Timestamp" + ] + }, + "nullable": [ + null + ] + }, + "hash": "dee32ce9c4010ae407b4d1ba2ecf2062c36ee5dab3d4894ad4b2aa8b2f5a0db9" +} diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 6337f452ae..d4c9c16960 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -588,7 +588,7 @@ dependencies = [ "futures-lite 2.3.0", "parking", "polling 3.7.3", - "rustix 0.38.35", + "rustix 0.38.34", "slab", "tracing", "windows-sys 0.59.0", @@ -1079,7 +1079,7 @@ dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "tracing", ] @@ -1112,7 +1112,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 1.0.1", "tokio", - "tower 0.4.13", + "tower", "tower-layer", "tower-service", "tracing", @@ -1363,7 +1363,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -1508,9 +1508,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.17.1" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" +checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" dependencies = [ "bytemuck_derive", ] @@ -1914,9 +1914,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -2145,7 +2145,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "subtle", "zeroize", ] @@ -2683,14 +2683,14 @@ dependencies = [ "hyper-util", "ipnet", "percent-encoding", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.6", "serde", "serde_json", "tokio", "tokio-rustls 0.26.0", "tokio-socks", "tokio-util", - "tower 0.4.13", + "tower", "tower-http", "tower-service", ] @@ -2800,7 +2800,7 @@ dependencies = [ "rustls 0.23.12", "rustls-pemfile 2.1.3", "rustls-tokio-stream", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.6", "serde", "tokio", "webpki-roots 0.26.3", @@ -2926,7 +2926,7 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "syn 2.0.76", ] @@ -3311,9 +3311,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" dependencies = [ "cfg-if", "libc", @@ -3334,7 +3334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8add37afff2d4ffa83bc748a70b4b1370984f6980768554182424ef71447c35f" dependencies = [ "bitflags 1.3.2", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -3464,7 +3464,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7e180ac76c23b45e767bd7ae9579bc0bb458618c4bc71835926e098e61d15f8" dependencies = [ - "rustix 0.38.35", + "rustix 0.38.34", "windows-sys 0.52.0", ] @@ -4310,7 +4310,7 @@ dependencies = [ "pin-project-lite", "socket2 0.5.7", "tokio", - "tower 0.4.13", + "tower", "tower-service", "tracing", ] @@ -6052,7 +6052,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.35", + "rustix 0.38.34", "tracing", "windows-sys 0.59.0", ] @@ -6163,11 +6163,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.22.20", + "toml_edit 0.21.1", ] [[package]] @@ -7100,9 +7100,9 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver 1.0.23", ] @@ -7136,9 +7136,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.6.0", "errno", @@ -7169,7 +7169,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] @@ -7248,9 +7248,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -8270,15 +8270,15 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +checksum = "95a5daa25ea337c85ed954c0496e3bdd2c7308cc3b24cf7b50d04876654c579f" dependencies = [ "cc", "cfg-if", "libc", "psm", - "windows-sys 0.59.0", + "windows-sys 0.36.1", ] [[package]] @@ -9094,7 +9094,7 @@ dependencies = [ "cfg-if", "fastrand 2.1.1", "once_cell", - "rustix 0.38.35", + "rustix 0.38.34", "windows-sys 0.59.0", ] @@ -9515,6 +9515,17 @@ dependencies = [ "winnow 0.5.40", ] +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.4.0", + "toml_datetime", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.20" @@ -9557,16 +9568,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b837f86b25d7c0d7988f00a54e74739be6477f2aac6201b8f429a7569991b7" -dependencies = [ - "tower-layer", - "tower-service", -] - [[package]] name = "tower-cookies" version = "0.10.0" @@ -9629,6 +9630,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + [[package]] name = "tracing-attributes" version = "0.1.27" @@ -10403,7 +10416,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.35", + "rustix 0.38.34", ] [[package]] @@ -10414,7 +10427,7 @@ checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" dependencies = [ "either", "home", - "rustix 0.38.35", + "rustix 0.38.34", "winsafe", ] @@ -10480,6 +10493,7 @@ dependencies = [ "gethostname", "git-version", "lazy_static", + "object_store", "once_cell", "pg-embed", "prometheus", @@ -10538,7 +10552,7 @@ dependencies = [ "hmac", "http 1.1.0", "hyper 1.4.1", - "itertools 0.13.0", + "itertools 0.10.5", "jsonwebtoken", "lazy_static", "magic-crypt", @@ -10572,7 +10586,7 @@ dependencies = [ "tokio-native-tls", "tokio-tar", "tokio-util", - "tower 0.5.0", + "tower", "tower-cookies", "tower-http", "tracing", @@ -10636,12 +10650,13 @@ dependencies = [ "const_format", "cron", "futures-core", + "gethostname", "git-version", "hex", "hmac", "hyper 1.4.1", "indexmap 2.4.0", - "itertools 0.13.0", + "itertools 0.10.5", "lazy_static", "magic-crypt", "mail-send", @@ -10658,6 +10673,7 @@ dependencies = [ "tikv-jemalloc-ctl", "tokio", "tracing", + "tracing-appender", "tracing-flame", "tracing-loki", "tracing-subscriber", @@ -10727,7 +10743,7 @@ version = "1.388.0" dependencies = [ "anyhow", "gosyn", - "itertools 0.13.0", + "itertools 0.10.5", "lazy_static", "regex", "windmill-parser", @@ -10750,7 +10766,7 @@ name = "windmill-parser-php" version = "1.388.0" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.10.5", "php-parser-rs", "serde_json", "windmill-parser", @@ -10761,7 +10777,7 @@ name = "windmill-parser-py" version = "1.388.0" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.10.5", "rustpython-parser", "serde_json", "windmill-parser", @@ -10773,7 +10789,7 @@ version = "1.388.0" dependencies = [ "anyhow", "async-recursion", - "itertools 0.13.0", + "itertools 0.10.5", "lazy_static", "phf", "regex", @@ -10866,7 +10882,7 @@ dependencies = [ "futures-core", "hex", "hmac", - "itertools 0.13.0", + "itertools 0.10.5", "lazy_static", "prometheus", "regex", @@ -10922,7 +10938,7 @@ dependencies = [ "gcp_auth", "git-version", "hex", - "itertools 0.13.0", + "itertools 0.10.5", "jsonwebtoken", "lazy_static", "mappable-rc", @@ -11008,6 +11024,19 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -11078,6 +11107,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -11090,6 +11125,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -11108,6 +11149,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -11120,6 +11167,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -11144,6 +11197,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -11207,7 +11266,7 @@ checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", "linux-raw-sys 0.4.14", - "rustix 0.38.35", + "rustix 0.38.34", ] [[package]] diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 0fff054078..64307eb624 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -48,7 +48,7 @@ flamegraph = ["windmill-common/flamegraph", "windmill-worker/flamegraph"] loki = ["windmill-common/loki"] pg_embed = ["dep:pg-embed"] embedding = ["windmill-api/embedding"] -parquet = ["windmill-api/parquet", "windmill-common/parquet", "windmill-worker/parquet", "windmill-indexer/parquet"] +parquet = ["windmill-api/parquet", "windmill-common/parquet", "windmill-worker/parquet", "windmill-indexer/parquet", "dep:object_store"] prometheus = ["windmill-common/prometheus", "windmill-api/prometheus", "windmill-worker/prometheus", "windmill-queue/prometheus"] flow_testing = ["windmill-worker/flow_testing"] openidconnect = ["windmill-api/openidconnect"] @@ -85,6 +85,7 @@ gethostname.workspace = true serde_json.workspace = true serde.workspace = true deno_core.workspace = true +object_store = { workspace = true, optional = true } pg-embed = {git = "https://github.com/faokunega/pg-embed", optional = true, default-features = false, features = ['rt_tokio']} quote.workspace = true @@ -139,6 +140,7 @@ chrono = { version = "0.4.35", features = ["serde"] } chrono-tz = "^0" tracing = "^0" tracing-subscriber = { version = "^0", features = ["env-filter", "json"] } +tracing-appender = "^0" prometheus = { version = "^0", default-features = false } cookie = { version = "0.17.0" } phf = { version = "0.11", features = ["macros"] } diff --git a/backend/migrations/20240613150524_add_job_perms.down.sql b/backend/migrations/20240613150524_add_job_perms.down.sql index d2f607c5b8..f489666b92 100644 --- a/backend/migrations/20240613150524_add_job_perms.down.sql +++ b/backend/migrations/20240613150524_add_job_perms.down.sql @@ -1 +1,2 @@ -- Add down migration script here +DROP TABLE public.job_perms; \ No newline at end of file diff --git a/backend/migrations/20240815085729_add_logfile.down.sql b/backend/migrations/20240815085729_add_logfile.down.sql new file mode 100644 index 0000000000..c2a9f2d62d --- /dev/null +++ b/backend/migrations/20240815085729_add_logfile.down.sql @@ -0,0 +1,4 @@ +-- Add down migration script here +DROP TABLE log_file; +DROP TYPE LOG_MODE; + diff --git a/backend/migrations/20240815085729_add_logfile.up.sql b/backend/migrations/20240815085729_add_logfile.up.sql new file mode 100644 index 0000000000..1a79a9e7b1 --- /dev/null +++ b/backend/migrations/20240815085729_add_logfile.up.sql @@ -0,0 +1,16 @@ +-- Add up migration script here +-- Add up migration script here +CREATE TYPE LOG_MODE AS ENUM ('standalone', 'server', 'worker', 'agent', 'indexer'); +CREATE TABLE log_file ( + hostname VARCHAR(255) NOT NULL, + log_ts TIMESTAMP, + ok_lines BIGINT, + err_lines BIGINT, + mode LOG_MODE NOT NULL, + worker_group VARCHAR(255), + file_path VARCHAR(510) NOT NULL, + PRIMARY KEY (hostname, log_ts) +); + +CREATE INDEX log_file_log_ts_idx ON log_file (log_ts); +CREATE INDEX log_file_hostname_log_ts_idx ON log_file (hostname, log_ts); \ No newline at end of file diff --git a/backend/src/main.rs b/backend/src/main.rs index e9ea129ab5..7100bf04f8 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -7,8 +7,8 @@ */ use anyhow::Context; -use gethostname::gethostname; use git_version::git_version; +use monitor::{send_current_log_file_to_object_store, send_logs_to_object_store}; use rand::Rng; use sqlx::{postgres::PgListener, Pool, Postgres}; use std::{ @@ -39,7 +39,7 @@ use windmill_common::{ }, scripts::ScriptLang, stats_ee::schedule_stats, - utils::{rd_string, Mode}, + utils::{hostname, rd_string, Mode}, worker::{reload_custom_tags_setting, HUB_CACHE_DIR, TMP_DIR, WORKER_GROUP}, DB, METRICS_ENABLED, }; @@ -166,8 +166,10 @@ async fn windmill_main() -> anyhow::Result<()> { std::env::set_var("RUST_LOG", "info") } + let hostname = hostname(); + #[cfg(not(feature = "flamegraph"))] - windmill_common::tracing_init::initialize_tracing(); + let _guard = windmill_common::tracing_init::initialize_tracing(&hostname); #[cfg(all(not(target_env = "msvc"), feature = "jemalloc"))] tracing::info!("jemalloc enabled"); @@ -398,6 +400,8 @@ Windmill Community Edition {GIT_VERSION} monitor_pool(&db).await; + send_logs_to_object_store(&db, &hostname, &mode); + #[cfg(all(not(target_env = "msvc"), feature = "jemalloc"))] if !worker_mode { monitor_mem().await; @@ -483,6 +487,7 @@ Windmill Community Edition {GIT_VERSION} base_internal_url.clone(), rsmq.clone(), mode.clone() == Mode::Agent, + hostname.clone(), ) .await?; tracing::info!("All workers exited."); @@ -713,6 +718,8 @@ Windmill Community Edition {GIT_VERSION} } else { tracing::info!("Nothing to do, exiting."); } + send_current_log_file_to_object_store(&db, &hostname, &mode).await; + tracing::info!("Exiting connection pool"); tokio::select! { _ = db.close() => { @@ -784,6 +791,7 @@ pub async fn run_workers, agent_mode: bool, + hostname: String, ) -> anyhow::Result<()> { let mut killpill_rxs = vec![]; for _ in 0..num_workers { @@ -794,10 +802,6 @@ pub async fn run_workers (Option, Option) { + let log_dir = format!("{}/{}/", TMP_WINDMILL_LOGS_SERVICE, hostname); + let rd_dir = tokio::fs::read_dir(log_dir).await; + if let Ok(mut log_files) = rd_dir { + let mut highest_file: Option = None; + let mut second_highest_file: Option = None; + while let Ok(Some(file)) = log_files.next_entry().await { + let file_name = file + .file_name() + .to_str() + .map(|x| x.to_string()) + .unwrap_or_default(); + if file_name > highest_file.clone().unwrap_or_default() { + second_highest_file = highest_file; + highest_file = Some(file_name); + } + } + (highest_file, second_highest_file) + } else { + tracing::error!( + "Error reading log files: {TMP_WINDMILL_LOGS_SERVICE}, {:#?}", + rd_dir.unwrap_err() + ); + (None, None) + } +} + +fn get_worker_group(mode: &Mode) -> Option { + let worker_group = WORKER_GROUP.clone(); + if worker_group.is_empty() || mode == &Mode::Server || mode == &Mode::Indexer { + None + } else { + Some(worker_group) + } +} + +pub fn send_logs_to_object_store(db: &DB, hostname: &str, mode: &Mode) { + let db = db.clone(); + let hostname = hostname.to_string(); + let mode = mode.clone(); + let worker_group = get_worker_group(&mode); + tokio::spawn(async move { + let mut interval = tokio::time::interval(Duration::from_secs(10)); + interval.set_missed_tick_behavior(tokio::time::MissedTickBehavior::Skip); + sleep_until_next_minute_start_plus_one_s().await; + loop { + interval.tick().await; + let (_, snd_highest_file) = find_two_highest_files(&hostname).await; + send_log_file_to_object_store( + &hostname, + &mode, + &worker_group, + &db, + snd_highest_file, + false, + ) + .await; + } + }); +} + +pub async fn send_current_log_file_to_object_store(db: &DB, hostname: &str, mode: &Mode) { + tracing::info!("Sending current log file to object store"); + let (highest_file, _) = find_two_highest_files(hostname).await; + let worker_group = get_worker_group(&mode); + send_log_file_to_object_store(hostname, mode, &worker_group, db, highest_file, true).await; +} + +fn get_now_and_str() -> (NaiveDateTime, String) { + let ts = Utc::now().naive_utc(); + ( + ts, + ts.format(windmill_common::tracing_init::LOG_TIMESTAMP_FMT) + .to_string(), + ) +} + +async fn send_log_file_to_object_store( + hostname: &str, + mode: &Mode, + worker_group: &Option, + db: &Pool, + snd_highest_file: Option, + use_now: bool, +) { + if let Some(highest_file) = snd_highest_file { + //parse datetime frome file xxxx.yyyy-MM-dd-HH-mm + let (ts, ts_str) = if use_now { + get_now_and_str() + } else { + highest_file + .split(".") + .last() + .and_then(|x| { + NaiveDateTime::parse_from_str( + x, + windmill_common::tracing_init::LOG_TIMESTAMP_FMT, + ) + .ok() + .map(|y| (y, x.to_string())) + }) + .unwrap_or_else(get_now_and_str) + }; + + let exists = sqlx::query_scalar!( + "SELECT EXISTS(SELECT 1 FROM log_file WHERE hostname = $1 AND log_ts = $2)", + hostname, + ts + ) + .fetch_one(db) + .await; + + match exists { + Ok(Some(true)) => { + return; + } + Err(e) => { + tracing::error!("Error checking if log file exists: {:?}", e); + return; + } + _ => (), + } + + let path = std::path::Path::new(TMP_WINDMILL_LOGS_SERVICE) + .join(hostname) + .join(&highest_file); + + #[cfg(feature = "parquet")] + let s3_client = OBJECT_STORE_CACHE_SETTINGS.read().await.clone(); + #[cfg(feature = "parquet")] + if let Some(s3_client) = s3_client { + //read file as byte stream + let bytes = tokio::fs::read(&path).await; + if let Err(e) = bytes { + tracing::error!("Error reading log file: {:?}", e); + return; + } + let path = object_store::path::Path::from_url_path(format!( + "{}{hostname}/{highest_file}", + windmill_common::tracing_init::LOGS_SERVICE + )); + if let Err(e) = path { + tracing::error!("Error creating log file path: {:?}", e); + return; + } + if let Err(e) = s3_client.put(&path.unwrap(), bytes.unwrap().into()).await { + tracing::error!("Error sending logs to object store: {:?}", e); + } + } + + let (ok_lines, err_lines) = read_log_counters(ts_str); + + if let Err(e) = sqlx::query!("INSERT INTO log_file (hostname, mode, worker_group, log_ts, file_path, ok_lines, err_lines) VALUES ($1, $2::text::LOG_MODE, $3, $4, $5, $6, $7)", + hostname, mode.to_string(), worker_group.clone(), ts, highest_file, ok_lines as i64, err_lines as i64) + .execute(db) + .await { + tracing::error!("Error inserting log file: {:?}", e); + } + } +} + +fn read_log_counters(ts_str: String) -> (usize, usize) { + let counters = windmill_common::tracing_init::LOG_COUNTING_BY_MIN.read(); + let mut ok_lines = 0; + let mut err_lines = 0; + if let Ok(ref c) = counters { + let counter = c.get(&ts_str); + if let Some(counter) = counter { + ok_lines = counter.non_error_count; + err_lines = counter.error_count; + } else { + println!("no counter found for {ts_str}"); + } + } else { + println!("Error reading log counters 2"); + } + (ok_lines, err_lines) +} + pub async fn load_keep_job_dir(db: &DB) { let value = load_value_from_global_settings(db, KEEP_JOB_DIR_SETTING).await; match value { @@ -470,6 +661,15 @@ pub async fn delete_expired_items(db: &DB) -> () { { tracing::error!("Error deleting custom concurrency key: {:?}", e); } + if let Err(e) = sqlx::query!( + "DELETE FROM log_file WHERE log_ts <= now() - ($1::bigint::text || ' s')::interval ", + job_retention_secs + ) + .execute(&mut *tx) + .await + { + tracing::error!("Error deleting log file: {:?}", e); + } } } Err(e) => { diff --git a/backend/tests/worker.rs b/backend/tests/worker.rs index 77cb1029af..5da17cded7 100644 --- a/backend/tests/worker.rs +++ b/backend/tests/worker.rs @@ -75,7 +75,9 @@ async fn initialize_tracing() { use std::sync::Once; static ONCE: Once = Once::new(); - ONCE.call_once(windmill_common::tracing_init::initialize_tracing); + ONCE.call_once(|| { + let _ = windmill_common::tracing_init::initialize_tracing("test"); + }); } /// it's important this is unique between tests as there is one prometheus registry and diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 2e275e4f40..7bf1abd9af 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -6137,7 +6137,7 @@ paths: /w/{workspace}/jobs_u/queue/cancel/{id}: post: - summary: cancel queued job + summary: cancel queued or running job operationId: cancelQueuedJob tags: - job @@ -8603,6 +8603,68 @@ paths: items: $ref: "#/components/schemas/TimeseriesMetric" + /service_logs/list_files: + get: + summary: list log files ordered by timestamp + operationId: listLogFiles + tags: + - service_logs + parameters: + - $ref: "#/components/parameters/Before" + - $ref: "#/components/parameters/After" + - name: with_error + in: query + required: false + schema: + type: boolean + responses: + "200": + description: time + content: + application/json: + schema: + type: array + items: + type: object + properties: + hostname: + type: string + mode: + type: string + worker_group: + type: string + log_ts: + type: string + format: date-time + file_path: + type: string + ok_lines: + type: integer + err_lines: + type: integer + required: + - hostname + - mode + - log_ts + - file_path + + /service_logs/get_log_file/{path}: + get: + summary: get log file by path + operationId: getLogFile + tags: + - service_logs + parameters: + - $ref: "#/components/parameters/Path" + responses: + "200": + description: log stream + content: + text/plain: + schema: + type: string + + /concurrency_groups/list: get: summary: List all concurrency groups @@ -8974,6 +9036,13 @@ components: schema: type: string format: date-time + Before: + name: before + description: filter on started before (inclusive) timestamp + in: query + schema: + type: string + format: date-time CreatedOrStartedAfter: name: created_or_started_after description: @@ -9050,13 +9119,6 @@ components: schema: type: string format: date-time - Before: - name: before - description: filter on created before (exclusive) timestamp - in: query - schema: - type: string - format: date-time Username: name: username description: filter on exact username of user diff --git a/backend/windmill-api/src/jobs.rs b/backend/windmill-api/src/jobs.rs index c7965b1581..784e9a06da 100644 --- a/backend/windmill-api/src/jobs.rs +++ b/backend/windmill-api/src/jobs.rs @@ -33,6 +33,7 @@ use crate::add_webhook_allowed_origin; use crate::concurrency_groups::join_concurrency_key; use crate::db::ApiAuthed; +use crate::utils::content_plain; use crate::{ db::DB, users::{check_scopes, require_owner_of_path, OptAuthed}, @@ -847,14 +848,6 @@ async fn get_logs_from_disk( return None; } -fn content_plain(body: Body) -> Response { - use axum::http::header; - Response::builder() - .header(header::CONTENT_TYPE, "text/plain") - .body(body) - .unwrap() -} - async fn get_job_logs( OptAuthed(opt_authed): OptAuthed, Extension(db): Extension, diff --git a/backend/windmill-api/src/lib.rs b/backend/windmill-api/src/lib.rs index ed842aeb42..05202afd12 100644 --- a/backend/windmill-api/src/lib.rs +++ b/backend/windmill-api/src/lib.rs @@ -76,6 +76,7 @@ mod saml_ee; mod schedule; mod scim_ee; mod scripts; +mod service_logs; mod settings; pub mod smtp_server_ee; mod static_assets; @@ -291,6 +292,7 @@ pub async fn run_server( ) .nest("/settings", settings::global_service()) .nest("/workers", workers::global_service()) + .nest("/service_logs", service_logs::global_service()) .nest("/configs", configs::global_service()) .nest("/scripts", scripts::global_service()) .nest("/integrations", integration::global_service()) diff --git a/backend/windmill-api/src/service_logs.rs b/backend/windmill-api/src/service_logs.rs new file mode 100644 index 0000000000..f563f9be71 --- /dev/null +++ b/backend/windmill-api/src/service_logs.rs @@ -0,0 +1,139 @@ +/* + * Author: Ruben Fiszel + * Copyright: Windmill Labs, Inc 2022 + * This file and its contents are licensed under the AGPLv3 License. + * Please see the included NOTICE for copyright information and + * LICENSE-AGPL for a copy of the license. + */ + +use crate::utils::content_plain; +use axum::{body::Body, extract::Query, response::Response, routing::get, Extension, Json, Router}; +use serde::Serialize; + +use windmill_common::{ + error::{Error, JsonResult}, + utils::Pagination, +}; + +use crate::{ + db::{ApiAuthed, DB}, + utils::require_super_admin, +}; + +pub fn global_service() -> Router { + Router::new() + .route("/list_files", get(list_files)) + .route("/get_log_file/*path", get(get_log_file)) +} +use axum::extract::Path; + +#[derive(Debug, serde::Deserialize)] +pub struct LogFileQuery { + before: Option>, + after: Option>, + with_error: Option, +} + +#[derive(Debug, sqlx::FromRow, Serialize)] +pub struct LogFile { + pub hostname: String, + pub mode: String, + pub worker_group: Option, + pub log_ts: chrono::NaiveDateTime, + pub file_path: String, + pub ok_lines: Option, + pub err_lines: Option, +} +async fn list_files( + ApiAuthed { email, .. }: ApiAuthed, + Extension(db): Extension, + Query(pagination): Query, + Query(lq): Query, +) -> JsonResult> { + require_super_admin(&db, &email).await?; + let (per_page, offset) = windmill_common::utils::paginate(pagination); + + let mut sqlb = sql_builder::SqlBuilder::select_from("log_file") + .fields(&[ + "hostname", + "mode::text", + "worker_group", + "log_ts", + "file_path", + "ok_lines", + "err_lines", + ]) + .order_by("log_ts", true) + .offset(offset) + .limit(per_page) + .clone(); + + if let Some(dt) = &lq.before { + sqlb.and_where_le( + "log_ts", + format!("to_timestamp({} / 1000.0)", dt.timestamp_millis()), + ); + } + if let Some(dt) = &lq.after { + sqlb.and_where_ge( + "log_ts", + format!("to_timestamp({} / 1000.0)", dt.timestamp_millis()), + ); + } + + if let Some(true) = lq.with_error { + sqlb.and_where("err_lines > 0"); + } + let sql = sqlb.sql().map_err(|e| Error::InternalErr(e.to_string()))?; + let rows = sqlx::query_as::<_, LogFile>(&sql).fetch_all(&db).await?; + Ok(Json(rows)) +} + +async fn get_log_file( + ApiAuthed { email, .. }: ApiAuthed, + Extension(db): Extension, + Path(path): Path, +) -> windmill_common::error::Result { + use windmill_common::tracing_init::TMP_WINDMILL_LOGS_SERVICE; + + require_super_admin(&db, &email).await?; + let path = path.to_path(); + #[cfg(feature = "parquet")] + let s3_client = windmill_common::s3_helpers::OBJECT_STORE_CACHE_SETTINGS + .read() + .await + .clone(); + #[cfg(feature = "parquet")] + if let Some(s3_client) = s3_client { + let path = format!("{}{}", windmill_common::tracing_init::LOGS_SERVICE, path); + let file = s3_client.get(&object_store::path::Path::from(path)).await; + match file { + Ok(file) => { + let bytes = file.bytes().await; + match bytes { + Ok(bytes) => { + return Ok(content_plain(Body::from(bytes::Bytes::from(bytes)))); + } + Err(e) => { + return Err(Error::InternalErr(format!( + "Error pulling the bytes: {}", + e + ))); + } + } + } + Err(e) => { + return Err(Error::InternalErr(format!( + "Error fetching the file: {}", + e + ))); + } + } + } + let file = tokio::fs::read(format!("{}{}", TMP_WINDMILL_LOGS_SERVICE, path)).await; + if let Ok(bytes) = file { + Ok(content_plain(Body::from(bytes::Bytes::from(bytes)))) + } else { + Err(Error::NotFound(format!("File {path} not found"))) + } +} diff --git a/backend/windmill-api/src/utils.rs b/backend/windmill-api/src/utils.rs index 4836d0dfd5..d8a81ab741 100644 --- a/backend/windmill-api/src/utils.rs +++ b/backend/windmill-api/src/utils.rs @@ -6,6 +6,7 @@ * LICENSE-AGPL for a copy of the license. */ +use axum::{body::Body, response::Response}; use regex::Regex; use serde::Deserialize; use sqlx::{Postgres, Transaction}; @@ -172,3 +173,11 @@ pub async fn get_and_delete_pending_username_or_generate<'c>( Ok(username) } } + +pub fn content_plain(body: Body) -> Response { + use axum::http::header; + Response::builder() + .header(header::CONTENT_TYPE, "text/plain") + .body(body) + .unwrap() +} diff --git a/backend/windmill-common/Cargo.toml b/backend/windmill-common/Cargo.toml index c324dcf728..5f45e051d4 100644 --- a/backend/windmill-common/Cargo.toml +++ b/backend/windmill-common/Cargo.toml @@ -37,6 +37,8 @@ reqwest = { workspace = true } tracing-subscriber = { workspace = true } lazy_static.workspace = true tracing-flame = { version = "^0", optional = true } +tracing-appender.workspace = true +gethostname.workspace = true itertools.workspace = true regex.workspace = true git-version.workspace = true diff --git a/backend/windmill-common/src/tracing_init.rs b/backend/windmill-common/src/tracing_init.rs index fe8366f399..d60f98a496 100644 --- a/backend/windmill-common/src/tracing_init.rs +++ b/backend/windmill-common/src/tracing_init.rs @@ -6,6 +6,8 @@ * LICENSE-AGPL for a copy of the license. */ +use const_format::concatcp; +use tracing_appender::non_blocking::{NonBlockingBuilder, WorkerGuard}; use tracing_subscriber::{ fmt::{format, Layer}, prelude::*, @@ -24,7 +26,11 @@ fn compact_layer() -> Layer WorkerGuard { let style = std::env::var("RUST_LOG_STYLE").unwrap_or_else(|_| "auto".into()); let json_fmt = std::env::var("JSON_FMT") .map(|x| x == "true") @@ -38,6 +44,21 @@ pub fn initialize_tracing() { } let env_filter = EnvFilter::from_default_env(); + use tracing_appender::rolling::{RollingFileAppender, Rotation}; + + let log_dir = format!("{}/{}/", TMP_WINDMILL_LOGS_SERVICE, hostname); + std::fs::create_dir_all(&log_dir).unwrap(); + let file_appender = RollingFileAppender::builder() + .rotation(Rotation::MINUTELY) + .filename_prefix(format!("{}.log", hostname)) + .max_log_files(20) + .build(log_dir) + .expect("Can build tracing file appender"); + + let (log_file_writer, _guard) = NonBlockingBuilder::default() + .lossy(false) + .finish(file_appender); + let stdout_and_log_file_writer = std::io::stdout.and(log_file_writer); let ts_base = tracing_subscriber::registry().with(env_filter); @@ -51,17 +72,26 @@ pub fn initialize_tracing() { }; match json_fmt { - true => ts_base.with(json_layer().flatten_event(true)).init(), + true => ts_base + .with( + json_layer() + .with_writer(stdout_and_log_file_writer) + .flatten_event(true), + ) + .init(), false => ts_base .with( compact_layer() + .with_writer(stdout_and_log_file_writer) .with_ansi(style.to_lowercase() != "never") .with_file(true) .with_line_number(true) .with_target(false), ) + .with(CountingLayer::new()) .init(), } + _guard } #[cfg(feature = "flamegraph")] @@ -79,3 +109,75 @@ pub fn setup_flamegraph() -> impl Drop { .init(); _guard } + +use std::{ + collections::HashMap, + sync::{Arc, RwLock}, +}; +use tracing::Event; +use tracing_subscriber::layer::Context; + +lazy_static::lazy_static! { + pub static ref LOG_COUNTING_BY_MIN: Arc>> = Arc::new(RwLock::new(HashMap::new())); +} + +#[derive(Debug)] +pub struct LogCounter { + pub non_error_count: usize, + pub error_count: usize, +} + +impl LogCounter { + fn new() -> Self { + LogCounter { non_error_count: 0, error_count: 0 } + } +} + +#[derive(Debug)] +struct CountingLayer {} + +impl CountingLayer { + pub fn new() -> Self { + CountingLayer {} + } +} + +// impl CountingLayer { +// pub fn new() -> Self { +// CountingLayer { counter: Arc::new(Mutex::new(LogCounter::new())) } +// } + +// pub fn get_counts(&self) -> (usize, usize) { +// let counter = self.counter.lock().unwrap(); +// (counter.non_error_count, counter.error_count) +// } + +// pub fn reset_counts(&self) { +// let mut counter = self.counter.lock().unwrap(); +// counter.reset(); +// } +// } + +pub const LOG_TIMESTAMP_FMT: &str = "%Y-%m-%d-%H-%M"; + +impl tracing_subscriber::Layer for CountingLayer +where + S: tracing::Subscriber, +{ + fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) { + let level = *event.metadata().level(); + + let date_str = chrono::Utc::now().format(LOG_TIMESTAMP_FMT).to_string(); + let counters = LOG_COUNTING_BY_MIN.write(); + if let Ok(mut counters) = counters { + let counter = counters.entry(date_str).or_insert(LogCounter::new()); + if level == tracing::Level::ERROR { + counter.error_count += 1; + } else { + counter.non_error_count += 1; + } + } else { + println!("Error getting lock for log counting"); + } + } +} diff --git a/backend/windmill-common/src/utils.rs b/backend/windmill-common/src/utils.rs index fd14fc0fb0..4036a52418 100644 --- a/backend/windmill-common/src/utils.rs +++ b/backend/windmill-common/src/utils.rs @@ -14,6 +14,7 @@ use crate::global_settings::UNIQUE_ID_SETTING; use crate::server::Smtp; use crate::DB; use anyhow::Context; +use gethostname::gethostname; use git_version::git_version; use mail_send::mail_builder::MessageBuilder; use mail_send::SmtpClientBuilder; @@ -55,6 +56,13 @@ pub fn require_admin(is_admin: bool, username: &str) -> Result<()> { } } +pub fn hostname() -> String { + gethostname() + .to_str() + .map(|x| x.to_string()) + .unwrap_or_else(|| rd_string(5)) +} + pub fn paginate(pagination: Pagination) -> (usize, usize) { let per_page = pagination .per_page @@ -193,6 +201,18 @@ pub enum Mode { Indexer, } +impl std::fmt::Display for Mode { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Mode::Worker => write!(f, "worker"), + Mode::Agent => write!(f, "agent"), + Mode::Server => write!(f, "server"), + Mode::Standalone => write!(f, "standalone"), + Mode::Indexer => write!(f, "indexer"), + } + } +} + pub async fn send_email( subject: &str, content: &str, diff --git a/backend/windmill-worker/src/worker_lockfiles.rs b/backend/windmill-worker/src/worker_lockfiles.rs index 5ea3210c82..93b80fd9d5 100644 --- a/backend/windmill-worker/src/worker_lockfiles.rs +++ b/backend/windmill-worker/src/worker_lockfiles.rs @@ -82,7 +82,7 @@ async fn add_relative_imports_to_dependency_map<'c>( for import in relative_imports { sqlx::query!( "INSERT INTO dependency_map (workspace_id, importer_path, importer_kind, imported_path, importer_node_id) - VALUES ($1, $2, $4::text::IMPORTER_KIND, $3, $5)", + VALUES ($1, $2, $4::text::IMPORTER_KIND, $3, $5) ON CONFLICT DO NOTHING", w_id, script_path, import, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 46b5693114..4427dc0f9d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -59,7 +59,7 @@ "svelte-carousel": "^1.0.25", "svelte-chartjs": "^3.1.5", "svelte-exmarkdown": "^3.0.5", - "svelte-infinite-loading": "^1.3.8", + "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", @@ -12461,9 +12461,10 @@ } }, "node_modules/svelte-infinite-loading": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/svelte-infinite-loading/-/svelte-infinite-loading-1.3.8.tgz", - "integrity": "sha512-hn4o848LKd2Q+M11hiMWnfFxM1GHKVDi92HPZ1FYvfed4bEeRZL+QvFAQzhy1SACq6Si0CAJcQFUZpIYmAEnpQ==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/svelte-infinite-loading/-/svelte-infinite-loading-1.4.0.tgz", + "integrity": "sha512-Jo+f/yr/HmZQuIiiKKzAHVFXdAUWHW2RBbrcQTil8JVk1sCm/riy7KTJVzjBgQvHasrFQYKF84zvtc9/Y4lFYg==", + "license": "MIT" }, "node_modules/svelte-multiselect": { "version": "10.2.0", diff --git a/frontend/package.json b/frontend/package.json index 800c69c313..544393e40c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -132,7 +132,7 @@ "svelte-carousel": "^1.0.25", "svelte-chartjs": "^3.1.5", "svelte-exmarkdown": "^3.0.5", - "svelte-infinite-loading": "^1.3.8", + "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", diff --git a/frontend/src/lib/components/LogViewer.svelte b/frontend/src/lib/components/LogViewer.svelte index 522f4075f8..4cff07768c 100644 --- a/frontend/src/lib/components/LogViewer.svelte +++ b/frontend/src/lib/components/LogViewer.svelte @@ -26,6 +26,8 @@ export let tag: string | undefined export let small = false export let drawerOpen = false + export let noMaxH = false + export let noAutoScroll = false // @ts-ignore const ansi_up = new AnsiUp() @@ -144,17 +146,19 @@ - + {#if jobId} + + {/if} -
- Auto scroll - -
+ {#if !noAutoScroll} +
+ Auto scroll + +
+ {/if}
{#if isLoading} diff --git a/frontend/src/lib/components/QueueMetricsDrawer.svelte b/frontend/src/lib/components/QueueMetricsDrawer.svelte index a3ae75e5ab..613a75e716 100644 --- a/frontend/src/lib/components/QueueMetricsDrawer.svelte +++ b/frontend/src/lib/components/QueueMetricsDrawer.svelte @@ -1,278 +1,15 @@ - - - + - {#if loading} - - {:else if noMetrics} -

No jobs delayed by more than 3 seconds in the last 14 days

- {:else} -
- {#if countData} - 3s)' - } - }, - scales: { - x: { - type: 'time', - min: minDate.toISOString(), - max: new Date().toISOString() - }, - y: { - title: { - display: true, - text: 'count' - } - } - } - }} - /> - {/if} - {#if delayData} - 3s)' - }, - tooltip: { - callbacks: { - label: function (context) { - // @ts-ignore - if (context.raw.y === 1) { - return context.dataset.label + ': 0' - } else { - // @ts-ignore - return context.dataset.label + ': ' + context.raw.y - } - } - } - } - }, - scales: { - x: { - type: 'time', - min: minDate.toISOString(), - max: new Date().toISOString() - }, - - y: { - type: 'logarithmic', - title: { - display: true, - text: 'delay (s)' - }, - ticks: { - callback: (value, _) => (value === 1 ? '0' : value) - } - } - } - }} - /> - {/if} - - Only tags for jobs that have been delayed by more than 3 seconds in the last 14 days are - included in the graph. - -
- {/if} +
diff --git a/frontend/src/lib/components/QueueMetricsDrawerInner.svelte b/frontend/src/lib/components/QueueMetricsDrawerInner.svelte new file mode 100644 index 0000000000..28d223ef30 --- /dev/null +++ b/frontend/src/lib/components/QueueMetricsDrawerInner.svelte @@ -0,0 +1,265 @@ + + + + +{#if loading} + +{:else if noMetrics} +

No jobs delayed by more than 3 seconds in the last 14 days

+{:else} +
+ {#if countData} + 3s)' + } + }, + scales: { + x: { + type: 'time', + min: minDate.toISOString(), + max: new Date().toISOString() + }, + y: { + title: { + display: true, + text: 'count' + } + } + } + }} + /> + {/if} + {#if delayData} + 3s)' + }, + tooltip: { + callbacks: { + label: function (context) { + // @ts-ignore + if (context.raw.y === 1) { + return context.dataset.label + ': 0' + } else { + // @ts-ignore + return context.dataset.label + ': ' + context.raw.y + } + } + } + } + }, + scales: { + x: { + type: 'time', + min: minDate.toISOString(), + max: new Date().toISOString() + }, + + y: { + type: 'logarithmic', + title: { + display: true, + text: 'delay (s)' + }, + ticks: { + callback: (value, _) => (value === 1 ? '0' : value) + } + } + } + }} + /> + {/if} + + Only tags for jobs that have been delayed by more than 3 seconds in the last 14 days are + included in the graph. + +
+{/if} diff --git a/frontend/src/lib/components/ServiceLogsInner.svelte b/frontend/src/lib/components/ServiceLogsInner.svelte new file mode 100644 index 0000000000..f4350961ba --- /dev/null +++ b/frontend/src/lib/components/ServiceLogsInner.svelte @@ -0,0 +1,495 @@ + + +
+ + +
+
+
+ + +
+ { + minTs = undefined + maxTs = undefined + allLogs = undefined + getAllLogs(minTsManual, maxTsManual) + }} + serviceLogsChoices + loadText="Last 1000 logfiles" + /> +
+ + +
+
+
0' }} + on:change={() => { + allLogs = undefined + getAllLogs(minTs, maxTs) + }} + /> + { + if (e.detail) { + getAllLogs(maxTs, undefined) + } else { + timeout && clearTimeout(timeout) + } + }} + options={{ right: 'auto-refresh' }} + />
+ {#if allLogs == undefined} +
+ {:else if Object.keys(allLogs).length == 0} +
No logs
+ {:else if minTs && maxTs} + {@const minTsN = new Date(minTs).getTime()} + {@const maxTsN = new Date(maxTs).getTime()} + {@const diff = maxTsN - minTsN} +
+
+ +
{new Date(minTs).toLocaleTimeString([], { + day: '2-digit', + month: '2-digit', + hour: '2-digit', + minute: '2-digit' + })}
{new Date(maxTs).toLocaleTimeString([], { + day: '2-digit', + month: '2-digit', + hour: '2-digit', + minute: '2-digit' + })}
+
+ {#each Object.entries(allLogs) as [mode, o1]} +
+

{mode}s

+ {#each Object.entries(o1) as [wg, o2]} +
+ {#if wg && wg != ''} +

{wg}

+ {/if} +
+ {#each Object.entries(o2) as [hn, files]} + + +
{ + selected = [mode, wg, hn] + upToIsLatest = true + upTo = getLatestUpTo(selected) + scrollToBottom() + }} + > +
{hn}
+
+ {#each files as file} + {@const okHeight = 100.0 * ((file.ok_lines * 1.0) / (max_lines ?? 1))} + {@const errHeight = 100.0 * ((file.err_lines * 1.0) / (max_lines ?? 1))} +
+
+ {/each} +
+
+ {/each} +
+
+ {/each} +
+ {/each} + {/if} +
+ +
1 min delay: logs are compacted before being available
+ {#if selected} +
+ {#each getLogs(selected, upTo) as file} +
+
{new Date(file.ts).toLocaleTimeString([], { + day: '2-digit', + month: '2-digit', + hour: '2-digit', + minute: '2-digit' + })}
+ {#if logsContent[file.file_path] == undefined} +
+ {:else if logsContent[file.file_path]} + {#if logsContent[file.file_path].error} + {#if logsContent[file.file_path].error?.startsWith('Not Found')} +
Log file is missing. Log files require a shared log volume to be mounted + across servers and workers or to use the EE S3/object storage integration + for logs. To avoid mounting a shared volume, set the EE object store logs in + the instance settings
+ {:else} +
{logsContent[file.file_path].error}
+ {/if} + {:else if logsContent[file.file_path].content} + + +
+ {:else} +
No logs
+ {/if} + {/if} +
+ {/each} +
+
+
Last 5 log files up to:
+
+ {#if upTo} + + {:else} +
+ {/if} + +
+
+ {#if upTo} + + {:else} +
+ {/if} +
+
+ +
+
+ {:else} +
Select a host to see its logs
+ {/if}
+ +
diff --git a/frontend/src/lib/components/WorkspaceGroup.svelte b/frontend/src/lib/components/WorkspaceGroup.svelte index 7ada518172..63d2db50a8 100644 --- a/frontend/src/lib/components/WorkspaceGroup.svelte +++ b/frontend/src/lib/components/WorkspaceGroup.svelte @@ -870,7 +870,7 @@
{pluralize(activeWorkers, 'worker')} {#if vcpus_memory?.vcpus} - - {vcpus_memory?.vcpus} vCPUs{/if}{#if vcpus_memory?.memory} + - {vcpus_memory?.vcpus / 1000} vCPUs{/if}{#if vcpus_memory?.memory} - {vcpus_memory?.memory} MB{/if}
diff --git a/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte b/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte index 5ff9b63eb4..85b056bfcf 100644 --- a/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte +++ b/frontend/src/lib/components/apps/components/display/table/AppAggridExplorerTable.svelte @@ -150,7 +150,7 @@ outputs?.inputs.set(inputs, true) }, onRemove: (id, rowIndex) => { - if (inputs?.[id] == undefined) { + if (inputs?.[id] == undefined) { return } delete inputs[id][rowIndex] diff --git a/frontend/src/lib/components/common/button/Button.svelte b/frontend/src/lib/components/common/button/Button.svelte index c023f64b2c..a3695acf43 100644 --- a/frontend/src/lib/components/common/button/Button.svelte +++ b/frontend/src/lib/components/common/button/Button.svelte @@ -39,7 +39,7 @@ type MenuItem = { label: string - onClick?: () => void + onClick?: (e?: Event) => void href?: string icon?: any } diff --git a/frontend/src/lib/components/common/calendarPicker/CalendarPicker.svelte b/frontend/src/lib/components/common/calendarPicker/CalendarPicker.svelte index 1b6492f21a..4e1e7cadb5 100644 --- a/frontend/src/lib/components/common/calendarPicker/CalendarPicker.svelte +++ b/frontend/src/lib/components/common/calendarPicker/CalendarPicker.svelte @@ -9,6 +9,7 @@ export let label: string export let useDropdown: boolean = false export let clearable: boolean = false + export let target: string | HTMLElement | undefined = undefined const dispatch = createEventDispatcher() let input: HTMLInputElement @@ -16,7 +17,7 @@ export let placement: Placement = 'top-end' - +
+
+ +
{/if} From 3969f2f57bbe0169ab7fdd6b55260300db9d3fb8 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 11:27:47 +0200 Subject: [PATCH 058/200] fix workers page --- frontend/src/routes/(root)/(logged)/workers/+page.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/routes/(root)/(logged)/workers/+page.svelte b/frontend/src/routes/(root)/(logged)/workers/+page.svelte index f6becd6ce9..5f977728fe 100644 --- a/frontend/src/routes/(root)/(logged)/workers/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/workers/+page.svelte @@ -19,7 +19,7 @@ import { sendUserToast } from '$lib/toast' import { displayDate, groupBy, pluralize, truncate } from '$lib/utils' import { AlertTriangle, FileJson, LineChart, List, Plus, Search } from 'lucide-svelte' - import { onDestroy, onMount } from 'svelte' + import { getContext, onDestroy, onMount } from 'svelte' import AutoComplete from 'simple-svelte-autocomplete' import YAML from 'yaml' @@ -303,7 +303,7 @@ icon: List }} on:click={() => { - openSearchWithPrefilledText('#') + openSearchWithPrefilledText('!') }} > Service logs From 3e774fe51de46e9c8c44b4885e5e06e106b0e22d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 12:22:14 +0200 Subject: [PATCH 059/200] nits log formats for delayed job --- backend/windmill-worker/src/worker.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index 92f2a2d0da..a034b8df33 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -742,7 +742,7 @@ fn add_outstanding_wait_time( tokio::spawn(async move { match insert_wait_time(job_id, root_job_id, &db, wait_time).await { - Ok(()) => tracing::warn!("This job waited for an executor for a significant amount of time. Recording value wait_time={}ms", wait_time), + Ok(()) => tracing::warn!("job {job_id} waited for an executor for a significant amount of time. Recording value wait_time={}ms", wait_time), Err(e) => tracing::error!("Failed to insert outstanding wait time: {}", e), } }.in_current_span()); From b05717b82006a7815e96d6aecc2f84c7c4d6507d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 12:28:03 +0200 Subject: [PATCH 060/200] nits job still running format --- backend/windmill-worker/src/common.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/windmill-worker/src/common.rs b/backend/windmill-worker/src/common.rs index 2773eb8b90..0fe00eb83e 100644 --- a/backend/windmill-worker/src/common.rs +++ b/backend/windmill-worker/src/common.rs @@ -573,7 +573,7 @@ where if i == 1 || i % 10 == 0 { let memory_usage = get_worker_memory_usage(); let wm_memory_usage = get_windmill_memory_usage(); - tracing::info!("{worker_name}/{job_id} in {w_id} worker memory snapshot {}kB/{}kB", memory_usage.unwrap_or_default()/1024, wm_memory_usage.unwrap_or_default()/1024); + tracing::info!("job {job_id} on {worker_name} in {w_id} worker memory snapshot {}kB/{}kB", memory_usage.unwrap_or_default()/1024, wm_memory_usage.unwrap_or_default()/1024); if job_id != Uuid::nil() { sqlx::query!( "UPDATE worker_ping SET ping_at = now(), current_job_id = $1, current_job_workspace_id = $2, memory_usage = $3, wm_memory_usage = $4 WHERE worker = $5", @@ -592,7 +592,7 @@ where if current_mem > *mem_peak { *mem_peak = current_mem } - tracing::info!("{worker_name}/{job_id} in {w_id} still running. mem: {current_mem}kB, peak mem: {mem_peak}kB"); + tracing::info!("job {job_id} on {worker_name} in {w_id} still running. mem: {current_mem}kB, peak mem: {mem_peak}kB"); let update_job_row = i == 2 || (!*SLOW_LOGS && (i < 20 || (i < 120 && i % 5 == 0) || i % 10 == 0)) || i % 20 == 0; From 64dbf6fce4a4f7ecda626ce8a6dd1c6120b34f7d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 21:58:37 +0200 Subject: [PATCH 061/200] refactor main tokio select loop (#4312) --- backend/windmill-worker/src/worker.rs | 122 ++++++++++++-------------- 1 file changed, 58 insertions(+), 64 deletions(-) diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index a034b8df33..301ff2afa2 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -75,8 +75,6 @@ use tokio::{ time::Instant, }; -use futures::future::FutureExt; - use rand::Rng; use windmill_queue::{add_completed_job, add_completed_job_error}; @@ -1450,14 +1448,13 @@ pub async fn run_worker { - println!("received killpill for worker {}", i_worker); - job_completed_tx.0.send(SendResult::Kill).await.unwrap(); - break - }, - Some(same_worker_job) = same_worker_rx.recv() => { + if let Ok(_) = killpill_rx.try_recv() { + println!("received killpill for worker {}", i_worker); + job_completed_tx.0.send(SendResult::Kill).await.unwrap(); + break + } + + if let Ok(same_worker_job) = same_worker_rx.try_recv() { tracing::debug!("received {} from same worker channel", same_worker_job.job_id); let r = sqlx::query_as::<_, QueuedJob>("SELECT * FROM queue WHERE id = $1") .bind(same_worker_job.job_id) @@ -1471,64 +1468,61 @@ pub async fn run_worker 3 { - last_checked_suspended = Instant::now(); - true - } else { false }; - pull(&db, rsmq.clone(), suspend_first).map(|x| (x, pull_time, suspend_first)).await - } => { - add_time!(timing, loop_start, "post pull"); - // tracing::debug!("pulled job: {:?}", job.as_ref().ok().and_then(|x| x.as_ref().map(|y| y.id))); - let duration_pull_s = timer.elapsed().as_secs_f64(); - let err_pull = job.is_ok(); - let empty = job.as_ref().is_ok_and(|x| x.is_none()); - suspend_first_success = suspend_first && !empty; - if !agent_mode && duration_pull_s > 0.5 { - tracing::warn!("pull took more than 0.5s ({duration_pull_s}), this is a sign that the database is VERY undersized for this load. empty: {empty}, err: {err_pull}"); - #[cfg(feature = "prometheus")] - if empty { - if let Some(wp) = worker_pull_over_500_counter_empty.as_ref() { - wp.inc(); - } - } else if let Some(wp) = worker_pull_over_500_counter.as_ref() { - wp.inc(); - } - - } else if !agent_mode && duration_pull_s > 0.1 { - tracing::warn!("pull took more than 0.1s ({duration_pull_s}) this is a sign that the database is undersized for this load. empty: {empty}, err: {err_pull}"); - #[cfg(feature = "prometheus")] - if empty { - if let Some(wp) = worker_pull_over_100_counter_empty.as_ref() { - wp.inc(); - } - } else if let Some(wp) = worker_pull_over_100_counter.as_ref() { - wp.inc(); - } - } + } else { + let pull_time = Instant::now(); + let suspend_first = if suspend_first_success || last_checked_suspended.elapsed().as_secs() > 3 { + last_checked_suspended = Instant::now(); + true + } else { false }; + let job = pull(&db, rsmq.clone(), suspend_first).await; + add_time!(timing, loop_start, "post pull"); + let duration_pull_s = pull_time.elapsed().as_secs_f64(); + let err_pull = job.is_ok(); + let empty = job.as_ref().is_ok_and(|x| x.is_none()); + suspend_first_success = suspend_first && !empty; + if !agent_mode && duration_pull_s > 0.5 { + tracing::warn!("pull took more than 0.5s ({duration_pull_s}), this is a sign that the database is VERY undersized for this load. empty: {empty}, err: {err_pull}"); #[cfg(feature = "prometheus")] - if let Ok(j) = job.as_ref() { - if j.is_some() { - if let Some(wp) = worker_pull_duration_counter.as_ref() { - wp.inc_by(duration_pull_s); - } - if let Some(wp) = worker_pull_duration.as_ref() { - wp.observe(duration_pull_s); - } - } else { - if let Some(wp) = worker_pull_duration_counter_empty.as_ref() { - wp.inc_by(duration_pull_s); - } - if let Some(wp) = worker_pull_duration_empty.as_ref() { - wp.observe(duration_pull_s); - } + if empty { + if let Some(wp) = worker_pull_over_500_counter_empty.as_ref() { + wp.inc(); + } + } else if let Some(wp) = worker_pull_over_500_counter.as_ref() { + wp.inc(); + } + + } else if !agent_mode && duration_pull_s > 0.1 { + tracing::warn!("pull took more than 0.1s ({duration_pull_s}) this is a sign that the database is undersized for this load. empty: {empty}, err: {err_pull}"); + #[cfg(feature = "prometheus")] + if empty { + if let Some(wp) = worker_pull_over_100_counter_empty.as_ref() { + wp.inc(); + } + } else if let Some(wp) = worker_pull_over_100_counter.as_ref() { + wp.inc(); + } + } + + #[cfg(feature = "prometheus")] + if let Ok(j) = job.as_ref() { + if j.is_some() { + if let Some(wp) = worker_pull_duration_counter.as_ref() { + wp.inc_by(duration_pull_s); + } + if let Some(wp) = worker_pull_duration.as_ref() { + wp.observe(duration_pull_s); + } + } else { + if let Some(wp) = worker_pull_duration_counter_empty.as_ref() { + wp.inc_by(duration_pull_s); + } + if let Some(wp) = worker_pull_duration_empty.as_ref() { + wp.observe(duration_pull_s); } } - job - }, + } + job } }; From 97153d9f8bf5df1838d5404b8c24da9208072f0d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 22:19:58 +0200 Subject: [PATCH 062/200] nit test --- backend/src/monitor.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/monitor.rs b/backend/src/monitor.rs index 105076b3f5..b664e93ae2 100644 --- a/backend/src/monitor.rs +++ b/backend/src/monitor.rs @@ -472,14 +472,14 @@ async fn send_log_file_to_object_store( _ => (), } - let path = std::path::Path::new(TMP_WINDMILL_LOGS_SERVICE) - .join(hostname) - .join(&highest_file); - #[cfg(feature = "parquet")] let s3_client = OBJECT_STORE_CACHE_SETTINGS.read().await.clone(); #[cfg(feature = "parquet")] if let Some(s3_client) = s3_client { + let path = std::path::Path::new(TMP_WINDMILL_LOGS_SERVICE) + .join(hostname) + .join(&highest_file); + //read file as byte stream let bytes = tokio::fs::read(&path).await; if let Err(e) = bytes { From 4c3537aee9bc319ecc5db22852b04ff7d3c65e39 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 22:45:43 +0200 Subject: [PATCH 063/200] chore: only copy build folder of frontend for frontend build step --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a6f36bd3f9..30464f87d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,9 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ COPY ./openflow.openapi.yaml /openflow.openapi.yaml COPY ./backend ./ -COPY --from=frontend /frontend /frontend +RUN mkdir -p /frontend + +COPY --from=frontend /frontend/build /frontend/build COPY --from=frontend /backend/windmill-api/openapi-deref.yaml ./windmill-api/openapi-deref.yaml COPY .git/ .git/ From b3b24ae83ab177de73d87507bd0b3490c0466547 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:34:31 +0200 Subject: [PATCH 064/200] chore(main): release 1.389.0 (#4310) * chore(main): release 1.389.0 * Apply automatic changes --------- Co-authored-by: rubenfiszel --- CHANGELOG.md | 12 + backend/Cargo.lock | 422 ++++++++---------- backend/Cargo.toml | 4 +- backend/windmill-api/openapi.yaml | 2 +- benchmarks/lib.ts | 2 +- cli/main.ts | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- lsp/Pipfile | 4 +- openflow.openapi.yaml | 2 +- .../WindmillClient/WindmillClient.psd1 | 2 +- python-client/wmill/pyproject.toml | 2 +- python-client/wmill_pg/pyproject.toml | 2 +- typescript-client/jsr.json | 2 +- typescript-client/package.json | 2 +- version.txt | 2 +- 16 files changed, 220 insertions(+), 248 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23f3e869f9..69b922450f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.389.0](https://github.com/windmill-labs/windmill/compare/v1.388.0...v1.389.0) (2024-09-01) + + +### Features + +* service logs ([#4244](https://github.com/windmill-labs/windmill/issues/4244)) ([2fe48df](https://github.com/windmill-labs/windmill/commit/2fe48df720b102255832dc6438d5d64f3443207a)) + + +### Bug Fixes + +* prevent duplicate worker alerts ([#4309](https://github.com/windmill-labs/windmill/issues/4309)) ([8e30928](https://github.com/windmill-labs/windmill/commit/8e30928a78c20daef81bc4f98487ab601ecc9b58)) + ## [1.388.0](https://github.com/windmill-labs/windmill/compare/v1.387.1...v1.388.0) (2024-08-30) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index d4c9c16960..cd53335985 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -383,7 +383,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.4.0", + "indexmap 2.5.0", "lexical-core", "num", "serde", @@ -465,7 +465,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -588,7 +588,7 @@ dependencies = [ "futures-lite 2.3.0", "parking", "polling 3.7.3", - "rustix 0.38.34", + "rustix 0.38.35", "slab", "tracing", "windows-sys 0.59.0", @@ -641,7 +641,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -689,7 +689,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -731,7 +731,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1079,7 +1079,7 @@ dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "tracing", ] @@ -1112,7 +1112,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper 1.0.1", "tokio", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -1271,7 +1271,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.76", + "syn 2.0.77", "which 4.4.2", ] @@ -1290,7 +1290,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1363,7 +1363,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1434,7 +1434,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "syn_derive", ] @@ -1508,9 +1508,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" dependencies = [ "bytemuck_derive", ] @@ -1523,7 +1523,7 @@ checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1772,7 +1772,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -1914,9 +1914,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -2145,7 +2145,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "subtle", "zeroize", ] @@ -2158,7 +2158,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2206,7 +2206,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2228,7 +2228,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -2290,7 +2290,7 @@ dependencies = [ "glob", "half", "hashbrown 0.14.5", - "indexmap 2.4.0", + "indexmap 2.5.0", "itertools 0.12.1", "log", "num_cpus", @@ -2459,7 +2459,7 @@ dependencies = [ "datafusion-expr", "datafusion-physical-expr", "hashbrown 0.14.5", - "indexmap 2.4.0", + "indexmap 2.5.0", "itertools 0.12.1", "log", "regex-syntax 0.8.4", @@ -2488,7 +2488,7 @@ dependencies = [ "half", "hashbrown 0.14.5", "hex", - "indexmap 2.4.0", + "indexmap 2.5.0", "itertools 0.12.1", "log", "paste", @@ -2532,7 +2532,7 @@ dependencies = [ "futures", "half", "hashbrown 0.14.5", - "indexmap 2.4.0", + "indexmap 2.5.0", "itertools 0.12.1", "log", "once_cell", @@ -2683,14 +2683,14 @@ dependencies = [ "hyper-util", "ipnet", "percent-encoding", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.7", "serde", "serde_json", "tokio", "tokio-rustls 0.26.0", "tokio-socks", "tokio-util", - "tower", + "tower 0.4.13", "tower-http", "tower-service", ] @@ -2748,7 +2748,7 @@ dependencies = [ "quote", "strum 0.25.0", "strum_macros 0.25.3", - "syn 2.0.76", + "syn 2.0.77", "thiserror", ] @@ -2800,10 +2800,10 @@ dependencies = [ "rustls 0.23.12", "rustls-pemfile 2.1.3", "rustls-tokio-stream", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.7", "serde", "tokio", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -2926,8 +2926,8 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 2.0.76", + "rustc_version 0.4.1", + "syn 2.0.77", ] [[package]] @@ -3024,7 +3024,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3180,7 +3180,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3200,7 +3200,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3311,9 +3311,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -3334,7 +3334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8add37afff2d4ffa83bc748a70b4b1370984f6980768554182424ef71447c35f" dependencies = [ "bitflags 1.3.2", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -3403,59 +3403,63 @@ checksum = "32016f1242eb82af5474752d00fd8ebcd9004bd69b462b1c91de833972d08ed4" dependencies = [ "proc-macro2", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "frunk" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a351b59e12f97b4176ee78497dff72e4276fb1ceb13e19056aca7fa0206287" +checksum = "874b6a17738fc273ec753618bac60ddaeac48cb1d7684c3e7bd472e57a28b817" dependencies = [ "frunk_core", "frunk_derives", "frunk_proc_macros", + "serde", ] [[package]] name = "frunk_core" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2469fab0bd07e64ccf0ad57a1438f63160c69b2e57f04a439653d68eb558d6" +checksum = "3529a07095650187788833d585c219761114005d5976185760cf794d265b6a5c" +dependencies = [ + "serde", +] [[package]] name = "frunk_derives" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fa992f1656e1707946bbba340ad244f0814009ef8c0118eb7b658395f19a2e" +checksum = "e99b8b3c28ae0e84b604c75f721c21dc77afb3706076af5e8216d15fd1deaae3" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "frunk_proc_macro_helpers" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b54add839292b743aeda6ebedbd8b11e93404f902c56223e51b9ec18a13d2c" +checksum = "05a956ef36c377977e512e227dcad20f68c2786ac7a54dacece3746046fea5ce" dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] name = "frunk_proc_macros" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b85a1d4a9a6b300b41c05e8e13ef2feca03e0334127f29eca9506a7fe13a93" +checksum = "67e86c2c9183662713fea27ea527aad20fb15fee635a71081ff91bf93df4dc51" dependencies = [ "frunk_core", "frunk_proc_macro_helpers", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3464,7 +3468,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7e180ac76c23b45e767bd7ae9579bc0bb458618c4bc71835926e098e61d15f8" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.35", "windows-sys 0.52.0", ] @@ -3579,7 +3583,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3832,7 +3836,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -3910,7 +3914,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -3929,7 +3933,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -4310,7 +4314,7 @@ dependencies = [ "pin-project-lite", "socket2 0.5.7", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -4383,9 +4387,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -4476,7 +4480,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -4565,7 +4569,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee7893dab2e44ae5f9d0173f26ff4aa327c10b01b06a72b52dd9405b628640d" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -4913,7 +4917,7 @@ dependencies = [ "smtp-proto", "tokio", "tokio-rustls 0.26.0", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -5143,7 +5147,7 @@ checksum = "a7ce64b975ed4f123575d11afd9491f2e37bbd5813fbfbc0f09ae1fbddea74e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5182,7 +5186,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "termcolor", "thiserror", ] @@ -5592,7 +5596,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5849,7 +5853,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -5910,7 +5914,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -5951,7 +5955,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6052,7 +6056,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix 0.38.35", "tracing", "windows-sys 0.59.0", ] @@ -6149,7 +6153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6163,11 +6167,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.22.20", ] [[package]] @@ -6202,7 +6206,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" dependencies = [ "proc-macro-rules-macros", "proc-macro2", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6214,7 +6218,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6275,7 +6279,7 @@ dependencies = [ "schemars", "serde", "serde_json", - "syn 2.0.76", + "syn 2.0.77", "thiserror", "typify", "unicode-ident", @@ -6295,7 +6299,7 @@ dependencies = [ "serde_json", "serde_tokenstream", "serde_yaml", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6338,7 +6342,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -6352,9 +6356,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "3b1f9bf148c15500d44581654fb9260bc9d82970f3ef777a79a40534f6aa784f" dependencies = [ "cc", ] @@ -6431,9 +6435,9 @@ dependencies = [ [[package]] name = "quick_cache" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27a893a83255c587d31137bc7e350387b49267b0deac44120fd8fa8bd0d61645" +checksum = "2ec0b6fed0a0ff01fa82d0c8982389375dd59c72dae84d4f8a15b1a894c273f7" dependencies = [ "ahash 0.8.11", "equivalent", @@ -7030,7 +7034,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.76", + "syn 2.0.77", "walkdir", ] @@ -7100,9 +7104,9 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -7136,9 +7140,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" dependencies = [ "bitflags 2.6.0", "errno", @@ -7169,7 +7173,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.7", "subtle", "zeroize", ] @@ -7248,9 +7252,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -7412,7 +7416,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -7559,7 +7563,7 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -7570,7 +7574,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -7579,7 +7583,7 @@ version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "itoa", "memchr", "ryu", @@ -7645,7 +7649,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -7683,7 +7687,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -7700,7 +7704,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -7709,7 +7713,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "itoa", "ryu", "serde", @@ -8050,7 +8054,7 @@ checksum = "01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8089,7 +8093,7 @@ dependencies = [ "hashbrown 0.14.5", "hashlink", "hex", - "indexmap 2.4.0", + "indexmap 2.5.0", "log", "memchr", "once_cell", @@ -8108,7 +8112,7 @@ dependencies = [ "tracing", "url", "uuid 1.10.0", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -8121,7 +8125,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8144,7 +8148,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.76", + "syn 2.0.77", "tempfile", "tokio", "url", @@ -8270,15 +8274,15 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a5daa25ea337c85ed954c0496e3bdd2c7308cc3b24cf7b50d04876654c579f" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" dependencies = [ "cc", "cfg-if", "libc", "psm", - "windows-sys 0.36.1", + "windows-sys 0.59.0", ] [[package]] @@ -8296,7 +8300,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8350,7 +8354,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8363,7 +8367,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8466,7 +8470,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84b67e115ab136fe0eb03558bb0508ca7782eeb446a96d165508c48617e3fd94" dependencies = [ "anyhow", - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_json", "swc_cached", @@ -8482,7 +8486,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8548,7 +8552,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8617,7 +8621,7 @@ checksum = "d37dc505c92af56d0f77cf6f31a6ccd37ac40cad1e01ff77277e0b1c70e8f8ff" dependencies = [ "better_scoped_tls", "bitflags 2.6.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "once_cell", "phf", "rustc-hash 1.1.0", @@ -8655,7 +8659,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8686,7 +8690,7 @@ checksum = "446da32cac8299973aaf1d37496562bfd0c1e4f3c3ab5d0af6f07f42e8184102" dependencies = [ "base64 0.21.7", "dashmap", - "indexmap 2.4.0", + "indexmap 2.5.0", "once_cell", "serde", "sha1", @@ -8725,7 +8729,7 @@ version = "0.130.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13e62b199454a576c5fdbd7e1bef8ab88a395427456d8a713d994b7d469833aa" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "num_cpus", "once_cell", "rustc-hash 1.1.0", @@ -8774,7 +8778,7 @@ checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8785,7 +8789,7 @@ checksum = "91745f3561057493d2da768437c427c0e979dff7396507ae02f16c981c4a8466" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8808,7 +8812,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8824,9 +8828,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.76" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -8842,7 +8846,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -8868,7 +8872,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -9094,7 +9098,7 @@ dependencies = [ "cfg-if", "fastrand 2.1.1", "once_cell", - "rustix 0.38.34", + "rustix 0.38.35", "windows-sys 0.59.0", ] @@ -9133,7 +9137,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -9357,7 +9361,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -9508,31 +9512,20 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -9568,6 +9561,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36b837f86b25d7c0d7988f00a54e74739be6477f2aac6201b8f429a7569991b7" +dependencies = [ + "tower-layer", + "tower-service", +] + [[package]] name = "tower-cookies" version = "0.10.0" @@ -9650,7 +9653,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -9868,7 +9871,7 @@ dependencies = [ "regress", "schemars", "serde_json", - "syn 2.0.76", + "syn 2.0.77", "thiserror", "unicode-ident", ] @@ -9885,7 +9888,7 @@ dependencies = [ "serde", "serde_json", "serde_tokenstream", - "syn 2.0.76", + "syn 2.0.77", "typify-impl", ] @@ -10102,7 +10105,7 @@ dependencies = [ "serde", "serde_json", "url", - "webpki-roots 0.26.3", + "webpki-roots 0.26.5", ] [[package]] @@ -10279,7 +10282,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-shared", ] @@ -10313,7 +10316,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10347,7 +10350,7 @@ checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -10400,9 +10403,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" dependencies = [ "rustls-pki-types", ] @@ -10416,7 +10419,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.34", + "rustix 0.38.35", ] [[package]] @@ -10427,7 +10430,7 @@ checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" dependencies = [ "either", "home", - "rustix 0.38.34", + "rustix 0.38.35", "winsafe", ] @@ -10481,7 +10484,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "axum", @@ -10523,7 +10526,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "argon2", @@ -10552,7 +10555,7 @@ dependencies = [ "hmac", "http 1.1.0", "hyper 1.4.1", - "itertools 0.10.5", + "itertools 0.13.0", "jsonwebtoken", "lazy_static", "magic-crypt", @@ -10586,7 +10589,7 @@ dependencies = [ "tokio-native-tls", "tokio-tar", "tokio-util", - "tower", + "tower 0.5.0", "tower-cookies", "tower-http", "tracing", @@ -10607,7 +10610,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.388.0" +version = "1.389.0" dependencies = [ "base64 0.21.7", "chrono", @@ -10625,7 +10628,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.388.0" +version = "1.389.0" dependencies = [ "chrono", "serde", @@ -10638,7 +10641,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "async-stream", @@ -10655,8 +10658,8 @@ dependencies = [ "hex", "hmac", "hyper 1.4.1", - "indexmap 2.4.0", - "itertools 0.10.5", + "indexmap 2.5.0", + "itertools 0.13.0", "lazy_static", "magic-crypt", "mail-send", @@ -10682,7 +10685,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.388.0" +version = "1.389.0" dependencies = [ "regex", "rsmq_async", @@ -10697,7 +10700,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "bytes", @@ -10718,7 +10721,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.388.0" +version = "1.389.0" dependencies = [ "convert_case 0.6.0", "serde", @@ -10727,7 +10730,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "lazy_static", @@ -10739,11 +10742,11 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "gosyn", - "itertools 0.10.5", + "itertools 0.13.0", "lazy_static", "regex", "windmill-parser", @@ -10751,7 +10754,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "lazy_static", @@ -10763,10 +10766,10 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.13.0", "php-parser-rs", "serde_json", "windmill-parser", @@ -10774,10 +10777,10 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.13.0", "rustpython-parser", "serde_json", "windmill-parser", @@ -10785,11 +10788,11 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "async-recursion", - "itertools 0.10.5", + "itertools 0.13.0", "lazy_static", "phf", "regex", @@ -10803,7 +10806,7 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10813,14 +10816,14 @@ dependencies = [ "quote", "regex", "serde_json", - "syn 2.0.76", + "syn 2.0.77", "toml 0.7.8", "windmill-parser", ] [[package]] name = "windmill-parser-sql" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "lazy_static", @@ -10832,7 +10835,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "lazy_static", @@ -10850,7 +10853,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -10870,7 +10873,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "async-recursion", @@ -10882,7 +10885,7 @@ dependencies = [ "futures-core", "hex", "hmac", - "itertools 0.10.5", + "itertools 0.13.0", "lazy_static", "prometheus", "regex", @@ -10903,7 +10906,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.388.0" +version = "1.389.0" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -10913,7 +10916,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.388.0" +version = "1.389.0" dependencies = [ "anyhow", "async-recursion", @@ -10938,7 +10941,7 @@ dependencies = [ "gcp_auth", "git-version", "hex", - "itertools 0.10.5", + "itertools 0.13.0", "jsonwebtoken", "lazy_static", "mappable-rc", @@ -11024,19 +11027,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -11107,12 +11097,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -11125,12 +11109,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -11149,12 +11127,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -11167,12 +11139,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -11197,12 +11163,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -11266,7 +11226,7 @@ checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", "linux-raw-sys 0.4.14", - "rustix 0.38.34", + "rustix 0.38.35", ] [[package]] @@ -11310,7 +11270,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "synstructure", ] @@ -11332,7 +11292,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", ] [[package]] @@ -11352,7 +11312,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.77", "synstructure", ] diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 64307eb624..1a6310fcb9 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.388.0" +version = "1.389.0" authors.workspace = true edition.workspace = true @@ -26,7 +26,7 @@ members = [ ] [workspace.package] -version = "1.388.0" +version = "1.389.0" authors = ["Ruben Fiszel "] edition = "2021" diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 7252c6f873..4ac71201ee 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.388.0 + version: 1.389.0 title: Windmill API contact: diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index c194e8c5f2..111b51167a 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.388.0"; +export const VERSION = "v1.389.0"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/main.ts b/cli/main.ts index 566aae402e..0a15ad7386 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -34,7 +34,7 @@ addEventListener("error", (event) => { } }); -export const VERSION = "v1.388.0"; +export const VERSION = "v1.389.0"; let command: any = new Command() .name("wmill") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 4427dc0f9d..d07fdcb892 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "windmill-components", - "version": "1.388.0", + "version": "1.389.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.388.0", + "version": "1.389.0", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", diff --git a/frontend/package.json b/frontend/package.json index 544393e40c..374363dda7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.388.0", + "version": "1.389.0", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/lsp/Pipfile b/lsp/Pipfile index 97c13c4a5f..bbc719a340 100644 --- a/lsp/Pipfile +++ b/lsp/Pipfile @@ -4,8 +4,8 @@ verify_ssl = true name = "pypi" [packages] -wmill = ">=1.388.0" -wmill_pg = ">=1.388.0" +wmill = ">=1.389.0" +wmill_pg = ">=1.389.0" sendgrid = "*" mysql-connector-python = "*" pymongo = "*" diff --git a/openflow.openapi.yaml b/openflow.openapi.yaml index 92f058a8ee..2cdd6683ac 100644 --- a/openflow.openapi.yaml +++ b/openflow.openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.388.0 + version: 1.389.0 title: OpenFlow Spec contact: name: Ruben Fiszel diff --git a/powershell-client/WindmillClient/WindmillClient.psd1 b/powershell-client/WindmillClient/WindmillClient.psd1 index a30c99644e..06df974156 100644 --- a/powershell-client/WindmillClient/WindmillClient.psd1 +++ b/powershell-client/WindmillClient/WindmillClient.psd1 @@ -12,7 +12,7 @@ RootModule = 'WindmillClient.psm1' # Version number of this module. -ModuleVersion = '1.388.0' +ModuleVersion = '1.389.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/python-client/wmill/pyproject.toml b/python-client/wmill/pyproject.toml index ee9ccd5b2a..88ecb0125c 100644 --- a/python-client/wmill/pyproject.toml +++ b/python-client/wmill/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill" -version = "1.388.0" +version = "1.389.0" description = "A client library for accessing Windmill server wrapping the Windmill client API" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/python-client/wmill_pg/pyproject.toml b/python-client/wmill_pg/pyproject.toml index 15a9b333bb..68a89cbc01 100644 --- a/python-client/wmill_pg/pyproject.toml +++ b/python-client/wmill_pg/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill-pg" -version = "1.388.0" +version = "1.389.0" description = "An extension client for the wmill client library focused on pg" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json index 4818598cd1..dc8caa3bdc 100644 --- a/typescript-client/jsr.json +++ b/typescript-client/jsr.json @@ -1,6 +1,6 @@ { "name": "@windmill/windmill", - "version": "1.388.0", + "version": "1.389.0", "exports": "./src/index.ts", "publish": { "exclude": ["!src", "./s3Types.ts", "./client.ts"] diff --git a/typescript-client/package.json b/typescript-client/package.json index b5bb05c125..ba28ea0efd 100644 --- a/typescript-client/package.json +++ b/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "windmill-client", "description": "Windmill SDK client for browsers and Node.js", - "version": "1.388.0", + "version": "1.389.0", "author": "Ruben Fiszel", "license": "Apache 2.0", "devDependencies": { diff --git a/version.txt b/version.txt index 7be5dec806..8a036202bd 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.388.0 +1.389.0 From bf9f7d79ffc33634f331fc7332855d2cbf36dd3d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:49:39 +0200 Subject: [PATCH 065/200] fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (#4314) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-SVELTE-7856103 Co-authored-by: snyk-bot --- frontend/package-lock.json | 23 +++++++++++++---------- frontend/package.json | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index d07fdcb892..7ee98eee2d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -112,7 +112,7 @@ "simple-svelte-autocomplete": "^2.5.1", "style-to-object": "^0.4.1", "stylelint-config-recommended": "^13.0.0", - "svelte": "^4.0.0", + "svelte": "^4.2.19", "svelte-awesome-color-picker": "^3.0.4", "svelte-check": "^3.4.3", "svelte-floating-ui": "^1.5.8", @@ -5294,11 +5294,12 @@ } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dependencies": { - "dequal": "^2.0.3" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/bail": { @@ -12280,16 +12281,18 @@ } }, "node_modules/svelte": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.5.tgz", - "integrity": "sha512-P9YPKsGkNdw4OJbtpd1uzimQHPj7Ai2sPcOHmmD6VgkFhFDmcYevQi7vE4cQ1g8/Vs64aL2TwMoCNFAzv7TPaQ==", + "version": "4.2.19", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", "acorn": "^8.9.0", "aria-query": "^5.3.0", - "axobject-query": "^3.2.1", + "axobject-query": "^4.0.0", "code-red": "^1.0.3", "css-tree": "^2.3.1", "estree-walker": "^3.0.3", diff --git a/frontend/package.json b/frontend/package.json index 374363dda7..eefebf6099 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -50,7 +50,7 @@ "simple-svelte-autocomplete": "^2.5.1", "style-to-object": "^0.4.1", "stylelint-config-recommended": "^13.0.0", - "svelte": "^4.0.0", + "svelte": "^4.2.19", "svelte-awesome-color-picker": "^3.0.4", "svelte-check": "^3.4.3", "svelte-floating-ui": "^1.5.8", From 8a105c9c673b48817a022a88dacecab5f6004923 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:49:52 +0200 Subject: [PATCH 066/200] fix: llm/requirements.txt to reduce vulnerabilities (#4313) The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-ANYIO-7361842 - https://snyk.io/vuln/SNYK-PYTHON-TQDM-6807582 - https://snyk.io/vuln/SNYK-PYTHON-ZIPP-7430899 Co-authored-by: snyk-bot --- llm/requirements.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/llm/requirements.txt b/llm/requirements.txt index 82465bbbcf..17d8080260 100644 --- a/llm/requirements.txt +++ b/llm/requirements.txt @@ -1,4 +1,6 @@ openai==1.30.3 python-dotenv==1.0.0 pyyaml==6.0 -tqdm==4.65.0 \ No newline at end of file +tqdm==4.66.3 +anyio>=4.4.0 # not directly required, pinned by Snyk to avoid a vulnerability +zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability \ No newline at end of file From 0e91c36f5a2f5fdd812a3847fabccdfa386e78e9 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:50:21 +0200 Subject: [PATCH 067/200] fix: frontend/package.json & frontend/package-lock.json to reduce vulnerabilities (#3918) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-WS-7266574 Co-authored-by: snyk-bot --- frontend/package-lock.json | 13 +++++++++---- frontend/package.json | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7ee98eee2d..7320139bd9 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -74,7 +74,7 @@ "windmill-parser-wasm-ts": "^1.382.2", "windmill-sql-datatype-parser-wasm": "^1.318.0", "y-monaco": "^0.1.4", - "y-websocket": "^1.5.0", + "y-websocket": "^1.5.4", "yaml": "^2.3.4", "yjs": "^13.6.7" }, @@ -13563,9 +13563,10 @@ } }, "node_modules/y-websocket": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/y-websocket/-/y-websocket-1.5.0.tgz", - "integrity": "sha512-A8AO6XtnQlYwWFytWdkDCeXg4l8ghRTIw5h2YUgUYDmEC9ugWGIwYNW80yadhSFAF7CvuWTEkQNEpevnH6EiZw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/y-websocket/-/y-websocket-1.5.4.tgz", + "integrity": "sha512-Y3021uy0anOIHqAPyAZbNDoR05JuMEGjRNI8c+K9MHzVS8dWoImdJUjccljAznc8H2L7WkIXhRHZ1igWNRSgPw==", + "license": "MIT", "dependencies": { "lib0": "^0.2.52", "lodash.debounce": "^4.0.8", @@ -13575,6 +13576,10 @@ "y-websocket": "bin/server.js", "y-websocket-server": "bin/server.js" }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, "funding": { "type": "GitHub Sponsors ❤", "url": "https://github.com/sponsors/dmonad" diff --git a/frontend/package.json b/frontend/package.json index eefebf6099..d40bf226f0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -147,7 +147,7 @@ "windmill-parser-wasm-ts": "^1.382.2", "windmill-sql-datatype-parser-wasm": "^1.318.0", "y-monaco": "^0.1.4", - "y-websocket": "^1.5.0", + "y-websocket": "^1.5.4", "yaml": "^2.3.4", "yjs": "^13.6.7" }, From 1289ec67be335171f545226e85bb34f894517ddf Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:51:10 +0200 Subject: [PATCH 068/200] fix: llm/requirements.txt to reduce vulnerabilities (#3965) The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-ANYIO-7361842 Co-authored-by: snyk-bot --- llm/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llm/requirements.txt b/llm/requirements.txt index 17d8080260..0848e18112 100644 --- a/llm/requirements.txt +++ b/llm/requirements.txt @@ -3,4 +3,4 @@ python-dotenv==1.0.0 pyyaml==6.0 tqdm==4.66.3 anyio>=4.4.0 # not directly required, pinned by Snyk to avoid a vulnerability -zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability \ No newline at end of file +zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability From 059be0c40de36b3accee0cf2a04e79f7a78cf216 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 1 Sep 2024 23:51:43 +0200 Subject: [PATCH 069/200] fix: integration_tests/requirements.txt to reduce vulnerabilities (#4038) The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-CERTIFI-7430173 Co-authored-by: snyk-bot --- integration_tests/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/requirements.txt b/integration_tests/requirements.txt index 5069b49db8..4b36ac91dd 100644 --- a/integration_tests/requirements.txt +++ b/integration_tests/requirements.txt @@ -1,5 +1,5 @@ anyio==4.2.0 -certifi==2023.11.17 +certifi==2024.7.4 h11==0.14.0 httpcore==1.0.2 httpx==0.26.0 From 74cb33db95e1920a7ea63606d0a1c4babc323173 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:58:37 +0200 Subject: [PATCH 070/200] chore(deps): bump docker/login-action from 2 to 3 (#2414) Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-caddy-l4-image.yml | 2 +- .github/workflows/build-staging-image.yml | 2 +- .github/workflows/build_cli_image.yml | 2 +- .github/workflows/build_ws.yml | 2 +- .github/workflows/docker-image-rpi4.yml | 2 +- .github/workflows/docker-image.yml | 26 +++++++++++----------- .github/workflows/publish_lsp.yml | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-caddy-l4-image.yml b/.github/workflows/build-caddy-l4-image.yml index c6d9c13f8e..c29ca9ad6e 100644 --- a/.github/workflows/build-caddy-l4-image.yml +++ b/.github/workflows/build-caddy-l4-image.yml @@ -26,7 +26,7 @@ jobs: type=raw,value=latest,enable={{is_default_branch}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/build-staging-image.yml b/.github/workflows/build-staging-image.yml index 2940114f19..11e74db9f3 100644 --- a/.github/workflows/build-staging-image.yml +++ b/.github/workflows/build-staging-image.yml @@ -45,7 +45,7 @@ jobs: type=ref,event=branch - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/build_cli_image.yml b/.github/workflows/build_cli_image.yml index 7f66d68f9e..391d8d4b5a 100644 --- a/.github/workflows/build_cli_image.yml +++ b/.github/workflows/build_cli_image.yml @@ -35,7 +35,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/build_ws.yml b/.github/workflows/build_ws.yml index a01f8f6cb6..024bfd4e56 100644 --- a/.github/workflows/build_ws.yml +++ b/.github/workflows/build_ws.yml @@ -33,7 +33,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/docker-image-rpi4.yml b/.github/workflows/docker-image-rpi4.yml index dd64cafe71..5d70d137d4 100644 --- a/.github/workflows/docker-image-rpi4.yml +++ b/.github/workflows/docker-image-rpi4.yml @@ -37,7 +37,7 @@ jobs: - uses: depot/setup-action@v1 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index dc2feb7d10..7d0b5fc9aa 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -48,7 +48,7 @@ jobs: - uses: depot/setup-action@v1 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -121,7 +121,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -183,7 +183,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -362,7 +362,7 @@ jobs: with: fetch-depth: 0 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -381,7 +381,7 @@ jobs: with: fetch-depth: 0 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -461,7 +461,7 @@ jobs: type=sha,enable=true,priority=100,prefix=,suffix=,format=short - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -494,7 +494,7 @@ jobs: - uses: depot/setup-action@v1 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -540,7 +540,7 @@ jobs: uses: docker/setup-buildx-action@v2 - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -595,7 +595,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -641,7 +641,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -686,7 +686,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -732,7 +732,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -777,7 +777,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} diff --git a/.github/workflows/publish_lsp.yml b/.github/workflows/publish_lsp.yml index f4c7ed3351..8d32165e46 100644 --- a/.github/workflows/publish_lsp.yml +++ b/.github/workflows/publish_lsp.yml @@ -44,7 +44,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Login to registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} From a79bceba42a8c937eaca29014e78f800e1b373ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:14:38 +0200 Subject: [PATCH 071/200] chore(deps): bump actions/checkout from 3 to 4 (#2232) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/backend-test.yml | 2 +- .github/workflows/build_cli_image.yml | 2 +- .github/workflows/build_ws.yml | 2 +- .github/workflows/change-versions.yml | 2 +- .github/workflows/deno_on_release.yml | 4 ++-- .github/workflows/frontend-check.yml | 2 +- .github/workflows/go_on_release.yml | 4 ++-- .github/workflows/npm_on_release.yml | 2 +- .github/workflows/publish_lsp.yml | 2 +- .github/workflows/pypi_on_release.yml | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/backend-test.yml b/.github/workflows/backend-test.yml index 3beb642fa6..9963ecd4d1 100644 --- a/.github/workflows/backend-test.yml +++ b/.github/workflows/backend-test.yml @@ -29,7 +29,7 @@ jobs: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.80.0 diff --git a/.github/workflows/build_cli_image.yml b/.github/workflows/build_cli_image.yml index 391d8d4b5a..54ef4ff174 100644 --- a/.github/workflows/build_cli_image.yml +++ b/.github/workflows/build_cli_image.yml @@ -18,7 +18,7 @@ jobs: publish_cli: runs-on: ubicloud steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: depot/setup-action@v1 diff --git a/.github/workflows/build_ws.yml b/.github/workflows/build_ws.yml index 024bfd4e56..b411cf2b55 100644 --- a/.github/workflows/build_ws.yml +++ b/.github/workflows/build_ws.yml @@ -16,7 +16,7 @@ jobs: publish_multiplayer: runs-on: ubicloud-standard-8 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: depot/setup-action@v1 diff --git a/.github/workflows/change-versions.yml b/.github/workflows/change-versions.yml index 65a66a6fa4..846eaa9658 100644 --- a/.github/workflows/change-versions.yml +++ b/.github/workflows/change-versions.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubicloud container: node:18 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: git config --system --add safe.directory /__w/windmill/windmill - name: Change versions run: ./.github/change-versions.sh "$(cat version.txt)" diff --git a/.github/workflows/deno_on_release.yml b/.github/workflows/deno_on_release.yml index 68c8b69aa6..61f3c3d7e6 100644 --- a/.github/workflows/deno_on_release.yml +++ b/.github/workflows/deno_on_release.yml @@ -10,7 +10,7 @@ jobs: build_deno_and_push_to_repo: runs-on: ubicloud steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: generate_deno run: | cd deno-client @@ -33,7 +33,7 @@ jobs: needs: [build_deno_and_push_to_repo] runs-on: ubicloud steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: repository: ${{ github.repository_owner }}/${{ env.repo }} token: ${{ secrets.DENO_PAT }} diff --git a/.github/workflows/frontend-check.yml b/.github/workflows/frontend-check.yml index ac8ad4272e..845d03146d 100644 --- a/.github/workflows/frontend-check.yml +++ b/.github/workflows/frontend-check.yml @@ -10,7 +10,7 @@ jobs: npm_check: runs-on: ubicloud-standard-8 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 18 diff --git a/.github/workflows/go_on_release.yml b/.github/workflows/go_on_release.yml index 44b6a030a8..4d39d70178 100644 --- a/.github/workflows/go_on_release.yml +++ b/.github/workflows/go_on_release.yml @@ -12,7 +12,7 @@ jobs: build_go_and_push_to_repo: runs-on: ubicloud-standard-8 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-go@v4 - name: install_jq run: | @@ -42,7 +42,7 @@ jobs: needs: [build_go_and_push_to_repo] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: repository: ${{ github.repository_owner }}/${{ env.repo }} token: ${{ secrets.DENO_PAT }} diff --git a/.github/workflows/npm_on_release.yml b/.github/workflows/npm_on_release.yml index a8e28722cc..a4cc1a028f 100644 --- a/.github/workflows/npm_on_release.yml +++ b/.github/workflows/npm_on_release.yml @@ -8,7 +8,7 @@ jobs: build_npm: runs-on: ubicloud-standard-8 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: "16.x" diff --git a/.github/workflows/publish_lsp.yml b/.github/workflows/publish_lsp.yml index 8d32165e46..a85dd90c0b 100644 --- a/.github/workflows/publish_lsp.yml +++ b/.github/workflows/publish_lsp.yml @@ -27,7 +27,7 @@ jobs: needs: [sleep] runs-on: ubicloud steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: depot/setup-action@v1 diff --git a/.github/workflows/pypi_on_release.yml b/.github/workflows/pypi_on_release.yml index 328033d362..39a3e11b2e 100644 --- a/.github/workflows/pypi_on_release.yml +++ b/.github/workflows/pypi_on_release.yml @@ -12,7 +12,7 @@ jobs: container: image: ghcr.io/windmill-labs/python-client-builder steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Upload python client env: PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} From 0452734712c975adfd556100cf79511e0b353465 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:14:49 +0200 Subject: [PATCH 072/200] chore(deps): bump docker/metadata-action from 4 to 5 (#2301) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5. - [Release notes](https://github.com/docker/metadata-action/releases) - [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md) - [Commits](https://github.com/docker/metadata-action/compare/v4...v5) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build_ws.yml | 2 +- .github/workflows/docker-image.yml | 4 ++-- .github/workflows/publish_lsp.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_ws.yml b/.github/workflows/build_ws.yml index b411cf2b55..cccab8bea0 100644 --- a/.github/workflows/build_ws.yml +++ b/.github/workflows/build_ws.yml @@ -22,7 +22,7 @@ jobs: - uses: depot/setup-action@v1 - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 7d0b5fc9aa..6eaf7f2176 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -60,7 +60,7 @@ jobs: - name: Docker meta id: meta-public - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -110,7 +110,7 @@ jobs: - name: Docker meta id: meta-ee-public - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee diff --git a/.github/workflows/publish_lsp.yml b/.github/workflows/publish_lsp.yml index a85dd90c0b..84f1f836aa 100644 --- a/.github/workflows/publish_lsp.yml +++ b/.github/workflows/publish_lsp.yml @@ -33,7 +33,7 @@ jobs: - uses: depot/setup-action@v1 - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} From efdf56632508fe772e243463e385efb6c9eb1137 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:25:36 +0200 Subject: [PATCH 073/200] chore(deps): bump reggionick/s3-deploy from 3 to 4 (#2002) Bumps [reggionick/s3-deploy](https://github.com/reggionick/s3-deploy) from 3 to 4. - [Release notes](https://github.com/reggionick/s3-deploy/releases) - [Commits](https://github.com/reggionick/s3-deploy/compare/v3...v4) --- updated-dependencies: - dependency-name: reggionick/s3-deploy dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 6eaf7f2176..fe096cffdc 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -561,7 +561,7 @@ jobs: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee-nsjail:${{ steps.git_hash.outputs.GIT_HASH }} path: "/static_frontend/." - - uses: reggionick/s3-deploy@v3 + - uses: reggionick/s3-deploy@v4 if: github.event_name != 'pull_request' with: folder: ${{ steps.extract.outputs.destination }} From da2915d37d6dbfbb81455e9c01239108d27222b9 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 2 Sep 2024 00:46:21 +0200 Subject: [PATCH 074/200] nits error message --- backend/windmill-queue/src/jobs.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/windmill-queue/src/jobs.rs b/backend/windmill-queue/src/jobs.rs index 3bf0c4c9ec..dddb6cdc6b 100644 --- a/backend/windmill-queue/src/jobs.rs +++ b/backend/windmill-queue/src/jobs.rs @@ -506,8 +506,9 @@ pub async fn add_completed_job_error Date: Mon, 2 Sep 2024 14:03:44 +0200 Subject: [PATCH 075/200] fix: fix erronous branchone status --- frontend/src/lib/components/FlowStatusViewerInner.svelte | 1 - frontend/src/lib/components/flows/map/VirtualItem.svelte | 2 +- frontend/src/lib/components/graph/graphBuilder.ts | 1 + .../graph/renderers/nodes/BranchOneStart.svelte | 2 +- .../components/graph/renderers/nodes/NoBranchNode.svelte | 8 +++++++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/components/FlowStatusViewerInner.svelte b/frontend/src/lib/components/FlowStatusViewerInner.svelte index b0e933ef8a..52283a54a2 100644 --- a/frontend/src/lib/components/FlowStatusViewerInner.svelte +++ b/frontend/src/lib/components/FlowStatusViewerInner.svelte @@ -938,7 +938,6 @@ if (rightColumnSelect != 'node_definition') { rightColumnSelect = 'node_status' } - console.log('BAR', e.detail) if (typeof e.detail == 'string') { if (e.detail == 'Input') { selectedNode = 'start' diff --git a/frontend/src/lib/components/flows/map/VirtualItem.svelte b/frontend/src/lib/components/flows/map/VirtualItem.svelte index f292523741..4ab598bf9c 100644 --- a/frontend/src/lib/components/flows/map/VirtualItem.svelte +++ b/frontend/src/lib/components/flows/map/VirtualItem.svelte @@ -48,7 +48,7 @@ } } }} - id={`flow-editor-virtual-${label}`} + id={`flow-editor-virtual-${encodeURIComponent(label)}`} >
| undefined offset: number label: string | undefined + branchOne: boolean } + + $: borderStatus = data.branchOne + ? computeBorderStatus(0, 'branchone', data.flowModuleStates?.[data.id]) + : undefined @@ -25,7 +31,7 @@ selectable={true} selected={false} bgColor={getStateColor(undefined, darkMode)} - borderColor={getStateColor(data?.flowModuleStates?.[data?.id]?.type, darkMode)} + borderColor={getStateColor(borderStatus, darkMode)} on:select={(e) => { data?.eventHandlers?.select(e.detail) }} From a5dde313040628475dbfbc74ce5e7dc859033fd7 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 2 Sep 2024 14:06:41 +0200 Subject: [PATCH 076/200] chore(main): release 1.389.1 (#4316) * chore(main): release 1.389.1 * Apply automatic changes * Update CHANGELOG.md --------- Co-authored-by: rubenfiszel --- CHANGELOG.md | 7 +++ backend/Cargo.lock | 54 +++++++++---------- backend/Cargo.toml | 4 +- backend/windmill-api/openapi.yaml | 2 +- benchmarks/lib.ts | 2 +- cli/main.ts | 2 +- frontend/package-lock.json | 4 +- frontend/package.json | 2 +- lsp/Pipfile | 4 +- openflow.openapi.yaml | 2 +- .../WindmillClient/WindmillClient.psd1 | 2 +- python-client/wmill/pyproject.toml | 2 +- python-client/wmill_pg/pyproject.toml | 2 +- typescript-client/jsr.json | 2 +- typescript-client/package.json | 2 +- version.txt | 2 +- 16 files changed, 51 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69b922450f..33f7ef001f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.389.1](https://github.com/windmill-labs/windmill/compare/v1.389.0...v1.389.1) (2024-09-02) + + +### Bug Fixes + +* fix erronous branchone status in flow viewer ([e311684](https://github.com/windmill-labs/windmill/commit/e311684a668c461538a3456c02c82a1ea6fecbc9)) +* ## [1.389.0](https://github.com/windmill-labs/windmill/compare/v1.388.0...v1.389.0) (2024-09-01) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index cd53335985..e1f0bff04a 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -725,9 +725,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", @@ -6447,9 +6447,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" +checksum = "a2d2fb862b7ba45e615c1429def928f2e15f815bdf933b27a2d3824e224c1f46" dependencies = [ "bytes", "pin-project-lite", @@ -6465,9 +6465,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" +checksum = "ea0a9b3a42929fad8a7c3de7f86ce0814cfa893328157672680e9fb1145549c5" dependencies = [ "bytes", "rand 0.8.5", @@ -10484,7 +10484,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "axum", @@ -10526,7 +10526,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "argon2", @@ -10610,7 +10610,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.389.0" +version = "1.389.1" dependencies = [ "base64 0.21.7", "chrono", @@ -10628,7 +10628,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.389.0" +version = "1.389.1" dependencies = [ "chrono", "serde", @@ -10641,7 +10641,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "async-stream", @@ -10685,7 +10685,7 @@ dependencies = [ [[package]] name = "windmill-git-sync" -version = "1.389.0" +version = "1.389.1" dependencies = [ "regex", "rsmq_async", @@ -10700,7 +10700,7 @@ dependencies = [ [[package]] name = "windmill-indexer" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "bytes", @@ -10721,7 +10721,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.389.0" +version = "1.389.1" dependencies = [ "convert_case 0.6.0", "serde", @@ -10730,7 +10730,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "lazy_static", @@ -10742,7 +10742,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "gosyn", @@ -10754,7 +10754,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "lazy_static", @@ -10766,7 +10766,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10777,7 +10777,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "itertools 0.13.0", @@ -10788,7 +10788,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "async-recursion", @@ -10806,7 +10806,7 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -10823,7 +10823,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "lazy_static", @@ -10835,7 +10835,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "lazy_static", @@ -10853,7 +10853,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -10873,7 +10873,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "async-recursion", @@ -10906,7 +10906,7 @@ dependencies = [ [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.389.0" +version = "1.389.1" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -10916,7 +10916,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.389.0" +version = "1.389.1" dependencies = [ "anyhow", "async-recursion", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 1a6310fcb9..230d84cd74 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.389.0" +version = "1.389.1" authors.workspace = true edition.workspace = true @@ -26,7 +26,7 @@ members = [ ] [workspace.package] -version = "1.389.0" +version = "1.389.1" authors = ["Ruben Fiszel "] edition = "2021" diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 4ac71201ee..6c1b871ce5 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.389.0 + version: 1.389.1 title: Windmill API contact: diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index 111b51167a..6656ed2245 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.389.0"; +export const VERSION = "v1.389.1"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/main.ts b/cli/main.ts index 0a15ad7386..100d3b42c0 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -34,7 +34,7 @@ addEventListener("error", (event) => { } }); -export const VERSION = "v1.389.0"; +export const VERSION = "v1.389.1"; let command: any = new Command() .name("wmill") diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7320139bd9..4c1f18f193 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "windmill-components", - "version": "1.389.0", + "version": "1.389.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.389.0", + "version": "1.389.1", "license": "AGPL-3.0", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", diff --git a/frontend/package.json b/frontend/package.json index d40bf226f0..319bdcfb4a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.389.0", + "version": "1.389.1", "scripts": { "dev": "vite dev", "build": "vite build", diff --git a/lsp/Pipfile b/lsp/Pipfile index bbc719a340..bfa5c069de 100644 --- a/lsp/Pipfile +++ b/lsp/Pipfile @@ -4,8 +4,8 @@ verify_ssl = true name = "pypi" [packages] -wmill = ">=1.389.0" -wmill_pg = ">=1.389.0" +wmill = ">=1.389.1" +wmill_pg = ">=1.389.1" sendgrid = "*" mysql-connector-python = "*" pymongo = "*" diff --git a/openflow.openapi.yaml b/openflow.openapi.yaml index 2cdd6683ac..79e8e3c566 100644 --- a/openflow.openapi.yaml +++ b/openflow.openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.389.0 + version: 1.389.1 title: OpenFlow Spec contact: name: Ruben Fiszel diff --git a/powershell-client/WindmillClient/WindmillClient.psd1 b/powershell-client/WindmillClient/WindmillClient.psd1 index 06df974156..013fbb6c71 100644 --- a/powershell-client/WindmillClient/WindmillClient.psd1 +++ b/powershell-client/WindmillClient/WindmillClient.psd1 @@ -12,7 +12,7 @@ RootModule = 'WindmillClient.psm1' # Version number of this module. -ModuleVersion = '1.389.0' +ModuleVersion = '1.389.1' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/python-client/wmill/pyproject.toml b/python-client/wmill/pyproject.toml index 88ecb0125c..276f050d26 100644 --- a/python-client/wmill/pyproject.toml +++ b/python-client/wmill/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill" -version = "1.389.0" +version = "1.389.1" description = "A client library for accessing Windmill server wrapping the Windmill client API" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/python-client/wmill_pg/pyproject.toml b/python-client/wmill_pg/pyproject.toml index 68a89cbc01..ee35b8fbe3 100644 --- a/python-client/wmill_pg/pyproject.toml +++ b/python-client/wmill_pg/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "wmill-pg" -version = "1.389.0" +version = "1.389.1" description = "An extension client for the wmill client library focused on pg" license = "Apache-2.0" homepage = "https://windmill.dev" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json index dc8caa3bdc..74d6bf90e7 100644 --- a/typescript-client/jsr.json +++ b/typescript-client/jsr.json @@ -1,6 +1,6 @@ { "name": "@windmill/windmill", - "version": "1.389.0", + "version": "1.389.1", "exports": "./src/index.ts", "publish": { "exclude": ["!src", "./s3Types.ts", "./client.ts"] diff --git a/typescript-client/package.json b/typescript-client/package.json index ba28ea0efd..daf9c1ee4a 100644 --- a/typescript-client/package.json +++ b/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "windmill-client", "description": "Windmill SDK client for browsers and Node.js", - "version": "1.389.0", + "version": "1.389.1", "author": "Ruben Fiszel", "license": "Apache 2.0", "devDependencies": { diff --git a/version.txt b/version.txt index 8a036202bd..2897c6f324 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.389.0 +1.389.1 From 71470d7da9d3c7a52d7c5a206849f2e63ac4fa02 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 2 Sep 2024 15:13:42 +0200 Subject: [PATCH 077/200] feat: add yaml editor in flow builder --- .../src/lib/components/FlowBuilder.svelte | 8 +++ .../src/lib/components/FlowViewerInner.svelte | 8 +-- .../src/lib/components/WorkerTagPicker.svelte | 5 +- .../flows/content/FlowSettings.svelte | 6 +- .../flows/header/FlowYamlEditor.svelte | 62 +++++++++++++++++++ frontend/src/lib/components/flows/types.ts | 16 ++--- frontend/src/lib/components/flows/utils.ts | 23 +++++++ 7 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 frontend/src/lib/components/flows/header/FlowYamlEditor.svelte diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index cf870d4332..3b29507f41 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -81,6 +81,7 @@ import CustomPopover from './CustomPopover.svelte' import Summary from './Summary.svelte' import type { FlowBuilderWhitelabelCustomUi } from './custom_ui' + import FlowYamlEditor from './flows/header/FlowYamlEditor.svelte' export let initialPath: string = '' export let pathStoreInit: string | undefined = undefined @@ -1007,6 +1008,7 @@ let flowTutorials: FlowTutorials | undefined = undefined let jsonViewerDrawer: Drawer | undefined = undefined + let yamlEditorDrawer: Drawer | undefined = undefined let flowHistory: FlowHistory | undefined = undefined export function triggerTutorial() { @@ -1049,6 +1051,11 @@ displayName: 'Export', icon: FileJson, action: () => jsonViewerDrawer?.openDrawer() + }, + { + displayName: 'Edit in YAML', + icon: FileJson, + action: () => yamlEditorDrawer?.openDrawer() } ] : []) @@ -1069,6 +1076,7 @@ {#if $pathStore} {/if} + { diff --git a/frontend/src/lib/components/FlowViewerInner.svelte b/frontend/src/lib/components/FlowViewerInner.svelte index 9961ca419a..7fd487ee43 100644 --- a/frontend/src/lib/components/FlowViewerInner.svelte +++ b/frontend/src/lib/components/FlowViewerInner.svelte @@ -9,6 +9,7 @@ import YAML from 'yaml' import { yaml } from 'svelte-highlight/languages' import HighlightTheme from './HighlightTheme.svelte' + import { filteredContentForExport } from './flows/utils' export let flow: { summary: string @@ -17,12 +18,7 @@ schema?: any } - $: flowFiltered = { - summary: flow.summary, - description: flow.description, - value: flow.value, - schema: flow.schema - } + $: flowFiltered = filteredContentForExport(flow) let rawType: 'json' | 'yaml' = 'yaml' diff --git a/frontend/src/lib/components/WorkerTagPicker.svelte b/frontend/src/lib/components/WorkerTagPicker.svelte index 29fbbadfd7..a00278b780 100644 --- a/frontend/src/lib/components/WorkerTagPicker.svelte +++ b/frontend/src/lib/components/WorkerTagPicker.svelte @@ -18,7 +18,7 @@
- {#if workerTags} + {#if $workerTags} {#if $workerTags?.length ?? 0 > 0} { if (key !== 'prev_output') { const schema = $flowStateStore[module.id].schema - const schemaProperty = Object.entries(schema.properties).find( + const schemaProperty = Object.entries(schema?.properties ?? {}).find( (x) => x[0] === key )?.[1] const snakeKey = snakeCase(key) @@ -892,7 +892,7 @@ (!$flowStore.schema || !(snakeKey in ($flowStore.schema.properties as any) ?? {})) // prevent overriding flow inputs ) { copilotFlowInputs[snakeKey] = schemaProperty - if (schema.required.includes(snakeKey)) { + if (schema?.required.includes(snakeKey)) { copilotFlowRequiredInputs.push(snakeKey) } } diff --git a/frontend/src/lib/components/FlowMetadata.svelte b/frontend/src/lib/components/FlowMetadata.svelte index 6f283988a4..0ff92493e1 100644 --- a/frontend/src/lib/components/FlowMetadata.svelte +++ b/frontend/src/lib/components/FlowMetadata.svelte @@ -74,6 +74,7 @@ Schedule: + ; required?: string[] } export let arg: InputTransform | any export let argName: string export let extraLib: string = 'missing extraLib' @@ -45,11 +45,11 @@ const dispatch = createEventDispatcher() $: inputCat = computeInputCat( - schema.properties[argName].type, - schema.properties[argName].format, - schema.properties[argName].items?.type, - schema.properties[argName].enum, - schema.properties[argName].contentEncoding + schema?.properties?.[argName].type, + schema?.properties?.[argName].format, + schema?.properties?.[argName].items?.type, + schema?.properties?.[argName].enum, + schema?.properties?.[argName].contentEncoding ) let propertyType = getPropertyType(arg) @@ -170,11 +170,11 @@ function setDefaultCode() { if (!arg?.value) { - monacoTemplate?.setCode(schema.properties[argName].default) + monacoTemplate?.setCode(schema.properties?.[argName].default) } } - $: schema.properties[argName].default && setDefaultCode() + $: schema?.properties?.[argName].default && setDefaultCode() let resourceTypes: string[] | undefined = undefined @@ -194,10 +194,10 @@
{#if isStaticTemplate(inputCat)} @@ -220,7 +220,7 @@ bind:this={stepInputGen} {focused} {arg} - schemaProperty={schema.properties[argName]} + schemaProperty={schema?.properties?.[argName]} showPopup={(isStaticTemplate(inputCat) && propertyType == 'static') || propertyType === undefined || propertyType === 'static' || @@ -382,7 +382,7 @@ /> {/if}
- {:else if propertyType === undefined || propertyType == 'static'} + {:else if (propertyType === undefined || propertyType == 'static') && schema?.properties?.[argName]} } export let args: Record = {} export let isValid: boolean = true diff --git a/frontend/src/lib/components/ItemPicker.svelte b/frontend/src/lib/components/ItemPicker.svelte index 08c63be5e5..1ee28fc197 100644 --- a/frontend/src/lib/components/ItemPicker.svelte +++ b/frontend/src/lib/components/ItemPicker.svelte @@ -65,6 +65,7 @@ >
+
+
+
- {#if typeof args == 'object' && schema?.properties[argName]} + {#if typeof args == 'object' && schema?.properties?.[argName]}
+
- Create a new App in Slack API Console. - Pick "From an app manifest", then YAML and paste manifest template found on Windmill Docs and then paste Client ID and Client Secret here. -
- + +
+ Create a new App in Slack API Console. Pick "From an app manifest", then YAML and paste manifest template found on + Windmill Docs and then paste Client ID and Client Secret here. +
+
{:else if name == 'microsoft'}
diff --git a/frontend/src/lib/components/OktaSetting.svelte b/frontend/src/lib/components/OktaSetting.svelte index f56a0084f2..1b01f14173 100644 --- a/frontend/src/lib/components/OktaSetting.svelte +++ b/frontend/src/lib/components/OktaSetting.svelte @@ -34,6 +34,7 @@
+