From 3a45af2e3af4eb5c455750c6f90e6fd7556c3bcd Mon Sep 17 00:00:00 2001 From: WakuwakuP Date: Wed, 10 Jul 2024 17:48:27 +0900 Subject: [PATCH 01/33] chore: Add baseURL configuration option to S3 modules Signed-off-by: WakuwakuP --- lib/config/default.js | 3 ++- lib/config/environment.js | 3 ++- lib/imageRouter/s3.js | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/config/default.js b/lib/config/default.js index d276e46eff..3c5687f1ae 100644 --- a/lib/config/default.js +++ b/lib/config/default.js @@ -74,7 +74,8 @@ module.exports = { accessKeyId: undefined, secretAccessKey: undefined, region: undefined, - endpoint: undefined + endpoint: undefined, + baseURL: undefined }, minio: { accessKey: undefined, diff --git a/lib/config/environment.js b/lib/config/environment.js index 70bdd6c35d..53d5341719 100644 --- a/lib/config/environment.js +++ b/lib/config/environment.js @@ -44,7 +44,8 @@ module.exports = { accessKeyId: process.env.CMD_S3_ACCESS_KEY_ID, secretAccessKey: process.env.CMD_S3_SECRET_ACCESS_KEY, region: process.env.CMD_S3_REGION, - endpoint: process.env.CMD_S3_ENDPOINT + endpoint: process.env.CMD_S3_ENDPOINT, + baseURL: process.env.CMD_S3_BASEURL }, minio: { accessKey: process.env.CMD_MINIO_ACCESS_KEY, diff --git a/lib/imageRouter/s3.js b/lib/imageRouter/s3.js index 3f47df2099..00b4062fd8 100644 --- a/lib/imageRouter/s3.js +++ b/lib/imageRouter/s3.js @@ -57,7 +57,11 @@ exports.uploadImage = function (imagePath, callback) { if (config.s3.endpoint) { s3Endpoint = config.s3.endpoint } - callback(null, `${s3Endpoint}/${config.s3bucket}/${params.Key}`) + if (config.s3.baseURL) { + callback(null, `${config.s3.baseURL}/${params.Key}`) + } else { + callback(null, `${s3Endpoint}/${config.s3bucket}/${params.Key}`) + } }).catch(err => { if (err) { callback(new Error(err), null) From 906040223ea7aedc7882282380fee39d8f4dbac3 Mon Sep 17 00:00:00 2001 From: Takeru Fukumoto Date: Thu, 20 Feb 2025 19:06:06 +0900 Subject: [PATCH 02/33] fix: default scheme settings to https Signed-off-by: Takeru Fukumoto --- lib/imageRouter/s3.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/imageRouter/s3.js b/lib/imageRouter/s3.js index 3f47df2099..f043f8f19a 100644 --- a/lib/imageRouter/s3.js +++ b/lib/imageRouter/s3.js @@ -51,7 +51,7 @@ exports.uploadImage = function (imagePath, callback) { // default scheme settings to https let s3Endpoint = 'https://s3.amazonaws.com' if (config.s3.region && config.s3.region !== 'us-east-1') { - s3Endpoint = `s3-${config.s3.region}.amazonaws.com` + s3Endpoint = `https://s3-${config.s3.region}.amazonaws.com` } // rewrite endpoint from config if (config.s3.endpoint) { From f0c68ad4a7d4ce8dd4a83ba679902d4c9862c43b Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 19 Mar 2025 20:02:46 +0800 Subject: [PATCH 03/33] chore: update GitHub Actions to use checkout@v4 Signed-off-by: Yukai Huang --- .github/workflows/build.yml | 10 +++++----- .github/workflows/check-release.yml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88309f61d2..88f529963c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: node-version: [14.x, 16.x] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 # from https://stackoverflow.com/a/69649733 - name: Reconfigure git to use HTTP authentication @@ -21,14 +21,14 @@ jobs: git config --global url."https://github.com/".insteadOf ssh://git@github.com/ - - uses: actions/cache@v2 + - uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 name: Use Node.js ${{ matrix.node-version }} with: node-version: ${{ matrix.node-version }} @@ -43,8 +43,8 @@ jobs: if: github.ref == 'refs/heads/master' || github.event.pull_request steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 name: Use Node.js 14 with: node-version: 14 diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml index 2d9915abd1..63e40ca325 100644 --- a/.github/workflows/check-release.yml +++ b/.github/workflows/check-release.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 From d56c774eb3331f1622be46ec76d14654c6d31284 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 19 Mar 2025 19:52:18 +0800 Subject: [PATCH 04/33] fix: update package-lock.json to mark extraneous dependencies as dev and optional Signed-off-by: Yukai Huang --- package-lock.json | 452 ++++++++++++++++++++++++++++++---------------- 1 file changed, 293 insertions(+), 159 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82da5cb1bd..738fe81f0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8770,30 +8770,34 @@ }, "node_modules/fsevents/node_modules/abbrev": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ansi-regex": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/aproba": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/are-we-there-yet": { "version": "1.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8801,15 +8805,17 @@ }, "node_modules/fsevents/node_modules/balanced-match": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/brace-expansion": { "version": "1.1.11", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8817,66 +8823,75 @@ }, "node_modules/fsevents/node_modules/chownr": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/code-point-at": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/concat-map": { "version": "0.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/console-control-strings": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/core-util-is": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/debug": { "version": "3.2.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/fsevents/node_modules/deep-extend": { "version": "0.6.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=4.0.0" } }, "node_modules/fsevents/node_modules/delegates": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/detect-libc": { "version": "1.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -8886,24 +8901,27 @@ }, "node_modules/fsevents/node_modules/fs-minipass": { "version": "1.2.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minipass": "^2.6.0" } }, "node_modules/fsevents/node_modules/fs.realpath": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/gauge": { "version": "2.7.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -8917,9 +8935,10 @@ }, "node_modules/fsevents/node_modules/glob": { "version": "7.1.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8937,15 +8956,17 @@ }, "node_modules/fsevents/node_modules/has-unicode": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/iconv-lite": { "version": "0.4.24", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8955,18 +8976,20 @@ }, "node_modules/fsevents/node_modules/ignore-walk": { "version": "3.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/fsevents/node_modules/inflight": { "version": "1.0.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8974,24 +8997,27 @@ }, "node_modules/fsevents/node_modules/inherits": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ini": { "version": "1.3.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "engines": { "node": "*" } }, "node_modules/fsevents/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "number-is-nan": "^1.0.0" }, @@ -9001,15 +9027,17 @@ }, "node_modules/fsevents/node_modules/isarray": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minimatch": { "version": "3.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9019,15 +9047,17 @@ }, "node_modules/fsevents/node_modules/minimist": { "version": "0.0.8", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minipass": { "version": "2.9.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -9035,18 +9065,20 @@ }, "node_modules/fsevents/node_modules/minizlib": { "version": "1.3.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minipass": "^2.9.0" } }, "node_modules/fsevents/node_modules/mkdirp": { "version": "0.5.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minimist": "0.0.8" }, @@ -9056,15 +9088,17 @@ }, "node_modules/fsevents/node_modules/ms": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/needle": { "version": "2.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -9079,9 +9113,10 @@ }, "node_modules/fsevents/node_modules/node-pre-gyp": { "version": "0.14.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", + "optional": true, "dependencies": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -9100,9 +9135,10 @@ }, "node_modules/fsevents/node_modules/nopt": { "version": "4.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "abbrev": "1", "osenv": "^0.1.4" @@ -9113,24 +9149,27 @@ }, "node_modules/fsevents/node_modules/npm-bundled": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/fsevents/node_modules/npm-normalize-package-bin": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/npm-packlist": { "version": "1.4.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -9138,9 +9177,10 @@ }, "node_modules/fsevents/node_modules/npmlog": { "version": "4.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -9150,54 +9190,60 @@ }, "node_modules/fsevents/node_modules/number-is-nan": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/object-assign": { "version": "4.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/once": { "version": "1.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "wrappy": "1" } }, "node_modules/fsevents/node_modules/os-homedir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/os-tmpdir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/osenv": { "version": "0.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -9205,24 +9251,27 @@ }, "node_modules/fsevents/node_modules/path-is-absolute": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/process-nextick-args": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/rc": { "version": "1.2.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9235,15 +9284,17 @@ }, "node_modules/fsevents/node_modules/rc/node_modules/minimist": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/readable-stream": { "version": "2.3.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9256,9 +9307,10 @@ }, "node_modules/fsevents/node_modules/rimraf": { "version": "2.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -9268,57 +9320,65 @@ }, "node_modules/fsevents/node_modules/safe-buffer": { "version": "5.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/safer-buffer": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/sax": { "version": "1.2.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/semver": { "version": "5.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "bin": { "semver": "bin/semver" } }, "node_modules/fsevents/node_modules/set-blocking": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/signal-exit": { "version": "3.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/string_decoder": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/fsevents/node_modules/string-width": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9330,9 +9390,10 @@ }, "node_modules/fsevents/node_modules/strip-ansi": { "version": "3.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -9342,18 +9403,20 @@ }, "node_modules/fsevents/node_modules/strip-json-comments": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/tar": { "version": "4.4.13", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -9369,30 +9432,34 @@ }, "node_modules/fsevents/node_modules/util-deprecate": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/wide-align": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/fsevents/node_modules/wrappy": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/yallist": { "version": "3.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -29760,22 +29827,26 @@ "abbrev": { "version": "1.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -29784,12 +29855,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -29798,32 +29871,38 @@ "chownr": { "version": "1.1.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "debug": { "version": "3.2.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ms": "^2.1.1" } @@ -29831,22 +29910,26 @@ "deep-extend": { "version": "0.6.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "fs-minipass": { "version": "1.2.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.6.0" } @@ -29854,12 +29937,14 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -29874,7 +29959,8 @@ "glob": { "version": "7.1.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -29887,12 +29973,14 @@ "has-unicode": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -29900,7 +29988,8 @@ "ignore-walk": { "version": "3.0.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -29908,7 +29997,8 @@ "inflight": { "version": "1.0.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -29917,17 +30007,20 @@ "inherits": { "version": "2.0.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -29935,12 +30028,14 @@ "isarray": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -29948,12 +30043,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -29962,7 +30059,8 @@ "minizlib": { "version": "1.3.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.9.0" } @@ -29970,7 +30068,8 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -29978,12 +30077,14 @@ "ms": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "needle": { "version": "2.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -29993,7 +30094,8 @@ "node-pre-gyp": { "version": "0.14.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -30010,7 +30112,8 @@ "nopt": { "version": "4.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -30019,7 +30122,8 @@ "npm-bundled": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -30027,12 +30131,14 @@ "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "npm-packlist": { "version": "1.4.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -30041,7 +30147,8 @@ "npmlog": { "version": "4.1.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -30052,17 +30159,20 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "once": { "version": "1.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -30070,17 +30180,20 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -30089,17 +30202,20 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "process-nextick-args": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "rc": { "version": "1.2.8", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -30110,14 +30226,16 @@ "minimist": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, "readable-stream": { "version": "2.3.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -30131,7 +30249,8 @@ "rimraf": { "version": "2.7.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "glob": "^7.1.3" } @@ -30139,37 +30258,44 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "sax": { "version": "1.2.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "semver": { "version": "5.7.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "string_decoder": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -30177,7 +30303,8 @@ "string-width": { "version": "1.0.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -30187,7 +30314,8 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -30195,12 +30323,14 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "tar": { "version": "4.4.13", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -30214,12 +30344,14 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -30227,12 +30359,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "yallist": { "version": "3.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, From 5362c12a94bb65fde1713002d6671a5ddf939617 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 19 Mar 2025 19:57:37 +0800 Subject: [PATCH 05/33] chore: update mermaid dependency to version 11.5.0 Signed-off-by: Yukai Huang --- package-lock.json | 2938 ++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 2649 insertions(+), 291 deletions(-) diff --git a/package-lock.json b/package-lock.json index 738fe81f0f..728107694a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -147,7 +147,7 @@ "markdownlint-rule-helpers": "^0.13.0", "markmap-lib": "^0.9.3", "mathjax": "~2.7.5", - "mermaid": "~8.10.2", + "mermaid": "~11.5.0", "mini-css-extract-plugin": "~0.4.1", "mocha": "~5.2.0", "mock-require": "~3.0.3", @@ -194,6 +194,28 @@ "utf-8-validate": "~5.0.1" } }, + "node_modules/@antfu/install-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", + "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "dev": true, + "dependencies": { + "package-manager-detector": "^0.2.8", + "tinyexec": "^0.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@aws-sdk/abort-controller": { "version": "0.1.0-preview.7", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-0.1.0-preview.7.tgz", @@ -953,10 +975,48 @@ } }, "node_modules/@braintree/sanitize-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", - "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==", - "deprecated": "Potential XSS vulnerability patched in v6.0.0.", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "dev": true + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dev": true, + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dev": true, + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "dev": true + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "dev": true + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", "dev": true }, "node_modules/@colors/colors": { @@ -1096,6 +1156,63 @@ "tar": "^5.0.5" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "dev": true, + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@iconify/utils/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@iconify/utils/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@iconify/utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -1188,6 +1305,15 @@ } } }, + "node_modules/@mermaid-js/parser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz", + "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==", + "dev": true, + "dependencies": { + "langium": "3.0.0" + } + }, "node_modules/@messageformat/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.2.0.tgz", @@ -1475,6 +1601,12 @@ "@types/geojson": "*" } }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true + }, "node_modules/@types/d3-dispatch": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.9.tgz", @@ -1769,6 +1901,13 @@ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "optional": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -4374,6 +4513,32 @@ "entities": "^1.1.1" } }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dev": true, + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "dev": true, + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, "node_modules/chownr": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", @@ -4691,6 +4856,12 @@ "source-map": "^0.6.1" } }, + "node_modules/confbox": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz", + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "dev": true + }, "node_modules/connect-flash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", @@ -4914,6 +5085,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "dev": true, + "dependencies": { + "layout-base": "^1.0.0" + } + }, "node_modules/cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -5097,18 +5277,6 @@ "node": ">= 0.8" } }, - "node_modules/css-b64-images": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", - "integrity": "sha1-QgBdgyBLK0pdk7axpWRBM7WSegI=", - "dev": true, - "bin": { - "css-b64-images": "bin/css-b64-images" - }, - "engines": { - "node": "*" - } - }, "node_modules/css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -5494,6 +5662,54 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "node_modules/cytoscape": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.1.tgz", + "integrity": "sha512-Hx5Mtb1+hnmAKaZZ/7zL1Y5HTFYOjdDswZy/jD+1WINRU8KVi1B7+vlHdsTwY+VCFucTreoyu1RDzQJ9u0d2Hw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "dev": true, + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dev": true, + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dev": true, + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "dev": true + }, "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -5508,6 +5724,7 @@ "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", "dev": true, + "peer": true, "dependencies": { "d3-array": "1", "d3-axis": "1", @@ -5552,13 +5769,15 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-brush": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz", "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==", "dev": true, + "peer": true, "dependencies": { "d3-dispatch": "1", "d3-drag": "1", @@ -5572,6 +5791,7 @@ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", "dev": true, + "peer": true, "dependencies": { "d3-array": "1", "d3-path": "1" @@ -5581,18 +5801,24 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-color": { - "version": "1.4.0", - "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-contour": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", "dev": true, + "peer": true, "dependencies": { "d3-array": "^1.1.1" } @@ -5620,6 +5846,7 @@ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", "dev": true, + "peer": true, "dependencies": { "d3-dispatch": "1", "d3-selection": "1" @@ -5630,6 +5857,7 @@ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", "dev": true, + "peer": true, "dependencies": { "commander": "2", "iconv-lite": "0.4", @@ -5651,13 +5879,15 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-fetch": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", "dev": true, + "peer": true, "dependencies": { "d3-dsv": "1" } @@ -5676,6 +5906,7 @@ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", "dev": true, + "peer": true, "dependencies": { "d3-collection": "1", "d3-dispatch": "1", @@ -5694,6 +5925,7 @@ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.9.tgz", "integrity": "sha512-9edcH6J3s/Aa3KJITWqFJbyB/8q3mMlA9Fi7z6yy+FAYMnRaxmC7jBhUnsINxVWD14GmqX3DK8uk7nV6/Ekt4A==", "dev": true, + "peer": true, "dependencies": { "d3-array": "1" } @@ -5763,6 +5995,7 @@ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", "dev": true, + "peer": true, "dependencies": { "d3-color": "1" } @@ -5771,7 +6004,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-path": { "version": "1.0.9", @@ -5783,7 +6017,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-quadtree": { "version": "1.0.7", @@ -5795,13 +6030,25 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==", - "dev": true + "dev": true, + "peer": true + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "dev": true, + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } }, "node_modules/d3-scale": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", "dev": true, + "peer": true, "dependencies": { "d3-array": "^1.2.0", "d3-collection": "1", @@ -5816,6 +6063,7 @@ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", "dev": true, + "peer": true, "dependencies": { "d3-color": "1", "d3-interpolate": "1" @@ -5825,13 +6073,15 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-selection": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.1.tgz", "integrity": "sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-shape": { "version": "1.3.7", @@ -5868,6 +6118,7 @@ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", "dev": true, + "peer": true, "dependencies": { "d3-color": "1", "d3-dispatch": "1", @@ -5881,19 +6132,22 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-voronoi": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/d3-zoom": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", "dev": true, + "peer": true, "dependencies": { "d3-dispatch": "1", "d3-drag": "1", @@ -5906,28 +6160,418 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true }, - "node_modules/dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "node_modules/dagre-d3-es": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", + "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", "dev": true, "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" + "d3": "^7.9.0", + "lodash-es": "^4.17.21" } }, - "node_modules/dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", + "node_modules/dagre-d3-es/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/dagre-d3-es/node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dev": true, + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "dev": true, "dependencies": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dev": true, + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dev": true, + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dev": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dev": true, + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dev": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dev": true, + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/dagre-d3-es/node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/dashdash": { @@ -5955,6 +6599,12 @@ "node": ">0.4.0" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6407,6 +7057,15 @@ "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==", "dev": true }, + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "dev": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -6784,15 +7443,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "node_modules/entity-decode": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/entity-decode/-/entity-decode-2.0.2.tgz", - "integrity": "sha512-5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg==", - "dev": true, - "dependencies": { - "he": "^1.1.1" - } - }, "node_modules/errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -8044,6 +8694,12 @@ "node": ">= 0.8" } }, + "node_modules/exsolve": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz", + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "dev": true + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -9701,15 +10357,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -9730,6 +10377,12 @@ "through2": "^2.0.0" } }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "dev": true + }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -11779,9 +12432,9 @@ } }, "node_modules/khroma": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz", - "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", "dev": true }, "node_modules/kind-of": { @@ -11920,11 +12573,33 @@ "node": ">=0.6" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, "node_modules/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" }, + "node_modules/langium": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz", + "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==", + "dev": true, + "dependencies": { + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/last-call-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", @@ -11935,6 +12610,12 @@ "webpack-sources": "^1.1.0" } }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "dev": true + }, "node_modules/lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -12175,6 +12856,23 @@ "json5": "lib/cli.js" } }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -12192,6 +12890,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -12830,22 +13534,520 @@ } }, "node_modules/mermaid": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.10.2.tgz", - "integrity": "sha512-Za5MrbAOMbEsyY4ONgGjfYz06sbwF1iNGRzp1sQqpOtvXxjxGu/J1jRJ8QyE9kD/D9zj1/KlRrYegWEvA7eZ5Q==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.5.0.tgz", + "integrity": "sha512-IYhyukID3zzDj1EihKiN1lp+PXNImoJ3Iyz73qeDAgnus4BNGsJV1n471P4PyeGxPVONerZxignwGxGTSwZnlg==", + "dev": true, + "dependencies": { + "@braintree/sanitize-url": "^7.0.4", + "@iconify/utils": "^2.1.33", + "@mermaid-js/parser": "^0.3.0", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.11", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", + "katex": "^0.16.9", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^15.0.7", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/mermaid/node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/mermaid/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/mermaid/node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dev": true, + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "dev": true, "dependencies": { - "@braintree/sanitize-url": "^3.1.0", - "d3": "^5.7.0", - "dagre": "^0.8.4", - "dagre-d3": "^0.6.4", - "entity-decode": "^2.0.2", - "graphlib": "^2.1.7", - "he": "^1.2.0", - "khroma": "^1.1.0", - "minify": "^4.1.1", - "moment-mini": "^2.22.1", - "stylis": "^3.5.2" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dev": true, + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dev": true, + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dev": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dev": true, + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dev": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dev": true, + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/mermaid/node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mermaid/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mermaid/node_modules/katex": { + "version": "0.16.21", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/mermaid/node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mermaid/node_modules/marked": { + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", + "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mermaid/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/esm/bin/uuid" } }, "node_modules/method-override": { @@ -12984,44 +14186,6 @@ "webpack": "^4.4.0" } }, - "node_modules/minify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/minify/-/minify-4.1.3.tgz", - "integrity": "sha512-ykuscavxivSmVpcCzsXmsVTukWYLUUtPhHj0w2ILvHDGqC+hsuTCihBn9+PJBd58JNvWTNg9132J9nrrI2anzA==", - "dev": true, - "dependencies": { - "clean-css": "^4.1.6", - "css-b64-images": "~0.2.5", - "debug": "^4.1.0", - "html-minifier": "^4.0.0", - "terser": "^4.0.0", - "try-catch": "^2.0.0", - "try-to-catch": "^1.0.2" - }, - "bin": { - "minify": "bin/minify.js" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/minify/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -13209,6 +14373,47 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/mocha": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", @@ -13346,12 +14551,6 @@ "node": "*" } }, - "node_modules/moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==", - "dev": true - }, "node_modules/moment-timezone": { "version": "0.5.25", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.25.tgz", @@ -14419,6 +15618,15 @@ "node": ">=6" } }, + "node_modules/package-manager-detector": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "dev": true, + "dependencies": { + "quansync": "^0.2.7" + } + }, "node_modules/packet-reader": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", @@ -14777,6 +15985,12 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "dev": true + }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -14831,6 +16045,12 @@ "node": ">=4" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "node_modules/pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", @@ -15160,6 +16380,17 @@ "node": ">=4" } }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "node_modules/pkginfo": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz", @@ -15179,6 +16410,22 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "dev": true + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "dev": true, + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, "node_modules/pop-iterate": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz", @@ -16754,6 +18001,22 @@ "node": ">=0.6" } }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ] + }, "node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", @@ -17526,6 +18789,18 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", "dev": true }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "dev": true, + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, "node_modules/run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -18834,9 +20109,9 @@ } }, "node_modules/stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "dev": true }, "node_modules/supports-color": { @@ -19307,6 +20582,12 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -19503,21 +20784,15 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/try-catch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/try-catch/-/try-catch-2.0.1.tgz", - "integrity": "sha512-LsOrmObN/2WdM+y2xG+t16vhYrQsnV8wftXIcIOWZhQcBJvKGYuamJGwnU98A7Jxs2oZNkJztXlphEOoA0DWqg==", + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "dev": true, "engines": { - "node": ">=0.4" + "node": ">=6.10" } }, - "node_modules/try-to-catch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/try-to-catch/-/try-to-catch-1.1.1.tgz", - "integrity": "sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA==", - "dev": true - }, "node_modules/tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", @@ -19631,6 +20906,12 @@ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, "node_modules/uglify-es": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", @@ -20465,15 +21746,6 @@ "node": ">=12" } }, - "node_modules/vega-functions/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/vega-functions/node_modules/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", @@ -20530,15 +21802,6 @@ "node": ">=12" } }, - "node_modules/vega-geo/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/vega-geo/node_modules/d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", @@ -21482,6 +22745,55 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, "node_modules/watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", @@ -22437,6 +23749,22 @@ } }, "dependencies": { + "@antfu/install-pkg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", + "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "dev": true, + "requires": { + "package-manager-detector": "^0.2.8", + "tinyexec": "^0.3.2" + } + }, + "@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "dev": true + }, "@aws-sdk/abort-controller": { "version": "0.1.0-preview.7", "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-0.1.0-preview.7.tgz", @@ -23122,9 +24450,48 @@ } }, "@braintree/sanitize-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", - "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "dev": true + }, + "@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dev": true, + "requires": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dev": true, + "requires": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "dev": true + }, + "@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "dev": true + }, + "@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", "dev": true }, "@colors/colors": { @@ -23245,6 +24612,51 @@ "tar": "^5.0.5" } }, + "@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, + "@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "dev": true, + "requires": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, "@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -23311,6 +24723,15 @@ "peer": true, "requires": {} }, + "@mermaid-js/parser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz", + "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==", + "dev": true, + "requires": { + "langium": "3.0.0" + } + }, "@messageformat/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.2.0.tgz", @@ -23586,6 +25007,12 @@ "@types/geojson": "*" } }, + "@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true + }, "@types/d3-dispatch": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.9.tgz", @@ -23880,6 +25307,13 @@ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" }, + "@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "optional": true + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -26169,6 +27603,29 @@ } } }, + "chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dev": true, + "requires": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "dev": true, + "requires": { + "lodash-es": "^4.17.21" + } + }, "chownr": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", @@ -26448,6 +27905,12 @@ "source-map": "^0.6.1" } }, + "confbox": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz", + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "dev": true + }, "connect-flash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", @@ -26622,6 +28085,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "dev": true, + "requires": { + "layout-base": "^1.0.0" + } + }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -26784,12 +28256,6 @@ "uid-safe": "2.1.5" } }, - "css-b64-images": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", - "integrity": "sha1-QgBdgyBLK0pdk7axpWRBM7WSegI=", - "dev": true - }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -27113,6 +28579,47 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "cytoscape": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.1.tgz", + "integrity": "sha512-Hx5Mtb1+hnmAKaZZ/7zL1Y5HTFYOjdDswZy/jD+1WINRU8KVi1B7+vlHdsTwY+VCFucTreoyu1RDzQJ9u0d2Hw==", + "dev": true + }, + "cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "dev": true, + "requires": { + "cose-base": "^1.0.0" + } + }, + "cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dev": true, + "requires": { + "cose-base": "^2.2.0" + }, + "dependencies": { + "cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dev": true, + "requires": { + "layout-base": "^2.0.0" + } + }, + "layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "dev": true + } + } + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -27127,6 +28634,7 @@ "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", "dev": true, + "peer": true, "requires": { "d3-array": "1", "d3-axis": "1", @@ -27165,7 +28673,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -27179,13 +28688,15 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==", - "dev": true + "dev": true, + "peer": true }, "d3-brush": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz", "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==", "dev": true, + "peer": true, "requires": { "d3-dispatch": "1", "d3-drag": "1", @@ -27199,6 +28710,7 @@ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", "dev": true, + "peer": true, "requires": { "d3-array": "1", "d3-path": "1" @@ -27208,11 +28720,13 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", - "dev": true + "dev": true, + "peer": true }, "d3-color": { - "version": "1.4.0", - "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true }, "d3-contour": { @@ -27220,6 +28734,7 @@ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", "dev": true, + "peer": true, "requires": { "d3-array": "^1.1.1" } @@ -27244,6 +28759,7 @@ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", "dev": true, + "peer": true, "requires": { "d3-dispatch": "1", "d3-selection": "1" @@ -27254,6 +28770,7 @@ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", "dev": true, + "peer": true, "requires": { "commander": "2", "iconv-lite": "0.4", @@ -27264,13 +28781,15 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==", - "dev": true + "dev": true, + "peer": true }, "d3-fetch": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", "dev": true, + "peer": true, "requires": { "d3-dsv": "1" } @@ -27289,6 +28808,7 @@ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", "dev": true, + "peer": true, "requires": { "d3-collection": "1", "d3-dispatch": "1", @@ -27307,6 +28827,7 @@ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.9.tgz", "integrity": "sha512-9edcH6J3s/Aa3KJITWqFJbyB/8q3mMlA9Fi7z6yy+FAYMnRaxmC7jBhUnsINxVWD14GmqX3DK8uk7nV6/Ekt4A==", "dev": true, + "peer": true, "requires": { "d3-array": "1" } @@ -27361,6 +28882,7 @@ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", "dev": true, + "peer": true, "requires": { "d3-color": "1" }, @@ -27369,7 +28891,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -27383,7 +28906,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==", - "dev": true + "dev": true, + "peer": true }, "d3-quadtree": { "version": "1.0.7", @@ -27395,13 +28919,25 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==", - "dev": true + "dev": true, + "peer": true + }, + "d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "dev": true, + "requires": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } }, "d3-scale": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", "dev": true, + "peer": true, "requires": { "d3-array": "^1.2.0", "d3-collection": "1", @@ -27416,6 +28952,7 @@ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", "dev": true, + "peer": true, "requires": { "d3-color": "1", "d3-interpolate": "1" @@ -27425,7 +28962,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -27433,7 +28971,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.1.tgz", "integrity": "sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA==", - "dev": true + "dev": true, + "peer": true }, "d3-shape": { "version": "1.3.7", @@ -27470,6 +29009,7 @@ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", "dev": true, + "peer": true, "requires": { "d3-color": "1", "d3-dispatch": "1", @@ -27483,7 +29023,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -27491,13 +29032,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", - "dev": true + "dev": true, + "peer": true }, "d3-zoom": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", "dev": true, + "peer": true, "requires": { "d3-dispatch": "1", "d3-drag": "1", @@ -27506,26 +29049,310 @@ "d3-transition": "1" } }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "dagre-d3-es": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", + "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", "dev": true, "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", - "dev": true, - "requires": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dev": true, + "requires": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + } + }, + "d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dev": true, + "requires": { + "internmap": "1 - 2" + } + }, + "d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "dev": true + }, + "d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + } + }, + "d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dev": true, + "requires": { + "d3-path": "1 - 3" + } + }, + "d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dev": true, + "requires": { + "d3-array": "^3.2.0" + } + }, + "d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true + }, + "d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + } + }, + "d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dev": true, + "requires": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + } + }, + "d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true + }, + "d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dev": true, + "requires": { + "d3-dsv": "1 - 3" + } + }, + "d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true + }, + "d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dev": true, + "requires": { + "d3-array": "2.5.0 - 3" + } + }, + "d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true + }, + "d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "requires": { + "d3-color": "1 - 3" + } + }, + "d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "dev": true + }, + "d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "dev": true + }, + "d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true + }, + "d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "dev": true + }, + "d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "requires": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + } + }, + "d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "requires": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + } + }, + "d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true + }, + "d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dev": true, + "requires": { + "d3-path": "^3.1.0" + } + }, + "d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "requires": { + "d3-array": "2 - 3" + } + }, + "d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "requires": { + "d3-time": "1 - 3" + } + }, + "d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true + }, + "d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "requires": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "dashdash": { @@ -27547,6 +29374,12 @@ "integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=", "dev": true }, + "dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -27919,6 +29752,15 @@ "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==", "dev": true }, + "dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "dev": true, + "requires": { + "@types/trusted-types": "^2.0.7" + } + }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -28266,15 +30108,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "entity-decode": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/entity-decode/-/entity-decode-2.0.2.tgz", - "integrity": "sha512-5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg==", - "dev": true, - "requires": { - "he": "^1.1.1" - } - }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -29256,6 +31089,12 @@ } } }, + "exsolve": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz", + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "dev": true + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -30568,15 +32407,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -30593,6 +32423,12 @@ "through2": "^2.0.0" } }, + "hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "dev": true + }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -32203,9 +34039,9 @@ } }, "khroma": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz", - "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", "dev": true }, "kind-of": { @@ -32319,11 +34155,30 @@ "koa-compose": "^4.1.0" } }, + "kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, "kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" }, + "langium": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz", + "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==", + "dev": true, + "requires": { + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" + } + }, "last-call-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", @@ -32334,6 +34189,12 @@ "webpack-sources": "^1.1.0" } }, + "layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "dev": true + }, "lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -32519,6 +34380,17 @@ } } }, + "local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "requires": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -32533,6 +34405,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -33100,22 +34978,394 @@ } }, "mermaid": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.10.2.tgz", - "integrity": "sha512-Za5MrbAOMbEsyY4ONgGjfYz06sbwF1iNGRzp1sQqpOtvXxjxGu/J1jRJ8QyE9kD/D9zj1/KlRrYegWEvA7eZ5Q==", - "dev": true, - "requires": { - "@braintree/sanitize-url": "^3.1.0", - "d3": "^5.7.0", - "dagre": "^0.8.4", - "dagre-d3": "^0.6.4", - "entity-decode": "^2.0.2", - "graphlib": "^2.1.7", - "he": "^1.2.0", - "khroma": "^1.1.0", - "minify": "^4.1.1", - "moment-mini": "^2.22.1", - "stylis": "^3.5.2" + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.5.0.tgz", + "integrity": "sha512-IYhyukID3zzDj1EihKiN1lp+PXNImoJ3Iyz73qeDAgnus4BNGsJV1n471P4PyeGxPVONerZxignwGxGTSwZnlg==", + "dev": true, + "requires": { + "@braintree/sanitize-url": "^7.0.4", + "@iconify/utils": "^2.1.33", + "@mermaid-js/parser": "^0.3.0", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.11", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", + "katex": "^0.16.9", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^15.0.7", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + }, + "dependencies": { + "@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "requires": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dev": true, + "requires": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + } + }, + "d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dev": true, + "requires": { + "internmap": "1 - 2" + } + }, + "d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "dev": true + }, + "d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + } + }, + "d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dev": true, + "requires": { + "d3-path": "1 - 3" + } + }, + "d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dev": true, + "requires": { + "d3-array": "^3.2.0" + } + }, + "d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true + }, + "d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + } + }, + "d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dev": true, + "requires": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + } + }, + "d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true + }, + "d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dev": true, + "requires": { + "d3-dsv": "1 - 3" + } + }, + "d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true + }, + "d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dev": true, + "requires": { + "d3-array": "2.5.0 - 3" + } + }, + "d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true + }, + "d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "requires": { + "d3-color": "1 - 3" + } + }, + "d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "dev": true + }, + "d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "dev": true + }, + "d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true + }, + "d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "dev": true + }, + "d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "requires": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + } + }, + "d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "requires": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + } + }, + "d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true + }, + "d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dev": true, + "requires": { + "d3-path": "^3.1.0" + } + }, + "d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "requires": { + "d3-array": "2 - 3" + } + }, + "d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "requires": { + "d3-time": "1 - 3" + } + }, + "d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true + }, + "d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "requires": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "katex": { + "version": "0.16.21", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "dev": true, + "requires": { + "commander": "^8.3.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + } + } + }, + "marked": { + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", + "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", + "dev": true + }, + "uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "dev": true + } } }, "method-override": { @@ -33220,32 +35470,6 @@ "webpack-sources": "^1.1.0" } }, - "minify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/minify/-/minify-4.1.3.tgz", - "integrity": "sha512-ykuscavxivSmVpcCzsXmsVTukWYLUUtPhHj0w2ILvHDGqC+hsuTCihBn9+PJBd58JNvWTNg9132J9nrrI2anzA==", - "dev": true, - "requires": { - "clean-css": "^4.1.6", - "css-b64-images": "~0.2.5", - "debug": "^4.1.0", - "html-minifier": "^4.0.0", - "terser": "^4.0.0", - "try-catch": "^2.0.0", - "try-to-catch": "^1.0.2" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -33405,6 +35629,43 @@ "minimist": "^1.2.6" } }, + "mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + }, + "dependencies": { + "acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true + }, + "confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "requires": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + } + } + }, "mocha": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", @@ -33515,12 +35776,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, - "moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==", - "dev": true - }, "moment-timezone": { "version": "0.5.25", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.25.tgz", @@ -34399,6 +36654,15 @@ "release-zalgo": "^1.0.0" } }, + "package-manager-detector": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "dev": true, + "requires": { + "quansync": "^0.2.7" + } + }, "packet-reader": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", @@ -34687,6 +36951,12 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, + "path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "dev": true + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -34729,6 +36999,12 @@ "pify": "^3.0.0" } }, + "pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", @@ -34989,6 +37265,17 @@ } } }, + "pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "requires": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "pkginfo": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz", @@ -35005,6 +37292,22 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, + "points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "dev": true + }, + "points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "dev": true, + "requires": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, "pop-iterate": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz", @@ -36296,6 +38599,12 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "dev": true + }, "query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", @@ -36917,6 +39226,18 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", "dev": true }, + "roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "dev": true, + "requires": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -38034,9 +40355,9 @@ } }, "stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "dev": true }, "supports-color": { @@ -38440,6 +40761,12 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, + "tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -38593,16 +40920,10 @@ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true }, - "try-catch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/try-catch/-/try-catch-2.0.1.tgz", - "integrity": "sha512-LsOrmObN/2WdM+y2xG+t16vhYrQsnV8wftXIcIOWZhQcBJvKGYuamJGwnU98A7Jxs2oZNkJztXlphEOoA0DWqg==", - "dev": true - }, - "try-to-catch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/try-to-catch/-/try-to-catch-1.1.1.tgz", - "integrity": "sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA==", + "ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "dev": true }, "tslib": { @@ -38700,6 +41021,12 @@ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, + "ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, "uglify-es": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", @@ -39436,12 +41763,6 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "dev": true - }, "d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", @@ -39494,12 +41815,6 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "dev": true - }, "d3-geo": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", @@ -40311,6 +42626,49 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true + }, + "vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.17.5" + } + }, + "vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "requires": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, "watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", diff --git a/package.json b/package.json index da2a000d28..fc4a3901ce 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "markdownlint-rule-helpers": "^0.13.0", "markmap-lib": "^0.9.3", "mathjax": "~2.7.5", - "mermaid": "~8.10.2", + "mermaid": "~11.5.0", "mini-css-extract-plugin": "~0.4.1", "mocha": "~5.2.0", "mock-require": "~3.0.3", From 55e9de341edce48d895c825b63b0503d8a7d339b Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 19 Mar 2025 20:41:29 +0800 Subject: [PATCH 06/33] feat: add PDF URL validation and content type check Signed-off-by: Yukai Huang --- public/js/extra.js | 40 +++++++++++++++++++++++++++++++++++----- public/js/utils.js | 13 +++++++++++++ 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/public/js/extra.js b/public/js/extra.js index 6bbe65e4a1..53fdc76b53 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -28,7 +28,7 @@ import './lib/renderer/lightbox' import { renderCSVPreview } from './lib/renderer/csvpreview' import { escapeAttrValue } from './render' -import { sanitizeUrl } from './utils' +import { sanitizeUrl, isPdfUrl } from './utils' import markdownit from 'markdown-it' import markdownitContainer from 'markdown-it-container' @@ -634,11 +634,41 @@ export function finishView (view) { const cleanUrl = sanitizeUrl(url) const inner = $('
') $(this).append(inner) - setTimeout(() => { - PDFObject.embed(cleanUrl, inner, { - height: '400px' + + // First check URL format + const isPDFByExtension = /\.pdf(\?.*)?$/i.test(cleanUrl) || cleanUrl.includes('pdf') + + if (isPDFByExtension) { + // Show loading message while we check content type + const loadingMessage = $('
Verifying PDF file...
') + inner.html(loadingMessage) + + // Perform additional validation with HEAD request + isPdfUrl(cleanUrl).then(isPDFByContentType => { + if (isPDFByContentType) { + // Valid PDF by content type, embed it + PDFObject.embed(cleanUrl, inner, { + height: '400px' + }) + } else { + // URL format looks like PDF but content type doesn't match + inner.html('
The URL looks like a PDF but the server didn\'t confirm it has a PDF content type.
') + console.warn('URL has PDF extension but content type is not application/pdf:', cleanUrl) + + // Try to embed anyway as a fallback + setTimeout(() => { + PDFObject.embed(cleanUrl, inner, { + height: '400px', + fallbackLink: 'This doesn\'t appear to be a valid PDF. Click here to try downloading it directly.' + }) + }, 1) + } }) - }, 1) + } else { + // Not a valid PDF URL by extension + inner.html('
Invalid PDF URL. The URL must point to a PDF file.
') + console.warn('Invalid PDF URL format:', cleanUrl) + } }) // syntax highlighting view.find('code.raw').removeClass('raw') diff --git a/public/js/utils.js b/public/js/utils.js index 29ef262a34..3ef3cfd482 100644 --- a/public/js/utils.js +++ b/public/js/utils.js @@ -1,3 +1,4 @@ +/* global fetch */ import base64url from 'base64url' const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i @@ -46,3 +47,15 @@ export function sanitizeUrl (rawUrl) { return 'about:blank' } } + +// Check if URL is a PDF based on Content-Type header +export async function isPdfUrl (url) { + try { + const response = await fetch(url, { method: 'HEAD' }) + const contentType = response.headers.get('Content-Type') + return contentType === 'application/pdf' + } catch (error) { + console.warn('Error checking PDF content type:', error) + return false + } +} From c7b615d44e5f10a85d94ab19b0f8f9a81390d0a5 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 20 Mar 2025 13:55:59 +0800 Subject: [PATCH 07/33] feat: configure MiniCssExtractPlugin for production environment in webpack Signed-off-by: Yukai Huang --- package-lock.json | 582 +++++++++++++++++++++++++++++++++------------- package.json | 3 +- webpack.common.js | 9 +- 3 files changed, 433 insertions(+), 161 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82da5cb1bd..a0509a7656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,6 +99,7 @@ "bootstrap": "~3.4.0", "bootstrap-validator": "~0.11.8", "copy-webpack-plugin": "~4.5.2", + "cross-env": "^7.0.3", "css-loader": "~1.0.0", "dictionary-de": "^2.0.3", "dictionary-de-at": "^2.0.3", @@ -5046,6 +5047,83 @@ "sha.js": "^2.4.8" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-env/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -8770,30 +8848,34 @@ }, "node_modules/fsevents/node_modules/abbrev": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ansi-regex": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/aproba": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/are-we-there-yet": { "version": "1.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8801,15 +8883,17 @@ }, "node_modules/fsevents/node_modules/balanced-match": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/brace-expansion": { "version": "1.1.11", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8817,66 +8901,75 @@ }, "node_modules/fsevents/node_modules/chownr": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/code-point-at": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/concat-map": { "version": "0.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/console-control-strings": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/core-util-is": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/debug": { "version": "3.2.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/fsevents/node_modules/deep-extend": { "version": "0.6.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=4.0.0" } }, "node_modules/fsevents/node_modules/delegates": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/detect-libc": { "version": "1.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -8886,24 +8979,27 @@ }, "node_modules/fsevents/node_modules/fs-minipass": { "version": "1.2.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minipass": "^2.6.0" } }, "node_modules/fsevents/node_modules/fs.realpath": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/gauge": { "version": "2.7.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -8917,9 +9013,10 @@ }, "node_modules/fsevents/node_modules/glob": { "version": "7.1.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8937,15 +9034,17 @@ }, "node_modules/fsevents/node_modules/has-unicode": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/iconv-lite": { "version": "0.4.24", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8955,18 +9054,20 @@ }, "node_modules/fsevents/node_modules/ignore-walk": { "version": "3.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/fsevents/node_modules/inflight": { "version": "1.0.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8974,24 +9075,27 @@ }, "node_modules/fsevents/node_modules/inherits": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ini": { "version": "1.3.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "engines": { "node": "*" } }, "node_modules/fsevents/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "number-is-nan": "^1.0.0" }, @@ -9001,15 +9105,17 @@ }, "node_modules/fsevents/node_modules/isarray": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minimatch": { "version": "3.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9019,15 +9125,17 @@ }, "node_modules/fsevents/node_modules/minimist": { "version": "0.0.8", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minipass": { "version": "2.9.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -9035,18 +9143,20 @@ }, "node_modules/fsevents/node_modules/minizlib": { "version": "1.3.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minipass": "^2.9.0" } }, "node_modules/fsevents/node_modules/mkdirp": { "version": "0.5.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minimist": "0.0.8" }, @@ -9056,15 +9166,17 @@ }, "node_modules/fsevents/node_modules/ms": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/needle": { "version": "2.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -9079,9 +9191,10 @@ }, "node_modules/fsevents/node_modules/node-pre-gyp": { "version": "0.14.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", + "optional": true, "dependencies": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -9100,9 +9213,10 @@ }, "node_modules/fsevents/node_modules/nopt": { "version": "4.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "abbrev": "1", "osenv": "^0.1.4" @@ -9113,24 +9227,27 @@ }, "node_modules/fsevents/node_modules/npm-bundled": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/fsevents/node_modules/npm-normalize-package-bin": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/npm-packlist": { "version": "1.4.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -9138,9 +9255,10 @@ }, "node_modules/fsevents/node_modules/npmlog": { "version": "4.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -9150,54 +9268,60 @@ }, "node_modules/fsevents/node_modules/number-is-nan": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/object-assign": { "version": "4.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/once": { "version": "1.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "wrappy": "1" } }, "node_modules/fsevents/node_modules/os-homedir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/os-tmpdir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/osenv": { "version": "0.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -9205,24 +9329,27 @@ }, "node_modules/fsevents/node_modules/path-is-absolute": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/process-nextick-args": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/rc": { "version": "1.2.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9235,15 +9362,17 @@ }, "node_modules/fsevents/node_modules/rc/node_modules/minimist": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/readable-stream": { "version": "2.3.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9256,9 +9385,10 @@ }, "node_modules/fsevents/node_modules/rimraf": { "version": "2.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -9268,57 +9398,65 @@ }, "node_modules/fsevents/node_modules/safe-buffer": { "version": "5.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/safer-buffer": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/sax": { "version": "1.2.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/semver": { "version": "5.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "bin": { "semver": "bin/semver" } }, "node_modules/fsevents/node_modules/set-blocking": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/signal-exit": { "version": "3.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/string_decoder": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/fsevents/node_modules/string-width": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9330,9 +9468,10 @@ }, "node_modules/fsevents/node_modules/strip-ansi": { "version": "3.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -9342,18 +9481,20 @@ }, "node_modules/fsevents/node_modules/strip-json-comments": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/tar": { "version": "4.4.13", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -9369,30 +9510,34 @@ }, "node_modules/fsevents/node_modules/util-deprecate": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/wide-align": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/fsevents/node_modules/wrappy": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/yallist": { "version": "3.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -26675,6 +26820,58 @@ "sha.js": "^2.4.8" } }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -29760,22 +29957,26 @@ "abbrev": { "version": "1.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -29784,12 +29985,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -29798,32 +30001,38 @@ "chownr": { "version": "1.1.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "debug": { "version": "3.2.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ms": "^2.1.1" } @@ -29831,22 +30040,26 @@ "deep-extend": { "version": "0.6.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "fs-minipass": { "version": "1.2.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.6.0" } @@ -29854,12 +30067,14 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -29874,7 +30089,8 @@ "glob": { "version": "7.1.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -29887,12 +30103,14 @@ "has-unicode": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -29900,7 +30118,8 @@ "ignore-walk": { "version": "3.0.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -29908,7 +30127,8 @@ "inflight": { "version": "1.0.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -29917,17 +30137,20 @@ "inherits": { "version": "2.0.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -29935,12 +30158,14 @@ "isarray": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -29948,12 +30173,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -29962,7 +30189,8 @@ "minizlib": { "version": "1.3.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.9.0" } @@ -29970,7 +30198,8 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -29978,12 +30207,14 @@ "ms": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "needle": { "version": "2.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -29993,7 +30224,8 @@ "node-pre-gyp": { "version": "0.14.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -30010,7 +30242,8 @@ "nopt": { "version": "4.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -30019,7 +30252,8 @@ "npm-bundled": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -30027,12 +30261,14 @@ "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "npm-packlist": { "version": "1.4.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -30041,7 +30277,8 @@ "npmlog": { "version": "4.1.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -30052,17 +30289,20 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "once": { "version": "1.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -30070,17 +30310,20 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -30089,17 +30332,20 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "process-nextick-args": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "rc": { "version": "1.2.8", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -30110,14 +30356,16 @@ "minimist": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, "readable-stream": { "version": "2.3.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -30131,7 +30379,8 @@ "rimraf": { "version": "2.7.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "glob": "^7.1.3" } @@ -30139,37 +30388,44 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "sax": { "version": "1.2.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "semver": { "version": "5.7.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "string_decoder": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -30177,7 +30433,8 @@ "string-width": { "version": "1.0.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -30187,7 +30444,8 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -30195,12 +30453,14 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "tar": { "version": "4.4.13", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -30214,12 +30474,14 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -30227,12 +30489,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "yallist": { "version": "3.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, diff --git a/package.json b/package.json index da2a000d28..65dda853e4 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "license": "AGPL-3.0", "main": "app.js", "scripts": { - "build": "webpack --config webpack.prod.js --display errors-only -p", + "build": "cross-env NODE_ENV=production webpack --config webpack.prod.js --display errors-only -p", "dev": "webpack --config webpack.dev.js --progress --colors --watch", "doctoc": "doctoc --title='# Table of Contents' README.md", "lint": "standard", @@ -120,6 +120,7 @@ "bootstrap": "~3.4.0", "bootstrap-validator": "~0.11.8", "copy-webpack-plugin": "~4.5.2", + "cross-env": "^7.0.3", "css-loader": "~1.0.0", "dictionary-de": "^2.0.3", "dictionary-de-at": "^2.0.3", diff --git a/webpack.common.js b/webpack.common.js index d4569912e4..84c9d4a5ed 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -202,7 +202,14 @@ module.exports = { to: 'fork-awesome/css' } ]), - new MiniCssExtractPlugin() + new MiniCssExtractPlugin( + process.env.NODE_ENV === 'production' + ? { + filename: '[name].[contenthash].css', + chunkFilename: '[name].[contenthash].css', + } + : {}, + ) ], entry: { From 72df04dd1daf12f6bec50a3d1be5c6013e0fa3a7 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 20 Mar 2025 14:06:36 +0800 Subject: [PATCH 08/33] refactor: move custom reveal plugin to public/js Signed-off-by: Yukai Huang --- .../revealjs-plugins}/elapsed-time-bar/elapsed-time-bar.js | 0 .../plugin => js/revealjs-plugins}/spotlight/spotlight.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename public/{build/reveal.js/plugin => js/revealjs-plugins}/elapsed-time-bar/elapsed-time-bar.js (100%) rename public/{build/reveal.js/plugin => js/revealjs-plugins}/spotlight/spotlight.js (100%) diff --git a/public/build/reveal.js/plugin/elapsed-time-bar/elapsed-time-bar.js b/public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js similarity index 100% rename from public/build/reveal.js/plugin/elapsed-time-bar/elapsed-time-bar.js rename to public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js diff --git a/public/build/reveal.js/plugin/spotlight/spotlight.js b/public/js/revealjs-plugins/spotlight/spotlight.js similarity index 100% rename from public/build/reveal.js/plugin/spotlight/spotlight.js rename to public/js/revealjs-plugins/spotlight/spotlight.js From ad24c094e49c5115fb5f6a093e964a0bdfcd5a06 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 20 Mar 2025 14:12:27 +0800 Subject: [PATCH 09/33] fix: update plugin paths for spotlight and elapsed-time-bar in slide.js Signed-off-by: Yukai Huang --- public/js/slide.js | 4 ++-- webpack.common.js | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/public/js/slide.js b/public/js/slide.js index 455986f4d6..ff215bcd46 100644 --- a/public/js/slide.js +++ b/public/js/slide.js @@ -85,13 +85,13 @@ delete options.dependencies if (Object.hasOwnProperty.call(options, 'spotlight')) { defaultOptions.dependencies.push({ - src: `${serverurl}/build/reveal.js/plugin/spotlight/spotlight.js` + src: `${serverurl}/build/revealjs-plugins/spotlight/spotlight.js` }) } if (Object.hasOwnProperty.call(options, 'allottedTime') || Object.hasOwnProperty.call(options, 'allottedMinutes')) { defaultOptions.dependencies.push({ - src: `${serverurl}/build/reveal.js/plugin/elapsed-time-bar/elapsed-time-bar.js` + src: `${serverurl}/build/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js` }) if (Object.hasOwnProperty.call(options, 'allottedMinutes')) { options.allottedTime = options.allottedMinutes * 60 * 1000 diff --git a/webpack.common.js b/webpack.common.js index d4569912e4..950a9a9958 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -166,6 +166,11 @@ module.exports = { from: 'plugin', to: 'reveal.js/plugin' }, + { + context: path.join(__dirname, 'public/js'), + from: 'revealjs-plugins', + to: 'revealjs-plugins' + }, { context: path.join(__dirname, 'node_modules/dictionary-de'), from: '*', From 9f0e3a7a2f2c98d30312809def383ba87c0ff67d Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 20 Mar 2025 14:20:20 +0800 Subject: [PATCH 10/33] fix: add eslint-disable comments to elapsed-time-bar and spotlight plugins Signed-off-by: Yukai Huang --- public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js | 1 + public/js/revealjs-plugins/spotlight/spotlight.js | 1 + 2 files changed, 2 insertions(+) diff --git a/public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js b/public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js index 0d7e8b9305..576e0e7165 100644 --- a/public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js +++ b/public/js/revealjs-plugins/elapsed-time-bar/elapsed-time-bar.js @@ -1,3 +1,4 @@ +/* eslint-disable */ var ElapsedTimeBar = { // default value barColor: 'rgb(200,0,0)', diff --git a/public/js/revealjs-plugins/spotlight/spotlight.js b/public/js/revealjs-plugins/spotlight/spotlight.js index 260e69d8f4..01c47837e0 100644 --- a/public/js/revealjs-plugins/spotlight/spotlight.js +++ b/public/js/revealjs-plugins/spotlight/spotlight.js @@ -1,3 +1,4 @@ +/* eslint-disable */ var RevealSpotlight = window.RevealSpotlight || (function () { //configs From 9ce14e4c8877afca895e95e21c389bda4e742d92 Mon Sep 17 00:00:00 2001 From: stanley2058 Date: Fri, 21 Mar 2025 11:50:29 +0800 Subject: [PATCH 11/33] feat: increase contrast of default theme Signed-off-by: stanley2058 --- public/css/codemirror-extend/one-dark.css | 13 +++++++++++++ webpack.common.js | 1 + 2 files changed, 14 insertions(+) create mode 100644 public/css/codemirror-extend/one-dark.css diff --git a/public/css/codemirror-extend/one-dark.css b/public/css/codemirror-extend/one-dark.css new file mode 100644 index 0000000000..85c8dac3d7 --- /dev/null +++ b/public/css/codemirror-extend/one-dark.css @@ -0,0 +1,13 @@ +.cm-s-one-dark .CodeMirror-linenumber { + color: #676767; +} + +.cm-s-one-dark.CodeMirror-focused + .CodeMirror-activeline + .CodeMirror-gutter-elt { + color: #b0b0b0; +} + +.cm-s-one-dark .cm-comment { + color: #818895; +} diff --git a/webpack.common.js b/webpack.common.js index d4569912e4..3d77f0f572 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -263,6 +263,7 @@ module.exports = { path.join(__dirname, 'public/css/codemirror-extend/ayu-mirage.css'), path.join(__dirname, 'public/css/codemirror-extend/tomorrow-night-bright.css'), path.join(__dirname, 'public/css/codemirror-extend/tomorrow-night-eighties.css'), + path.join(__dirname, 'public/css/codemirror-extend/one-dark.css'), path.join(__dirname, 'node_modules/@hackmd/codemirror/mode/tiddlywiki/tiddlywiki.css'), path.join(__dirname, 'node_modules/@hackmd/codemirror/mode/mediawiki/mediawiki.css'), path.join(__dirname, 'public/css/github-extract.css'), From c8cb4b1d65e6003043be768ef99c3975e80694e2 Mon Sep 17 00:00:00 2001 From: stanley2058 Date: Fri, 21 Mar 2025 11:50:58 +0800 Subject: [PATCH 12/33] fix: increase contrast of ui elements in dark mode Signed-off-by: stanley2058 --- public/css/extra.css | 6 +++++- public/css/index.css | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/public/css/extra.css b/public/css/extra.css index 2d1a0b32f4..5b9711164e 100644 --- a/public/css/extra.css +++ b/public/css/extra.css @@ -106,6 +106,9 @@ margin-bottom: -25px; color: #777; } +.night .ui-infobar { + color: #ededed; +} .toc .invisable-node { list-style-type: none; @@ -454,7 +457,8 @@ small .dropdown a:focus, small .dropdown a:hover { color: #eee; } -.night .navbar a{ +.night .navbar-default .navbar-nav > li > a, +.night .navbar a { color: #eee; } diff --git a/public/css/index.css b/public/css/index.css index d2e3fe6db0..00f6be8eda 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -329,6 +329,11 @@ body.night{ background: #000; } + +.night .navbar-default .btn-link { + color: #bbb; +} + .dropdown-menu > li > a { cursor: pointer; text-overflow: ellipsis; @@ -345,6 +350,10 @@ body.night{ color: #262626 } +.night .status-bar .dropdown-menu > li > a:focus, .status-bar .dropdown-menu > li > a:hover { + color: #ccc; +} + .night .dropdown-menu { background: #222; } From 048ec83dc821745c0a27fe8e4e31297f96dd4145 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 21 Mar 2025 15:38:29 +0800 Subject: [PATCH 13/33] fix: update ESLint configuration to include ES6 support and parser options Signed-off-by: Yukai Huang --- package-lock.json | 466 ++++++++++++++++++++++++++++---------------- public/.eslintrc.js | 10 +- 2 files changed, 302 insertions(+), 174 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82da5cb1bd..d80de0e3bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8770,30 +8770,34 @@ }, "node_modules/fsevents/node_modules/abbrev": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ansi-regex": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/aproba": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/are-we-there-yet": { "version": "1.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8801,15 +8805,17 @@ }, "node_modules/fsevents/node_modules/balanced-match": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/brace-expansion": { "version": "1.1.11", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8817,66 +8823,75 @@ }, "node_modules/fsevents/node_modules/chownr": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/code-point-at": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/concat-map": { "version": "0.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/console-control-strings": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/core-util-is": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/debug": { "version": "3.2.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/fsevents/node_modules/deep-extend": { "version": "0.6.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=4.0.0" } }, "node_modules/fsevents/node_modules/delegates": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/detect-libc": { "version": "1.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", + "optional": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -8886,24 +8901,27 @@ }, "node_modules/fsevents/node_modules/fs-minipass": { "version": "1.2.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minipass": "^2.6.0" } }, "node_modules/fsevents/node_modules/fs.realpath": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/gauge": { "version": "2.7.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -8917,9 +8935,10 @@ }, "node_modules/fsevents/node_modules/glob": { "version": "7.1.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8937,15 +8956,17 @@ }, "node_modules/fsevents/node_modules/has-unicode": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/iconv-lite": { "version": "0.4.24", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8955,18 +8976,20 @@ }, "node_modules/fsevents/node_modules/ignore-walk": { "version": "3.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/fsevents/node_modules/inflight": { "version": "1.0.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8974,24 +8997,27 @@ }, "node_modules/fsevents/node_modules/inherits": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/ini": { "version": "1.3.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "engines": { "node": "*" } }, "node_modules/fsevents/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "number-is-nan": "^1.0.0" }, @@ -9001,15 +9027,17 @@ }, "node_modules/fsevents/node_modules/isarray": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minimatch": { "version": "3.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9019,15 +9047,17 @@ }, "node_modules/fsevents/node_modules/minimist": { "version": "0.0.8", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/minipass": { "version": "2.9.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -9035,18 +9065,20 @@ }, "node_modules/fsevents/node_modules/minizlib": { "version": "1.3.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minipass": "^2.9.0" } }, "node_modules/fsevents/node_modules/mkdirp": { "version": "0.5.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "minimist": "0.0.8" }, @@ -9056,15 +9088,17 @@ }, "node_modules/fsevents/node_modules/ms": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/needle": { "version": "2.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -9079,9 +9113,10 @@ }, "node_modules/fsevents/node_modules/node-pre-gyp": { "version": "0.14.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", + "optional": true, "dependencies": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -9100,9 +9135,10 @@ }, "node_modules/fsevents/node_modules/nopt": { "version": "4.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "abbrev": "1", "osenv": "^0.1.4" @@ -9113,24 +9149,27 @@ }, "node_modules/fsevents/node_modules/npm-bundled": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/fsevents/node_modules/npm-normalize-package-bin": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/npm-packlist": { "version": "1.4.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -9138,9 +9177,10 @@ }, "node_modules/fsevents/node_modules/npmlog": { "version": "4.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -9150,54 +9190,60 @@ }, "node_modules/fsevents/node_modules/number-is-nan": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/object-assign": { "version": "4.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/once": { "version": "1.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "wrappy": "1" } }, "node_modules/fsevents/node_modules/os-homedir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/os-tmpdir": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/osenv": { "version": "0.1.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -9205,24 +9251,27 @@ }, "node_modules/fsevents/node_modules/path-is-absolute": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/process-nextick-args": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/rc": { "version": "1.2.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9235,15 +9284,17 @@ }, "node_modules/fsevents/node_modules/rc/node_modules/minimist": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/readable-stream": { "version": "2.3.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9256,9 +9307,10 @@ }, "node_modules/fsevents/node_modules/rimraf": { "version": "2.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -9268,57 +9320,65 @@ }, "node_modules/fsevents/node_modules/safe-buffer": { "version": "5.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/safer-buffer": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/sax": { "version": "1.2.4", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/semver": { "version": "5.7.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "bin": { "semver": "bin/semver" } }, "node_modules/fsevents/node_modules/set-blocking": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/signal-exit": { "version": "3.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/string_decoder": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/fsevents/node_modules/string-width": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9330,9 +9390,10 @@ }, "node_modules/fsevents/node_modules/strip-ansi": { "version": "3.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -9342,18 +9403,20 @@ }, "node_modules/fsevents/node_modules/strip-json-comments": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fsevents/node_modules/tar": { "version": "4.4.13", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -9369,30 +9432,34 @@ }, "node_modules/fsevents/node_modules/util-deprecate": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/fsevents/node_modules/wide-align": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", + "optional": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/fsevents/node_modules/wrappy": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/fsevents/node_modules/yallist": { "version": "3.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "optional": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -14206,12 +14273,6 @@ "node": ">= 0.8.0" } }, - "node_modules/optionator/node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -29760,22 +29821,26 @@ "abbrev": { "version": "1.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -29784,12 +29849,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -29798,32 +29865,38 @@ "chownr": { "version": "1.1.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "debug": { "version": "3.2.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ms": "^2.1.1" } @@ -29831,22 +29904,26 @@ "deep-extend": { "version": "0.6.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "fs-minipass": { "version": "1.2.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.6.0" } @@ -29854,12 +29931,14 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -29874,7 +29953,8 @@ "glob": { "version": "7.1.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -29887,12 +29967,14 @@ "has-unicode": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -29900,7 +29982,8 @@ "ignore-walk": { "version": "3.0.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -29908,7 +29991,8 @@ "inflight": { "version": "1.0.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -29917,17 +30001,20 @@ "inherits": { "version": "2.0.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -29935,12 +30022,14 @@ "isarray": { "version": "1.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -29948,12 +30037,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -29962,7 +30053,8 @@ "minizlib": { "version": "1.3.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minipass": "^2.9.0" } @@ -29970,7 +30062,8 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -29978,12 +30071,14 @@ "ms": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "needle": { "version": "2.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -29993,7 +30088,8 @@ "node-pre-gyp": { "version": "0.14.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -30010,7 +30106,8 @@ "nopt": { "version": "4.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -30019,7 +30116,8 @@ "npm-bundled": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } @@ -30027,12 +30125,14 @@ "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "npm-packlist": { "version": "1.4.7", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -30041,7 +30141,8 @@ "npmlog": { "version": "4.1.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -30052,17 +30153,20 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "once": { "version": "1.4.0", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -30070,17 +30174,20 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -30089,17 +30196,20 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "process-nextick-args": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "rc": { "version": "1.2.8", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -30110,14 +30220,16 @@ "minimist": { "version": "1.2.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, "readable-stream": { "version": "2.3.6", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -30131,7 +30243,8 @@ "rimraf": { "version": "2.7.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "glob": "^7.1.3" } @@ -30139,37 +30252,44 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "sax": { "version": "1.2.4", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "semver": { "version": "5.7.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "string_decoder": { "version": "1.1.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -30177,7 +30297,8 @@ "string-width": { "version": "1.0.2", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -30187,7 +30308,8 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -30195,12 +30317,14 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "tar": { "version": "4.4.13", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -30214,12 +30338,14 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, - "extraneous": true, + "dev": true, + "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -30227,12 +30353,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "extraneous": true + "dev": true, + "optional": true }, "yallist": { "version": "3.1.1", "bundled": true, - "extraneous": true + "dev": true, + "optional": true } } }, @@ -34155,14 +34283,6 @@ "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } } }, "os-browserify": { diff --git a/public/.eslintrc.js b/public/.eslintrc.js index 4f81011dc9..4dc5f9e026 100644 --- a/public/.eslintrc.js +++ b/public/.eslintrc.js @@ -1,7 +1,12 @@ // this config file is used in concert with the root .eslintrc.js in the root dir. module.exports = { "env": { - "browser": true + "browser": true, + "es6": true + }, + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module" }, "globals": { "$": false, @@ -22,5 +27,8 @@ module.exports = { "num_loaded": false, "Visibility": false, "inlineAttachment": false + }, + "rules": { + "no-unused-vars": "warn" } }; From 39cefecae8cf413f4735ad084afe6452a6b90560 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 21 Mar 2025 14:25:54 +0800 Subject: [PATCH 14/33] feat: add preference to disable table editor shortcuts Signed-off-by: Yukai Huang --- public/js/lib/editor/index.js | 35 ++++++++++++++++++++++++++++ public/js/lib/editor/statusbar.html | 1 + public/js/lib/editor/table-editor.js | 27 ++++++++++++++++++++- 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/public/js/lib/editor/index.js b/public/js/lib/editor/index.js index eb887da694..8147c45be8 100644 --- a/public/js/lib/editor/index.js +++ b/public/js/lib/editor/index.js @@ -779,6 +779,41 @@ export default class Editor { overrideBrowserKeymap.change(() => { this.setOverrideBrowserKeymap() }) + + // Handle table editor shortcuts preference + var disableTableShortcuts = $( + '.ui-preferences-disable-table-shortcuts label > input[type="checkbox"]' + ) + var cookieDisableTableShortcuts = Cookies.get( + 'preferences-disable-table-shortcuts' + ) + if (cookieDisableTableShortcuts && cookieDisableTableShortcuts === 'true') { + disableTableShortcuts.prop('checked', true) + } else { + disableTableShortcuts.prop('checked', false) + } + this.setTableShortcutsPreference() + + disableTableShortcuts.change(() => { + this.setTableShortcutsPreference() + }) + } + + setTableShortcutsPreference () { + var disableTableShortcuts = $( + '.ui-preferences-disable-table-shortcuts label > input[type="checkbox"]' + ) + if (disableTableShortcuts.is(':checked')) { + Cookies.set('preferences-disable-table-shortcuts', true, { + expires: 365 + }) + } else { + Cookies.remove('preferences-disable-table-shortcuts') + } + // Notify table editor about the preference change + if (this.tableEditor) { + this.tableEditor.setShortcutsEnabled(!disableTableShortcuts.is(':checked')) + } } init (textit) { diff --git a/public/js/lib/editor/statusbar.html b/public/js/lib/editor/statusbar.html index 88f8c1f4ed..78c9307314 100644 --- a/public/js/lib/editor/statusbar.html +++ b/public/js/lib/editor/statusbar.html @@ -14,6 +14,7 @@
diff --git a/public/js/lib/editor/table-editor.js b/public/js/lib/editor/table-editor.js index 439f1f5a22..83aabd77c5 100644 --- a/public/js/lib/editor/table-editor.js +++ b/public/js/lib/editor/table-editor.js @@ -125,6 +125,28 @@ export function initTableEditor (editor) { smartCursor: true, formatType: FormatType.NORMAL }) + + // Flag to track if shortcuts are enabled + let shortcutsEnabled = true + + // Method to enable/disable shortcuts + tableEditor.setShortcutsEnabled = function (enabled) { + shortcutsEnabled = enabled + // If shortcuts are disabled and currently active, remove the keymap + if (!enabled && lastActive) { + editor.removeKeyMap(keyMap) + } else if (enabled && lastActive) { + // If shortcuts are enabled and cursor is in table, add the keymap back + editor.addKeyMap(keyMap) + } + } + + // Check cookie for saved preference + const cookieDisableTableShortcuts = window.Cookies && window.Cookies.get('preferences-disable-table-shortcuts') + if (cookieDisableTableShortcuts && cookieDisableTableShortcuts === 'true') { + shortcutsEnabled = false + } + // keymap of the commands // from https://github.com/susisu/mte-demo/blob/master/src/main.js const keyMap = CodeMirror.normalizeKeyMap({ @@ -178,7 +200,10 @@ export function initTableEditor (editor) { if (active) { tableTools.show() tableTools.parent().scrollLeft(tableTools.parent()[0].scrollWidth) - editor.addKeyMap(keyMap) + // Only add keymap if shortcuts are enabled + if (shortcutsEnabled) { + editor.addKeyMap(keyMap) + } } else { tableTools.hide() editor.removeKeyMap(keyMap) From bda5adc43fea2d05c1510a489bf0a208b01b1a28 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 21 Mar 2025 14:56:36 +0800 Subject: [PATCH 15/33] feat: migrate preferences from cookies to localStorage Signed-off-by: Yukai Huang --- public/js/lib/editor/index.js | 194 +++++++++++++++++++++------------- 1 file changed, 119 insertions(+), 75 deletions(-) diff --git a/public/js/lib/editor/index.js b/public/js/lib/editor/index.js index 8147c45be8..988496603b 100644 --- a/public/js/lib/editor/index.js +++ b/public/js/lib/editor/index.js @@ -11,6 +11,39 @@ import CodeMirrorSpellChecker, { supportLanguages, supportLanguageCodes } from ' import { initTableEditor } from './table-editor' import { availableThemes } from './constants' +// Storage utility class for localStorage operations +class Storage { + static get(key, defaultValue = null) { + try { + const value = localStorage.getItem(key) + return value !== null ? value : defaultValue + } catch (e) { + console.error('Error getting from localStorage:', e) + return defaultValue + } + } + + static set(key, value, options = {}) { + try { + localStorage.setItem(key, value) + return true + } catch (e) { + console.error('Error setting to localStorage:', e) + return false + } + } + + static remove(key) { + try { + localStorage.removeItem(key) + return true + } catch (e) { + console.error('Error removing from localStorage:', e) + return false + } + } +} + /* config section */ const isMac = CodeMirror.keyMap.default === CodeMirror.keyMap.macDefault const defaultEditorMode = 'gfm' @@ -183,6 +216,39 @@ export default class Editor { CodeMirror.defineMode('markmap', function (config, modeConfig) { return CodeMirror.overlayMode(CodeMirror.getMode(config, 'gfm'), ignoreOverlay) }) + + // Migrate preferences from cookies to localStorage + this.migratePreferences() + } + + // Migrate preferences from cookies to localStorage + migratePreferences() { + // Only run migration if window and localStorage are available + if (typeof window === 'undefined' || typeof localStorage === 'undefined' || typeof Cookies === 'undefined') { + return + } + + const preferencesToMigrate = [ + 'indent_type', + 'tab_size', + 'space_units', + 'keymap', + 'theme', + 'spellcheck', + 'linter', + 'preferences-override-browser-keymap', + 'preferences-disable-table-shortcuts' + ] + + preferencesToMigrate.forEach(key => { + // Check if preference exists in cookies but not in localStorage + const cookieValue = Cookies.get(key) + if (cookieValue !== undefined && Storage.get(key) === null) { + // Migrate the preference to localStorage + Storage.set(key, cookieValue) + console.log(`Migrated preference ${key} from cookies to localStorage`) + } + }) } on (event, cb) { @@ -423,24 +489,24 @@ export default class Editor { } setIndent () { - var cookieIndentType = Cookies.get('indent_type') - var cookieTabSize = parseInt(Cookies.get('tab_size')) - var cookieSpaceUnits = parseInt(Cookies.get('space_units')) - if (cookieIndentType) { - if (cookieIndentType === 'tab') { + var storedIndentType = Storage.get('indent_type') + var storedTabSize = parseInt(Storage.get('tab_size')) + var storedSpaceUnits = parseInt(Storage.get('space_units')) + if (storedIndentType) { + if (storedIndentType === 'tab') { this.editor.setOption('indentWithTabs', true) - if (cookieTabSize) { - this.editor.setOption('indentUnit', cookieTabSize) + if (storedTabSize) { + this.editor.setOption('indentUnit', storedTabSize) } - } else if (cookieIndentType === 'space') { + } else if (storedIndentType === 'space') { this.editor.setOption('indentWithTabs', false) - if (cookieSpaceUnits) { - this.editor.setOption('indentUnit', cookieSpaceUnits) + if (storedSpaceUnits) { + this.editor.setOption('indentUnit', storedSpaceUnits) } } } - if (cookieTabSize) { - this.editor.setOption('tabSize', cookieTabSize) + if (storedTabSize) { + this.editor.setOption('tabSize', storedTabSize) } var type = this.statusIndicators.find('.indent-type') @@ -449,14 +515,10 @@ export default class Editor { const setType = () => { if (this.editor.getOption('indentWithTabs')) { - Cookies.set('indent_type', 'tab', { - expires: 365 - }) + Storage.set('indent_type', 'tab') type.text('Tab Size:') } else { - Cookies.set('indent_type', 'space', { - expires: 365 - }) + Storage.set('indent_type', 'space') type.text('Spaces:') } } @@ -465,13 +527,9 @@ export default class Editor { const setUnit = () => { var unit = this.editor.getOption('indentUnit') if (this.editor.getOption('indentWithTabs')) { - Cookies.set('tab_size', unit, { - expires: 365 - }) + Storage.set('tab_size', unit) } else { - Cookies.set('space_units', unit, { - expires: 365 - }) + Storage.set('space_units', unit) } widthLabel.text(unit) } @@ -480,16 +538,16 @@ export default class Editor { type.click(() => { if (this.editor.getOption('indentWithTabs')) { this.editor.setOption('indentWithTabs', false) - cookieSpaceUnits = parseInt(Cookies.get('space_units')) - if (cookieSpaceUnits) { - this.editor.setOption('indentUnit', cookieSpaceUnits) + storedSpaceUnits = parseInt(Storage.get('space_units')) + if (storedSpaceUnits) { + this.editor.setOption('indentUnit', storedSpaceUnits) } } else { this.editor.setOption('indentWithTabs', true) - cookieTabSize = parseInt(Cookies.get('tab_size')) - if (cookieTabSize) { - this.editor.setOption('indentUnit', cookieTabSize) - this.editor.setOption('tabSize', cookieTabSize) + storedTabSize = parseInt(Storage.get('tab_size')) + if (storedTabSize) { + this.editor.setOption('indentUnit', storedTabSize) + this.editor.setOption('tabSize', storedTabSize) } } setType() @@ -525,9 +583,9 @@ export default class Editor { } setKeymap () { - var cookieKeymap = Cookies.get('keymap') - if (cookieKeymap) { - this.editor.setOption('keyMap', cookieKeymap) + var storedKeymap = Storage.get('keymap') + if (storedKeymap) { + this.editor.setOption('keyMap', storedKeymap) } var label = this.statusIndicators.find('.ui-keymap-label') @@ -537,9 +595,7 @@ export default class Editor { const setKeymapLabel = () => { var keymap = this.editor.getOption('keyMap') - Cookies.set('keymap', keymap, { - expires: 365 - }) + Storage.set('keymap', keymap) label.text(keymap) this.restoreOverrideEditorKeymap() this.setOverrideBrowserKeymap() @@ -572,17 +628,15 @@ export default class Editor { const setTheme = theme => { this.editor.setOption('theme', theme) - Cookies.set('theme', theme, { - expires: 365 - }) + Storage.set('theme', theme) this.statusIndicators.find('.status-theme li').removeClass('active') this.statusIndicators.find(`.status-theme li[value="${theme}"]`).addClass('active') } - const cookieTheme = Cookies.get('theme') - if (cookieTheme && availableThemes.find(theme => cookieTheme === theme.value)) { - setTheme(cookieTheme) - activateThemeListItem(cookieTheme) + const storedTheme = Storage.get('theme') + if (storedTheme && availableThemes.find(theme => storedTheme === theme.value)) { + setTheme(storedTheme) + activateThemeListItem(storedTheme) } else { activateThemeListItem(this.editor.getOption('theme')) } @@ -613,10 +667,10 @@ export default class Editor { } getExistingSpellcheckLang () { - const cookieSpellcheck = Cookies.get('spellcheck') + const storedSpellcheck = Storage.get('spellcheck') - if (cookieSpellcheck) { - return cookieSpellcheck === 'false' ? undefined : cookieSpellcheck + if (storedSpellcheck) { + return storedSpellcheck === 'false' ? undefined : storedSpellcheck } else { return undefined } @@ -637,18 +691,18 @@ export default class Editor { return $(`
  • ${lang.name}
  • `) })) - const cookieSpellcheck = Cookies.get('spellcheck') - if (cookieSpellcheck) { + const storedSpellcheck = Storage.get('spellcheck') + if (storedSpellcheck) { let mode = null let lang = 'en_US' - if (cookieSpellcheck === 'false' || !cookieSpellcheck) { + if (storedSpellcheck === 'false' || !storedSpellcheck) { mode = defaultEditorMode this.activateSpellcheckListItem(false) } else { mode = 'spell-checker' - if (supportLanguageCodes.includes(cookieSpellcheck)) { - lang = cookieSpellcheck + if (supportLanguageCodes.includes(storedSpellcheck)) { + lang = storedSpellcheck } this.setSpellcheckLang(lang) } @@ -674,17 +728,13 @@ export default class Editor { if (lang === 'disabled') { spellcheckToggle.removeClass('active') - Cookies.set('spellcheck', false, { - expires: 365 - }) + Storage.set('spellcheck', 'false') self.editor.setOption('mode', defaultEditorMode) } else { spellcheckToggle.addClass('active') - Cookies.set('spellcheck', lang, { - expires: 365 - }) + Storage.set('spellcheck', lang) self.editor.setOption('mode', 'spell-checker') } @@ -703,12 +753,10 @@ export default class Editor { if (!gutters.includes(lintGutter)) { this.editor.setOption('gutters', [lintGutter, ...gutters]) } - Cookies.set('linter', true, { - expires: 365 - }) + Storage.set('linter', 'true') } else { this.editor.setOption('gutters', gutters.filter(g => g !== lintGutter)) - Cookies.remove('linter') + Storage.remove('linter') } this.editor.setOption('lint', enable ? linterOptions : false) } @@ -726,7 +774,7 @@ export default class Editor { updateLinterStatus(!lintEnable) }) - const enable = !!Cookies.get('linter') + const enable = Storage.get('linter') === 'true' this.toggleLinter.bind(this)(enable) updateLinterStatus(enable) } @@ -752,12 +800,10 @@ export default class Editor { '.ui-preferences-override-browser-keymap label > input[type="checkbox"]' ) if (overrideBrowserKeymap.is(':checked')) { - Cookies.set('preferences-override-browser-keymap', true, { - expires: 365 - }) + Storage.set('preferences-override-browser-keymap', 'true') this.restoreOverrideEditorKeymap() } else { - Cookies.remove('preferences-override-browser-keymap') + Storage.remove('preferences-override-browser-keymap') this.resetEditorKeymapToBrowserKeymap() } } @@ -766,10 +812,10 @@ export default class Editor { var overrideBrowserKeymap = $( '.ui-preferences-override-browser-keymap label > input[type="checkbox"]' ) - var cookieOverrideBrowserKeymap = Cookies.get( + var storedOverrideBrowserKeymap = Storage.get( 'preferences-override-browser-keymap' ) - if (cookieOverrideBrowserKeymap && cookieOverrideBrowserKeymap === 'true') { + if (storedOverrideBrowserKeymap && storedOverrideBrowserKeymap === 'true') { overrideBrowserKeymap.prop('checked', true) } else { overrideBrowserKeymap.prop('checked', false) @@ -784,10 +830,10 @@ export default class Editor { var disableTableShortcuts = $( '.ui-preferences-disable-table-shortcuts label > input[type="checkbox"]' ) - var cookieDisableTableShortcuts = Cookies.get( + var storedDisableTableShortcuts = Storage.get( 'preferences-disable-table-shortcuts' ) - if (cookieDisableTableShortcuts && cookieDisableTableShortcuts === 'true') { + if (storedDisableTableShortcuts && storedDisableTableShortcuts === 'true') { disableTableShortcuts.prop('checked', true) } else { disableTableShortcuts.prop('checked', false) @@ -804,11 +850,9 @@ export default class Editor { '.ui-preferences-disable-table-shortcuts label > input[type="checkbox"]' ) if (disableTableShortcuts.is(':checked')) { - Cookies.set('preferences-disable-table-shortcuts', true, { - expires: 365 - }) + Storage.set('preferences-disable-table-shortcuts', 'true') } else { - Cookies.remove('preferences-disable-table-shortcuts') + Storage.remove('preferences-disable-table-shortcuts') } // Notify table editor about the preference change if (this.tableEditor) { From 282ba600d11bceb0b29883c58021ed8af1b6fe67 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 21 Mar 2025 15:43:18 +0800 Subject: [PATCH 16/33] fix: linting Signed-off-by: Yukai Huang --- public/js/lib/editor/index.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/public/js/lib/editor/index.js b/public/js/lib/editor/index.js index 988496603b..af04f980fa 100644 --- a/public/js/lib/editor/index.js +++ b/public/js/lib/editor/index.js @@ -1,3 +1,4 @@ +/* eslint-env browser */ /* global CodeMirror, $, editor, Cookies */ import { options, Alignment, FormatType } from '@susisu/mte-kernel' import debounce from 'lodash/debounce' @@ -13,7 +14,7 @@ import { availableThemes } from './constants' // Storage utility class for localStorage operations class Storage { - static get(key, defaultValue = null) { + static get (key, defaultValue = null) { try { const value = localStorage.getItem(key) return value !== null ? value : defaultValue @@ -23,7 +24,7 @@ class Storage { } } - static set(key, value, options = {}) { + static set (key, value, options = {}) { try { localStorage.setItem(key, value) return true @@ -33,7 +34,7 @@ class Storage { } } - static remove(key) { + static remove (key) { try { localStorage.removeItem(key) return true @@ -216,13 +217,13 @@ export default class Editor { CodeMirror.defineMode('markmap', function (config, modeConfig) { return CodeMirror.overlayMode(CodeMirror.getMode(config, 'gfm'), ignoreOverlay) }) - + // Migrate preferences from cookies to localStorage this.migratePreferences() } // Migrate preferences from cookies to localStorage - migratePreferences() { + migratePreferences () { // Only run migration if window and localStorage are available if (typeof window === 'undefined' || typeof localStorage === 'undefined' || typeof Cookies === 'undefined') { return From e0fb494d713068376a0f4869ae5c10f8ea47431f Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Mon, 24 Mar 2025 14:05:42 +0800 Subject: [PATCH 17/33] feat: add state parameter to OAuth strategies for enhanced security Signed-off-by: Yukai Huang --- lib/auth/bitbucket/index.js | 3 ++- lib/auth/dropbox/index.js | 3 ++- lib/auth/facebook/index.js | 3 ++- lib/auth/github/index.js | 3 ++- lib/auth/gitlab/index.js | 3 ++- lib/auth/google/index.js | 3 ++- lib/auth/twitter/index.js | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/auth/bitbucket/index.js b/lib/auth/bitbucket/index.js index 6cbdd9b426..a42a54e482 100644 --- a/lib/auth/bitbucket/index.js +++ b/lib/auth/bitbucket/index.js @@ -11,7 +11,8 @@ const bitbucketAuth = module.exports = Router() passport.use(new BitbucketStrategy({ clientID: config.bitbucket.clientID, clientSecret: config.bitbucket.clientSecret, - callbackURL: config.serverURL + '/auth/bitbucket/callback' + callbackURL: config.serverURL + '/auth/bitbucket/callback', + state: true }, passportGeneralCallback)) bitbucketAuth.get('/auth/bitbucket', function (req, res, next) { diff --git a/lib/auth/dropbox/index.js b/lib/auth/dropbox/index.js index 099e372426..dc8403173f 100644 --- a/lib/auth/dropbox/index.js +++ b/lib/auth/dropbox/index.js @@ -12,7 +12,8 @@ passport.use(new DropboxStrategy({ apiVersion: '2', clientID: config.dropbox.clientID, clientSecret: config.dropbox.clientSecret, - callbackURL: config.serverURL + '/auth/dropbox/callback' + callbackURL: config.serverURL + '/auth/dropbox/callback', + state: true }, passportGeneralCallback)) dropboxAuth.get('/auth/dropbox', function (req, res, next) { diff --git a/lib/auth/facebook/index.js b/lib/auth/facebook/index.js index 201c82cf40..773bb50db2 100644 --- a/lib/auth/facebook/index.js +++ b/lib/auth/facebook/index.js @@ -12,7 +12,8 @@ const facebookAuth = module.exports = Router() passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, - callbackURL: config.serverURL + '/auth/facebook/callback' + callbackURL: config.serverURL + '/auth/facebook/callback', + state: true }, passportGeneralCallback)) facebookAuth.get('/auth/facebook', function (req, res, next) { diff --git a/lib/auth/github/index.js b/lib/auth/github/index.js index 8cfe9c11b0..465e23de97 100644 --- a/lib/auth/github/index.js +++ b/lib/auth/github/index.js @@ -26,7 +26,8 @@ passport.use(new GithubStrategy({ callbackURL: config.serverURL + '/auth/github/callback', authorizationURL: githubUrl('login/oauth/authorize'), tokenURL: githubUrl('login/oauth/access_token'), - userProfileURL: githubUrl('api/v3/user') + userProfileURL: githubUrl('api/v3/user'), + state: true }, async (accessToken, refreshToken, profile, done) => { if (!config.github.organizations) { return passportGeneralCallback(accessToken, refreshToken, profile, done) diff --git a/lib/auth/gitlab/index.js b/lib/auth/gitlab/index.js index ab4f6900a8..89f47116c8 100644 --- a/lib/auth/gitlab/index.js +++ b/lib/auth/gitlab/index.js @@ -15,7 +15,8 @@ const gitlabAuthStrategy = new GitlabStrategy({ clientID: config.gitlab.clientID, clientSecret: config.gitlab.clientSecret, scope: config.gitlab.scope, - callbackURL: config.serverURL + '/auth/gitlab/callback' + callbackURL: config.serverURL + '/auth/gitlab/callback', + state: true }, passportGeneralCallback) if (process.env.https_proxy) { diff --git a/lib/auth/google/index.js b/lib/auth/google/index.js index 280a08cc29..28372b29c8 100644 --- a/lib/auth/google/index.js +++ b/lib/auth/google/index.js @@ -12,7 +12,8 @@ passport.use(new GoogleStrategy({ clientID: config.google.clientID, clientSecret: config.google.clientSecret, callbackURL: config.serverURL + '/auth/google/callback', - userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo' + userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo', + state: true }, passportGeneralCallback)) googleAuth.get('/auth/google', function (req, res, next) { diff --git a/lib/auth/twitter/index.js b/lib/auth/twitter/index.js index 3c638067a0..20412d8f93 100644 --- a/lib/auth/twitter/index.js +++ b/lib/auth/twitter/index.js @@ -12,7 +12,8 @@ const twitterAuth = module.exports = Router() passport.use(new TwitterStrategy({ consumerKey: config.twitter.consumerKey, consumerSecret: config.twitter.consumerSecret, - callbackURL: config.serverURL + '/auth/twitter/callback' + callbackURL: config.serverURL + '/auth/twitter/callback', + state: true }, passportGeneralCallback)) twitterAuth.get('/auth/twitter', function (req, res, next) { From 941c2a135159bf2d27f7dea1b345bd9f2c083040 Mon Sep 17 00:00:00 2001 From: stanley2058 Date: Mon, 14 Apr 2025 14:47:12 +0800 Subject: [PATCH 18/33] chore: bump codemirror version to 5.65.8 Signed-off-by: stanley2058 --- package-lock.json | 17 +++++++++-------- package.json | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index d80de0e3bd..7c3090bd28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -85,7 +85,7 @@ "ws": "~7.1.1" }, "devDependencies": { - "@hackmd/codemirror": "~5.63.2", + "@hackmd/codemirror": "^5.65.8", "@hackmd/emojify.js": "^2.1.0", "@hackmd/idle-js": "~1.0.1", "@hackmd/js-sequence-diagrams": "~0.0.1-alpha.3", @@ -978,10 +978,11 @@ } }, "node_modules/@hackmd/codemirror": { - "version": "5.63.2", - "resolved": "https://registry.npmjs.org/@hackmd/codemirror/-/codemirror-5.63.2.tgz", - "integrity": "sha512-0BYPBdQtDB20TtL481GhI9iAQa6Bd7mQ6GB39QqpAUZ6O1qu4PhZTrFzO2mJVdD9B5cuRubL9DlbKXStt9bTuw==", - "dev": true + "version": "5.65.8", + "resolved": "https://registry.npmjs.org/@hackmd/codemirror/-/codemirror-5.65.8.tgz", + "integrity": "sha512-yPTxHIjN3ORKOK2E139MA5pgSwwX/T+k8zkj2FJg80ahn2w1txXHLA8LdpBFF6Vxfb8A5oX3QzbTp/aIO6b3iA==", + "dev": true, + "license": "MIT" }, "node_modules/@hackmd/diff-match-patch": { "version": "1.1.3", @@ -23137,9 +23138,9 @@ } }, "@hackmd/codemirror": { - "version": "5.63.2", - "resolved": "https://registry.npmjs.org/@hackmd/codemirror/-/codemirror-5.63.2.tgz", - "integrity": "sha512-0BYPBdQtDB20TtL481GhI9iAQa6Bd7mQ6GB39QqpAUZ6O1qu4PhZTrFzO2mJVdD9B5cuRubL9DlbKXStt9bTuw==", + "version": "5.65.8", + "resolved": "https://registry.npmjs.org/@hackmd/codemirror/-/codemirror-5.65.8.tgz", + "integrity": "sha512-yPTxHIjN3ORKOK2E139MA5pgSwwX/T+k8zkj2FJg80ahn2w1txXHLA8LdpBFF6Vxfb8A5oX3QzbTp/aIO6b3iA==", "dev": true }, "@hackmd/diff-match-patch": { diff --git a/package.json b/package.json index da2a000d28..20706502e8 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "ws": "~7.1.1" }, "devDependencies": { - "@hackmd/codemirror": "~5.63.2", + "@hackmd/codemirror": "^5.65.8", "@hackmd/emojify.js": "^2.1.0", "@hackmd/idle-js": "~1.0.1", "@hackmd/js-sequence-diagrams": "~0.0.1-alpha.3", From 1ab3a5affacf93e610dd8a20dccdc7127575c21d Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Fri, 18 Apr 2025 13:27:43 +0800 Subject: [PATCH 19/33] fix: update node version matrix to only include 16.x Signed-off-by: Yukai Huang --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88f529963c..d1fec677cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [14.x, 16.x] + node-version: [16.x] steps: - uses: actions/checkout@v4 From 10aee3d9d443640232f62a03e533f01934d20e00 Mon Sep 17 00:00:00 2001 From: Matt Li <16064851+Matt-V50@users.noreply.github.com> Date: Tue, 4 Feb 2025 17:13:28 -0500 Subject: [PATCH 20/33] abc notation requirement update Update foot.ejs abc notation requirement update the bass fingering will conflict with each other if there is more than one fingering annotation. example ```abc `X:1 T:Simple Scale M:4/4 L:1/4 K:C "_1" "_2" C D E F|G A B c|]` ``` Signed-off-by: Matt Li <16064851+Matt-V50@users.noreply.github.com> --- public/views/codimd/foot.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/views/codimd/foot.ejs b/public/views/codimd/foot.ejs index 7b0795587d..2b79354a2f 100644 --- a/public/views/codimd/foot.ejs +++ b/public/views/codimd/foot.ejs @@ -20,7 +20,7 @@ - + From e72fcd06d5e275258a1b91d9114384165dd7b35d Mon Sep 17 00:00:00 2001 From: Matt Li <16064851+Matt-V50@users.noreply.github.com> Date: Sat, 19 Apr 2025 14:28:31 -0400 Subject: [PATCH 21/33] Update foot.ejs Signed-off-by: Matt Li <16064851+Matt-V50@users.noreply.github.com> --- public/views/codimd/foot.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/views/codimd/foot.ejs b/public/views/codimd/foot.ejs index 2b79354a2f..4f881fa930 100644 --- a/public/views/codimd/foot.ejs +++ b/public/views/codimd/foot.ejs @@ -20,7 +20,7 @@ - + From d4ccba98971574ea8803d5967d5412b5cda31370 Mon Sep 17 00:00:00 2001 From: Dubmythlit Date: Thu, 24 Apr 2025 17:46:40 +0800 Subject: [PATCH 22/33] fix: login email should be case insensitive Signed-off-by: Hsiang-Yang Hsieh --- lib/auth/email/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/auth/email/index.js b/lib/auth/email/index.js index 40adf0d9d6..54e04ca718 100644 --- a/lib/auth/email/index.js +++ b/lib/auth/email/index.js @@ -2,6 +2,7 @@ const Router = require('express').Router const passport = require('passport') +const sequelize = require('sequelize') const validator = require('validator') const LocalStrategy = require('passport-local').Strategy const config = require('../../config') @@ -21,7 +22,10 @@ passport.use(new LocalStrategy({ try { const user = await models.User.findOne({ where: { - email: email + email: sequelize.where( + sequelize.fn('LOWER', sequelize.col('email')), + email.toLowerCase() + ) } }) From b9a777d58a10f1ae323bf1812c1d0f5f4a37c563 Mon Sep 17 00:00:00 2001 From: Nowaker Date: Sat, 10 May 2025 21:57:43 -0500 Subject: [PATCH 23/33] VSCode: update image to allow development on MBP ARM chips Signed-off-by: Nowaker --- .devcontainer/Dockerfile | 2 +- .devcontainer/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 361f1a0dbb..7dcfdcb620 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # [Choice] Node.js version: 16, 14 -ARG VARIANT=14-buster +ARG VARIANT=14-bullseye FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} # [Optional] Uncomment this section to install additional OS packages. diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 6127d6e4ba..b6e8f1c27e 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -6,7 +6,7 @@ services: context: .. dockerfile: .devcontainer/Dockerfile args: - VARIANT: 14-buster + VARIANT: 14-bullseye environment: - CMD_DB_URL=postgres://codimd:codimd@localhost/codimd - CMD_USECDN=false From 81611f2435dd95d2a27613b70aed903775cb0698 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Mon, 12 May 2025 17:40:43 +0800 Subject: [PATCH 24/33] refactor: remove cookie preference check for table shortcuts Signed-off-by: Yukai Huang --- public/js/lib/editor/table-editor.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/public/js/lib/editor/table-editor.js b/public/js/lib/editor/table-editor.js index 83aabd77c5..76a5b1fdd8 100644 --- a/public/js/lib/editor/table-editor.js +++ b/public/js/lib/editor/table-editor.js @@ -141,12 +141,6 @@ export function initTableEditor (editor) { } } - // Check cookie for saved preference - const cookieDisableTableShortcuts = window.Cookies && window.Cookies.get('preferences-disable-table-shortcuts') - if (cookieDisableTableShortcuts && cookieDisableTableShortcuts === 'true') { - shortcutsEnabled = false - } - // keymap of the commands // from https://github.com/susisu/mte-demo/blob/master/src/main.js const keyMap = CodeMirror.normalizeKeyMap({ From e5623cb391915657442d77a5dd79686d6f43bb37 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 15 May 2025 14:43:49 +0800 Subject: [PATCH 25/33] chore: update abcjs to version 6.4.4 in pretty.ejs and slide.ejs Signed-off-by: Yukai Huang --- public/views/pretty.ejs | 2 +- public/views/slide.ejs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/views/pretty.ejs b/public/views/pretty.ejs index 2d63ffac45..897f3c59de 100644 --- a/public/views/pretty.ejs +++ b/public/views/pretty.ejs @@ -95,7 +95,7 @@ - + diff --git a/public/views/slide.ejs b/public/views/slide.ejs index fb997d5dd5..4c194f3879 100644 --- a/public/views/slide.ejs +++ b/public/views/slide.ejs @@ -107,7 +107,7 @@ - + From 1b35bb591cd4aeb44815123bf794b7103fefa808 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 15 May 2025 14:46:07 +0800 Subject: [PATCH 26/33] chore: update cdn mermaid.js to version 11.5.0 in foot.ejs, pretty.ejs, and slide.ejs Signed-off-by: Yukai Huang --- public/views/codimd/foot.ejs | 2 +- public/views/pretty.ejs | 2 +- public/views/slide.ejs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/views/codimd/foot.ejs b/public/views/codimd/foot.ejs index 4f881fa930..2827d4a7eb 100644 --- a/public/views/codimd/foot.ejs +++ b/public/views/codimd/foot.ejs @@ -10,7 +10,7 @@ - +< diff --git a/public/views/pretty.ejs b/public/views/pretty.ejs index 897f3c59de..6a445daee8 100644 --- a/public/views/pretty.ejs +++ b/public/views/pretty.ejs @@ -88,7 +88,7 @@ - +< diff --git a/public/views/slide.ejs b/public/views/slide.ejs index 4c194f3879..adb0a086c4 100644 --- a/public/views/slide.ejs +++ b/public/views/slide.ejs @@ -100,7 +100,7 @@ - + < From 7c96e83ae41a183e04a984ffa7c5929e8b727e93 Mon Sep 17 00:00:00 2001 From: Max Wu Date: Thu, 15 May 2025 16:07:34 +0800 Subject: [PATCH 27/33] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- public/views/codimd/foot.ejs | 2 +- public/views/pretty.ejs | 2 +- public/views/slide.ejs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/views/codimd/foot.ejs b/public/views/codimd/foot.ejs index 2827d4a7eb..db7d8fa9e9 100644 --- a/public/views/codimd/foot.ejs +++ b/public/views/codimd/foot.ejs @@ -10,7 +10,7 @@ -< + diff --git a/public/views/pretty.ejs b/public/views/pretty.ejs index 6a445daee8..f545622dc5 100644 --- a/public/views/pretty.ejs +++ b/public/views/pretty.ejs @@ -88,7 +88,7 @@ -< + diff --git a/public/views/slide.ejs b/public/views/slide.ejs index adb0a086c4..ca044b8d68 100644 --- a/public/views/slide.ejs +++ b/public/views/slide.ejs @@ -100,7 +100,7 @@ - < + From 077d52297f4c6972a633fc598e9f8334cab302b9 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 4 Jun 2025 18:01:43 +0800 Subject: [PATCH 28/33] chore: update docker-compose.yml with build instructions for codimd service Signed-off-by: Yukai Huang --- deployments/docker-compose.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index 3289ce9928..66b1dac3ab 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -12,9 +12,14 @@ services: codimd: # you can use image or custom build below, image: nabo.codimd.dev/hackmdio/hackmd:2.5.3 + # Using the following command to trigger the build + # docker-compose -f deployments/docker-compose.yml up --build # build: # context: .. # dockerfile: ./deployments/Dockerfile + # args: + # RUNTIME: hackmdio/runtime:16.20.2-35fe7e39 + # BUILDPACK: hackmdio/buildpack:16.20.2-35fe7e39 environment: - CMD_DB_URL=postgres://codimd:change_password@database/codimd - CMD_USECDN=false From 97b3ad83fa0fb1d677be37faee0534df844c47ed Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 5 Jun 2025 13:19:43 +0800 Subject: [PATCH 29/33] chore: integrate mermaid.js into the build process and update initialization in extra.js - Added mermaid.min.js to the build output in webpack.common.js. - Updated mermaid initialization in extra.js to use the new API. - Included mermaid.min.js script in foot.ejs, pretty.ejs, and slide.ejs for rendering diagrams. Signed-off-by: Yukai Huang --- public/js/extra.js | 11 ++++++++--- public/views/codimd/foot.ejs | 1 + public/views/pretty.ejs | 1 + public/views/slide.ejs | 1 + webpack.common.js | 9 +++++---- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/public/js/extra.js b/public/js/extra.js index 53fdc76b53..cf67cb902c 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -254,7 +254,10 @@ function replaceExtraTags (html) { } if (typeof window.mermaid !== 'undefined' && window.mermaid) { - window.mermaid.startOnLoad = false + window.mermaid.initialize({ + startOnLoad: false + }) + window.mermaid.parseError = function (err, hash) { console.warn(err) } @@ -433,7 +436,7 @@ export function finishView (view) { }) // mermaid const mermaids = view.find('div.mermaid.raw').removeClass('raw') - mermaids.each((key, value) => { + mermaids.each(async (key, value) => { try { var $value = $(value) const $ele = $(value).closest('pre') @@ -444,7 +447,9 @@ export function finishView (view) { $ele.addClass('mermaid') $ele.text(text) // render the diagram - window.mermaid.init(undefined, $ele) + await window.mermaid.run({ + nodes: [$ele[0]] + }) } } catch (err) { $value.unwrap() diff --git a/public/views/codimd/foot.ejs b/public/views/codimd/foot.ejs index db7d8fa9e9..3384fb0b14 100644 --- a/public/views/codimd/foot.ejs +++ b/public/views/codimd/foot.ejs @@ -30,5 +30,6 @@ + <%- include('../build/index-pack-scripts') %> <% } %> diff --git a/public/views/pretty.ejs b/public/views/pretty.ejs index f545622dc5..c4f82a5d60 100644 --- a/public/views/pretty.ejs +++ b/public/views/pretty.ejs @@ -105,6 +105,7 @@ + <%- include('build/pretty-pack-scripts') %> <% } %> <%- include('shared/ga') %> diff --git a/public/views/slide.ejs b/public/views/slide.ejs index ca044b8d68..76bc58525d 100644 --- a/public/views/slide.ejs +++ b/public/views/slide.ejs @@ -117,6 +117,7 @@ + <%- include('build/slide-pack-scripts') %> <% } %> diff --git a/webpack.common.js b/webpack.common.js index 014ebbd8a9..4c03de7051 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -205,6 +205,11 @@ module.exports = { context: path.join(__dirname, 'node_modules/fork-awesome'), from: 'css', to: 'fork-awesome/css' + }, + { + context: path.join(__dirname, 'node_modules/mermaid'), + from: 'dist/mermaid.min.js', + to: 'mermaid/mermaid.min.js' } ]), new MiniCssExtractPlugin( @@ -295,7 +300,6 @@ module.exports = { 'script-loader!jquery-ui-resizable', 'bootstrap-validator', 'expose-loader?jsyaml!js-yaml', - 'script-loader!mermaid', 'expose-loader?moment!moment', 'script-loader!handlebars', 'expose-loader?hljs!highlight.js', @@ -340,7 +344,6 @@ module.exports = { 'pretty-pack': [ 'babel-polyfill', 'expose-loader?jsyaml!js-yaml', - 'script-loader!mermaid', 'expose-loader?moment!moment', 'script-loader!handlebars', 'expose-loader?hljs!highlight.js', @@ -383,7 +386,6 @@ module.exports = { 'imports-loader?$=jquery!jquery-mousewheel', 'bootstrap-tooltip', 'expose-loader?jsyaml!js-yaml', - 'script-loader!mermaid', 'expose-loader?moment!moment', 'script-loader!handlebars', 'expose-loader?hljs!highlight.js', @@ -419,7 +421,6 @@ module.exports = { jqueryTextcomplete: path.join(__dirname, 'public/vendor/jquery-textcomplete/jquery.textcomplete.js'), codemirrorInlineAttachment: path.join(__dirname, 'public/vendor/inlineAttachment/codemirror.inline-attachment.js'), ot: path.join(__dirname, 'public/vendor/ot/ot.min.js'), - mermaid: path.join(__dirname, 'node_modules/mermaid/dist/mermaid.min.js'), handlebars: path.join(__dirname, 'node_modules/handlebars/dist/handlebars.min.js'), 'jquery-ui-resizable': path.join(__dirname, 'public/vendor/jquery-ui/jquery-ui.min.js'), 'gist-embed': path.join(__dirname, 'node_modules/gist-embed/gist-embed.min.js'), From 3043f567c94099e9ae40dc9aee89e47d8cf8a005 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 5 Jun 2025 14:20:31 +0800 Subject: [PATCH 30/33] fix: update mermaid diagram rendering in extra.js to use new API - Refactored the mermaid rendering logic to utilize the latest API for generating diagrams. - Improved error handling by displaying the error message directly instead of using a string property. - Ensured that the diagram's HTML is updated correctly after rendering. Signed-off-by: Yukai Huang --- public/js/extra.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/public/js/extra.js b/public/js/extra.js index cf67cb902c..47b5a916a0 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -437,23 +437,25 @@ export function finishView (view) { // mermaid const mermaids = view.find('div.mermaid.raw').removeClass('raw') mermaids.each(async (key, value) => { + const $value = $(value) + const $ele = $value.closest('pre') try { - var $value = $(value) - const $ele = $(value).closest('pre') - const text = $value.text() // validate the syntax first if (window.mermaid.parse(text)) { $ele.addClass('mermaid') $ele.text(text) // render the diagram - await window.mermaid.run({ - nodes: [$ele[0]] - }) + const id = `mermaid-${Date.now()}-${Math.random().toString(36).substr(2, 9)}` + const { svg, bindFunctions } = await window.mermaid.render(id, text, $ele[0]) + $ele.html(svg) + if (bindFunctions) { + bindFunctions($ele[0]) + } } } catch (err) { $value.unwrap() - $value.parent().append(`
    ${escapeHTML(err.str)}
    `) + $ele.append(`
    ${escapeHTML(err)}
    `) console.warn(err) } }) From 8bb75020f989b7cb23f151a5d542da43ca56fc34 Mon Sep 17 00:00:00 2001 From: Max Wu Date: Fri, 6 Jun 2025 23:19:27 +0800 Subject: [PATCH 31/33] Create FUNDING.json for drips.network --- FUNDING.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 FUNDING.json diff --git a/FUNDING.json b/FUNDING.json new file mode 100644 index 0000000000..d29464065b --- /dev/null +++ b/FUNDING.json @@ -0,0 +1,7 @@ +{ + "drips": { + "ethereum": { + "ownedBy": "0xEd37B84FD84A834886aC07693aF6A9cd35040002" + } + } +} From b742a67829968b163944e2328e49686266ce5503 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Tue, 10 Jun 2025 17:00:17 +0800 Subject: [PATCH 32/33] docs: update release note for version 2.6.0 Signed-off-by: Yukai Huang --- public/docs/release-notes.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/public/docs/release-notes.md b/public/docs/release-notes.md index 9bccacbcf6..e7f33642e6 100644 --- a/public/docs/release-notes.md +++ b/public/docs/release-notes.md @@ -1,6 +1,37 @@ Release Notes === + 2.6.0 2025-06-10 +--- + +[Check out the complete release note][v2_6_0]. + +[v2_6_0]: https://hackmd.io/@codimd/release-notes/%2F%40codimd%2Fv2_6_0 + +This minor release includes several enhancements and fixes to improve the overall functionality and performance of CodiMD. + +## Enhancements + +- Update GitHub Actions to use the latest versions [#1895](https://github.com/hackmdio/codimd/pull/1895) +- Update ESLint configuration for ES6 support [#1900](https://github.com/hackmdio/codimd/pull/1900) +- Add preference to disable table editor shortcuts and migrate preferences to localStorage [#1901](https://github.com/hackmdio/codimd/pull/1901) +- Add PDF URL validation and content type check [#1896](https://github.com/hackmdio/codimd/pull/1896) +- Upgrade mermaid to the latest version [#1894](https://github.com/hackmdio/codimd/pull/1894) +- Add baseURL configuration option to S3 modules [#1876](https://github.com/hackmdio/codimd/pull/1876) +- Improve contrast on certain elements [#1899](https://github.com/hackmdio/codimd/pull/1899) +- Bump codemirror version to 5.65.8 [#1908](https://github.com/hackmdio/codimd/pull/1908) +- Add state parameter to OAuth strategies for enhanced security [#1902](https://github.com/hackmdio/codimd/pull/1902) +- Configure MiniCssExtractPlugin for production environment in webpack [#1897](https://github.com/hackmdio/codimd/pull/1897) +- Refactor plugin paths and move custom reveal plugin [#1898](https://github.com/hackmdio/codimd/pull/1898) +- Update dependencies for abcjs and mermaid.js [#1914](https://github.com/hackmdio/codimd/pull/1914) +- VSCode: update image to allow development on MBP ARM chips [#1913](https://github.com/hackmdio/codimd/pull/1913) + +## Fixes + +- Fix: login email should be case insensitive [#1911](https://github.com/hackmdio/codimd/pull/1911) +- Fix: Lost schema of S3 URL [#1893](https://github.com/hackmdio/codimd/pull/1893) +- Chore: update docker-compose.yml with build instructions for codimd service [#1917](https://github.com/hackmdio/codimd/pull/1917) + 2.5.4 2024-06-06 --- From 3d746087562f1d93825fd40dccb67170ad5fc68e Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Tue, 10 Jun 2025 17:02:19 +0800 Subject: [PATCH 33/33] chore: bump version to 2.6.0 Signed-off-by: Yukai Huang --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b32910232..92adbf1fbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codimd", - "version": "2.5.4", + "version": "2.6.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "codimd", - "version": "2.5.4", + "version": "2.6.0", "license": "AGPL-3.0", "dependencies": { "@aws-sdk/client-s3-node": "0.1.0-preview.2", diff --git a/package.json b/package.json index 4ab074735f..cbe9e6c14a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codimd", - "version": "2.5.4", + "version": "2.6.0", "description": "Realtime collaborative markdown notes on all platforms.", "keywords": [ "Collaborative",