diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad0133b --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# oss-services + +Various open-source project services by Dudy. + +## Apps (`apps/`) + +### `apps/swc-plugins/` + +- Homepage: https://plugins.swc.rs + +This is a web app that lists all the plugins for the [swc](https://swc.rs) project. + +## Docs (`docs.`) + +### `docs/stc/` + +Documentation for the new TypeScript type checker, written in the Rust programming language. + +- HomePage: https://stc.dudy.dev diff --git a/apps/swc-plugins/package.json b/apps/swc-plugins/package.json index e9a7755..1de50be 100644 --- a/apps/swc-plugins/package.json +++ b/apps/swc-plugins/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev -p 30000", + "dev": "next dev -p 50000", "build": "next build", "start": "next start", "lint": "next lint" diff --git a/docs/stc/.eslintrc.json b/docs/stc/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/docs/stc/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/docs/stc/.gitignore b/docs/stc/.gitignore new file mode 100644 index 0000000..c87c9b3 --- /dev/null +++ b/docs/stc/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/docs/stc/README.md b/docs/stc/README.md new file mode 100644 index 0000000..df6a70e --- /dev/null +++ b/docs/stc/README.md @@ -0,0 +1,3 @@ +# DevMap + +개발자를 위한 로드맵입니다. diff --git a/docs/stc/next.config.js b/docs/stc/next.config.js new file mode 100644 index 0000000..ee2082d --- /dev/null +++ b/docs/stc/next.config.js @@ -0,0 +1,15 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + swcMinify: true, +}; + +const withNextra = require("nextra")({ + theme: "nextra-theme-docs", + themeConfig: "./theme.config.js", + flexsearch: { + codeblocks: false, + }, + unstable_staticImage: true, +}); +module.exports = withNextra(nextConfig); diff --git a/docs/stc/package.json b/docs/stc/package.json new file mode 100644 index 0000000..7f3ef1f --- /dev/null +++ b/docs/stc/package.json @@ -0,0 +1,34 @@ +{ + "name": "stc", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev -p 50001", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@vercel/analytics": "^0.1.5", + "chart.js": "4.1.2", + "chartjs-adapter-date-fns": "3.0.0", + "date-fns": "2.29.3", + "next": "13.0.6", + "nextra": "2.0.1", + "nextra-theme-docs": "2.0.1", + "react": "^18.0.0", + "react-chartjs-2": "5.2.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@types/node": "17.0.24", + "@types/react": "18.0.5", + "@types/react-dom": "18.0.1", + "autoprefixer": "^10.4.4", + "eslint": "8.13.0", + "eslint-config-next": "12.1.5", + "postcss": "^8.4.12", + "tailwindcss": "^3.0.24", + "typescript": "4.6.3" + } +} diff --git a/docs/stc/pages/_app.tsx b/docs/stc/pages/_app.tsx new file mode 100644 index 0000000..62375ed --- /dev/null +++ b/docs/stc/pages/_app.tsx @@ -0,0 +1,27 @@ +import "nextra-theme-docs/style.css"; + +import { Analytics } from "@vercel/analytics/react"; +import { NextPage } from "next"; +import { AppProps } from "next/app"; +import { ReactElement, ReactNode } from "react"; + +// https://nextjs.org/docs/basic-features/layouts#with-typescript + +export type NextPageWithLayout = NextPage & { + getLayout?: (page: ReactElement) => ReactNode; +}; + +type AppPropsWithLayout = AppProps & { + Component: NextPageWithLayout; +}; + +export default function Nextra({ Component, pageProps }: AppPropsWithLayout) { + const getLayout = Component.getLayout ?? ((page) => page); + + return getLayout( + <> + + + + ); +} diff --git a/docs/stc/pages/_meta.json b/docs/stc/pages/_meta.json new file mode 100644 index 0000000..7405741 --- /dev/null +++ b/docs/stc/pages/_meta.json @@ -0,0 +1,15 @@ +{ + "index": { + "title": "Introduction", + "type": "page", + "hidden": true + }, + "docs": { + "title": "Docs", + "type": "page" + }, + "blog": { + "title": "Blog", + "type": "page" + } +} diff --git a/docs/stc/pages/blog/_meta.json b/docs/stc/pages/blog/_meta.json new file mode 100644 index 0000000..76a91da --- /dev/null +++ b/docs/stc/pages/blog/_meta.json @@ -0,0 +1,3 @@ +{ + "this-week-in-stc": "Status updates" +} diff --git a/docs/stc/pages/blog/this-week-in-stc/_meta.json b/docs/stc/pages/blog/this-week-in-stc/_meta.json new file mode 100644 index 0000000..0e99bf2 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/_meta.json @@ -0,0 +1,26 @@ +{ + "frequency-change": "Frequency change", + "week-23": "Week 23", + "week-22": "Week 22", + "week-21": "Week 21", + "week-20": "Week 20", + "week-19": "Week 19", + "week-18": "Week 18", + "week-17": "Week 17", + "week-16": "Week 16", + "week-15": "Week 15", + "week-14": "Week 14", + "week-13": "Week 13", + "week-12": "Week 12", + "week-11": "Week 11", + "week-10": "Week 10", + "week-9": "Week 9", + "week-8": "Week 8", + "week-7": "Week 7", + "week-6": "Week 6", + "week-5": "Week 5", + "week-4": "Week 4", + "week-3": "Week 3", + "week-2": "Week 2", + "week-1": "Week 1" +} diff --git a/docs/stc/pages/blog/this-week-in-stc/frequency-change.mdx b/docs/stc/pages/blog/this-week-in-stc/frequency-change.mdx new file mode 100644 index 0000000..75f2872 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/frequency-change.mdx @@ -0,0 +1,9 @@ +--- +title: "Change to the frequency of update posts" +date: 2023/4/23 +description: "We are changing weekly blog post to monthly blog post." +author: kdy1 +--- + +We are changing weekly blog post to monthly blog post. +This is because we are going to focus on large tasks, which do not have much progress every week. diff --git a/docs/stc/pages/blog/this-week-in-stc/week-1.mdx b/docs/stc/pages/blog/this-week-in-stc/week-1.mdx new file mode 100644 index 0000000..76c2e6f --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-1.mdx @@ -0,0 +1,72 @@ +--- +title: "This week in stc, 1" +date: 2022/11/13 +description: "The first status update for stc" +author: kdy1 +--- + +I'm going to provide a weekly update for the status of [stc][]. +This is the first post. + +--- + +## TL;DR; + +Stats: + +``` +{ + required_error: 5155 => 4463, + matched_error: 4711 => 5421, + extra_error: 1983 => 999, + panic: 103 => 89, +} +``` + +This is the diff for [the last commit on November, 6](https://github.com/dudykr/stc/blob/c1e5e0949368f26d2453ed7420aea35edc405507/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on November, 13](https://github.com/dudykr/stc/blob/b451a2921766755bf94199f38489addd1d692897/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +Many people contributed to stc, either by contributing developer time or financially. + +![Contributors](/images/this-week-in-stc/1/contributors.png) + +This is a screenshot for 1 month because this is the first update. + +## Noticeable changes + +- [#284](https://github.com/dudykr/stc/pull/284): Make `fix()` shallow. + +This improve performance by margin. +`Type` of `stc` has some invariants to make it easier to handle. +One example of the invariants is that a union cannot include a union as an element, because it causes lots of troubles with the pattern matching of Rust. +There's a function named `fix`, which ensures that a type satisfies all of the invariants. +But previously, it was recursive and it was a costly operation. +It's now shallow and it does not recurse into `Union` nor `Intersection`. +Performance gain is noticeable. +The test execution with a x**debug build** previously took 1m 45s, but it now takes 1m 20s. + +- [#275](https://github.com/dudykr/stc/pull/275): Determine project structure for LSP. + +My plan is to provide a LSP for TypeScript after fixing all type inference bugs. +I want to make it testable, so I tried various structures. +While triage, I found a project structure which is testable. +I decided to use the `examples` directory of cargo to create a LSP binary which can be used for testing. +Basically, this structure allows **using exactly same code** for testing environment and the release build of stc LSP. + +Special thanks to Deno because I referred to the structure of Deno lsp a lot. + +- [#245](https://github.com/dudykr/stc/pull/245): Update swc. + +This is one of the tasks I wanted to do, but postponed due to the time. +Divy helped a lot, and I managed to update swc crates. +This introduced some regressions, but those are all fixed at the moment. + +- [#227](https://github.com/dudykr/stc/pull/227): Fix stack overflow of module loader. + +This patch fixes the issue which blocked people from trying stc on their own project. +`stc` could verify a huge TypeScript module if it does not have an import, but this patch reduces the restrictions for real-world project further. + +--- + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-10.mdx b/docs/stc/pages/blog/this-week-in-stc/week-10.mdx new file mode 100644 index 0000000..803e3e8 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-10.mdx @@ -0,0 +1,45 @@ +--- +title: "This week in stc, 10" +date: 2023/1/22 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4291 => 4248, + matched_error: 5814 => 5826, + extra_error: 1118 => 929, + panic: 29 => 20, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/fcf2e3c58eca78aa46fdbe4c16435225b9a2a663/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 1/22](https://github.com/dudykr/stc/blob/5442585ceda0487cb40307a24523b0c96d833d8e/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +We changed the way we count the number of errors to make it represent the actual progress more closely. + +## Contributions + +![Contributors](/images/this-week-in-stc/10/contributors.png) + +There were lots of Contributions this week. +Thank you! + +## Noticable changes + +### builtin update ([#528](https://github.com/dudykr/stc/pull/528)) + +We updated the builtin types to the latest version. + +### `csstype` ([#521](https://github.com/dudykr/stc/pull/521)) + +`stc` now can process `csstype` package without a false positive. + +--- + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-11.mdx b/docs/stc/pages/blog/this-week-in-stc/week-11.mdx new file mode 100644 index 0000000..d9e2b6a --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-11.mdx @@ -0,0 +1,31 @@ +--- +title: "This week in stc, 11" +date: 2023/1/29 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4248 => 4183, + matched_error: 5826 => 5891, + extra_error: 929 => 825, + panic: 20 => 18, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/5442585ceda0487cb40307a24523b0c96d833d8e/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 1/29](https://github.com/dudykr/stc/blob/14d5ac24b3c4324d6384ae5d207f4fef9e3ae1fb/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +## Contributions + +![Contributors](/images/this-week-in-stc/11/contributors.png) + +Thank you, everyone! + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-12.mdx b/docs/stc/pages/blog/this-week-in-stc/week-12.mdx new file mode 100644 index 0000000..bfbbd8b --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-12.mdx @@ -0,0 +1,37 @@ +--- +title: "This week in stc, 12" +date: 2023/2/5 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 5891 => 5881, + Bad (required): 4183 => 4193, + Bad (excess): 825 => 714, + Bad (panic): 18, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/14d5ac24b3c4324d6384ae5d207f4fef9e3ae1fb/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 2/5](https://github.com/dudykr/stc/blob/8ea5b02590550cdd7d1e6cbf53a54bc719be99a2/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). I took vacation this week, so there was a lot of progress. + +## Contributions + +![Contributors](/images/this-week-in-stc/12/contributors.png) + +There was one contributor this week, but he's a long-term contributor and he contributed a lot of code. Thank you! + +## Noticable changes + +### Change of the testing strategy + +I'm working to split the official conformance test suite from `tsc` into smaller unit tests. Once it's finished, progress will be much faster. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-13.mdx b/docs/stc/pages/blog/this-week-in-stc/week-13.mdx new file mode 100644 index 0000000..afa091e --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-13.mdx @@ -0,0 +1,34 @@ +--- +title: "This week in stc, 13" +date: 2023/2/12 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 5881 => 5912, + Bad (required): 4193 => 4162, + Bad (excess): 714 => 638, + Bad (panic): 18, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/8ea5b02590550cdd7d1e6cbf53a54bc719be99a2/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 2/12](https://github.com/dudykr/stc/blob/b5f1cf11908d89b2a82854249e6f296a0cb5109a/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +## Contributions + +![Contributors](/images/this-week-in-stc/13/contributors.png) + +There were so many contributions this week! +Thank you, everyone! + +## Noticable changes + +All works were about making stc more compatible with tsc, i.e. making type inference more correct. diff --git a/docs/stc/pages/blog/this-week-in-stc/week-14.mdx b/docs/stc/pages/blog/this-week-in-stc/week-14.mdx new file mode 100644 index 0000000..173a712 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-14.mdx @@ -0,0 +1,30 @@ +--- +title: "This week in stc, 14" +date: 2023/2/19 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 5912 => 5995, + Bad (required): 4162 => 3753, + Bad (excess): 638 => 927, + Bad (panic): 18 => 228, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/b5f1cf11908d89b2a82854249e6f296a0cb5109a/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 2/19](https://github.com/dudykr/stc/blob/ad91d8ac2936f9befb8dbffb43a687b77402318c/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +The `Bad (panic)` and `Bad (excess)` regressed because we enabled multi-file tests, but the loader for testing is not fully-featured and panics if it does not know how to load a depdendency. + +## Contributions + +![Contributors](/images/this-week-in-stc/14/contributors.png) + +Just like last week, there were lots of contributors. Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-15.mdx b/docs/stc/pages/blog/this-week-in-stc/week-15.mdx new file mode 100644 index 0000000..2f1d6b8 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-15.mdx @@ -0,0 +1,30 @@ +--- +title: "This week in stc, 15" +date: 2023/2/26 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 5995 => 6023, + Bad (required): 3753 => 3788, + Bad (excess): 927 => 1105, + Bad (panic): 228 => 100, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/ad91d8ac2936f9befb8dbffb43a687b77402318c/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 2/26](https://github.com/dudykr/stc/blob/24599a0028bc1089a940a73df1049a2125cf8d12/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +Although I (@kdy1) went a vacation this week, there were many progress thanks to contributors. + +## Contributions + +![Contributors](/images/this-week-in-stc/15/contributors.png) + +There were lots of contributors. Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-16.mdx b/docs/stc/pages/blog/this-week-in-stc/week-16.mdx new file mode 100644 index 0000000..f1c53a7 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-16.mdx @@ -0,0 +1,39 @@ +--- +title: "This week in stc, 16" +date: 2023/3/5 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6023 => 6135, + Bad (required): 3788 => 3866, + Bad (excess): 1105 => 867, + Bad (panic): 100 => 105, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/24599a0028bc1089a940a73df1049a2125cf8d12/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 3/5](https://github.com/dudykr/stc/blob/1fa615e2f3dce751ba0b371ff5cb6122f306c254/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +## Noticable changes + +### Test suite update ([#785](https://github.com/dudykr/stc/pull/785)) + +We update the test suite to the latest version, and that's why all numbers in the stats got bigger. + +### Lots of refactoring + +We did lots of refactoring this week, to make the further development easier. + +## Contributions + +![Contributors](/images/this-week-in-stc/16/contributors.png) + +There were lots of contributors. Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-17.mdx b/docs/stc/pages/blog/this-week-in-stc/week-17.mdx new file mode 100644 index 0000000..e4a4687 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-17.mdx @@ -0,0 +1,31 @@ +--- +title: "This week in stc, 17" +date: 2023/3/12 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6135 => 6161, + Bad (required): 3866 => 3840, + Bad (excess): 867 => 847, + Bad (panic): 105 => 107, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/1fa615e2f3dce751ba0b371ff5cb6122f306c254/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 3/12](https://github.com/dudykr/stc/blob/b918d5e0a9cf1a1b1d1cc6e1ff028ba40795817d/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +There was no many progress this work, but still some progress. + +## Contributions + +![Contributors](/images/this-week-in-stc/17/contributors.png) + +There were lots of contributors. Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-18.mdx b/docs/stc/pages/blog/this-week-in-stc/week-18.mdx new file mode 100644 index 0000000..bdf7c6e --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-18.mdx @@ -0,0 +1,32 @@ +--- +title: "This week in stc, 18" +date: 2023/3/19 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6161 => 6248, + Bad (required): 3840 => 3753, + Bad (excess): 847 => 703, + Bad (panic): 107 => 105, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/b918d5e0a9cf1a1b1d1cc6e1ff028ba40795817d/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 3/19](https://github.com/dudykr/stc/blob/6e52c07298905c8507729b7500d6262c28ef6004/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +The stats were drastically improved mainly because there are so many rules that have already been implemented. +**A test passes only when all relevant rules are implemented.** + +## Contributions + +![Contributors](/images/this-week-in-stc/18/contributors.png) + +Thank you all! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-19.mdx b/docs/stc/pages/blog/this-week-in-stc/week-19.mdx new file mode 100644 index 0000000..f0da341 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-19.mdx @@ -0,0 +1,37 @@ +--- +title: "This week in stc, 19" +date: 2023/3/26 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6248 => 6295, + Bad (required): 3753 => 3739, + Bad (excess): 703 => 820, + Bad (panic): 105 => 107, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/6e52c07298905c8507729b7500d6262c28ef6004/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 3/26](https://github.com/dudykr/stc/blob/0cdf38b9358728c3ac592baf2bbedc31c507be6f/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +Stats regressed because we updated SWC and now the tests for auto-accoessors are marked as extra errors (`Unimplemented`). + +## Noticable changes + +### SWC update ([#846](https://github.com/dudykr/stc/pull/846)) + +The previous version of SWC did not support auto-accoessors, but we updated SWC to the latest at the time of authoring PR and now it's parsed. + +## Contributions + +![Contributors](/images/this-week-in-stc/19/contributors.png) + +Thank you all! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-2.mdx b/docs/stc/pages/blog/this-week-in-stc/week-2.mdx new file mode 100644 index 0000000..66a7470 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-2.mdx @@ -0,0 +1,140 @@ +--- +title: "This week in stc, 2" +date: 2022/11/20 +description: "The second status update for stc" +author: kdy1 +--- + +This is the second status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +{ + required_error: 4463 => 4350, + matched_error: 5421 => 5534, + extra_error: 999 => 1051, + panic: 89 => 77, +} +``` + +This is the diff for [the last commit on November, 13](https://github.com/dudykr/stc/blob/b451a2921766755bf94199f38489addd1d692897/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on November, 20](https://github.com/dudykr/stc/blob/c897b03cf317a385d5ff0d90a3cd52f399af0a3f/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +`extra_error` means a false positive. In other words, it's the number of incorrect errors `stc` emits while it should not. +Reducing it is the primary focus, but it was increased because I fixed lots of panics. +If the analyzer panics while analyzing a test case, the stat becomes + +```rust +Stats { + required_error: required_error, + matched_error: 0, + extra_error: 0, + panic: 1 +} +``` + +When the panic is fixed, the analyzer may emit errors, and some of them are wrong. + +## Contributions + +![Contributors](/images/this-week-in-stc/2/contributors.png) + +There were some contributors this week. + +## Noticeable changes + +- [#315](https://github.com/dudykr/stc/pull/315): Groundwork for RAII-based context for errors. + +Debugging [stc][] is a very difficult task. +To help debugging, [stc][] emits some context information for each errors. + +It looks like the below. + +``` + x context: + | lhs = number; + | rhs = true; + | context: `fail!()` called from assign/mod.rs:1840 + | LHS (final): number; + | RHS (final): true; + | WrongArgType { + | span: Span { + | lo: BytePos( + | 941, + | ), + | hi: BytePos( + | 945, + | ), + | ctxt: #0, + | }, + | inner: AssignFailed { + | span: Span { + | lo: BytePos( + | 941, + | ), + | hi: BytePos( + | 945, + | ), + | ctxt: #0, + | }, + | cause: [], + | }, + | } + ,-[$DIR/tests/conformance/types/union/unionTypeConstructSignatures.ts:15:1] + 15 | new unionOfDifferentReturnType1(true); // error in type of parameter + : ^^^^ + `---- +``` + +Previously, these contexts are added by calling `.context` method on the `Result` or the `Error` type, like + +```rust +return Err(ErrorKind::AssignFailed { + span, + left: box to.clone(), + right: box rhs.clone(), + right_ident: opts.right_ident_span, + cause: vec![], +} +.context({ + format!( + "`fail!()` called from assign/mod.rs:{}\nLHS (final): {}\nRHS (final): {}", + line!(), + dump_type_as_string(&self.cm, to), + dump_type_as_string(&self.cm, rhs) + ) +})) +``` + +But this is problematic because it does not attach additional context if I simply add `?` operator to an expression. + +I found a better solution. +Once migration is done, it will look like + +```rust +let _ctx = ctx!(format!("convert_type_to_type_lit: {:?}", ty)); + +let ty = self.normalize(Some(span), ty, NormalizeTypeOpts { ..Default::default() })?; + +call_other()?; +``` + +instead of + +```rust +let ty = self.normalize(Some(span), ty, NormalizeTypeOpts { ..Default::default() }) + .with_context(|| format!("convert_type_to_type_lit: {:?}", ty)); + +call_other().with_context(|| format!("convert_type_to_type_lit: {:?}", ty))?; +``` + +which is too verbose. + +Additionally, this allows tracking errors directly reported. +In previous version there were no concept of stack. +So there was no way to add full context to errors generated from the current code path. +The new version will allow faster debugging. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-20.mdx b/docs/stc/pages/blog/this-week-in-stc/week-20.mdx new file mode 100644 index 0000000..f5a0ceb --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-20.mdx @@ -0,0 +1,33 @@ +--- +title: "This week in stc, 20" +date: 2023/4/2 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6295 => 6315, + Bad (required): 3739 => 3719, + Bad (excess): 820 => 772, + Bad (panic): 107 => 106, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/0cdf38b9358728c3ac592baf2bbedc31c507be6f/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 4/2](https://github.com/dudykr/stc/blob/e8cf60f9aa3fafb41cbf8261d6b82e60b4ce40f4/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +Although I (`@kdy1`) was very busy, I and the contributors managed to fix some bugs. +Actually, I'm working on a new log viewer project for stc. +It will take some time, but I'm sure that it will make the development of stc much easier. + +## Contributions + +![Contributors](/images/this-week-in-stc/20/contributors.png) + +Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-21.mdx b/docs/stc/pages/blog/this-week-in-stc/week-21.mdx new file mode 100644 index 0000000..159fdad --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-21.mdx @@ -0,0 +1,30 @@ +--- +title: "This week in stc, 21" +date: 2023/4/9 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6315 => 6326, + Bad (required): 3719 => 3708, + Bad (excess): 772, + Bad (panic): 106 => 73, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/e8cf60f9aa3fafb41cbf8261d6b82e60b4ce40f4/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 4/9](https://github.com/dudykr/stc/blob/82a663b6d6773023969416dcfe84de0cac5f5bd3/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +We fixed lots of excess errors, but the number regressed while fixing panics. + +## Contributions + +![Contributors](/images/this-week-in-stc/21/contributors.png) + +Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-22.mdx b/docs/stc/pages/blog/this-week-in-stc/week-22.mdx new file mode 100644 index 0000000..44bcffa --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-22.mdx @@ -0,0 +1,30 @@ +--- +title: "This week in stc, 22" +date: 2023/4/16 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + Matched: 6326 => 6356, + Bad (required): 3708 => 3678, + Bad (excess): 772 => 744, + Bad (panic): 73 => 72, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/82a663b6d6773023969416dcfe84de0cac5f5bd3/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 4/16](https://github.com/dudykr/stc/blob/dce9791936c6488a187fc988d51361b327fe189d/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +I (`@kdy1`) was too busy because of swc, so I couldn't work on stc a lot. + +## Contributions + +![Contributors](/images/this-week-in-stc/22/contributors.png) + +Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-23.mdx b/docs/stc/pages/blog/this-week-in-stc/week-23.mdx new file mode 100644 index 0000000..0e0f6bf --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-23.mdx @@ -0,0 +1,36 @@ +--- +title: "This week in stc, 23" +date: 2023/4/16 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc](https://github.com/dudykr/stc), the new TypeScript type checker written in Rust. + +## TL;DR; + +``` +Stats { + Matched: 6356 => 6377, + Bad (required): 3678 => 3658, + Bad (excess): 766, + Bad (panic): 74, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/dce9791936c6488a187fc988d51361b327fe189d/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 4/23](https://github.com/dudykr/stc/blob/18624b68e031b617b1e697705b1059273a6e7d8a/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +The stats regressed because we updated our test suite to match the latest version of TypeScript. + +# Noticable changes + +## Language server + +![Screenshot](/images/this-week-in-stc/23/lsp.png) + +We are working on a language server for stc. It is still in early stage, and the main goal is to help us to debug the type checker. + +## Contributions + +![Contributors](/images/this-week-in-stc/23/contributors.png) + +Thank you! diff --git a/docs/stc/pages/blog/this-week-in-stc/week-3.mdx b/docs/stc/pages/blog/this-week-in-stc/week-3.mdx new file mode 100644 index 0000000..1aadd1b --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-3.mdx @@ -0,0 +1,36 @@ +--- +title: "This week in stc, 3" +date: 2022/11/27 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4350 => 4338, + matched_error: 5534 => 5546, + extra_error: 1051 => 991, + panic: 77 => 74, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/c897b03cf317a385d5ff0d90a3cd52f399af0a3f/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on November, 27](https://github.com/dudykr/stc/blob/41b76af273b27a172b6f8e50d7ea36f1bf0eda46/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +![Contributors](/images/this-week-in-stc/3/contributors.png) + +There were one contributor this week. +I took a vacation and I went on a trip, so I didn't have lots of time to do stc work. + +## Noticeable changes + +There was no noticable change this week. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-4.mdx b/docs/stc/pages/blog/this-week-in-stc/week-4.mdx new file mode 100644 index 0000000..46d0e72 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-4.mdx @@ -0,0 +1,36 @@ +--- +title: "This week in stc, 4" +date: 2022/12/04 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4338 => 4301, + matched_error: 5546 => 5583, + extra_error: 991 => 869, + panic: 74, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/41b76af273b27a172b6f8e50d7ea36f1bf0eda46/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on December, 4](https://github.com/dudykr/stc/blob/d8b1673e3f145af6a0cb3eb896b02a6798e87df5/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +![Contributors](/images/this-week-in-stc/4/contributors.png) + +There were one contributor this week. + +## Noticeable changes + +There was no noticable change this week. +All PRs were steady jobs. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-5.mdx b/docs/stc/pages/blog/this-week-in-stc/week-5.mdx new file mode 100644 index 0000000..cd43bf4 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-5.mdx @@ -0,0 +1,36 @@ +--- +title: "This week in stc, 5" +date: 2022/12/11 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4301 => 4294, + matched_error: 5583 => 5590, + extra_error: 869 => 817, + panic: 74, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/d8b1673e3f145af6a0cb3eb896b02a6798e87df5/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on December, 11](https://github.com/dudykr/stc/blob/23dd114529f10c5d645887c055cd396d1bfe7b11/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +![Contributors](/images/this-week-in-stc/5/contributors.png) + +There were two contributors this week. + +## Noticeable changes + +There was no noticable change this week. +All PRs were steady jobs. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-6.mdx b/docs/stc/pages/blog/this-week-in-stc/week-6.mdx new file mode 100644 index 0000000..09abbb7 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-6.mdx @@ -0,0 +1,36 @@ +--- +title: "This week in stc, 6" +date: 2022/12/18 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4294 => 4270, + matched_error: 5590 => 5614, + extra_error: 817 => 761, + panic: 74, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/23dd114529f10c5d645887c055cd396d1bfe7b11/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on December, 11](https://github.com/dudykr/stc/blob/d6dc481fd29c9e6e93e268dbd4f11a7b3883a6d2/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +![Contributors](/images/this-week-in-stc/6/contributors.png) + +There were lots of contributors this week. +Thank you! + +## Noticeable change + +There were no noticable change, but I'm working on [#414: Ignore wrong test refs](https://github.com/dudykr/stc/pull/414), which makes the testing system stricter. I expect a productivity boost from it. + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-7.mdx b/docs/stc/pages/blog/this-week-in-stc/week-7.mdx new file mode 100644 index 0000000..d33317b --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-7.mdx @@ -0,0 +1,37 @@ +--- +title: "This week in stc, 7" +date: 2023/1/1 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. +Note that preivous status update was skipped, because I was too busy. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4270 => 4245, + matched_error: 5614 => 5629, + extra_error: 761 => 743, + panic: 74 => 72, +} +``` + +Note: This is the change of two weeks. + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/d6dc481fd29c9e6e93e268dbd4f11a7b3883a6d2/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 1/1](https://github.com/dudykr/stc/blob/977a433daae8d5dd51312e2c8921912008396b17/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) + +## Contributions + +![Contributors](/images/this-week-in-stc/7/contributors.png) + +There were more contributors previous week, but GitHub does not provide the data for the previous week. +Thank you, everyone! + +--- + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-8.mdx b/docs/stc/pages/blog/this-week-in-stc/week-8.mdx new file mode 100644 index 0000000..40f62d4 --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-8.mdx @@ -0,0 +1,34 @@ +--- +title: "This week in stc, 8" +date: 2023/1/8 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4245 => 4237, + matched_error: 5639 => 5647, + extra_error: 743 => 735, + panic: 72 => 71, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/977a433daae8d5dd51312e2c8921912008396b17/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 1/8](https://github.com/dudykr/stc/blob/b021e8958481fedb12c648f070963b59ccb28128/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). + +## Contributions + +![Contributors](/images/this-week-in-stc/8/contributors.png) + +There were 3 contributors this week. +Thank you! + +--- + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/blog/this-week-in-stc/week-9.mdx b/docs/stc/pages/blog/this-week-in-stc/week-9.mdx new file mode 100644 index 0000000..235b74c --- /dev/null +++ b/docs/stc/pages/blog/this-week-in-stc/week-9.mdx @@ -0,0 +1,49 @@ +--- +title: "This week in stc, 9" +date: 2023/1/15 +description: "The status update for stc" +author: kdy1 +--- + +This is the status update for [stc][], the new TypeScript type checker written in Rust. + +## TL;DR; + +Stats: + +``` +Stats { + required_error: 4237 => 4291, + matched_error: 5647 => 5814, + extra_error: 735 => 1118, + panic: 71 => 29, +} +``` + +This is the diff for [the commit used for previous status update](https://github.com/dudykr/stc/blob/b021e8958481fedb12c648f070963b59ccb28128/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug) and [the last commit on 1/15](https://github.com/dudykr/stc/blob/fcf2e3c58eca78aa46fdbe4c16435225b9a2a663/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug). +We changed the way we count the number of errors to make it represent the actual progress more closely. + +## Contributions + +![Contributors](/images/this-week-in-stc/9/contributors.png) + +There were lots of Contributions this week. +Thank you! + +## Noticable changes + +### Change the way we count errors ([#487](https://github.com/dudykr/stc/pull/487)) + +There are matrix tests in the test suite of `tsc`. +Those tests have one input, but have multiple results, depending on the directives like `@target: es5, es2015, esnext`. +Previously, we counted them as one test. +But we now count the matrix tests, which has multiple result, once per the result. +That's the main reason why the number of `extra_error` increased. + +### Remove panic ([#468](https://github.com/dudykr/stc/pull/468), [#493](https://github.com/dudykr/stc/pull/493)) + +We replaced `panic!` calls with `Unimplemented` errors to make the stats more accurate. + +--- + +[stc]: https://github.com/dudykr/stc diff --git a/docs/stc/pages/docs/_meta.json b/docs/stc/pages/docs/_meta.json new file mode 100644 index 0000000..17158f5 --- /dev/null +++ b/docs/stc/pages/docs/_meta.json @@ -0,0 +1,5 @@ +{ + "getting-started": "Getting Started", + "roadmap": "Roadmap", + "contributing": "Contributing" +} diff --git a/docs/stc/pages/docs/contributing.mdx b/docs/stc/pages/docs/contributing.mdx new file mode 100644 index 0000000..402ad01 --- /dev/null +++ b/docs/stc/pages/docs/contributing.mdx @@ -0,0 +1,215 @@ +# Contributing + +## Configuring development environment + +1. Clone stc. +2. Run `yarn` in the cloned directory. +3. (mac only) Install `zld` + +```sh +brew install michaeleisel/zld/zld +``` + +## Testing system + +If the filename of a test case file described below starts with `.`, it means it's ignored. + +## Project structure + +### crates/stc_ts_file_analyzer + +Frequently used scripts: + +- `./scripts/fast.sh` + +If no argument is specified, this runs all `base` tests declared in the file analyzer crate. +This script is fast, so you can run it frequently. + +**Note**: This command does not enable logging because it's too verbose. + +--- + +- `./scripts/base.sh` + +If no argument is specified, this runs all `base` tests declared in the file analyzer crate. +This command is slow, so it's recommended to use it like + +```bash +./scripts/base.sh pass_only_tests__pass_only__conformance__types__tuple__variadicTuples1__3_ts +``` + +You can get the test name by invoking `./scripts/fast.sh`, `./scripts/test.sh` (from stc_ts_type_checker), or `./scripts/check.sh` (from stc_ts_type_checker). + +--- + +- `./scripts/auto-unignore.sh` + +This command can be used to select a task to work on, or verify that your change make more `pass-only`/`errors` tests pass. + +**Note**: This command does not enable logging because it's too verbose. + +#### tests/base.rs + +This test file declares 5 testing systems, `pass`, `pass-only`, `errors`, `tsc`, and `visualize`. +You should prefer shell scripts in `scripts` directory over direct `cargo test` invokation. + +#### tests/pass-only + +Any TypeScript file in this directory will be evaluated, and the test systme will ensure that `stc` doesn't emit any error. + +#### tests/pass + +Any TypeScript file in this directory will be evaluated, the test systme will ensure that `stc` doesn't emit any error, and the type of expressions are printed to a `.swc-stderr` file. + +#### tests/errors + +Any TypeScript file in this directory will be evaluated, and the test systme will ensure that `stc` emit at least one error. +In future, we will check the error message as well. + +#### tests/tsc + +Any TypeScript file in this directory will be evaluated, and the result will be compared with the official TypeScript compiler. + +#### tests/visualize + +Any TypeScript file in this directory will be evaluated, and the type of expressions are printed to a `.swc-stderr` file. + +### crates/stc_ts_type_checker + +- `./scripts/check.sh` + +You can invoke this script to run all conformance tests, and update stats. + +**Note**: This command invokes base tests described above, and aborts if it fails. + +--- + +- `./scripts/test.sh` + +You can invoke single conformance test case by using `./scripts/test.sh` from `./crates/stc_ts_type_checker`. + +```bash +./scripts/test.sh staticIndexSignature +``` + +will run conformance tests which have `staticIndexSignature` in their test name. + +**Note**: This command invokes base tests described above, and aborts if it fails. + +#### tests/tsc.rs + +This test suite declares the test suite ported from the official TypeScript compiler, `tsc`. +You are not expected to run this test via `cargo test` directly, and instead you should use `./scripts/test.sh` or `./scripts/check.sh`. + +## Workflows + +Regardless of the workflow you choose, you should run `./scripts/check.sh` when you are done. + +### Using unit test (in file analyzer) + +You can run + +```bash +./scripts/auto-unignore.sh +``` + +to get list of tasks to work on. +Select one test input file from the terminal, and reanme it to not have `.` as prefix in their filename. + +e.g. + +- `.foo/1.ts` => `foo/1.ts` +- `foo/.1.ts` => `foo/1.ts` + +Then, you can run + +```bash +./scripts/fast.sh +``` + +to run the tests in a timely manner, or + +```bash +./scripts/base.sh $test_name +``` + +to get log messages. + +### Using conformance test suite + +First, you should find a erroneous test case. +Typically, you can find one by running `./scripts/check.sh` from `./crates/stc_ts_type_checker`. +It will print enormous amount of log. +You should focus on false-positives. +Each error will contain lots of information required for debugging, with `context:` prefix. + +If you want, you can copy the file to `./crates/stc_ts_file_analyzer/tests/...` and run `./scripts/fast.sh` from the file analyzer. +It's recommended to reduce the test input as much as possible, because `stc` prints enormous amount of log messages in a debug build. + +Otherwise, you can use `./scripts/test.sh` from `./crates/stc_ts_type_checker` to run a single test case. +As `./scripts/test.sh` prints log messags, debugging will be easier. + +### Finding test cases with specific excessive errors + +You can run `./scripts/errors/find-extra.sh TS2322` from `./crates/stc_ts_type_checker` to find all false-positive `TS2322` errors. + +## Debugging tips + +### Rustdoc + +You can look at [the rustdoc for `Analyzer`](https://rustdoc.stc.dudy.dev/stc_ts_file_analyzer/analyzer/struct.Analyzer.html) to get list of implemented operations. + +### Debugging with vscode Debugger + +Please copy `.vscode/launch.template.json` and rename it to `.vscode/launch.json`. + +In `launch.json`, you can pass the path of the `.ts` file you want to check to the `args` field. +Then, you can run the type checker with debugger from the debugger panel. + +### `print_backtrace()` + +If you think some code should not be invoked but seems like it's invoked, you can use `print_backtrace()`. +It will print the stack trace of the current thread. +Note that it will automatically exclude useless items from the stack trace. + +### Matching over `Type` + +To avoid performance drop caused by cloning, `stc` uses `Type::Arc` to share memory. +But there's a downside for this - you have to call `normalize()` while matching. + +e.g. + +```rust +match ty.normalize() { +} +``` + +Note that this is different from `self.normalize(ty)` of `Analyzer`, which is used to expand special types like references, queries, mapped, etc.. + +### Finding problematic code + +Look at the `context:` in the error output, and search it from repository using substring of the context. +e.g. `tried to assign to a template type` means the error comes from [analyzer/assign/mod.rs#L2208](https://github.com/dudykr/stc/blob/1c73ce5fa87ec789ead108c5c6876e8089b1e5de/crates/stc_ts_file_analyzer/src/analyzer/assign/mod.rs#L2208) + +## Troubleshooting + +### Windows - `unstable on this platform` + +In case if you're using Windows and getting an error + +```sh +error: `-Csplit-debuginfo=unpacked` is unstable on this platform +``` + +as a workaround you can try using [WSL](https://learn.microsoft.com/en-us/windows/wsl/). + +### `failed to execute command` + +If you're getting something like + +```sh +--- stderr + thread 'main' panicked at 'failed to execute command: No such file or directory (os error 2)', /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/tikv-jemalloc-sys-0.5.2+5.3.0-patched/build.rs:326:19 +``` + +try running `apt-get install make`. ([related issue](https://github.com/gnzlbg/jemallocator/issues/148#issuecomment-619373613)) diff --git a/docs/stc/pages/docs/getting-started.mdx b/docs/stc/pages/docs/getting-started.mdx new file mode 100644 index 0000000..9e35bb5 --- /dev/null +++ b/docs/stc/pages/docs/getting-started.mdx @@ -0,0 +1,3 @@ +# Getting Started + +## Installation diff --git a/docs/stc/pages/docs/roadmap.mdx b/docs/stc/pages/docs/roadmap.mdx new file mode 100644 index 0000000..bb447e2 --- /dev/null +++ b/docs/stc/pages/docs/roadmap.mdx @@ -0,0 +1,39 @@ +# Roadmap to the alpha + +`(*)` in title means it's subject to change. + +## Goals regarding `tsc` + +As there's no specification of TypeScript, the stc team will treat `tsc` as the specification. +It means if the behavior of `tsc` and `stc` is different, `stc` will be fixed to match `tsc`, unless explicitly stated in this document. + +## Plans + +### A new language server + +This is the primary goal, and once this is ready, the alpha will be released. + +For this, + +- the inference of types should be correct +- there should be no false-positive errors +- typings should be loaded correctly + +### Only `isolatedModules: true` + +Ref: https://www.typescriptlang.org/tsconfig#isolatedModules + +This is required for proper parallelization. `const enums` are fine if they are imported using module syntax, but **TypeScript namespaces cannot be analyzed in parallel**. + +### Better error message + +### Better language server + +### (\*) A compiler for typings + +- This is subject to change. + +Many typing packages, including `@types/node`, cannot be analyzed in parallel because they use `namespace` and globals. +So we can use only one thread for each typing package. +But actually, this operation is easily cachable, and I expect the effect of caching to be significant. +So I think it's worth it to provide a pre-compile API for typing packages. diff --git a/docs/stc/pages/index.mdx b/docs/stc/pages/index.mdx new file mode 100644 index 0000000..38c2564 --- /dev/null +++ b/docs/stc/pages/index.mdx @@ -0,0 +1,200 @@ +--- +title: "STC: Speedy type checker" +--- + +import { useSSG } from 'nextra/ssg' +import { Chart as ChartJS, Colors, LinearScale, TimeScale, PointElement, LineElement, Title, Tooltip, Legend } from 'chart.js' +import 'chartjs-adapter-date-fns' +import { Line } from 'react-chartjs-2' + +export const normalizeJson = (string) => { + // REFER: see https://stackoverflow.com/a/60708762 + return string.replace(/[\s\n\r\t]/gs, '').replace(/,([}\]])/gs, '$1') + .replace(/([,{\[]|)(?:("|'|)([\w_\- ]+)\2:|)("|'|)(.*?)\4([,}\]])/gs, (str, start, q1, index, q2, item, end) => { + item = item.replace(/"/gsi, '').trim() + if (index) { index = '"'+index.replace(/"/gsi, '').trim() + '"' } + if (!item.match(/^[0-9]+(\.[0-9]+|)$/) && !['true','false'].includes(item)) { item = '"' + item + '"' } + if (index) { return start + index + ':' + item + end } + return start + item + end + }) +} + +export const getCommits = async (ghToken, owner, repo, filename) => { + if (!ghToken || !ghToken.length) { + throw new Error('Github API token missing! Please configure it with the environment variable GITHUB_TOKEN') + } + let commitsPromises = Array(5).fill(null).map(async (_, i) => { + const response = await fetch(`https://api.github.com/repos/${owner}/${repo}/commits?path=${filename}&since=2022-11-11T00:00:00Z&per_page=20&page=${i + 1}`, { + headers: { + 'Authorization': `token ${ghToken}`, + }, + }) + return await response.json() + }) + +const json = (await Promise.all(commitsPromises)).reduce((acc, curr) => acc.concat(curr)) +return json +} + +export const getStats = async (ghToken, owner, repo, filename) => { + const commits = await getCommits(ghToken, owner, repo, filename) + const versionFetchers = commits.map(commit => fetch(`https://raw.githubusercontent.com/${owner}/${repo}/${commit.sha}/${filename}`)) + const allVersions = await Promise.all(versionFetchers) + const rawStats = await Promise.all(allVersions.map(r => r.text())) + const stats = rawStats.map((statText, index) => { + const stringifiedJson = statText.replace('Stats ', '') + const stat = JSON.parse(normalizeJson(stringifiedJson)) + return { + ...stat, + date: commits[index].commit.author.date, + } + }) + return stats +} + +export const getChartableStats = async (ghToken, owner, repo, filename) => { + const options = { + responsive: true, + maintainAspectRatio: false, + spanGaps: true, + showLine: true, + scales: { + x: { + type: 'time', + time: { + unit: 'week', + }, + }, + }, + plugins: { + legend: { + position: 'top' + }, + title: { + display: false, + text: 'STC Development Progress' + }, + } + } + +const stats = await getStats(ghToken, owner, repo, filename) + +const data = { +datasets: [ +{ +label: 'Required', +data: stats.map((s) => { +return { +x: s.date, +y: s.required_error, +} +}), +borderColor: '#57A0E5', +backgroundColor: '#57A0E5', +}, +{ +label: 'Matched', +data: stats.map((s) => { +return { +x: s.date, +y: s.matched_error, +} +}), +borderColor: '#9268F6', +backgroundColor: '#9268F6', +}, +{ +label: 'Extra', +data: stats.map((s) => { +return { +x: s.date, +y: s.extra_error, +} +}), +borderColor: '#6DBEBF', +backgroundColor: '#6DBEBF', +}, +{ +label: 'Panic', +data: stats.map((s) => { +return { +x: s.date, +y: s.panic, +} +}), +borderColor: '#ED6D85', +backgroundColor: '#ED6D85', +}, +] +} + +return { +options, +data, +} +} + +export const getStaticProps = async ({ params }) => { + const ghToken = process.env.GITHUB_TOKEN; + const owner = "dudykr"; + const repo = "stc"; + const filename = "crates/stc_ts_type_checker/tests/tsc-stats.rust-debug"; + const data = await getChartableStats(ghToken, owner, repo, filename); + return { + props: { + // We add an `ssg` field to the page props, + // which will be provided to the Nextra `useSSG` hook. + ssg: { + content: btoa(JSON.stringify(data)), + }, + }, + // The page will be considered as stale and regenerated every 1 hour. + revalidate: 60 * 60, + }; +}; + +export const Stats = () => { + ChartJS.register( + LinearScale, + TimeScale, + PointElement, + LineElement, + Title, + Tooltip, + Legend + ); + // Get the data from SSG, and render it as a component. + const { content } = useSSG(); + const { options, data } = JSON.parse( + decodeURIComponent(escape(atob(content))) + ); + return ( + + ); +}; + +The fastest TypeScript type checker written in Rust. + +## Status + +`stc` is under active development. +To provide an estimate of the progress, we provide historical statistics. + + + +- Required means a true negative, which is a type error that is + not reported by `stc`. + +- Matched means a true positive, which is a type error that is reported + by `stc` and correct. + +- Extra means a false positive. In other words, it's the number + of incorrect errors `stc` emits while it should not. + +- Panic means the analyzer panicked while validating input files, + due to a logic bug. diff --git a/docs/stc/public/favicon.ico b/docs/stc/public/favicon.ico new file mode 100644 index 0000000..718d6fe Binary files /dev/null and b/docs/stc/public/favicon.ico differ diff --git a/docs/stc/public/images/this-week-in-stc/1/contributors.png b/docs/stc/public/images/this-week-in-stc/1/contributors.png new file mode 100644 index 0000000..e715893 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/1/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/10/contributors.png b/docs/stc/public/images/this-week-in-stc/10/contributors.png new file mode 100644 index 0000000..5facefe Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/10/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/11/contributors.png b/docs/stc/public/images/this-week-in-stc/11/contributors.png new file mode 100644 index 0000000..4b73217 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/11/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/12/contributors.png b/docs/stc/public/images/this-week-in-stc/12/contributors.png new file mode 100644 index 0000000..38dcee4 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/12/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/13/contributors.png b/docs/stc/public/images/this-week-in-stc/13/contributors.png new file mode 100644 index 0000000..95b3508 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/13/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/14/contributors.png b/docs/stc/public/images/this-week-in-stc/14/contributors.png new file mode 100644 index 0000000..15bcc3e Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/14/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/15/contributors.png b/docs/stc/public/images/this-week-in-stc/15/contributors.png new file mode 100644 index 0000000..1b00d3e Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/15/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/16/contributors.png b/docs/stc/public/images/this-week-in-stc/16/contributors.png new file mode 100644 index 0000000..b3cebaa Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/16/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/17/contributors.png b/docs/stc/public/images/this-week-in-stc/17/contributors.png new file mode 100644 index 0000000..9bb1c1b Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/17/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/18/contributors.png b/docs/stc/public/images/this-week-in-stc/18/contributors.png new file mode 100644 index 0000000..ea537f1 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/18/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/19/contributors.png b/docs/stc/public/images/this-week-in-stc/19/contributors.png new file mode 100644 index 0000000..e955282 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/19/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/2/contributors.png b/docs/stc/public/images/this-week-in-stc/2/contributors.png new file mode 100644 index 0000000..0cc67d3 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/2/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/20/contributors.png b/docs/stc/public/images/this-week-in-stc/20/contributors.png new file mode 100644 index 0000000..928d271 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/20/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/21/contributors.png b/docs/stc/public/images/this-week-in-stc/21/contributors.png new file mode 100644 index 0000000..19920cc Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/21/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/22/contributors.png b/docs/stc/public/images/this-week-in-stc/22/contributors.png new file mode 100644 index 0000000..993083e Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/22/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/23/contributors.png b/docs/stc/public/images/this-week-in-stc/23/contributors.png new file mode 100644 index 0000000..1af3dd8 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/23/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/23/lsp.png b/docs/stc/public/images/this-week-in-stc/23/lsp.png new file mode 100644 index 0000000..ded0fc1 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/23/lsp.png differ diff --git a/docs/stc/public/images/this-week-in-stc/3/contributors.png b/docs/stc/public/images/this-week-in-stc/3/contributors.png new file mode 100644 index 0000000..2854df2 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/3/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/4/contributors.png b/docs/stc/public/images/this-week-in-stc/4/contributors.png new file mode 100644 index 0000000..8d7ca8b Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/4/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/5/contributors.png b/docs/stc/public/images/this-week-in-stc/5/contributors.png new file mode 100644 index 0000000..5adea28 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/5/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/6/contributors.png b/docs/stc/public/images/this-week-in-stc/6/contributors.png new file mode 100644 index 0000000..72b0a86 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/6/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/7/contributors.png b/docs/stc/public/images/this-week-in-stc/7/contributors.png new file mode 100644 index 0000000..d8ed6e9 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/7/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/8/contributors.png b/docs/stc/public/images/this-week-in-stc/8/contributors.png new file mode 100644 index 0000000..f3a79d8 Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/8/contributors.png differ diff --git a/docs/stc/public/images/this-week-in-stc/9/contributors.png b/docs/stc/public/images/this-week-in-stc/9/contributors.png new file mode 100644 index 0000000..8761fde Binary files /dev/null and b/docs/stc/public/images/this-week-in-stc/9/contributors.png differ diff --git a/docs/stc/styles.css b/docs/stc/styles.css new file mode 100644 index 0000000..cd45743 --- /dev/null +++ b/docs/stc/styles.css @@ -0,0 +1,53 @@ +@tailwind utilities; + +.docs-search > span { + width: 100%; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header span { + display: inline-block; +} +.algolia-autocomplete .ds-dropdown-menu { + width: 500px; + min-width: 300px; + max-width: calc(100vw - 50px); +} + +[data-reach-skip-link] { + @apply sr-only; +} + +[data-reach-skip-link]:focus { + @apply not-sr-only fixed top-0 z-50 ml-6 mt-2 bg-white px-6 py-2 text-lg outline-none focus:ring; +} + +code { + @apply text-sm; +} + +.prism-code.language-diff .inserted.prefix, +.prism-code.language-diff .deleted.prefix { + user-select: none; + @apply opacity-30; +} + +.prism-code.language-diff .inserted.line { + @apply text-green-600; +} +.prism-code.language-diff .deleted.line { + @apply text-red-600; +} + +/* Hack to make the TOC links look better by adjusting kerning */ +article > main + div a.font-semibold { + font-weight: 500; + letter-spacing: -0.01rem; +} + +.dark .invert-on-dark { + filter: invert(1) brightness(1.8); +} + +.dark .docs-container select { + background: rgba(17, 17, 17, 1); +} diff --git a/docs/stc/theme.config.js b/docs/stc/theme.config.js new file mode 100644 index 0000000..792dffb --- /dev/null +++ b/docs/stc/theme.config.js @@ -0,0 +1,99 @@ +import { useConfig } from "nextra-theme-docs"; + +const Head = () => { + const { frontMatter, title } = useConfig(); + return ( + <> + + {/* Favicons, meta */} + + + + + + + + + + + + + + + + + + + + ); +}; +/** @type import('nextra-theme-docs').DocsThemeConfig */ +export default { + project: { + link: "https://github.com/dudykr/stc", + }, + editLink: { + text: "Edit this page on GitHub", + }, + docsRepositoryBase: "https://github.com/dudykr/oss-docs/blob/main", + useNextSeoProps() { + return { + titleTemplate: "%s – stc", + }; + }, + toc: { + float: true, + }, + head: , + logo: () => ( + <> + stc + + ), + footer: { + text: () => <>{`MIT ${new Date().getFullYear()} © Dudy.`}, + }, + + navigation: { + prev: true, + next: true, + }, +}; diff --git a/docs/stc/tsconfig.json b/docs/stc/tsconfig.json new file mode 100644 index 0000000..51e47a9 --- /dev/null +++ b/docs/stc/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2015", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "baseUrl": ".", + "paths": { + "~/*": ["*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0a84d8..c04da0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,6 +69,67 @@ importers: specifier: 5.2.2 version: 5.2.2 + docs/stc: + dependencies: + '@vercel/analytics': + specifier: ^0.1.5 + version: 0.1.5(react@18.2.0) + chart.js: + specifier: 4.1.2 + version: 4.1.2 + chartjs-adapter-date-fns: + specifier: 3.0.0 + version: 3.0.0(chart.js@4.1.2)(date-fns@2.29.3) + date-fns: + specifier: 2.29.3 + version: 2.29.3 + next: + specifier: 13.0.6 + version: 13.0.6(react-dom@18.2.0)(react@18.2.0) + nextra: + specifier: 2.0.1 + version: 2.0.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0) + nextra-theme-docs: + specifier: 2.0.1 + version: 2.0.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.0.0 + version: 18.2.0 + react-chartjs-2: + specifier: 5.2.0 + version: 5.2.0(chart.js@4.1.2)(react@18.2.0) + react-dom: + specifier: ^18.0.0 + version: 18.2.0(react@18.2.0) + devDependencies: + '@types/node': + specifier: 17.0.24 + version: 17.0.24 + '@types/react': + specifier: 18.0.5 + version: 18.0.5 + '@types/react-dom': + specifier: 18.0.1 + version: 18.0.1 + autoprefixer: + specifier: ^10.4.4 + version: 10.4.16(postcss@8.4.30) + eslint: + specifier: 8.13.0 + version: 8.13.0 + eslint-config-next: + specifier: 12.1.5 + version: 12.1.5(eslint@8.13.0)(next@13.0.6)(typescript@4.6.3) + postcss: + specifier: ^8.4.12 + version: 8.4.30 + tailwindcss: + specifier: ^3.0.24 + version: 3.3.3 + typescript: + specifier: 4.6.3 + version: 4.6.3 + packages/utils: devDependencies: '@typescript-eslint/eslint-plugin': @@ -87,14 +148,20 @@ packages: /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - dev: false + + /@babel/runtime-corejs3@7.22.15: + resolution: {integrity: sha512-SAj8oKi8UogVi6eXQXKNPu8qZ78Yzy7zawrlTr0M+IuW/g8Qe9gVDhGcF9h1S69OyACpYoLxEzpjs1M15sI5wQ==} + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: 3.32.2 + regenerator-runtime: 0.14.0 + dev: true /@babel/runtime@7.22.15: resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.49.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -146,6 +213,18 @@ packages: resolution: {integrity: sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@headlessui/react@1.7.17(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==} + engines: {node: '>=10'} + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + dependencies: + client-only: 0.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@humanwhocodes/config-array@0.10.7: resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==} engines: {node: '>=10.10.0'} @@ -167,6 +246,17 @@ packages: transitivePeerDependencies: - supports-color + /@humanwhocodes/config-array@0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@humanwhocodes/gitignore-to-minimatch@1.0.2: resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} dev: true @@ -185,39 +275,221 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.19 - dev: false /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: false /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: false /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: false /@jridgewell/trace-mapping@0.3.19: resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + + /@kurkle/color@0.3.2: + resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + dev: false + + /@mdx-js/mdx@2.3.0: + resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/mdx': 2.0.7 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@mdx-js/react@2.3.0(react@18.2.0): + resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} + peerDependencies: + react: '>=16' + dependencies: + '@types/mdx': 2.0.7 + '@types/react': 18.2.22 + react: 18.2.0 + dev: false + + /@napi-rs/simple-git-android-arm-eabi@0.1.9: + resolution: {integrity: sha512-9D4JnfePMpgL4pg9aMUX7/TIWEUQ+Tgx8n3Pf8TNCMGjUbImJyYsDSLJzbcv9wH7srgn4GRjSizXFJHAPjzEug==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-android-arm64@0.1.9: + resolution: {integrity: sha512-Krilsw0gPrrASZzudNEl9pdLuNbhoTK0j7pUbfB8FRifpPdFB/zouwuEm0aSnsDXN4ftGrmGG82kuiR/2MeoPg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-darwin-arm64@0.1.9: + resolution: {integrity: sha512-H/F09nDgYjv4gcFrZBgdTKkZEepqt0KLYcCJuUADuxkKupmjLdecMhypXLk13AzvLW4UQI7NlLTLDXUFLyr2BA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-darwin-x64@0.1.9: + resolution: {integrity: sha512-jBR2xS9nVPqmHv0TWz874W0m/d453MGrMeLjB+boK5IPPLhg3AWIZj0aN9jy2Je1BGVAa0w3INIQJtBBeB6kFA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-linux-arm-gnueabihf@0.1.9: + resolution: {integrity: sha512-3n0+VpO4YfZxndZ0sCvsHIvsazd+JmbSjrlTRBCnJeAU1/sfos3skNZtKGZksZhjvd+3o+/GFM8L7Xnv01yggA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-linux-arm64-gnu@0.1.9: + resolution: {integrity: sha512-lIzf0KHU2SKC12vMrWwCtysG2Sdt31VHRPMUiz9lD9t3xwVn8qhFSTn5yDkTeG3rgX6o0p5EKalfQN5BXsJq2w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-linux-arm64-musl@0.1.9: + resolution: {integrity: sha512-KQozUoNXrxrB8k741ncWXSiMbjl1AGBGfZV21PANzUM8wH4Yem2bg3kfglYS/QIx3udspsT35I9abu49n7D1/w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-linux-x64-gnu@0.1.9: + resolution: {integrity: sha512-O/Niui5mnHPcK3iYC3ui8wgERtJWsQ3Y74W/09t0bL/3dgzGMl4oQt0qTj9dWCsnoGsIEYHPzwCBp/2vqYp/pw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-linux-x64-musl@0.1.9: + resolution: {integrity: sha512-L9n+e8Wn3hKr3RsIdY8GaB+ry4xZ4BaGwyKExgoB8nDGQuRUY9oP6p0WA4hWfJvJnU1H6hvo36a5UFPReyBO7A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git-win32-arm64-msvc@0.1.9: + resolution: {integrity: sha512-Z6Ja/SZK+lMvRWaxj7wjnvSbAsGrH006sqZo8P8nxKUdZfkVvoCaAWr1r0cfkk2Z3aijLLtD+vKeXGlUPH6gGQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: false + optional: true + + /@napi-rs/simple-git-win32-x64-msvc@0.1.9: + resolution: {integrity: sha512-VAZj1UvC+R2MjKOD3I/Y7dmQlHWAYy4omhReQJRpbCf+oGCBi9CWiIduGqeYEq723nLIKdxP7XjaO0wl1NnUww==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@napi-rs/simple-git@0.1.9: + resolution: {integrity: sha512-qKzDS0+VjMvVyU28px+C6zlD1HKy83NIdYzfMQWa/g/V1iG/Ic8uwrS2ihHfm7mp7X0PPrmINLiTTi6ieUIKfw==} + engines: {node: '>= 10'} + optionalDependencies: + '@napi-rs/simple-git-android-arm-eabi': 0.1.9 + '@napi-rs/simple-git-android-arm64': 0.1.9 + '@napi-rs/simple-git-darwin-arm64': 0.1.9 + '@napi-rs/simple-git-darwin-x64': 0.1.9 + '@napi-rs/simple-git-linux-arm-gnueabihf': 0.1.9 + '@napi-rs/simple-git-linux-arm64-gnu': 0.1.9 + '@napi-rs/simple-git-linux-arm64-musl': 0.1.9 + '@napi-rs/simple-git-linux-x64-gnu': 0.1.9 + '@napi-rs/simple-git-linux-x64-musl': 0.1.9 + '@napi-rs/simple-git-win32-arm64-msvc': 0.1.9 + '@napi-rs/simple-git-win32-x64-msvc': 0.1.9 + dev: false + + /@next/env@13.0.6: + resolution: {integrity: sha512-yceT6DCHKqPRS1cAm8DHvDvK74DLIkDQdm5iV+GnIts8h0QbdHvkUIkdOvQoOODgpr6018skbmSQp12z5OWIQQ==} /@next/env@13.5.2: resolution: {integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==} dev: false + /@next/eslint-plugin-next@12.1.5: + resolution: {integrity: sha512-Cnb8ERC5bNKBFrnMH6203sp/b0Y78QRx1XsFu+86oBtDBmQmOFoHu7teQjHm69ER73XKK3aGaeoLiXacHoUFsg==} + dependencies: + glob: 7.1.7 + dev: true + /@next/eslint-plugin-next@13.5.2: resolution: {integrity: sha512-Ew8DOUerJYGRo8pI84SVwn9wxxx8sH92AanCXSkkLJM2W0RJEWy+BqWSCfrlA/3ZIczEl4l4o4lOeTGBPYfBJg==} dependencies: glob: 7.1.7 dev: false + /@next/swc-android-arm-eabi@13.0.6: + resolution: {integrity: sha512-FGFSj3v2Bluw8fD/X+1eXIEB0PhoJE0zfutsAauRhmNpjjZshLDgoXMWm1jTRL/04K/o9gwwO2+A8+sPVCH1uw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@next/swc-android-arm64@13.0.6: + resolution: {integrity: sha512-7MgbtU7kimxuovVsd7jSJWMkIHBDBUsNLmmlkrBRHTvgzx5nDBXogP0hzZm7EImdOPwVMPpUHRQMBP9mbsiJYQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@next/swc-darwin-arm64@13.0.6: + resolution: {integrity: sha512-AUVEpVTxbP/fxdFsjVI9d5a0CFn6NVV7A/RXOb0Y+pXKIIZ1V5rFjPwpYfIfyOo2lrqgehMNQcyMRoTrhq04xg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@next/swc-darwin-arm64@13.5.2: resolution: {integrity: sha512-7eAyunAWq6yFwdSQliWMmGhObPpHTesiKxMw4DWVxhm5yLotBj8FCR4PXGkpRP2tf8QhaWuVba+/fyAYggqfQg==} engines: {node: '>= 10'} @@ -227,6 +499,14 @@ packages: dev: false optional: true + /@next/swc-darwin-x64@13.0.6: + resolution: {integrity: sha512-SasCDJlshglsPnbzhWaIF6VEGkQy2NECcAOxPwaPr0cwbbt4aUlZ7QmskNzgolr5eAjFS/xTr7CEeKJtZpAAtQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@next/swc-darwin-x64@13.5.2: resolution: {integrity: sha512-WxXYWE7zF1ch8rrNh5xbIWzhMVas6Vbw+9BCSyZvu7gZC5EEiyZNJsafsC89qlaSA7BnmsDXVWQmc+s1feSYbQ==} engines: {node: '>= 10'} @@ -236,6 +516,30 @@ packages: dev: false optional: true + /@next/swc-freebsd-x64@13.0.6: + resolution: {integrity: sha512-6Lbxd9gAdXneTkwHyYW/qtX1Tdw7ND9UbiGsGz/SP43ZInNWnW6q0au4hEVPZ9bOWWRKzcVoeTBdoMpQk9Hx9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@next/swc-linux-arm-gnueabihf@13.0.6: + resolution: {integrity: sha512-wNdi5A519e1P+ozEuYOhWPzzE6m1y7mkO6NFwn6watUwO0X9nZs7fT9THmnekvmFQpaZ6U+xf2MQ9poQoCh6jQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@next/swc-linux-arm64-gnu@13.0.6: + resolution: {integrity: sha512-e8KTRnleQY1KLk5PwGV5hrmvKksCc74QRpHl5ffWnEEAtL2FE0ave5aIkXqErsPdXkiKuA/owp3LjQrP+/AH7Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@next/swc-linux-arm64-gnu@13.5.2: resolution: {integrity: sha512-URSwhRYrbj/4MSBjLlefPTK3/tvg95TTm6mRaiZWBB6Za3hpHKi8vSdnCMw5D2aP6k0sQQIEG6Pzcfwm+C5vrg==} engines: {node: '>= 10'} @@ -245,6 +549,14 @@ packages: dev: false optional: true + /@next/swc-linux-arm64-musl@13.0.6: + resolution: {integrity: sha512-/7RF03C3mhjYpHN+pqOolgME3guiHU5T3TsejuyteqyEyzdEyLHod+jcYH6ft7UZ71a6TdOewvmbLOtzHW2O8A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@next/swc-linux-arm64-musl@13.5.2: resolution: {integrity: sha512-HefiwAdIygFyNmyVsQeiJp+j8vPKpIRYDlmTlF9/tLdcd3qEL/UEBswa1M7cvO8nHcr27ZTKXz5m7dkd56/Esg==} engines: {node: '>= 10'} @@ -254,6 +566,14 @@ packages: dev: false optional: true + /@next/swc-linux-x64-gnu@13.0.6: + resolution: {integrity: sha512-kxyEXnYHpOEkFnmrlwB1QlzJtjC6sAJytKcceIyFUHbCaD3W/Qb5tnclcnHKTaFccizZRePXvV25Ok/eUSpKTw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@next/swc-linux-x64-gnu@13.5.2: resolution: {integrity: sha512-htGVVroW0tdHgMYwKWkxWvVoG2RlAdDXRO1RQxYDvOBQsaV0nZsgKkw0EJJJ3urTYnwKskn/MXm305cOgRxD2w==} engines: {node: '>= 10'} @@ -263,6 +583,14 @@ packages: dev: false optional: true + /@next/swc-linux-x64-musl@13.0.6: + resolution: {integrity: sha512-N0c6gubS3WW1oYYgo02xzZnNatfVQP/CiJq2ax+DJ55ePV62IACbRCU99TZNXXg+Kos6vNW4k+/qgvkvpGDeyA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@next/swc-linux-x64-musl@13.5.2: resolution: {integrity: sha512-UBD333GxbHVGi7VDJPPDD1bKnx30gn2clifNJbla7vo5nmBV+x5adyARg05RiT9amIpda6yzAEEUu+s774ldkw==} engines: {node: '>= 10'} @@ -272,6 +600,14 @@ packages: dev: false optional: true + /@next/swc-win32-arm64-msvc@13.0.6: + resolution: {integrity: sha512-QjeMB2EBqBFPb/ac0CYr7GytbhUkrG4EwFWbcE0vsRp4H8grt25kYpFQckL4Jak3SUrp7vKfDwZ/SwO7QdO8vw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@next/swc-win32-arm64-msvc@13.5.2: resolution: {integrity: sha512-Em9ApaSFIQnWXRT3K6iFnr9uBXymixLc65Xw4eNt7glgH0eiXpg+QhjmgI2BFyc7k4ZIjglfukt9saNpEyolWA==} engines: {node: '>= 10'} @@ -281,6 +617,14 @@ packages: dev: false optional: true + /@next/swc-win32-ia32-msvc@13.0.6: + resolution: {integrity: sha512-EQzXtdqRTcmhT/tCq81rIwE36Y3fNHPInaCuJzM/kftdXfa0F+64y7FAoMO13npX8EG1+SamXgp/emSusKrCXg==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@next/swc-win32-ia32-msvc@13.5.2: resolution: {integrity: sha512-TBACBvvNYU+87X0yklSuAseqdpua8m/P79P0SG1fWUvWDDA14jASIg7kr86AuY5qix47nZLEJ5WWS0L20jAUNw==} engines: {node: '>= 10'} @@ -290,6 +634,14 @@ packages: dev: false optional: true + /@next/swc-win32-x64-msvc@13.0.6: + resolution: {integrity: sha512-pSkqZ//UP/f2sS9T7IvHLfEWDPTX0vRyXJnAUNisKvO3eF3e1xdhDX7dix/X3Z3lnN4UjSwOzclAI87JFbOwmQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@next/swc-win32-x64-msvc@13.5.2: resolution: {integrity: sha512-LfTHt+hTL8w7F9hnB3H4nRasCzLD/fP+h4/GUVBTxrkMJOnh/7OZ0XbYDKO/uuWwryJS9kZjhxcruBiYwc5UDw==} engines: {node: '>= 10'} @@ -317,31 +669,118 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@reach/skip-nav@0.17.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wkkpQK3ffczzGHis6TaUvpOabuAL9n9Kh5vr4h56XPIJP3X77VcHUDk7MK3HbV1mTgamGxc9Hbd1sXKSWLu3yA==} + peerDependencies: + react: ^16.8.0 || 17.x + react-dom: ^16.8.0 || 17.x + dependencies: + '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tslib: 2.6.2 + dev: false + + /@reach/utils@0.17.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-M5y8fCBbrWeIsxedgcSw6oDlAMQDkl5uv3VnMVJ7guwpf4E48Xlh1v66z/1BgN/WYe2y8mB/ilFD2nysEfdGeA==} + peerDependencies: + react: ^16.8.0 || 17.x + react-dom: ^16.8.0 || 17.x + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tiny-warning: 1.0.3 + tslib: 2.6.2 + dev: false + + /@rushstack/eslint-patch@1.0.8: + resolution: {integrity: sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==} + dev: true + /@rushstack/eslint-patch@1.4.0: resolution: {integrity: sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg==} dev: false + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.6.2 + /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 dev: false + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.1 + dev: false + + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + dependencies: + '@types/ms': 0.7.31 + dev: false + + /@types/estree-jsx@1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} + dependencies: + '@types/estree': 1.0.1 + dev: false + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: false + + /@types/hast@2.3.6: + resolution: {integrity: sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + /@types/mdast@3.0.12: + resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /@types/mdx@2.0.7: + resolution: {integrity: sha512-BG4tyr+4amr3WsSEmHn/fXPqaCba/AYZ7dsaQTiavihQunHSIxk+uAtqsjvicNpyHN6cm+B9RVrUOtW9VzIKHw==} dev: false + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + + /@types/node@17.0.24: + resolution: {integrity: sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g==} + dev: true + /@types/node@20.6.3: resolution: {integrity: sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==} dev: false /@types/prop-types@15.7.6: resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==} - dev: false + + /@types/react-dom@18.0.1: + resolution: {integrity: sha512-jCwTXvHtRLiyVvKm9aEdHXs8rflVOGd5Sl913JZrPshfXjn8NYsTNZOz70bCsA31IR0TOqwi3ad+X4tSCBoMTw==} + dependencies: + '@types/react': 18.2.22 + dev: true /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} @@ -349,22 +788,32 @@ packages: '@types/react': 18.2.22 dev: false + /@types/react@18.0.5: + resolution: {integrity: sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ==} + dependencies: + '@types/prop-types': 15.7.6 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + dev: true + /@types/react@18.2.22: resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} dependencies: '@types/prop-types': 15.7.6 '@types/scheduler': 0.16.3 csstype: 3.1.2 - dev: false /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: false /@types/semver@7.5.1: resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: true + /@types/unist@2.0.8: + resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + dev: false + /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.49.0)(typescript@5.1.6): resolution: {integrity: sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -394,6 +843,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.10.1(eslint@8.13.0)(typescript@4.6.3): + resolution: {integrity: sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.10.1 + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/typescript-estree': 5.10.1(typescript@4.6.3) + debug: 4.3.4 + eslint: 8.13.0 + typescript: 4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@6.5.0(eslint@8.49.0)(typescript@5.1.6): resolution: {integrity: sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -436,6 +905,14 @@ packages: - supports-color dev: false + /@typescript-eslint/scope-manager@5.10.1: + resolution: {integrity: sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/visitor-keys': 5.10.1 + dev: true + /@typescript-eslint/scope-manager@6.5.0: resolution: {integrity: sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -463,10 +940,36 @@ packages: - supports-color dev: true + /@typescript-eslint/types@5.10.1: + resolution: {integrity: sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/types@6.5.0: resolution: {integrity: sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==} engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@5.10.1(typescript@4.6.3): + resolution: {integrity: sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.10.1 + '@typescript-eslint/visitor-keys': 5.10.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.6.3) + typescript: 4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@6.5.0(typescript@5.1.6): resolution: {integrity: sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -528,6 +1031,14 @@ packages: - typescript dev: true + /@typescript-eslint/visitor-keys@5.10.1: + resolution: {integrity: sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.10.1 + eslint-visitor-keys: 3.4.3 + dev: true + /@typescript-eslint/visitor-keys@6.5.0: resolution: {integrity: sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -535,6 +1046,14 @@ packages: '@typescript-eslint/types': 6.5.0 eslint-visitor-keys: 3.4.3 + /@vercel/analytics@0.1.5(react@18.2.0): + resolution: {integrity: sha512-/k9N8Ea3Yc5A52GlkjzUEbi2vE/izClrOf++ryBkxEfrZM/OZwtHkdNw/QExZ1h/B67RCZLK7bCOnKKrhG7gTg==} + peerDependencies: + react: ^16.8||^17||^18 + dependencies: + react: 18.2.0 + dev: false + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -579,6 +1098,13 @@ packages: engines: {node: '>=12'} dev: true + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -592,7 +1118,6 @@ packages: /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -600,15 +1125,35 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: false + + /arg@1.0.0: + resolution: {integrity: sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==} dev: false /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 dev: false /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /aria-query@4.2.2: + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} + dependencies: + '@babel/runtime': 7.22.15 + '@babel/runtime-corejs3': 7.22.15 + dev: true + /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: @@ -620,7 +1165,6 @@ packages: dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 - dev: false /array-includes@3.1.7: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} @@ -631,7 +1175,6 @@ packages: es-abstract: 1.22.2 get-intrinsic: 1.2.1 is-string: 1.0.7 - dev: false /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} @@ -656,7 +1199,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 - dev: false /array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} @@ -666,7 +1208,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 - dev: false /array.prototype.tosorted@1.1.2: resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} @@ -689,17 +1230,20 @@ packages: get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: false /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} - dev: false /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false + /asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} dependencies: @@ -720,17 +1264,18 @@ packages: picocolors: 1.0.0 postcss: 8.4.30 postcss-value-parser: 4.2.0 - dev: false /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: false /axe-core@4.8.1: resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} engines: {node: '>=4'} - dev: false + + /axobject-query@2.2.0: + resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} + dev: true /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} @@ -738,13 +1283,16 @@ packages: dequal: 2.0.3 dev: false + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: false /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -767,7 +1315,6 @@ packages: electron-to-chromium: 1.4.526 node-releases: 2.0.13 update-browserslist-db: 1.0.12(browserslist@4.21.10) - dev: false /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -781,7 +1328,6 @@ packages: dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 - dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -790,10 +1336,21 @@ packages: /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - dev: false /caniuse-lite@1.0.30001538: resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /chalk@2.3.0: + resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 4.5.0 dev: false /chalk@4.1.2: @@ -803,6 +1360,39 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + + /chart.js@4.1.2: + resolution: {integrity: sha512-9L1w6WLPq6ztiWVVOYtDtpo0CUsBKDWPrUEdwChAyzczaikqeSwNKEv3QpJ7EO4ICcLSi6UDVhgvcnUhRJidRA==} + engines: {pnpm: ^7.0.0} + dependencies: + '@kurkle/color': 0.3.2 + dev: false + + /chartjs-adapter-date-fns@3.0.0(chart.js@4.1.2)(date-fns@2.29.3): + resolution: {integrity: sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==} + peerDependencies: + chart.js: '>=2.8.0' + date-fns: '>=2.0.0' + dependencies: + chart.js: 4.1.2 + date-fns: 2.29.3 + dev: false + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -816,7 +1406,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: false /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -848,6 +1437,24 @@ packages: /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + /clipboardy@1.2.2: + resolution: {integrity: sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==} + engines: {node: '>=4'} + dependencies: + arch: 2.2.0 + execa: 0.8.0 + dev: false + + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 dev: false /color-convert@2.0.1: @@ -856,6 +1463,10 @@ packages: dependencies: color-name: 1.1.4 + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -863,19 +1474,39 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: false /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} dev: true + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /core-js-pure@3.32.2: + resolution: {integrity: sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==} + requiresBuild: true + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -888,16 +1519,29 @@ packages: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - dev: false /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: false /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + /date-fns@2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} dev: false + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -907,7 +1551,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: false /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -920,6 +1563,12 @@ packages: dependencies: ms: 2.1.2 + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -930,7 +1579,6 @@ packages: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 - dev: false /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -939,7 +1587,6 @@ packages: define-data-property: 1.1.0 has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: false /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -948,6 +1595,10 @@ packages: /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} dev: false /dir-glob@3.0.1: @@ -958,14 +1609,12 @@ packages: /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: false /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 - dev: false /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} @@ -979,7 +1628,6 @@ packages: /electron-to-chromium@1.4.526: resolution: {integrity: sha512-tjjTMjmZAx1g6COrintLTa2/jcafYKxKoiEkdQOrVdbLaHh2wCt2nsAF8ZHweezkrP+dl/VG9T5nabcYoo0U5Q==} - dev: false /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1039,7 +1687,6 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.11 - dev: false /es-iterator-helpers@1.0.15: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} @@ -1067,13 +1714,11 @@ packages: get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 - dev: false /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 - dev: false /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} @@ -1082,17 +1727,52 @@ packages: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: false /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} dev: false /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /eslint-config-next@12.1.5(eslint@8.13.0)(next@13.0.6)(typescript@4.6.3): + resolution: {integrity: sha512-P+DCt5ti63KhC0qNLzrAmPcwRGq8pYqgcf/NNr1E+WjCrMkWdCAXkIANTquo+kcO1adR2k1lTo5GCrNUtKy4hQ==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + next: '>=10.2.0' + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 12.1.5 + '@rushstack/eslint-patch': 1.0.8 + '@typescript-eslint/parser': 5.10.1(eslint@8.13.0)(typescript@4.6.3) + eslint: 8.13.0 + eslint-import-resolver-node: 0.3.4 + eslint-import-resolver-typescript: 2.4.0(eslint-plugin-import@2.25.2)(eslint@8.13.0) + eslint-plugin-import: 2.25.2(@typescript-eslint/parser@5.10.1)(eslint-import-resolver-typescript@2.4.0)(eslint@8.13.0) + eslint-plugin-jsx-a11y: 6.5.1(eslint@8.13.0) + eslint-plugin-react: 7.29.1(eslint@8.13.0) + eslint-plugin-react-hooks: 4.3.0(eslint@8.13.0) + next: 13.0.6(react-dom@18.2.0)(react@18.2.0) + typescript: 4.6.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-config-next@13.5.2(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-kCF7k7fHBtFtxfP6J6AP6Mo0vW3CrFeoIuoZ7NHGIvLFc/RUaIspJ6inO/R33zE1o9t/lbJgTnsqnRB++sxCUQ==} peerDependencies: @@ -1118,6 +1798,15 @@ packages: - supports-color dev: false + /eslint-import-resolver-node@0.3.4: + resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} + dependencies: + debug: 2.6.9 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: @@ -1126,7 +1815,24 @@ packages: resolve: 1.22.6 transitivePeerDependencies: - supports-color - dev: false + + /eslint-import-resolver-typescript@2.4.0(eslint-plugin-import@2.25.2)(eslint@8.13.0): + resolution: {integrity: sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==} + engines: {node: '>=4'} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + eslint: 8.13.0 + eslint-plugin-import: 2.25.2(@typescript-eslint/parser@5.10.1)(eslint-import-resolver-typescript@2.4.0)(eslint@8.13.0) + glob: 7.2.3 + is-glob: 4.0.3 + resolve: 1.22.6 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - supports-color + dev: true /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0): resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} @@ -1135,21 +1841,51 @@ packages: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.49.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) - fast-glob: 3.3.1 - get-tsconfig: 4.7.1 - is-core-module: 2.13.0 - is-glob: 4.0.3 + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.49.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.1 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.10.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.4.0)(eslint@8.13.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.10.1(eslint@8.13.0)(typescript@4.6.3) + debug: 3.2.7 + eslint: 8.13.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.4.0(eslint-plugin-import@2.25.2)(eslint@8.13.0) transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - supports-color - dev: false + dev: true /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} @@ -1181,6 +1917,37 @@ packages: - supports-color dev: false + /eslint-plugin-import@2.25.2(@typescript-eslint/parser@5.10.1)(eslint-import-resolver-typescript@2.4.0)(eslint@8.13.0): + resolution: {integrity: sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.10.1(eslint@8.13.0)(typescript@4.6.3) + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.13.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.10.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.4.0)(eslint@8.13.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.7 + resolve: 1.22.6 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} @@ -1216,6 +1983,27 @@ packages: - supports-color dev: false + /eslint-plugin-jsx-a11y@6.5.1(eslint@8.13.0): + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.22.15 + aria-query: 4.2.2 + array-includes: 3.1.7 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.13.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + dev: true + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.49.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} @@ -1241,6 +2029,15 @@ packages: semver: 6.3.1 dev: false + /eslint-plugin-react-hooks@4.3.0(eslint@8.13.0): + resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.13.0 + dev: true + /eslint-plugin-react-hooks@4.6.0(eslint@8.49.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -1250,6 +2047,29 @@ packages: eslint: 8.49.0 dev: false + /eslint-plugin-react@7.29.1(eslint@8.13.0): + resolution: {integrity: sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + doctrine: 2.1.0 + eslint: 8.13.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + /eslint-plugin-react@7.33.2(eslint@8.49.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} @@ -1290,6 +2110,16 @@ packages: esrecurse: 4.3.0 estraverse: 5.3.0 + /eslint-utils@3.0.0(eslint@8.13.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.13.0 + eslint-visitor-keys: 2.1.0 + dev: true + /eslint-utils@3.0.0(eslint@8.23.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} @@ -1309,6 +2139,50 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint@8.13.0: + resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-utils: 3.0.0(eslint@8.13.0) + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + dev: true + /eslint@8.23.0: resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1410,6 +2284,12 @@ packages: acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -1426,10 +2306,73 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + /estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} + dependencies: + '@types/estree': 1.0.1 + dev: false + + /estree-util-build-jsx@2.2.2: + resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + dependencies: + '@types/estree-jsx': 1.0.0 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + dev: false + + /estree-util-is-identifier-name@1.1.0: + resolution: {integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==} + dev: false + + /estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + dev: false + + /estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + dependencies: + '@types/estree-jsx': 1.0.0 + astring: 1.8.6 + source-map: 0.7.4 + dev: false + + /estree-util-value-to-estree@1.3.0: + resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} + engines: {node: '>=12.0.0'} + dependencies: + is-plain-obj: 3.0.0 + dev: false + + /estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/unist': 2.0.8 + dev: false + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.1 + dev: false + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + /execa@0.8.0: + resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: false + /execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1445,6 +2388,17 @@ packages: strip-final-newline: 3.0.0 dev: true + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1499,15 +2453,21 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flexsearch@0.7.31: + resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} + dev: false + + /focus-visible@5.2.0: + resolution: {integrity: sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==} + dev: false + /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: false /fraction.js@4.3.6: resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} - dev: false /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1517,12 +2477,10 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: false optional: true /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: false /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -1532,7 +2490,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 functions-have-names: 1.2.3 - dev: false /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} @@ -1540,7 +2497,6 @@ packages: /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: false /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} @@ -1549,6 +2505,10 @@ packages: has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} dev: false /get-stream@6.0.1: @@ -1562,7 +2522,6 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: false /get-tsconfig@4.7.1: resolution: {integrity: sha512-sLtd6Bcwbi9IrAow/raCOTE9pmhvo5ksQo5v2lApUGJMzja64MUYhBp0G6X1S+f7IrBPn1HP+XkS2w2meoGcjg==} @@ -1570,6 +2529,23 @@ packages: resolve-pkg-maps: 1.0.0 dev: false + /git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + dependencies: + is-ssh: 1.4.0 + parse-url: 8.1.0 + dev: false + + /git-url-parse@13.1.0: + resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} + dependencies: + git-up: 7.0.0 + dev: false + + /github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1595,7 +2571,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: false /glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} @@ -1606,7 +2581,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: false /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -1629,7 +2603,6 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - dev: false /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -1646,7 +2619,6 @@ packages: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.1 - dev: false /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1659,8 +2631,22 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + /has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} dev: false /has-flag@4.0.0: @@ -1671,30 +2657,55 @@ packages: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 - dev: false /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dev: false /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - dev: false /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: false /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 + + /hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + dependencies: + '@types/estree': 1.0.1 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.6 + '@types/unist': 2.0.8 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.2 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-string@1.0.4: + resolution: {integrity: sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==} + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} dev: false /human-signals@3.0.1: @@ -1737,6 +2748,10 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} @@ -1744,6 +2759,20 @@ packages: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 + + /intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + dev: false + + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 dev: false /is-array-buffer@3.0.2: @@ -1752,7 +2781,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: false /is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -1765,14 +2793,12 @@ packages: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 - dev: false /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: false /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -1780,24 +2806,34 @@ packages: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} dev: false /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: false /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 - dev: false /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} dev: false /is-extglob@2.1.1: @@ -1833,6 +2869,10 @@ packages: dependencies: is-extglob: 2.1.1 + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: false @@ -1840,14 +2880,12 @@ packages: /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - dev: false /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: false /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -1857,13 +2895,28 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: false + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.1 + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: false /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -1873,6 +2926,16 @@ packages: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 + + /is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + dependencies: + protocols: 2.0.1 + dev: false + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} dev: false /is-stream@3.0.0: @@ -1885,21 +2948,18 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: false /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: false /is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.11 - dev: false /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} @@ -1909,7 +2969,6 @@ packages: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 - dev: false /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} @@ -1920,7 +2979,6 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: false /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1938,10 +2996,16 @@ packages: /jiti@1.20.0: resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true - dev: false /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 dev: false /js-yaml@4.1.0: @@ -1964,6 +3028,9 @@ packages: hasBin: true dependencies: minimist: 1.2.8 + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false /jsx-ast-utils@3.3.5: @@ -1974,22 +3041,29 @@ packages: array.prototype.flat: 1.3.2 object.assign: 4.1.4 object.values: 1.1.7 - dev: false /keyv@4.5.3: resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} dependencies: json-buffer: 3.0.1 + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: false /language-tags@1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.22 - dev: false /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -2006,11 +3080,9 @@ packages: /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - dev: false /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: false /lint-staged@13.0.3: resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} @@ -2073,11 +3145,21 @@ packages: wrap-ansi: 6.2.0 dev: true + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 dev: false /lru-cache@6.0.0: @@ -2086,6 +3168,208 @@ packages: dependencies: yallist: 4.0.0 + /markdown-extensions@1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} + dev: false + + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /match-sorter@6.3.1: + resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} + dependencies: + '@babel/runtime': 7.22.15 + remove-accents: 0.4.2 + dev: false + + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.12 + '@types/unist': 2.0.8 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + dependencies: + '@types/mdast': 3.0.12 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.12 + '@types/unist': 2.0.8 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.12 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + dev: false + + /mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + dev: false + + /mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + dependencies: + '@types/mdast': 3.0.12 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.6 + '@types/mdast': 3.0.12 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@2.1.4: + resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.6 + '@types/mdast': 3.0.12 + '@types/unist': 2.0.8 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx@2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.6 + '@types/mdast': 3.0.12 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.12 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.6 + '@types/mdast': 3.0.12 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.12 + '@types/unist': 2.0.8 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.12 + dev: false + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -2094,6 +3378,340 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-mdx-expression@1.0.8: + resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} + dependencies: + '@types/estree': 1.0.1 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-mdx-jsx@1.0.5: + resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.1 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdx-md@1.0.1: + resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-mdxjs-esm@1.0.5: + resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} + dependencies: + '@types/estree': 1.0.1 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdxjs@1.0.1: + resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-mdx-expression@1.0.9: + resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} + dependencies: + '@types/estree': 1.0.1 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-events-to-acorn@1.2.3: + resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.1 + '@types/unist': 2.0.8 + estree-util-visit: 1.2.1 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -2118,8 +3736,16 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} dev: false + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -2129,17 +3755,82 @@ packages: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: false /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: false /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + /next-seo@5.15.0(next@13.0.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LGbcY91yDKGMb7YI+28n3g+RuChUkt6pXNpa8FkfKkEmNiJkeRDEXTnnjVtwT9FmMhG6NH8qwHTelGrlYm9rgg==} + peerDependencies: + next: ^8.1.1-canary.54 || >=9.0.0 + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + next: 13.0.6(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /next-themes@0.2.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} + peerDependencies: + next: '*' + react: '*' + react-dom: '*' + dependencies: + next: 13.0.6(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /next@13.0.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-COvigvms2LRt1rrzfBQcMQ2GZd86Mvk1z+LOLY5pniFtL4VrTmhZ9salrbKfSiXbhsD01TrDdD68ec3ABDyscA==} + engines: {node: '>=14.6.0'} + hasBin: true + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^6.0.0 || ^7.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.0.6 + '@swc/helpers': 0.4.14 + caniuse-lite: 1.0.30001538 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.0(react@18.2.0) + optionalDependencies: + '@next/swc-android-arm-eabi': 13.0.6 + '@next/swc-android-arm64': 13.0.6 + '@next/swc-darwin-arm64': 13.0.6 + '@next/swc-darwin-x64': 13.0.6 + '@next/swc-freebsd-x64': 13.0.6 + '@next/swc-linux-arm-gnueabihf': 13.0.6 + '@next/swc-linux-arm64-gnu': 13.0.6 + '@next/swc-linux-arm64-musl': 13.0.6 + '@next/swc-linux-x64-gnu': 13.0.6 + '@next/swc-linux-x64-musl': 13.0.6 + '@next/swc-win32-arm64-msvc': 13.0.6 + '@next/swc-win32-ia32-msvc': 13.0.6 + '@next/swc-win32-x64-msvc': 13.0.6 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + /next@13.5.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==} engines: {node: '>=16.14.0'} @@ -2176,13 +3867,65 @@ packages: '@next/swc-win32-ia32-msvc': 13.5.2 '@next/swc-win32-x64-msvc': 13.5.2 transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros + - '@babel/core' + - babel-plugin-macros + dev: false + + /nextra-theme-docs@2.0.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vrxSQjfG5hcWXd0foVUgRu1T9rD+dQdVnKzJhpEG+ncAIYTT/o7GajvYUEPPZMYvvZwehmNIUhSTDN9unnVsxw==} + peerDependencies: + next: '>=9.5.3' + react: '>=16.13.1' + react-dom: '>=16.13.1' + dependencies: + '@headlessui/react': 1.7.17(react-dom@18.2.0)(react@18.2.0) + '@mdx-js/react': 2.3.0(react@18.2.0) + '@popperjs/core': 2.11.8 + '@reach/skip-nav': 0.17.0(react-dom@18.2.0)(react@18.2.0) + clsx: 1.2.1 + flexsearch: 0.7.31 + focus-visible: 5.2.0 + git-url-parse: 13.1.0 + github-slugger: 1.5.0 + intersection-observer: 0.12.2 + match-sorter: 6.3.1 + next: 13.0.6(react-dom@18.2.0)(react@18.2.0) + next-seo: 5.15.0(next@13.0.6)(react-dom@18.2.0)(react@18.2.0) + next-themes: 0.2.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 2.2.31 + dev: false + + /nextra@2.0.1(next@13.0.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IOBwqMREnadxGryNHvwr3sZuD90uyaTxCWi9yxDB56UndsLBTulKwXNIOdW1FV+vKTbSGpz89wNe665Moli7Kw==} + peerDependencies: + next: '>=9.5.3' + react: '>=16.13.1' + react-dom: '>=16.13.1' + dependencies: + '@mdx-js/mdx': 2.3.0 + '@napi-rs/simple-git': 0.1.9 + github-slugger: 1.5.0 + graceful-fs: 4.2.11 + gray-matter: 4.0.3 + next: 13.0.6(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rehype-mdx-title: 1.0.0 + rehype-pretty-code: 0.2.4(shiki@0.10.1) + remark-gfm: 3.0.1 + remark-reading-time: 2.0.1 + shiki: 0.10.1 + slash: 3.0.0 + title: 3.5.3 + unist-util-visit: 4.1.2 + transitivePeerDependencies: + - supports-color dev: false /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: false /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -2191,6 +3934,12 @@ packages: /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 dev: false /npm-run-path@5.1.0: @@ -2203,12 +3952,10 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: false /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - dev: false /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} @@ -2216,7 +3963,6 @@ packages: /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: false /object.assign@4.1.4: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} @@ -2226,7 +3972,6 @@ packages: define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: false /object.entries@1.1.7: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} @@ -2235,7 +3980,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} @@ -2244,7 +3988,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} @@ -2260,7 +4003,6 @@ packages: dependencies: define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} @@ -2269,7 +4011,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2301,6 +4042,11 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -2326,6 +4072,35 @@ packages: dependencies: callsites: 3.1.0 + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.8 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false + + /parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + dependencies: + protocols: 2.0.1 + dev: false + + /parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + dependencies: + parse-path: 7.0.0 + dev: false + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2334,6 +4109,11 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: false + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2345,15 +4125,21 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: false /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2368,12 +4154,10 @@ packages: /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: false /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - dev: false /postcss-import@15.1.0(postcss@8.4.30): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -2385,7 +4169,6 @@ packages: postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.6 - dev: false /postcss-js@4.0.1(postcss@8.4.30): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} @@ -2395,7 +4178,6 @@ packages: dependencies: camelcase-css: 2.0.1 postcss: 8.4.30 - dev: false /postcss-load-config@4.0.1(postcss@8.4.30): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} @@ -2412,7 +4194,6 @@ packages: lilconfig: 2.1.0 postcss: 8.4.30 yaml: 2.3.2 - dev: false /postcss-nested@6.0.1(postcss@8.4.30): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} @@ -2422,7 +4203,6 @@ packages: dependencies: postcss: 8.4.30 postcss-selector-parser: 6.0.13 - dev: false /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} @@ -2430,11 +4210,9 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false /postcss@8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} @@ -2443,7 +4221,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /postcss@8.4.30: resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} @@ -2452,7 +4229,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2479,6 +4255,17 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 + + /property-information@6.3.0: + resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==} + dev: false + + /protocols@2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + dev: false + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: false /punycode@2.3.0: @@ -2488,6 +4275,16 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /react-chartjs-2@5.2.0(chart.js@4.1.2)(react@18.2.0): + resolution: {integrity: sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==} + peerDependencies: + chart.js: ^4.1.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + chart.js: 4.1.2 + react: 18.2.0 + dev: false + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -2496,30 +4293,29 @@ packages: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - dev: false /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - dev: false /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 - dev: false /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + + /reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} dev: false /reflect.getprototypeof@1.0.4: @@ -2536,7 +4332,6 @@ packages: /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - dev: false /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -2545,13 +4340,83 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 set-function-name: 2.0.1 - dev: false /regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} dev: true + /rehype-mdx-title@1.0.0: + resolution: {integrity: sha512-5B/53Y+KQHm4/nrE6pIIPc9Ie2fbPMCLs8WwMGYWWHr+5g3TkmEijRkr8TGYHULtc+C7bOoPR8LIF5DpGROIDg==} + engines: {node: '>=12.2.0'} + dependencies: + estree-util-is-identifier-name: 1.1.0 + hast-util-to-string: 1.0.4 + unist-util-visit: 2.0.3 + dev: false + + /rehype-pretty-code@0.2.4(shiki@0.10.1): + resolution: {integrity: sha512-vbqwIa4cNwRaVur9caUw/b0jOQR88Svrs9c9RaQoogvbBxs5X9bWrSe5oFypaRTTq2cpZ45YzJQ7UUPO76LMKA==} + engines: {node: ^12.16.0 || >=13.2.0} + peerDependencies: + shiki: '*' + dependencies: + parse-numeric-range: 1.3.0 + shiki: 0.10.1 + dev: false + + /remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-mdx@2.3.0: + resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-reading-time@2.0.1: + resolution: {integrity: sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==} + dependencies: + estree-util-is-identifier-name: 2.1.0 + estree-util-value-to-estree: 1.3.0 + reading-time: 1.5.0 + unist-util-visit: 3.1.0 + dev: false + + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.6 + '@types/mdast': 3.0.12 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + + /remove-accents@0.4.2: + resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + dev: false + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2567,7 +4432,6 @@ packages: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: false /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} @@ -2576,7 +4440,6 @@ packages: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: false /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -2611,6 +4474,13 @@ packages: tslib: 2.6.2 dev: true + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} @@ -2619,7 +4489,6 @@ packages: get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 - dev: false /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} @@ -2627,18 +4496,29 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-regex: 1.1.4 - dev: false /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 dev: false /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - dev: false /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} @@ -2654,6 +4534,12 @@ packages: define-data-property: 1.1.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.0 + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 dev: false /shebang-command@2.0.0: @@ -2662,21 +4548,32 @@ packages: dependencies: shebang-regex: 3.0.0 + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: false + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /shiki@0.10.1: + resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + dependencies: + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 5.2.0 + dev: false + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 object-inspect: 1.12.3 - dev: false /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -2711,6 +4608,18 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: false /streamsearch@1.1.0: @@ -2753,7 +4662,6 @@ packages: regexp.prototype.flags: 1.5.1 set-function-name: 2.0.1 side-channel: 1.0.4 - dev: false /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} @@ -2762,7 +4670,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} @@ -2770,7 +4677,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: false /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} @@ -2778,6 +4684,12 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 + + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 dev: false /strip-ansi@6.0.1: @@ -2793,9 +4705,18 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} dev: false /strip-final-newline@3.0.0: @@ -2807,6 +4728,28 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + /style-to-object@0.4.2: + resolution: {integrity: sha512-1JGpfPB3lo42ZX8cuPrheZbfQ6kqPPnPHlKMyeRYtfKD+0jG+QsXgXN57O/dvJlzlB2elI6dGmrPnl5VPQFPaA==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + + /styled-jsx@5.1.0(react@18.2.0): + resolution: {integrity: sha512-/iHaRJt9U7T+5tp6TRelLnqBqiaIT0HsO0+vgyj8hK2KUk7aejFqRrumqPUlAqDwAj8IbS/1hk3IhBAAK/FCUQ==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + /styled-jsx@5.1.1(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -2836,6 +4779,12 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 + + /supports-color@4.5.0: + resolution: {integrity: sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==} + engines: {node: '>=4'} + dependencies: + has-flag: 2.0.0 dev: false /supports-color@7.2.0: @@ -2847,7 +4796,6 @@ packages: /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: false /tailwindcss@3.3.3: resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} @@ -2878,7 +4826,6 @@ packages: sucrase: 3.34.0 transitivePeerDependencies: - ts-node - dev: false /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -2893,24 +4840,49 @@ packages: engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: false /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: false /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + + /title@3.5.3: + resolution: {integrity: sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q==} + hasBin: true + dependencies: + arg: 1.0.0 + chalk: 2.3.0 + clipboardy: 1.2.2 + titleize: 1.0.0 + dev: false + + /titleize@1.0.0: + resolution: {integrity: sha512-TARUb7z1pGvlLxgPk++7wJ6aycXF3GJ0sNSBTAsTuJrQG5QuZlkUQP+zl+nbjAh4gMX9yDw9ZYklMd7vAfJKEw==} + engines: {node: '>=0.10.0'} + dev: false + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + /ts-api-utils@1.0.2(typescript@5.1.6): resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} engines: {node: '>=16.13.0'} @@ -2931,7 +4903,6 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: false /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} @@ -2940,11 +4911,24 @@ packages: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tsutils@3.21.0(typescript@4.6.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.6.3 + dev: true + /turbo-darwin-64@1.10.12: resolution: {integrity: sha512-vmDfGVPl5/aFenAbOj3eOx3ePNcWVUyZwYr7taRl0ZBbmv2TzjRiFotO4vrKCiTVnbqjQqAFQWY2ugbqCI1kOQ==} cpu: [x64] @@ -3028,7 +5012,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: false /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} @@ -3038,7 +5021,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: false /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} @@ -3049,7 +5031,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: false /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -3057,7 +5038,12 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: false + + /typescript@4.6.3: + resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} @@ -3078,6 +5064,101 @@ packages: has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.8 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + + /unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: false + + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-position-from-estree@1.1.2: + resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-remove-position@4.0.2: + resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} + dependencies: + '@types/unist': 2.0.8 + unist-util-visit: 4.1.2 + dev: false + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.8 + dev: false + + /unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 4.1.0 + dev: false + + /unist-util-visit-parents@4.1.1: + resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit@2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + dev: false + + /unist-util-visit@3.1.0: + resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + unist-util-visit-parents: 4.1.1 + dev: false + + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.8 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 dev: false /update-browserslist-db@1.0.12(browserslist@4.21.10): @@ -3089,7 +5170,6 @@ packages: browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 - dev: false /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3098,6 +5178,44 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.8 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.8 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + + /vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: false + + /vscode-textmate@5.2.0: + resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} dev: false /watchpack@2.4.0: @@ -3116,7 +5234,6 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: false /which-builtin-type@1.1.3: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} @@ -3154,6 +5271,12 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 dev: false /which@2.0.2: @@ -3184,6 +5307,10 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -3198,3 +5325,7 @@ packages: /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false