From 7012fe3c0a0265639042c165b61f3a83a994ea64 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Fri, 18 Oct 2024 13:59:54 -0700 Subject: [PATCH 1/4] fix: missing close icon (#995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![PR App][icn]][demo] | Fix RM-XYZ :-------------------:|:----------: ## 🧰 Changes To repro on prod: https://docs.readme.com/main/docs/intro-to-readme ![Welcome to ReadMe!-20241016-103307@2x](https://github.com/user-attachments/assets/95cf4099-918b-499d-9c90-c910bb5a4faf) ## 🧬 QA & Testing - [Broken on production][prod]. - [Working in this PR app][demo]. [demo]: https://markdown-pr-PR_NUMBER.herokuapp.com [prod]: https://SUBDOMAIN.readme.io [icn]: https://user-images.githubusercontent.com/886627/160426047-1bee9488-305a-4145-bb2b-09d8b757d38a.svg --- components/Image/style.scss | 5 +---- docs/callouts.md | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/components/Image/style.scss b/components/Image/style.scss index 5053ebc23..e717087f8 100644 --- a/components/Image/style.scss +++ b/components/Image/style.scss @@ -103,16 +103,13 @@ content: '\f00d'; cursor: pointer; display: inline-block; - font: normal normal normal 2em/1 FontAwesome; + font-family: var(--fa-style-family, 'Font Awesome 6 Pro'); font-size: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; opacity: 1; position: fixed; right: 1em; text-rendering: auto; top: 1em; - transform: translate(0, 0); transform: scale(1.5); transition: 0.3s 0.3s ease-in; } diff --git a/docs/callouts.md b/docs/callouts.md index 9ff2fed14..71591ef0a 100644 --- a/docs/callouts.md +++ b/docs/callouts.md @@ -187,7 +187,7 @@ summary {
Setting the Custom Icon Font
-The custom icon font defaults to `FontAwesome`, but you can use any font family available on the page by setting the `--icon-font` variable! +The custom icon font defaults to `Font Awesome 6 Pro`. ```css .callout[theme='📷'] { From 36373146a1a134cedae0ccd6ff4e552a41c18c76 Mon Sep 17 00:00:00 2001 From: Kelly Joseph Price Date: Mon, 21 Oct 2024 15:34:52 -0700 Subject: [PATCH 2/4] chore: replace node-sass (#997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![PR App][icn]][demo] | :-------------------:| ## 🧰 Changes Replace `node-sass` with `dart-sass` (`sass`). `node-sass` started failing to build on the github action runners. Eek! I guess it's time to chuck it. :wave: ## 🧬 QA & Testing - [Broken on production][prod]. - [Working in this PR app][demo]. [demo]: https://markdown-pr-PR_NUMBER.herokuapp.com [prod]: https://SUBDOMAIN.readme.io [icn]: https://user-images.githubusercontent.com/886627/160426047-1bee9488-305a-4145-bb2b-09d8b757d38a.svg --- package-lock.json | 572 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 3 +- webpack.common.js | 11 +- 3 files changed, 554 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 241503104..0b619b809 100644 --- a/package-lock.json +++ b/package-lock.json @@ -87,12 +87,11 @@ "jest-image-snapshot": "^6.4.0", "jest-puppeteer": "^8.0.6", "mini-css-extract-plugin": "^2.7.5", - "node-sass": "^8.0.0", "prettier": "^3.2.5", "puppeteer": "^19.8.3", "react-router-dom": "^6.22.3", "remark-slug": "^7.0.1", - "sass": "^1.77.3", + "sass": "^1.80.1", "sass-loader": "^13.2.2", "semantic-release": "^22.0.12", "stream-browserify": "^3.0.0", @@ -3243,7 +3242,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@graphql-tools/batch-execute": { "version": "8.5.22", @@ -4594,6 +4595,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" @@ -4607,6 +4610,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4619,6 +4624,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -4633,7 +4640,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@npmcli/move-file": { "version": "2.0.1", @@ -4641,6 +4650,8 @@ "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -4840,6 +4851,279 @@ "@octokit/openapi-types": "^22.0.1" } }, + "node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@peculiar/asn1-schema": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", @@ -8670,7 +8954,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/abstract-leveldown": { "version": "0.12.4", @@ -8767,6 +9053,8 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "humanize-ms": "^1.2.1" }, @@ -8902,13 +9190,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -8922,6 +9214,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9190,6 +9484,8 @@ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -9790,6 +10086,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", @@ -9819,6 +10117,8 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9838,6 +10138,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -9847,6 +10149,8 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10077,6 +10381,8 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -10263,6 +10569,8 @@ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, + "optional": true, + "peer": true, "bin": { "color-support": "bin.js" } @@ -10413,7 +10721,9 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/content-disposition": { "version": "0.5.4", @@ -11332,7 +11642,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/depd": { "version": "2.0.0", @@ -11367,6 +11679,18 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -11550,6 +11874,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -11739,6 +12064,8 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -11759,7 +12086,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/errno": { "version": "0.1.8", @@ -14221,6 +14550,8 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -14327,6 +14658,8 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -14346,6 +14679,8 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "globule": "^1.0.0" }, @@ -14693,6 +15028,8 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "~7.1.1", "lodash": "^4.17.21", @@ -14707,6 +15044,8 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -14717,6 +15056,8 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14737,6 +15078,8 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15052,7 +15395,9 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/hasown": { "version": "2.0.2", @@ -15647,7 +15992,9 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -15768,6 +16115,8 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "^2.0.0" } @@ -16017,7 +16366,9 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/inflight": { "version": "1.0.6", @@ -16089,6 +16440,8 @@ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -16101,7 +16454,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/ipaddr.js": { "version": "2.1.0", @@ -16434,7 +16789,9 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/is-map": { "version": "2.0.3", @@ -19161,7 +19518,9 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/js-tokens": { "version": "4.0.0", @@ -19185,7 +19544,9 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/jsdom": { "version": "20.0.3", @@ -19975,6 +20336,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -20002,6 +20365,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -21563,6 +21928,8 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -21575,6 +21942,8 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -21587,6 +21956,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", @@ -21604,6 +21975,8 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -21616,6 +21989,8 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -21628,6 +22003,8 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0" }, @@ -21639,13 +22016,17 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -21658,7 +22039,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/mitt": { "version": "3.0.0", @@ -21671,6 +22054,8 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "optional": true, + "peer": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -21727,7 +22112,9 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/nanoid": { "version": "3.3.7", @@ -21780,6 +22167,12 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true + }, "node_modules/node-emoji": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", @@ -21847,6 +22240,8 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -21871,6 +22266,8 @@ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -21882,6 +22279,8 @@ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -21895,6 +22294,8 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6" } @@ -21904,6 +22305,8 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -21933,6 +22336,8 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -21947,6 +22352,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -21959,6 +22366,8 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -21986,6 +22395,8 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", @@ -22003,6 +22414,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -22018,6 +22431,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -22032,6 +22447,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.1" }, @@ -22044,6 +22461,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "unique-slug": "^2.0.0" } @@ -22053,6 +22472,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4" } @@ -22061,7 +22482,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-int64": { "version": "0.4.0", @@ -22081,6 +22504,8 @@ "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==", "dev": true, "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { "async-foreach": "^0.1.3", "chalk": "^4.1.2", @@ -22109,6 +22534,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -22124,6 +22551,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -22140,6 +22569,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -22151,13 +22582,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-sass/node_modules/get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -22167,6 +22602,8 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -22176,6 +22613,8 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -22202,6 +22641,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -22214,6 +22655,8 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -22226,6 +22669,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "abbrev": "1" }, @@ -25123,6 +25568,8 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -25478,6 +25925,8 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "aggregate-error": "^3.0.0" }, @@ -26144,13 +26593,17 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -28016,6 +28469,8 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 4" } @@ -28157,12 +28612,13 @@ "devOptional": true }, "node_modules/sass": { - "version": "1.77.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.3.tgz", - "integrity": "sha512-WJHo+jmFp0dwRuymPmIovuxHaBntcCyja5hCB0yYY9wWrViEp4kF5Cdai98P72v6FzroPuABqu+ddLMbQWmwzA==", + "version": "1.80.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.1.tgz", + "integrity": "sha512-9lBwDZ7j3y/1DKj5Ec249EVGo5CVpwnzIyIj+cqlCjKkApLnzsJ/l9SnV4YnORvW9dQwQN+gQvh/mFZ8CnDs7Q==", "dev": true, "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", + "@parcel/watcher": "^2.4.1", + "chokidar": "^4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -28178,6 +28634,8 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz", "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "glob": "^7.0.0", "lodash": "^4.17.11", @@ -28228,6 +28686,34 @@ } } }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -28273,6 +28759,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz", "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "js-base64": "^2.4.9", "source-map": "^0.7.3" @@ -28917,7 +29405,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/set-function-length": { "version": "1.2.2", @@ -29099,6 +29589,8 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -29120,6 +29612,8 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -29134,6 +29628,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -29323,6 +29819,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "minipass": "^3.1.1" }, @@ -29387,6 +29885,8 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "readable-stream": "^2.0.1" } @@ -29743,6 +30243,8 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -29819,6 +30321,8 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -29827,7 +30331,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/temp-dir": { "version": "3.0.0", @@ -30338,7 +30844,9 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/ts-api-utils": { "version": "1.3.0", @@ -30903,6 +31411,8 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "unique-slug": "^3.0.0" }, @@ -30915,6 +31425,8 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4" }, @@ -32146,6 +32658,8 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } diff --git a/package.json b/package.json index 3d49805b5..5b94d6416 100644 --- a/package.json +++ b/package.json @@ -109,12 +109,11 @@ "jest-image-snapshot": "^6.4.0", "jest-puppeteer": "^8.0.6", "mini-css-extract-plugin": "^2.7.5", - "node-sass": "^8.0.0", "prettier": "^3.2.5", "puppeteer": "^19.8.3", "react-router-dom": "^6.22.3", "remark-slug": "^7.0.1", - "sass": "^1.77.3", + "sass": "^1.80.1", "sass-loader": "^13.2.2", "semantic-release": "^22.0.12", "stream-browserify": "^3.0.0", diff --git a/webpack.common.js b/webpack.common.js index f51805fb0..efd871602 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -46,7 +46,16 @@ module.exports = { }, { test: /\.scss$/, - use: [ExtractCSS.loader, 'css-loader', 'sass-loader'], + use: [ + ExtractCSS.loader, + 'css-loader', + { + loader: 'sass-loader', + options: { + implementation: require('sass'), + }, + }, + ], }, { test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/, From 8c96e923d9f0423504551bb0e9748c045dff66ca Mon Sep 17 00:00:00 2001 From: Kelly Joseph Price Date: Mon, 21 Oct 2024 17:02:05 -0700 Subject: [PATCH 3/4] fix: rollback html fixes (#996) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![PR App][icn]][demo] | :-------------------:| ## 🧰 Changes Rollback attempts at fixing html. The prior attempts did not correctly handle block level elements. :hanky: ## 🧬 QA & Testing - [Broken on production][prod]. - [Working in this PR app][demo]. [demo]: https://markdown-pr-PR_NUMBER.herokuapp.com [prod]: https://SUBDOMAIN.readme.io [icn]: https://user-images.githubusercontent.com/886627/160426047-1bee9488-305a-4145-bb2b-09d8b757d38a.svg --- __tests__/compilers/compatability.test.tsx | 6 +++--- processor/compile/compatibility.ts | 16 ++-------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/__tests__/compilers/compatability.test.tsx b/__tests__/compilers/compatability.test.tsx index cfc0001f0..9d0d8049f 100644 --- a/__tests__/compilers/compatability.test.tsx +++ b/__tests__/compilers/compatability.test.tsx @@ -151,7 +151,7 @@ This is some in progress `); }); - it('closes un-closed self closing tags', () => { + it.skip('closes un-closed self closing tags', () => { const md = ` This is a break:
`; @@ -159,7 +159,7 @@ This is a break:
expect(mdx(rdmd.mdast(md)).trim()).toBe('This is a break:
'); }); - it('closes un-closed self closing tags with a space', () => { + it.skip('closes un-closed self closing tags with a space', () => { const md = ` This is a break:
`; @@ -167,7 +167,7 @@ This is a break:
expect(mdx(rdmd.mdast(md)).trim()).toBe('This is a break:
'); }); - it('closes complex un-closed self closing tags', () => { + it.skip('closes complex un-closed self closing tags', () => { const md = ` This is an image: `; diff --git a/processor/compile/compatibility.ts b/processor/compile/compatibility.ts index d60df13a0..7ba832311 100644 --- a/processor/compile/compatibility.ts +++ b/processor/compile/compatibility.ts @@ -26,11 +26,8 @@ type CompatNodes = */ const html = (node: Html) => { const string = node.value.replaceAll(//gms, '{/*$1*/}'); - const hast = fromHtml(string); - const xast = toXast(hast); - const xml = toXml(xast, { closeEmptyElements: true }); - return xml.replace(/(.*)<\/body><\/html>/ms, '$1'); + return string; }; const figureToImageBlock = (node: any) => { @@ -79,16 +76,7 @@ const compatibility = (node: CompatNodes) => { case NodeTypes.reusableContent: return `<${node.tag} />`; case 'html': - // @note: We can't do anything about inline spans. remark only parses the - // tags as html, so we can't tell where the html starts or stops. But, we - // can still fix void nodes and comments. - // - // @ts-expect-error - return node.block || - node.value.match(//s) || - node.value.match(/<(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\b/) - ? html(node) - : node.value; + return html(node); case 'escape': return `\\${node.value}`; case 'figure': From af6e306595463f87dce8e9b415b5bb6478466c6e Mon Sep 17 00:00:00 2001 From: Trisha Le Date: Tue, 22 Oct 2024 11:29:02 -0700 Subject: [PATCH 4/4] feat: mermaid diagrams (#994) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![PR App][icn]][demo] | Fix RM-10840 :-------------------:|:----------: ## 🧰 Changes - Support `Mermaid` as a code block language - If it's a single diagram, render without a code block - If there's multiple tabs, render within a code block image image ## 🧬 QA & Testing - [Broken on production][prod]. - [Working in this PR app][demo]. [demo]: https://markdown-pr-PR_NUMBER.herokuapp.com [prod]: https://SUBDOMAIN.readme.io [icn]: https://user-images.githubusercontent.com/886627/160426047-1bee9488-305a-4145-bb2b-09d8b757d38a.svg --------- Co-authored-by: Kelly Joseph Price --- ...s-code-blocks-without-surprises-1-snap.png | Bin 212247 -> 214496 bytes components/Code/index.tsx | 4 + components/Code/style.scss | 6 + components/CodeTabs/index.tsx | 27 +- docs/built-in-components.mdx | 37 + docs/code-blocks.md | 1 + docs/mermaid.md | 100 ++ example/docs.ts | 6 + package-lock.json | 900 +++++++++++++++++- package.json | 1 + 10 files changed, 1045 insertions(+), 37 deletions(-) create mode 100644 docs/built-in-components.mdx create mode 100644 docs/mermaid.md diff --git a/__tests__/browser/__image_snapshots__/markdown-test-js-visual-regression-tests-rdmd-syntax-renders-code-blocks-without-surprises-1-snap.png b/__tests__/browser/__image_snapshots__/markdown-test-js-visual-regression-tests-rdmd-syntax-renders-code-blocks-without-surprises-1-snap.png index a1e6e36a924bc9da4636892787d26777b424d2e6..1257520371480fd47072c7d1ad3bf5d8876fca9c 100644 GIT binary patch delta 61262 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 PLX%ZImN5UwnXCT~#dS{P delta 58288 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

mnIzy4DD;GvE8yB?{6%%euiS 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 EUjbpT%>V!Z diff --git a/components/Code/index.tsx b/components/Code/index.tsx index e489094cf..5a15958bc 100644 --- a/components/Code/index.tsx +++ b/components/Code/index.tsx @@ -57,6 +57,10 @@ const Code = (props: CodeProps) => { const code = value ?? (Array.isArray(children) ? children[0] : children) ?? ''; const highlightedCode = syntaxHighlighter && code ? syntaxHighlighter(code, language, codeOpts, { mdx: true }) : code; + if (language === 'mermaid') { + return code; + } + return ( <> {copyButtons && } diff --git a/components/Code/style.scss b/components/Code/style.scss index bdcf50123..64a99aca9 100644 --- a/components/Code/style.scss +++ b/components/Code/style.scss @@ -84,6 +84,12 @@ word-wrap: normal; } + pre.mermaid { + &_single { + background: var(--color-bg-page, white); + } + } + kbd { background-color: $background; background-color: var(--d-code-background, $background); diff --git a/components/CodeTabs/index.tsx b/components/CodeTabs/index.tsx index c5769aeb6..236e5985c 100644 --- a/components/CodeTabs/index.tsx +++ b/components/CodeTabs/index.tsx @@ -1,9 +1,17 @@ import { uppercase } from '@readme/syntax-highlighter'; -import React from 'react'; +import React, { useEffect } from 'react'; +import mermaid from 'mermaid'; const CodeTabs = props => { const { children, theme } = props; + // set Mermaid theme + useEffect(() => { + mermaid.initialize({ + theme: theme === 'dark' ? 'dark' : 'default', + }); + }, [theme]) + function handleClick({ target }, index: number) { const $wrap = target.parentElement.parentElement; const $open = [].slice.call($wrap.querySelectorAll('.CodeTabs_active')); @@ -14,6 +22,21 @@ const CodeTabs = props => { codeblocks[index].classList.add('CodeTabs_active'); target.classList.add('CodeTabs_active'); + + if (target.value === 'mermaid') { + const $openMermaid = [].slice.call($wrap.querySelectorAll('.mermaid')); + $openMermaid.forEach((el: Element) => el.classList.remove('mermaid')); + codeblocks[index].classList.add('mermaid'); + mermaid.contentLoaded(); + } + } + + // render single Mermaid diagram + if (!Array.isArray(children) && children.props?.children.props.lang === 'mermaid') { + const value = children.props.children.props.value; + return ( +

{value}
+ ) } return ( @@ -24,7 +47,7 @@ const CodeTabs = props => { /* istanbul ignore next */ return ( - ); diff --git a/docs/built-in-components.mdx b/docs/built-in-components.mdx new file mode 100644 index 000000000..f1946134e --- /dev/null +++ b/docs/built-in-components.mdx @@ -0,0 +1,37 @@ +## Built-In Components + +### Accordion + + + Lorem ipsum dolor sit amet, **consectetur adipiscing elit.** Ut enim ad minim veniam, quis nostrud exercitation + ullamco. Excepteur sint occaecat cupidatat non proident! + + +--- + +### Cards + + + + Neque porro quisquam est qui dolorem ipsum quia + + + *Lorem ipsum dolor sit amet, consectetur adipiscing elit* + + + > Ut enim ad minim veniam, quis nostrud ullamco + + + **Excepteur sint occaecat cupidatat non proident** + + + +--- + +### Tabs + + + Welcome to the content that you can only see inside the first Tab. + Here's content that's only inside the second Tab. + Here's content that's only inside the third Tab. + diff --git a/docs/code-blocks.md b/docs/code-blocks.md index 34da9792d..078c5c94d 100644 --- a/docs/code-blocks.md +++ b/docs/code-blocks.md @@ -87,6 +87,7 @@ We support syntax highlighting on a number of languages: | Liquid | `liquid` | | Lua | `lua` | | Markdown | `markdown` | +| Mermaid | `mermaid` | | Objective-C | `objc`, `objectivec`, | | Objective-C++ | `objc++`, `objcpp`, `objectivecpp`, `objectivecplusplus`, | | OCaml | `ocaml`, `ml` | diff --git a/docs/mermaid.md b/docs/mermaid.md new file mode 100644 index 000000000..601cea1eb --- /dev/null +++ b/docs/mermaid.md @@ -0,0 +1,100 @@ +--- +title: 'Mermaid Diagrams' +category: 5fdf7610134322007389a6ed +hidden: false +--- + +## Examples + +### Single Diagram + +```mermaid + graph LR + A --- B + B-->C[fa:fa-ban forbidden] + B-->D(fa:fa-spinner); +``` + +```mermaid + sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop HealthCheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +### Multiple Tabs + +```mermaid + --- + title: Animal example + --- + classDiagram + note "From Duck till Zebra" + Animal <|-- Duck + note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" + Animal <|-- Fish + Animal <|-- Zebra + Animal : +int age + Animal : +String gender + Animal: +isMammal() + Animal: +mate() + class Duck{ + +String beakColor + +swim() + +quack() + } + class Fish{ + -int sizeInFeet + -canEat() + } + class Zebra{ + +bool is_wild + +run() + } +``` +```mermaid + stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +``` +```mermaid + pie title Pets adopted by volunteers + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +``` + +```mermaid diagram + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` +```syntax + journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me +``` diff --git a/example/docs.ts b/example/docs.ts index f5111a808..189effd9e 100644 --- a/example/docs.ts +++ b/example/docs.ts @@ -23,6 +23,10 @@ import lists from '../docs/lists.md'; // @ts-ignore import mdxComponents from '../docs/mdx-components.mdx'; // @ts-ignore +import builtInComponents from '../docs/built-in-components.mdx'; +// @ts-ignore +import mermaid from '../docs/mermaid.md'; +// @ts-ignore import sanitizingTests from '../docs/sanitizing-tests.md'; // @ts-ignore import tableOfContentsTests from '../docs/table-of-contents-tests.md'; @@ -47,6 +51,8 @@ const fixtures = Object.entries({ imageTests, lists, mdxComponents, + builtInComponents, + mermaid, sanitizingTests, tableOfContentsTests, tables, diff --git a/package-lock.json b/package-lock.json index 0b619b809..268c6e053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "lodash.kebabcase": "^4.1.1", "mdast-util-find-and-replace": "^3.0.1", "mdast-util-phrasing": "^4.1.0", + "mermaid": "^11.3.0", "path-browserify": "^1.0.1", "process": "^0.11.10", "prop-types": "^15.8.1", @@ -142,6 +143,26 @@ "node": ">=6.0.0" } }, + "node_modules/@antfu/install-pkg": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", + "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "dependencies": { + "package-manager-detector": "^0.2.0", + "tinyexec": "^0.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@ardatan/sync-fetch": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", @@ -2162,6 +2183,45 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz", + "integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==" + }, + "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==", + "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==", + "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==" + }, + "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==" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -3597,6 +3657,46 @@ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, + "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==" + }, + "node_modules/@iconify/utils": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.33.tgz", + "integrity": "sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==", + "dependencies": { + "@antfu/install-pkg": "^0.4.0", + "@antfu/utils": "^0.7.10", + "@iconify/types": "^2.0.0", + "debug": "^4.3.6", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "mlly": "^1.7.1" + } + }, + "node_modules/@iconify/utils/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==" + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -4549,6 +4649,14 @@ "react": ">=16" } }, + "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==", + "dependencies": { + "langium": "3.0.0" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -8990,9 +9098,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -10340,6 +10448,30 @@ "node": "*" } }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "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==", + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -10692,6 +10824,11 @@ "typedarray": "^0.0.6" } }, + "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==" + }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -10949,6 +11086,14 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "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==", + "dependencies": { + "layout-base": "^1.0.0" + } + }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -11331,6 +11476,471 @@ "node": ">=0.8" } }, + "node_modules/cytoscape": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.2.tgz", + "integrity": "sha512-oICxQsjW8uSaRmn4UK/jkczKOqTrVqt5/1WL0POiJUT2EKNc9STM4hYFHv917yu55aTBMFNRzymlJhVAiWPCxw==", + "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==", + "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==", + "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==", + "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==" + }, + "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==", + "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/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "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/d3-dsv/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==", + "engines": { + "node": ">= 10" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "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==", + "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/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==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "engines": { + "node": ">=12" + } + }, + "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==", + "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/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "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": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", + "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", + "dependencies": { + "d3": "^7.8.2", + "lodash-es": "^4.17.21" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -11416,6 +12026,11 @@ "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -11629,6 +12244,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -11796,6 +12419,11 @@ "node": ">=12" } }, + "node_modules/dompurify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", + "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==" + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -15276,6 +15904,11 @@ "graphql": ">=0.11 <=16" } }, + "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==" + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -16125,7 +16758,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "devOptional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -16410,6 +17042,14 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, "node_modules/interpret": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", @@ -19658,12 +20298,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -19716,6 +20350,29 @@ "node": ">=4.0" } }, + "node_modules/katex": { + "version": "0.16.11", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", + "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "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==", + "engines": { + "node": ">= 12" + } + }, "node_modules/kebab-case": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.2.tgz", @@ -19731,6 +20388,11 @@ "json-buffer": "3.0.1" } }, + "node_modules/khroma": { + "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==" + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -19749,6 +20411,26 @@ "node": ">=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==" + }, + "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==", + "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/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -19777,6 +20459,11 @@ "shell-quote": "^1.8.1" } }, + "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==" + }, "node_modules/level-blobs": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", @@ -20071,7 +20758,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", - "dev": true, "dependencies": { "mlly": "^1.4.2", "pkg-types": "^1.0.3" @@ -20107,8 +20793,7 @@ "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 + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -21071,6 +21756,55 @@ "node": ">= 8" } }, + "node_modules/mermaid": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.3.0.tgz", + "integrity": "sha512-fFmf2gRXLtlGzug4wpIGN+rQdZ30M8IZEB1D3eZkXNqC7puhqeURBcD/9tbwXsqBO+A6Nzzo3MSSepmnw5xSeg==", + "dependencies": { + "@braintree/sanitize-url": "^7.0.1", + "@iconify/utils": "^2.1.32", + "@mermaid-js/parser": "^0.3.0", + "cytoscape": "^3.29.2", + "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.10", + "dayjs": "^1.11.10", + "dompurify": "^3.0.11 <3.1.7", + "katex": "^0.16.9", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^13.0.2", + "roughjs": "^4.6.6", + "stylis": "^4.3.1", + "ts-dedent": "^2.2.0", + "uuid": "^9.0.1" + } + }, + "node_modules/mermaid/node_modules/marked": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", + "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mermaid/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/meros": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz", @@ -22070,15 +22804,14 @@ "dev": true }, "node_modules/mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", - "dev": true, + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.2.tgz", + "integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==", "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.1", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" + "pkg-types": "^1.2.0", + "ufo": "^1.5.4" } }, "node_modules/mrmime": { @@ -25977,6 +26710,11 @@ "node": ">=6" } }, + "node_modules/package-manager-detector": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.2.tgz", + "integrity": "sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -26063,6 +26801,11 @@ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, + "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==" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -26113,8 +26856,7 @@ "node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "node_modules/pathval": { "version": "1.1.1", @@ -26374,14 +27116,13 @@ } }, "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", + "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" + "confbox": "^0.1.8", + "mlly": "^1.7.2", + "pathe": "^1.1.2" } }, "node_modules/pluralize": { @@ -26402,6 +27143,20 @@ "node": ">=4.0.0" } }, + "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==" + }, + "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==", + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -28499,6 +29254,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/rollup": { "version": "4.14.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.2.tgz", @@ -28533,6 +29293,17 @@ "fsevents": "~2.3.2" } }, + "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==", + "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-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -28555,6 +29326,11 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -28608,8 +29384,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.80.1", @@ -30166,6 +30941,11 @@ "inline-style-parser": "0.1.1" } }, + "node_modules/stylis": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", + "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -30642,6 +31422,11 @@ "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", "dev": true }, + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==" + }, "node_modules/tinypool": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.3.tgz", @@ -30860,6 +31645,14 @@ "typescript": ">=4.2.0" } }, + "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==", + "engines": { + "node": ">=6.10" + } + }, "node_modules/ts-loader": { "version": "9.5.1", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", @@ -31250,10 +32043,9 @@ } }, "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", - "dev": true + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" }, "node_modules/uglify-js": { "version": "3.17.4", @@ -32127,11 +32919,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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==", + "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==", + "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==", + "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==" + }, "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==" }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", diff --git a/package.json b/package.json index 5b94d6416..3aa847245 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "lodash.kebabcase": "^4.1.1", "mdast-util-find-and-replace": "^3.0.1", "mdast-util-phrasing": "^4.1.0", + "mermaid": "^11.3.0", "path-browserify": "^1.0.1", "process": "^0.11.10", "prop-types": "^15.8.1",