From 87c94338e9b0790d4fd2856525aa5a0212e87c24 Mon Sep 17 00:00:00 2001 From: Ken Chung Date: Fri, 21 Jan 2022 03:12:28 +0800 Subject: [PATCH 01/69] Downgrade css-loader to 5.2.7 in /samples --- samples/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/package.json b/samples/package.json index c6ca19ae..618a14a3 100644 --- a/samples/package.json +++ b/samples/package.json @@ -10,7 +10,7 @@ "author": "Microsoft Corporation", "license": "MIT", "devDependencies": { - "css-loader": "^6.5.1", + "css-loader": "^5.2.7", "electron": "^15.3.1", "file-loader": "^6.2.0", "glob": "^7.2.0", From 661b83d7b0d7a15282a35ddae6d2b9f0c3454cd7 Mon Sep 17 00:00:00 2001 From: Remy Suen Date: Fri, 11 Feb 2022 16:20:38 -0500 Subject: [PATCH 02/69] Create example for model markers This example demonstrates how to listen to model change events so that the content of the editor can be validated. Any content that is deemed invalid can be flagged with a model marker. Signed-off-by: Remy Suen --- website/playground/new-samples/all.js | 6 +++ .../model-markers-example/sample.css | 0 .../model-markers-example/sample.html | 1 + .../model-markers-example/sample.js | 48 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 website/playground/new-samples/extending-language-services/model-markers-example/sample.css create mode 100644 website/playground/new-samples/extending-language-services/model-markers-example/sample.html create mode 100644 website/playground/new-samples/extending-language-services/model-markers-example/sample.js diff --git a/website/playground/new-samples/all.js b/website/playground/new-samples/all.js index 06323f21..004108a4 100644 --- a/website/playground/new-samples/all.js +++ b/website/playground/new-samples/all.js @@ -156,6 +156,12 @@ id: 'extending-language-services-hover-provider-example', path: 'extending-language-services/hover-provider-example' }, + { + chapter: 'Extending Language Services', + name: 'Model markers example', + id: 'extending-language-services-model-markers-example', + path: 'extending-language-services/model-markers-example' + }, { chapter: 'Extending Language Services', name: 'Semantic tokens provider example', diff --git a/website/playground/new-samples/extending-language-services/model-markers-example/sample.css b/website/playground/new-samples/extending-language-services/model-markers-example/sample.css new file mode 100644 index 00000000..e69de29b diff --git a/website/playground/new-samples/extending-language-services/model-markers-example/sample.html b/website/playground/new-samples/extending-language-services/model-markers-example/sample.html new file mode 100644 index 00000000..75b9b160 --- /dev/null +++ b/website/playground/new-samples/extending-language-services/model-markers-example/sample.html @@ -0,0 +1 @@ +
diff --git a/website/playground/new-samples/extending-language-services/model-markers-example/sample.js b/website/playground/new-samples/extending-language-services/model-markers-example/sample.js new file mode 100644 index 00000000..010f6d05 --- /dev/null +++ b/website/playground/new-samples/extending-language-services/model-markers-example/sample.js @@ -0,0 +1,48 @@ +function validate(model) { + const markers = []; + // lines start at 1 + for (let i = 1; i < model.getLineCount() + 1; i++) { + const range = { + startLineNumber: i, + startColumn: 1, + endLineNumber: i, + endColumn: model.getLineLength(i) + 1 + }; + const content = model.getValueInRange(range).trim(); + const number = Number(content); + if (Number.isNaN(number)) { + markers.push({ + message: 'not a number', + severity: monaco.MarkerSeverity.Error, + startLineNumber: range.startLineNumber, + startColumn: range.startColumn, + endLineNumber: range.endLineNumber, + endColumn: range.endColumn + }); + } else if (!Number.isInteger(number)) { + markers.push({ + message: 'not an integer', + severity: monaco.MarkerSeverity.Warning, + startLineNumber: range.startLineNumber, + startColumn: range.startColumn, + endLineNumber: range.endLineNumber, + endColumn: range.endColumn + }); + } + } + monaco.editor.setModelMarkers(model, 'owner', markers); +} + +const value = `12345 +abcd +234.56 +12345 +abcd +234.56`; +const uri = monaco.Uri.parse('inmemory://test'); +const model = monaco.editor.createModel(value, 'demoLanguage', uri); +editor = monaco.editor.create(document.getElementById('container'), { model }); +validate(model); +model.onDidChangeContent(() => { + validate(model); +}); From 83cb8faa8ccaf235671784d2b8d310b302eca993 Mon Sep 17 00:00:00 2001 From: Luis Scholl Date: Wed, 16 Feb 2022 10:16:22 +0100 Subject: [PATCH 03/69] Add script type module syntax highlighting to html --- src/basic-languages/html/html.test.ts | 26 ++++++++++++++++++++++++++ src/basic-languages/html/html.ts | 14 ++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/basic-languages/html/html.test.ts b/src/basic-languages/html/html.test.ts index a49c4f6e..c3ab78aa 100644 --- a/src/basic-languages/html/html.test.ts +++ b/src/basic-languages/html/html.test.ts @@ -396,6 +396,32 @@ testTokenization( } ], + // Embedded Content #10 + [ + { + line: '', + tokens: [ + { startIndex: 0, type: 'delimiter.html' }, + { startIndex: 1, type: 'tag.html' }, + { startIndex: 7, type: '' }, + { startIndex: 8, type: 'attribute.name.html' }, + { startIndex: 12, type: 'delimiter.html' }, + { startIndex: 13, type: 'attribute.value.html' }, + { startIndex: 21, type: 'delimiter.html' }, + { startIndex: 22, type: 'keyword.js' }, + { startIndex: 25, type: '' }, + { startIndex: 26, type: 'identifier.js' }, + { startIndex: 27, type: 'delimiter.js' }, + { startIndex: 28, type: '' }, + { startIndex: 29, type: 'number.js' }, + { startIndex: 31, type: 'delimiter.js' }, + { startIndex: 32, type: 'delimiter.html' }, + { startIndex: 34, type: 'tag.html' }, + { startIndex: 40, type: 'delimiter.html' } + ] + } + ], + // Tag with Attribute [ { diff --git a/src/basic-languages/html/html.ts b/src/basic-languages/html/html.ts index 8242ea97..f9ffed20 100644 --- a/src/basic-languages/html/html.ts +++ b/src/basic-languages/html/html.ts @@ -160,6 +160,20 @@ export const language = { // After + + diff --git a/test/smoke/vite/index.js b/test/smoke/vite/index.js new file mode 100644 index 00000000..56e39889 --- /dev/null +++ b/test/smoke/vite/index.js @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as monaco from '../../../release/esm/vs/editor/editor.main'; +import editorWorker from '../../../release/esm/vs/editor/editor.worker?worker'; +import jsonWorker from '../../../release/esm/vs/language/json/json.worker?worker'; +import cssWorker from '../../../release/esm/vs/language/css/css.worker?worker'; +import htmlWorker from '../../../release/esm/vs/language/html/html.worker?worker'; +import tsWorker from '../../../release/esm/vs/language/typescript/ts.worker?worker'; + +self.MonacoEnvironment = { + getWorker(moduleId, label) { + if (label === 'json') { + return new jsonWorker(); + } + if (label === 'css' || label === 'scss' || label === 'less') { + return new cssWorker(); + } + if (label === 'html' || label === 'handlebars' || label === 'razor') { + return new htmlWorker(); + } + if (label === 'typescript' || label === 'javascript') { + return new tsWorker(); + } + return new editorWorker(); + } +}; + +window.monacoAPI = monaco; From 2b3d8516c6e7f08b4839428a24347b011f160f9b Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Tue, 18 Oct 2022 14:20:09 +0200 Subject: [PATCH 44/69] Bring smoketest scripts together (#3370) --- .github/workflows/ci.yml | 2 +- package-lock.json | 1446 ++++++++++++++++- package.json | 6 + test/smoke/{amd.html => amd/index.html} | 4 +- test/smoke/common.js | 7 +- .../esbuild/{esbuild.html => index.html} | 0 test/smoke/package-esbuild.ts | 2 +- test/smoke/package-webpack.ts | 56 + test/smoke/runner.js | 28 +- test/smoke/smoke.test.js | 30 +- .../webpack/{webpack.html => index.html} | 0 .../smoketest => test/smoke/webpack}/index.js | 0 webpack-plugin/package.json | 2 - .../smoketest/webpack-cross-origin.config.js | 39 - webpack-plugin/smoketest/webpack.config.js | 36 - 15 files changed, 1546 insertions(+), 112 deletions(-) rename test/smoke/{amd.html => amd/index.html} (80%) rename test/smoke/esbuild/{esbuild.html => index.html} (100%) create mode 100644 test/smoke/package-webpack.ts rename test/smoke/webpack/{webpack.html => index.html} (100%) rename {webpack-plugin/smoketest => test/smoke/webpack}/index.js (100%) delete mode 100644 webpack-plugin/smoketest/webpack-cross-origin.config.js delete mode 100644 webpack-plugin/smoketest/webpack.config.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24129d5e..e986f83d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: run: npm run compile --prefix webpack-plugin - name: Package using webpack plugin - run: npm run package-for-smoketest --prefix webpack-plugin + run: npm run package-for-smoketest-webpack - name: Package using esbuild run: npm run package-for-smoketest-esbuild diff --git a/package-lock.json b/package-lock.json index 6036f400..1ceeb89e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,10 @@ "@typescript/vfs": "^1.3.5", "chai": "^4.3.6", "clean-css": "^5.2.4", + "css-loader": "^6.7.1", "esbuild": "^0.14.49", "esbuild-plugin-alias": "^0.2.1", + "file-loader": "^6.2.0", "glob": "^7.2.0", "husky": "^7.0.4", "jsdom": "^19.0.0", @@ -26,6 +28,7 @@ "prettier": "^2.5.1", "pretty-quick": "^3.1.3", "requirejs": "^2.3.6", + "style-loader": "^3.3.1", "terser": "^5.14.2", "ts-node": "^10.6.0", "typedoc": "^0.22.11", @@ -37,6 +40,7 @@ "vscode-languageserver-textdocument": "^1.0.4", "vscode-languageserver-types": "3.16.0", "vscode-uri": "3.0.3", + "webpack": "^5.74.0", "yaserver": "^0.4.0" } }, @@ -184,6 +188,38 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "node_modules/@types/eslint": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -227,6 +263,164 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -234,9 +428,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -267,6 +461,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -288,6 +491,31 @@ "node": ">= 6.0.0" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -394,6 +622,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -437,6 +674,34 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -464,6 +729,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001421", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001421.tgz", + "integrity": "sha512-Sw4eLbgUJAEhjLs1Fa+mk45sidp1wRn5y6GtDpHGBaNJ9OCDJaVh2tIaWWUnGfuXfKf1JCBaIarak3FkVAvEeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, "node_modules/chai": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", @@ -546,6 +827,15 @@ "fsevents": "~2.3.2" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/clean-css": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", @@ -634,6 +924,44 @@ "node": ">= 8" } }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -755,12 +1083,27 @@ "node": ">=12" } }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -770,6 +1113,25 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, "node_modules/esbuild": { "version": "0.14.49", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", @@ -1174,6 +1536,28 @@ "source-map": "~0.6.1" } }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1187,6 +1571,18 @@ "node": ">=4" } }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", @@ -1205,6 +1601,15 @@ "node": ">=0.10.0" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -1248,6 +1653,18 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -1263,6 +1680,26 @@ "pend": "~1.2.0" } }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1405,6 +1842,12 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -1525,6 +1968,18 @@ "node": ">=0.10.0" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -1664,6 +2119,20 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/jpeg-js": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", @@ -1728,6 +2197,30 @@ } } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "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 + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", @@ -1747,6 +2240,29 @@ "node": ">= 0.8.0" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -1787,6 +2303,18 @@ "get-func-name": "^2.0.0" } }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -1992,6 +2520,18 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2271,6 +2811,84 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/postcss/node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -2592,6 +3210,39 @@ "node": ">=10" } }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -2773,6 +3424,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2806,6 +3473,15 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/terser": { "version": "5.14.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", @@ -2824,6 +3500,40 @@ "node": ">=10" } }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -2993,6 +3703,47 @@ "node": ">= 4.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", @@ -3491,6 +4242,19 @@ "node": ">=12" } }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -3500,6 +4264,62 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -3632,6 +4452,12 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -3833,6 +4659,38 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "@types/eslint": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -3876,6 +4734,164 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -3883,9 +4899,9 @@ "dev": true }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-globals": { @@ -3906,6 +4922,13 @@ } } }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -3921,6 +4944,25 @@ "debug": "4" } }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -4000,6 +5042,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -4037,6 +5085,18 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -4055,6 +5115,12 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, + "caniuse-lite": { + "version": "1.0.30001421", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001421.tgz", + "integrity": "sha512-Sw4eLbgUJAEhjLs1Fa+mk45sidp1wRn5y6GtDpHGBaNJ9OCDJaVh2tIaWWUnGfuXfKf1JCBaIarak3FkVAvEeA==", + "dev": true + }, "chai": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", @@ -4113,6 +5179,12 @@ "readdirp": "~3.6.0" } }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, "clean-css": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", @@ -4186,6 +5258,28 @@ "which": "^2.0.1" } }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -4277,12 +5371,24 @@ "webidl-conversions": "^7.0.0" } }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4292,6 +5398,22 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, "esbuild": { "version": "0.14.49", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", @@ -4491,12 +5613,39 @@ "source-map": "~0.6.1" } }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", @@ -4509,6 +5658,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -4538,6 +5693,18 @@ "yauzl": "^2.10.0" } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -4553,6 +5720,16 @@ "pend": "~1.2.0" } }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4652,6 +5829,12 @@ "is-glob": "^4.0.1" } }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -4736,6 +5919,13 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -4839,6 +6029,17 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, "jpeg-js": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", @@ -4889,6 +6090,24 @@ "xml-name-validator": "^4.0.0" } }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "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 + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, "jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", @@ -4905,6 +6124,23 @@ "type-check": "~0.3.2" } }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4933,6 +6169,15 @@ "get-func-name": "^2.0.0" } }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -5087,6 +6332,18 @@ "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5285,6 +6542,58 @@ } } }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -5500,6 +6809,26 @@ "xmlchars": "^2.2.0" } }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -5639,6 +6968,13 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true, + "requires": {} + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -5660,6 +6996,12 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, "terser": { "version": "5.14.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", @@ -5680,6 +7022,19 @@ } } }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5784,6 +7139,31 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", @@ -6066,12 +7446,60 @@ "xml-name-validator": "^4.0.0" } }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, "webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, "whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -6160,6 +7588,12 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 944f0ae3..e3fe402c 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "pretty-quick": "pretty-quick --staged", "release": "ts-node ./build/build && ts-node ./build/release", "simpleserver": "ts-node ./build/simpleserver", + "package-for-smoketest-webpack": "ts-node ./test/smoke/package-webpack", + "package-for-smoketest-webpack-cross-origin": "ts-node ./test/smoke/package-webpack --cross-origin", "package-for-smoketest-esbuild": "ts-node ./test/smoke/package-esbuild", "package-for-smoketest-vite": "ts-node ./test/smoke/package-vite", "smoketest": "node ./test/smoke/runner.js", @@ -38,8 +40,10 @@ "@typescript/vfs": "^1.3.5", "chai": "^4.3.6", "clean-css": "^5.2.4", + "css-loader": "^6.7.1", "esbuild": "^0.14.49", "esbuild-plugin-alias": "^0.2.1", + "file-loader": "^6.2.0", "glob": "^7.2.0", "husky": "^7.0.4", "jsdom": "^19.0.0", @@ -50,6 +54,7 @@ "prettier": "^2.5.1", "pretty-quick": "^3.1.3", "requirejs": "^2.3.6", + "style-loader": "^3.3.1", "terser": "^5.14.2", "ts-node": "^10.6.0", "typedoc": "^0.22.11", @@ -61,6 +66,7 @@ "vscode-languageserver-textdocument": "^1.0.4", "vscode-languageserver-types": "3.16.0", "vscode-uri": "3.0.3", + "webpack": "^5.74.0", "yaserver": "^0.4.0" } } diff --git a/test/smoke/amd.html b/test/smoke/amd/index.html similarity index 80% rename from test/smoke/amd.html rename to test/smoke/amd/index.html index 0992c8c3..2453a960 100644 --- a/test/smoke/amd.html +++ b/test/smoke/amd/index.html @@ -5,11 +5,11 @@
- + + + diff --git a/test/smoke/parcel/index.js b/test/smoke/parcel/index.js new file mode 100644 index 00000000..dacc5010 --- /dev/null +++ b/test/smoke/parcel/index.js @@ -0,0 +1,35 @@ +import * as monaco from '../../../release/esm/vs/editor/editor.main.js'; + +self.MonacoEnvironment = { + getWorker: function (moduleId, label) { + if (label === 'json') { + return new Worker( + new URL('../../../release/esm/vs/language/json/json.worker.js', import.meta.url), + { type: 'module' } + ); + } + if (label === 'css' || label === 'scss' || label === 'less') { + return new Worker( + new URL('../../../release/esm/vs/language/css/css.worker.js', import.meta.url), + { type: 'module' } + ); + } + if (label === 'html' || label === 'handlebars' || label === 'razor') { + return new Worker( + new URL('../../../release/esm/vs/language/html/html.worker.js', import.meta.url), + { type: 'module' } + ); + } + if (label === 'typescript' || label === 'javascript') { + return new Worker( + new URL('../../../release/esm/vs/language/typescript/ts.worker.js', import.meta.url), + { type: 'module' } + ); + } + return new Worker(new URL('../../../release/esm/vs/editor/editor.worker.js', import.meta.url), { + type: 'module' + }); + } +}; + +window.monacoAPI = monaco; diff --git a/test/smoke/parcel/package.json b/test/smoke/parcel/package.json new file mode 100644 index 00000000..5d1f93d4 --- /dev/null +++ b/test/smoke/parcel/package.json @@ -0,0 +1,6 @@ +{ + "name": "parcel-smoketest", + "scripts": { + "package-for-smoketest-parcel": "parcel build ./index.html --cache-dir ./.cache --public-url /test/smoke/parcel/dist/ --no-optimize" + } +} diff --git a/test/smoke/runner.js b/test/smoke/runner.js index 77403751..02f1635f 100644 --- a/test/smoke/runner.js +++ b/test/smoke/runner.js @@ -42,7 +42,7 @@ async function runTests() { // uncomment to shortcircuit and run a specific combo // await runTest('webpack', 'chromium'); return; /** @type {PackagerKind[]} */ - const testTypes = ['amd', 'webpack', 'esbuild', 'vite']; + const testTypes = ['amd', 'webpack', 'esbuild', 'vite', 'parcel']; for (const type of testTypes) { await runTest(type, 'chromium'); diff --git a/test/smoke/smoke.test.js b/test/smoke/smoke.test.js index 7e81fece..8ada8e9b 100644 --- a/test/smoke/smoke.test.js +++ b/test/smoke/smoke.test.js @@ -19,7 +19,8 @@ const URLS = { amd: `http://127.0.0.1:${testInfo.port}/test/smoke/amd/index.html`, webpack: `http://127.0.0.1:${testInfo.port}/test/smoke/webpack/index.html`, esbuild: `http://127.0.0.1:${testInfo.port}/test/smoke/esbuild/index.html`, - vite: `http://127.0.0.1:${testInfo.port}/test/smoke/vite/dist/index.html` + vite: `http://127.0.0.1:${testInfo.port}/test/smoke/vite/dist/index.html`, + parcel: `http://127.0.0.1:${testInfo.port}/test/smoke/parcel/dist/index.html` }; const URL = URLS[testInfo.packager]; @@ -107,11 +108,11 @@ suite(`Smoke Test '${testInfo.packager}' on '${testInfo.browser}'`, () => { await page.evaluate(`window.ed.focus();`); } - test('`monacoAPI` is exposed as global', async () => { + test('`monacoAPI` is exposed as global', async function () { assert.strictEqual(await page.evaluate(`typeof monacoAPI`), 'object'); }); - test('should be able to create plaintext editor', async () => { + test('should be able to create plaintext editor', async function () { await createEditor('hello world', 'plaintext'); // type a link in it @@ -122,14 +123,14 @@ suite(`Smoke Test '${testInfo.packager}' on '${testInfo.browser}'`, () => { await page.waitForSelector('.detected-link'); }); - test('css smoke test', async () => { + test('css smoke test', async function () { await createEditor('.sel1 { background: red; }\\n.sel2 {}', 'css'); // check that a squiggle appears, which indicates that the language service is up and running await page.waitForSelector('.squiggly-warning'); }); - test('html smoke test', async () => { + test('html smoke test', async function () { await createEditor('hi', 'html'); // we need to try this a couple of times because the web worker might not be ready yet @@ -151,7 +152,7 @@ suite(`Smoke Test '${testInfo.packager}' on '${testInfo.browser}'`, () => { } }); - test('json smoke test', async () => { + test('json smoke test', async function () { await createEditor('{}', 'json'); // we need to try this a couple of times because the web worker might not be ready yet @@ -168,7 +169,7 @@ suite(`Smoke Test '${testInfo.packager}' on '${testInfo.browser}'`, () => { } }); - test('typescript smoke test', async () => { + test('typescript smoke test', async function () { await createEditor('window.add', 'typescript'); // check that a squiggle appears, which indicates that the language service is up and running diff --git a/website/playground/monaco.d.ts.txt b/website/playground/monaco.d.ts.txt index 6ee95513..fbfbf380 100644 --- a/website/playground/monaco.d.ts.txt +++ b/website/playground/monaco.d.ts.txt @@ -705,6 +705,10 @@ declare namespace monaco { * Create a new empty range using this range's start position. */ collapseToStart(): Range; + /** + * Moves the range by the given amount of lines. + */ + delta(lineCount: number): Range; /** * Create a new empty range using this range's start position. */ @@ -926,6 +930,50 @@ declare namespace monaco.editor { export function createDiffNavigator(diffEditor: IStandaloneDiffEditor, opts?: IDiffNavigatorOptions): IDiffNavigator; + /** + * Description of a command contribution + */ + export interface ICommandDescriptor { + /** + * An unique identifier of the contributed command. + */ + id: string; + /** + * Callback that will be executed when the command is triggered. + */ + run: ICommandHandler; + } + + /** + * Add a command. + */ + export function addCommand(descriptor: ICommandDescriptor): IDisposable; + + /** + * Add an action to all editors. + */ + export function addEditorAction(descriptor: IActionDescriptor): IDisposable; + + /** + * A keybinding rule. + */ + export interface IKeybindingRule { + keybinding: number; + command?: string | null; + commandArgs?: any; + when?: string | null; + } + + /** + * Add a keybinding rule. + */ + export function addKeybindingRule(rule: IKeybindingRule): IDisposable; + + /** + * Add keybinding rules. + */ + export function addKeybindingRules(rules: IKeybindingRule[]): IDisposable; + /** * Create a new editor model. * You can specify the language that should be set for this model or let the language be inferred from the `uri`. @@ -1489,6 +1537,11 @@ declare namespace monaco.editor { */ className?: string | null; blockClassName?: string | null; + /** + * Indicates if this block should be rendered after the last line. + * In this case, the range must be empty and set to the last line. + */ + blockIsAfterEnd?: boolean | null; /** * Message to be rendered when hovering over the glyph margin decoration. */ @@ -1501,6 +1554,10 @@ declare namespace monaco.editor { * Should the decoration expand to encompass a whole line. */ isWholeLine?: boolean; + /** + * Always render the decoration (even when the range it encompasses is collapsed). + */ + showIfCollapsed?: boolean; /** * Specifies the stack order of a decoration. * A decoration with greater stack order is always in front of a decoration with @@ -1743,6 +1800,15 @@ declare namespace monaco.editor { GrowsOnlyWhenTypingAfter = 3 } + /** + * Text snapshot that works like an iterator. + * Will try to return chunks of roughly ~64KB size. + * Will return null when finished. + */ + export interface ITextSnapshot { + read(): string | null; + } + /** * A model. */ @@ -1774,7 +1840,7 @@ declare namespace monaco.editor { /** * Replace the entire text buffer value contained in this model. */ - setValue(newValue: string): void; + setValue(newValue: string | ITextSnapshot): void; /** * Get the text stored in this model. * @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. @@ -1782,6 +1848,12 @@ declare namespace monaco.editor { * @return The text. */ getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string; + /** + * Get the text stored in this model. + * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. + * @return The text snapshot (it is safe to consume it asynchronously). + */ + createSnapshot(preserveBOM?: boolean): ITextSnapshot; /** * Get the length of the text stored in this model. */ @@ -2000,7 +2072,7 @@ declare namespace monaco.editor { * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). * @return An array with the decorations */ - getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean, onlyMinimapDecorations?: boolean): IModelDecoration[]; /** * Gets all the decorations as an array. * @param ownerId If set, it will ignore decorations belonging to other owners. @@ -2616,6 +2688,10 @@ declare namespace monaco.editor { * New language */ readonly newLanguage: string; + /** + * Source of the call that caused the event. + */ + readonly source: string; } /** @@ -2936,6 +3012,10 @@ declare namespace monaco.editor { * Control the behavior and rendering of the scrollbars. */ scrollbar?: IEditorScrollbarOptions; + /** + * Control the behavior of sticky scroll options + */ + stickyScroll?: IEditorStickyScrollOptions; /** * Control the behavior and rendering of the minimap. */ @@ -3025,8 +3105,7 @@ declare namespace monaco.editor { */ smoothScrolling?: boolean; /** - * Enable that the editor will install an interval to check if its container dom node size has changed. - * Enabling this might have a severe performance impact. + * Enable that the editor will install a ResizeObserver to check if its container dom node size has changed. * Defaults to false. */ automaticLayout?: boolean; @@ -3403,6 +3482,10 @@ declare namespace monaco.editor { * Controls strikethrough deprecated variables. */ showDeprecated?: boolean; + /** + * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning + */ + matchOnWordStartOnly?: boolean; /** * Control the behavior and rendering of the inline hints. */ @@ -3425,11 +3508,11 @@ declare namespace monaco.editor { */ bracketPairColorization?: IBracketPairColorizationOptions; /** - * Enables dropping into the editor from an external source. + * Controls dropping into the editor from an external source. * - * This shows a preview of the drop location and triggers an `onDropIntoEditor` event. + * When enabled, this shows a preview of the drop location and triggers an `onDropIntoEditor` event. */ - enableDropIntoEditor?: boolean; + dropIntoEditor?: IDropIntoEditorOptions; } export interface IDiffEditorBaseOptions { @@ -3487,6 +3570,10 @@ declare namespace monaco.editor { * Control the wrapping of the diff editor. */ diffWordWrap?: 'off' | 'on' | 'inherit'; + /** + * Diff Algorithm + */ + diffAlgorithm?: 'smart' | 'experimental'; } /** @@ -3794,6 +3881,17 @@ declare namespace monaco.editor { enabled?: boolean; } + export interface IEditorStickyScrollOptions { + /** + * Enable the sticky scroll + */ + enabled?: boolean; + /** + * Maximum number of sticky lines to show + */ + maxLineCount?: number; + } + /** * Configuration options for editor inlayHints */ @@ -4175,6 +4273,10 @@ declare namespace monaco.editor { * Show deprecated-suggestions. */ showDeprecated?: boolean; + /** + * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning + */ + matchOnWordStartOnly?: boolean; /** * Show field-suggestions. */ @@ -4306,6 +4408,17 @@ declare namespace monaco.editor { readonly wrappingColumn: number; } + /** + * Configuration options for editor drop into behavior + */ + export interface IDropIntoEditorOptions { + /** + * Enable the dropping into editor. + * Defaults to true. + */ + enabled?: boolean; + } + export enum EditorOption { acceptSuggestionOnCommitCharacter = 0, acceptSuggestionOnEnter = 1, @@ -4339,7 +4452,7 @@ declare namespace monaco.editor { disableMonospaceOptimizations = 29, domReadOnly = 30, dragAndDrop = 31, - enableDropIntoEditor = 32, + dropIntoEditor = 32, emptySelectionClipboard = 33, extraEditorClassName = 34, fastScrollSensitivity = 35, @@ -4412,35 +4525,36 @@ declare namespace monaco.editor { snippetSuggestions = 102, smartSelect = 103, smoothScrolling = 104, - stickyTabStops = 105, - stopRenderingLineAfter = 106, - suggest = 107, - suggestFontSize = 108, - suggestLineHeight = 109, - suggestOnTriggerCharacters = 110, - suggestSelection = 111, - tabCompletion = 112, - tabIndex = 113, - unicodeHighlighting = 114, - unusualLineTerminators = 115, - useShadowDOM = 116, - useTabStops = 117, - wordSeparators = 118, - wordWrap = 119, - wordWrapBreakAfterCharacters = 120, - wordWrapBreakBeforeCharacters = 121, - wordWrapColumn = 122, - wordWrapOverride1 = 123, - wordWrapOverride2 = 124, - wrappingIndent = 125, - wrappingStrategy = 126, - showDeprecated = 127, - inlayHints = 128, - editorClassName = 129, - pixelRatio = 130, - tabFocusMode = 131, - layoutInfo = 132, - wrappingInfo = 133 + stickyScroll = 105, + stickyTabStops = 106, + stopRenderingLineAfter = 107, + suggest = 108, + suggestFontSize = 109, + suggestLineHeight = 110, + suggestOnTriggerCharacters = 111, + suggestSelection = 112, + tabCompletion = 113, + tabIndex = 114, + unicodeHighlighting = 115, + unusualLineTerminators = 116, + useShadowDOM = 117, + useTabStops = 118, + wordSeparators = 119, + wordWrap = 120, + wordWrapBreakAfterCharacters = 121, + wordWrapBreakBeforeCharacters = 122, + wordWrapColumn = 123, + wordWrapOverride1 = 124, + wordWrapOverride2 = 125, + wrappingIndent = 126, + wrappingStrategy = 127, + showDeprecated = 128, + inlayHints = 129, + editorClassName = 130, + pixelRatio = 131, + tabFocusMode = 132, + layoutInfo = 133, + wrappingInfo = 134 } export const EditorOptions: { @@ -4478,7 +4592,8 @@ declare namespace monaco.editor { domReadOnly: IEditorOption; dragAndDrop: IEditorOption; emptySelectionClipboard: IEditorOption; - enableDropIntoEditor: IEditorOption; + dropIntoEditor: IEditorOption>>; + stickyScroll: IEditorOption>>; extraEditorClassName: IEditorOption; fastScrollSensitivity: IEditorOption; find: IEditorOption>>; @@ -4984,6 +5099,8 @@ declare namespace monaco.editor { export interface IMouseTargetOutsideEditor extends IBaseMouseTarget { readonly type: MouseTargetType.OUTSIDE_EDITOR; + readonly outsidePosition: 'above' | 'below' | 'left' | 'right'; + readonly outsideDistance: number; } /** @@ -5278,7 +5395,7 @@ declare namespace monaco.editor { * @id Unique identifier of the contribution. * @return The action or null if action not found. */ - getAction(id: string): IEditorAction; + getAction(id: string): IEditorAction | null; /** * Execute a command on the editor. * The edits will land on the undo-redo stack, but no "undo stop" will be pushed. @@ -5335,9 +5452,13 @@ declare namespace monaco.editor { */ getVisibleRanges(): Range[]; /** - * Get the vertical position (top offset) for the line w.r.t. to the first line. + * Get the vertical position (top offset) for the line's top w.r.t. to the first line. */ getTopForLineNumber(lineNumber: number): number; + /** + * Get the vertical position (top offset) for the line's bottom w.r.t. to the first line. + */ + getBottomForLineNumber(lineNumber: number): number; /** * Get the vertical position (top offset) for the position w.r.t. to the first line. */ @@ -5436,6 +5557,11 @@ declare namespace monaco.editor { * @event */ readonly onDidUpdateDiff: IEvent; + /** + * An event emitted when the diff model is changed (i.e. the diff editor shows new content). + * @event + */ + readonly onDidChangeModel: IEvent; /** * Saves current view state of the editor in a serializable object. */ @@ -5838,6 +5964,10 @@ declare namespace monaco.languages { * Requested kind of actions to return. */ readonly only?: string; + /** + * The reason why code actions were requested. + */ + readonly trigger: CodeActionTriggerType; } /** @@ -5868,6 +5998,10 @@ declare namespace monaco.languages { * such as `["quickfix.removeLine", "source.fixAll" ...]`. */ readonly providedCodeActionKinds?: readonly string[]; + readonly documentation?: ReadonlyArray<{ + readonly kind: string; + readonly command: Command; + }>; } /** @@ -6440,6 +6574,11 @@ declare namespace monaco.languages { disabled?: string; } + export enum CodeActionTriggerType { + Invoke = 1, + Auto = 2 + } + export interface CodeActionList extends IDisposable { readonly actions: ReadonlyArray; } @@ -6776,11 +6915,11 @@ declare namespace monaco.languages { provideDocumentSymbols(model: editor.ITextModel, token: CancellationToken): ProviderResult; } - export type TextEdit = { + export interface TextEdit { range: IRange; text: string; eol?: editor.EndOfLineSequence; - }; + } /** * Interface used to format a model @@ -7018,6 +7157,7 @@ declare namespace monaco.languages { folder?: boolean; skipTrashBin?: boolean; maxSize?: number; + contentsBase64?: string; } export interface IWorkspaceFileEdit { diff --git a/website/typedoc/monaco.d.ts b/website/typedoc/monaco.d.ts index 3c915b77..fbfbf380 100644 --- a/website/typedoc/monaco.d.ts +++ b/website/typedoc/monaco.d.ts @@ -705,6 +705,10 @@ declare namespace monaco { * Create a new empty range using this range's start position. */ collapseToStart(): Range; + /** + * Moves the range by the given amount of lines. + */ + delta(lineCount: number): Range; /** * Create a new empty range using this range's start position. */ @@ -926,6 +930,50 @@ declare namespace monaco.editor { export function createDiffNavigator(diffEditor: IStandaloneDiffEditor, opts?: IDiffNavigatorOptions): IDiffNavigator; + /** + * Description of a command contribution + */ + export interface ICommandDescriptor { + /** + * An unique identifier of the contributed command. + */ + id: string; + /** + * Callback that will be executed when the command is triggered. + */ + run: ICommandHandler; + } + + /** + * Add a command. + */ + export function addCommand(descriptor: ICommandDescriptor): IDisposable; + + /** + * Add an action to all editors. + */ + export function addEditorAction(descriptor: IActionDescriptor): IDisposable; + + /** + * A keybinding rule. + */ + export interface IKeybindingRule { + keybinding: number; + command?: string | null; + commandArgs?: any; + when?: string | null; + } + + /** + * Add a keybinding rule. + */ + export function addKeybindingRule(rule: IKeybindingRule): IDisposable; + + /** + * Add keybinding rules. + */ + export function addKeybindingRules(rules: IKeybindingRule[]): IDisposable; + /** * Create a new editor model. * You can specify the language that should be set for this model or let the language be inferred from the `uri`. @@ -1489,6 +1537,11 @@ declare namespace monaco.editor { */ className?: string | null; blockClassName?: string | null; + /** + * Indicates if this block should be rendered after the last line. + * In this case, the range must be empty and set to the last line. + */ + blockIsAfterEnd?: boolean | null; /** * Message to be rendered when hovering over the glyph margin decoration. */ @@ -1501,6 +1554,10 @@ declare namespace monaco.editor { * Should the decoration expand to encompass a whole line. */ isWholeLine?: boolean; + /** + * Always render the decoration (even when the range it encompasses is collapsed). + */ + showIfCollapsed?: boolean; /** * Specifies the stack order of a decoration. * A decoration with greater stack order is always in front of a decoration with @@ -1743,6 +1800,15 @@ declare namespace monaco.editor { GrowsOnlyWhenTypingAfter = 3 } + /** + * Text snapshot that works like an iterator. + * Will try to return chunks of roughly ~64KB size. + * Will return null when finished. + */ + export interface ITextSnapshot { + read(): string | null; + } + /** * A model. */ @@ -1774,7 +1840,7 @@ declare namespace monaco.editor { /** * Replace the entire text buffer value contained in this model. */ - setValue(newValue: string): void; + setValue(newValue: string | ITextSnapshot): void; /** * Get the text stored in this model. * @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. @@ -1782,6 +1848,12 @@ declare namespace monaco.editor { * @return The text. */ getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string; + /** + * Get the text stored in this model. + * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. + * @return The text snapshot (it is safe to consume it asynchronously). + */ + createSnapshot(preserveBOM?: boolean): ITextSnapshot; /** * Get the length of the text stored in this model. */ @@ -2000,7 +2072,7 @@ declare namespace monaco.editor { * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). * @return An array with the decorations */ - getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean, onlyMinimapDecorations?: boolean): IModelDecoration[]; /** * Gets all the decorations as an array. * @param ownerId If set, it will ignore decorations belonging to other owners. @@ -2616,6 +2688,10 @@ declare namespace monaco.editor { * New language */ readonly newLanguage: string; + /** + * Source of the call that caused the event. + */ + readonly source: string; } /** @@ -2936,6 +3012,10 @@ declare namespace monaco.editor { * Control the behavior and rendering of the scrollbars. */ scrollbar?: IEditorScrollbarOptions; + /** + * Control the behavior of sticky scroll options + */ + stickyScroll?: IEditorStickyScrollOptions; /** * Control the behavior and rendering of the minimap. */ @@ -3026,7 +3106,6 @@ declare namespace monaco.editor { smoothScrolling?: boolean; /** * Enable that the editor will install a ResizeObserver to check if its container dom node size has changed. - * Enabling this might have a severe performance impact. * Defaults to false. */ automaticLayout?: boolean; @@ -3403,6 +3482,10 @@ declare namespace monaco.editor { * Controls strikethrough deprecated variables. */ showDeprecated?: boolean; + /** + * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning + */ + matchOnWordStartOnly?: boolean; /** * Control the behavior and rendering of the inline hints. */ @@ -3425,11 +3508,11 @@ declare namespace monaco.editor { */ bracketPairColorization?: IBracketPairColorizationOptions; /** - * Enables dropping into the editor from an external source. + * Controls dropping into the editor from an external source. * - * This shows a preview of the drop location and triggers an `onDropIntoEditor` event. + * When enabled, this shows a preview of the drop location and triggers an `onDropIntoEditor` event. */ - enableDropIntoEditor?: boolean; + dropIntoEditor?: IDropIntoEditorOptions; } export interface IDiffEditorBaseOptions { @@ -3487,6 +3570,10 @@ declare namespace monaco.editor { * Control the wrapping of the diff editor. */ diffWordWrap?: 'off' | 'on' | 'inherit'; + /** + * Diff Algorithm + */ + diffAlgorithm?: 'smart' | 'experimental'; } /** @@ -3794,6 +3881,17 @@ declare namespace monaco.editor { enabled?: boolean; } + export interface IEditorStickyScrollOptions { + /** + * Enable the sticky scroll + */ + enabled?: boolean; + /** + * Maximum number of sticky lines to show + */ + maxLineCount?: number; + } + /** * Configuration options for editor inlayHints */ @@ -4175,6 +4273,10 @@ declare namespace monaco.editor { * Show deprecated-suggestions. */ showDeprecated?: boolean; + /** + * Controls whether suggestions allow matches in the middle of the word instead of only at the beginning + */ + matchOnWordStartOnly?: boolean; /** * Show field-suggestions. */ @@ -4306,6 +4408,17 @@ declare namespace monaco.editor { readonly wrappingColumn: number; } + /** + * Configuration options for editor drop into behavior + */ + export interface IDropIntoEditorOptions { + /** + * Enable the dropping into editor. + * Defaults to true. + */ + enabled?: boolean; + } + export enum EditorOption { acceptSuggestionOnCommitCharacter = 0, acceptSuggestionOnEnter = 1, @@ -4339,7 +4452,7 @@ declare namespace monaco.editor { disableMonospaceOptimizations = 29, domReadOnly = 30, dragAndDrop = 31, - enableDropIntoEditor = 32, + dropIntoEditor = 32, emptySelectionClipboard = 33, extraEditorClassName = 34, fastScrollSensitivity = 35, @@ -4412,35 +4525,36 @@ declare namespace monaco.editor { snippetSuggestions = 102, smartSelect = 103, smoothScrolling = 104, - stickyTabStops = 105, - stopRenderingLineAfter = 106, - suggest = 107, - suggestFontSize = 108, - suggestLineHeight = 109, - suggestOnTriggerCharacters = 110, - suggestSelection = 111, - tabCompletion = 112, - tabIndex = 113, - unicodeHighlighting = 114, - unusualLineTerminators = 115, - useShadowDOM = 116, - useTabStops = 117, - wordSeparators = 118, - wordWrap = 119, - wordWrapBreakAfterCharacters = 120, - wordWrapBreakBeforeCharacters = 121, - wordWrapColumn = 122, - wordWrapOverride1 = 123, - wordWrapOverride2 = 124, - wrappingIndent = 125, - wrappingStrategy = 126, - showDeprecated = 127, - inlayHints = 128, - editorClassName = 129, - pixelRatio = 130, - tabFocusMode = 131, - layoutInfo = 132, - wrappingInfo = 133 + stickyScroll = 105, + stickyTabStops = 106, + stopRenderingLineAfter = 107, + suggest = 108, + suggestFontSize = 109, + suggestLineHeight = 110, + suggestOnTriggerCharacters = 111, + suggestSelection = 112, + tabCompletion = 113, + tabIndex = 114, + unicodeHighlighting = 115, + unusualLineTerminators = 116, + useShadowDOM = 117, + useTabStops = 118, + wordSeparators = 119, + wordWrap = 120, + wordWrapBreakAfterCharacters = 121, + wordWrapBreakBeforeCharacters = 122, + wordWrapColumn = 123, + wordWrapOverride1 = 124, + wordWrapOverride2 = 125, + wrappingIndent = 126, + wrappingStrategy = 127, + showDeprecated = 128, + inlayHints = 129, + editorClassName = 130, + pixelRatio = 131, + tabFocusMode = 132, + layoutInfo = 133, + wrappingInfo = 134 } export const EditorOptions: { @@ -4478,7 +4592,8 @@ declare namespace monaco.editor { domReadOnly: IEditorOption; dragAndDrop: IEditorOption; emptySelectionClipboard: IEditorOption; - enableDropIntoEditor: IEditorOption; + dropIntoEditor: IEditorOption>>; + stickyScroll: IEditorOption>>; extraEditorClassName: IEditorOption; fastScrollSensitivity: IEditorOption; find: IEditorOption>>; @@ -4984,6 +5099,8 @@ declare namespace monaco.editor { export interface IMouseTargetOutsideEditor extends IBaseMouseTarget { readonly type: MouseTargetType.OUTSIDE_EDITOR; + readonly outsidePosition: 'above' | 'below' | 'left' | 'right'; + readonly outsideDistance: number; } /** @@ -5278,7 +5395,7 @@ declare namespace monaco.editor { * @id Unique identifier of the contribution. * @return The action or null if action not found. */ - getAction(id: string): IEditorAction; + getAction(id: string): IEditorAction | null; /** * Execute a command on the editor. * The edits will land on the undo-redo stack, but no "undo stop" will be pushed. @@ -5335,9 +5452,13 @@ declare namespace monaco.editor { */ getVisibleRanges(): Range[]; /** - * Get the vertical position (top offset) for the line w.r.t. to the first line. + * Get the vertical position (top offset) for the line's top w.r.t. to the first line. */ getTopForLineNumber(lineNumber: number): number; + /** + * Get the vertical position (top offset) for the line's bottom w.r.t. to the first line. + */ + getBottomForLineNumber(lineNumber: number): number; /** * Get the vertical position (top offset) for the position w.r.t. to the first line. */ @@ -5436,6 +5557,11 @@ declare namespace monaco.editor { * @event */ readonly onDidUpdateDiff: IEvent; + /** + * An event emitted when the diff model is changed (i.e. the diff editor shows new content). + * @event + */ + readonly onDidChangeModel: IEvent; /** * Saves current view state of the editor in a serializable object. */ @@ -5838,6 +5964,10 @@ declare namespace monaco.languages { * Requested kind of actions to return. */ readonly only?: string; + /** + * The reason why code actions were requested. + */ + readonly trigger: CodeActionTriggerType; } /** @@ -5868,6 +5998,10 @@ declare namespace monaco.languages { * such as `["quickfix.removeLine", "source.fixAll" ...]`. */ readonly providedCodeActionKinds?: readonly string[]; + readonly documentation?: ReadonlyArray<{ + readonly kind: string; + readonly command: Command; + }>; } /** @@ -6440,6 +6574,11 @@ declare namespace monaco.languages { disabled?: string; } + export enum CodeActionTriggerType { + Invoke = 1, + Auto = 2 + } + export interface CodeActionList extends IDisposable { readonly actions: ReadonlyArray; } @@ -6776,11 +6915,11 @@ declare namespace monaco.languages { provideDocumentSymbols(model: editor.ITextModel, token: CancellationToken): ProviderResult; } - export type TextEdit = { + export interface TextEdit { range: IRange; text: string; eol?: editor.EndOfLineSequence; - }; + } /** * Interface used to format a model @@ -7018,6 +7157,7 @@ declare namespace monaco.languages { folder?: boolean; skipTrashBin?: boolean; maxSize?: number; + contentsBase64?: string; } export interface IWorkspaceFileEdit { From 9375d4ba65a3b50fd28569c588d2e279a13a757e Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Wed, 19 Oct 2022 10:58:55 +0200 Subject: [PATCH 46/69] Fix publishing CI (#3375) --- .github/workflows/publish.yml | 17 ++++++++++++++++- CONTRIBUTING.md | 11 ++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9997a1cc..33b68a24 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -203,7 +203,22 @@ jobs: - name: (monaco-editor) Package using webpack plugin if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} working-directory: './monaco-editor' - run: npm run package-for-smoketest --prefix webpack-plugin + run: npm run package-for-smoketest-webpack + + - name: (monaco-editor) Package using esbuild + if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} + working-directory: './monaco-editor' + run: npm run package-for-smoketest-esbuild + + - name: (monaco-editor) Package using vite + if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} + working-directory: './monaco-editor' + run: npm run package-for-smoketest-vite + + - name: (monaco-editor) Package using parcel + if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} + working-directory: './monaco-editor' + run: npm run package-for-smoketest-parcel --prefix test/smoke/parcel - name: (monaco-editor) Run smoke test if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e49114b..a42d2115 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,7 +74,16 @@ Open [http://localhost:8080/monaco-editor/test/manual/?editor=src](http://localh /src/monaco-editor> npm run compile --prefix webpack-plugin # package using the webpack plugin -/src/monaco-editor> npm run package-for-smoketest --prefix webpack-plugin +/src/monaco-editor> npm run package-for-smoketest-webpack + +# package using esbuild +/src/monaco-editor> npm run package-for-smoketest-esbuild + +# package using vite +/src/monaco-editor> npm run package-for-smoketest-vite + +# package using parcel +/src/monaco-editor> npm run package-for-smoketest-parcel --prefix test/smoke/parcel # run the smoketest /src/monaco-editor> npm run smoketest-debug From bc9e8523b5b81159d6f3a70a9610f9b48bd08cc9 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Mon, 24 Oct 2022 12:32:23 +0200 Subject: [PATCH 47/69] Run the publish workflow earlier in the day (#3381) --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 33b68a24..280d3a78 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -2,7 +2,7 @@ name: Publish to npm on: schedule: - - cron: '0 7 * * *' + - cron: '0 5 * * *' # enable users to manually trigger with workflow_dispatch workflow_dispatch: inputs: From 0f8ea460807f622d791c72dfb3ae1f22a54c209b Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Wed, 2 Nov 2022 01:12:50 -0700 Subject: [PATCH 48/69] Update node types for TS 4.9 RC (#3389) TS 4.9 RC updates AbortSignal again, and requires a matching upgrade to `@types/node`. Followup to #3334. Required to compile against TS 4.9 RC or Typescript nightly builds. --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c0e0ffa..a1f1d14b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "monaco-editor", - "version": "0.34.1", + "version": "0.35.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "monaco-editor", - "version": "0.34.1", + "version": "0.35.0", "hasInstallScript": true, "license": "MIT", "devDependencies": { @@ -1692,9 +1692,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "version": "18.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.7.tgz", + "integrity": "sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==", "dev": true }, "node_modules/@types/parse-json": { @@ -8040,9 +8040,9 @@ "dev": true }, "@types/node": { - "version": "18.7.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", - "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "version": "18.11.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.7.tgz", + "integrity": "sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==", "dev": true }, "@types/parse-json": { From 6fe0852863eae7a0037d2cda5043f3592011304a Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Tue, 8 Nov 2022 15:44:08 +0100 Subject: [PATCH 49/69] Adds pipeline.yml --- .azure-pipelines/pipeline.yml | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .azure-pipelines/pipeline.yml diff --git a/.azure-pipelines/pipeline.yml b/.azure-pipelines/pipeline.yml new file mode 100644 index 00000000..0dc245e4 --- /dev/null +++ b/.azure-pipelines/pipeline.yml @@ -0,0 +1,55 @@ +############################################################################################### +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +############################################################################################### +name: $(Date:yyyyMMdd)$(Rev:.r) + +pr: none + +resources: + repositories: + - repository: templates + type: github + name: microsoft/vscode-engineering + ref: main + endpoint: Monaco + - repository: vscode + type: github + name: microsoft/vscode + ref: main + endpoint: Monaco + +parameters: + - name: quality + displayName: Quality + type: string + default: latest + values: + - latest + - next + +extends: + template: azure-pipelines/npm-package/pipeline.yml@templates + parameters: + npmPackages: + - name: foobar + testPlatforms: + - name: Linux + nodeVersions: + - 16.14.2 + - name: MacOS + nodeVersions: + - 16.14.2 + - name: Windows + nodeVersions: + - 16.14.2 + testSteps: + - checkout: vscode + - script: dir $(Build.SourcesDirectory) + buildSteps: + - script: dir $(Build.SourcesDirectory) + tag: ${{ parameters.quality }} + publishPackage: false + postPublishSteps: + - script: dir . + workingDirectory: $(Build.SourcesDirectory) From 1dc513ee3875fac2b4bf54819e49e323d4e01617 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Mon, 14 Nov 2022 16:37:01 +0100 Subject: [PATCH 50/69] Migrates github publish action to azure pipeline. --- .azure-pipelines/pipeline.yml | 58 ++-- .github/workflows/publish.yml | 250 ------------------ .../publish/setDevDependencyVersion.js | 19 -- .github/workflows/publish/setVersion.js | 17 -- .gitignore | 1 + package.json | 2 +- scripts/ci/monaco-editor-core.sh | 34 +++ scripts/ci/monaco-editor.sh | 33 +++ .../ci/prepare-monaco-editor-core-stable.ts | 56 ++++ scripts/ci/prepare-monaco-editor-stable.ts | 38 +++ scripts/lib/index.ts | 45 ++++ 11 files changed, 242 insertions(+), 311 deletions(-) delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/publish/setDevDependencyVersion.js delete mode 100644 .github/workflows/publish/setVersion.js create mode 100755 scripts/ci/monaco-editor-core.sh create mode 100755 scripts/ci/monaco-editor.sh create mode 100755 scripts/ci/prepare-monaco-editor-core-stable.ts create mode 100755 scripts/ci/prepare-monaco-editor-stable.ts create mode 100644 scripts/lib/index.ts diff --git a/.azure-pipelines/pipeline.yml b/.azure-pipelines/pipeline.yml index 0dc245e4..afdbed19 100644 --- a/.azure-pipelines/pipeline.yml +++ b/.azure-pipelines/pipeline.yml @@ -4,6 +4,7 @@ ############################################################################################### name: $(Date:yyyyMMdd)$(Rev:.r) +trigger: none pr: none resources: @@ -13,11 +14,6 @@ resources: name: microsoft/vscode-engineering ref: main endpoint: Monaco - - repository: vscode - type: github - name: microsoft/vscode - ref: main - endpoint: Monaco parameters: - name: quality @@ -27,29 +23,43 @@ parameters: values: - latest - next + - name: publishMonacoEditorCore + displayName: 🚀 Publish Monaco Editor Core + type: boolean + default: false + - name: publishMonacoEditor + displayName: 🚀 Publish Editor Core + type: boolean + default: false extends: template: azure-pipelines/npm-package/pipeline.yml@templates parameters: npmPackages: - - name: foobar - testPlatforms: - - name: Linux - nodeVersions: - - 16.14.2 - - name: MacOS - nodeVersions: - - 16.14.2 - - name: Windows - nodeVersions: - - 16.14.2 - testSteps: - - checkout: vscode - - script: dir $(Build.SourcesDirectory) + - name: monaco-editor-core + workingDirectory: $(Build.SourcesDirectory)/dependencies/vscode/out-monaco-editor-core + testPlatforms: [] buildSteps: - - script: dir $(Build.SourcesDirectory) + - script: npm ci + displayName: Install NPM dependencies + + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-core-stable + displayName: Setup, Build & Test monaco-editor-core + tag: ${{ parameters.quality }} - publishPackage: false - postPublishSteps: - - script: dir . - workingDirectory: $(Build.SourcesDirectory) + publishPackage: ${{ parameters.publishMonacoEditorCore }} + publishRequiresApproval: false + + - name: monaco-editor + workingDirectory: $(Build.SourcesDirectory)/release + testPlatforms: [] + buildSteps: + - script: npm ci + displayName: Install NPM dependencies + + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-stable + displayName: Setup, Build & Test monaco-editor + + tag: ${{ parameters.quality }} + publishPackage: ${{ parameters.publishMonacoEditor }} + publishRequiresApproval: false diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 280d3a78..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,250 +0,0 @@ -name: Publish to npm - -on: - schedule: - - cron: '0 5 * * *' - # enable users to manually trigger with workflow_dispatch - workflow_dispatch: - inputs: - nightly: - description: 'is nightly?' - required: true - default: 'true' -jobs: - publish: - if: ${{ github.repository == 'microsoft/monaco-editor' }} - name: Publish to npm - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v2 - with: - node-version: 16 - - - name: (monaco-editor) checkout - uses: actions/checkout@v2 - with: - repository: 'microsoft/monaco-editor' - path: './monaco-editor' - - - name: Compute state - id: state - run: | - echo '::echo::on' - node ./monaco-editor/.github/workflows/publish/computeState.js "${{github.event_name}}" "${{github.event.inputs.nightly}}" - # outputs: dist_tag, version, vscode_branch, skip_monaco_editor_core, skip_monaco_editor - - - name: (vscode) checkout - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - uses: actions/checkout@v2 - with: - repository: 'microsoft/vscode' - ref: ${{ steps.state.outputs.vscode_branch }} - path: './vscode' - - - name: (vscode-loc) checkout - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - uses: actions/checkout@v2 - with: - repository: 'microsoft/vscode-loc' - path: './vscode-loc' - - - name: (vscode) execute `yarn` - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn --frozen-lockfile --network-timeout 180000 - - - name: (vscode) Download Playwright - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: ./vscode - run: yarn playwright-install - - - name: (vscode) Run Hygiene Checks - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn gulp hygiene - - - name: (vscode) Run Valid Layers Checks - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn valid-layers-check - - - name: (vscode) Compile /build/ - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn --cwd build compile - - - name: (vscode) Run eslint - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn eslint - - - name: (vscode) Run Monaco Editor Checks - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn monaco-compile-check - - - name: (vscode) Compile - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn --max_old_space_size=4095 compile - - - name: (vscode) Run Unit Tests (Browser) - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn test-browser --browser chromium - - - name: (vscode) Patch package.json version - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - run: node ./monaco-editor/.github/workflows/publish/setVersion.js ./vscode/build/monaco/package.json ${{ steps.state.outputs.version }} - - - name: (vscode) Editor Distro - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: yarn gulp editor-distro - - - name: Editor ESM sources check - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode/test/monaco' - run: yarn run esm-check - - - name: (vscode) Typings validation prep - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode' - run: mkdir typings-test - - - name: (vscode) Typings validation - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: ./vscode/typings-test - run: | - yarn init -yp - ../node_modules/.bin/tsc --init - echo "import '../out-monaco-editor-core';" > a.ts - ../node_modules/.bin/tsc --noEmit - - - name: (vscode) Package Editor with Webpack - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: ./vscode/test/monaco - run: yarn run bundle-webpack - - - name: (vscode) Compile Editor Tests - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: ./vscode/test/monaco - run: yarn run compile - - - name: (vscode) Run Editor Tests - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - timeout-minutes: 5 - working-directory: ./vscode/test/monaco - run: yarn test - - - name: Set `npm` config - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - run: npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Publish `monaco-editor-core` - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - working-directory: './vscode/out-monaco-editor-core' - run: npm publish --tag ${{ steps.state.outputs.dist_tag }} - - - name: Delete `npm` config - if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }} - run: npm config delete //registry.npmjs.org/:_authToken - - - name: (monaco-editor) Patch package.json version - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - run: node ./monaco-editor/.github/workflows/publish/setVersion.js ./monaco-editor/package.json ${{ steps.state.outputs.version }} - - - name: (monaco-editor) execute `npm ci` (1) - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm ci - - - name: (monaco-editor) execute `npm ci` (2) - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor/webpack-plugin' - run: npm ci - - - name: (monaco-editor) Patch package.json monaco-editor-core dev dependency version - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - run: node ./monaco-editor/.github/workflows/publish/setDevDependencyVersion.js ./monaco-editor/package.json monaco-editor-core ${{ steps.state.outputs.version }} - - - name: (monaco-editor) execute `npm install` to pick up local monaco-editor-core - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm install - - - name: (monaco-editor) Install OS Dependencies for Playwright - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: sudo npm run playwright-install-deps - - - name: (monaco-editor) Check prettier - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run prettier-check - - - name: (monaco-editor) Build - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run release - - - name: (monaco-editor) Run unit tests - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm test - - - name: (monaco-editor) Compile webpack plugin - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run compile --prefix webpack-plugin - - - name: (monaco-editor) Package using webpack plugin - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run package-for-smoketest-webpack - - - name: (monaco-editor) Package using esbuild - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run package-for-smoketest-esbuild - - - name: (monaco-editor) Package using vite - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run package-for-smoketest-vite - - - name: (monaco-editor) Package using parcel - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run package-for-smoketest-parcel --prefix test/smoke/parcel - - - name: (monaco-editor) Run smoke test - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run smoketest - - - name: (monaco-editor) Build website - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor' - run: npm run build-website - - - name: Set `npm` config - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - run: npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Publish `monaco-editor` - if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }} - working-directory: './monaco-editor/release' - run: npm publish --tag ${{ steps.state.outputs.dist_tag }} - - - name: Create Issue On Failure - if: failure() - uses: JasonEtco/create-an-issue@9e6213aec58987fa7d2f4deb8b256b99e63107a2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - filename: ./monaco-editor/.github/publish-failure-issue-template.md diff --git a/.github/workflows/publish/setDevDependencyVersion.js b/.github/workflows/publish/setDevDependencyVersion.js deleted file mode 100644 index c25013ec..00000000 --- a/.github/workflows/publish/setDevDependencyVersion.js +++ /dev/null @@ -1,19 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -//@ts-check - -const fs = require('fs'); - -if (process.argv.length !== 5) { - console.error( - `usage: node setDevDependencyVersion.js ` - ); - process.exit(1); -} - -const packagejson = JSON.parse(fs.readFileSync(process.argv[2]).toString()); -packagejson['devDependencies'][process.argv[3]] = process.argv[4]; -fs.writeFileSync(process.argv[2], JSON.stringify(packagejson, null, '\t') + '\n'); diff --git a/.github/workflows/publish/setVersion.js b/.github/workflows/publish/setVersion.js deleted file mode 100644 index 53d0acdb..00000000 --- a/.github/workflows/publish/setVersion.js +++ /dev/null @@ -1,17 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -//@ts-check - -const fs = require('fs'); - -if (process.argv.length !== 4) { - console.error(`usage: node setVersion.js `); - process.exit(1); -} - -const packagejson = JSON.parse(fs.readFileSync(process.argv[2]).toString()); -packagejson.version = process.argv[3]; -fs.writeFileSync(process.argv[2], JSON.stringify(packagejson, null, '\t') + '\n'); diff --git a/.gitignore b/.gitignore index 77b06aa4..eeb18620 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ **/node_modules/ **/out/ **/release/ +**/dependencies/ /test/manual/generated/** /test/smoke/vite/dist/** /test/smoke/parcel/dist/** diff --git a/package.json b/package.json index d6dddf62..fde0e2f3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "monaco-editor", "version": "0.34.1", - "vscode": "0316a754aa4c25208bef91937efbce2ab1e3ce37", + "vscodeRef": "0316a754aa4c25208bef91937efbce2ab1e3ce37", "private": true, "description": "A browser based code editor", "author": "Microsoft Corporation", diff --git a/scripts/ci/monaco-editor-core.sh b/scripts/ci/monaco-editor-core.sh new file mode 100755 index 00000000..52725a15 --- /dev/null +++ b/scripts/ci/monaco-editor-core.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e + +# cwd must be the vscode repository. + +yarn --frozen-lockfile --network-timeout 180000 +yarn playwright-install +yarn gulp hygiene +yarn valid-layers-check +yarn --cwd build compile +yarn eslint +yarn monaco-compile-check +yarn --max_old_space_size=4095 compile + +yarn test-browser --browser chromium + +yarn gulp editor-distro +mkdir typings-test + +cd typings-test +yarn init -yp +../node_modules/.bin/tsc --init +echo "import '../out-monaco-editor-core';" > a.ts +../node_modules/.bin/tsc --noEmit +cd .. + +cd test/monaco +yarn run esm-check +yarn run bundle-webpack +yarn run compile +yarn test +cd ../.. + +# npm package is now in dependencies/vscode/out-monaco-editor-core, ready to be published diff --git a/scripts/ci/monaco-editor.sh b/scripts/ci/monaco-editor.sh new file mode 100755 index 00000000..4efd4f74 --- /dev/null +++ b/scripts/ci/monaco-editor.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +# execute `npm install` to pick up local monaco-editor-core +npm install +# Install OS Dependencies for Playwright +sudo npm run playwright-install-deps +# Check prettier +npm run prettier-check +# Build +npm run release + +# Run unit tests +npm test + +# Compile webpack plugin +npm run compile --prefix webpack-plugin +# Package using webpack plugin +npm run package-for-smoketest-webpack +# Package using esbuild +npm run package-for-smoketest-esbuild +# Package using vite +npm run package-for-smoketest-vite +# Package using parcel +npm run package-for-smoketest-parcel --prefix test/smoke/parcel + +# Run smoke test +npm run smoketest + +# Build website +npm run build-website + +# npm package is now ready to be published in ./release diff --git a/scripts/ci/prepare-monaco-editor-core-stable.ts b/scripts/ci/prepare-monaco-editor-core-stable.ts new file mode 100755 index 00000000..d6cb240c --- /dev/null +++ b/scripts/ci/prepare-monaco-editor-core-stable.ts @@ -0,0 +1,56 @@ +import { mkdir, rm } from 'fs/promises'; +import { join, resolve } from 'path'; +import { group, gitShallowClone, run, writeJsonFile } from '../lib'; + +const selfPath = __dirname; +const rootPath = join(selfPath, '..', '..'); +const dependenciesPath = join(rootPath, 'dependencies'); +const vscodePath = resolve(dependenciesPath, 'vscode'); +const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json'); + +async function prepareMonacoEditorCoreReleaseStable() { + const monacoEditorPackageJson = require(monacoEditorPackageJsonPath) as { + version: string; + vscodeRef: string; + }; + await prepareMonacoEditorCoreRelease( + monacoEditorPackageJson.version, + monacoEditorPackageJson.vscodeRef + ); + + // npm package is now in dependencies/vscode/out-monaco-editor-core, ready to be published +} + +async function prepareMonacoEditorCoreRelease(version: string, vscodeRef: string) { + await mkdir(vscodePath, { recursive: true }); + + await rm(dependenciesPath, { force: true, recursive: true }); + + await group('Checkout vscode', async () => { + await gitShallowClone(vscodePath, 'https://github.com/microsoft/vscode.git', vscodeRef); + }); + await group('Checkout vscode-loc', async () => { + await gitShallowClone( + // Must be a sibling to the vscode repository + 'dependencies/vscode-loc', + 'https://github.com/microsoft/vscode-loc.git', + 'main' + ); + }); + + await group('Set Version', async () => { + const monacoEditorCorePackageJsonSourcePath = resolve( + vscodePath, + './build/monaco/package.json' + ); + const packageJson = require(monacoEditorCorePackageJsonSourcePath) as { version: string }; + packageJson.version = version; + await writeJsonFile(monacoEditorPackageJsonPath, packageJson); + }); + + await group('Building & Testing', async () => { + await run(resolve(selfPath, './monaco-editor-core.sh'), { cwd: vscodePath }); + }); +} + +prepareMonacoEditorCoreReleaseStable(); diff --git a/scripts/ci/prepare-monaco-editor-stable.ts b/scripts/ci/prepare-monaco-editor-stable.ts new file mode 100755 index 00000000..f01137fb --- /dev/null +++ b/scripts/ci/prepare-monaco-editor-stable.ts @@ -0,0 +1,38 @@ +import { readFile } from 'fs/promises'; +import { join, resolve } from 'path'; +import { group, run, writeJsonFile } from '../lib'; + +const selfPath = __dirname; +const rootPath = join(selfPath, '..', '..'); +const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json'); + +async function prepareMonacoEditorReleaseStable() { + const monacoEditorPackageJson = JSON.parse( + await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' }) + ) as { version: string }; + await prepareMonacoEditorRelease(monacoEditorPackageJson.version); + + // npm package is now in ./release, ready to be published +} + +async function prepareMonacoEditorRelease(version: string) { + await group('npm ci', async () => { + await run('npm ci', { cwd: resolve(rootPath, 'webpack-plugin') }); + }); + + await group('Set Version', async () => { + const packageJson = JSON.parse( + await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' }) + ) as { version: string; devDependencies: Record }; + packageJson.version = version; + // TODO packageJson.devDependencies['monaco-editor-core'] = version; + + await writeJsonFile(monacoEditorPackageJsonPath, packageJson); + }); + + await group('Building & Testing', async () => { + await run(resolve(selfPath, './monaco-editor.sh'), { cwd: rootPath }); + }); +} + +prepareMonacoEditorReleaseStable(); diff --git a/scripts/lib/index.ts b/scripts/lib/index.ts new file mode 100644 index 00000000..de59ac6f --- /dev/null +++ b/scripts/lib/index.ts @@ -0,0 +1,45 @@ +import { spawn } from 'child_process'; +import { mkdir, writeFile } from 'fs/promises'; + +export interface RunOptions { + cwd: string; +} + +export async function run(command: string, options: RunOptions) { + console.log(`Running ${command} in ${options.cwd}`); + const process = spawn(command, { shell: true, cwd: options.cwd, stdio: 'inherit' }); + return new Promise((resolve, reject) => { + process.on('exit', (code) => { + if (code !== 0) { + reject(new Error(`Command ${command} exited with code ${code}`)); + } else { + resolve(); + } + }); + }); +} + +export async function gitShallowClone(targetPath: string, repositoryUrl: string, ref: string) { + await mkdir(targetPath, { recursive: true }); + const options: RunOptions = { cwd: targetPath }; + await run('git init', options); + await run(`git remote add origin ${repositoryUrl}`, options); + await run(`git fetch --depth 1 origin ${ref}`, options); + await run(`git checkout ${ref}`, options); +} + +export async function group(name: string, body: () => Promise): Promise { + console.log(`##[group]${name}`); + try { + await body(); + } catch (e) { + console.error(e); + throw e; + } finally { + console.log('##[endgroup]'); + } +} + +export async function writeJsonFile(filePath: string, jsonData: unknown): Promise { + await writeFile(filePath, JSON.stringify(jsonData, null, '\t') + '\n'); +} From a02ad6c9a551a7acc0f7e3ab633f7cee7522ac7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 11:37:16 +0100 Subject: [PATCH 51/69] Bump loader-utils from 2.0.2 to 2.0.3 in /webpack-plugin (#3399) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: loader-utils dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- webpack-plugin/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/webpack-plugin/package-lock.json b/webpack-plugin/package-lock.json index 2c63c24e..a1eb589a 100644 --- a/webpack-plugin/package-lock.json +++ b/webpack-plugin/package-lock.json @@ -968,9 +968,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -2548,9 +2548,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", From 1a70afe692c0e79f3e9f8db9e7776af24f7b5098 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 11:37:35 +0100 Subject: [PATCH 52/69] Bump loader-utils from 2.0.2 to 2.0.3 in /samples (#3401) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/package-lock.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/samples/package-lock.json b/samples/package-lock.json index 63bbdb4a..910ad0dc 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -2459,9 +2459,10 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dev": true, - "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -6102,7 +6103,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dev": true, "requires": { "big.js": "^5.2.2", From b1eace9857225608cc5f9e4911adc946fe5c6aff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 11:37:51 +0100 Subject: [PATCH 53/69] Bump loader-utils in /samples/browser-esm-webpack-typescript-react (#3400) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/browser-esm-webpack-typescript-react/package-lock.json b/samples/browser-esm-webpack-typescript-react/package-lock.json index 38d43c56..c390d559 100644 --- a/samples/browser-esm-webpack-typescript-react/package-lock.json +++ b/samples/browser-esm-webpack-typescript-react/package-lock.json @@ -2844,9 +2844,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -5652,9 +5652,9 @@ "peer": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", "dev": true, "requires": { "big.js": "^5.2.2", From 1160858c06d4772e3e61cb6fdcbff867e657d7ff Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Wed, 16 Nov 2022 13:39:25 +0100 Subject: [PATCH 54/69] Adds nightly release --- .azure-pipelines/publish-nightly.yml | 55 +++++++++++++++++++ .../{pipeline.yml => publish-stable.yml} | 15 ++--- ...table.ts => prepare-monaco-editor-core.ts} | 25 ++++++--- ...tor-stable.ts => prepare-monaco-editor.ts} | 20 +++++-- scripts/lib/index.ts | 10 ++++ 5 files changed, 103 insertions(+), 22 deletions(-) create mode 100644 .azure-pipelines/publish-nightly.yml rename .azure-pipelines/{pipeline.yml => publish-stable.yml} (89%) rename scripts/ci/{prepare-monaco-editor-core-stable.ts => prepare-monaco-editor-core.ts} (72%) mode change 100755 => 100644 rename scripts/ci/{prepare-monaco-editor-stable.ts => prepare-monaco-editor.ts} (69%) mode change 100755 => 100644 diff --git a/.azure-pipelines/publish-nightly.yml b/.azure-pipelines/publish-nightly.yml new file mode 100644 index 00000000..6985364e --- /dev/null +++ b/.azure-pipelines/publish-nightly.yml @@ -0,0 +1,55 @@ +############################################################################################### +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +############################################################################################### +name: $(Date:yyyyMMdd)$(Rev:.r) + +trigger: none +pr: none + +schedules: + - cron: '0 7 * * *' + displayName: Daily release + branches: + include: + - main + +resources: + repositories: + - repository: templates + type: github + name: microsoft/vscode-engineering + ref: main + endpoint: Monaco + +extends: + template: azure-pipelines/npm-package/pipeline.yml@templates + parameters: + npmPackages: + - name: monaco-editor-core + workingDirectory: $(Build.SourcesDirectory)/dependencies/vscode/out-monaco-editor-core + testPlatforms: [] + buildSteps: + - script: npm ci + displayName: Install NPM dependencies + + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-core nightly + displayName: Setup, Build & Test monaco-editor-core + + tag: next + publishPackage: true + publishRequiresApproval: false + + - name: monaco-editor + workingDirectory: $(Build.SourcesDirectory)/release + testPlatforms: [] + buildSteps: + - script: npm ci + displayName: Install NPM dependencies + + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor nightly + displayName: Setup, Build & Test monaco-editor + + tag: next + publishPackage: true + publishRequiresApproval: false diff --git a/.azure-pipelines/pipeline.yml b/.azure-pipelines/publish-stable.yml similarity index 89% rename from .azure-pipelines/pipeline.yml rename to .azure-pipelines/publish-stable.yml index afdbed19..2190aa47 100644 --- a/.azure-pipelines/pipeline.yml +++ b/.azure-pipelines/publish-stable.yml @@ -16,13 +16,6 @@ resources: endpoint: Monaco parameters: - - name: quality - displayName: Quality - type: string - default: latest - values: - - latest - - next - name: publishMonacoEditorCore displayName: 🚀 Publish Monaco Editor Core type: boolean @@ -43,10 +36,10 @@ extends: - script: npm ci displayName: Install NPM dependencies - - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-core-stable + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-core stable displayName: Setup, Build & Test monaco-editor-core - tag: ${{ parameters.quality }} + tag: latest publishPackage: ${{ parameters.publishMonacoEditorCore }} publishRequiresApproval: false @@ -57,9 +50,9 @@ extends: - script: npm ci displayName: Install NPM dependencies - - script: yarn ts-node ./scripts/ci/prepare-monaco-editor-stable + - script: yarn ts-node ./scripts/ci/prepare-monaco-editor stable displayName: Setup, Build & Test monaco-editor - tag: ${{ parameters.quality }} + tag: latest publishPackage: ${{ parameters.publishMonacoEditor }} publishRequiresApproval: false diff --git a/scripts/ci/prepare-monaco-editor-core-stable.ts b/scripts/ci/prepare-monaco-editor-core.ts old mode 100755 new mode 100644 similarity index 72% rename from scripts/ci/prepare-monaco-editor-core-stable.ts rename to scripts/ci/prepare-monaco-editor-core.ts index d6cb240c..606304ea --- a/scripts/ci/prepare-monaco-editor-core-stable.ts +++ b/scripts/ci/prepare-monaco-editor-core.ts @@ -1,6 +1,6 @@ import { mkdir, rm } from 'fs/promises'; import { join, resolve } from 'path'; -import { group, gitShallowClone, run, writeJsonFile } from '../lib'; +import { group, gitShallowClone, run, writeJsonFile, getNightlyVersion } from '../lib'; const selfPath = __dirname; const rootPath = join(selfPath, '..', '..'); @@ -8,15 +8,26 @@ const dependenciesPath = join(rootPath, 'dependencies'); const vscodePath = resolve(dependenciesPath, 'vscode'); const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json'); -async function prepareMonacoEditorCoreReleaseStable() { +async function prepareMonacoEditorCoreReleaseStableOrNightly() { const monacoEditorPackageJson = require(monacoEditorPackageJsonPath) as { version: string; vscodeRef: string; }; - await prepareMonacoEditorCoreRelease( - monacoEditorPackageJson.version, - monacoEditorPackageJson.vscodeRef - ); + let version: string; + let ref: string; + + const arg = process.argv[2]; + if (arg === 'stable') { + version = monacoEditorPackageJson.version; + ref = monacoEditorPackageJson.vscodeRef; + } else if (arg === 'nightly') { + version = getNightlyVersion(monacoEditorPackageJson.version); + ref = 'main'; + } else { + throw new Error('Invalid argument'); + } + + await prepareMonacoEditorCoreRelease(version, ref); // npm package is now in dependencies/vscode/out-monaco-editor-core, ready to be published } @@ -53,4 +64,4 @@ async function prepareMonacoEditorCoreRelease(version: string, vscodeRef: string }); } -prepareMonacoEditorCoreReleaseStable(); +prepareMonacoEditorCoreReleaseStableOrNightly(); diff --git a/scripts/ci/prepare-monaco-editor-stable.ts b/scripts/ci/prepare-monaco-editor.ts old mode 100755 new mode 100644 similarity index 69% rename from scripts/ci/prepare-monaco-editor-stable.ts rename to scripts/ci/prepare-monaco-editor.ts index f01137fb..ec20e602 --- a/scripts/ci/prepare-monaco-editor-stable.ts +++ b/scripts/ci/prepare-monaco-editor.ts @@ -1,16 +1,28 @@ import { readFile } from 'fs/promises'; import { join, resolve } from 'path'; -import { group, run, writeJsonFile } from '../lib'; +import { getNightlyVersion, group, run, writeJsonFile } from '../lib'; const selfPath = __dirname; const rootPath = join(selfPath, '..', '..'); const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json'); -async function prepareMonacoEditorReleaseStable() { +async function prepareMonacoEditorReleaseStableOrNightly() { const monacoEditorPackageJson = JSON.parse( await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' }) ) as { version: string }; - await prepareMonacoEditorRelease(monacoEditorPackageJson.version); + + let version: string; + + const arg = process.argv[2]; + if (arg === 'stable') { + version = monacoEditorPackageJson.version; + } else if (arg === 'nightly') { + version = getNightlyVersion(monacoEditorPackageJson.version); + } else { + throw new Error('Invalid argument'); + } + + await prepareMonacoEditorRelease(version); // npm package is now in ./release, ready to be published } @@ -35,4 +47,4 @@ async function prepareMonacoEditorRelease(version: string) { }); } -prepareMonacoEditorReleaseStable(); +prepareMonacoEditorReleaseStableOrNightly(); diff --git a/scripts/lib/index.ts b/scripts/lib/index.ts index de59ac6f..62f3c9ec 100644 --- a/scripts/lib/index.ts +++ b/scripts/lib/index.ts @@ -43,3 +43,13 @@ export async function group(name: string, body: () => Promise): Promise { await writeFile(filePath, JSON.stringify(jsonData, null, '\t') + '\n'); } + +export function getNightlyVersion(version: string): string { + const pieces = version.split('.'); + const minor = parseInt(pieces[1], 10); + const date = new Date(); + const yyyy = date.getUTCFullYear(); + const mm = String(date.getUTCMonth() + 1).padStart(2, '0'); + const dd = String(date.getUTCDate()).padStart(2, '0'); + return `0.${minor + 1}.0-dev.${yyyy}${mm}${dd}`; +} From 65d13756cf1fee7cbe3712b50cce32ad0493046a Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Wed, 16 Nov 2022 14:32:25 +0100 Subject: [PATCH 55/69] Fixes version issue. --- scripts/ci/prepare-monaco-editor-core.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/prepare-monaco-editor-core.ts b/scripts/ci/prepare-monaco-editor-core.ts index 606304ea..daa66990 100644 --- a/scripts/ci/prepare-monaco-editor-core.ts +++ b/scripts/ci/prepare-monaco-editor-core.ts @@ -56,7 +56,7 @@ async function prepareMonacoEditorCoreRelease(version: string, vscodeRef: string ); const packageJson = require(monacoEditorCorePackageJsonSourcePath) as { version: string }; packageJson.version = version; - await writeJsonFile(monacoEditorPackageJsonPath, packageJson); + await writeJsonFile(monacoEditorCorePackageJsonSourcePath, packageJson); }); await group('Building & Testing', async () => { From 78bfe772e2877c52a4a66789e02816156bf3a4a4 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Wed, 16 Nov 2022 15:37:02 +0100 Subject: [PATCH 56/69] Patch monaco-editor-core version --- scripts/ci/prepare-monaco-editor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/prepare-monaco-editor.ts b/scripts/ci/prepare-monaco-editor.ts index ec20e602..a9b59646 100644 --- a/scripts/ci/prepare-monaco-editor.ts +++ b/scripts/ci/prepare-monaco-editor.ts @@ -37,7 +37,7 @@ async function prepareMonacoEditorRelease(version: string) { await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' }) ) as { version: string; devDependencies: Record }; packageJson.version = version; - // TODO packageJson.devDependencies['monaco-editor-core'] = version; + packageJson.devDependencies['monaco-editor-core'] = version; await writeJsonFile(monacoEditorPackageJsonPath, packageJson); }); From d61064845890b8c937a1bed4cceb2e4becfe624e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 10:24:18 +0100 Subject: [PATCH 57/69] Bump loader-utils from 2.0.3 to 2.0.4 in /webpack-plugin (#3425) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: loader-utils dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- webpack-plugin/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/webpack-plugin/package-lock.json b/webpack-plugin/package-lock.json index a1eb589a..4705db44 100644 --- a/webpack-plugin/package-lock.json +++ b/webpack-plugin/package-lock.json @@ -968,9 +968,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -2548,9 +2548,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", From 7152c5ed091202460d6ba23ba37c11826617affd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 09:32:19 +0000 Subject: [PATCH 58/69] Bump loader-utils in /samples/browser-esm-webpack-typescript-react (#3415) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.4. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.4) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/browser-esm-webpack-typescript-react/package-lock.json b/samples/browser-esm-webpack-typescript-react/package-lock.json index c390d559..72e8bcf4 100644 --- a/samples/browser-esm-webpack-typescript-react/package-lock.json +++ b/samples/browser-esm-webpack-typescript-react/package-lock.json @@ -2844,9 +2844,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -5652,9 +5652,9 @@ "peer": true }, "loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", From f53d7f1b986a3afd673c702aff54cc88a0d1dafa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 09:40:20 +0000 Subject: [PATCH 59/69] Bump loader-utils from 2.0.3 to 2.0.4 in /samples (#3424) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/package-lock.json b/samples/package-lock.json index 910ad0dc..8ccb7bf3 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -2459,9 +2459,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -6103,9 +6103,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", - "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", From ed05245a0317eb037a25a916a91689b729641825 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 09:47:33 +0000 Subject: [PATCH 60/69] Bump loader-utils from 2.0.2 to 2.0.4 (#3416) Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.4. - [Release notes](https://github.com/webpack/loader-utils/releases) - [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md) - [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.4) --- updated-dependencies: - dependency-name: loader-utils dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1f1d14b..6ae420da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "monaco-editor", - "version": "0.35.0", + "version": "0.34.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "monaco-editor", - "version": "0.35.0", + "version": "0.34.1", "hasInstallScript": true, "license": "MIT", "devDependencies": { @@ -4279,9 +4279,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -9807,9 +9807,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "requires": { "big.js": "^5.2.2", From 8f8b47432b8895a4cdf81b26c0904e0de69178f3 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Mon, 21 Nov 2022 12:31:18 +0100 Subject: [PATCH 61/69] Set `always` to true to trigger a build even when there are no new commits. This is because nightly is build from the latest vscode@main. --- .azure-pipelines/publish-nightly.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.azure-pipelines/publish-nightly.yml b/.azure-pipelines/publish-nightly.yml index 6985364e..3630e375 100644 --- a/.azure-pipelines/publish-nightly.yml +++ b/.azure-pipelines/publish-nightly.yml @@ -13,6 +13,7 @@ schedules: branches: include: - main + always: true resources: repositories: From d493d9fd8c21ed52b23c2c7b9df6dc0577118a4f Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Mon, 21 Nov 2022 15:38:27 -0500 Subject: [PATCH 62/69] Remove PR Chat --- .github/workflows/pr-chat.yml | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 .github/workflows/pr-chat.yml diff --git a/.github/workflows/pr-chat.yml b/.github/workflows/pr-chat.yml deleted file mode 100644 index bff67b13..00000000 --- a/.github/workflows/pr-chat.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: PR Chat -on: - pull_request_target: - types: [opened, ready_for_review, closed] - -jobs: - main: - runs-on: ubuntu-latest - if: ${{ !github.event.pull_request.draft }} - steps: - - name: Checkout Actions - uses: actions/checkout@v2 - with: - repository: 'microsoft/vscode-github-triage-actions' - ref: stable - path: ./actions - - name: Install Actions - run: npm install --production --prefix ./actions - - name: Run Code Review Chat - uses: ./actions/code-review-chat - with: - token: ${{secrets.GITHUB_TOKEN}} - slack_token: ${{ secrets.SLACK_TOKEN }} - slack_bot_name: 'VSCodeBot' - notification_channel: codereview From 030f5f59f13a9ccbe35986e1f0494dd3231dde99 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Tue, 22 Nov 2022 09:47:32 +0100 Subject: [PATCH 63/69] update deps (#3430) --- package-lock.json | 65 +++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6ae420da..a646e6c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4423,9 +4423,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -4435,9 +4435,9 @@ } }, "node_modules/mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", @@ -4453,9 +4453,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -4500,6 +4500,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4575,9 +4587,9 @@ } }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -9912,18 +9924,18 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -9939,9 +9951,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -9969,6 +9981,15 @@ } } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -10034,9 +10055,9 @@ } }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "neo-async": { From 415b279fa04c40447ebb5bbbde50dbc078fffe9f Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Tue, 22 Nov 2022 10:19:03 +0100 Subject: [PATCH 64/69] update electron (#3431) --- samples/electron-amd-nodeIntegration/main.js | 4 ++- samples/electron-esm-webpack/.gitignore | 5 ++-- samples/package-lock.json | 28 ++++++++++++-------- samples/package.json | 2 +- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/samples/electron-amd-nodeIntegration/main.js b/samples/electron-amd-nodeIntegration/main.js index 48b149b7..4c199336 100644 --- a/samples/electron-amd-nodeIntegration/main.js +++ b/samples/electron-amd-nodeIntegration/main.js @@ -10,7 +10,9 @@ function createWindow() { height: 600, webPreferences: { nodeIntegration: true, - worldSafeExecuteJavaScript: true + worldSafeExecuteJavaScript: true, + sandbox: false, + contextIsolation: false } }); mainWindow.loadURL(`file://${__dirname}/electron-index.html`); diff --git a/samples/electron-esm-webpack/.gitignore b/samples/electron-esm-webpack/.gitignore index 1e627d78..e23d2d2c 100644 --- a/samples/electron-esm-webpack/.gitignore +++ b/samples/electron-esm-webpack/.gitignore @@ -1,2 +1,3 @@ -/dist/*.js -/dist/*.ttf +dist/*.js +dist/*.txt +dist/*.ttf diff --git a/samples/package-lock.json b/samples/package-lock.json index 8ccb7bf3..ab2c69ff 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "devDependencies": { "css-loader": "^5.2.7", - "electron": "^17.2.0", + "electron": "^19.1.6", "file-loader": "^6.2.0", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", @@ -1372,13 +1372,14 @@ "license": "MIT" }, "node_modules/electron": { - "version": "17.4.11", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.6.tgz", + "integrity": "sha512-bT6Mr7JbHbONpr/U7R47lwTkMUvuAyOfnoLlbDqvGocQyZCCN3JB436wtf2+r3/IpMEz3T+dHLweFDY5i2wuxw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "dependencies": { - "@electron/get": "^1.13.0", - "@types/node": "^14.6.2", + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", "extract-zip": "^1.0.3" }, "bin": { @@ -1394,9 +1395,10 @@ "license": "ISC" }, "node_modules/electron/node_modules/@types/node": { - "version": "14.18.23", - "dev": true, - "license": "MIT" + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -5425,16 +5427,20 @@ "dev": true }, "electron": { - "version": "17.4.11", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.6.tgz", + "integrity": "sha512-bT6Mr7JbHbONpr/U7R47lwTkMUvuAyOfnoLlbDqvGocQyZCCN3JB436wtf2+r3/IpMEz3T+dHLweFDY5i2wuxw==", "dev": true, "requires": { "@electron/get": "2.0.0", - "@types/node": "^14.6.2", + "@types/node": "^16.11.26", "extract-zip": "^1.0.3" }, "dependencies": { "@types/node": { - "version": "14.18.23", + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", "dev": true } } diff --git a/samples/package.json b/samples/package.json index 48ae0591..923fde19 100644 --- a/samples/package.json +++ b/samples/package.json @@ -11,7 +11,7 @@ "license": "MIT", "devDependencies": { "css-loader": "^5.2.7", - "electron": "^17.2.0", + "electron": "^19.1.6", "file-loader": "^6.2.0", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", From eac891f9bf7137732df25ce0b645b819983e75b1 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Tue, 13 Dec 2022 17:08:03 +0100 Subject: [PATCH 65/69] Fixes CI --- package-lock.json | 14 +++++++------- package.json | 2 +- test/unit/all.js | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a646e6c2..7e99facc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "jsdom": "^19.0.0", "jsonc-parser": "^3.0.0", "mocha": "^9.2.0", - "monaco-editor-core": "0.35.0-dev.20221018.2", + "monaco-editor-core": "0.35.0-dev.20221208", "parcel": "^2.7.0", "playwright": "^1.18.1", "prettier": "^2.5.1", @@ -4519,9 +4519,9 @@ "dev": true }, "node_modules/monaco-editor-core": { - "version": "0.35.0-dev.20221018.2", - "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.35.0-dev.20221018.2.tgz", - "integrity": "sha512-RHx0zCV7y7WZHL6o4AWDd+SlXaXOegWVcg+tDxnyCrttqGfyh8q2Lwdx6Js+hKdCM2MFiiOkJoROMPQqiDIhbQ==", + "version": "0.35.0-dev.20221208", + "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.35.0-dev.20221208.tgz", + "integrity": "sha512-XQpKe+FoGoIWDqn/xiz5+Iyi1PrVWArlrBqqkQuWu4IBjUvs7/krZLqnsy/Vfoflu9Ldtoc1JU9wNu0tyDv66A==", "dev": true }, "node_modules/mri": { @@ -9999,9 +9999,9 @@ } }, "monaco-editor-core": { - "version": "0.35.0-dev.20221018.2", - "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.35.0-dev.20221018.2.tgz", - "integrity": "sha512-RHx0zCV7y7WZHL6o4AWDd+SlXaXOegWVcg+tDxnyCrttqGfyh8q2Lwdx6Js+hKdCM2MFiiOkJoROMPQqiDIhbQ==", + "version": "0.35.0-dev.20221208", + "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.35.0-dev.20221208.tgz", + "integrity": "sha512-XQpKe+FoGoIWDqn/xiz5+Iyi1PrVWArlrBqqkQuWu4IBjUvs7/krZLqnsy/Vfoflu9Ldtoc1JU9wNu0tyDv66A==", "dev": true }, "mri": { diff --git a/package.json b/package.json index fde0e2f3..23039443 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "jsdom": "^19.0.0", "jsonc-parser": "^3.0.0", "mocha": "^9.2.0", - "monaco-editor-core": "0.35.0-dev.20221018.2", + "monaco-editor-core": "0.35.0-dev.20221208", "parcel": "^2.7.0", "playwright": "^1.18.1", "prettier": "^2.5.1", diff --git a/test/unit/all.js b/test/unit/all.js index 4314e146..00cc27a2 100644 --- a/test/unit/all.js +++ b/test/unit/all.js @@ -21,6 +21,7 @@ global.self = global; global.document.queryCommandSupported = function () { return false; }; +global.UIEvent = tmp.window.UIEvent; global.window = { location: {}, From 366b9c38ff23acad2598f5e843bcc388a0224830 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Tue, 13 Dec 2022 17:17:55 +0100 Subject: [PATCH 66/69] Fixes playwright setup issues. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1758728e..abeacf57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: [push, pull_request] jobs: build: name: CI - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 From b5df92554d770fe21ad324d4087b0bd86f9586ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 16:40:24 +0000 Subject: [PATCH 67/69] Bump electron from 19.1.6 to 19.1.8 in /samples Bumps [electron](https://github.com/electron/electron) from 19.1.6 to 19.1.8. - [Release notes](https://github.com/electron/electron/releases) - [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) - [Commits](https://github.com/electron/electron/compare/v19.1.6...v19.1.8) --- updated-dependencies: - dependency-name: electron dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- samples/package-lock.json | 14 +++++++------- samples/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/samples/package-lock.json b/samples/package-lock.json index ab2c69ff..3d303f3c 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "devDependencies": { "css-loader": "^5.2.7", - "electron": "^19.1.6", + "electron": "^19.1.8", "file-loader": "^6.2.0", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", @@ -1372,9 +1372,9 @@ "license": "MIT" }, "node_modules/electron": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.6.tgz", - "integrity": "sha512-bT6Mr7JbHbONpr/U7R47lwTkMUvuAyOfnoLlbDqvGocQyZCCN3JB436wtf2+r3/IpMEz3T+dHLweFDY5i2wuxw==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.8.tgz", + "integrity": "sha512-UfPQdFjgKI0xCm1V5sV3iAVOs0kCwAE91xWzV5tI7ij14yOkxTdXp9BqTzFaSbQYLYxn6q1BUUe1nlzjJjzAnw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5427,9 +5427,9 @@ "dev": true }, "electron": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.6.tgz", - "integrity": "sha512-bT6Mr7JbHbONpr/U7R47lwTkMUvuAyOfnoLlbDqvGocQyZCCN3JB436wtf2+r3/IpMEz3T+dHLweFDY5i2wuxw==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.1.8.tgz", + "integrity": "sha512-UfPQdFjgKI0xCm1V5sV3iAVOs0kCwAE91xWzV5tI7ij14yOkxTdXp9BqTzFaSbQYLYxn6q1BUUe1nlzjJjzAnw==", "dev": true, "requires": { "@electron/get": "2.0.0", diff --git a/samples/package.json b/samples/package.json index 923fde19..89bb8b98 100644 --- a/samples/package.json +++ b/samples/package.json @@ -11,7 +11,7 @@ "license": "MIT", "devDependencies": { "css-loader": "^5.2.7", - "electron": "^19.1.6", + "electron": "^19.1.8", "file-loader": "^6.2.0", "glob": "^7.2.0", "html-webpack-plugin": "^5.5.0", From 6d9c7ea306dcbf168a33b88345f1ba1a9424f77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20K=C5=82osko?= Date: Thu, 8 Dec 2022 12:00:10 +0100 Subject: [PATCH 68/69] Fix tokenization of bitstrings without spacing --- src/basic-languages/elixir/elixir.test.ts | 27 +++++++++++++++++++++++ src/basic-languages/elixir/elixir.ts | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/basic-languages/elixir/elixir.test.ts b/src/basic-languages/elixir/elixir.test.ts index bd60257e..fe68c922 100644 --- a/src/basic-languages/elixir/elixir.test.ts +++ b/src/basic-languages/elixir/elixir.test.ts @@ -383,5 +383,32 @@ testTokenization('elixir', [ { startIndex: 15, type: 'delimiter.square.elixir' } ] } + ], + // Bitstrings + [ + { + line: '<>', + tokens: [ + { startIndex: 0, type: 'delimiter.angle.special.elixir' }, + { startIndex: 2, type: 'identifier.elixir' }, + { startIndex: 8, type: 'operator.elixir' }, + { startIndex: 10, type: 'number.elixir' }, + { startIndex: 12, type: 'operator.elixir' }, + { startIndex: 13, type: 'identifier.elixir' }, + { startIndex: 20, type: 'punctuation.elixir' }, + { startIndex: 21, type: 'white.elixir' }, + { startIndex: 22, type: 'identifier.elixir' }, + { startIndex: 27, type: 'operator.elixir' }, + { startIndex: 29, type: 'number.elixir' }, + { startIndex: 31, type: 'operator.elixir' }, + { startIndex: 32, type: 'identifier.elixir' }, + { startIndex: 39, type: 'punctuation.elixir' }, + { startIndex: 40, type: 'white.elixir' }, + { startIndex: 41, type: 'identifier.elixir' }, + { startIndex: 45, type: 'operator.elixir' }, + { startIndex: 47, type: 'identifier.elixir' }, + { startIndex: 53, type: 'delimiter.angle.special.elixir' } + ] + } ] ]); diff --git a/src/basic-languages/elixir/elixir.ts b/src/basic-languages/elixir/elixir.ts index ad974a20..210ac6bc 100644 --- a/src/basic-languages/elixir/elixir.ts +++ b/src/basic-languages/elixir/elixir.ts @@ -167,7 +167,7 @@ export const language = { // Keyword list shorthand keywordsShorthand: [ - [/(@atomName)(:)/, ['constant', 'constant.punctuation']], + [/(@atomName)(:)(\s+)/, ['constant', 'constant.punctuation', 'white']], // Use positive look-ahead to ensure the string is followed by : // and should be considered a keyword. [ From b70454a6b9c91933eebe3be7a1a7cacae01377fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20K=C5=82osko?= Date: Thu, 8 Dec 2022 12:11:39 +0100 Subject: [PATCH 69/69] Tokenizer single-quote docstrings as documentation comments --- src/basic-languages/elixir/elixir.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/basic-languages/elixir/elixir.ts b/src/basic-languages/elixir/elixir.ts index 210ac6bc..078d1030 100644 --- a/src/basic-languages/elixir/elixir.ts +++ b/src/basic-languages/elixir/elixir.ts @@ -532,6 +532,13 @@ export const language = { next: '@doubleQuotedHeredocDocstring' } ], + [ + /\@(module|type)?doc (~[sS])?'''/, + { + token: 'comment.block.documentation', + next: '@singleQuotedHeredocDocstring' + } + ], [ /\@(module|type)?doc (~[sS])?"/, { @@ -539,6 +546,13 @@ export const language = { next: '@doubleQuotedStringDocstring' } ], + [ + /\@(module|type)?doc (~[sS])?'/, + { + token: 'comment.block.documentation', + next: '@singleQuotedStringDocstring' + } + ], [/\@(module|type)?doc false/, 'comment.block.documentation'], // Module attributes [/\@(@variableName)/, 'variable'] @@ -549,11 +563,21 @@ export const language = { { include: '@docstringContent' } ], + singleQuotedHeredocDocstring: [ + [/'''/, { token: 'comment.block.documentation', next: '@pop' }], + { include: '@docstringContent' } + ], + doubleQuotedStringDocstring: [ [/"/, { token: 'comment.block.documentation', next: '@pop' }], { include: '@docstringContent' } ], + singleQuotedStringDocstring: [ + [/'/, { token: 'comment.block.documentation', next: '@pop' }], + { include: '@docstringContent' } + ], + // Operators, punctuation, brackets symbols: [