From 66ce1e7170c2cd34f45d1f9e1b27db0698fc39c1 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Wed, 7 Jan 2026 18:53:27 -0500 Subject: [PATCH 01/50] [CI] Update packages and revert mdl-disable directives Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/0015-knative/analysis.md | 7 ++----- analyses/0015-knative/issues.md | 2 +- package.json | 34 +++++++++++++++---------------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/analyses/0015-knative/analysis.md b/analyses/0015-knative/analysis.md index 55077388..3afc9755 100644 --- a/analyses/0015-knative/analysis.md +++ b/analyses/0015-knative/analysis.md @@ -6,7 +6,7 @@ modified: 2025-07-25 author: Dave Welsch (@dwelsch-esi) --- - + ## Introduction @@ -664,7 +664,7 @@ No recommendations. ## Website and infrastructure -**TBD** +> **TBD** Knative is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. @@ -712,7 +712,6 @@ only two levels for which a tech docs analysis can be requested.) -[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [maturity-level]: https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations [cncf-servicedesk]: https://servicedesk.cncf.io @@ -843,8 +842,6 @@ The numeric rating values used in this document are as follows 5. Exemplary [criteria]: ../criteria.md -[implementation]: ./implementation.md -[issues]: ./issues.md [project-doc-website]: https://knative.dev/docs/ [project-website]: https://knative.dev/docs/ [Rating (1-5)]: #rating-values diff --git a/analyses/0015-knative/issues.md b/analyses/0015-knative/issues.md index 9a314f19..fc040cee 100644 --- a/analyses/0015-knative/issues.md +++ b/analyses/0015-knative/issues.md @@ -6,7 +6,7 @@ modified: 2025-07-28 author: Dave Welsch (@dwelsch-esi) --- - + # Separate technical documentation from the project page diff --git a/package.json b/package.json index 685fd9de..d41d791c 100644 --- a/package.json +++ b/package.json @@ -42,33 +42,33 @@ "serve": "npm run docus:serve", "test": "npm run check", "typecheck": "tsc", - "update:pkgs": "npx npm-check-updates -u" + "update:packages": "npx npm-check-updates -u" }, "author": "CNCF", "license": "CC-BY-4.0", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", - "@mdx-js/react": "^3.1.0", + "@docusaurus/core": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@mdx-js/react": "^3.1.1", "clsx": "^2.1.1", "prism-react-renderer": "^2.4.1", - "react-dom": "^19.1.0", - "react": "^19.1.0" + "react-dom": "^19.2.3", + "react": "^19.2.3" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/tsconfig": "3.8.1", - "@docusaurus/types": "3.8.1", - "cspell": "^9.1.1", - "markdown-link-check": "3.13.7", - "markdownlint-cli": "^0.45.0", - "markdownlint": "^0.38.0", - "npm-check-updates": "^18.0.1", - "prettier": "^3.5.3", - "typescript": "~5.8.3" + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "cspell": "^9.4.0", + "markdown-link-check": "3.14.2", + "markdownlint-cli": "^0.47.0", + "markdownlint": "^0.40.0", + "npm-check-updates": "^19.3.1", + "prettier": "^3.7.4", + "typescript": "~5.9.3" }, "private": true, - "spelling": "cSpell:ignore ACMR docus HTMLTEST loglevel pkgs -", + "spelling": "cSpell:ignore ACMR docus HTMLTEST loglevel -", "prettier": { "proseWrap": "always", "singleQuote": true From 2318f6a93e92daef0e24af12c4320fc3eec44c5b Mon Sep 17 00:00:00 2001 From: Nate W Date: Fri, 6 Feb 2026 13:52:19 -0800 Subject: [PATCH 02/50] adding ops/servicedesk label (#336) Signed-off-by: Nate W Signed-off-by: BruceHamilton --- .github/settings.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/settings.yml b/.github/settings.yml index 9fbfd5d3..62a1acfb 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -119,6 +119,10 @@ labels: - name: wontfix description: This will not be worked on color: ffffff + - name: ops/service-desk + description: Service desk and support operations + color: 32CD32 - name: CNCF Service Desk description: This issue has a related CNCF Service Desk ticket color: 0CD9EF + From aba1b241838152e15e90276d1226040ec616e933 Mon Sep 17 00:00:00 2001 From: thisisobate Date: Tue, 24 Feb 2026 11:43:57 +0300 Subject: [PATCH 03/50] chore: Add a GH workflow to trigger contribute site Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .../workflows/trigger-contribute-site-netlify.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/trigger-contribute-site-netlify.yml diff --git a/.github/workflows/trigger-contribute-site-netlify.yml b/.github/workflows/trigger-contribute-site-netlify.yml new file mode 100644 index 00000000..af8e9237 --- /dev/null +++ b/.github/workflows/trigger-contribute-site-netlify.yml @@ -0,0 +1,13 @@ +name: Trigger contribute-site Netlify build + +on: + push: + branches: [main] + +jobs: + trigger: + runs-on: ubuntu-latest + steps: + - name: Call Netlify build hook + run: | + curl -sS -X POST "${{ secrets.NETLIFY_CONTRIBUTE_SITE_BUILD_HOOK }}" \ No newline at end of file From e4d977b1f28eefd8561b675f238b0ebf0b555495 Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Sat, 21 Feb 2026 01:42:01 +0300 Subject: [PATCH 04/50] Chore: Drop numbered analysis folders and adopt a date format instead (#337) * chore: drop numbered analysis folders and adopt a date format instead Signed-off-by: thisisobate * chore: prettify docs Signed-off-by: thisisobate * chore: update check-md script Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .github/settings.yml | 1 - analyses/{0001-contour.md => 2021/contour/analysis.md} | 0 analyses/{0005-fluxcd.md => 2021/fluxcd/analysis.md} | 0 analyses/{0003-krator.md => 2021/krator/analysis.md} | 0 .../kubernetes-gateway-api/analysis.md} | 0 .../{0002-notary-project.md => 2021/notary/analysis.md} | 0 analyses/{0004-tremor.md => 2021/tremor/analysis.md} | 0 .../backstage}/backstage-analysis.md | 0 .../backstage}/backstage-doc-survey.csv | 0 .../backstage}/backstage-glossary.md | 0 .../backstage}/backstage-implementation.md | 0 .../backstage}/backstage-insights-summary.md | 0 .../backstage}/backstage-issues.md | 0 analyses/{0008-backstage => 2023/backstage}/index.md | 0 analyses/{0008-backstage => 2023/backstage}/user-roles.md | 0 analyses/{0010-etcd => 2023/etcd}/etcd-analysis.md | 0 analyses/{0010-etcd => 2023/etcd}/etcd-implementation.md | 0 analyses/{0010-etcd => 2023/etcd}/etcd-issues.md | 0 analyses/{0010-etcd => 2023/etcd}/index.md | 0 .../{0009-in-toto => 2023/in-toto}/in-toto-analysis.md | 0 .../{0009-in-toto => 2023/in-toto}/in-toto-doc-issues.md | 0 .../in-toto}/in-toto-implementation.md | 0 analyses/{0009-in-toto => 2023/in-toto}/index.md | 0 .../in-toto}/survey-of-existing-doc.md | 0 analyses/{0007-porter.md => 2023/porter/analysis.md} | 0 analyses/{0012-TUF => 2024/TUF}/analysis.md | 0 analyses/{0012-TUF => 2024/TUF}/implementation.md | 0 analyses/{0012-TUF => 2024/TUF}/index.md | 0 analyses/{0012-TUF => 2024/TUF}/issues.md | 0 analyses/{0011-keda => 2024/keda}/index.md | 0 analyses/{0011-keda => 2024/keda}/keda-analysis.md | 0 analyses/{0011-keda => 2024/keda}/keda-implementation.md | 0 analyses/{0011-keda => 2024/keda}/keda-issues.md | 0 .../litmuschaos}/litmuschaos-analysis.md | 0 .../litmuschaos}/litmuschaos-implementation.md | 0 .../litmuschaos}/litmuschaos-issues.md | 0 analyses/{0016-helm => 2025/helm}/helm-analysis.md | 0 analyses/{0016-helm => 2025/helm}/helm-implementation.md | 0 analyses/{0016-helm => 2025/helm}/helm-issues-list.md | 0 analyses/{0015-knative => 2025/knative}/analysis.md | 0 analyses/{0015-knative => 2025/knative}/issues.md | 0 analyses/{0014-vitess => 2025/vitess}/analysis.md | 0 analyses/index.md | 8 ++++---- package.json | 4 ++-- 44 files changed, 6 insertions(+), 7 deletions(-) rename analyses/{0001-contour.md => 2021/contour/analysis.md} (100%) rename analyses/{0005-fluxcd.md => 2021/fluxcd/analysis.md} (100%) rename analyses/{0003-krator.md => 2021/krator/analysis.md} (100%) rename analyses/{0006-gateway-api.md => 2021/kubernetes-gateway-api/analysis.md} (100%) rename analyses/{0002-notary-project.md => 2021/notary/analysis.md} (100%) rename analyses/{0004-tremor.md => 2021/tremor/analysis.md} (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-analysis.md (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-doc-survey.csv (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-glossary.md (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-implementation.md (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-insights-summary.md (100%) rename analyses/{0008-backstage => 2023/backstage}/backstage-issues.md (100%) rename analyses/{0008-backstage => 2023/backstage}/index.md (100%) rename analyses/{0008-backstage => 2023/backstage}/user-roles.md (100%) rename analyses/{0010-etcd => 2023/etcd}/etcd-analysis.md (100%) rename analyses/{0010-etcd => 2023/etcd}/etcd-implementation.md (100%) rename analyses/{0010-etcd => 2023/etcd}/etcd-issues.md (100%) rename analyses/{0010-etcd => 2023/etcd}/index.md (100%) rename analyses/{0009-in-toto => 2023/in-toto}/in-toto-analysis.md (100%) rename analyses/{0009-in-toto => 2023/in-toto}/in-toto-doc-issues.md (100%) rename analyses/{0009-in-toto => 2023/in-toto}/in-toto-implementation.md (100%) rename analyses/{0009-in-toto => 2023/in-toto}/index.md (100%) rename analyses/{0009-in-toto => 2023/in-toto}/survey-of-existing-doc.md (100%) rename analyses/{0007-porter.md => 2023/porter/analysis.md} (100%) rename analyses/{0012-TUF => 2024/TUF}/analysis.md (100%) rename analyses/{0012-TUF => 2024/TUF}/implementation.md (100%) rename analyses/{0012-TUF => 2024/TUF}/index.md (100%) rename analyses/{0012-TUF => 2024/TUF}/issues.md (100%) rename analyses/{0011-keda => 2024/keda}/index.md (100%) rename analyses/{0011-keda => 2024/keda}/keda-analysis.md (100%) rename analyses/{0011-keda => 2024/keda}/keda-implementation.md (100%) rename analyses/{0011-keda => 2024/keda}/keda-issues.md (100%) rename analyses/{0013-litmuschaos => 2024/litmuschaos}/litmuschaos-analysis.md (100%) rename analyses/{0013-litmuschaos => 2024/litmuschaos}/litmuschaos-implementation.md (100%) rename analyses/{0013-litmuschaos => 2024/litmuschaos}/litmuschaos-issues.md (100%) rename analyses/{0016-helm => 2025/helm}/helm-analysis.md (100%) rename analyses/{0016-helm => 2025/helm}/helm-implementation.md (100%) rename analyses/{0016-helm => 2025/helm}/helm-issues-list.md (100%) rename analyses/{0015-knative => 2025/knative}/analysis.md (100%) rename analyses/{0015-knative => 2025/knative}/issues.md (100%) rename analyses/{0014-vitess => 2025/vitess}/analysis.md (100%) diff --git a/.github/settings.yml b/.github/settings.yml index 62a1acfb..6c575c0e 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -125,4 +125,3 @@ labels: - name: CNCF Service Desk description: This issue has a related CNCF Service Desk ticket color: 0CD9EF - diff --git a/analyses/0001-contour.md b/analyses/2021/contour/analysis.md similarity index 100% rename from analyses/0001-contour.md rename to analyses/2021/contour/analysis.md diff --git a/analyses/0005-fluxcd.md b/analyses/2021/fluxcd/analysis.md similarity index 100% rename from analyses/0005-fluxcd.md rename to analyses/2021/fluxcd/analysis.md diff --git a/analyses/0003-krator.md b/analyses/2021/krator/analysis.md similarity index 100% rename from analyses/0003-krator.md rename to analyses/2021/krator/analysis.md diff --git a/analyses/0006-gateway-api.md b/analyses/2021/kubernetes-gateway-api/analysis.md similarity index 100% rename from analyses/0006-gateway-api.md rename to analyses/2021/kubernetes-gateway-api/analysis.md diff --git a/analyses/0002-notary-project.md b/analyses/2021/notary/analysis.md similarity index 100% rename from analyses/0002-notary-project.md rename to analyses/2021/notary/analysis.md diff --git a/analyses/0004-tremor.md b/analyses/2021/tremor/analysis.md similarity index 100% rename from analyses/0004-tremor.md rename to analyses/2021/tremor/analysis.md diff --git a/analyses/0008-backstage/backstage-analysis.md b/analyses/2023/backstage/backstage-analysis.md similarity index 100% rename from analyses/0008-backstage/backstage-analysis.md rename to analyses/2023/backstage/backstage-analysis.md diff --git a/analyses/0008-backstage/backstage-doc-survey.csv b/analyses/2023/backstage/backstage-doc-survey.csv similarity index 100% rename from analyses/0008-backstage/backstage-doc-survey.csv rename to analyses/2023/backstage/backstage-doc-survey.csv diff --git a/analyses/0008-backstage/backstage-glossary.md b/analyses/2023/backstage/backstage-glossary.md similarity index 100% rename from analyses/0008-backstage/backstage-glossary.md rename to analyses/2023/backstage/backstage-glossary.md diff --git a/analyses/0008-backstage/backstage-implementation.md b/analyses/2023/backstage/backstage-implementation.md similarity index 100% rename from analyses/0008-backstage/backstage-implementation.md rename to analyses/2023/backstage/backstage-implementation.md diff --git a/analyses/0008-backstage/backstage-insights-summary.md b/analyses/2023/backstage/backstage-insights-summary.md similarity index 100% rename from analyses/0008-backstage/backstage-insights-summary.md rename to analyses/2023/backstage/backstage-insights-summary.md diff --git a/analyses/0008-backstage/backstage-issues.md b/analyses/2023/backstage/backstage-issues.md similarity index 100% rename from analyses/0008-backstage/backstage-issues.md rename to analyses/2023/backstage/backstage-issues.md diff --git a/analyses/0008-backstage/index.md b/analyses/2023/backstage/index.md similarity index 100% rename from analyses/0008-backstage/index.md rename to analyses/2023/backstage/index.md diff --git a/analyses/0008-backstage/user-roles.md b/analyses/2023/backstage/user-roles.md similarity index 100% rename from analyses/0008-backstage/user-roles.md rename to analyses/2023/backstage/user-roles.md diff --git a/analyses/0010-etcd/etcd-analysis.md b/analyses/2023/etcd/etcd-analysis.md similarity index 100% rename from analyses/0010-etcd/etcd-analysis.md rename to analyses/2023/etcd/etcd-analysis.md diff --git a/analyses/0010-etcd/etcd-implementation.md b/analyses/2023/etcd/etcd-implementation.md similarity index 100% rename from analyses/0010-etcd/etcd-implementation.md rename to analyses/2023/etcd/etcd-implementation.md diff --git a/analyses/0010-etcd/etcd-issues.md b/analyses/2023/etcd/etcd-issues.md similarity index 100% rename from analyses/0010-etcd/etcd-issues.md rename to analyses/2023/etcd/etcd-issues.md diff --git a/analyses/0010-etcd/index.md b/analyses/2023/etcd/index.md similarity index 100% rename from analyses/0010-etcd/index.md rename to analyses/2023/etcd/index.md diff --git a/analyses/0009-in-toto/in-toto-analysis.md b/analyses/2023/in-toto/in-toto-analysis.md similarity index 100% rename from analyses/0009-in-toto/in-toto-analysis.md rename to analyses/2023/in-toto/in-toto-analysis.md diff --git a/analyses/0009-in-toto/in-toto-doc-issues.md b/analyses/2023/in-toto/in-toto-doc-issues.md similarity index 100% rename from analyses/0009-in-toto/in-toto-doc-issues.md rename to analyses/2023/in-toto/in-toto-doc-issues.md diff --git a/analyses/0009-in-toto/in-toto-implementation.md b/analyses/2023/in-toto/in-toto-implementation.md similarity index 100% rename from analyses/0009-in-toto/in-toto-implementation.md rename to analyses/2023/in-toto/in-toto-implementation.md diff --git a/analyses/0009-in-toto/index.md b/analyses/2023/in-toto/index.md similarity index 100% rename from analyses/0009-in-toto/index.md rename to analyses/2023/in-toto/index.md diff --git a/analyses/0009-in-toto/survey-of-existing-doc.md b/analyses/2023/in-toto/survey-of-existing-doc.md similarity index 100% rename from analyses/0009-in-toto/survey-of-existing-doc.md rename to analyses/2023/in-toto/survey-of-existing-doc.md diff --git a/analyses/0007-porter.md b/analyses/2023/porter/analysis.md similarity index 100% rename from analyses/0007-porter.md rename to analyses/2023/porter/analysis.md diff --git a/analyses/0012-TUF/analysis.md b/analyses/2024/TUF/analysis.md similarity index 100% rename from analyses/0012-TUF/analysis.md rename to analyses/2024/TUF/analysis.md diff --git a/analyses/0012-TUF/implementation.md b/analyses/2024/TUF/implementation.md similarity index 100% rename from analyses/0012-TUF/implementation.md rename to analyses/2024/TUF/implementation.md diff --git a/analyses/0012-TUF/index.md b/analyses/2024/TUF/index.md similarity index 100% rename from analyses/0012-TUF/index.md rename to analyses/2024/TUF/index.md diff --git a/analyses/0012-TUF/issues.md b/analyses/2024/TUF/issues.md similarity index 100% rename from analyses/0012-TUF/issues.md rename to analyses/2024/TUF/issues.md diff --git a/analyses/0011-keda/index.md b/analyses/2024/keda/index.md similarity index 100% rename from analyses/0011-keda/index.md rename to analyses/2024/keda/index.md diff --git a/analyses/0011-keda/keda-analysis.md b/analyses/2024/keda/keda-analysis.md similarity index 100% rename from analyses/0011-keda/keda-analysis.md rename to analyses/2024/keda/keda-analysis.md diff --git a/analyses/0011-keda/keda-implementation.md b/analyses/2024/keda/keda-implementation.md similarity index 100% rename from analyses/0011-keda/keda-implementation.md rename to analyses/2024/keda/keda-implementation.md diff --git a/analyses/0011-keda/keda-issues.md b/analyses/2024/keda/keda-issues.md similarity index 100% rename from analyses/0011-keda/keda-issues.md rename to analyses/2024/keda/keda-issues.md diff --git a/analyses/0013-litmuschaos/litmuschaos-analysis.md b/analyses/2024/litmuschaos/litmuschaos-analysis.md similarity index 100% rename from analyses/0013-litmuschaos/litmuschaos-analysis.md rename to analyses/2024/litmuschaos/litmuschaos-analysis.md diff --git a/analyses/0013-litmuschaos/litmuschaos-implementation.md b/analyses/2024/litmuschaos/litmuschaos-implementation.md similarity index 100% rename from analyses/0013-litmuschaos/litmuschaos-implementation.md rename to analyses/2024/litmuschaos/litmuschaos-implementation.md diff --git a/analyses/0013-litmuschaos/litmuschaos-issues.md b/analyses/2024/litmuschaos/litmuschaos-issues.md similarity index 100% rename from analyses/0013-litmuschaos/litmuschaos-issues.md rename to analyses/2024/litmuschaos/litmuschaos-issues.md diff --git a/analyses/0016-helm/helm-analysis.md b/analyses/2025/helm/helm-analysis.md similarity index 100% rename from analyses/0016-helm/helm-analysis.md rename to analyses/2025/helm/helm-analysis.md diff --git a/analyses/0016-helm/helm-implementation.md b/analyses/2025/helm/helm-implementation.md similarity index 100% rename from analyses/0016-helm/helm-implementation.md rename to analyses/2025/helm/helm-implementation.md diff --git a/analyses/0016-helm/helm-issues-list.md b/analyses/2025/helm/helm-issues-list.md similarity index 100% rename from analyses/0016-helm/helm-issues-list.md rename to analyses/2025/helm/helm-issues-list.md diff --git a/analyses/0015-knative/analysis.md b/analyses/2025/knative/analysis.md similarity index 100% rename from analyses/0015-knative/analysis.md rename to analyses/2025/knative/analysis.md diff --git a/analyses/0015-knative/issues.md b/analyses/2025/knative/issues.md similarity index 100% rename from analyses/0015-knative/issues.md rename to analyses/2025/knative/issues.md diff --git a/analyses/0014-vitess/analysis.md b/analyses/2025/vitess/analysis.md similarity index 100% rename from analyses/0014-vitess/analysis.md rename to analyses/2025/vitess/analysis.md diff --git a/analyses/index.md b/analyses/index.md index e4c9eae5..8f3ba9e1 100644 --- a/analyses/index.md +++ b/analyses/index.md @@ -50,11 +50,11 @@ This directory contains completed analyses of the technical documentation for selected CNCF incubating and graduated software projects. The analyses are in one of two formats depending on when they were written. -Earlier analyses (**0001** - **0007**) are Markdown files, each of which is the -sole artifact of the analysis. +Earlier analyses (**2021**) have one project directory per project, and each of +those directories contains a single Markdown file as the only analysis artifact. -Subsequent analyses (**0008-** forward) each have their own directory containing -three analysis artifacts: +Subsequent analyses (**2023** onward) also use one directory per project, with +each directory containing one or more of these three artifact types: - [analysis.md](../docs/analysis/templates/analysis.md) evaluates the project documentation and provides comments and recommendations in a manner very diff --git a/package.json b/package.json index d41d791c..a9bd9754 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ "_check:markdown:all": "npm run -s _list:check:md | xargs -I {} -P 4 npx -p markdownlint-cli markdownlint -c .markdownlint.yaml {}", "_check:markdown:delta": "npm run -s _list:git:delta | xargs -I {} npx -p markdownlint-cli markdownlint -c .markdownlint.yaml {}", "_list:check:*": "npm run --loglevel=warn | grep -Ee '^\\s*check:[^:]+$'", - "_list:check:md:no-analysis": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' -a -not -path '*/00*'", - "_list:check:md": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' | grep -Eve '/000|/0010'", + "_list:check:md:no-analysis": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' -a -not -path './analyses/*'", + "_list:check:md": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' -a -not -path './analyses/*'", "_list:fix:*": "npm run --loglevel=warn | grep -Ee '^\\s*fix:[^:]+$' | grep -v 'fix:all'", "_list:git:delta": "git diff --name-only --diff-filter=ACMR | grep -E '\\.(js|md|scss|yml|yaml)$'", "build:preview": "npm run _build", From 4ca730908ba655f2f07c1b66fd40223d03f7df8f Mon Sep 17 00:00:00 2001 From: thisisobate Date: Tue, 24 Feb 2026 11:48:09 +0300 Subject: [PATCH 05/50] chore: prettify code Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .github/workflows/trigger-contribute-site-netlify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/trigger-contribute-site-netlify.yml b/.github/workflows/trigger-contribute-site-netlify.yml index af8e9237..db819727 100644 --- a/.github/workflows/trigger-contribute-site-netlify.yml +++ b/.github/workflows/trigger-contribute-site-netlify.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Call Netlify build hook run: | - curl -sS -X POST "${{ secrets.NETLIFY_CONTRIBUTE_SITE_BUILD_HOOK }}" \ No newline at end of file + curl -sS -X POST "${{ secrets.NETLIFY_CONTRIBUTE_SITE_BUILD_HOOK }}" From 23e7b70b5c3c4117914c0769eb472ace1134b18b Mon Sep 17 00:00:00 2001 From: thisisobate Date: Tue, 3 Mar 2026 15:48:12 +0000 Subject: [PATCH 06/50] chore: move info from top level README to docs readme Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- docs/index.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/docs/index.md b/docs/index.md index 9f616fb1..88b8685a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,8 +3,60 @@ title: CNCF Techdocs how-tos sidebar_position: 1 --- -# CNCF Techdocs how-tos +# CNCF TechDocs -This section contains documentation on how the CNCF TechDocs team does things. -While its intent is for the CNCF TechDocs team's use, we encourage project -maintainers to use these documents if you find them helpful. +This site contains resources provided by the CNCF Technical Documentation team, +including: + +- Docs about building websites and developing technical documentation, + including recommended tools, best practices, how-tos, and evaluation + checklists. It provides specific guidelines for: + - Setting up and maintaining a documentation website. + - Writing technical documentation for a project. + - Seeking assistance from the CNCF TechDocs community. + - [Analyzing project documentation](./analysis). +- [Analyses](./analyses): a collection of documentation analyses of CNCF projects + performed by the TechDocs team. + +## TechDocs Q&A + +The CNCF TechDocs team holds a [Zoom meeting][] to answer questions and discuss +anything to do with documentation. Meetings are held on the [fourth Wednesday of +every month at 8am Pacific time][date-time]. + +- [Zoom meeting][] link +- [Meeting notes][] + +> Formerly called _Office Hours_, TechDocs Q&A started on September +> 30, 2020. + +## Assistance program for technical documentation + +The TechDocs team can help CNCF projects analyze and improve their +documentation. For details, see the TechDocs +[assistance program](./assistance.md). + +## CNCF TechDocs team + +The full-time staff of the team is: + +- [Daniel Krook](https://github.com/krook) - Senior director of developer + experience, CNCF +- [Nate W.](https://github.com/nate-double-u) - Head of mentoring & + documentation, CNCF +- [Patrice Chalin](https://github.com/chalin) - Senior techdoc & webdev lead +- [Uchechukwu Obasi](https://github.com/thisisobate) - Developer advocate + +Consultants and volunteers also contribute to CNCF TechDocs efforts. + +## Licenses + +- Documentation: [CC-BY-4.0](LICENSE) +- Code: [Apache-2.0](LICENSE-CODE) + +[date-time]: + https://tockify.com/cncf.public.events/monthly?search=CNCF%20Tech%20Writers%20Office%20Hours +[Meeting notes]: + https://docs.google.com/document/d/1roexHTLCrErYjNT2NEoRsVnn_YNbQzZ1gyXNK8hXR4Q/ +[Zoom meeting]: + https://zoom-lfx.platform.linuxfoundation.org/meeting/95471930872?password=db1aa715-a60b-444c-8b14-71d44161a42e From 58d63edca95170330b885980ddedd7b58cf443b1 Mon Sep 17 00:00:00 2001 From: thisisobate Date: Tue, 3 Mar 2026 15:59:43 +0000 Subject: [PATCH 07/50] chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .cspell.yml | 4 ++++ docs/index.md | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.cspell.yml b/.cspell.yml index c13d3e97..0fa4166e 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -21,6 +21,7 @@ ignorePaths: # - CodeBlock words: - backstore + - Chalin - CLOTributor - CNCF - Docsy @@ -32,9 +33,12 @@ words: - mkdocs - nate - nvmrc + - Obasi - subpages - techdocs - toolkits - toto - triaging + - Uchechukwu + - webdev - Welsch diff --git a/docs/index.md b/docs/index.md index 88b8685a..abda93f8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,15 +8,15 @@ sidebar_position: 1 This site contains resources provided by the CNCF Technical Documentation team, including: -- Docs about building websites and developing technical documentation, - including recommended tools, best practices, how-tos, and evaluation - checklists. It provides specific guidelines for: +- Docs about building websites and developing technical documentation, including + recommended tools, best practices, how-tos, and evaluation checklists. It + provides specific guidelines for: - Setting up and maintaining a documentation website. - Writing technical documentation for a project. - Seeking assistance from the CNCF TechDocs community. - [Analyzing project documentation](./analysis). -- [Analyses](./analyses): a collection of documentation analyses of CNCF projects - performed by the TechDocs team. +- [Analyses](./analyses): a collection of documentation analyses of CNCF + projects performed by the TechDocs team. ## TechDocs Q&A @@ -44,7 +44,7 @@ The full-time staff of the team is: experience, CNCF - [Nate W.](https://github.com/nate-double-u) - Head of mentoring & documentation, CNCF -- [Patrice Chalin](https://github.com/chalin) - Senior techdoc & webdev lead +- [Patrice Chalin](https://github.com/chalin) - Senior TechDocs & webdev lead - [Uchechukwu Obasi](https://github.com/thisisobate) - Developer advocate Consultants and volunteers also contribute to CNCF TechDocs efforts. From b645aa67f5985f4f87cfa65613b99fe8ddbd8b3d Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Tue, 3 Mar 2026 16:37:47 +0000 Subject: [PATCH 08/50] chore: update all analyses to use correct docusaurus tags system (#340) * chore: update all analyses to use correct docusaurus tags system Signed-off-by: thisisobate * chore: CI fix Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .cspell.yml | 2 ++ analyses/2021/contour/analysis.md | 1 + analyses/2021/fluxcd/analysis.md | 1 + analyses/2021/krator/analysis.md | 1 + analyses/2021/kubernetes-gateway-api/analysis.md | 1 + analyses/2021/notary/analysis.md | 1 + analyses/2021/tremor/analysis.md | 1 + analyses/2023/backstage/backstage-glossary.md | 1 + analyses/2023/backstage/backstage-insights-summary.md | 1 + analyses/2023/backstage/backstage-issues.md | 1 + analyses/2023/backstage/user-roles.md | 1 + analyses/2023/etcd/etcd-issues.md | 1 + analyses/2023/in-toto/in-toto-analysis.md | 1 + analyses/2023/in-toto/in-toto-doc-issues.md | 1 + analyses/2023/in-toto/in-toto-implementation.md | 1 + analyses/2023/in-toto/index.md | 1 + analyses/2023/in-toto/survey-of-existing-doc.md | 1 + analyses/2023/porter/analysis.md | 1 + analyses/2024/TUF/implementation.md | 1 + analyses/2024/TUF/index.md | 1 + analyses/2024/TUF/issues.md | 1 + analyses/2024/keda/keda-analysis.md | 1 + analyses/2024/keda/keda-implementation.md | 1 + analyses/2024/keda/keda-issues.md | 1 + analyses/2024/litmuschaos/litmuschaos-issues.md | 1 + analyses/2025/knative/analysis.md | 2 +- analyses/2025/knative/issues.md | 2 +- analyses/2025/vitess/analysis.md | 2 +- analyses/index.md | 1 + 29 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.cspell.yml b/.cspell.yml index 0fa4166e..2af4e9b7 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -26,9 +26,11 @@ words: - CNCF - Docsy - dwelsch + - fluxcd - keda - knative - kedacore + - krator - krook - mkdocs - nate diff --git a/analyses/2021/contour/analysis.md b/analyses/2021/contour/analysis.md index 4c20b34e..eca478c6 100644 --- a/analyses/2021/contour/analysis.md +++ b/analyses/2021/contour/analysis.md @@ -1,5 +1,6 @@ --- title: Docs assessment +tags: [contour] cSpell:ignore: Horgan celestehorgan hashlinks --- diff --git a/analyses/2021/fluxcd/analysis.md b/analyses/2021/fluxcd/analysis.md index d86bac63..f78270e5 100644 --- a/analyses/2021/fluxcd/analysis.md +++ b/analyses/2021/fluxcd/analysis.md @@ -1,5 +1,6 @@ --- title: Assessment template +tags: [fluxcd] cSpell:ignore: celestehorgan Horgan --- diff --git a/analyses/2021/krator/analysis.md b/analyses/2021/krator/analysis.md index 5186a468..f4f72706 100644 --- a/analyses/2021/krator/analysis.md +++ b/analyses/2021/krator/analysis.md @@ -1,5 +1,6 @@ --- title: Krator Docs assessment +tags: [krator] cSpell:ignore: Krator celestehorgan CODEOWNERS --- diff --git a/analyses/2021/kubernetes-gateway-api/analysis.md b/analyses/2021/kubernetes-gateway-api/analysis.md index 073165d7..372a53d7 100644 --- a/analyses/2021/kubernetes-gateway-api/analysis.md +++ b/analyses/2021/kubernetes-gateway-api/analysis.md @@ -1,5 +1,6 @@ --- title: 'Assessment: Project Kubernetes Gateway API' +tags: [kubernetes-gateway-api] cSpell:ignore: Meha Bhalodiya mehabhalodiya kubernetes --- diff --git a/analyses/2021/notary/analysis.md b/analyses/2021/notary/analysis.md index bbadd5bb..76634b1b 100644 --- a/analyses/2021/notary/analysis.md +++ b/analyses/2021/notary/analysis.md @@ -1,5 +1,6 @@ --- title: Notary Project Docs Assessment +tags: [notary] cSpell:ignore: docset notaryproject celestehorgan --- diff --git a/analyses/2021/tremor/analysis.md b/analyses/2021/tremor/analysis.md index 53fd6fdd..e84ef354 100644 --- a/analyses/2021/tremor/analysis.md +++ b/analyses/2021/tremor/analysis.md @@ -1,5 +1,6 @@ --- title: 'Assessment: Project Tremor' +tags: [tremor] cSpell:ignore: Horgan onramps offramps LLDB Wayfair --- diff --git a/analyses/2023/backstage/backstage-glossary.md b/analyses/2023/backstage/backstage-glossary.md index 91c859f6..74a6f46b 100644 --- a/analyses/2023/backstage/backstage-glossary.md +++ b/analyses/2023/backstage/backstage-glossary.md @@ -1,5 +1,6 @@ --- title: Backstage Glossary +tags: [backstage] --- # Backstage Glossary diff --git a/analyses/2023/backstage/backstage-insights-summary.md b/analyses/2023/backstage/backstage-insights-summary.md index ace56641..edf3cf38 100644 --- a/analyses/2023/backstage/backstage-insights-summary.md +++ b/analyses/2023/backstage/backstage-insights-summary.md @@ -1,5 +1,6 @@ --- title: Backstage Insights +tags: [backstage] cSpell:ignore: flipside --- diff --git a/analyses/2023/backstage/backstage-issues.md b/analyses/2023/backstage/backstage-issues.md index 2e0c52ac..df7056fb 100644 --- a/analyses/2023/backstage/backstage-issues.md +++ b/analyses/2023/backstage/backstage-issues.md @@ -1,5 +1,6 @@ --- title: Backstage umbrella issue +tags: [backstage] --- # Backstage umbrella issue diff --git a/analyses/2023/backstage/user-roles.md b/analyses/2023/backstage/user-roles.md index d44fd819..d1869b55 100644 --- a/analyses/2023/backstage/user-roles.md +++ b/analyses/2023/backstage/user-roles.md @@ -1,5 +1,6 @@ --- title: Backstage User Roles for Doc +tags: [backstage] --- # Backstage User Roles for Doc diff --git a/analyses/2023/etcd/etcd-issues.md b/analyses/2023/etcd/etcd-issues.md index 123c5b88..76833943 100644 --- a/analyses/2023/etcd/etcd-issues.md +++ b/analyses/2023/etcd/etcd-issues.md @@ -1,5 +1,6 @@ --- title: etcd Umbrella Issue +tags: [etcd] cSpell:ignore: reconf --- diff --git a/analyses/2023/in-toto/in-toto-analysis.md b/analyses/2023/in-toto/in-toto-analysis.md index be8d5b5f..dca0bd54 100644 --- a/analyses/2023/in-toto/in-toto-analysis.md +++ b/analyses/2023/in-toto/in-toto-analysis.md @@ -1,5 +1,6 @@ --- title: Analysis of Existing Documentation +tags: [in-toto] --- # Analysis of Existing Documentation diff --git a/analyses/2023/in-toto/in-toto-doc-issues.md b/analyses/2023/in-toto/in-toto-doc-issues.md index 29f61b96..f599d1d3 100644 --- a/analyses/2023/in-toto/in-toto-doc-issues.md +++ b/analyses/2023/in-toto/in-toto-doc-issues.md @@ -1,5 +1,6 @@ --- title: Documentation Issues +tags: [in-toto] --- # Documentation Issues diff --git a/analyses/2023/in-toto/in-toto-implementation.md b/analyses/2023/in-toto/in-toto-implementation.md index 06ac4f3b..5ec2ab27 100644 --- a/analyses/2023/in-toto/in-toto-implementation.md +++ b/analyses/2023/in-toto/in-toto-implementation.md @@ -1,5 +1,6 @@ --- title: Implementation +tags: [in-toto] cSpell:ignore: roadmaps Cappos --- diff --git a/analyses/2023/in-toto/index.md b/analyses/2023/in-toto/index.md index 818c644f..d725cee3 100644 --- a/analyses/2023/in-toto/index.md +++ b/analyses/2023/in-toto/index.md @@ -1,5 +1,6 @@ --- title: README +tags: [in-toto] --- # README diff --git a/analyses/2023/in-toto/survey-of-existing-doc.md b/analyses/2023/in-toto/survey-of-existing-doc.md index 5405ccc9..adb33cb7 100644 --- a/analyses/2023/in-toto/survey-of-existing-doc.md +++ b/analyses/2023/in-toto/survey-of-existing-doc.md @@ -1,5 +1,6 @@ --- title: Survey of existing documentation as of 09/2023 +tags: [in-toto] --- # Survey of existing documentation as of 09/2023 diff --git a/analyses/2023/porter/analysis.md b/analyses/2023/porter/analysis.md index 34bec4c2..c2050c53 100644 --- a/analyses/2023/porter/analysis.md +++ b/analyses/2023/porter/analysis.md @@ -1,5 +1,6 @@ --- title: Porter Docs Analysis +tags: [porter] cSpell:ignore: Uchechukwu Obasi --- diff --git a/analyses/2024/TUF/implementation.md b/analyses/2024/TUF/implementation.md index fb21cfa5..f0ed54bb 100644 --- a/analyses/2024/TUF/implementation.md +++ b/analyses/2024/TUF/implementation.md @@ -1,5 +1,6 @@ --- title: Implementing TUF Doc Improvements +tags: [TUF] cSpell:ignore: RSTUF --- diff --git a/analyses/2024/TUF/index.md b/analyses/2024/TUF/index.md index 81e3de60..b0df22f6 100644 --- a/analyses/2024/TUF/index.md +++ b/analyses/2024/TUF/index.md @@ -1,5 +1,6 @@ --- title: TUF Documentation Analysis +tags: [TUF] cSpell:ignore: theupdateframework --- diff --git a/analyses/2024/TUF/issues.md b/analyses/2024/TUF/issues.md index 3faef04e..5676f044 100644 --- a/analyses/2024/TUF/issues.md +++ b/analyses/2024/TUF/issues.md @@ -1,5 +1,6 @@ --- title: TUF Issue +tags: [TUF] cSpell:ignore: theupdateframework --- diff --git a/analyses/2024/keda/keda-analysis.md b/analyses/2024/keda/keda-analysis.md index e327861f..cb4517dd 100644 --- a/analyses/2024/keda/keda-analysis.md +++ b/analyses/2024/keda/keda-analysis.md @@ -1,5 +1,6 @@ --- title: KEDA Documentation Analysis +tags: [KEDA] created: 2024-02-23 modified: 2024-04-09 author: Dave Welsch (@dwelsch-esi) diff --git a/analyses/2024/keda/keda-implementation.md b/analyses/2024/keda/keda-implementation.md index 695b6cd5..46e5bc32 100644 --- a/analyses/2024/keda/keda-implementation.md +++ b/analyses/2024/keda/keda-implementation.md @@ -1,5 +1,6 @@ --- title: Implementing KEDA Doc Improvements +tags: [KEDA] --- diff --git a/analyses/2024/keda/keda-issues.md b/analyses/2024/keda/keda-issues.md index 5eb497ba..7b048c8e 100644 --- a/analyses/2024/keda/keda-issues.md +++ b/analyses/2024/keda/keda-issues.md @@ -1,5 +1,6 @@ --- title: KEDA Umbrella Issue +tags: [KEDA] cSpell:ignore: externalscaler findability --- diff --git a/analyses/2024/litmuschaos/litmuschaos-issues.md b/analyses/2024/litmuschaos/litmuschaos-issues.md index f0b38b90..34acfded 100644 --- a/analyses/2024/litmuschaos/litmuschaos-issues.md +++ b/analyses/2024/litmuschaos/litmuschaos-issues.md @@ -1,5 +1,6 @@ --- title: Litmus Chaos Issue +tags: [LitmusChaos] cSpell:ignore: litmuschaos ChaoCenter --- diff --git a/analyses/2025/knative/analysis.md b/analyses/2025/knative/analysis.md index 3afc9755..ea6c3b0d 100644 --- a/analyses/2025/knative/analysis.md +++ b/analyses/2025/knative/analysis.md @@ -1,6 +1,6 @@ --- title: Knative Documentation Analysis -tags: Knative +tags: [Knative] created: 2025-07-25 modified: 2025-07-25 author: Dave Welsch (@dwelsch-esi) diff --git a/analyses/2025/knative/issues.md b/analyses/2025/knative/issues.md index fc040cee..c3314a14 100644 --- a/analyses/2025/knative/issues.md +++ b/analyses/2025/knative/issues.md @@ -1,6 +1,6 @@ --- title: Knative Issues -tags: Knative +tags: [Knative] created: 2025-07-28 modified: 2025-07-28 author: Dave Welsch (@dwelsch-esi) diff --git a/analyses/2025/vitess/analysis.md b/analyses/2025/vitess/analysis.md index 6f622b4b..691e9ca8 100644 --- a/analyses/2025/vitess/analysis.md +++ b/analyses/2025/vitess/analysis.md @@ -1,6 +1,6 @@ --- title: Vitess Documentation Analysis -tags: Vitess +tags: [Vitess] created: 2025-02-19 modified: 2025-02-19 author: Dave Welsch (dwelsch-esi) diff --git a/analyses/index.md b/analyses/index.md index 8f3ba9e1..e6f50b49 100644 --- a/analyses/index.md +++ b/analyses/index.md @@ -1,5 +1,6 @@ --- title: TechDocs Analysis for CNCF Projects +tags: [analyses] --- From a9e6024f8bf4de3b4d6c25e1c41c42010fe7a695 Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Tue, 3 Mar 2026 18:27:50 +0000 Subject: [PATCH 09/50] chore: fix MDX related errors for vitess and knative analyses (#341) Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- analyses/2025/knative/analysis.md | 4 ++-- analyses/2025/vitess/analysis.md | 25 ++++++++++++++----------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/analyses/2025/knative/analysis.md b/analyses/2025/knative/analysis.md index ea6c3b0d..106f3906 100644 --- a/analyses/2025/knative/analysis.md +++ b/analyses/2025/knative/analysis.md @@ -60,8 +60,8 @@ is stored on the knative/docs GitHub repo. #### Out of scope -- Other Knative repos: https://github.com/knative/\, for any \ not - listed in "In scope". +- Other Knative repos: `https://github.com/knative/REPO_NAME`, for any + `REPO_NAME` not listed in "In scope". ### How this document is organized diff --git a/analyses/2025/vitess/analysis.md b/analyses/2025/vitess/analysis.md index 691e9ca8..d721b18d 100644 --- a/analyses/2025/vitess/analysis.md +++ b/analyses/2025/vitess/analysis.md @@ -51,15 +51,18 @@ code is stored in its own repository in the Vitess GitHub project. #### In scope -- Website: -- Documentation: -- Website repo: -- Project repo (for reference): +- Website: [https://vitess.io/](https://vitess.io/) +- Documentation: [https://vitess.io/docs/](https://vitess.io/docs/) +- Website repo: + [https://github.com/vitessio/website](https://github.com/vitessio/website) +- Project repo (for reference): + [https://github.com/vitessio](https://github.com/vitessio) #### Out of scope -- Other Vitess repos: (In general, other Vitess - code repos are out of scope) +- Other Vitess repos: + [https://github.com/vitessio/](https://github.com/vitessio/) (In general, + other Vitess code repos are out of scope) ### How this document is organized @@ -482,11 +485,11 @@ Also on the Global TopoServer page, by the way: > --topo_global_root=/vitess/global > ``` > -> To avoid repetition we will use in our examples to signify the +> To avoid repetition we will use `topo_flags` in our examples to signify the > above flags. -Remove this. The `` placeholder does not seem to have been -implemented. There are no mentions of `` elsewhere in the +Remove this. The `topo_flags` placeholder does not seem to have been +implemented. There are no mentions of `topo_flags` elsewhere in the documentation, and in any case each would have to refer back to this page. In the FAQ: Rename the questions into concise headings when you consolidate the @@ -546,8 +549,8 @@ Here's how I'd rewrite it, defining placeholders for the parameters: > > where: > -> - is the root directory of the server installation -> - is the IP address of the topo server +> - `root_dir` is the root directory of the server installation +> - `cell_topo_addr` is the IP address of the topo server (or whatever the actual descriptions of the parameters are.) From 2c65e0257fa75952625adad01c56b2b65403b356 Mon Sep 17 00:00:00 2001 From: thisisobate Date: Thu, 5 Mar 2026 11:25:28 +0000 Subject: [PATCH 10/50] chore: nit fix Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- docs/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index abda93f8..76685544 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,8 +15,9 @@ including: - Writing technical documentation for a project. - Seeking assistance from the CNCF TechDocs community. - [Analyzing project documentation](./analysis). -- [Analyses](./analyses): a collection of documentation analyses of CNCF - projects performed by the TechDocs team. + +It also contains a collection of documentation analyses of CNCF projects +performed by the TechDocs team. ## TechDocs Q&A From e7bda941063ad278fbc644458096b00623d05c51 Mon Sep 17 00:00:00 2001 From: thisisobate Date: Tue, 10 Mar 2026 15:34:32 +0000 Subject: [PATCH 11/50] chore: nit fix Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 76685544..6d837e3d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,7 +14,7 @@ including: - Setting up and maintaining a documentation website. - Writing technical documentation for a project. - Seeking assistance from the CNCF TechDocs community. - - [Analyzing project documentation](./analysis). + - Analyzing project documentation. It also contains a collection of documentation analyses of CNCF projects performed by the TechDocs team. From fabc89d95f608cc3e82ffd33a787a0f0045e0e83 Mon Sep 17 00:00:00 2001 From: Uchechukwu Obasi Date: Tue, 17 Mar 2026 23:06:03 +0000 Subject: [PATCH 12/50] Chore: Fix all broken links outlined in issue description (#345) * Chore: Fix all broken links outlined in issue description Signed-off-by: thisisobate * chore: format files Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error again Signed-off-by: thisisobate * chore: fix link checker in CI Signed-off-by: thisisobate * chore: add backsticks to link Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: BruceHamilton --- .htmltest.yml | 2 ++ analyses/2023/etcd/etcd-analysis.md | 9 +++++---- analyses/2025/knative/issues.md | 4 ++-- docs/analysis/templates/analysis.md | 11 +++++------ docs/index.md | 4 ++-- docs/repo-setup.md | 5 +++-- docs/website-guidelines-checklist.md | 2 +- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.htmltest.yml b/.htmltest.yml index 84e17fde..ea46cd59 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -7,6 +7,8 @@ IgnoreInternalURLs: # list of paths IgnoreURLs: # list of regexes of URLs or path to be ignored - ^https?://localhost - \?no-link-check + - _PROJECT-WEBSITE_ + - _PROJECT-DOC-URL_ # FIXME: temporary ignore rules - assistance\.md - LICENSE diff --git a/analyses/2023/etcd/etcd-analysis.md b/analyses/2023/etcd/etcd-analysis.md index a9d78181..f8a06145 100644 --- a/analyses/2023/etcd/etcd-analysis.md +++ b/analyses/2023/etcd/etcd-analysis.md @@ -55,7 +55,7 @@ Netlify platform. The site's code is stored on the etcd GitHub repo. **Out of scope:** -- Other etcd repos: https://github.com/etcd-io/* +- Other etcd repos: `https://github.com/etcd-io/*` ## How this document is organized @@ -299,9 +299,10 @@ The website has a Those maintainer **responsible for approving** documentation PRs are listed as "approvers". -The website repo [README](../../README.md) is out of date. For example, -instructions for building the website state that the local build starts the -server on `localhost:8888`. It's actually `localhost:1313`. +The website repo +[README](https://github.com/etcd-io/website/blob/main/README.md) is out of date. +For example, instructions for building the website state that the local build +starts the server on `localhost:8888`. It's actually `localhost:1313`. ### Inclusive language diff --git a/analyses/2025/knative/issues.md b/analyses/2025/knative/issues.md index c3314a14..3e74e1ad 100644 --- a/analyses/2025/knative/issues.md +++ b/analyses/2025/knative/issues.md @@ -196,7 +196,7 @@ here: https://github.com/cncf/techdocs/tree/main/analyses under `0015-knative`. Related material in the current doc: -- https://github.com/knative/install +- https://knative.dev/docs/install/ Suggested changes: @@ -665,7 +665,7 @@ start by looking at the [mkdocs config file]. https://github.com/knative/docs/blob/main/contribute-to-docs/style-guide/voice-and-language.md#avoid-statements-that-will-soon-be-out-of-date [Install Knative using quickstart]: https://knative.dev/docs/install/quickstart-install/ -[Installing Knative]: https://github.com/knative/install +[Installing Knative]: https://knative.dev/docs/install/ [Installing the Knative CLI]: https://knative.dev/docs/client/install-kn/ [Knative Broker for Apache Kafka]: https://knative.dev/docs/eventing/brokers/broker-types/kafka-broker/ diff --git a/docs/analysis/templates/analysis.md b/docs/analysis/templates/analysis.md index e6103fa2..f37e7b7b 100644 --- a/docs/analysis/templates/analysis.md +++ b/docs/analysis/templates/analysis.md @@ -104,7 +104,7 @@ The accompanying [implementation] document breaks the recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed -into a series of [issues] and entered as GitHub [project-doc-website]/issues. +into a series of issues and entered on GitHub `PROJECT-DOC-WEBSITE/issues`. ### How to use this document @@ -115,9 +115,9 @@ Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining to their area of concern: -- [Project documentation](./?TODO=ADD-URL) -- [Contributor documentation](./?TODO=ADD-URL) -- [Website and documentation infrastructure](./?TODO=ADD-URL) +- [Project documentation](#project-documentation) +- [Contributor documentation](#contributor-documentation) +- [Website and documentation infrastructure](#website-and-infrastructure) Examples of CNCF documentation that demonstrate the analysis criteria are linked from the [criteria] specification. @@ -550,8 +550,7 @@ The numeric rating values used in this document are as follows [criteria]: ../criteria.md [implementation]: ./implementation.md [issues list]: ./issues-list.md -[project-doc-website]: ./?_PROJECT-DOC-URL_ -[project-website]: ./?_PROJECT-WEBSITE_ +[project-website]: _PROJECT-WEBSITE_ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 [website guidelines]: ../../website-guidelines-checklist.md diff --git a/docs/index.md b/docs/index.md index 6d837e3d..4fca64e0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -52,8 +52,8 @@ Consultants and volunteers also contribute to CNCF TechDocs efforts. ## Licenses -- Documentation: [CC-BY-4.0](LICENSE) -- Code: [Apache-2.0](LICENSE-CODE) +- Documentation: [CC-BY-4.0](https://github.com/cncf/techdocs/blob/main/LICENSE) +- Code: [Apache-2.0](https://github.com/cncf/techdocs/blob/main/LICENSE-CODE) [date-time]: https://tockify.com/cncf.public.events/monthly?search=CNCF%20Tech%20Writers%20Office%20Hours diff --git a/docs/repo-setup.md b/docs/repo-setup.md index bf7003c3..670bc107 100644 --- a/docs/repo-setup.md +++ b/docs/repo-setup.md @@ -39,10 +39,11 @@ For documentation this means you must: ```markdown # License - $PROJECT_NAME is licensed under an [Apache 2.0 license](./LICENSE). + $PROJECT_NAME is licensed under an + [Apache 2.0 license](https://github.com/cncf/techdocs/blob/main/LICENSE-CODE). The #PROJECT_NAME documentation is licensed under a - [CC-BY-4.0 license](./LICENSE-docs). + [CC-BY-4.0 license](https://github.com/cncf/techdocs/blob/main/LICENSE). ``` 2. Add both the CC-BY-4.0 `LICENSE-docs` and Apache 2.0 `LICENSE` files to the diff --git a/docs/website-guidelines-checklist.md b/docs/website-guidelines-checklist.md index f4ba8149..9c7d4259 100644 --- a/docs/website-guidelines-checklist.md +++ b/docs/website-guidelines-checklist.md @@ -5,7 +5,7 @@ title: Website guidelines & checklist # Website guidelines & checklist Per the -[CNCF Website Guidelines](https://github.com/cncf/foundation/blob/main/website-guidelines.md), +[CNCF Website Guidelines](https://github.com/cncf/foundation/blob/main/policies-guidance/website-guidelines.md), the following should be present:
_Note_, not all of these are applicable to all projects From 0186d21b9503b2b81a03f5ee22e5752a8e3d105c Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Mon, 30 Mar 2026 19:41:20 -0400 Subject: [PATCH 13/50] Update Docsy feedback links, htmltest & refcache (#347) Reduce htmltest CacheExpires to ~6 months, update docsy analytics link paths in analytics docs to /docs/content/feedback/#adding-analytics, and refresh static/refcache.json (LastSeen timestamps, some status codes, and a new GitHub ref entry). These changes keep link references current and shorten cache expiry for HTML tests. Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- .htmltest.yml | 2 +- docs/analytics/index.md | 2 +- docs/analytics/ua-to-ga4.md | 2 +- static/refcache.json | 236 ++++++++++++++++++------------------ 4 files changed, 123 insertions(+), 119 deletions(-) diff --git a/.htmltest.yml b/.htmltest.yml index ea46cd59..46e52b86 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -1,5 +1,5 @@ # cSpell:ignore github -CacheExpires: 9000h # ~ 12 months +CacheExpires: 4500h # ~ 6 months DirectoryPath: build TestFilesConcurrently: true IgnoreDirs: diff --git a/docs/analytics/index.md b/docs/analytics/index.md index 9567cbb0..d90c6f8b 100644 --- a/docs/analytics/index.md +++ b/docs/analytics/index.md @@ -20,7 +20,7 @@ title: Analytics > [Migrating Universal to Google Analytics 4](ua-to-ga4.md). [adding analytics]: - https://www.docsy.dev/docs/adding-content/feedback/#adding-analytics + https://www.docsy.dev/docs/content/feedback/#adding-analytics [CNCF sandbox]: https://github.com/cncf/sandbox [docsy]: https://www.docsy.dev [ga4]: https://support.google.com/analytics/answer/10089681 diff --git a/docs/analytics/ua-to-ga4.md b/docs/analytics/ua-to-ga4.md index 3cb83360..4134644b 100644 --- a/docs/analytics/ua-to-ga4.md +++ b/docs/analytics/ua-to-ga4.md @@ -171,7 +171,7 @@ that your project is using. [add gtag.js to your site]: https://developers.google.com/analytics/devguides/collection/gtagjs/ [adding analytics]: - https://www.docsy.dev/docs/adding-content/feedback/#adding-analytics + https://www.docsy.dev/docs/content/feedback/#adding-analytics [analytics.js]: https://support.google.com/analytics/answer/10268458 [connected]: https://support.google.com/analytics/answer/9973999 [docsy]: https://www.docsy.dev diff --git a/static/refcache.json b/static/refcache.json index 82bdf376..fc34510f 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -1,19 +1,19 @@ { "https://analytics.google.com": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.150103-04:00" + "LastSeen": "2026-03-30T15:42:08.467987-04:00" }, "https://blog.rook.io/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.211822-04:00" + "LastSeen": "2026-03-30T15:50:24.152457-04:00" }, "https://cloud-native.slack.com": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:42.798322-04:00" + "LastSeen": "2026-03-30T15:42:18.773037-04:00" }, "https://cloud-native.slack.com/archives/C057F81GFUG": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.065916-04:00" + "LastSeen": "2026-03-30T15:42:19.40547-04:00" }, "https://cncf-techdocs.netlify.app/": { "StatusCode": 206, @@ -117,119 +117,123 @@ }, "https://creativecommons.org/licenses/by/4.0/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.210818-04:00" + "LastSeen": "2026-03-30T15:42:05.214193-04:00" }, "https://developer.mozilla.org/en-US/docs/Web/Accessibility": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.847102-04:00" + "LastSeen": "2026-03-30T15:42:07.126948-04:00" }, "https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.5755-04:00" + "LastSeen": "2026-03-30T15:42:06.854488-04:00" }, "https://developers.google.com": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:40.68391-04:00" + "LastSeen": "2026-03-30T15:42:08.334708-04:00" }, "https://developers.google.com/analytics/devguides/collection/gtagjs/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:45.186799-04:00" + "LastSeen": "2026-03-30T15:42:10.823616-04:00" }, "https://developers.google.com/analytics/devguides/migration": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:40.365597-04:00" + "LastSeen": "2026-03-30T15:42:04.770291-04:00" }, "https://developers.google.com/analytics/devguides/migration/measurement/add-ga4": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:41.008153-04:00" + "LastSeen": "2026-03-30T15:42:05.801394-04:00" }, "https://developers.google.com/custom-search/docs/overview": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:38.568984-04:00" + "LastSeen": "2026-03-30T15:42:03.327195-04:00" }, "https://developers.google.com/tech-writing": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:41.235297-04:00" + "LastSeen": "2026-03-30T15:42:09.240702-04:00" }, "https://discourse.gohugo.io/t/audit-your-published-site-for-problems/35184": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:38.673658-04:00" + "LastSeen": "2026-03-30T15:42:03.321157-04:00" }, "https://docs.github.com/en/get-started": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.550448-04:00" + "LastSeen": "2026-03-30T15:42:05.161319-04:00" }, "https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.974872-04:00" + "LastSeen": "2026-03-30T15:42:12.284749-04:00" }, "https://docs.google.com/document/d/1roexHTLCrErYjNT2NEoRsVnn_YNbQzZ1gyXNK8hXR4Q/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:40.556759-04:00" + "LastSeen": "2026-03-30T15:42:05.093688-04:00" }, "https://docs.google.com/spreadsheets/d/1Mx4LhdI2Un-rvGMI73SlHxQH9D2HABAJclMB3dd6lnA": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.824829-04:00" + "LastSeen": "2026-03-30T15:42:09.171241-04:00" }, "https://docs.netlify.com/domains-https/custom-domains/multiple-domains/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.56912-04:00" + "LastSeen": "2026-03-30T15:42:07.340443-04:00" }, "https://docs.netlify.com/domains-https/netlify-dns/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.528687-04:00" + "LastSeen": "2026-03-30T15:42:06.919207-04:00" }, "https://docsearch.algolia.com/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.903227-04:00" + "LastSeen": "2026-03-30T15:42:04.078587-04:00" }, "https://docsfordevelopers.com/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:41.327555-04:00" + "LastSeen": "2026-03-30T15:42:09.45585-04:00" }, "https://docusaurus.io/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:44.454182-04:00" + "LastSeen": "2026-03-30T15:42:10.06588-04:00" }, "https://expertsupport.com/library/quick-and-easy-document-specifications/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.609931-04:00" + "LastSeen": "2026-03-30T15:42:05.188444-04:00" }, "https://falco.org/docs/getting-started/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.973046-04:00" + "LastSeen": "2026-03-30T15:42:04.808268-04:00" }, "https://git-scm.com/book/en/v2/Git-Tools-Submodules": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.523542-04:00" + "LastSeen": "2026-03-30T15:42:05.031791-04:00" }, "https://github.com/Okabe-Junya": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.433444-04:00" + "LastSeen": "2026-03-30T15:42:06.598873-04:00" }, "https://github.com/apps/dco": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.188531-04:00" + "LastSeen": "2026-03-30T15:42:05.113695-04:00" }, "https://github.com/brianpursley": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.819634-04:00" + "LastSeen": "2026-03-30T15:42:11.984654-04:00" }, "https://github.com/caniszczyk": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.673482-04:00" + "LastSeen": "2026-03-30T15:42:03.737588-04:00" }, "https://github.com/carlisia": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.066678-04:00" + "LastSeen": "2026-03-30T15:42:10.694129-04:00" }, "https://github.com/celestehorgan": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:43.110802-04:00" + "LastSeen": "2026-03-30T15:42:12.434807-04:00" }, "https://github.com/chalin": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.933773-04:00" + "LastSeen": "2026-03-30T15:42:05.637961-04:00" + }, + "https://github.com/cncf/foundation/blob/main/policies-guidance/website-guidelines.md": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:04.292849-04:00" }, "https://github.com/cncf/foundation/blob/main/website-guidelines.md": { "StatusCode": 206, @@ -237,67 +241,67 @@ }, "https://github.com/cncf/foundation/blob/master/charter.md#11-ip-policy": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.789697-04:00" + "LastSeen": "2026-03-30T15:42:06.371866-04:00" }, "https://github.com/cncf/foundation/blob/master/code-of-conduct.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.580775-04:00" + "LastSeen": "2026-03-30T15:42:07.468452-04:00" }, "https://github.com/cncf/foundation/blob/master/copyright-notices.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.954463-04:00" + "LastSeen": "2026-03-30T15:42:06.043978-04:00" }, "https://github.com/cncf/glossary": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.470017-04:00" + "LastSeen": "2026-03-30T15:42:04.451817-04:00" }, "https://github.com/cncf/project-template": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.95612-04:00" + "LastSeen": "2026-03-30T15:42:04.357533-04:00" }, "https://github.com/cncf/sandbox": { "StatusCode": 206, - "LastSeen": "2025-04-22T19:39:31.8704-04:00" + "LastSeen": "2026-03-30T15:54:06.254734-04:00" }, "https://github.com/cncf/servicedesk": { "StatusCode": 206, - "LastSeen": "2025-04-22T19:39:32.21738-04:00" + "LastSeen": "2026-03-30T15:54:06.789543-04:00" }, "https://github.com/cncf/tag-app-delivery": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.942477-04:00" + "LastSeen": "2026-03-30T15:42:07.621973-04:00" }, "https://github.com/cncf/tag-env-sustainability": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.676592-04:00" + "LastSeen": "2026-03-30T15:42:08.849948-04:00" }, "https://github.com/cncf/tag-runtime": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.337715-04:00" + "LastSeen": "2026-03-30T15:42:17.949104-04:00" }, "https://github.com/cncf/techdocs": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.275112-04:00" + "LastSeen": "2026-03-30T15:42:05.21562-04:00" }, "https://github.com/cncf/techdocs/blob/main/README.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.693644-04:00" + "LastSeen": "2026-03-30T15:42:10.050679-04:00" }, "https://github.com/cncf/techdocs/issues": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.599716-04:00" + "LastSeen": "2026-03-30T15:42:04.989619-04:00" }, "https://github.com/cncf/techdocs/issues/108": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.252231-04:00" + "LastSeen": "2026-03-30T15:42:06.957591-04:00" }, "https://github.com/cncf/techdocs/tree/main/analyses": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.795255-04:00" + "LastSeen": "2026-03-30T15:42:04.345559-04:00" }, "https://github.com/cncf/techdocs/tree/main/docs": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.864864-04:00" + "LastSeen": "2026-03-30T15:42:05.660632-04:00" }, "https://github.com/cncf/techdocs/tree/main/docs/README.md": { "StatusCode": 206, @@ -385,207 +389,207 @@ }, "https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.885666-04:00" + "LastSeen": "2026-03-30T15:42:05.651454-04:00" }, "https://github.com/envoyproxy/envoy/blob/main/GOVERNANCE.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.779403-04:00" + "LastSeen": "2026-03-30T15:42:11.372267-04:00" }, "https://github.com/etcd-io/website/pull/403": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.702767-04:00" + "LastSeen": "2026-03-30T15:42:07.944503-04:00" }, "https://github.com/helm/community": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.421105-04:00" + "LastSeen": "2026-03-30T15:42:08.988248-04:00" }, "https://github.com/hhiroshell": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.164426-04:00" + "LastSeen": "2026-03-30T15:42:08.051467-04:00" }, "https://github.com/jonasrosland": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.826771-04:00" + "LastSeen": "2026-03-30T15:42:10.181949-04:00" }, "https://github.com/kaitoii11": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.0703-04:00" + "LastSeen": "2026-03-30T15:42:06.157469-04:00" }, "https://github.com/kenta-iijima": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.574544-04:00" + "LastSeen": "2026-03-30T15:42:18.391798-04:00" }, "https://github.com/krook": { "StatusCode": 206, - "LastSeen": "2025-06-14T10:39:11.530306-04:00" + "LastSeen": "2026-03-30T15:54:06.299038-04:00" }, "https://github.com/kubernetes/website/blob/072d4b41b45f5311538c24d375432a755f9e3f4c/layouts/partials/navbar-version-selector.html": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:43.580609-04:00" + "LastSeen": "2026-03-30T15:42:13.428114-04:00" }, "https://github.com/kubernetes/website/blob/7462297ee388332a7b0d27625929fbf44d0c1ea9/config.toml": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:44.346332-04:00" + "LastSeen": "2026-03-30T15:42:14.486692-04:00" }, "https://github.com/kubernetes/website/blob/main/hugo.toml": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.655723-04:00" + "LastSeen": "2026-03-30T15:42:05.75394-04:00" }, "https://github.com/kubernetes/website/blob/main/layouts/partials/navbar-version-selector.html": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.193851-04:00" + "LastSeen": "2026-03-30T15:42:04.868363-04:00" }, "https://github.com/longhorn/website": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.512339-04:00" + "LastSeen": "2026-03-30T15:42:06.890572-04:00" }, "https://github.com/naonishijima": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.75709-04:00" + "LastSeen": "2026-03-30T15:42:05.474373-04:00" }, "https://github.com/nate-double-u": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.185856-04:00" + "LastSeen": "2026-03-30T15:42:04.498525-04:00" }, "https://github.com/nate-double-u/technical-documentation-versioning": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.615197-04:00" + "LastSeen": "2026-03-30T15:42:07.210219-04:00" }, "https://github.com/nats-io/nats-site/blob/master/MAINTAINERS.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.966203-04:00" + "LastSeen": "2026-03-30T15:42:06.212203-04:00" }, "https://github.com/nrb": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.535931-04:00" + "LastSeen": "2026-03-30T15:42:08.823263-04:00" }, "https://github.com/opentracing/opentracing.io/issues": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.018763-04:00" + "LastSeen": "2026-03-30T15:42:08.233122-04:00" }, "https://github.com/sftim": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:43.805308-04:00" + "LastSeen": "2026-03-30T15:42:13.756388-04:00" }, "https://github.com/tbatard": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.80753-04:00" + "LastSeen": "2026-03-30T15:42:07.630335-04:00" }, "https://github.com/thisisobate": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.199875-04:00" + "LastSeen": "2026-03-30T15:42:05.996396-04:00" }, "https://github.com/vitessio/website/pull/1119": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.751462-04:00" + "LastSeen": "2026-03-30T15:42:06.694925-04:00" }, "https://github.com/vmware-tanzu/velero/blob/1fd49f4fd66ecf6cd959ce258efbd9a549d8902b/site/config.yaml": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.43175-04:00" + "LastSeen": "2026-03-30T15:42:11.324475-04:00" }, "https://github.com/vmware-tanzu/velero/blob/db403c6c54b0048fada2b5db628c44be4ac0fd79/site/layouts/docs/versions.html": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.206262-04:00" + "LastSeen": "2026-03-30T15:42:08.409221-04:00" }, "https://goharbor.io/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.657248-04:00" + "LastSeen": "2026-03-30T15:42:13.037058-04:00" }, "https://helm.sh/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.065332-04:00" + "LastSeen": "2026-03-30T15:42:12.576727-04:00" }, "https://inclusivenaming.org": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.397055-04:00" + "LastSeen": "2026-03-30T15:42:04.342304-04:00" }, "https://kubernetes.io": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:43.368612-04:00" + "LastSeen": "2026-03-30T15:42:13.503668-04:00" }, "https://kubernetes.io/docs/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.362238-04:00" + "LastSeen": "2026-03-30T15:42:05.343069-04:00" }, "https://kubernetes.io/ja/docs/contribute/localization/#style-guide": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.933919-04:00" + "LastSeen": "2026-03-30T15:42:03.476847-04:00" }, "https://lunrjs.com/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.138198-04:00" + "LastSeen": "2026-03-30T15:42:04.679563-04:00" }, "https://prometheus.io/community/": { - "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.51314-04:00" + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:07.210126-04:00" }, "https://prometheus.io/docs": { - "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.57018-04:00" + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:04.092013-04:00" }, "https://servicedesk.cncf.io": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:40.355292-04:00" + "LastSeen": "2026-03-30T15:42:06.388194-04:00" }, "https://servicedesk.cncf.io/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.39085-04:00" + "LastSeen": "2026-03-30T15:42:04.134716-04:00" }, "https://slack.cncf.io": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.836734-04:00" + "LastSeen": "2026-03-30T15:42:20.296404-04:00" }, "https://support.google.com/analytics/answer/10089681": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.160574-04:00" + "LastSeen": "2026-03-30T15:42:04.053319-04:00" }, "https://support.google.com/analytics/answer/10220869": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:43.011475-04:00" + "LastSeen": "2026-03-30T15:42:08.125383-04:00" }, "https://support.google.com/analytics/answer/10268458": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:42.671721-04:00" + "LastSeen": "2026-03-30T15:42:07.546836-04:00" }, "https://support.google.com/analytics/answer/10759417": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:41.212361-04:00" + "LastSeen": "2026-03-30T15:42:06.104141-04:00" }, "https://support.google.com/analytics/answer/11583528": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:38.647647-04:00" + "LastSeen": "2026-03-30T15:42:03.316022-04:00" }, "https://support.google.com/analytics/answer/9973999": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:44.228594-04:00" + "LastSeen": "2026-03-30T15:42:09.619873-04:00" }, "https://support.linuxfoundation.org/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:42.307171-04:00" + "LastSeen": "2026-03-30T15:42:06.419752-04:00" }, "https://technical-documentation-versioning.netlify.app/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.032013-04:00" + "LastSeen": "2026-03-30T15:42:06.461006-04:00" }, "https://thanos.io/tip/contributing/how-to-contribute-to-docs.md": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:40.391896-04:00" + "LastSeen": "2026-03-30T15:42:06.907337-04:00" }, "https://tockify.com/cncf.public.events/monthly": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.549384-04:00" + "LastSeen": "2026-03-30T15:42:03.99942-04:00" }, "https://training.linuxfoundation.org/training/creating-effective-documentation-for-developers-lfc112/": { - "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.488425-04:00" + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:07.507568-04:00" }, "https://training.linuxfoundation.org/training/open-source-technical-documentation-essentials-lfc111/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.399607-04:00" + "LastSeen": "2026-03-30T15:42:05.695522-04:00" }, "https://velero.io/": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.584554-04:00" + "LastSeen": "2026-03-30T15:42:03.711888-04:00" }, "https://www.apache.org/licenses/LICENSE-2.0": { "StatusCode": 206, @@ -593,50 +597,50 @@ }, "https://www.cncf.io/project-metrics": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:38.392657-04:00" + "LastSeen": "2026-03-30T15:42:03.722801-04:00" }, "https://www.cncf.io/wp-content/themes/cncf-twenty-two/images/favicon.ico": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.164465-04:00" + "LastSeen": "2026-03-30T15:42:03.220005-04:00" }, "https://www.docsy.dev": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.471331-04:00" + "LastSeen": "2026-03-30T15:42:04.342318-04:00" }, - "https://www.docsy.dev/docs/adding-content/feedback/#adding-analytics": { + "https://www.docsy.dev/docs/content/feedback/#adding-analytics": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.700718-04:00" + "LastSeen": "2026-03-30T15:50:23.907648-04:00" }, "https://www.fluentd.org/testimonials": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:42.498739-04:00" + "LastSeen": "2026-03-30T15:42:12.835994-04:00" }, "https://www.git-scm.com/book/en/v2/Git-Tools-Submodules": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:41.942795-04:00" + "LastSeen": "2026-03-30T15:42:11.842922-04:00" }, "https://www.linuxfoundation.org/legal/privacy-policy": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:38.777636-04:00" + "LastSeen": "2026-03-30T15:42:03.931341-04:00" }, "https://www.linuxfoundation.org/legal/trademark-usage": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.262344-04:00" + "LastSeen": "2026-03-30T15:42:04.41037-04:00" }, "https://www.linuxfoundation.org/trademark-usage/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:40.189267-04:00" + "LastSeen": "2026-03-30T15:42:06.84379-04:00" }, "https://www.lios.ca/en/blogue/concept-task-reference/": { "StatusCode": 200, - "LastSeen": "2025-03-19T11:52:39.320251-04:00" + "LastSeen": "2026-03-30T15:42:04.193466-04:00" }, "https://www.rfc-editor.org/rfc/rfc2119": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:38.675317-04:00" + "LastSeen": "2026-03-30T15:42:03.825892-04:00" }, "https://zoom-lfx.platform.linuxfoundation.org/meeting/95471930872": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.706039-04:00" + "LastSeen": "2026-03-30T15:42:03.487723-04:00" } } From 86a9b422ab6ec406d017ab06aa45f2d76195b42f Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Tue, 31 Mar 2026 12:22:11 -0400 Subject: [PATCH 14/50] fix: in-toto analysis section title (#348) Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2023/in-toto/index.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/analyses/2023/in-toto/index.md b/analyses/2023/in-toto/index.md index d725cee3..1d527af3 100644 --- a/analyses/2023/in-toto/index.md +++ b/analyses/2023/in-toto/index.md @@ -1,10 +1,7 @@ --- -title: README -tags: [in-toto] +title: in-toto Analysis --- -# README - These documents are intended to recommend a direction for the ongoing development of technical documentation for the in-toto open source software (OSS) project. This effort is funded by the CNCF Foundation as part of its From 85ad257336658b51d6f070cab3cf1d2908ad5c68 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 8 Apr 2026 15:34:20 -0700 Subject: [PATCH 15/50] Flatcar documentation analysis (#339) * updating domain and netlify information (#299) * updating domain and netlify information Signed-off-by: Nate W * Update docs/services.md Co-authored-by: Patrice Chalin Signed-off-by: Nate W --------- Signed-off-by: Nate W Co-authored-by: Patrice Chalin Signed-off-by: Bruce Hamilton * Add trademark guidance for Series LLCs to website guidelines (#298) * adding guidance for Series LLCs Signed-off-by: Nate W * Update docs/website-guidelines-checklist.md Signed-off-by: Nate W * Update docs/website-guidelines-checklist.md Co-authored-by: Patrice Chalin Signed-off-by: Nate W * updating formatting after applying edit Signed-off-by: Nate W --------- Signed-off-by: Nate W Co-authored-by: Patrice Chalin Signed-off-by: Bruce Hamilton * Use slack.cncf.io as canonical URL (#300) Signed-off-by: Bruce Hamilton * Docusaurus version of docs pages (#301) Signed-off-by: Bruce Hamilton * Adjust markdown syntax of analyses pages (#302) Signed-off-by: Bruce Hamilton * Update README.md Updating Nate W.'s role. Signed-off-by: Nate W Signed-off-by: Bruce Hamilton * Fix licenses (#305) Signed-off-by: Bruce Hamilton * Add links to licenses to README and site footer (#306) Signed-off-by: Bruce Hamilton * Fix production URL (#308) Signed-off-by: Bruce Hamilton * Revise README, update PC role, add links (#309) * Revise README, update PC role, add links Signed-off-by: Patrice Chalin * Nate's feedback Signed-off-by: Patrice Chalin --------- Signed-off-by: Patrice Chalin Signed-off-by: Bruce Hamilton * [CI] Use htmltest for link checking (#310) Signed-off-by: Bruce Hamilton * Add Vitess analysis document (#284) * Add Vitess analysis document. Signed-off-by: Dave Welsch * renaming file Signed-off-by: Nate W * fixing formatting issues Signed-off-by: Nate W * fixing formatting issues Signed-off-by: Nate W * Update per review comments, including recommendations for FAQ and troubleshooting. Signed-off-by: Dave Welsch * Update analyses/0014-vitess/analysis.md Co-authored-by: Patrice Chalin Signed-off-by: Nate W * Update analyses/0014-vitess/analysis.md Co-authored-by: Patrice Chalin Signed-off-by: Nate W * removing SEO, Analytics and local search sections as out of scope for this analyis. Signed-off-by: Nate W * updating spelling wordlist Signed-off-by: Nate W * fixing format Signed-off-by: Nate W * removing markdown disable no-bare-urls Signed-off-by: Nate W * updating codefence formatting Signed-off-by: Nate W * disabling fence-code-langage check on quoted content Signed-off-by: Nate W * fixing formatting Signed-off-by: Nate W --------- Signed-off-by: Dave Welsch Signed-off-by: Nate W Co-authored-by: Nate W Co-authored-by: Patrice Chalin Signed-off-by: Bruce Hamilton * Analytics docs rework: factor out UA-to-GA4 instructions, and more (#312) Signed-off-by: Bruce Hamilton * adding Daniel to staff list (#316) * adding Daniel to staff list Signed-off-by: Nate W * formatting and spelling Signed-off-by: Nate W --------- Signed-off-by: Nate W Signed-off-by: Bruce Hamilton * removing mention of alphabetizing the staff list Signed-off-by: Nate W Signed-off-by: Bruce Hamilton * Update refcache: Add Daniel's GH handle (#319) Signed-off-by: Bruce Hamilton * [CI] Update packages (#321) Signed-off-by: Bruce Hamilton * [docs] Use canonical path in link (#322) Signed-off-by: Bruce Hamilton * Rename {analyses,docs}/**/README.md to index.md (#323) Signed-off-by: Bruce Hamilton * Fix page title, adjust link-check scripts (#324) Signed-off-by: Bruce Hamilton * Link, title, and filename adjustments (#325) Signed-off-by: Bruce Hamilton * Canonicalize README links, cleanup package.json (#326) Signed-off-by: Bruce Hamilton * Add Knative TechDoc analysis and issues list. (#329) Signed-off-by: Dave Welsch Signed-off-by: Bruce Hamilton * chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * chore: prettify docs Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * [CI] Update packages and revert mdl-disable directives Signed-off-by: Patrice Chalin Signed-off-by: Bruce Hamilton * Add Helm tech doc analysis Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * Edit links and add issues list doc Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * update proposed sidebar & typo and md formatting fixes Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * remove unedited issues list file Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * run prettier on helm analysis and implementation Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * Add helm issues list Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * Fix linter and spell errors Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * shorten headings Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton * adding ops/servicedesk label (#336) Signed-off-by: Nate W Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Chore: Drop numbered analysis folders and adopt a date format instead (#337) * chore: drop numbered analysis folders and adopt a date format instead Signed-off-by: thisisobate * chore: prettify docs Signed-off-by: thisisobate * chore: update check-md script Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Added template and started customizing Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * File fix - added analysis.md Also restored mistakenly used template Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting fixes Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Initial write-up of analysis Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Spelling fixes Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update index.md Removed dead link Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update ua-to-ga4.md Removed dead link Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: Add a GH workflow to trigger contribute site Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: prettify code Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: move info from top level README to docs readme Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: update all analyses to use correct docusaurus tags system (#340) * chore: update all analyses to use correct docusaurus tags system Signed-off-by: thisisobate * chore: CI fix Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: fix MDX related errors for vitess and knative analyses (#341) Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Chore: Fix all broken links outlined in issue description (#345) * Chore: Fix all broken links outlined in issue description Signed-off-by: thisisobate * chore: format files Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error again Signed-off-by: thisisobate * chore: fix link checker in CI Signed-off-by: thisisobate * chore: add backsticks to link Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Removed incomplete links The source for "Adding Analytics" is no longer available, removed links. Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Removed possible formatting build problems Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Temporarily removed last sections to isolate formatting issue Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md More formatting tests Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: move info from top level README to docs readme Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Chore: Fix all broken links outlined in issue description (#345) * Chore: Fix all broken links outlined in issue description Signed-off-by: thisisobate * chore: format files Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error again Signed-off-by: thisisobate * chore: fix link checker in CI Signed-off-by: thisisobate * chore: add backsticks to link Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * misc edits Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * adding ops/servicedesk label (#336) Signed-off-by: Nate W Signed-off-by: Bruce Hamilton * Chore: Drop numbered analysis folders and adopt a date format instead (#337) * chore: drop numbered analysis folders and adopt a date format instead Signed-off-by: thisisobate * chore: prettify docs Signed-off-by: thisisobate * chore: update check-md script Signed-off-by: thisisobate * chore: nit fix Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Added template and started customizing Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> * File fix - added analysis.md Also restored mistakenly used template Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting fixes Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Initial write-up of analysis Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: move info from top level README to docs readme Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Chore: Fix all broken links outlined in issue description (#345) * Chore: Fix all broken links outlined in issue description Signed-off-by: thisisobate * chore: format files Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error again Signed-off-by: thisisobate * chore: fix link checker in CI Signed-off-by: thisisobate * chore: add backsticks to link Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Removed possible formatting build problems Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Formatting Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md Temporarily removed last sections to isolate formatting issue Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analysis.md More formatting tests Signed-off-by: Bruce Hamilton * chore: move info from top level README to docs readme Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * chore: fix CI errors Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * chore: nit fix Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * Chore: Fix all broken links outlined in issue description (#345) * Chore: Fix all broken links outlined in issue description Signed-off-by: thisisobate * chore: format files Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error Signed-off-by: thisisobate * chore: fix markdown error again Signed-off-by: thisisobate * chore: fix link checker in CI Signed-off-by: thisisobate * chore: add backsticks to link Signed-off-by: thisisobate --------- Signed-off-by: thisisobate Signed-off-by: Bruce Hamilton * Used Prittier extension Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * link edits Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * minor edit to rebuild Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * spelling fix Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Bruce Hamilton * edit to rebuild Signed-off-by: Bruce Hamilton * Link edits Signed-off-by: Bruce Hamilton * Update Docsy feedback links, htmltest & refcache (#347) Reduce htmltest CacheExpires to ~6 months, update docsy analytics link paths in analytics docs to /docs/content/feedback/#adding-analytics, and refresh static/refcache.json (LastSeen timestamps, some status codes, and a new GitHub ref entry). These changes keep link references current and shorten cache expiry for HTML tests. Signed-off-by: Patrice Chalin Signed-off-by: Bruce Hamilton * Formatting fixes to build Signed-off-by: Bruce Hamilton * Minimal formatting fixes Signed-off-by: Bruce Hamilton * Ran VS Code Prittier extension on index.md Signed-off-by: Bruce Hamilton * minimal format fixes to index.md Signed-off-by: Bruce Hamilton * Restore docs/analytics/index.md from upstream/main Signed-off-by: Bruce Hamilton * Apply suggestion from @chalin Co-authored-by: Patrice Chalin Signed-off-by: Nate W * put back remaining part of template Signed-off-by: Bruce Hamilton * Fixed prittier hits Signed-off-by: Bruce Hamilton * Prittier VS Code ext - Format Document test Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * worked on the Recommendataions section Signed-off-by: Bruce Hamilton * more writing Signed-off-by: Bruce Hamilton * prittier extension test Signed-off-by: Bruce Hamilton * misc updates Signed-off-by: Bruce Hamilton * Initial write of proj doc reccomendations Signed-off-by: Bruce Hamilton * general edits Signed-off-by: Bruce Hamilton * spelling fix Signed-off-by: Bruce Hamilton --------- Signed-off-by: Nate W Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: Dave Welsch Signed-off-by: thisisobate Signed-off-by: Paige Calvert Signed-off-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Signed-off-by: Patrice Chalin Signed-off-by: Bruce Hamilton Co-authored-by: Nate W Co-authored-by: Patrice Chalin Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Co-authored-by: thisisobate Co-authored-by: Patrice Chalin Co-authored-by: Paige Calvert Co-authored-by: Bruce Hamilton <12780597+iRaindrop@users.noreply.github.com> Co-authored-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/flatcar/analysis.md | 745 ++++++++++++++++++++++++++++++ 1 file changed, 745 insertions(+) create mode 100644 analyses/2026/flatcar/analysis.md diff --git a/analyses/2026/flatcar/analysis.md b/analyses/2026/flatcar/analysis.md new file mode 100644 index 00000000..14597477 --- /dev/null +++ b/analyses/2026/flatcar/analysis.md @@ -0,0 +1,745 @@ +--- +title: Flatcar Documentation Analysis +tags: [Flatcar] +created: 2026-02-26 +modified: 2026-04-04 +author: Bruce Hamilton (@iRaindrop) +--- + + + +## Introduction + +This document is an analysis of the effectiveness and completeness of the +[Flatcar](https://www.flatcar.org/docs/latest) open source software (OSS) +project's documentation and website. It is funded by the CNCF Foundation as part +of its overall effort to incubate, grow, and graduate open source cloud native +software projects. + +According to CNCF best practices guidelines, effective documentation is a +prerequisite for program graduation. The documentation analysis is the first +step of a CNCF process aimed at assisting projects with their documentation +efforts. + +### Purpose + +This document was written to analyze the current state of Flatcar documentation. +It aims to provide project leaders with an informed understanding of potential +problems in current project documentation. A second **implementation** document +outlines an actionable plan for improvement. A third document is an **issues +list** of issues to be added to the project documentation repository. These +issues can be taken up by contributors to improve the documentation. + +This document: + +- Analyzes the current Flatcar technical documentation and website +- Compares existing documentation against the CNCF’s standards +- Recommends a program of key improvements with the largest return on investment + +### Scope of analysis + +The documentation discussed here includes the entire contents of the website, +the technical documentation, and documentation for contributors and users on the +Flatcar GitHub repository. + +The Flatcar website and documentation are written in Markdown and are compiled +using the Hugo generator with the Flatcar theme and served from a GitHub +repository. The site's code is stored on the Flatcar GitHub repo. + +#### In scope + +- Website: https://www.flatcar.org +- Documentation: https://www.flatcar.org/docs/latest +- Website repo: https://github.com/flatcar/flatcar-website + +#### Out of scope + +Any Flatcar content that is not accessed by the documentation URL, +https://www.flatcar.org/docs/latest,is outside the scope of this analysis. The +FAQ and Blog are outside the scope, however an argument can be made to keep an +up-to-date FAQ in the core documentation. + +### How this document is organized + +This document is divided into three sections that represent three major areas of +concern: + +- **Project documentation:** concerns documentation for users of the Flatcar + software, aimed at people who intend to use the project software +- **Contributor documentation:** concerns documentation for new and existing + contributors to the Flatcar OSS project +- **Website:** concerns the mechanics of publishing the documentation, and + includes branding, website structure, and maintainability + +Each section begins with summary ratings based on a rubric with appropriate +criteria for the section, then proceeds to: + +- **Comments**: observations about the existing documentation, with a focus on + how it does or does not help Flatcar users achieve their goals. +- **Recommendations**: suggested changes that would improve the effectiveness of + the documentation. + +The accompanying implementation document breaks the recommendations down into +concrete actions that can be implemented by project contributors. Its focus is +on drilling down to specific, achievable work that can be completed in +constrained blocks of time. Ultimately, the implementation items are decomposed +into a series of issues and entered as GitHub project-doc-website/issues. + +### How to use this document + +Readers interested only in actionable improvements should skip this document and +read the **implementation plan** and **issues list**. + +Readers interested in the current state of the documentation and the reasoning +behind the recommendations should read the section of this document pertaining +to their area of concern: + +- [Project documentation](#project-documentation) +- [Contributor documentation](#contributor-documentation) +- [Website and documentation infrastructure](#website-and-infrastructure) + +Examples of CNCF documentation that demonstrate the analysis criteria are linked +from the [criteria] specification. + +#### Recommendations, requirements, and best practices + +This analysis measures documentation against CNCF project maturity standards, +and suggests possible improvements. In most cases there is more than one way to +do things. Few recommendations here are meant to be prescriptive. Rather, the +recommended implementations represent the reviewers' experience with how to +apply documentation best practices. In other words, borrowing terminology from +the lexicon of RFCs, the changes described here should be understood as +"recommended" or "should" at the strongest, and "optional" or "may" in many +cases. Any "must" or "required" actions are clearly denoted as such, and pertain +to legal requirements such as copyright and licensing issues. + +## Project documentation + +Flatcar is an **incubating** project of CNCF. This means that the project should +be developing professional-quality documentation alongside the project code. + +| Criterion | [Rating (1-5)] | +| -------------------------- | -------------- | +| Information architecture | 3 | +| New user content | 3 | +| Content maintainability | 3 | +| Content creation processes | 4 | +| Inclusive language | 4 | + +### Comments + +The following sections contain brief assessments of each element of the project +documentation. + +The current Flatcar documentation table of contents defines the needed areas of +knowledge to install and provision Flatcar, but it does not readily show the +different paths for new users depending on their environment. + +The following comments regard the top-tier nodes in the current table of +contents: + +- The top "Flatcar Container Linux" page contains references and links that + appear to an alternate version of the table of contents. While its good to + provide quick links, the user wonders whether the TOC node reference the same + content, or if the links in the overview are supplemental. +- The "Installing" node contains the large "Cloud Providers" node, that might be + better as top tier node, same with "Bare Metal". The team agrees that + "Community supported platforms" could be merged into the "Cloud Providers" + node. +- The installation node should address all the new user paths, providing an + installation roadmap or strategy. The "Learning Series" node, introduced into + the documentation recently, outlines the key steps for installing, + configuring, and managing Flatcar conveying the life cycle. It would be good + for the top nodes to have a similar flow. +- The "Provisioning Tools" title is descriptive, but its unclear how other areas + of the docs relate to this section. +- The "Nebraska" node is about updates, but a top node should convey the + functionality rather than a product name. +- The "Setup and Operations" node casts too much of a wide net in its title. How + does "setup" differ from installation? The node contains several important + content areas that should be more discoverable, for instance: + - "Managing Clusters" might be better at a higher level because it's an + initial evaluation in deploying Flatcar. + - The Storage and Security nodes are typically at a higher level. + - The systemd is about core OS management, which should be reflected in its + title. +- The "Container Runtimes" node is expected to focus on containers and clusters. + An argument could be made to elevate "Getting Started with Kubernetes" and + "High Availability Kubernetes" to its own node, as Flatcar has its + optimization benefits for Kubernetes deployment. +- The "Migrating from CoreOS" node might be better placed earlier or within an + Installation node, as it is an installation scenario. +- The "Reference" node contains expected look-up information such as "Constants + and IDs" and "Supply chain security mechanisms" but the following sections + could have better placement: + - "Integrations" could be incorporated into the Cloud Providers documentation. + - "Developer Guides" contains conceptual content typically not found in a + Reference section, so "Developer Guides" or something more descriptive like + "Flatcar Development Guides" should be a top-tier node. +- The "How to Contribute" node is well-placed and has the expected content. + +The documentation also includes an FAQ, accessible from the top banner of the +home page. This FAQ has some content that would be prudent to verify that it's +also in the docs, such as historical context and how images are updated. +Conversely, there should be a few top-of-mind installation and support FAQ items +derived from the docs. + +Code blocks are different from other documentation sets as they are not +bordered, don't have a different fill background, don't have a copy button, and +the language is not indicated. + +New users might not be sure of the context for a given block of code. Is the +Linux prompt in a VM, in a client computer, or in a CLI session with a cloud +provider? Normally this can be deduced by the narrative, such as starting a +procedure with "In the VM window, use the following command to ..." or similar +guidance. + +In pages with code examples the narrative follows a casual and conversational +flow, introducing the steps such as "First do this", show a block of code, +followed by "Now do this", followed by the next block of code. While at first +this tone may seem refreshing from sterile nature of technical documentation, it +inhibits learning because it inhibits scanning and the ability to reference the +exact steps. It's easier to go back a numbered step in a procedure that to read +the narrative again to find that step. + +Essentially, the pertinent areas of knowledge to install and run Flatcar have +been identified and documented. They just need to be better organized. The next +step is to structure the documentation so that it meets these objectives: + +- The node and topic titles provide expected guidance, such as "Getting + Started", with nodes and sections organized for precise purposes, rather than + headings that serve as broad categories such as "Setup and Operations". +- The structure provides the expected flow and orientation so that users can + identify a pathway for learning about and deploying Flatcar efficiently and + optimally. +- The structure provides effective navigation and identification of the tools + and technologies so that users can identify the ones they need to learn about + and use. + +#### Information architecture + +The overall structure (pages/subpages/sections/subsections) of your project +documentation. We evaluate on the following: + +##### Is there high-level conceptual or About content? + +The current content is comprehensive on the key concepts needed for +understanding the processes and technologies involved. It's just a matter of +organizing discussion of the concepts to map to the user the path for installing +and configuring Flatcar. + +- **Is the documentation feature complete?** + + Yes, given that Flatcar is essentially an operating system and new features + and capabilities would be readily documented. Those features and areas need to + be continuously updated. + +- **Are there step-by-step instructions (tasks, tutorials) documented for + features?** + + Procedures, mainly invoking bash commands, are introduced informally and do + not follow the typical style of numbered steps that read "Use the following + command to ..." verbiage. It would be easy to rewrite for meet that + conformity. + +- **Are there any key features which are documented but missing task + documentation?** + + Not so much regarding features, but there are tasks in using provisioning + tools where step-by-step guidance would be appreciated. + +- **Are tasks clearly named according to user goals providing a happy path for + users to get their tasks accomplished?** + + Not currently. The content areas are established and just need to be + coordinated into a "Flatcar installation roadmap" for most user paths. + +- **If the documentation does not suffice, is there a clear escalation path for + users needing more help? (FAQ)** + + The current FAQ does not provide this information. + +- **If the product exposes an API, is there a complete reference?** + + There is a Developer Guide for building Flatcar Container Linux from source + and/or in modifying the OS. The SDK is not an API with function calls, but + rather a kit of scripts and tools. + +##### New user content + +New users are the most avid users of documentation, and need content +specifically for them. We evaluate on the following: + +- **Is “getting started” or similar clearly labeled?** + +The "Learning Series" is a well-documented getting started guide. There is a +Heading 3 heading "Getting started" in the overview. + +- **Is installation documented step-by-step?** + +Procedures are not formal step-by-steps, but rather sufficient descriptions of +the purpose and result of running the provided code example. + +Even if the new user does not know anything about the technologies, the guidance +still works but would be helped greatly with numbered steps. + +- **If needed, are multiple OSes documented?** + +Users are typically running a Linux machine, or a Virtual Machine running on +Windows or macOS. It would be beneficial to acquaint the user with any specific +client guidance, particularly when installing tools and images. For example, +brew may not install all components one gets from directly installing binaries. + +- **Do users know where to go after reading the getting started guide?** + +Intuitively perhaps, as the Learning Services provides sufficient content to get +Flatcar instances running. It would be good to have listings of next steps for +the various deployment scenarios. + +- **Is your new user content clearly signposted on your site’s homepage or at + the top of your information architecture?** + +Other than being a top level node in the table of contents, no. + +- **Is there sample code or other example content that can easily be + copy-pasted?** + +Yes, most pages have code samples, but currently the UI does not show code +example blocks with copy buttons. The code is simply in a different font. + +##### Content maintainability & site mechanics + +As a project scales, concerns like localized (translated) content and versioning +become large maintenance burdens, particularly if you don’t plan for them. + +We evaluate on the following: + +- **Is your documentation searchable?** + +Yes, the home page has a search bar where any results populate a dropdown for +selection. + +- **Are you planning for localization/internationalization?** + +There are currently no plans for localization. + +- **Do you have a clearly documented method for versioning your content?** + +Being an incubating project, the content is not versioned at this time. + +##### Content creation processes + +Documentation is only as useful as it is accurate and well-maintained, and +requires the same kind of review and approval processes as code. + +We evaluate on the following: + +- **Is there a clearly documented (ongoing) contribution process for + documentation?** + +Yes. There is a 'How to contribute' node with guidance for using the GitHub +repository, formatting, and style. + +- **Does your code release process account for documentation creation & + updates?** + +The team regularly updates content as the project is incubating. + +- **Who reviews and approves documentation pull requests?** + +Maintainers delegate doc approval to experienced code contributors. + +- **Does the website have a clear owner/maintainer?** + +Yes. + +##### Inclusive language + +Creating inclusive project communities is a key goal for all CNCF projects. + +We evaluate on the following: + +- **Are there any customer-facing utilities, endpoints, class names, or feature + names that use non-recommended words as documented by the + [Inclusive Naming Initiative](https://inclusivenaming.org) website?** + +The 175 hits were "master", "disable", "abort", and "man in the middle". Of +those only "abort" would necessitate a fix on eight occurrences. + +- **Does the project use language like "simple", "easy", etc.?** + +Yes, there are about 53 hits of "easy" to replace. The word "simple" is used, +but the context is a simpler piece of code or process rather than a task being +simple. + +### Recommendations + +The Flatcar documentation is naturally evolving into comprehensive and +understandable guidance. Technical savvy readers are well suited to gather the +information they need. New users can still find their path, but they need more +context of the technologies and tools involved, why they're needed, and the +environments they're used in. + +#### Information architecture + +The high-level recommendations follow a three tier approach to Flatcar +documentation. The first tier (node) should be a Getting Started, followed by +several nodes devoted to operations that span several categories organized by +functionality, and the last tier or group will be related content such as the +Reference and Contributor Documentation. These recommendations are designed to +be malleable. + +- Create a Getting Started node with the following sections: + - Create an "Installation roadmap" page for users that enables them to + determine how they want to deploy containers with Flatcar. The starting + points for the discussion are whether the user comes from an on-prem or + cloud environment and many users will use both. This purpose of this page is + to provide users with a procedure for installation. + - Prerequisites regarding client operating systems including running VMs from + macOS and Windows. + - Prerequisites for the Quickstart. + - Any guidance on installing binaries directly or using programs like brew. + - Create a "Configuration and Provisioning" page that covers the YAML coding, + using Butane and employing other configurations. Link this page from the + "Installation roadmap". + - Create a "Deployment" page, covering scenarios for Kubernetes, clustering + and distributed systems. Cover on-prem and cloud. Link from the + "Installation roadmap". + +- For the middle functional nodes of the table of contents, devise the + categories of tools, technologies, products, and terms pertinent areas for + Flatcar. While these could be under a broader umbrella, such as Operations, + nine or headings in the navigation bar is not too much, and speeds up + discovery. Given a list of about 60 tools, technologies, etc., Copilot devised + the following categories: + - Virtualization and Hypervisors + - Cloud and Hosting Platforms + - Bare Metal Booting and Installation + - Security and Compliance + - File systems + - System Services and OS Internals + - Provisioning Configuration and Automation + - Container and Orchestration + + Work with the team to devise the categories and keep to it! + +- Update the top Overview page to accommodate an introduction to the overall + documentation to guide users into determining their happy path to accomplish + their Flatcar objectives. + +- Add at least one architectural diagram to top overviews that depict a + container, a container with Flatcar, and perhaps nodes and clusters. + +#### Content maintainability and site mechanics + +- Edit each procedural topic, page with code examples, into a semiformal How-to + topic with numbered steps. While the conversational flow is inviting, it + inhibits scanning, predictability, and troubleshooting when needed to + reference a particular code block. No need to go granular, but at least have + then main steps numbered. + +- For most, but not every, code block make sure the user has the right context + of where the code is being run. Preceded each step with clauses such as the + following: + - On your local machine, use the following command to... + - Inside the Flatcar instance, ... + - SSH into the instance and then run ... + +- Reformat all code blocks to have a copy button. Having to manually select code + can pick up unwanted characters and is also more difficult on mobile devices. + +#### Inclusive language and tone + +- Consider replacing the eight occurrences of "abort". +- Remove occurrences of "easy" where it's implied that a task is easy. + +## Contributor documentation + +Flatcar is an **incubating** project of CNCF. This means that the project should +be developing professional-quality documentation alongside the project code. + +| Criterion | [Rating (1-5)] | +| ----------------------------------------- | -------------- | +| Communication methods documented | [rating (1-5)] | +| Beginner friendly issue backlog | [rating (1-5)] | +| “New contributor” getting started content | [rating (1-5)] | +| Project governance documentation | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Contributor Documentation +> here. + +The following sections contain brief assessments of each element of the +Contributor Documentation rubric. + +> AUTHOR NOTE: For each heading below, discuss how well the in-scope items meet +> these criteria. Keep in mind that much of the contributor documentation might +> be contained in the documentation repository. (Criteria are copied from +> criteria.md) + +#### Communication methods documented + +One of the easiest ways to attract new contributors is making sure they know how +to reach you. + +We evaluate on the following: + +- Is there a Slack/Discord/Discourse/etc. community and is it prominently linked + from your website? +- Is there a direct link to your GitHub organization/repository? +- Are weekly/monthly project meetings documented? Is it clear how someone can + join those meetings? +- Are mailing lists documented? + +#### Beginner-friendly issue backlog + +We evaluate on the following: + +- Are docs issues well-triaged? +- Is there a clearly marked way for new contributors to make code or + documentation contributions (i.e. a “good first issue” label)? +- Are issues well-documented (i.e., more than just a title)? +- Are issues maintained for staleness? + +#### New contributor getting started content + +Open source is complex and projects have many processes to manage that. Are +processes easy to understand and written down so that new contributors can jump +in easily? + +We evaluate on the following: + +- Do you have a community repository or section on your website? +- Is there a document specifically for new contributors/your first contribution? +- Do new users know where to get help? + +#### Project governance documentation + +One of the CNCF’s core project values is open governance. + +We evaluate on the following: + +- Is project governance clearly documented? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Communication methods documented + +#### Beginner-friendly issue backlog + +#### New contributor getting started content + +#### Project governance documentation + +## Website and infrastructure + +> AUTHOR NOTE: Pick the CNCF maturity level of the project: + +Flatcar is an **incubating** project of CNCF. This means that the project should +be developing professional-quality documentation alongside the project code. + +| Criterion | [Rating (1-5)] | +| ------------------------------------------- | -------------- | +| Single-source for all files | [rating (1-5)] | +| Meets min website req. (for maturity level) | [rating (1-5)] | +| Usability, accessibility, and design | [rating (1-5)] | +| Branding and design | [rating (1-5)] | +| Case studies/social proof | [rating (1-5)] | +| SEO, Analytics, and site-local search | [rating (1-5)] | +| Maintenance planning | [rating (1-5)] | +| A11y plan & implementation | [rating (1-5)] | +| Mobile-first plan & implementation | [rating (1-5)] | +| HTTPS access & HTTP redirect | [rating (1-5)] | +| Google Analytics 4 for production only | [rating (1-5)] | +| Indexing allowed for production server only | [rating (1-5)] | +| Within site / local search | [rating (1-5)] | +| Account custodians are documented | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Website and documentation +> infrastructure here. + +The following sections contain brief assessments of each element of the Website +and documentation infrastructure rubric. + +> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet +> these criteria. Keep in mind that much of the website infrastructure criteria +> depend on the tools (static site generator, website framework and hosting, +> analytics tools, etc.) and processes (project CI, release procedures, +> governance, etc.) used to produce the documentation. (Criteria are copied from +> criteria.md) + +#### Single-source requirement + +Source files for _all website pages_ should reside in a single repo. Among other +problems, keeping source files in two places: + +- confuses contributors +- requires you to keep two sources in sync +- increases the likelihood of errors +- makes it more complicated to generate the documentation from source files + +Ideally, all website files should be in the **website repo** itself. +Alternatively, files should be brought into the website repo via [git +submodules][git-submodules]. + +If a project chooses to keep source files in multiple repos, they need a clearly +documented strategy for managing mirrored files and new contributions. + +#### Minimal website requirements + +Listed here are the minimal website requirements for projects based on their +[maturity level][maturity-level], either incubating or graduated. (These are the +only two levels for which a tech docs analysis can be requested.) + + + +| Criterion | Incubating Requirement | Graduated Requirement | +| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | +| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | +| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | +| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | +| **Project doc**: hosting | Hosted directly | All Hosted directly | +| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | + + + +[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules +[maturity-level]: + https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations +[cncf-servicedesk]: https://servicedesk.cncf.io + +#### Usability, accessibility and devices + +Most CNCF websites are accessed from mobile and other non-desktop devices at +least 10-20% of the time. Planning for this early in your website's design will +be much less effort than retrofitting a desktop-first design. + +- Is the website usable from mobile? +- Are doc pages readable? +- Are all / most website features accessible from mobile -- such as the top-nav, + site search and in-page table of contents? +- Might a [mobile-first] design make sense for your project? + +[mobile-first]: + https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first + +Plan for suitable [accessibility][] measures for your website. For example: + +- Are color contrasts significant enough for color-impaired readers? +- Are most website features usable using a keyboard only? +- Does text-to-speech offer listeners a good experience? + +It is up to each project to set their own guidelines. + +[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility + +#### Branding and design + +CNCF seeks to support enterprise-ready open source software. A key aspect of +this is branding and marketing. + +We evaluate on the following: + +- Is there an easily recognizable brand for the project (logo + color scheme) + clearly identifiable? +- Is the brand used across the website consistently? +- The website’s typography clean and well-suited for reading? + +#### Case studies/social proof + +One of the best ways to advertise an open source project is to show other +organizations using it. + +We evaluate on the following: + +- Are there case studies available for the project and are they documented on + the website? +- Are there user testimonials available? +- Is there an active project blog? +- Are there community talks for the project and are they present on the website? +- Is there a logo wall of users/participating organizations? + +#### SEO, Analytics and site-local search + +SEO helps users find your project, and it's documentation, and analytics helps +you monitor site traffic and diagnose issues like page 404s. Intra-site search, +while optional, can offer your readers a site-focused search results. + +We evaluate on the following: + +- Analytics: + - Is analytics enabled for the production server? + - Is analytics disabled for all other deploys? + - If your project used Google Analytics, have you migrated to GA4? + - Can Page-not-found (404) reports easily be generated from your site + analytics? Provide a sample of the site's current top-10 404s. +- Is site indexing supported for the production server, while disabled for + website previews and builds for non-default branches? +- Is local intra-site search available from the website? +- Are the current custodian(s) of the following accounts clearly documented: + analytics, Google Search Console, site-search (such as Google CSE or Algolia) + +#### Maintenance planning + +Website maintenance is an important part of project success, especially when +project maintainers aren’t web developers. + +We evaluate on the following: + +- Is your website tooling well-supported by the community (i.e., Hugo with the + Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) +- Are you actively cultivating website maintainers from within the community? +- Are site build times reasonable? +- Do site maintainers have adequate permissions? + +#### Other + +- Is your website accessible via HTTPS? +- Does HTTP access, if any, redirect to HTTPS? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Single-source requirement + +#### Minimal website requirements + +#### Usability, accessibility and devices + +#### Branding and design + +#### Case studies/social proof + +#### SEO, Analytics and site-local search + +#### Maintenance planning + +#### Other + +#### References and notes + +##### Rating values + +The numeric rating values used in this document are as follows + +1. Not present +2. Needs improvement +3. Meets standards +4. Meets or exceeds standards +5. Exemplary + +[criteria]: ../criteria.md +[implementation]: ./implementation.md +[issues list]: ./issues-list.md +[project-website]: _PROJECT-WEBSITE_ +[Rating (1-5)]: #rating-values +[rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 +[website guidelines]: ../../website-guidelines-checklist.md From 82765648b5f6cd7c4d7cf32467fe754b8ee887b9 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Thu, 16 Apr 2026 22:18:43 -0400 Subject: [PATCH 16/50] Update deps, commit lockfile, override webpackbar as build fix, refactor and update workflow action versions to use lockfile (#350) Signed-off-by: BruceHamilton --- .cspell.yml | 1 + .../npm-ci-via-cached-nvmrc/action.yml | 15 + .github/workflows/format-check.yml | 18 +- .github/workflows/link-check.yml | 9 +- .github/workflows/spell-check.yml | 9 +- .gitignore | 1 - docusaurus.config.ts | 7 +- package-lock.json | 20487 ++++++++++++++++ package.json | 33 +- scripts/postinstall-webpackbar-notice.mjs | 39 + 10 files changed, 20576 insertions(+), 43 deletions(-) create mode 100644 .github/actions/npm-ci-via-cached-nvmrc/action.yml create mode 100644 package-lock.json create mode 100644 scripts/postinstall-webpackbar-notice.mjs diff --git a/.cspell.yml b/.cspell.yml index 2af4e9b7..bf753dbd 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -27,6 +27,7 @@ words: - Docsy - dwelsch - fluxcd + - github - keda - knative - kedacore diff --git a/.github/actions/npm-ci-via-cached-nvmrc/action.yml b/.github/actions/npm-ci-via-cached-nvmrc/action.yml new file mode 100644 index 00000000..5fa44e9d --- /dev/null +++ b/.github/actions/npm-ci-via-cached-nvmrc/action.yml @@ -0,0 +1,15 @@ +name: npm ci via cached .nvmrc +description: >- + Installs Node from .nvmrc with npm cache enabled and runs npm ci. The job must + run actions/checkout before this action. + +runs: + using: composite + steps: + - uses: actions/setup-node@v6 + with: + node-version-file: .nvmrc + cache: npm + - name: Install dependencies + run: npm ci + shell: bash diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml index 8fc956a7..0a31794a 100644 --- a/.github/workflows/format-check.yml +++ b/.github/workflows/format-check.yml @@ -8,24 +8,14 @@ jobs: name: FILE FORMAT runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: npm - cache-dependency-path: package.json - - run: npm install + - uses: actions/checkout@v6 + - uses: ./.github/actions/npm-ci-via-cached-nvmrc - run: npm run check:format markdown-linter: name: MARKDOWN linter runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: npm - cache-dependency-path: package.json - - run: npm install + - uses: actions/checkout@v6 + - uses: ./.github/actions/npm-ci-via-cached-nvmrc - run: npm run check:markdown diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index ae5958ee..bb003298 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -8,11 +8,6 @@ jobs: name: LINK checking runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: npm - cache-dependency-path: package.json - - run: npm install + - uses: actions/checkout@v6 + - uses: ./.github/actions/npm-ci-via-cached-nvmrc - run: npm run check:links diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index e676bf03..71217d81 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -8,11 +8,6 @@ jobs: name: SPELLING check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: npm - cache-dependency-path: package.json - - run: npm install + - uses: actions/checkout@v6 + - uses: ./.github/actions/npm-ci-via-cached-nvmrc - run: npm run check:spelling diff --git a/.gitignore b/.gitignore index e6479dbb..0894bb53 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,5 @@ dist # npm assets node_modules/ -package-lock.json /tmp diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 2cb54432..45d8d288 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -26,7 +26,12 @@ const config: Config = { projectName: 'techdocs', onBrokenLinks: 'warn', // TODO: 'error' or 'throw' once we've fixed all links - onBrokenMarkdownLinks: 'warn', + + markdown: { + hooks: { + onBrokenMarkdownLinks: 'warn', + }, + }, trailingSlash: true, diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..d88037fa --- /dev/null +++ b/package-lock.json @@ -0,0 +1,20487 @@ +{ + "name": "techdocs", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "techdocs", + "version": "0.0.0", + "hasInstallScript": true, + "license": "CC-BY-4.0", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/preset-classic": "3.10.0", + "@mdx-js/react": "^3.1.1", + "clsx": "^2.1.1", + "prism-react-renderer": "^2.4.1", + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/tsconfig": "3.10.0", + "@docusaurus/types": "3.10.0", + "cspell": "^10.0.0", + "markdown-link-check": "3.14.2", + "markdownlint": "^0.40.0", + "markdownlint-cli": "^0.48.0", + "npm-check-updates": "^21.0.2", + "prettier": "^3.8.3", + "typescript": "~6.0.2" + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.16.2.tgz", + "integrity": "sha512-n9s6bEV6imdtIEd+BGP7WkA4pEZ5YTdgQ05JQhHwWawHg3hyjpNwC0TShGz6zWhv+jfLDGA/6FFNbySFS0P9cw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.8.tgz", + "integrity": "sha512-3YEorYg44niXcm7gkft3nXYItHd44e8tmh4D33CTszPgP0QWkaLEaFywiNyJBo7UL/mqObA/G9RYuU7R8tN1IA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.8", + "@algolia/autocomplete-shared": "1.19.8" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.8.tgz", + "integrity": "sha512-ZvJWO8ZZJDpc1LNM2TTBdmQsZBLMR4rU5iNR2OYvEeFBiaf/0ESnRSSLQbryarJY4SVxtoz6A2ZtDMNM+iQEAA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.8" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.8.tgz", + "integrity": "sha512-h5hf2t8ejF6vlOgvLaZzQbWs5SyH2z4PAWygNAvvD/2RI29hdQ54ldUGwqVuj9Srs+n8XUKTPUqb7fvhBhQrnQ==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.50.2.tgz", + "integrity": "sha512-52iq0vHy1sphgnwoZyx5PmbEt8hsh+m7jD123LmBs6qy4GK7LbYZIeKd+nSnSipN2zvKRZ2zScS6h9PW3J7SXg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.50.2.tgz", + "integrity": "sha512-WpPIUg+cSG2aPUG0gS8Ko9DwRgbRPUZxJkolhL2aCsmSlcEEZT65dILrfg5ovcxtx0Kvr+xtBVsTMtsQWRtPDQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.50.2.tgz", + "integrity": "sha512-Gj2MgtArGcsr82kIqRlo6/dCAFjrs2gLByEqyRENuT7ugrSMFuqg1vDzeBjRL1t3EJEJCFtT0PLX3gB8A6Hq4Q==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.50.2.tgz", + "integrity": "sha512-CUqoid5jDpmrc0oK3/xuZXFt6kwT0P9Lw7/nsM14YTr6puvmi+OUKmURpmebQF22S2vCG8L1DAoXXujxQUi/ug==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.50.2.tgz", + "integrity": "sha512-AndZWFoc0gbP5901OeQJ73BazgGgSGiBEba4ohdoJuZwHTO2Gio8Q4L1VLmytMBYcviVigB0iICToMvEJxI4ug==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.50.2.tgz", + "integrity": "sha512-NWoL+psEkz5dIzweaByVXuEB45wS8/rk0E0AhMMnaVJdVs7TcACPH2/OURm+N0xRDITkTHqCna823rd6Uqntdg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.50.2.tgz", + "integrity": "sha512-ypSboUJ3XJoQz5DeDo82hCnrRuwq3q9ZdFhVKAik9TnZh1DvLqoQsrbBjXg7C7zQOtV/Qbge/HmyoV6V5L7MhQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" + }, + "node_modules/@algolia/ingestion": { + "version": "1.50.2", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.50.2.tgz", + "integrity": "sha512-VlR2FRXLw2bCB94SQo6zxg/Qi+547aOji6Pb+dKE7h1DMCCY317St+OpjpmgzE+bT2O9ALIc0V4nVIBOd7Gy+Q==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.50.2", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.50.2.tgz", + "integrity": "sha512-Cmvfp2+qopzQt8OilU97rhLhosq7ZrB6uieok3EwFUqG/aalPg6DgfCmu0yJMrYe+KMC1qRVt1MTRAUwLknUMQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.50.2.tgz", + "integrity": "sha512-jrkuyKoOM7dFWQ/6Y4hQAse2SC3L/RldG6GnPjMvAj65h+7Ubb51S0pKk4ofSStF0xm4LCNe0C4T6XX4nOFDiQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.50.2.tgz", + "integrity": "sha512-4107YLJqCudPiBUlwnk6oTSUVwU7ab+qL1SfQGEDYI8DZH5gsf1ekPt9JykXRKYXf2IfouFL5GiCY/PHTFIjYw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.50.2.tgz", + "integrity": "sha512-vOrd3MQpLgmf6wXAueTuZ/cA0W4uRwIHHaxNy3h+a6YcNn6bCV/gFdZuv3F13v593zRU2k5R75NmvRWLenvMrw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.50.2.tgz", + "integrity": "sha512-Mu9BFtgzGqDUy5Bcs2nMyoILIFSN13GKQaklKAFIsd0K3/9CpNyfeBc+/+Qs6mFZLlxG9qzullO7h+bjcTBuGQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspell/cspell-bundled-dicts": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.0.0.tgz", + "integrity": "sha512-ci410HEkng2582oOjlRHQtlGXwh+rUC/mVcN9dObLHpKhvPgzn2S6vT56pARstxxZpcCUG/oLhn3dCqdJlVzmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-ada": "^4.1.1", + "@cspell/dict-al": "^1.1.1", + "@cspell/dict-aws": "^4.0.17", + "@cspell/dict-bash": "^4.2.2", + "@cspell/dict-companies": "^3.2.11", + "@cspell/dict-cpp": "^7.0.2", + "@cspell/dict-cryptocurrencies": "^5.0.5", + "@cspell/dict-csharp": "^4.0.8", + "@cspell/dict-css": "^4.1.1", + "@cspell/dict-dart": "^2.3.2", + "@cspell/dict-data-science": "^2.0.13", + "@cspell/dict-django": "^4.1.6", + "@cspell/dict-docker": "^1.1.17", + "@cspell/dict-dotnet": "^5.0.13", + "@cspell/dict-elixir": "^4.0.8", + "@cspell/dict-en_us": "^4.4.33", + "@cspell/dict-en-common-misspellings": "^2.1.12", + "@cspell/dict-en-gb-mit": "^3.1.22", + "@cspell/dict-filetypes": "^3.0.18", + "@cspell/dict-flutter": "^1.1.1", + "@cspell/dict-fonts": "^4.0.6", + "@cspell/dict-fsharp": "^1.1.1", + "@cspell/dict-fullstack": "^3.2.9", + "@cspell/dict-gaming-terms": "^1.1.2", + "@cspell/dict-git": "^3.1.0", + "@cspell/dict-golang": "^6.0.26", + "@cspell/dict-google": "^1.0.9", + "@cspell/dict-haskell": "^4.0.6", + "@cspell/dict-html": "^4.0.15", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-java": "^5.0.12", + "@cspell/dict-julia": "^1.1.1", + "@cspell/dict-k8s": "^1.0.12", + "@cspell/dict-kotlin": "^1.1.1", + "@cspell/dict-latex": "^5.1.0", + "@cspell/dict-lorem-ipsum": "^4.0.5", + "@cspell/dict-lua": "^4.0.8", + "@cspell/dict-makefile": "^1.0.5", + "@cspell/dict-markdown": "^2.0.16", + "@cspell/dict-monkeyc": "^1.0.12", + "@cspell/dict-node": "^5.0.9", + "@cspell/dict-npm": "^5.2.38", + "@cspell/dict-php": "^4.1.1", + "@cspell/dict-powershell": "^5.0.15", + "@cspell/dict-public-licenses": "^2.0.16", + "@cspell/dict-python": "^4.2.26", + "@cspell/dict-r": "^2.1.1", + "@cspell/dict-ruby": "^5.1.1", + "@cspell/dict-rust": "^4.1.2", + "@cspell/dict-scala": "^5.0.9", + "@cspell/dict-shell": "^1.1.2", + "@cspell/dict-software-terms": "^5.2.2", + "@cspell/dict-sql": "^2.2.1", + "@cspell/dict-svelte": "^1.0.7", + "@cspell/dict-swift": "^2.0.6", + "@cspell/dict-terraform": "^1.1.3", + "@cspell/dict-typescript": "^3.2.3", + "@cspell/dict-vue": "^3.0.5", + "@cspell/dict-zig": "^1.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-json-reporter": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.0.0.tgz", + "integrity": "sha512-hq5dui2ngYMZKbBauX7K1tkqlu81sX/uaCO49ZJLPjeZsE1auZLtHehDLfAr/ZXoj/dLYeQMSKiaJyE+qLVPHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-types": "10.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-performance-monitor": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.0.0.tgz", + "integrity": "sha512-2vMh2pLt2dg/ArYvWjMP4v9HCm0pRhONsEJyc8oHdZyOYvX7trixX894I0M39+VBf3yWtPCEgYRh1UDXNIZRig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-pipe": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.0.0.tgz", + "integrity": "sha512-qcgHhQvtEX8LSwIVsWrdUgiGim52lN3jT+ghlkdp72v+nBcGKsS2frEKTmbGLug+xcqppkzs6Q6VmsFp1MGtfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-resolver": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.0.0.tgz", + "integrity": "sha512-8H+IUDB7SmrpcRugQ5f55qG81ZShk6nQRk+natLz41TEY98D8/LCmjHEkh/vhDPph9pVJmNUp7JcM2E1UHEa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^5.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-service-bus": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.0.0.tgz", + "integrity": "sha512-V7eigqg/TOoKwNK4Q18wr9KGxA8U5SFcoWVS8RyAxv4mQ+yNKHhvHEbRBifjPbQDer66afOrclb2UbqkIy2SOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.0.tgz", + "integrity": "sha512-IQA++Idqb8fZzkCbHq3+T+9yG9WpeaBxomOrG2KcR/Pj0CgnovzuApYKL2cc35UWLePboKinMeqEPiweFpHVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/cspell-worker": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.0.0.tgz", + "integrity": "sha512-V5bjMldNksilnja3fu8muQmkW5/guyua1yNVOhoE2r7othSvjuDlGMl8g2bQSrWjp+UXu0dP/BEZ6JC/IfNwTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cspell-lib": "10.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/dict-ada": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.1.1.tgz", + "integrity": "sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-al": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-al/-/dict-al-1.1.1.tgz", + "integrity": "sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-aws": { + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.17.tgz", + "integrity": "sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-bash": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.2.tgz", + "integrity": "sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-shell": "1.1.2" + } + }, + "node_modules/@cspell/dict-companies": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.11.tgz", + "integrity": "sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cpp": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.0.2.tgz", + "integrity": "sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-cryptocurrencies": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.5.tgz", + "integrity": "sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-csharp": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.8.tgz", + "integrity": "sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.1.tgz", + "integrity": "sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-dart": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.3.2.tgz", + "integrity": "sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-data-science": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.13.tgz", + "integrity": "sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-django": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.6.tgz", + "integrity": "sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-docker": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.17.tgz", + "integrity": "sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-dotnet": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.13.tgz", + "integrity": "sha512-xPp7jMnFpOri7tzmqmm/dXMolXz1t2bhNqxYkOyMqXhvs08oc7BFs+EsbDY0X7hqiISgeFZGNqn0dOCr+ncPYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-elixir": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.8.tgz", + "integrity": "sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en_us": { + "version": "4.4.33", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.33.tgz", + "integrity": "sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-en-common-misspellings": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.12.tgz", + "integrity": "sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==", + "dev": true, + "license": "CC BY-SA 4.0" + }, + "node_modules/@cspell/dict-en-gb-mit": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.22.tgz", + "integrity": "sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-filetypes": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.18.tgz", + "integrity": "sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-flutter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-flutter/-/dict-flutter-1.1.1.tgz", + "integrity": "sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fonts": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.6.tgz", + "integrity": "sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fsharp": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.1.1.tgz", + "integrity": "sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-fullstack": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.2.9.tgz", + "integrity": "sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-gaming-terms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.1.2.tgz", + "integrity": "sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-git": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.1.0.tgz", + "integrity": "sha512-KEt9zGkxqGy2q1nwH4CbyqTSv5nadpn8BAlDnzlRcnL0Xb3LX9xTgSGShKvzb0bw35lHoYyLWN2ZKAqbC4pgGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-golang": { + "version": "6.0.26", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.26.tgz", + "integrity": "sha512-YKA7Xm5KeOd14v5SQ4ll6afe9VSy3a2DWM7L9uBq4u3lXToRBQ1W5PRa+/Q9udd+DTURyVVnQ+7b9cnOlNxaRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-google": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-google/-/dict-google-1.0.9.tgz", + "integrity": "sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-haskell": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.6.tgz", + "integrity": "sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-html": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.15.tgz", + "integrity": "sha512-GJYnYKoD9fmo2OI0aySEGZOjThnx3upSUvV7mmqUu8oG+mGgzqm82P/f7OqsuvTaInZZwZbo+PwJQd/yHcyFIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.5.tgz", + "integrity": "sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-java": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.12.tgz", + "integrity": "sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-julia": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-julia/-/dict-julia-1.1.1.tgz", + "integrity": "sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-k8s": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.12.tgz", + "integrity": "sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-kotlin": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-kotlin/-/dict-kotlin-1.1.1.tgz", + "integrity": "sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-latex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-5.1.0.tgz", + "integrity": "sha512-qxT4guhysyBt0gzoliXYEBYinkAdEtR2M7goRaUH0a7ltCsoqqAeEV8aXYRIdZGcV77gYSobvu3jJL038tlPAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.5.tgz", + "integrity": "sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-lua": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.8.tgz", + "integrity": "sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-makefile": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-makefile/-/dict-makefile-1.0.5.tgz", + "integrity": "sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-markdown": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.16.tgz", + "integrity": "sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@cspell/dict-css": "^4.1.1", + "@cspell/dict-html": "^4.0.15", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-typescript": "^3.2.3" + } + }, + "node_modules/@cspell/dict-monkeyc": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.12.tgz", + "integrity": "sha512-MN7Vs11TdP5mbdNFQP5x2Ac8zOBm97ARg6zM5Sb53YQt/eMvXOMvrep7+/+8NJXs0jkp70bBzjqU4APcqBFNAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.9.tgz", + "integrity": "sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-npm": { + "version": "5.2.38", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.38.tgz", + "integrity": "sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-php": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.1.1.tgz", + "integrity": "sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-powershell": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.15.tgz", + "integrity": "sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-public-licenses": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.16.tgz", + "integrity": "sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-python": { + "version": "4.2.26", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.26.tgz", + "integrity": "sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/dict-data-science": "^2.0.13" + } + }, + "node_modules/@cspell/dict-r": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.1.1.tgz", + "integrity": "sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-ruby": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.1.1.tgz", + "integrity": "sha512-LHrp84oEV6q1ZxPPyj4z+FdKyq1XAKYPtmGptrd+uwHbrF/Ns5+fy6gtSi7pS+uc0zk3JdO9w/tPK+8N1/7WUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-rust": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.1.2.tgz", + "integrity": "sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-scala": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.9.tgz", + "integrity": "sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-shell": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.2.tgz", + "integrity": "sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-software-terms": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.2.2.tgz", + "integrity": "sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-sql": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.2.1.tgz", + "integrity": "sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-svelte": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.7.tgz", + "integrity": "sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-swift": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.6.tgz", + "integrity": "sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-terraform": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.1.3.tgz", + "integrity": "sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-typescript": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", + "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-vue": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.5.tgz", + "integrity": "sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dict-zig": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-zig/-/dict-zig-1.0.0.tgz", + "integrity": "sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspell/dynamic-import": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.0.0.tgz", + "integrity": "sha512-fMqu/5Ma1Q5ZCR/Par+Q4pvaTKmx5pKZzQmkwld2hNounVdk2OaIPM9MzpNn6I1mLk5J+wTnIZmfcWNAzNP9aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "10.0.0", + "import-meta-resolve": "^4.2.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/filetypes": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.0.0.tgz", + "integrity": "sha512-UP57j9yrDtlCHpFxc/eGho1m8DP5olfu9KRWwd5fiqL9nMSE2rUJtPzQyvqmDwO5bVZt3B+fTVdo4gxuiqw25A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/rpc": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.0.0.tgz", + "integrity": "sha512-QrpOZMwz2pAjvl6Hky2PauYoMpLCASn3osjn7uKUbgFV70sahyj6tmx4rRgRX7vHu2WQLZev+YsuO4EujiBDOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/strong-weak-map": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.0.0.tgz", + "integrity": "sha512-JRsato0s2IjYdsng+AGL6oAqgZVQgih5aWKdmxs21H6EdhMaoFDmRE5kXm/RT5a6OMdtnzQM9DqeToqBChWIOQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.0.0.tgz", + "integrity": "sha512-q+0pHQ8DbqjemyaOn/mTtBRbCuKDqhnsVbZ6J9zkTsxPgMpccjy0s5oLXwomfrrxMRBH+UcbERwtUmE+SbnoIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", + "integrity": "sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-position-area-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz", + "integrity": "sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-property-rule-prelude-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz", + "integrity": "sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-syntax-descriptor-syntax-production": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz", + "integrity": "sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-system-ui-font-family": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz", + "integrity": "sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/core": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.6.2.tgz", + "integrity": "sha512-/S0e6Dj7Zcm8m9Rru49YEX49dhU11be68c+S/BCyN8zQsTTgkKzXlhRbVL5mV6lOLC2+ZRRryaTdcm070Ug2oA==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docsearch/css": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.2.tgz", + "integrity": "sha512-fH/cn8BjEEdM2nJdjNMHIvOVYupG6AIDtFVDgIZrNzdCSj4KXr9kd+hsehqsNGYjpUjObeKYKvgy/IwCb1jZYQ==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.6.2.tgz", + "integrity": "sha512-/BbtGFtqVOGwZx0dw/UfhN/0/DmMQYnulY4iv0tPRhC2JCXv0ka/+izwt3Jzo1ZxXS/2eMvv9zHsBJOK1I9f/w==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/core": "4.6.2", + "@docsearch/css": "4.6.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-shared": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.0.tgz", + "integrity": "sha512-mqCJhCZNZUDg0zgDEaPTM4DnRsisa24HdqTy/qn/MQlbwhTb4WVaZg6ZyX6yIVKqTz8fS1hBMgM+98z+BeJJDg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.0.tgz", + "integrity": "sha512-iONUGZGgp+lAkw/cJZH6irONcF4p8+278IsdRlq8lYhxGjkoNUs0w7F4gVXBYSNChq5KG5/JleTSsdJySShxow==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.10.0", + "@docusaurus/cssnano-preset": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.11.0", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.2", + "null-loader": "^4.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.0.tgz", + "integrity": "sha512-mgLdQsO8xppnQZc3LPi+Mf+PkPeyxJeIx11AXAq/14fsaMefInQiMEZUUmrc7J+956G/f7MwE7tn8KZgi3iRcA==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.10.0", + "@docusaurus/bundler": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "execa": "^5.1.1", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "open": "^8.4.0", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.3", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.7", + "tinypool": "^1.0.2", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^5.2.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*", + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.0.tgz", + "integrity": "sha512-qzSshTO1DB3TYW+dPUal5KHM7XPc5YQfzF3Kdb2NDACJUyGbNcFtw3tGkCJlYwhNCRKbZcmwraKUS1i5dcHdGg==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.5.4", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.0.tgz", + "integrity": "sha512-9jrZzFuBH1LDRlZ7cznAhCLmAZ3HSDqgwdrSSZdGHq9SPUOQgXXu8mnxe2ZRB9NS1PCpMTIOVUqDtZPIhMafZg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.0.tgz", + "integrity": "sha512-mQQV97080AH4PYNs087l202NMDqRopZA4mg5W76ZZyTFrmWhJ3mHg+8A+drJVENxw5/Q+wHMHLgsx+9z1nEs0A==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.0.tgz", + "integrity": "sha512-/1O0Zg8w3DFrYX/I6Fbss7OJrtZw1QoyjDhegiFNHVi9A9Y0gQ3jUAytVxF6ywpAWpLyLxch8nN8H/V3XfzdJQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.10.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.0.tgz", + "integrity": "sha512-RuTz68DhB7CL96QO5UsFbciD7GPYq6QV+YMfF9V0+N4ZgLhJIBgpVAr8GobrKF6NRe5cyWWETU5z5T834piG9g==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "cheerio": "1.0.0-rc.12", + "combine-promises": "^1.1.0", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.0.tgz", + "integrity": "sha512-9BjHhf15ct8Z7TThTC0xRndKDVvMKmVsAGAN7W9FpNRzfMdScOGcXtLmcCWtJGvAezjOJIm6CxOYCy3Io5+RnQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.0.tgz", + "integrity": "sha512-5amX8kEJI+nIGtuLVjYk59Y5utEJ3CHETFOPEE4cooIRLA4xM4iBsA6zFgu4ljcopeYwvBzFEWf5g2I6Yb9SkA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.0.tgz", + "integrity": "sha512-6q1vtt5FJcg5osgkHeM1euErECNqEZ5Z1j69yiNx2luEBIso+nxCkS9nqj8w+MK5X7rvKEToGhFfOFWncs51pQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.10.0.tgz", + "integrity": "sha512-XcljKN+G+nmmK69uQA1d9BlYU3ZftG3T3zpK8/7Hf/wrOlV7TA4Ampdrdwkg0jElKdKAoSnPhCO0/U3bQGsVQQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^2.3.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.0.tgz", + "integrity": "sha512-hTEoodatpBZnUat5nFExbuTGA1lhWGy7vZGuTew5Q3QDtGKFpSJLYmZJhdTjvCFwv1+qQ67hgAVlKdJOB8TXow==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.0.tgz", + "integrity": "sha512-iB/Zzjv/eelJRbdULZqzWCbgMgJ7ht4ONVjXtN3+BI/muil6S87gQ1OJyPwlXD+ELdKkitC7bWv5eJdYOZLhrQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@types/gtag.js": "^0.0.20", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.0.tgz", + "integrity": "sha512-FEjZxqKgLHa+Wez/EgKxRwvArNCWIScfyEQD95rot7jkxp6nonjI5XIbGfO/iYhM5Qinwe8aIEQHP2KZtpqVuA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.0.tgz", + "integrity": "sha512-DVTSLjB97hIjmayGnGcBfognCeI7ZuUKgEnU7Oz81JYqXtVg94mVTthDjq3QHTylYNeCUbkaW8VF0FDLcc8pPw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.0.tgz", + "integrity": "sha512-lNljBESaETZqVBMPqkrGchr+UPT1eZzEPLmJhz8I76BxbjqgsUnRvrq6lQJ9sYjgmgX52KB7kkgczqd2yzoswQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.10.0.tgz", + "integrity": "sha512-kw/Ye02Hc6xP1OdTswy8yxQEHg0fdPpyWAQRxr5b2x3h7LlG2Zgbb5BDFROnXDDMpUxB7YejlocJIE5HIEfpNA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/plugin-content-blog": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/plugin-content-pages": "3.10.0", + "@docusaurus/plugin-css-cascade-layers": "3.10.0", + "@docusaurus/plugin-debug": "3.10.0", + "@docusaurus/plugin-google-analytics": "3.10.0", + "@docusaurus/plugin-google-gtag": "3.10.0", + "@docusaurus/plugin-google-tag-manager": "3.10.0", + "@docusaurus/plugin-sitemap": "3.10.0", + "@docusaurus/plugin-svgr": "3.10.0", + "@docusaurus/theme-classic": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-search-algolia": "3.10.0", + "@docusaurus/types": "3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.10.0.tgz", + "integrity": "sha512-9msCAsRdN+UG+RwPwCFb0uKy4tGoPh5YfBozXeGUtIeAgsMdn6f3G/oY861luZ3t8S2ET8S9Y/1GnpJAGWytww==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/plugin-content-blog": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/plugin-content-pages": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-translations": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "copy-text-to-clipboard": "^3.2.0", + "infima": "0.2.0-alpha.45", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.5.4", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.0.tgz", + "integrity": "sha512-Dkp1YXKn16ByCJAdIjbDIOpVb4Z66MsVD694/ilX1vAAHaVEMrVsf/NPd9VgreyFx08rJ9GqV1MtzsbTcU73Kg==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.0.tgz", + "integrity": "sha512-f5FPKI08e3JRG63vR/o4qeuUVHUHzFzM0nnF+AkB67soAZgNsKJRf2qmUZvlQkGwlV+QFkKe4D0ANMh1jToU3g==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "^1.19.2", + "@docsearch/react": "^3.9.0 || ^4.3.2", + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-translations": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.10.0.tgz", + "integrity": "sha512-L9IbFLwTc5+XdgH45iQYufLn0SVZd6BUNelDbKIFlH+E4hhjuj/XHWAFMX/w2K59rfy8wak9McOaei7BSUfRPA==", + "license": "MIT", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.10.0.tgz", + "integrity": "sha512-TXdC3WXuPrdQAexLvjUJfnYf3YKEgEqAs5nK0Q88pRBCW7t7oN4ILvWYb3A5Z1wlSXyXGWW/mCUmLEhdWsjnDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docusaurus/types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.0.tgz", + "integrity": "sha512-F0dOt3FOoO20rRaFK7whGFQZ3ggyrWEdQc/c8/UiRuzhtg4y1w9FspXH5zpCT07uMnJKBPGh+qNazbNlCQqvSw==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.95.0", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.0.tgz", + "integrity": "sha512-T3B0WTigsIthe0D4LQa2k+7bJY+c3WS+Wq2JhcznOSpn1lSN64yNtHQXboCj3QnUs1EuAZszQG1SHKu5w5ZrlA==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "escape-string-regexp": "^4.0.0", + "execa": "^5.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "p-queue": "^6.6.2", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.0.tgz", + "integrity": "sha512-JyL7sb9QVDgYvudIS81Dv0lsWm7le0vGZSDwsztxWam1SPBqrnkvBy9UYL/amh6pbybkyYTd3CMTkO24oMlCSw==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.0.tgz", + "integrity": "sha512-c+6n2+ZPOJtWWc8Bb/EYdpSDfjYEScdCu9fB/SNjOmSCf1IdVnGf2T53o0tsz0gDRtCL90tifTL0JE/oMuP1Mw==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.1.tgz", + "integrity": "sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.1.tgz", + "integrity": "sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.1.tgz", + "integrity": "sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.1.tgz", + "integrity": "sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.1.tgz", + "integrity": "sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.1.tgz", + "integrity": "sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.1" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.1.tgz", + "integrity": "sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-utils": "4.57.1", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.1.tgz", + "integrity": "sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/util": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@oozcitak/dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-2.0.2.tgz", + "integrity": "sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "^2.0.2", + "@oozcitak/url": "^3.0.0", + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/infra": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-2.0.2.tgz", + "integrity": "sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-3.0.0.tgz", + "integrity": "sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "^2.0.2", + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/util": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-10.0.0.tgz", + "integrity": "sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.20.tgz", + "integrity": "sha512-wwAbk3SA2QeU67unN7zPxjEHmPmlXwZXZvQEpbEUQuMCRGgKyE1m6XDuTUA9b6pCGb/GqJmdfMOY5LuDjJSbbg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.19.0" + } + }, + "node_modules/@types/prismjs": { + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/algoliasearch": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.50.2.tgz", + "integrity": "sha512-Tfp26yoNWurUjfgK4GOrVJQhSNXu9tJtHfFFNosgT2YClG+vPyUjX/gbC8rG39qLncnZg8Fj34iarQWpMkqefw==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.16.2", + "@algolia/client-abtesting": "5.50.2", + "@algolia/client-analytics": "5.50.2", + "@algolia/client-common": "5.50.2", + "@algolia/client-insights": "5.50.2", + "@algolia/client-personalization": "5.50.2", + "@algolia/client-query-suggestions": "5.50.2", + "@algolia/client-search": "5.50.2", + "@algolia/ingestion": "1.50.2", + "@algolia/monitoring": "1.50.2", + "@algolia/recommend": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.1.tgz", + "integrity": "sha512-6iXpbkkrAI5HFpCWXlNmIDSBuoN/U1XnEvb2yJAoWfqrZ+DrybI7MQ5P5mthFaprmocq+zbi6HxnR28xnZAYBw==", + "license": "MIT", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", + "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.0.tgz", + "integrity": "sha512-5K9eNNn7ywHPsYnFwjKgYH8Hf8B5emh7JKcPaVjjrMJFQQwGpwowEnZNEtHs7DfR7hCZsmaK3VA4HUK0YarT+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.2.tgz", + "integrity": "sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-json": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.6.2.tgz", + "integrity": "sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz", + "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.0.0.tgz", + "integrity": "sha512-R25gsSR1SLlcGyw48fwJwp0PjXrVdl7RDO/Dm5+s4DvC1uQSlyiUxsr/8ZtbyC/MPeUJFQN9B4luqLlSm0WelQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-json-reporter": "10.0.0", + "@cspell/cspell-performance-monitor": "10.0.0", + "@cspell/cspell-pipe": "10.0.0", + "@cspell/cspell-types": "10.0.0", + "@cspell/cspell-worker": "10.0.0", + "@cspell/dynamic-import": "10.0.0", + "@cspell/url": "10.0.0", + "ansi-regex": "^6.2.2", + "chalk": "^5.6.2", + "chalk-template": "^1.1.2", + "commander": "^14.0.3", + "cspell-config-lib": "10.0.0", + "cspell-dictionary": "10.0.0", + "cspell-gitignore": "10.0.0", + "cspell-glob": "10.0.0", + "cspell-io": "10.0.0", + "cspell-lib": "10.0.0", + "fast-json-stable-stringify": "^2.1.0", + "flatted": "^3.4.2", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15" + }, + "bin": { + "cspell": "bin.mjs", + "cspell-esm": "bin.mjs" + }, + "engines": { + "node": ">=22.18.0" + }, + "funding": { + "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" + } + }, + "node_modules/cspell-config-lib": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.0.0.tgz", + "integrity": "sha512-HWK7SRnJ3N/kOThw/uzmXmQYCzBxu58Jkq2hHyte1voDl118BeNFoaNRWMpYdHbBi3kCj8gaZu8wGtm+Zmdhxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-types": "10.0.0", + "comment-json": "^4.6.2", + "smol-toml": "^1.6.1", + "yaml": "^2.8.3" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-dictionary": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.0.0.tgz", + "integrity": "sha512-KubSoEAJO+77KPSSWjoLCz0+MIWVNq3joGTSyxucAZrBSJD64Y1O4BHHr1aj6XHIZwXhWWNScQlrQR3OcIulng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-performance-monitor": "10.0.0", + "@cspell/cspell-pipe": "10.0.0", + "@cspell/cspell-types": "10.0.0", + "cspell-trie-lib": "10.0.0", + "fast-equals": "^6.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-gitignore": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.0.0.tgz", + "integrity": "sha512-55XLH9Y52eR7QgyV28Uaw8V9cN1YZ3PQIyrN9YBR4ndQNBKJxO9+jX1nwSspwnccCZiE/N+GGxFzRBb75JDSCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "10.0.0", + "cspell-glob": "10.0.0", + "cspell-io": "10.0.0" + }, + "bin": { + "cspell-gitignore": "bin.mjs" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-glob": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.0.0.tgz", + "integrity": "sha512-bXS35fMcA9X7GEkfnWBfoPd/vTnxxfXW+YHt6tWxu5fejfs00qUbjWp1oLC9FxRaXWxIkfsYp2mi1k1jYl4RVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/url": "10.0.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-glob/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/cspell-grammar": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.0.0.tgz", + "integrity": "sha512-49udtYzkcCYEIDJbFOb4IwiAJebOYZnYvG6o6Ep19Tq0Xwjk7i4vxUprNiFNDCWFbcbJRPE9cpwQUVwp5WFGLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-pipe": "10.0.0", + "@cspell/cspell-types": "10.0.0" + }, + "bin": { + "cspell-grammar": "bin.mjs" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-io": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.0.0.tgz", + "integrity": "sha512-NQCAUhx9DwKApxPuFl7EK1K1XSaQEAPld45yjjwv93xF8rJkEGkgzOwjbqafwAD20eKYv1a7oj/9EC0S5jETSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-service-bus": "10.0.0", + "@cspell/url": "10.0.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-lib": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.0.0.tgz", + "integrity": "sha512-PowW6JEjuv/F2aFEirZvBxpzHdchOnpsUJbeIcFcai0++taLTbHQObROBEBf7e0S8DnHpVD5TZkqrTME5e44wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-bundled-dicts": "10.0.0", + "@cspell/cspell-performance-monitor": "10.0.0", + "@cspell/cspell-pipe": "10.0.0", + "@cspell/cspell-resolver": "10.0.0", + "@cspell/cspell-types": "10.0.0", + "@cspell/dynamic-import": "10.0.0", + "@cspell/filetypes": "10.0.0", + "@cspell/rpc": "10.0.0", + "@cspell/strong-weak-map": "10.0.0", + "@cspell/url": "10.0.0", + "cspell-config-lib": "10.0.0", + "cspell-dictionary": "10.0.0", + "cspell-glob": "10.0.0", + "cspell-grammar": "10.0.0", + "cspell-io": "10.0.0", + "cspell-trie-lib": "10.0.0", + "env-paths": "^4.0.0", + "gensequence": "^8.0.8", + "import-fresh": "^4.0.0", + "resolve-from": "^5.0.0", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-uri": "^3.1.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/cspell-lib/node_modules/import-fresh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-4.0.0.tgz", + "integrity": "sha512-Fpi660c7VPDM3fPKYovStd9IP1CPOikf6v/dGxJJMmHPcwYQIMJ4W7kO1avBYEpMqkCh+Dx3Ln6H7VYqgztLjw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.15" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cspell-trie-lib": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.0.0.tgz", + "integrity": "sha512-R8qrMx10E/bm3Lecslwxn9XYo5NzSRK1rtandEX5n9UmEYHoBXjZELkg5+TOnV8VgrVaJSK57XtcGrbKp/4kSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.18.0" + }, + "peerDependencies": { + "@cspell/cspell-types": "10.0.0" + } + }, + "node_modules/cspell/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cspell/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.8.0.tgz", + "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.339", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.339.tgz", + "integrity": "sha512-Is+0BBHJ4NrdpAYiperrmp53pLywG/yV/6lIMTAnhxvzj/Cmn5Q/ogSHC6AKe7X+8kPLxxFk0cs5oc/3j/fxIg==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-4.0.0.tgz", + "integrity": "sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-safe-filename": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.0.tgz", + "integrity": "sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensequence": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-8.0.8.tgz", + "integrity": "sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-directory": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-5.0.0.tgz", + "integrity": "sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "6.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-link-extractor": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz", + "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio": "^1.0.0-rc.10" + } + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.6", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", + "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-network-error": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative-url": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.1.0.tgz", + "integrity": "sha512-vhIXKasjAuxS7n+sdv7pJQykEAgS+YU8VBQOENXwo/VZpOHDgBBsIbHo7zFKaWBjYWF4qxERdhbPRRtFAeJKfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute-url": "^4.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-safe-filename": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-safe-filename/-/is-safe-filename-0.1.1.tgz", + "integrity": "sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/katex": { + "version": "0.16.45", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.45.tgz", + "integrity": "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/link-check": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.5.1.tgz", + "integrity": "sha512-GrtE4Zp/FBduvElmad375NrPeMYnKwNt9rH/TDG/rbQbHL0QVC4S/cEPVKZ0CkhXlVuiK+/5flGpRxQzoLbjEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-relative-url": "^4.1.0", + "ms": "^2.1.3", + "needle": "^3.3.1", + "node-email-verifier": "^3.4.1", + "proxy-agent": "^6.5.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-link-check": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.14.2.tgz", + "integrity": "sha512-DPJ+itd3D5fcfXD5s1i53lugH0Z/h80kkQxlYCBh8tFwEZGhyVgDcLl0rnKlWssAVDAmSmcbePpHpMEY+JcMMQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^3.2.6", + "chalk": "^5.6.2", + "commander": "^14.0.2", + "link-check": "^5.5.1", + "markdown-link-extractor": "^4.0.3", + "needle": "^3.3.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "xmlbuilder2": "^4.0.0" + }, + "bin": { + "markdown-link-check": "markdown-link-check" + } + }, + "node_modules/markdown-link-check/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/markdown-link-check/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/markdown-link-extractor": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-4.0.3.tgz", + "integrity": "sha512-aEltJiQ4/oC0h6Jbw/uuATGSHZPkcH8DIunNH1A0e+GSFkvZ6BbBkdvBTVfIV8r6HapCU3yTd0eFdi3ZeM1eAQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "html-link-extractor": "^1.0.5", + "marked": "^17.0.0" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdownlint": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", + "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "4.0.2", + "micromark-core-commonmark": "2.0.3", + "micromark-extension-directive": "4.0.0", + "micromark-extension-gfm-autolink-literal": "2.1.0", + "micromark-extension-gfm-footnote": "2.1.0", + "micromark-extension-gfm-table": "2.1.1", + "micromark-extension-math": "3.1.0", + "micromark-util-types": "2.0.2", + "string-width": "8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.48.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.48.0.tgz", + "integrity": "sha512-NkZQNu2E0Q5qLEEHwWj674eYISTLD4jMHkBzDobujXd1kv+yCxi8jOaD/rZoQNW1FBBMMGQpuW5So8B51N/e0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "~14.0.3", + "deep-extend": "~0.6.0", + "ignore": "~7.0.5", + "js-yaml": "~4.1.1", + "jsonc-parser": "~3.3.1", + "jsonpointer": "~5.0.1", + "markdown-it": "~14.1.1", + "markdownlint": "~0.40.0", + "minimatch": "~10.2.4", + "run-con": "~1.3.2", + "smol-toml": "~1.6.0", + "tinyglobby": "~0.2.15" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/markdownlint-cli/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/markdownlint/node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdownlint/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/marked": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.6.tgz", + "integrity": "sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.1.tgz", + "integrity": "sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-to-fsa": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-math/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-math/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz", + "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-email-verifier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/node-email-verifier/-/node-email-verifier-3.4.1.tgz", + "integrity": "sha512-69JMeWgEUrCji+dOLULirdSoosRxgAq2y+imfmHHBGvgTwyTKqvm65Ls3+W30DCIWMrYj5kKVb/DHTQDK7OVwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3", + "validator": "^13.15.15" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-check-updates": { + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-21.0.2.tgz", + "integrity": "sha512-b4o+4hbTOZW1gDPcM3wRpIgaB+Vyn/c6MFG2aw70Mo84f0toUulXUJtA1cncBv5BEZqUyotHFv6FR7aIN3Sq1w==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "ncu": "build/cli.js", + "npm-check-updates": "build/cli.js" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": ">=10.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz", + "integrity": "sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", + "@csstools/postcss-exponential-functions": "^2.0.9", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.11", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.1", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-position-area-property": "^1.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/postcss-property-rule-prelude-list": "^1.0.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.12", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-syntax-descriptor-syntax-production": "^1.0.1", + "@csstools/postcss-system-ui-font-family": "^1.0.0", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", + "@csstools/postcss-trigonometric-functions": "^4.0.9", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.23", + "browserslist": "^4.28.1", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.3", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.6.0", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.12", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.4", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.12", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/prettier": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.5" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-json-view-lite": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz", + "integrity": "sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz", + "integrity": "sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^3.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-directive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/micromark-extension-directive": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-directive/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-directive/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-con/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "license": "MIT", + "dependencies": { + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.5", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.3.tgz", + "integrity": "sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw==", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "license": "MIT", + "dependencies": { + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/thingies": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validator": { + "version": "13.15.35", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.35.tgz", + "integrity": "sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.106.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", + "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.1", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", + "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.25", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.8.1", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.22.1", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^5.5.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpackbar": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz", + "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==", + "license": "MIT", + "dependencies": { + "ansis": "^3.2.0", + "consola": "^3.2.3", + "pretty-time": "^1.1.0", + "std-env": "^3.7.0" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@rspack/core": "*", + "webpack": "3 || 4 || 5" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/xmlbuilder2": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-4.0.3.tgz", + "integrity": "sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/dom": "^2.0.2", + "@oozcitak/infra": "^2.0.2", + "@oozcitak/util": "^10.0.0", + "js-yaml": "^4.1.1" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json index a9bd9754..4e824f08 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "docusaurus": "docusaurus", "fix:format": "npm run _check:format -- --write", "fix": "npm run seq -- $(npm -s run _list:fix:*)", + "postinstall": "node scripts/postinstall-webpackbar-notice.mjs", "precheck:links": "npm run build", "seq": "bash -c 'for cmd in \"$@\"; do npm run $cmd || exit 1; done' - ", "serve": "npm run docus:serve", @@ -47,28 +48,34 @@ "author": "CNCF", "license": "CC-BY-4.0", "dependencies": { - "@docusaurus/core": "3.9.2", - "@docusaurus/preset-classic": "3.9.2", + "@docusaurus/core": "3.10.0", + "@docusaurus/preset-classic": "3.10.0", "@mdx-js/react": "^3.1.1", "clsx": "^2.1.1", "prism-react-renderer": "^2.4.1", - "react-dom": "^19.2.3", - "react": "^19.2.3" + "react-dom": "^19.2.5", + "react": "^19.2.5" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.9.2", - "@docusaurus/tsconfig": "3.9.2", - "@docusaurus/types": "3.9.2", - "cspell": "^9.4.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/tsconfig": "3.10.0", + "@docusaurus/types": "3.10.0", + "cspell": "^10.0.0", "markdown-link-check": "3.14.2", - "markdownlint-cli": "^0.47.0", + "markdownlint-cli": "^0.48.0", "markdownlint": "^0.40.0", - "npm-check-updates": "^19.3.1", - "prettier": "^3.7.4", - "typescript": "~5.9.3" + "npm-check-updates": "^21.0.2", + "prettier": "^3.8.3", + "typescript": "~6.0.2" + }, + "//": "TEMP overrides (webpackbar): remove after @docusaurus/* ships webpackbar ^7 — https://github.com/facebook/docusaurus/issues/11923", + "overrides": { + "@docusaurus/bundler": { + "webpackbar": "^7.0.0" + } }, "private": true, - "spelling": "cSpell:ignore ACMR docus HTMLTEST loglevel -", + "spelling": "cSpell:ignore ACMR docus HTMLTEST loglevel webpackbar -", "prettier": { "proseWrap": "always", "singleQuote": true diff --git a/scripts/postinstall-webpackbar-notice.mjs b/scripts/postinstall-webpackbar-notice.mjs new file mode 100644 index 00000000..4afbfd65 --- /dev/null +++ b/scripts/postinstall-webpackbar-notice.mjs @@ -0,0 +1,39 @@ +/** + * After install: if @docusaurus/bundler declares webpackbar ^7+, print that our + * temporary package.json overrides can be removed. Otherwise stay silent. + * @see https://github.com/facebook/docusaurus/issues/11923 + */ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const root = path.join(__dirname, '..'); +const bundlerPkgPath = path.join( + root, + 'node_modules/@docusaurus/bundler/package.json', +); + +function bundlerDeclaresWebpackbarV7Plus(range) { + if (!range || typeof range !== 'string') return false; + const m = range.match(/^[~^]?(\d+)/) || range.match(/>=\s*(\d+)/); + return m ? Number(m[1]) >= 7 : false; +} + +let range = ''; +try { + const pkg = JSON.parse(fs.readFileSync(bundlerPkgPath, 'utf8')); + range = pkg.dependencies?.webpackbar ?? ''; +} catch { + process.exit(0); +} + +if (!bundlerDeclaresWebpackbarV7Plus(range)) { + process.exit(0); +} + +const tag = '[techdocs] Docusaurus / webpackbar'; +console.log( + `${tag}: @docusaurus/bundler now declares webpackbar ${range}. Remove the temporary "overrides" block and the "//" comment from package.json, then run npm install.`, +); +console.log(' https://github.com/facebook/docusaurus/issues/11923'); From 6cfcab761c38d82c3bb5f2d14a2e741545972e19 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Tue, 21 Apr 2026 11:51:02 -0400 Subject: [PATCH 17/50] Publish analyses in Docus, fix links, rewrite cross-plugin links (#351) Signed-off-by: BruceHamilton --- .htmltest.yml | 13 +- .markdownlintignore | 10 + README.md | 14 +- analyses/2021/contour/analysis.md | 2 + analyses/2021/fluxcd/analysis.md | 2 + analyses/2021/krator/analysis.md | 2 + .../2021/kubernetes-gateway-api/analysis.md | 5 +- analyses/2021/notary/analysis.md | 2 + analyses/2021/tremor/analysis.md | 2 + analyses/2023/backstage/backstage-analysis.md | 84 +- .../backstage/backstage-implementation.md | 56 +- analyses/2023/backstage/backstage-issues.md | 2 + analyses/2023/backstage/user-roles.md | 2 + analyses/2023/etcd/etcd-analysis.md | 100 +- analyses/2023/etcd/etcd-issues.md | 2 + analyses/2023/in-toto/in-toto-analysis.md | 2 + analyses/2023/in-toto/in-toto-doc-issues.md | 2 + .../2023/in-toto/in-toto-implementation.md | 2 + analyses/2023/porter/analysis.md | 2 +- analyses/2024/keda/keda-analysis.md | 98 +- analyses/2024/keda/keda-implementation.md | 70 +- analyses/2024/keda/keda-issues.md | 52 +- analyses/2025/helm/helm-analysis.md | 12 +- analyses/2025/helm/helm-implementation.md | 3 +- analyses/2025/helm/helm-issues-list.md | 3 +- analyses/2025/knative/analysis.md | 4 +- analyses/2025/knative/issues.md | 2 +- analyses/2025/vitess/analysis.md | 10 +- analyses/2026/flatcar/analysis.md | 27 +- docs/analysis/templates/analysis.md | 8 +- docs/localization/ja/index.md | 14 +- docusaurus.config.ts | 53 +- lib/getBuildContext.ts | 29 + lib/getCurrentBranch.ts | 22 + lib/getGitHubRepoUrl.ts | 33 + lib/remarkRewriteLinks/README.md | 75 + lib/remarkRewriteLinks/index.test.mts | 197 ++ lib/remarkRewriteLinks/index.ts | 149 ++ package-lock.json | 108 +- package.json | 11 +- sidebarsAnalyses.ts | 7 + static/refcache.json | 2020 ++++++++++++++++- tsconfig.json | 3 +- 43 files changed, 2897 insertions(+), 419 deletions(-) create mode 100644 .markdownlintignore create mode 100644 lib/getBuildContext.ts create mode 100644 lib/getCurrentBranch.ts create mode 100644 lib/getGitHubRepoUrl.ts create mode 100644 lib/remarkRewriteLinks/README.md create mode 100644 lib/remarkRewriteLinks/index.test.mts create mode 100644 lib/remarkRewriteLinks/index.ts create mode 100644 sidebarsAnalyses.ts diff --git a/.htmltest.yml b/.htmltest.yml index 46e52b86..128bc970 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -3,13 +3,14 @@ CacheExpires: 4500h # ~ 6 months DirectoryPath: build TestFilesConcurrently: true IgnoreDirs: + # We don't fix broken links on old analysis pages. + # - analyses/202[0-5]/ IgnoreInternalURLs: # list of paths IgnoreURLs: # list of regexes of URLs or path to be ignored - ^https?://localhost - \?no-link-check - - _PROJECT-WEBSITE_ - - _PROJECT-DOC-URL_ - # FIXME: temporary ignore rules - - assistance\.md - - LICENSE - - /analyses/ + # Old analysis pages are not updated. Ignore broken links: + - ^https://(docs|www).tremor.rs/ + - ^https://knative.dev/docs/(concepts|reference|relnotes)/ + - ^https://knative.dev/development/concepts/serving-resources/revisions/ + - ^https://vitess.io/docs/21.0/ diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 00000000..899d0a77 --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1,10 @@ +# Paths excluded from markdownlint (see `markdownlint --help` → --ignore-path). +# Patterns follow .gitignore semantics (see markdownlint-cli). + +# Dependencies and build output +node_modules/ +build/ +.docusaurus/ + +# Scratch / local +tmp/ diff --git a/README.md b/README.md index ed38a749..1069a33b 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,15 @@ This site contains resources provided by the CNCF Technical Documentation team, including: -- [Docs](docs/) about building websites and developing technical documentation, +- [Docs](/docs/) about building websites and developing technical documentation, including recommended tools, best practices, how-tos, and evaluation checklists. It provides specific guidelines for: - Setting up and maintaining a documentation website. - Writing technical documentation for a project. - Seeking assistance from the CNCF TechDocs community. - - [Analyzing project documentation](docs/analysis/). -- [Analyses](analyses/): a collection of documentation analyses of CNCF projects - performed by the TechDocs team. + - [Analyzing project documentation](/docs/analysis/). +- [Analyses](/analyses/): a collection of documentation analyses of CNCF + projects performed by the TechDocs team. ## TechDocs Q&A @@ -29,7 +29,7 @@ every month at 8am Pacific time][date-time]. The TechDocs team can help CNCF projects analyze and improve their documentation. For details, see the TechDocs -[assistance program](docs/assistance.md). +[assistance program](/docs/assistance.md). ## CNCF TechDocs team @@ -46,8 +46,8 @@ Consultants and volunteers also contribute to CNCF TechDocs efforts. ## Licenses -- Documentation: [CC-BY-4.0](LICENSE) -- Code: [Apache-2.0](LICENSE-CODE) +- Documentation: [CC-BY-4.0](https://github.com/cncf/techdocs/blob/main/LICENSE) +- Code: [Apache-2.0](https://github.com/cncf/techdocs/blob/main/LICENSE-CODE) [date-time]: https://tockify.com/cncf.public.events/monthly?search=CNCF%20Tech%20Writers%20Office%20Hours diff --git a/analyses/2021/contour/analysis.md b/analyses/2021/contour/analysis.md index eca478c6..b6d7c4e4 100644 --- a/analyses/2021/contour/analysis.md +++ b/analyses/2021/contour/analysis.md @@ -4,6 +4,8 @@ tags: [contour] cSpell:ignore: Horgan celestehorgan hashlinks --- + + # Docs assessment ## Introduction diff --git a/analyses/2021/fluxcd/analysis.md b/analyses/2021/fluxcd/analysis.md index f78270e5..84a3a171 100644 --- a/analyses/2021/fluxcd/analysis.md +++ b/analyses/2021/fluxcd/analysis.md @@ -4,6 +4,8 @@ tags: [fluxcd] cSpell:ignore: celestehorgan Horgan --- + + # Assessment template Prepared by: Celeste Horgan diff --git a/analyses/2021/krator/analysis.md b/analyses/2021/krator/analysis.md index f4f72706..128990ee 100644 --- a/analyses/2021/krator/analysis.md +++ b/analyses/2021/krator/analysis.md @@ -4,6 +4,8 @@ tags: [krator] cSpell:ignore: Krator celestehorgan CODEOWNERS --- + + # Krator Docs assessment ## Introduction diff --git a/analyses/2021/kubernetes-gateway-api/analysis.md b/analyses/2021/kubernetes-gateway-api/analysis.md index 372a53d7..759aa693 100644 --- a/analyses/2021/kubernetes-gateway-api/analysis.md +++ b/analyses/2021/kubernetes-gateway-api/analysis.md @@ -4,6 +4,9 @@ tags: [kubernetes-gateway-api] cSpell:ignore: Meha Bhalodiya mehabhalodiya kubernetes --- + + + # Assessment: Project Kubernetes Gateway API Prepared by: Meha Bhalodiya @@ -103,7 +106,7 @@ as well as where to find them. - **Prepared a Miro board: [https://miro.com/app/board/uXjVO_1cS9k=/](https://miro.com/app/board/uXjVO_1cS9k=/)** - ![information_architecture](../docs/images/gapi_info_arch.png) + ![information_architecture](../../../docs/images/gapi_info_arch.png) - There are improvements we could make: - With the collection of guided, step-by-step instructions (tasks, hands-on diff --git a/analyses/2021/notary/analysis.md b/analyses/2021/notary/analysis.md index 76634b1b..9f502eba 100644 --- a/analyses/2021/notary/analysis.md +++ b/analyses/2021/notary/analysis.md @@ -4,6 +4,8 @@ tags: [notary] cSpell:ignore: docset notaryproject celestehorgan --- + + # Notary Project Docs Assessment Date: 2021-07-31 Project: [Notary Project](https://github.com/notaryproject/) diff --git a/analyses/2021/tremor/analysis.md b/analyses/2021/tremor/analysis.md index e84ef354..0b9f7f8a 100644 --- a/analyses/2021/tremor/analysis.md +++ b/analyses/2021/tremor/analysis.md @@ -4,6 +4,8 @@ tags: [tremor] cSpell:ignore: Horgan onramps offramps LLDB Wayfair --- + + # Assessment: Project Tremor Prepared by: Celeste Horgan Date: July 2021 diff --git a/analyses/2023/backstage/backstage-analysis.md b/analyses/2023/backstage/backstage-analysis.md index 281db938..5797d831 100644 --- a/analyses/2023/backstage/backstage-analysis.md +++ b/analyses/2023/backstage/backstage-analysis.md @@ -7,7 +7,9 @@ author: Dave Welsch (@dwelsch-esi) cSpell:ignore: clotributor dwelsch Welsch runbooks WCAG --- -# Introduction + + +## Introduction This document analyzes the effectiveness and completeness of the [Backstage][backstage-io] open source software (OSS) project's documentation and @@ -19,7 +21,7 @@ prerequisite for program graduation. The documentation analysis is the first step of a CNCF process aimed at assisting projects with their documentation efforts. -## Purpose +### Purpose This document was written to analyze the current state of Backstage documentation. It aims to provide project leaders with an informed understanding @@ -32,7 +34,7 @@ This document: - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment -## Scope of analysis +### Scope of analysis The documentation discussed here includes the entire contents of the website (which contains the technical docs), as well as documentation for contributors @@ -58,7 +60,7 @@ Backstage GitHub repo. - Backstage plugins: https://backstage.spotify.com/ -## How this document is organized +### How this document is organized This document is divided into three sections that represent three major areas of concern: @@ -85,7 +87,7 @@ that can be completed in constrained blocks of time. Ultimately, the implementation items should be tracked as a series of Github [issues][backstage-issues]. -## How to use this document +### How to use this document Readers interested only in actionable improvements should skip this document and read [backstage-implementation.md][implementation-doc]. @@ -101,7 +103,7 @@ to their area of concern: Examples of CNCF documentation that demonstrates the analysis criteria are linked from the [Criteria][cncf-doc-criteria] specification. -### Recommendations, requirements, and best practices +#### Recommendations, requirements, and best practices Notwithstanding the fact that this analysis measures documentation against CNCF project maturity standards, in most cases there is more than one way to do @@ -114,7 +116,7 @@ understood as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. -# Project documentation +## Project documentation | Criteria | 1 | 2 | 3 | 4 | 5 | | -------------------------- | --- | --- | --- | --- | --- | @@ -130,7 +132,7 @@ Scale: - 3 = (Is present, but needs work) - 5 = (Is executed extremely well or no improvement required) -## Comments: project documentation +### Comments: project documentation Backstage is a platform for organizing and managing software projects. This complicates the documentation, because it can be difficult to distinguish among @@ -155,7 +157,7 @@ that documentation should be organized under at least four roles: 3. Extending a Backstage app: DevOp or internal tooling developer. 4. Extending the Backstage platform: contributing developer. -### Overall Issues +#### Overall Issues The main issues with the Backstage documentation are: @@ -178,7 +180,7 @@ Started][backstage-doc-getting-started]. However: The following sections contain brief analyses of each element of the Project Documentation rubric. -### Information architecture +#### Information architecture **Conceptual content** is abundant throughout the Backstage documentation. This is good, because using Backstage effectively requires a thorough understanding @@ -220,7 +222,7 @@ necessary). It's not clear that the documentation is completely **up to date**, although [release notes][backstage-doc-rn] exist and are easily findable. -### New user content +#### New user content **New user** content is present and findable ("**signposted**"), including **installation** instructions for all applicable **OSes**. However, the [Getting @@ -233,7 +235,7 @@ workflow **path** after installation. There is **example content** available, including tutorials for a variety of tasks and a very nice [demo server][backstage-demo]. -### Content maintainability & site mechanics +#### Content maintainability & site mechanics The documentation is **searchable**. There does not seem to be a **localization** framework. There doesn't currently seem to be any kind of @@ -242,7 +244,7 @@ localization effort. There does not seem to be any mechanism for **versioning** documentation content. -### Content creation processes +#### Content creation processes The procedures for duplicating the documentation locally and for contributing documentation are [documented][backstage-microsite] but are [not easily @@ -255,7 +257,7 @@ It would be nice if this situation were made clear explicitly. The website does not have a clear individual **owner or maintainer**. -### Inclusive language +#### Inclusive language I found no content that uses non-recommended words as documented by the [Inclusive Naming Initiative][inclusive-naming] website. @@ -263,14 +265,14 @@ I found no content that uses non-recommended words as documented by the The website makes occasional use of words like "simple" and "easy", but avoids explicitly ableist language. -## Recommendations: project documentation +### Recommendations: project documentation The following sections contain recommendations for improvements to the Backstage project documentation. These recommendations are for broad improvements that would greatly increase documentation effectiveness. For details, see [Implementation][implementation]. -### Clarify user roles and objectives +#### Clarify user roles and objectives Any systemic improvement to the Backstage documentation hinges on clearly defining and documenting user roles. This is a first step in defining any @@ -283,7 +285,7 @@ understanding of how Backstage is used should feel free to modify this list if it serves the needs of the project, keeping in mind that the purpose of the user roles is to organize the task-based documentation. -### Develop instructional documentation +#### Develop instructional documentation Most of the Backstage documentation seems to have evolved from architecture and design documentation. This makes it very rich in conceptual material and @@ -322,7 +324,7 @@ task, or reference. In some cases this will mean that two pages are extracted from a single existing page. Conversely, some pages may prove to be redundant. The new, more focused pages can then be reorganized as described below. -### Reorganize the documentation site +#### Reorganize the documentation site Right now different types of documentation (conceptual/architectural; instructional; reference) for different user roles are intermixed throughout the @@ -348,7 +350,7 @@ help navigate the site. Much of this is automated by the static site generator (currently _Docusaurus_), but it's the writer's responsibility to assure that these navigation aids are adequate. -# Contributor documentation +## Contributor documentation | Criteria | 1 | 2 | 3 | 4 | 5 | | ----------------------------------------- | --- | --- | --- | --- | --- | @@ -363,7 +365,7 @@ Scale: - 3 = (Is present, but needs work) - 5 = (Is executed extremely well or no improvement required) -## Comments: contributor documentation +### Comments: contributor documentation A unique feature of Backstage is that user and contributor roles exist on a spectrum; plugins designed or modified to serve a particular organization can be @@ -373,7 +375,7 @@ contributors is intermingled, and easily confused, with instructions for admin users trying to expand functionality by modifying or adding code, especially plugins. -### Communication methods documented +#### Communication methods documented Communication channels are clearly documented on the [Community][backstage-community] page of the website, including **message @@ -385,7 +387,7 @@ main menu. There are 22 related repositories listed on the [Backstage project page][backstage-github-project]. A little digging is required to suss out the purpose of some of these projects. -### Beginner friendly issue backlog +#### Beginner friendly issue backlog The backlog is robustly **triaged** and documented. A **"good first issue"** label is available and prominently recommended. Issues are **well documented** @@ -394,7 +396,7 @@ with complete descriptions. There are quite a few **stale backlog items** open in the backlog list. Many, perhaps a majority, of these seem to be plugin requests. -### New contributor getting started content +#### New contributor getting started content The Backstage OSS **community** is visible and accessible on a [community page][backstage-community] reached via a top-level menu item on the website. @@ -408,18 +410,18 @@ the Getting Started documentation. Backstage is listed in the [Clotributor][] tool. -### Project governance documentation +#### Project governance documentation Governance is clearly documented in [GOVERNANCE.md][backstage-governance]. -## Recommendations: contributor documentation +### Recommendations: contributor documentation As an open source project, Backstage looks healthy and well run. The only recommendation here is to disentangle the contributor documentation from the product documentation. -# Website +## Website | Criteria | 1 | 2 | 3 | 4 | 5 | | ------------------------------------------- | --- | --- | --- | --- | --- | @@ -443,9 +445,9 @@ Scale: - 3 = (Is present, but needs work) - 5 = (Is executed extremely well or no improvement required) -## Comments: website +### Comments: website -### Single-source requirement +#### Single-source requirement The source files for the website and technical documentation reside in two separate directories of the Backstage GitHub repo, built as a single unit by @@ -453,7 +455,7 @@ _Docusaurus_. There is no separate **website repo**. The strategy for **generating the docs** is documented but obscure. -### Minimal website requirements +#### Minimal website requirements Listed and acknowledged below are the (cumulative) _minimal_ website requirements for projects based on their [maturity level][cncf-maturity-stages]: @@ -474,14 +476,14 @@ sandbox, incubating, graduated and archived. | Archived | Archived status of the project is obvious to site visitors | n/a | | Archived | Link to successor project website and/or migration documentation (if it exists) | n/a | -### Branding and design +#### Branding and design The Backstage **brand** is easily recognizable through the logo and color scheme. The scheme is **used consistently** across the website and docs. The website **typography** is easy to read. -### Case studies/social proof +#### Case studies/social proof **Case studies** and **testimonials** are not prominent and are not readily findable from the website. There is no **logo wall** of participating @@ -490,7 +492,7 @@ organizations. The project has an **active blog**. **Community discussions** are available on the website. -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search **Analytics** @@ -513,7 +515,7 @@ The current **custodian(s)** of the following accounts are **not** clearly documented: analytics, Google Search Console, site-search (such as Google CSE or Algolia). -### Maintenance planning +#### Maintenance planning The **website tooling** (Docusaurus static site build) is well supported. @@ -524,14 +526,14 @@ build time** was under 30 seconds for a local build on a Mac M1. Maintainers have sufficient **permissions** to download and build the doc. Checking in the doc requires a PR and approval from a project maintainer. -### Usability, accessibility and devices +#### Usability, accessibility and devices Backstage.io is partially conformant with [WCAG 2.1 level AA][wcag-understanding] with respect to **accessibility**. -## Recommendations: website +### Recommendations: website -### Single-source repo +#### Single-source repo The documentation is isolated from the code by virtue of being in its own directories; however, its location and build instructions are hard to find. @@ -545,7 +547,7 @@ many repositories. Creating one more for documentation would make the project organization cleaner and make it easier to contribute to the project documentation. -### Minimum website requirements for maturity level +#### Minimum website requirements for maturity level To meet the maturity level standards for a graduated project, the following aspects should be updated as described in [Project documentation][proj-doc]: @@ -555,22 +557,22 @@ aspects should be updated as described in [Project documentation][proj-doc]: - Update and reorganize the documentation with respect to user orientation and task-based support of use cases. -### Case studies/social proof +#### Case studies/social proof Implement a **logo wall** of participating organizations, with links to testimonials and/or case studies. -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search Add documentation and website custodians to the project maintainer lists in `OWNERS.md` and wherever else project maintainers are documented. -### Maintenance planning +#### Maintenance planning Add a prominent call for website and documentation maintainers in the project introduction alongside the call for code maintainers. -### Accessibility +#### Accessibility Improve compliance in these areas: diff --git a/analyses/2023/backstage/backstage-implementation.md b/analyses/2023/backstage/backstage-implementation.md index 2bb9916e..c831e7b3 100644 --- a/analyses/2023/backstage/backstage-implementation.md +++ b/analyses/2023/backstage/backstage-implementation.md @@ -4,7 +4,9 @@ tags: [backstage] cSpell:ignore: rigeur runbooks toolkits --- -# Introduction + + +## Introduction This document provides actionable suggestions for improving the Backstage technical documentation. @@ -12,7 +14,7 @@ technical documentation. For an analysis and general discussion of recommendations on Backstage technical documentation, see [backstage-analysis.md][backstage-analysis]]. -## Recommendations, requirements, and best practices +### Recommendations, requirements, and best practices Notwithstanding the fact that this analysis measures documentation against CNCF project maturity standards, in most cases there is more than one way to do @@ -32,21 +34,21 @@ The top-level documentation recommendations for this project are: - Organize and "signpost" documentation by role and task so that stakeholders can find documentation that supports their roles' activities. -# Definitions +## Definitions These implementations rely on the following definitions. -## Organization +### Organization It is assumed that Backstage is adopted by a medium-to-large _organization_ (_org_) made up of a number of _groups_. -## Group +### Group A group is defined by its responsibility for one or more software _products_ that are manageable in Backstage. -## Product +### Product Products can include but are not limited to: internal and external toolkits and APIs; components; databases; and web-based and standalone applications. @@ -54,21 +56,21 @@ APIs; components; databases; and web-based and standalone applications. A group needs 1) visibility into the org's entire corpus of products, and 2) to publicize its own software products to the org. -## Developer +### Developer Members of a group can have various functional and organizational roles, including: software engineer; dev-op; QA engineer; software architect; network engineer; engineering manager; and many others. These implementations refer to a group member generically as a _developer_ (_dev_). -## Contributor +### Contributor The org has ties to the Backstage open source software (OSS) project through developers who contribute to the project and who participate in discussions, newsgroups, and other community forums. These OSS participants, regardless of their employer or job function, are called _contributors_. -# User Roles +## User Roles The only distinctions among Backstage users relevant to this implementation discussion are among _user roles_. User roles are defined to organize @@ -94,7 +96,7 @@ this analysis. They are important considerations, however, that should be addressed by any organization and for which further exploration and documentation would be valuable. -# Implementation: Fill gaps in instructional documentation +## Implementation: Fill gaps in instructional documentation "Instructional documentation" is a broad category that includes such traditional documentation artifacts as tutorials; getting started guides; procedural recipes @@ -126,7 +128,7 @@ explaining what the configuration controls. The sections below give recommendations for the most important instructional documentation improvements to Backstage for each user role. -## Administrator +### Administrator The following artifacts should be written and made findable for administrators. @@ -147,7 +149,7 @@ The following artifacts should be written and made findable for administrators. - Troubleshoot common problems - Tune server performance -## Developer +### Developer The following artifacts should be written and made findable for developers. @@ -164,7 +166,7 @@ The following artifacts should be written and made findable for developers. - Deprecating and retiring a product from Backstage - Searching for a component in Backstage -## Integrator +### Integrator There are a dizzying array of issues with writing, modifying, and maintaining plugins in Backstage. This is not a detailed recipe for documenting those @@ -180,7 +182,7 @@ issues. For integrators, at a high level, a program should be undertaken to: references and architecture discussions) into supporting documentation, referenced from the integration tasks. -## Contributor +### Contributor For a plugin-dependent project like Backstage, it's vital that community members contribute plugins, for two reasons: @@ -194,7 +196,7 @@ repo and should be limited to how to contribute software to the product. "How to write a plugin" documentation should be included in the website-based doc as described above. -# Organize and "signpost" documentation +## Organize and "signpost" documentation Right now different types of documentation (conceptual/architectural; instructional; reference) for different user roles are intermixed throughout the @@ -210,7 +212,7 @@ to learning the software and becoming proficient as quickly as possible. Some documents are used by more than one user role. These docs are listed first under the heading **Common**. -## Common +### Common | Document | Description | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -219,14 +221,14 @@ under the heading **Common**. | Glossary | A dictionary of product-specific terms. Also commonly includes domain- and industry-specific terms that are necessary to understanding the product. | | Knowledge base | An encyclopedic collection of related background, conceptual, and reference information that doesn't fit elsewhere in the documentation. Similar to a FAQ, but more structured, more searchable and, therefore, more useful. | -## Evaluator +### Evaluator | Document | Description | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Logo wall | Not a technical document, but a _de rigeur_ feature on a product website these days. The logo wall shows at a glance an instantly recognizable selection of organizations that use the product. The logos typically link to testimonials or to the organizations' own websites. | | Case studies | Another element on a product website that is as much marketing as technical material, a case study nonetheless helps an evaluator decide whether to adopt the product. A handful of well written case studies is sufficient. | -## Administrator +### Administrator | Document | Description | | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -234,7 +236,7 @@ under the heading **Common**. | Installation and configuration guide | A guide to downloading, installing, and configuring an organization-wide Backstage instance ("app"). | | Administrator guide | Contains all tasks the administrator needs to maintain the Backstage app: onboarding developers; installing plugins; starting, stopping, upgrading, and troubleshooting the app; using containers; evaluating and tuning server performance. | -## Developer +### Developer | Document | Description | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -244,22 +246,22 @@ under the heading **Common**. | Tutorials | Tasks that are good candidates for tutorials are difficult, often-used tasks that must be mastered to use the product effectively. Many of these are probably in daily use by developers. | | Cookbooks | There might be specialized tasks required of developers by an organization that should be documented, especially if they are performed infrequently. | -## Integrator +### Integrator | Document | Description | | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Technical overview | Same as the common technical overview, but an integrator will need more detail about the plugin architecture. | | Cookbooks | The integrator will need to write plugins. This encompasses a large body of task knowledge. The best way to document these is as a collection of tasks or procedures explaining how to complete each task. Even with a comprehensive collection of task documents, some creativity is probably needed by the integrator, since every new plugin by definition is solving a new problem. | -## Contributor +### Contributor | Document | Description | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | GitHub Instructions | Contributing a plugin to Backstage is essentially an exercise in creating and shepherding a pull request through the Backstage community process. This can be documented entirely in GitHub, or it can be a separate section in the Backstage documentation. Regardless, the contributing instructional material should be separate from the integration/"How to write a plugin" material. | -# Website and documentation infrastructure +## Website and documentation infrastructure -## Single-source repo +### Single-source repo Move the Backstage documentation out of the [Backstage repo][backstage-github-project] and into its own repo within the [Backstage @@ -270,23 +272,23 @@ In the meantime, put references to the documentation contributing and build instructions alongside the project code instructions in the contributor documentation in the Backstage repo. -## Case studies/social proof +### Case studies/social proof Implement a **logo wall** of participating organizations, with links to testimonials or the organizations' websites. Write or solicit a handful of representative case studies and link them from the website. -## SEO, Analytics and site-local search +### SEO, Analytics and site-local search Add documentation and website custodians to the project maintainer lists in `OWNERS.md` and wherever else project maintainers are documented. -## Maintenance planning +### Maintenance planning Add a prominent call for website and documentation maintainers in the project introduction alongside the call for code maintainers. -## Accessibility +### Accessibility Improve compliance in these areas: diff --git a/analyses/2023/backstage/backstage-issues.md b/analyses/2023/backstage/backstage-issues.md index df7056fb..0b14efe6 100644 --- a/analyses/2023/backstage/backstage-issues.md +++ b/analyses/2023/backstage/backstage-issues.md @@ -3,6 +3,8 @@ title: Backstage umbrella issue tags: [backstage] --- + + # Backstage umbrella issue ## Overview diff --git a/analyses/2023/backstage/user-roles.md b/analyses/2023/backstage/user-roles.md index d1869b55..30ee0b51 100644 --- a/analyses/2023/backstage/user-roles.md +++ b/analyses/2023/backstage/user-roles.md @@ -3,6 +3,8 @@ title: Backstage User Roles for Doc tags: [backstage] --- + + # Backstage User Roles for Doc This document provides recommendations for user roles, or personas, for diff --git a/analyses/2023/etcd/etcd-analysis.md b/analyses/2023/etcd/etcd-analysis.md index f8a06145..ca277a54 100644 --- a/analyses/2023/etcd/etcd-analysis.md +++ b/analyses/2023/etcd/etcd-analysis.md @@ -7,7 +7,9 @@ author: Dave Welsch (@dwelsch-esi) cSpell:ignore: Welsch dwelsch --- -# Introduction + + +## Introduction This document analyzes the effectiveness and completeness of the [etcd][etcd-io] open source software (OSS) project's documentation and website. It is funded by @@ -19,7 +21,7 @@ prerequisite for program graduation. The documentation analysis is the first step of a CNCF process aimed at assisting projects with their documentation efforts. -## Purpose +### Purpose This document was written to analyze the current state of etcd documentation. It aims to provide project leaders with an informed understanding of potential @@ -35,7 +37,7 @@ This document: actionable suggestions and recommendations for overall organization and presentation of documentation -## Scope of analysis +### Scope of analysis The documentation discussed here includes the entire contents of the website (which contains the technical docs), as well as documentation for contributors @@ -57,7 +59,7 @@ Netlify platform. The site's code is stored on the etcd GitHub repo. - Other etcd repos: `https://github.com/etcd-io/*` -## How this document is organized +### How this document is organized This document is divided into three sections that represent three major areas of concern: @@ -84,7 +86,7 @@ that can be completed in constrained blocks of time. Ultimately, the implementation items should be tracked as a series of Github [issues][etcd-issues]. -## How to use this document +### How to use this document Readers interested only in actionable improvements should skip this document and read [etcd-implementation.md][implementation-doc]. @@ -100,7 +102,7 @@ to their area of concern: Examples of CNCF documentation that demonstrate the analysis criteria are linked from the [Criteria][cncf-doc-criteria] specification. -### Recommendations, requirements, and best practices +#### Recommendations, requirements, and best practices This analysis measures documentation against CNCF project maturity standards, and suggests possible improvements. In most cases there is more than one way to @@ -112,7 +114,7 @@ understood as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. -# Project documentation +## Project documentation etcd is a **graduated** project of CNCF. This means that the project should have [_very high_][cncf-doc-criteria] standards for documentation. @@ -125,7 +127,7 @@ etcd is a **graduated** project of CNCF. This means that the project should have | Content creation processes | 2 - needs improvement | | Inclusive language | 2 - needs improvement | -## Comments +### Comments Much of the documentation seems as if it hasn't been reviewed and updated for a while. @@ -133,7 +135,7 @@ while. The following sections contain brief assessments of each element of the Project Documentation rubric. -### Information architecture +#### Information architecture There is **high-level conceptual** and design content, but it is hard to find. Most of it is in a _Learning_ section, which is not a conventional label for a @@ -220,7 +222,7 @@ installation procedure in the documentation. If this represents a separate, automated installation workflow it should be offered as a procedure in the user doc. -### New user content +#### New user content There is a single paragraph on the [website][etcd-io] landing page with a "Learn more" link that goes to the current documentation table of contents (ToC). It @@ -261,7 +263,7 @@ There are instructions for installing and getting started in the etcd-io/etcd [README][etcd-readme]. It would be preferable to point new users and contributors to the documentation straightaway. -### Content maintainability & site mechanics +#### Content maintainability & site mechanics Documentation content is **versioned** with the software. Versions are maintained in separate **directories** in the website content repo. @@ -287,7 +289,7 @@ There do not appear to be plans to translate the documentation from English. There is a Github issue label (`area/documentation`) for **documentation issues**. -### Content creation processes +#### Content creation processes There are instructions for contributing to documentation and for **releasing a new version** of the etcd **documentation** in the `README.md` file in the @@ -304,7 +306,7 @@ The website repo For example, instructions for building the website state that the local build starts the server on `localhost:8888`. It's actually `localhost:1313`. -### Inclusive language +#### Inclusive language Language is mostly inclusive. For example, the neutral terms "Leader" and "Follower" are used to describe server failover roles. @@ -319,9 +321,9 @@ For example: action]"; for example, "Creating a user is as easy as" in [Role-based access control](https://etcd.io/docs/v3.5/op-guide/authentication/rbac/). -## Recommendations +### Recommendations -### Information architecture +#### Information architecture Reorganize the table of contents (ToC) to separate three types of information: @@ -388,7 +390,7 @@ they're no longer relevant. Consider removing the installation example from the [etcd Play][demo server] server and pointing the user to the documentation's installation instructions. -### New user content +#### New user content Point "Learn more" links to a "Start here" page that provides orientation and sets out paths for different user roles. For example, the Developer path should @@ -419,7 +421,7 @@ paths for specific persona use cases. Remove getting-started instructions from the main GitHub repo README and instead point the user to the documentation. -### Content maintainability & site mechanics +#### Content maintainability & site mechanics Remove links to documentation for previous releases from the current documentation version. Going forward, write doc for each release without @@ -435,7 +437,7 @@ References to previous versions are in the following 3.5 documentation files: - metrics.md - dev-guide/discovery_protocol.md -### Content creation processes +#### Content creation processes Update the content creation instructions in the website README file. @@ -443,12 +445,12 @@ Move issue and PR submission guidelines from the documentation ("Triage") to the Github repo. Link to these guidelines from a Troubleshooting section in the docs. -### Inclusive language +#### Inclusive language Audit the documentation for non-inclusive language. See the [Inclusive Naming Initiative](https://inclusivenaming.org/) website. -# Contributor documentation +## Contributor documentation etcd is a **graduated** project of CNCF. This means that the project should have [_very high_](../../docs/analysis/criteria.md) standards for contributor @@ -461,9 +463,9 @@ documentation. | “New contributor” getting started content | 3 - meets standards | | Project governance documentation | 4 - meets or exceeds standards | -## Comments +### Comments -### Communication methods documented +#### Communication methods documented **Communication channels** include a Google Group and Twitter, and are documented on the [Community][etcd-community] page. @@ -482,7 +484,7 @@ list**. the etcd repo. These should be in the repo itself, with a pointer from the documentation troubleshooting section. -### Beginner friendly issue backlog +#### Beginner friendly issue backlog There is a **good first issue** label. Issues are generally **well documented** by submitters and discussed in the Issues forum. There is a label @@ -500,38 +502,38 @@ issues for the etcd main repo at the time of this writing: | 6 mo - 12 mo | 40 | \*\*\*\*\*\*\*\* | | > 12 mo | 52 | \*\*\*\*\*\*\*\*\*\*\* | -### New contributor getting started content +#### New contributor getting started content There is a [**Community**][etcd-community] page on the etcd website. There is no dedicated **"first-contributor"** document, but there are multiple resources and pointers in the general contributor instructions. New contributors should have minimal difficulty **finding help** if they need it. -### Project governance documentation +#### Project governance documentation [**Project governance**][etcd-govern] is clearly documented. -## Recommendations +### Recommendations -### Communication methods documented +#### Communication methods documented Move the information from the [Triage][etcdio-triage] doc section into the repo itself, with pointers from the documentation Troubleshooting guide. -### Beginner friendly issue backlog +#### Beginner friendly issue backlog No recommendations. -### New contributor getting started content +#### New contributor getting started content Consider creating a conspicuous "First contributor start here" document in the repo, with links to the other contributor resources. -### Project governance documentation +#### Project governance documentation No recommendations. -# Website +## Website etcd is a **graduated** project of CNCF. This means that the project should have [_very high_](../../docs/analysis/criteria.md) standards for documentation. @@ -553,9 +555,9 @@ etcd is a **graduated** project of CNCF. This means that the project should have | Intra-site / local search | 5 - exemplary | | Account custodians are documented | 4 - meets or exceeds standards | -## Comments +### Comments -### Single-source requirement +#### Single-source requirement The website has its own GitHub **repository**. The website repo contains the documentation and is separated from the project source code. @@ -563,7 +565,7 @@ documentation and is separated from the project source code. **Contributor documentation** is contained in the [main code repo][github-etcd-etcd] in well labeled Markdown files. -### Minimal website requirements +#### Minimal website requirements Except for archived projects, requirements are cumulative through project maturity levels so, for example, incubating projects must satisfy the @@ -589,7 +591,7 @@ sandbox, incubating, graduated and archived. | Archived | Archived status of the project is obvious to site visitors | n/a | | Archived | Link to successor project website and/or migration documentation (if it exists) | n/a | -### Usability, accessibility and devices +#### Usability, accessibility and devices The site is **usable from mobile**. **Doc pages are readable**. Features such as **search** and **top-nav** work; the **in-page TOC** is missing on a small phone @@ -601,13 +603,13 @@ on the landing page. Basic **website features**, including navigation, can be done via **keyboard**. Unknown whether **text-to-speech** is a good user experience for listeners. -### Branding and design +#### Branding and design The website and documentation carry an **easily recognizable brand** for the project based on logo, color scheme, and template layout. The brand is used **consistently** on the site. The text is easily **readable**. -### Case studies/social proof +#### Case studies/social proof The landing page lists a tiny **"logo wall"** of four "Used by" organizations, though given that one of those organizations is Kubernetes, this seems adequate. @@ -625,7 +627,7 @@ production installation, including when it was launched, the cluster size, what application is using etcd, and the cloud environment. The list of production users in this file is probably not exhaustive. -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search The website has site-wide search, GA4 enabled, and well indexed on popular search engines; matches perfectly to our criteria. @@ -647,7 +649,7 @@ search engines; matches perfectly to our criteria. - Account custodians are not clearly documented. -### Maintenance planning +#### Maintenance planning The website uses Hugo and Docsy, which are the recommended **website tooling** for CNCF projects. @@ -662,52 +664,52 @@ Site maintainers have **adequate permissions** to update the website. Maintainers of the [website repository][website-repo] are adequately documented in the OWNERS file in the repo. Approvers and reviewers are listed. -### Other +#### Other The website is accessible via **HTTPS**. Requests using **HTTP** are properly redirected to the **HTTPS** URLs. The [demo server][] uses unsecured HTTP. -## Recommendations +### Recommendations -### Single-source requirement +#### Single-source requirement No recommendations. -### Minimal website requirements +#### Minimal website requirements Update website to include DCO or other source validation. Identify stakeholders (user roles). Ensure that instructions exist in the documentation for all major use cases for each stakeholder. -### Usability, accessibility and devices +#### Usability, accessibility and devices Consider replacing low-contrast text for the benefit of visually impaired users. -### Branding and design +#### Branding and design No recommendations. -### Case studies/social proof +#### Case studies/social proof Consider adding user testimonials and/or case studies to the web page. Consider posting updates and news to the blog more regularly. -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search **Account custodians** - Areas such as analytics, Google Search Console, site-search (such as Google CSE or Algolia) must have at least one custodian assigned. -### Maintenance planning +#### Maintenance planning No recommendations. -### Other +#### Other Consider securing the [demo server][] using HTTPS. diff --git a/analyses/2023/etcd/etcd-issues.md b/analyses/2023/etcd/etcd-issues.md index 76833943..2ad360fa 100644 --- a/analyses/2023/etcd/etcd-issues.md +++ b/analyses/2023/etcd/etcd-issues.md @@ -4,6 +4,8 @@ tags: [etcd] cSpell:ignore: reconf --- + + # Overview Here is an outline of the recommended changes to the etcd documentation. diff --git a/analyses/2023/in-toto/in-toto-analysis.md b/analyses/2023/in-toto/in-toto-analysis.md index dca0bd54..9f3fc462 100644 --- a/analyses/2023/in-toto/in-toto-analysis.md +++ b/analyses/2023/in-toto/in-toto-analysis.md @@ -3,6 +3,8 @@ title: Analysis of Existing Documentation tags: [in-toto] --- + + # Analysis of Existing Documentation This document characterizes the effectiveness and completeness of the in-toto diff --git a/analyses/2023/in-toto/in-toto-doc-issues.md b/analyses/2023/in-toto/in-toto-doc-issues.md index f599d1d3..376509d4 100644 --- a/analyses/2023/in-toto/in-toto-doc-issues.md +++ b/analyses/2023/in-toto/in-toto-doc-issues.md @@ -3,6 +3,8 @@ title: Documentation Issues tags: [in-toto] --- + + # Documentation Issues These issues identify and classify tasks that contributors can undertake to diff --git a/analyses/2023/in-toto/in-toto-implementation.md b/analyses/2023/in-toto/in-toto-implementation.md index 5ec2ab27..451bcfeb 100644 --- a/analyses/2023/in-toto/in-toto-implementation.md +++ b/analyses/2023/in-toto/in-toto-implementation.md @@ -4,6 +4,8 @@ tags: [in-toto] cSpell:ignore: roadmaps Cappos --- + + # Implementation ## Organizational principles diff --git a/analyses/2023/porter/analysis.md b/analyses/2023/porter/analysis.md index c2050c53..3b9d2e67 100644 --- a/analyses/2023/porter/analysis.md +++ b/analyses/2023/porter/analysis.md @@ -4,7 +4,7 @@ tags: [porter] cSpell:ignore: Uchechukwu Obasi --- - + # Porter Docs Analysis diff --git a/analyses/2024/keda/keda-analysis.md b/analyses/2024/keda/keda-analysis.md index cb4517dd..9cf11356 100644 --- a/analyses/2024/keda/keda-analysis.md +++ b/analyses/2024/keda/keda-analysis.md @@ -9,7 +9,7 @@ cSpell:ignore: Welsch dwelsch pastable servicedesk -# Introduction +## Introduction This document analyzes the effectiveness and completeness of the [KEDA](https://keda.sh) open source software (OSS) project's documentation and @@ -21,7 +21,7 @@ prerequisite for program graduation. The documentation analysis is the first step of a CNCF process aimed at assisting projects with their documentation efforts. -## Purpose +### Purpose This document was written to analyze the current state of KEDA documentation. It aims to provide project leaders with an informed understanding of potential @@ -37,7 +37,7 @@ This document: actionable suggestions and recommendations for overall organization and presentation of documentation -## Scope of analysis +### Scope of analysis The documentation discussed here includes the entire contents of the website (which contains the technical docs), as well as documentation for contributors @@ -59,7 +59,7 @@ Netlify platform. The site's code is stored on the KEDA GitHub repo. - Other KEDA repos under https://github.com/kedacore/ -## How this document is organized +### How this document is organized This document is divided into three sections that represent three major areas of concern: @@ -86,7 +86,7 @@ that can be completed in constrained blocks of time. Ultimately, the implementation items should be tracked as a series of Github [issues](keda-issues.md). -## How to use this document +### How to use this document Readers interested only in actionable improvements should skip this document and read [keda-implementation.md](./keda-implementation.md). @@ -102,7 +102,7 @@ to their area of concern: Examples of CNCF documentation that demonstrate the analysis criteria are linked from the [criteria](../../docs/analysis/criteria.md) specification. -### Recommendations, requirements, and best practices +#### Recommendations, requirements, and best practices This analysis measures documentation against CNCF project maturity standards, and suggests possible improvements. In most cases there is more than one way to @@ -115,7 +115,7 @@ strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. -# Project documentation +## Project documentation KEDA is a **graduated** project of CNCF. This means that the project should have [_very high_](../../docs/analysis/criteria.md) standards for documentation. @@ -128,9 +128,9 @@ KEDA is a **graduated** project of CNCF. This means that the project should have | Content creation processes | 2 - needs improvement | | Inclusive language | 2 - needs improvement | -## Comments +### Comments -### Information architecture +#### Information architecture There is an overview containing **high-level conceptual** content that explains what KEDA is and how it works. The conceptual overview has one diagram, which @@ -169,7 +169,7 @@ their own directory in the repo. Release notes are provided in the project main repo, and linked from a ROADMAP file. They are not linked from the documentation pages. -### New user content +#### New user content There is partial **getting started** information in the documentation as [Deploying KEDA](https://keda.sh/docs/2.13/deploy/), the first topic in the @@ -207,7 +207,7 @@ roadmap. There is easily **copy-pastable** content for CLI input where appropriate, including in the installation instructions. -### Content maintainability & site mechanics +#### Content maintainability & site mechanics The documentation is **Searchable** using functionality provided by the site generation engine. @@ -218,7 +218,7 @@ multiple languages** in case that changes. The documentation is **versioned**. The repo contains a separate folder for each version. -### Content creation processes +#### Content creation processes The procedure for **building and releasing a new version** is documented in the doc repo README file. @@ -230,7 +230,7 @@ The MAINTAINERS doc in the website repo points to the MAINTAINERS doc in the main repo, which does not tell who is **responsible for documentation pull requests**. The website does not have a **clear owner or maintainer**. -### Inclusive language +#### Inclusive language The documentation includes some examples of [**non-inclusive language**](https://inclusivenaming.org/). For example: @@ -243,9 +243,9 @@ The documentation includes some examples of - https://keda.sh/docs/2.13/troubleshooting/#google-kubernetes-engine-gke - https://keda.sh/docs/2.13/scalers/redis-sentinel-lists/#authentication-parameters -## Recommendations +### Recommendations -### Information architecture +#### Information architecture Reorganize the Table of Contents. Rename "The KEDA Documentation"; the name is misleading since it implies that it contains the entire documentation set. I'd @@ -267,29 +267,29 @@ or link to other documentation that does, for example the [Kubernetes documentation on HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/). For example, explain how to do 0-to-1 scaling. -### New user content +#### New user content Clearly label the starting point for new users. Make sure that there is an easy to follow workflow for installation, configuring and running a basic scaler, and any other tasks required to begin using KEDA. -### Content maintainability & site mechanics +#### Content maintainability & site mechanics No recommendations -### Content creation processes +#### Content creation processes Make it easier to find the instructions for releasing a new version of the documentation and updating the documentation. Document in the repo who the website/documentation maintainers are. -### Inclusive language +#### Inclusive language Remove non-inclusive language throughout the documentation as recommended on the [inclusive naming website](https://inclusivenaming.org/). -# Contributor documentation +## Contributor documentation KEDA is a **graduated** project of CNCF. This means that the project should have [_very high_](../../docs/analysis/criteria.md) standards for contributor @@ -302,9 +302,9 @@ documentation. | “New contributor” getting started content | 3 - meets standards | | Project governance documentation | 4 - meets or exceeds standards | -## Comments +### Comments -### Communication methods documented +#### Communication methods documented The KEDA main repo points to **community** resources, including a KEDA Slack channel in the Kubernetes workspace. There is a **community page** on the @@ -312,7 +312,7 @@ website that invites readers to a **biweekly Zoom meeting**. The main website has direct links in the footer to the Slack community, the **GitHub** repo, and a Twitter feed. I could not find any mention of a **mailing list**. -### Beginner friendly issue backlog +#### Beginner friendly issue backlog Doc **issues** in the repo are **well documented** and have been labeled and, presumably, **triaged**. @@ -323,7 +323,7 @@ applied to any issues). There are **stale issues**, but they seem for the most part to be managed. There are only ~30 open issues in the doc repo. -### New contributor getting started content +#### New contributor getting started content The website contains a **community section**. @@ -331,14 +331,14 @@ There is **CONTRIBUTORS** document in the website/documentation repo with instructions for **getting help** and building and contributing new documentation. -### Project governance documentation +#### Project governance documentation **Governance** is clearly documented in its own repo. Presumably this information is applicable to all of the repos in kedacore. -## Recommendations +### Recommendations -### Communication methods documented +#### Communication methods documented If there is a mailing list or other news distribution channel, add it to the community page. (Note: As discussed in the @@ -346,19 +346,19 @@ community page. (Note: As discussed in the newsletter. This is OK since there are plenty of other active communication channels.) -### Beginner friendly issue backlog +#### Beginner friendly issue backlog Revisit stale issues if they are not being reviewed. -### New contributor getting started content +#### New contributor getting started content No recommendations. -### Project governance documentation +#### Project governance documentation No recommendations. -# Website +## Website KEDA is a **graduated** project of CNCF. This means that the project should have [_very high_](../../docs/analysis/criteria.md) standards for documentation. @@ -380,9 +380,9 @@ KEDA is a **graduated** project of CNCF. This means that the project should have | Intra-site / local search | 5 - exemplary | | Account custodians are documented | 2 - needs improvement | -## Comments +### Comments -### Single-source requirement +#### Single-source requirement Source files for all website pages reside in a **single repo**. However, some user documentation pages (specifically, "Getting started" topics linked from the @@ -391,7 +391,7 @@ tech docs on the website. Website files are all in the website repo. -### Minimal website requirements +#### Minimal website requirements Except for archived projects, requirements are cumulative through project maturity levels so, for example, incubating projects must satisfy the @@ -418,7 +418,7 @@ sandbox, incubating, graduated and archived. | Archived | Archived status of the project is obvious to site visitors | n/a | | Archived | Link to successor project website and/or migration documentation (if it exists) | n/a | -### Usability, accessibility and devices +#### Usability, accessibility and devices The website is **usable from mobile**. Top-nav is reachable only via the hamburger menu on mobile devices. There is no in-page TOC or other context on @@ -439,13 +439,13 @@ only**. As with any text that contains a lot of code and special characters, **text-to-speech** is **not likely to offer listeners a good experience**. -### Branding and design +#### Branding and design The website and documentation carry an **easily recognizable brand** for the project based on logo, color scheme, and template layout. The **brand is used consistently** on the site. The website's text is **easily readable**. -### Case studies/social proof +#### Case studies/social proof I'm unable to find **case studies** or **user testimonials** for the project. They're probably not as important for KEDA as they are for a more extensive @@ -460,7 +460,7 @@ There are **community talks** for the project on YouTube. One talk, from KubeCon There is a substantial **logo wall of users and participating organizations**. The KEDA project solicits users to register as "listed users." -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search **Analytics:** @@ -479,7 +479,7 @@ The KEDA project solicits users to register as "listed users." - There are no records showing the different account custodians; nothing is listed on `MAINTAINERS.md` and no `OWNERS.md` is found. -### Maintenance planning +#### Maintenance planning The website uses Hugo and Docsy, which are the recommended **website tooling** for CNCF projects. @@ -493,18 +493,18 @@ community or third-party scalers (plugin components). Presumably, **site maintainers have adequate permissions** since the documentation is up to date with the software. -### Other +#### Other The website is accessible via **HTTPS**. Requests using **HTTP** are properly redirected to the **HTTPS** URLs. -## Recommendations +### Recommendations -### Single-source requirement +#### Single-source requirement No recommendations. -### Minimal website requirements +#### Minimal website requirements Identify stakeholder roles in the user documentation (even if there is only one role). This could be as minimal as a "who should use this documentation" @@ -513,29 +513,29 @@ paragraph in the product introduction. Update docs per Implementation and Issues recommendations (separate documents). Especially, improve new user documentation. -### Usability, accessibility and devices +#### Usability, accessibility and devices No recommendations. -### Branding and design +#### Branding and design No recommendations. -### Case studies/social proof +#### Case studies/social proof No recommendations. -### SEO, Analytics and site-local search +#### SEO, Analytics and site-local search The current custodian(s) of the following accounts should be clearly documented: analytics (GA4), site-search (Algolia). You can create an `OWNERS.md` file for this. -### Maintenance planning +#### Maintenance planning Explicitly list and solicit maintainers and contributors for documentation. -### Other +#### Other No recommendations. diff --git a/analyses/2024/keda/keda-implementation.md b/analyses/2024/keda/keda-implementation.md index 46e5bc32..489c1595 100644 --- a/analyses/2024/keda/keda-implementation.md +++ b/analyses/2024/keda/keda-implementation.md @@ -3,9 +3,9 @@ title: Implementing KEDA Doc Improvements tags: [KEDA] --- - + -# Introduction +## Introduction This document provides actionable suggestions for improving the KEDA technical documentation. @@ -13,7 +13,7 @@ documentation. For an analysis and general discussion of recommendations on KEDA technical documentation, see [keda-analysis.md][keda-analysis]. -## Recommendations, requirements, and best practices +### Recommendations, requirements, and best practices This analysis measures documentation against CNCF project maturity standards, and suggests possible improvements. In most cases there is more than one way to @@ -37,7 +37,7 @@ The documentation recommendations for this project are: - [Make user roles explicit](#make-user-roles-explicit) - [Clarify documentation maintainers](#clarify-documentation-maintainers) -# Reorganize the Table of Contents +## Reorganize the Table of Contents Reorganize the Table of Contents to: @@ -79,18 +79,18 @@ Here is a proposed outline for the tech doc Table of Contents: current "KEDA Documentation" heading) - [Deploying KEDA](https://keda.sh/docs/2.13/deploy/) - Prerequisites (https://keda.sh/docs/2.13/operate/cluster/#requirements) - - [Deploying with Helm](?no-link-check#helm) - - [Installing](?no-link-check#install) - - [Uninstalling](?no-link-check#uninstall) - - [Deploying with Operator Hub](?no-link-check#operatorhub) - - [Installing](?no-link-check#install-1) - - [Uninstalling](?no-link-check#uninstall-1) - - [Deploying using the deployment YAML files](?no-link-check#yaml) - - [Installing](?no-link-check#install-2) - - [Uninstalling](?no-link-check#uninstall-2) - - [Deploying KEDA on MicroK8s](?no-link-check#microk8s) - - [Installing](?no-link-check#install-3) - - [Uninstalling](?no-link-check#uninstall-3) + - [Deploying with Helm](https://keda.sh/docs/2.13/deploy/#helm) + - [Installing](https://keda.sh/docs/2.13/deploy/#install) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall) + - [Deploying with Operator Hub](https://keda.sh/docs/2.13/deploy/#operatorhub) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-1) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-1) + - [Deploying using the deployment YAML files](https://keda.sh/docs/2.13/deploy/#yaml) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-2) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-2) + - [Deploying KEDA on MicroK8s](https://keda.sh/docs/2.13/deploy/#microk8s) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-3) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-3) - Hello, KEDA (write a procedure for a simplest-possible use case for users to get started on - something like https://github.com/kedacore/sample-hello-world-azure-functions) @@ -157,11 +157,11 @@ Among other things, the reorganization includes these changes: - Separate reference and task information that appears on the same page and move each to the appropriate section. -# Write a Glossary +## Write a Glossary Create a glossary of terms specific to KEDA. Add to the Reference section. -# Add "How to set up a scaler" to the Operator guide +## Add "How to set up a scaler" to the Operator guide Setting up a scaler seems to be largely a matter of installing the scaler and providing parameters in a configuration file. While the configurations are @@ -173,7 +173,7 @@ least most) scalers. Any scaler that requires special instructions other than the configuration file should have its own procedure page, listing the extra steps required. -# Write a New User workflow +## Write a New User workflow Write a task-based, step-by-step workflow for new users. Assume the new user has no experience with KEDA and is fairly new to Kubernetes. @@ -198,24 +198,24 @@ annotated to illustrate this point: the differences here to help the new user decide. Also, if prerequisites depend on the deployment type, you can optionally put a Prerequisites section in each deployment procedure rather than here._ - - [Deploying with Helm](?no-link-check#helm) - - [Installing](?no-link-check#install) - - [Uninstalling](?no-link-check#uninstall) \* - - [Deploying with Operator Hub](?no-link-check#operatorhub) - - [Installing](?no-link-check#install-1) - - [Uninstalling](?no-link-check#uninstall-1) - - [Deploying using the deployment YAML files](?no-link-check#yaml) - - [Installing](?no-link-check#install-2) - - [Uninstalling](?no-link-check#uninstall-2) - - [Deploying KEDA on MicroK8s](?no-link-check#microk8s) - - [Installing](?no-link-check#install-3) - - [Uninstalling](?no-link-check#uninstall-3) + - [Deploying with Helm](https://keda.sh/docs/2.13/deploy/#helm) + - [Installing](https://keda.sh/docs/2.13/deploy/#install) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall) \* + - [Deploying with Operator Hub](https://keda.sh/docs/2.13/deploy/#operatorhub) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-1) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-1) + - [Deploying using the deployment YAML files](https://keda.sh/docs/2.13/deploy/#yaml) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-2) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-2) + - [Deploying KEDA on MicroK8s](https://keda.sh/docs/2.13/deploy/#microk8s) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-3) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-3) - Hello, KEDA (write a procedure for a simplest-possible use case for users to get started on - something like https://github.com/kedacore/sample-hello-world-azure-functions) _analogous to a "Hello World" exercise in programming language or API guides_ -# Update the doc content creation instructions +## Update the doc content creation instructions In the keda-docs [README](https://github.com/kedacore/keda-docs/blob/main/README.md): @@ -230,12 +230,12 @@ In the keda-docs Document in the repo (keda-docs, keda, or both) who the website/documentation maintainers are. -# Remove non-inclusive language +## Remove non-inclusive language Remove non-inclusive language throughout the documentation as recommended by the [Inclusive Naming Initiative](https://inclusivenaming.org/). -# Make user roles explicit +## Make user roles explicit KEDA seems to have only one explicit user role (or _persona_), namely, an Operator using KEDA to scale resources on a Kubernetes installation. Regardless, @@ -247,7 +247,7 @@ repo. The definition of the Operator role could be as minimal as a "who should use this documentation" paragraph in the product introduction. -# Clarify documentation maintainers +## Clarify documentation maintainers Create an `OWNERS.md` file to document (on the repo) the current custodian(s) of the following accounts: analytics (GA4), site-search (Algolia). diff --git a/analyses/2024/keda/keda-issues.md b/analyses/2024/keda/keda-issues.md index 7b048c8e..b7d218ec 100644 --- a/analyses/2024/keda/keda-issues.md +++ b/analyses/2024/keda/keda-issues.md @@ -4,15 +4,15 @@ tags: [KEDA] cSpell:ignore: externalscaler findability --- - + -# Overview +## Overview This document outlines the recommended changes to the KEDA documentation. The following issues are added to the [project repo](https://github.com/kedacore/keda-docs). -# Issue: Reorganize the Table of Contents +## Issue: Reorganize the Table of Contents Reorganize the Table of Contents to: @@ -35,7 +35,7 @@ on individual sections is broken out into sub-issues. - Reference. See [Create a Reference](#issue-create-a-reference-topic). - [Scalers](https://keda.sh/docs/2.13/scalers/). -## Issue: Reorganize Concepts +### Issue: Reorganize Concepts Remove everything that's not a conceptual overview. @@ -56,7 +56,7 @@ or provide a starting point. - [External Scalers](https://keda.sh/docs/2.13/concepts/external-scalers/) - [Admission Webhooks](https://keda.sh/docs/2.13/concepts/admission-webhooks/) -## Issue: Write a "Getting Started" guide +### Issue: Write a "Getting Started" guide Write a task-based, step-by-step workflow for new users. Start with the current "KEDA Documentation" section. @@ -86,24 +86,24 @@ into multiple pages, one for each procedure. This reduces frustration. Also, if prerequisites depend on the deployment type, you can optionally put a Prerequisites section in each deployment procedure rather than here._ - - [Deploying with Helm](?no-link-check#helm) - - [Installing](?no-link-check#install) - - [Uninstalling](?no-link-check#uninstall) - - [Deploying with Operator Hub](?no-link-check#operatorhub) - - [Installing](?no-link-check#install-1) - - [Uninstalling](?no-link-check#uninstall-1) - - [Deploying using the deployment YAML files](?no-link-check#yaml) - - [Installing](?no-link-check#install-2) - - [Uninstalling](?no-link-check#uninstall-2) - - [Deploying KEDA on MicroK8s](?no-link-check#microk8s) - - [Installing](?no-link-check#install-3) - - [Uninstalling](?no-link-check#uninstall-3) + - [Deploying with Helm](https://keda.sh/docs/2.13/deploy/#helm) + - [Installing](https://keda.sh/docs/2.13/deploy/#install) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall) + - [Deploying with Operator Hub](https://keda.sh/docs/2.13/deploy/#operatorhub) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-1) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-1) + - [Deploying using the deployment YAML files](https://keda.sh/docs/2.13/deploy/#yaml) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-2) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-2) + - [Deploying KEDA on MicroK8s](https://keda.sh/docs/2.13/deploy/#microk8s) + - [Installing](https://keda.sh/docs/2.13/deploy/#install-3) + - [Uninstalling](https://keda.sh/docs/2.13/deploy/#uninstall-3) - Hello, KEDA (write a procedure for a simplest-possible use case for users to get started on - something like https://github.com/kedacore/sample-hello-world-azure-functions) _analogous to a "Hello World" exercise in programming language or API guides_ -## Issue: Update the Operator Guide +### Issue: Update the Operator Guide Some guidelines: @@ -160,7 +160,7 @@ or provide a starting point. - [Troubleshooting](https://keda.sh/docs/2.13/concepts/troubleshooting/) `/docs/2.13/troubleshooting/` -## Issue: Create a "Reference" topic +### Issue: Create a "Reference" topic - The Reference section should be at or near the end of the ToC - Include the following information in the Reference section: @@ -185,7 +185,7 @@ or provide a starting point. - [FAQ](https://keda.sh/docs/2.13/reference/faq/) - Glossary -# Separate reference and task information +## Separate reference and task information A common practice that reduces documentation effectiveness is mixing conceptual and task information. _Conceptual_ discussion can be thought of as _How it @@ -215,7 +215,7 @@ some judgement might be required to rearrange things. | Events | https://keda.sh/docs/2.13/operate/events/ | This is reference information. | | Integrate with Prometheus | https://keda.sh/docs/2.13/integrations/prometheus/ | Split this into a task ("Integrating with Prometheus" and a reference "Metrics Exported to Prometheus". | -# Write a Glossary +## Write a Glossary Create a glossary of terms specific to KEDA. It wouldn't hurt to include some key Kubernetes terms as well, especially acronyms. Add to the Reference section. @@ -246,7 +246,7 @@ Here is a partial list of terms to include: For an example from another CNCF project, see the [glossary in the Backstage documentation](https://backstage.io/docs/references/glossary/). -# Write "Setting Up a Scaler" +## Write "Setting Up a Scaler" Setting up a scaler seems to be largely a matter of installing the scaler and providing parameters in a configuration file. While the configurations are @@ -258,7 +258,7 @@ Users should be able to follow the procedure for any (or at least most) scalers. Any scaler that requires special instructions other than the configuration file should have its own procedure page, listing the extra steps required. -# Make user roles explicit +## Make user roles explicit KEDA seems to have only one explicit user role (or _persona_), namely, an Operator using KEDA to scale resources on a Kubernetes installation. Regardless, @@ -270,7 +270,7 @@ repo. The definition of the Operator role could be as minimal as a "who should use this documentation" paragraph in the product introduction. -# Update the doc content creation instructions +## Update the doc content creation instructions Make the following changes to improve the effectiveness of the KEDA documentation contributor instructions. @@ -285,7 +285,7 @@ In the keda-docs so that they're not separated by "Writing documentation for a new authentication provider". -# Clarify the KEDA website and documentation maintainers +## Clarify the KEDA website and documentation maintainers Create an `OWNERS.md` file to document (on the kedacore/keda-docs repo) the current custodian(s) of the following accounts: analytics (GA4), site-search @@ -295,7 +295,7 @@ Explicitly document in the repo (keda-docs, keda, or both) who the website/documentation maintainers are. Solicit maintainers and contributors for documentation, either in the new OWNERS file or the governance MAINTAINERS file. -# Remove non-inclusive language +## Remove non-inclusive language Remove non-inclusive language throughout the documentation as recommended by the [Inclusive Naming Initiative](https://inclusivenaming.org/). Some examples of diff --git a/analyses/2025/helm/helm-analysis.md b/analyses/2025/helm/helm-analysis.md index f37fb24b..7b48cdf0 100644 --- a/analyses/2025/helm/helm-analysis.md +++ b/analyses/2025/helm/helm-analysis.md @@ -263,10 +263,10 @@ is documented for users that need more help: information about working with the community and searching the existing issues in the Helm repo to troubleshoot. -- There are also some minimal FAQs here: https://helm.sh/docs/faq/. They include - a few questions about installing and one question about uninstalling. It looks - like this information is not really an "FAQ", but rather information about - installing/uninstalling Helm that might have been documented under FAQs +- There are also some minimal FAQ pages for installing and uninstalling. They + include a few questions about installing and one question about uninstalling. + It looks like this information is not really an "FAQ", but rather information + about installing/uninstalling Helm that might have been documented under FAQs because it lacks a more permanent home. The Helm docs lack clear troubleshooting steps for different common tasks. @@ -727,10 +727,10 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: ../criteria.md +[criteria]: /docs/analysis/criteria.md [implementation]: ./helm-implementation.md [issues list]: ./helm-issues-list.md [project-website]: https://helm.sh/ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 -[website guidelines]: ../../website-guidelines-checklist.md +[website guidelines]: /docs/website-guidelines-checklist.md diff --git a/analyses/2025/helm/helm-implementation.md b/analyses/2025/helm/helm-implementation.md index d599601a..d09a4095 100644 --- a/analyses/2025/helm/helm-implementation.md +++ b/analyses/2025/helm/helm-implementation.md @@ -135,8 +135,7 @@ personas, and the primary concepts/terms to know. There are several pages in the docs that are likely out-of-date or otherwise no longer relevant. For example: -- "FAQs" https://helm.sh/docs/faq/installing and - https://helm.sh/docs/faq/uninstalling +- "FAQs" pages for installing and uninstalling - Best practices section: https://helm.sh/docs/chart_best_practices/ diff --git a/analyses/2025/helm/helm-issues-list.md b/analyses/2025/helm/helm-issues-list.md index f0440c1c..78ac570d 100644 --- a/analyses/2025/helm/helm-issues-list.md +++ b/analyses/2025/helm/helm-issues-list.md @@ -60,8 +60,7 @@ high-level Helm overview page. See the proposed sidebar in Review each of these pages/section to see if their content can be redistributed or deleted: -- "FAQs" https://helm.sh/docs/faq/installing and - https://helm.sh/docs/faq/uninstalling +- "FAQs" pages for installing and uninstalling - Best practices section: https://helm.sh/docs/chart_best_practices/ diff --git a/analyses/2025/knative/analysis.md b/analyses/2025/knative/analysis.md index 106f3906..b6ac418b 100644 --- a/analyses/2025/knative/analysis.md +++ b/analyses/2025/knative/analysis.md @@ -841,9 +841,9 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: ../criteria.md +[criteria]: /docs/analysis/criteria.md [project-doc-website]: https://knative.dev/docs/ [project-website]: https://knative.dev/docs/ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 -[website guidelines]: ../../website-guidelines-checklist.md +[website guidelines]: /docs/website-guidelines-checklist.md diff --git a/analyses/2025/knative/issues.md b/analyses/2025/knative/issues.md index 3e74e1ad..a3c69e32 100644 --- a/analyses/2025/knative/issues.md +++ b/analyses/2025/knative/issues.md @@ -399,7 +399,7 @@ Related material in the current doc: - https://knative.dev/docs/getting-started/next-steps/ - https://knative.dev/docs/bookstore/page-0/welcome-knative-bookstore-tutorial/ - https://knative.dev/docs/bookstore/disclaimer/ -- https://knative.dev/docs/bookstore/* (all bookstore pages) +- all pages in the Bookstore tutorial - https://knative.dev/docs/serving/architecture/ - https://knative.dev/docs/serving/request-flow/ - https://knative.dev/docs/serving/encryption/encryption-overview/ diff --git a/analyses/2025/vitess/analysis.md b/analyses/2025/vitess/analysis.md index d721b18d..08faad06 100644 --- a/analyses/2025/vitess/analysis.md +++ b/analyses/2025/vitess/analysis.md @@ -1034,6 +1034,12 @@ TBD No recommendations. +## Companion documents + +Separate implementation and issues-list documents are not yet available for this +analysis. Use this page's recommendations and notes as the current source for +follow-up work. + ## References and notes ### Rating values @@ -1049,8 +1055,8 @@ The numeric rating values used in this document are as follows: ### References [criteria]: ../../docs/analysis/criteria.md -[implementation]: ./implementation.md?no-link-check -[issues list]: ./issues-list.md?no-link-check +[implementation]: #companion-documents +[issues list]: #companion-documents [project-doc-website]: https://vitess.io/docs/ [project-website]: https://vitess.io/ [Rating (1-5)]: #rating-values diff --git a/analyses/2026/flatcar/analysis.md b/analyses/2026/flatcar/analysis.md index 14597477..a3a3120e 100644 --- a/analyses/2026/flatcar/analysis.md +++ b/analyses/2026/flatcar/analysis.md @@ -6,7 +6,8 @@ modified: 2026-04-04 author: Bruce Hamilton (@iRaindrop) --- - + + ## Introduction @@ -25,9 +26,9 @@ efforts. This document was written to analyze the current state of Flatcar documentation. It aims to provide project leaders with an informed understanding of potential -problems in current project documentation. A second **implementation** document -outlines an actionable plan for improvement. A third document is an **issues -list** of issues to be added to the project documentation repository. These +problems in current project documentation. A second [implementation] document +outlines an actionable plan for improvement. A third document is an [issues +list] of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. This document: @@ -55,7 +56,7 @@ repository. The site's code is stored on the Flatcar GitHub repo. #### Out of scope Any Flatcar content that is not accessed by the documentation URL, -https://www.flatcar.org/docs/latest,is outside the scope of this analysis. The +https://www.flatcar.org/docs/latest, is outside the scope of this analysis. The FAQ and Blog are outside the scope, however an argument can be made to keep an up-to-date FAQ in the core documentation. @@ -88,7 +89,7 @@ into a series of issues and entered as GitHub project-doc-website/issues. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the **implementation plan** and **issues list**. +read the [implementation][] plan and [issues list][]. Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -724,6 +725,12 @@ We evaluate on the following: #### Other +#### Companion documents + +Separate implementation and issues-list documents are not yet available for this +analysis. Use this page's recommendations and notes as the current source for +follow-up work. + #### References and notes ##### Rating values @@ -736,10 +743,10 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: ../criteria.md -[implementation]: ./implementation.md -[issues list]: ./issues-list.md +[criteria]: /docs/analysis/criteria.md +[implementation]: #companion-documents +[issues list]: #companion-documents [project-website]: _PROJECT-WEBSITE_ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 -[website guidelines]: ../../website-guidelines-checklist.md +[website guidelines]: /docs/website-guidelines-checklist.md diff --git a/docs/analysis/templates/analysis.md b/docs/analysis/templates/analysis.md index f37e7b7b..2551255f 100644 --- a/docs/analysis/templates/analysis.md +++ b/docs/analysis/templates/analysis.md @@ -45,8 +45,8 @@ efforts. This document was written to analyze the current state of _PROJECT_ documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second -[implementation] document, , outlines an actionable plan for improvement. A -third document is an [issues list] of issues to be added to the project +[implementation][] document, , outlines an actionable plan for improvement. A +third document is an [issues list][] of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. @@ -109,7 +109,7 @@ into a series of issues and entered on GitHub `PROJECT-DOC-WEBSITE/issues`. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the **[implementation] plan** and **[issues] list**. +read the [implementation][] plan and [issues list][]. Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -550,7 +550,7 @@ The numeric rating values used in this document are as follows [criteria]: ../criteria.md [implementation]: ./implementation.md [issues list]: ./issues-list.md -[project-website]: _PROJECT-WEBSITE_ +[project-website]: ?fixme-target-dne=_PROJECT-WEBSITE_ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 [website guidelines]: ../../website-guidelines-checklist.md diff --git a/docs/localization/ja/index.md b/docs/localization/ja/index.md index 442cae0e..cd96c84f 100644 --- a/docs/localization/ja/index.md +++ b/docs/localization/ja/index.md @@ -11,12 +11,12 @@ title: CNCF日本語ローカライゼーション向けガイドライン ## 目次 -- [スタイルガイド](?no-link-check#スタイルガイド) -- [固有の用語](?no-link-check#固有の用語) - - [例](?no-link-check#例) -- [レビュー](?no-link-check#レビュー) -- [プロジェクト](?no-link-check#プロジェクト) -- [コミュニケーション](?no-link-check#コミュニケーション) +- [スタイルガイド](#スタイルガイド) +- [固有の用語](#固有の用語) + - [例](#例) +- [レビュー](#レビュー) +- [プロジェクト](#プロジェクト) +- [コミュニケーション](#コミュニケーション) ## スタイルガイド @@ -54,7 +54,7 @@ CNCFのプロジェクト特有の用語については、原則として英語 ## レビュー -ローカライゼーションのPRを作成した際は、ローカライゼーションレビュアーにレビューを依頼してください。各リポジトリのレビュアーは、[プロジェクト](?no-link-check#プロジェクト)の表を参考にしてください。 +ローカライゼーションのPRを作成した際は、ローカライゼーションレビュアーにレビューを依頼してください。各リポジトリのレビュアーは、[プロジェクト](#プロジェクト)の表を参考にしてください。 2人以上のローカライゼーションレビュアーからの承認を得ることを推奨します。 ローカライゼーションレビュアーからの承認を得た後、各リポジトリのメンテナーにPRのマージを依頼してください。 diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 45d8d288..e313d135 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,14 +1,25 @@ -// cSpell:ignore cncf +// cSpell:ignore cncf dracula +import path from 'node:path'; import { themes as prismThemes } from 'prism-react-renderer'; import type { Config } from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; +import getBuildContext from './lib/getBuildContext'; +import remarkRewriteLinks from './lib/remarkRewriteLinks'; const title = 'CNCF TechDocs'; const repo = 'https://github.com/cncf/techdocs'; -const buildEnv = process.env.BUILD_ENV || 'production'; -const isProd = buildEnv === 'production'; +const { buildEnv, isProd, assetBaseUrl } = getBuildContext(repo); +const importedReadmePath = path.resolve('README.md'); + +// Rewrite GitHub-friendly relative links so they also work on the site: +// - cross-plugin links (`../../docs|analyses/...`) → site-absolute URLs +// - data assets the MDX loader can't bundle (e.g. `.csv`) → GitHub blob URL +const rewriteLinks: [ + typeof remarkRewriteLinks, + Parameters[0], +] = [remarkRewriteLinks, { assetBaseUrl }]; const config: Config = { title, @@ -28,6 +39,15 @@ const config: Config = { onBrokenLinks: 'warn', // TODO: 'error' or 'throw' once we've fixed all links markdown: { + // Only needed for imported Markdown partials outside content plugins. + // In this repo, that's the root README.md imported by src/pages/index.mdx. + preprocessor: ({ fileContent, filePath }) => + path.resolve(filePath) === importedReadmePath + ? fileContent.replace( + /(\]\(|\]:\s*)(\/(?:docs|analyses)\/[^\s)#?]+)\.md(?=$|[\s)#?])/g, + '$1$2/', + ) + : fileContent, hooks: { onBrokenMarkdownLinks: 'warn', }, @@ -44,9 +64,15 @@ const config: Config = { [ 'classic', { + // Our remark plugin must run before Docusaurus's own `resolveMarkdownLinks` + // and `transformImage` so cross-plugin URLs are rewritten first. docs: { sidebarPath: './sidebars.ts', editUrl: isProd ? `${repo}/tree/main` : undefined, + beforeDefaultRemarkPlugins: [rewriteLinks], + }, + pages: { + beforeDefaultRemarkPlugins: [rewriteLinks], }, theme: { customCss: './src/css/custom.css', @@ -55,6 +81,20 @@ const config: Config = { ], ], + plugins: [ + [ + '@docusaurus/plugin-content-docs', + { + id: 'analyses', + path: 'analyses', + routeBasePath: 'analyses', + sidebarPath: './sidebarsAnalyses.ts', + editUrl: isProd ? `${repo}/tree/main/analyses` : undefined, + beforeDefaultRemarkPlugins: [rewriteLinks], + }, + ], + ], + themeConfig: { // TODO: Replace with your project's social card // image: 'img/docusaurus-social-card.jpg', @@ -71,6 +111,13 @@ const config: Config = { position: 'left', label: 'Docs', }, + { + type: 'docSidebar', + docsPluginId: 'analyses', + sidebarId: 'analysesSidebar', + position: 'left', + label: 'Analyses', + }, ], }, footer: { diff --git a/lib/getBuildContext.ts b/lib/getBuildContext.ts new file mode 100644 index 00000000..adf437a4 --- /dev/null +++ b/lib/getBuildContext.ts @@ -0,0 +1,29 @@ +import getCurrentBranch from './getCurrentBranch'; +import getGitHubRepoUrl from './getGitHubRepoUrl'; + +export interface BuildContext { + buildEnv: string; + isProd: boolean; + isDeployPreview: boolean; + assetBranch: string; + assetRepo: string; + assetBaseUrl: string; +} + +export default function getBuildContext(repo: string): BuildContext { + const buildEnv = process.env.BUILD_ENV || 'production'; + const isProd = buildEnv === 'production'; + const isDeployPreview = !isProd && !!process.env.DEPLOY_PRIME_URL; + const assetBranch = isDeployPreview ? getCurrentBranch() || 'main' : 'main'; + const assetRepo = isDeployPreview ? getGitHubRepoUrl() || repo : repo; + const assetBaseUrl = `${assetRepo}/blob/${assetBranch}`; + + return { + buildEnv, + isProd, + isDeployPreview, + assetBranch, + assetRepo, + assetBaseUrl, + }; +} diff --git a/lib/getCurrentBranch.ts b/lib/getCurrentBranch.ts new file mode 100644 index 00000000..aa30c0cb --- /dev/null +++ b/lib/getCurrentBranch.ts @@ -0,0 +1,22 @@ +import { execSync } from 'node:child_process'; + +export default function getCurrentBranch(): string | undefined { + const fromEnv = + // Netlify exposes BRANCH/HEAD for deploy contexts; GitHub Actions uses + // the GITHUB_* refs below. + process.env.HEAD || + process.env.BRANCH || + process.env.GITHUB_HEAD_REF || + process.env.GITHUB_REF_NAME; + if (fromEnv) return fromEnv; + + try { + const branch = execSync('git branch --show-current', { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }).trim(); + return branch || undefined; + } catch { + return undefined; + } +} diff --git a/lib/getGitHubRepoUrl.ts b/lib/getGitHubRepoUrl.ts new file mode 100644 index 00000000..8911cedc --- /dev/null +++ b/lib/getGitHubRepoUrl.ts @@ -0,0 +1,33 @@ +import { execSync } from 'node:child_process'; + +function normalizeGitHubUrl(remoteUrl: string): string | undefined { + const ssh = remoteUrl.match(/^git@github\.com:([^/]+\/[^/]+?)(?:\.git)?$/); + if (ssh) return `https://github.com/${ssh[1]}`; + + const https = remoteUrl.match( + /^https:\/\/github\.com\/([^/]+\/[^/]+?)(?:\.git)?$/, + ); + if (https) return `https://github.com/${https[1]}`; + + return undefined; +} + +export default function getGitHubRepoUrl( + remote = 'origin', +): string | undefined { + const fromEnv = process.env.REPOSITORY_URL; + if (fromEnv) { + const normalized = normalizeGitHubUrl(fromEnv); + if (normalized) return normalized; + } + + try { + const remoteUrl = execSync(`git remote get-url ${remote}`, { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }).trim(); + return normalizeGitHubUrl(remoteUrl); + } catch { + return undefined; + } +} diff --git a/lib/remarkRewriteLinks/README.md b/lib/remarkRewriteLinks/README.md new file mode 100644 index 00000000..1b91e6a5 --- /dev/null +++ b/lib/remarkRewriteLinks/README.md @@ -0,0 +1,75 @@ +# `remarkRewriteLinks` + +Remark plugin that rewrites Markdown link destinations so files authored for +GitHub also resolve on our Docusaurus site. + +## What it handles + +Source files use GitHub-relative links. Docusaurus resolves most natively; we +cover three gaps: + +1. **Cross-plugin links** (`(../)+docs|analyses/...`). `analyses/` is a separate + `plugin-content-docs` instance, so Docusaurus's `resolveMarkdownLinks` can't + follow these. We map them to site-absolute `/docs|analyses/...`, stripping + `.md` and adding `/` for `trailingSlash: true`. +2. **Unbundled data assets** (default: `.csv`). MDX loader bundles only + images/video/audio/PDF; others leak as filesystem paths. We rewrite to + `/` (= GitHub blob URL). +3. **Site-absolute `.md` in imported Markdown** (e.g. `README.md` imported by + `src/pages/index.mdx`). Handled by a one-line global `markdown.preprocessor` + in `docusaurus.config.ts` (the imported file is outside any plugin's remark + scope). The plugin also handles this case as defense-in-depth for direct + `rewriteHref` callers. + +Everything else (same-plugin `.md`, images, externals, fragments) is left to +Docusaurus. + +## Wiring gotcha: `beforeDefaultRemarkPlugins`, not `remarkPlugins` + +Docusaurus's `resolveMarkdownLinks` and `transformImage` run as default remark +plugins. `remarkPlugins` runs **after** them — too late; they'll have already +warned on our cross-plugin URLs. Use `beforeDefault...` so we rewrite first and +the defaults bundle what's left (images get content hashes). + +Registered under `presets.classic.docs`, `presets.classic.pages`, and the +`analyses` plugin. + +## Design + +- AST, not regex: code fences, titles, angle brackets, ref-style links handled + by the parser. +- `rewriteHref(href, sourceFile, opts)` is a pure function, exported and + unit-testable without the pipeline. +- Minimal scope — only rewrites what Docusaurus can't handle itself. + +## Adding asset types (`.zip`, `.xlsx`, ...) + +Config-only, no code change: + +```ts +[ + remarkRewriteLinks, + { + assetBaseUrl: `${repo}/blob/main`, + assetExtensions: ['.csv', '.zip', '.xlsx', '.tsv'], + }, +]; +``` + +Guidelines: + +- Don't add extensions Docusaurus already bundles (images/video/audio/PDF) — + you'd lose local bundling and content hashing. +- Don't add `.md` / `.mdx` (handled elsewhere). +- `assetBaseUrl` defaults to the GitHub blob URL, which renders `.csv` / `.tsv` + as tables and previews `.xlsx` / `.zip`. For large downloads use a CDN + instead. + +If you want a file **bundled** rather than linked out to GitHub, add a webpack +`asset/resource` rule via `configureWebpack` in a small Docusaurus plugin — +separate, larger change. + +## Tests + +`npm run test:unit` — covers both `rewriteHref` and full parse → plugin → +stringify integration. diff --git a/lib/remarkRewriteLinks/index.test.mts b/lib/remarkRewriteLinks/index.test.mts new file mode 100644 index 00000000..e8c0c371 --- /dev/null +++ b/lib/remarkRewriteLinks/index.test.mts @@ -0,0 +1,197 @@ +// cSpell:ignore howto knative mdast remark unified vfile vitess extensionless gapi kubernetes gateway api passthroughs unrooted + +import assert from 'node:assert/strict'; +import { describe, it } from 'node:test'; +import { unified } from 'unified'; +import remarkParse from 'remark-parse'; +import remarkStringify from 'remark-stringify'; +import { VFile } from 'vfile'; +import remarkRewriteLinks, { rewriteHref } from './index.ts'; + +const ASSET_BASE = 'https://github.com/cncf/techdocs/blob/main'; + +function dedent(s: string): string { + return s.replace(/^ +/gm, '').trim(); +} + +/** Run a single Markdown source through the plugin and return the rendered output. */ +async function run( + md: string, + filePath: string, + opts: Parameters[0] = { assetBaseUrl: ASSET_BASE }, +): Promise { + const file = new VFile({ value: md, path: filePath }); + const out = await unified() + .use(remarkParse) + .use(remarkRewriteLinks, opts) + .use(remarkStringify) + .process(file); + return String(out).trim(); +} + +describe('rewriteHref (cross-plugin links)', () => { + it('maps (../)+docs/.../foo.md to /docs/.../foo/', () => { + assert.strictEqual( + rewriteHref('../../docs/analysis/criteria.md', 'analyses/2025/x/a.md'), + '/docs/analysis/criteria/', + ); + }); + + it('maps (../)+analyses/.../foo.md to /analyses/.../foo/', () => { + assert.strictEqual( + rewriteHref( + '../../analyses/2025/knative/analysis.md', + 'docs/analysis/howto.md', + ), + '/analyses/2025/knative/analysis/', + ); + }); + + it('maps (../)+docs/.../foo.mdx to /docs/.../foo/', () => { + assert.strictEqual( + rewriteHref('../../docs/analysis/criteria.mdx', 'analyses/2025/x/a.md'), + '/docs/analysis/criteria/', + ); + }); + + it('adds a trailing slash to extensionless cross-plugin pages', () => { + assert.strictEqual( + rewriteHref( + '../../analyses/2025/knative/analysis', + 'docs/analysis/howto.md', + ), + '/analyses/2025/knative/analysis/', + ); + }); + + it('preserves cross-plugin trailing slash', () => { + assert.strictEqual( + rewriteHref('../../analyses/', 'docs/analysis/howto.md'), + '/analyses/', + ); + }); + + it('preserves #fragment after the rewritten path', () => { + assert.strictEqual( + rewriteHref( + '../../docs/analysis/criteria.md#website', + 'analyses/2023/etcd/etcd-analysis.md', + ), + '/docs/analysis/criteria/#website', + ); + }); + + it('strips .md from site-absolute /docs/.../foo.md and /analyses/.../foo.md', () => { + assert.strictEqual( + rewriteHref('/docs/analysis/criteria.md', 'analyses/2025/x/a.md'), + '/docs/analysis/criteria/', + ); + assert.strictEqual( + rewriteHref('/analyses/2024/keda/keda-analysis.md', 'docs/howto.md'), + '/analyses/2024/keda/keda-analysis/', + ); + }); +}); + +describe('rewriteHref (asset links)', () => { + it('rewrites a relative .csv against the asset base URL', () => { + assert.strictEqual( + rewriteHref('backstage-doc-survey.csv', 'analyses/2023/backstage/x.md', { + assetBaseUrl: ASSET_BASE, + }), + `${ASSET_BASE}/analyses/2023/backstage/backstage-doc-survey.csv`, + ); + }); + + it('leaves .csv links untouched when no assetBaseUrl is provided', () => { + assert.strictEqual( + rewriteHref('data.csv', 'analyses/2023/backstage/index.md'), + 'data.csv', + ); + }); + + it('normalizes an absolute filesystem sourceFile against projectRoot', () => { + const root = '/Users/me/repo'; + assert.strictEqual( + rewriteHref( + 'data.csv', + '/Users/me/repo/analyses/2023/backstage/index.md', + { assetBaseUrl: ASSET_BASE, projectRoot: root }, + ), + `${ASSET_BASE}/analyses/2023/backstage/data.csv`, + ); + }); +}); + +describe('rewriteHref (passthroughs)', () => { + const source = 'docs/analysis/howto.md'; + + it('leaves absolute, protocol-relative, mailto and fragment URLs untouched', () => { + for (const href of [ + 'https://example.com/a.md', + 'mailto:foo@example.com', + '//cdn.example.com/a.md', + '#section', + ]) { + assert.strictEqual(rewriteHref(href, source), href); + } + }); + + it('leaves unrooted same-plugin .md links to Docusaurus', () => { + assert.strictEqual(rewriteHref('./foo.md', source), './foo.md'); + assert.strictEqual(rewriteHref('../foo.md', source), '../foo.md'); + }); + + it('leaves cross-plugin image assets untouched', () => { + assert.strictEqual( + rewriteHref( + '../../../docs/images/gapi_info_arch.png', + 'analyses/2021/kubernetes-gateway-api/analysis.md', + ), + '../../../docs/images/gapi_info_arch.png', + ); + }); +}); + +describe('remarkRewriteLinks (full pipeline)', () => { + it('rewrites inline, reference, image and angle-bracketed destinations', async () => { + const md = dedent(` + See [criteria](../../docs/analysis/criteria.md) and [survey]. + + [survey]: backstage-doc-survey.csv + [angle]: <../../docs/analysis/criteria.md> + + ![arch](../../../docs/images/gapi_info_arch.png) + `); + const out = await run(md, 'analyses/2023/backstage/backstage-analysis.md'); + assert.match(out, /\[criteria\]\(\/docs\/analysis\/criteria\/\)/); + assert.match( + out, + new RegExp( + `\\[survey\\]: ${ASSET_BASE.replace(/\//g, '\\/')}` + + `\\/analyses\\/2023\\/backstage\\/backstage-doc-survey\\.csv`, + ), + ); + assert.match(out, /\[angle\]: \/docs\/analysis\/criteria\//); + assert.match( + out, + /!\[arch\]\(\.\.\/\.\.\/\.\.\/docs\/images\/gapi_info_arch\.png\)/, + ); + }); + + it('does not touch URL-like text inside fenced code blocks', async () => { + const md = dedent(` + \`\`\` + [criteria](../../docs/analysis/criteria.md) + \`\`\` + `); + const out = await run(md, 'analyses/2023/backstage/x.md'); + assert.match(out, /criteria\]\(\.\.\/\.\.\/docs\/analysis\/criteria\.md/); + }); + + it('preserves inline link titles', async () => { + const md = '[x](../../docs/analysis/criteria.md "a title")'; + const out = await run(md, 'analyses/2023/backstage/x.md'); + assert.strictEqual(out, '[x](/docs/analysis/criteria/ "a title")'); + }); +}); diff --git a/lib/remarkRewriteLinks/index.ts b/lib/remarkRewriteLinks/index.ts new file mode 100644 index 00000000..192662bc --- /dev/null +++ b/lib/remarkRewriteLinks/index.ts @@ -0,0 +1,149 @@ +// cSpell:ignore cncf mdast unist vfile + +import path from 'node:path'; +import { visit } from 'unist-util-visit'; +import type { Definition, Image, Link, Root } from 'mdast'; +import type { Plugin } from 'unified'; +import type { VFile } from 'vfile'; + +/** + * Remark plugin that rewrites Markdown link destinations so source files + * authored for GitHub also resolve correctly on our Docusaurus site. + * + * Two cases are handled here; everything else is left to Docusaurus: + * + * 1. **Cross-plugin links** like `(../)+docs|analyses/...` don't resolve + * because `analyses/` is its own `plugin-content-docs` instance. They + * are mapped to site-absolute `/docs|analyses/...`. If they end in + * `.md`, the extension is stripped and a trailing `/` is appended + * (Docusaurus's own `.md` resolver only fires for unrooted same-plugin + * links). + * + * 2. **Unbundled data assets** (default: `.csv`) get rewritten to + * `/` so they work on both GitHub and + * the site. (Docusaurus's MDX loader only bundles a fixed set of asset + * extensions — images, video, audio, PDF.) + * + * Same-plugin `.md` links and image paths are intentionally left untouched: + * Docusaurus's built-in remark plugins resolve them natively against the + * filesystem, which works across plugin boundaries for non-Markdown assets. + */ + +export interface Options { + /** + * Base URL for unbundled data-asset files. Typically the repo's canonical + * blob URL, e.g. `https://github.com///blob/`. + * If unset, asset links are left untouched. + */ + assetBaseUrl?: string; + + /** Asset extensions to rewrite (lower-case, with leading dot). */ + assetExtensions?: readonly string[]; + + /** + * Absolute project root, used to resolve `vfile.path` to a repo-relative + * path for asset URL construction. Defaults to `process.cwd()`. + */ + projectRoot?: string; +} + +const CROSS_PLUGIN_RE = /^(?:\.\.\/)+(docs|analyses)(\/.*)?$/; +const SITE_ABSOLUTE_MD_RE = /^\/(docs|analyses)\/.+\.mdx?$/i; +const DEFAULT_ASSET_EXTENSIONS: readonly string[] = ['.csv']; + +/** Split an href into its path and its query/fragment suffix. */ +function splitHref(href: string): { path: string; suffix: string } { + const i = href.search(/[?#]/); + return i < 0 + ? { path: href, suffix: '' } + : { path: href.slice(0, i), suffix: href.slice(i) }; +} + +/** True for scheme (`http:`, `mailto:`, ...) or protocol-relative URLs. */ +function isAbsoluteUrl(href: string): boolean { + if (href.startsWith('//')) return true; + try { + new URL(href); + return true; + } catch { + return false; + } +} + +/** + * Rewrite a single link destination. Returns the input unchanged when no + * rewrite applies (absolute URLs, fragments, same-plugin `.md`, images, ...). + * + * Exported for unit testing; also reusable from non-remark contexts. + */ +export function rewriteHref( + href: string, + sourceFile: string, + options: Options = {}, +): string { + if (!href || href.startsWith('#') || isAbsoluteUrl(href)) return href; + + const { path: original, suffix } = splitHref(href); + if (!original) return href; + + const ext = path.posix.extname(original).toLowerCase(); + const cross = original.match(CROSS_PLUGIN_RE); + const assetExts = options.assetExtensions ?? DEFAULT_ASSET_EXTENSIONS; + const isAsset = !!options.assetBaseUrl && assetExts.includes(ext); + + // Cross-plugin page links: rewrite only `.md` and extensionless paths. + // Asset paths (`.png`, `.csv`, ...) under `docs/`/`analyses/` are left for + // Docusaurus's native asset resolver, which crosses plugin boundaries. + const isCrossPage = !!cross && (!ext || ext === '.md' || ext === '.mdx'); + if (isCrossPage) { + let p = `/${cross![1]}${cross![2] ?? ''}`; + if (p.toLowerCase().endsWith('.mdx')) { + p = `${p.slice(0, -'.mdx'.length)}/`; + } else if (p.toLowerCase().endsWith('.md')) { + p = `${p.slice(0, -'.md'.length)}/`; + } else if (!p.endsWith('/')) p += '/'; + return `${p}${suffix}`; + } + + // Site-absolute `.md` page links — Docusaurus's native resolver only fires + // for unrooted same-plugin paths, so strip `.md` ourselves. + if (SITE_ABSOLUTE_MD_RE.test(original)) { + const stripped = original.toLowerCase().endsWith('.mdx') + ? original.slice(0, -'.mdx'.length) + : original.slice(0, -'.md'.length); + return `${stripped}/${suffix}`; + } + + if (isAsset) { + const root = (options.projectRoot ?? process.cwd()).replace(/\\/g, '/'); + const raw = sourceFile.replace(/\\/g, '/'); + const source = path.posix.isAbsolute(raw) + ? path.posix.relative(root, raw) + : raw; + const repoPath = path.posix.normalize( + path.posix.join(path.posix.dirname(source), original), + ); + const base = options.assetBaseUrl!.replace(/\/+$/, ''); + return `${base}/${repoPath}${suffix}`; + } + + return href; +} + +/** + * The remark plugin. Visits `link`, `image`, and `definition` nodes and + * applies {@link rewriteHref} to their `url`. `linkReference` nodes are + * resolved through their corresponding `definition`, so they're covered too. + */ +const remarkRewriteLinks: Plugin<[Options?], Root> = (options = {}) => { + return (tree, file: VFile) => { + const sourceFile = file.path ?? ''; + visit(tree, ['link', 'image', 'definition'], (node) => { + const n = node as Link | Image | Definition; + const next = rewriteHref(n.url, sourceFile, options); + if (next !== n.url) n.url = next; + }); + }; +}; + +export default remarkRewriteLinks; diff --git a/package-lock.json b/package-lock.json index d88037fa..99a3e254 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4873,13 +4873,13 @@ } }, "node_modules/@jsonjoy.com/fs-core": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.1.tgz", - "integrity": "sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.2.tgz", + "integrity": "sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.57.1", - "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", "thingies": "^2.5.0" }, "engines": { @@ -4894,14 +4894,14 @@ } }, "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.1.tgz", - "integrity": "sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.2.tgz", + "integrity": "sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.57.1", - "@jsonjoy.com/fs-node-builtins": "4.57.1", - "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", "thingies": "^2.5.0" }, "engines": { @@ -4916,16 +4916,16 @@ } }, "node_modules/@jsonjoy.com/fs-node": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.1.tgz", - "integrity": "sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.2.tgz", + "integrity": "sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.57.1", - "@jsonjoy.com/fs-node-builtins": "4.57.1", - "@jsonjoy.com/fs-node-utils": "4.57.1", - "@jsonjoy.com/fs-print": "4.57.1", - "@jsonjoy.com/fs-snapshot": "4.57.1", + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", "glob-to-regex.js": "^1.0.0", "thingies": "^2.5.0" }, @@ -4941,9 +4941,9 @@ } }, "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.1.tgz", - "integrity": "sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.2.tgz", + "integrity": "sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==", "license": "Apache-2.0", "engines": { "node": ">=10.0" @@ -4957,14 +4957,14 @@ } }, "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.1.tgz", - "integrity": "sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.2.tgz", + "integrity": "sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-fsa": "4.57.1", - "@jsonjoy.com/fs-node-builtins": "4.57.1", - "@jsonjoy.com/fs-node-utils": "4.57.1" + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2" }, "engines": { "node": ">=10.0" @@ -4978,12 +4978,12 @@ } }, "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.1.tgz", - "integrity": "sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.2.tgz", + "integrity": "sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.57.1" + "@jsonjoy.com/fs-node-builtins": "4.57.2" }, "engines": { "node": ">=10.0" @@ -4997,12 +4997,12 @@ } }, "node_modules/@jsonjoy.com/fs-print": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.1.tgz", - "integrity": "sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.2.tgz", + "integrity": "sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.2", "tree-dump": "^1.1.0" }, "engines": { @@ -5017,13 +5017,13 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.1.tgz", - "integrity": "sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.2.tgz", + "integrity": "sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==", "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.2", "@jsonjoy.com/json-pack": "^17.65.0", "@jsonjoy.com/util": "^17.65.0" }, @@ -12562,19 +12562,19 @@ } }, "node_modules/memfs": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.1.tgz", - "integrity": "sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==", + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.2.tgz", + "integrity": "sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.57.1", - "@jsonjoy.com/fs-fsa": "4.57.1", - "@jsonjoy.com/fs-node": "4.57.1", - "@jsonjoy.com/fs-node-builtins": "4.57.1", - "@jsonjoy.com/fs-node-to-fsa": "4.57.1", - "@jsonjoy.com/fs-node-utils": "4.57.1", - "@jsonjoy.com/fs-print": "4.57.1", - "@jsonjoy.com/fs-snapshot": "4.57.1", + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-to-fsa": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", "glob-to-regex.js": "^1.0.1", @@ -19351,9 +19351,9 @@ } }, "node_modules/typescript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", - "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "devOptional": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 4e824f08..d36847c4 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,8 @@ "_check:links-md": "bash -c 'for f in *.md `find analyses -name \"*.md\"`; do npx markdown-link-check --config .markdown-link-check.json -p -v $f || exit 1; done'", "_check:links:internal": "npm run _check:links -- HTMLTEST_ARGS='--skip-external'", "_check:links": "make --keep-going check-links", - "_check:markdown:1": "npx -p markdownlint-cli markdownlint -c .markdownlint.yaml", - "_check:markdown:all": "npm run -s _list:check:md | xargs -I {} -P 4 npx -p markdownlint-cli markdownlint -c .markdownlint.yaml {}", - "_check:markdown:delta": "npm run -s _list:git:delta | xargs -I {} npx -p markdownlint-cli markdownlint -c .markdownlint.yaml {}", + "_check:markdown": "npx -p markdownlint-cli markdownlint -c .markdownlint.yaml -p .markdownlintignore", "_list:check:*": "npm run --loglevel=warn | grep -Ee '^\\s*check:[^:]+$'", - "_list:check:md:no-analysis": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' -a -not -path './analyses/*'", - "_list:check:md": "find . -name '*.md' -not -path '*/node_modules/*' -a -not -path '*/.?*' -a -not -path './analyses/*'", "_list:fix:*": "npm run --loglevel=warn | grep -Ee '^\\s*fix:[^:]+$' | grep -v 'fix:all'", "_list:git:delta": "git diff --name-only --diff-filter=ACMR | grep -E '\\.(js|md|scss|yml|yaml)$'", "build:preview": "npm run _build", @@ -23,7 +19,7 @@ "build": "BUILD_ENV=dev npm run _build", "check:format": "npm run _check:format || (echo '[help] Run: npm run fix:format'; exit 1)", "check:links": "npm run _check:links", - "check:markdown": "npm run _check:markdown:all", + "check:markdown": "npm run _check:markdown -- .", "check:spelling": "npx cspell --no-progress -c .cspell.yml analyses docs *.md", "check": "npm run seq -- $(npm run -s _list:check:*)", "docus:build": "docusaurus build", @@ -41,7 +37,8 @@ "precheck:links": "npm run build", "seq": "bash -c 'for cmd in \"$@\"; do npm run $cmd || exit 1; done' - ", "serve": "npm run docus:serve", - "test": "npm run check", + "test:unit": "node --experimental-strip-types --test 'lib/**/*.test.mts'", + "test": "npm run check && npm run test:unit", "typecheck": "tsc", "update:packages": "npx npm-check-updates -u" }, diff --git a/sidebarsAnalyses.ts b/sidebarsAnalyses.ts new file mode 100644 index 00000000..004b6053 --- /dev/null +++ b/sidebarsAnalyses.ts @@ -0,0 +1,7 @@ +import type { SidebarsConfig } from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + analysesSidebar: [{ type: 'autogenerated', dirName: '.' }], +}; + +export default sidebars; diff --git a/static/refcache.json b/static/refcache.json index fc34510f..6263bffb 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -3,10 +3,74 @@ "StatusCode": 200, "LastSeen": "2026-03-30T15:42:08.467987-04:00" }, + "https://app.harness.io/auth/#/signin": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.171631-04:00" + }, + "https://backstage.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.844222-04:00" + }, + "https://backstage.io/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.260016-04:00" + }, + "https://backstage.io/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.286274-04:00" + }, + "https://backstage.io/docs/contribute/getting-involved#write-documentation-or-improve-the-website": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.322167-04:00" + }, + "https://backstage.io/docs/deployment/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.753897-04:00" + }, + "https://backstage.io/docs/features/software-catalog/system-model": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.913967-04:00" + }, + "https://backstage.io/docs/getting-started/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.198795-04:00" + }, + "https://backstage.io/docs/overview/what-is-backstage": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.757369-04:00" + }, + "https://backstage.io/docs/overview/what-is-backstage#benefits": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.926426-04:00" + }, + "https://backstage.io/docs/references/glossary/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.31966-04:00" + }, + "https://backstage.io/docs/releases/v1.17.0": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.468809-04:00" + }, + "https://backstage.spotify.com/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:12.68921-04:00" + }, "https://blog.rook.io/": { "StatusCode": 200, "LastSeen": "2026-03-30T15:50:24.152457-04:00" }, + "https://bulma.io/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:12.600469-04:00" + }, + "https://clomonitor.io": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:17.859175-04:00" + }, + "https://clotributor.dev/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.804513-04:00" + }, "https://cloud-native.slack.com": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:18.773037-04:00" @@ -15,6 +79,10 @@ "StatusCode": 200, "LastSeen": "2026-03-30T15:42:19.40547-04:00" }, + "https://cluster-api.sigs.k8s.io/contributing#versioning": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.435765-04:00" + }, "https://cncf-techdocs.netlify.app/": { "StatusCode": 206, "LastSeen": "2025-03-19T11:52:38.431682-04:00" @@ -119,6 +187,14 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.214193-04:00" }, + "https://deislabs.io/posts/a-fistful-of-states/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.533216-04:00" + }, + "https://deislabs.io/posts/introducing-krator/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.788736-04:00" + }, "https://developer.mozilla.org/en-US/docs/Web/Accessibility": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:07.126948-04:00" @@ -147,10 +223,18 @@ "StatusCode": 200, "LastSeen": "2026-03-30T15:42:03.327195-04:00" }, + "https://developers.google.com/style/procedures": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:25.531428-04:00" + }, "https://developers.google.com/tech-writing": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:09.240702-04:00" }, + "https://discord.gg/backstage-687207715902193673": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:21.643717-04:00" + }, "https://discourse.gohugo.io/t/audit-your-published-site-for-problems/35184": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:03.321157-04:00" @@ -171,6 +255,30 @@ "StatusCode": 200, "LastSeen": "2026-03-30T15:42:09.171241-04:00" }, + "https://docs.litmuschaos.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.025159-04:00" + }, + "https://docs.litmuschaos.io/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.370926-04:00" + }, + "https://docs.litmuschaos.io/docs/getting-started/installation": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.416578-04:00" + }, + "https://docs.litmuschaos.io/docs/introduction/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.320867-04:00" + }, + "https://docs.litmuschaos.io/docs/introduction/what-is-litmus": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.943354-04:00" + }, + "https://docs.litmuschaos.io/docs/user-guides/chaoscenter-advanced-installation": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.998307-04:00" + }, "https://docs.netlify.com/domains-https/custom-domains/multiple-domains/": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:07.340443-04:00" @@ -179,6 +287,10 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:06.919207-04:00" }, + "https://docs.rs/krator/0.4.0/krator/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:15.314302-04:00" + }, "https://docsearch.algolia.com/": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.078587-04:00" @@ -191,14 +303,170 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:10.06588-04:00" }, + "https://en.wikipedia.org/wiki/Principle_of_least_astonishment": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:18.328805-04:00" + }, + "https://etcd.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.351583-04:00" + }, + "https://etcd.io/community/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.930505-04:00" + }, + "https://etcd.io/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.034675-04:00" + }, + "https://etcd.io/docs/v3.5/install/#installation-as-part-of-kubernetes-installation": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.272227-04:00" + }, + "https://etcd.io/docs/v3.5/install/#installation-check": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.184245-04:00" + }, + "https://etcd.io/docs/v3.5/install/#linux": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.73629-04:00" + }, + "https://etcd.io/docs/v3.5/learning/api/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.593776-04:00" + }, + "https://etcd.io/docs/v3.5/op-guide/authentication/authentication/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.104081-04:00" + }, + "https://etcd.io/docs/v3.5/op-guide/authentication/rbac/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.497695-04:00" + }, + "https://etcd.io/docs/v3.5/op-guide/supported-platform/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.064672-04:00" + }, + "https://etcd.io/docs/v3.5/reporting_bugs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.666149-04:00" + }, + "https://etcd.io/docs/v3.5/triage/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.123722-04:00" + }, "https://expertsupport.com/library/quick-and-easy-document-specifications/": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:05.188444-04:00" }, + "https://expertsupport.com/library/the-ideal-documentation-suite-for-software-developers/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:21.105191-04:00" + }, "https://falco.org/docs/getting-started/": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.808268-04:00" }, + "https://fluxcd.io/docs/cmd/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.187872-04:00" + }, + "https://fluxcd.io/docs/components/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.097304-04:00" + }, + "https://fluxcd.io/docs/components/helm/helmreleases/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.370632-04:00" + }, + "https://fluxcd.io/docs/concepts/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.29252-04:00" + }, + "https://fluxcd.io/docs/contributing/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.603835-04:00" + }, + "https://fluxcd.io/docs/contributing/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.647997-04:00" + }, + "https://fluxcd.io/docs/contributing/flux/#communications": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.58071-04:00" + }, + "https://fluxcd.io/docs/get-started/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.618439-04:00" + }, + "https://fluxcd.io/docs/gitops-toolkit/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.782479-04:00" + }, + "https://fluxcd.io/docs/guides/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.979764-04:00" + }, + "https://fluxcd.io/docs/installation/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.947376-04:00" + }, + "https://fluxcd.io/docs/migration/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.531093-04:00" + }, + "https://fluxcd.io/docs/use-cases/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.797516-04:00" + }, + "https://fluxcd.io/governance/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.924909-04:00" + }, + "https://gateway-api.sigs.k8s.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.87937-04:00" + }, + "https://gateway-api.sigs.k8s.io/#gateway-api-concepts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.795126-04:00" + }, + "https://gateway-api.sigs.k8s.io/concepts/guidelines/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.314115-04:00" + }, + "https://gateway-api.sigs.k8s.io/contributing/community/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.310522-04:00" + }, + "https://gateway-api.sigs.k8s.io/contributing/community/#communications": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.021269-04:00" + }, + "https://gateway-api.sigs.k8s.io/contributing/devguide/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.864137-04:00" + }, + "https://gateway-api.sigs.k8s.io/implementations/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.103568-04:00" + }, + "https://getporter.org": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.803638-04:00" + }, + "https://getporter.org/operator": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.077667-04:00" + }, + "https://getporter.org/operator/quickstart/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.847129-04:00" + }, + "https://getporter.org/quickstart/desired-state/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.454248-04:00" + }, "https://git-scm.com/book/en/v2/Git-Tools-Submodules": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.031791-04:00" @@ -211,6 +479,50 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.113695-04:00" }, + "https://github.com/backstage": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.282208-04:00" + }, + "https://github.com/backstage/backstage": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.187671-04:00" + }, + "https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.892052-04:00" + }, + "https://github.com/backstage/backstage/blob/master/README.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.091266-04:00" + }, + "https://github.com/backstage/backstage/blob/master/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.562656-04:00" + }, + "https://github.com/backstage/backstage/blob/master/microsite": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.69772-04:00" + }, + "https://github.com/backstage/backstage/issues": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.439938-04:00" + }, + "https://github.com/backstage/backstage/issues/21893": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.275481-04:00" + }, + "https://github.com/backstage/backstage/tree/master/microsite": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.049022-04:00" + }, + "https://github.com/backstage/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.219173-04:00" + }, + "https://github.com/backstage/community/blob/main/GOVERNANCE.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.836939-04:00" + }, "https://github.com/brianpursley": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:11.984654-04:00" @@ -231,6 +543,18 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.637961-04:00" }, + "https://github.com/cncf/artwork/tree/master/projects/notary": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.729438-04:00" + }, + "https://github.com/cncf/clotributor": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.704434-04:00" + }, + "https://github.com/cncf/foundation/blob/main/charter.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.956165-04:00" + }, "https://github.com/cncf/foundation/blob/main/policies-guidance/website-guidelines.md": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.292849-04:00" @@ -283,10 +607,22 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.21562-04:00" }, + "https://github.com/cncf/techdocs/blob/main/LICENSE": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:18:02.163486-04:00" + }, + "https://github.com/cncf/techdocs/blob/main/LICENSE-CODE": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:18:02.593671-04:00" + }, "https://github.com/cncf/techdocs/blob/main/README.md": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:10.050679-04:00" }, + "https://github.com/cncf/techdocs/blob/main/analyses/2023/backstage/backstage-doc-survey.csv": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:18:02.313147-04:00" + }, "https://github.com/cncf/techdocs/issues": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.989619-04:00" @@ -295,6 +631,10 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:06.957591-04:00" }, + "https://github.com/cncf/techdocs/pull/215": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.362208-04:00" + }, "https://github.com/cncf/techdocs/tree/main/analyses": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.345559-04:00" @@ -387,6 +727,14 @@ "StatusCode": 206, "LastSeen": "2025-03-19T11:52:41.016034-04:00" }, + "https://github.com/cncf/toc/blob/main/DEFINITION.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.141604-04:00" + }, + "https://github.com/cncf/toc/tree/main/process#cncf-project-lifecycle--process": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.927872-04:00" + }, "https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:05.651454-04:00" @@ -395,150 +743,1586 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:11.372267-04:00" }, - "https://github.com/etcd-io/website/pull/403": { + "https://github.com/etcd-io/etcd": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:07.944503-04:00" + "LastSeen": "2026-04-16T21:15:14.798963-04:00" }, - "https://github.com/helm/community": { + "https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:08.988248-04:00" + "LastSeen": "2026-04-16T21:15:21.157294-04:00" }, - "https://github.com/hhiroshell": { + "https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/features.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:08.051467-04:00" + "LastSeen": "2026-04-16T21:15:14.564594-04:00" }, - "https://github.com/jonasrosland": { + "https://github.com/etcd-io/etcd/blob/main/GOVERNANCE.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:10.181949-04:00" + "LastSeen": "2026-04-16T21:15:21.540155-04:00" }, - "https://github.com/kaitoii11": { + "https://github.com/etcd-io/etcd/blob/main/README.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:06.157469-04:00" + "LastSeen": "2026-04-16T21:15:17.838064-04:00" }, - "https://github.com/kenta-iijima": { + "https://github.com/etcd-io/etcd/discussions": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:18.391798-04:00" + "LastSeen": "2026-04-16T21:15:20.54328-04:00" }, - "https://github.com/krook": { + "https://github.com/etcd-io/website": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:54:06.299038-04:00" + "LastSeen": "2026-04-16T21:15:13.924872-04:00" }, - "https://github.com/kubernetes/website/blob/072d4b41b45f5311538c24d375432a755f9e3f4c/layouts/partials/navbar-version-selector.html": { + "https://github.com/etcd-io/website/blob/main/OWNERS": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:13.428114-04:00" + "LastSeen": "2026-04-16T21:15:18.966957-04:00" }, - "https://github.com/kubernetes/website/blob/7462297ee388332a7b0d27625929fbf44d0c1ea9/config.toml": { + "https://github.com/etcd-io/website/blob/main/README.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:14.486692-04:00" + "LastSeen": "2026-04-16T21:15:18.321327-04:00" }, - "https://github.com/kubernetes/website/blob/main/hugo.toml": { + "https://github.com/etcd-io/website/issues/766": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:05.75394-04:00" + "LastSeen": "2026-04-16T21:15:12.537278-04:00" }, - "https://github.com/kubernetes/website/blob/main/layouts/partials/navbar-version-selector.html": { + "https://github.com/etcd-io/website/issues/790": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:04.868363-04:00" + "LastSeen": "2026-04-16T21:15:12.5184-04:00" }, - "https://github.com/longhorn/website": { + "https://github.com/etcd-io/website/pull/403": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:06.890572-04:00" + "LastSeen": "2026-03-30T15:42:07.944503-04:00" }, - "https://github.com/naonishijima": { + "https://github.com/etcd-io/website/tree/main": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:05.474373-04:00" + "LastSeen": "2026-04-16T21:15:22.154617-04:00" }, - "https://github.com/nate-double-u": { + "https://github.com/flatcar/flatcar-website": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:04.498525-04:00" + "LastSeen": "2026-04-16T21:15:14.378227-04:00" }, - "https://github.com/nate-double-u/technical-documentation-versioning": { + "https://github.com/fluxcd/community": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:07.210219-04:00" + "LastSeen": "2026-04-16T21:15:18.204956-04:00" }, - "https://github.com/nats-io/nats-site/blob/master/MAINTAINERS.md": { + "https://github.com/fluxcd/community/blob/main/GOVERNANCE.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:06.212203-04:00" + "LastSeen": "2026-04-16T21:15:22.378168-04:00" }, - "https://github.com/nrb": { + "https://github.com/fluxcd/community/blob/main/community-roles.md": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:08.823263-04:00" + "LastSeen": "2026-04-16T21:15:22.915367-04:00" }, - "https://github.com/opentracing/opentracing.io/issues": { + "https://github.com/fluxcd/flux2/issues": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:08.233122-04:00" + "LastSeen": "2026-04-16T21:15:21.321373-04:00" }, - "https://github.com/sftim": { + "https://github.com/fluxcd/website/blob/main/MAINTAINERS": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:13.756388-04:00" + "LastSeen": "2026-04-16T21:15:19.212238-04:00" }, - "https://github.com/tbatard": { + "https://github.com/fluxcd/website/blob/main/hack/import-flux2-assets.sh": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:07.630335-04:00" + "LastSeen": "2026-04-16T21:15:19.788835-04:00" }, - "https://github.com/thisisobate": { + "https://github.com/fluxcd/website/tree/main/external-sources": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:05.996396-04:00" + "LastSeen": "2026-04-16T21:15:17.036438-04:00" }, - "https://github.com/vitessio/website/pull/1119": { + "https://github.com/getporter/operator": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:06.694925-04:00" + "LastSeen": "2026-04-16T21:15:16.029977-04:00" }, - "https://github.com/vmware-tanzu/velero/blob/1fd49f4fd66ecf6cd959ce258efbd9a549d8902b/site/config.yaml": { + "https://github.com/getporter/porter": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:11.324475-04:00" + "LastSeen": "2026-04-16T21:15:14.758986-04:00" }, - "https://github.com/vmware-tanzu/velero/blob/db403c6c54b0048fada2b5db628c44be4ac0fd79/site/layouts/docs/versions.html": { + "https://github.com/helm/community": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:08.409221-04:00" + "LastSeen": "2026-03-30T15:42:08.988248-04:00" }, - "https://goharbor.io/": { + "https://github.com/helm/helm": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:13.037058-04:00" + "LastSeen": "2026-04-16T21:15:14.056312-04:00" }, - "https://helm.sh/": { + "https://github.com/helm/helm-www": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:12.576727-04:00" + "LastSeen": "2026-04-16T21:15:13.269488-04:00" }, - "https://inclusivenaming.org": { + "https://github.com/helm/helm-www/blob/main/OWNERS": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:04.342304-04:00" + "LastSeen": "2026-04-16T21:15:28.213231-04:00" }, - "https://kubernetes.io": { + "https://github.com/helm/helm-www/blob/main/README.md#versioning": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:13.503668-04:00" + "LastSeen": "2026-04-16T21:15:27.792502-04:00" }, - "https://kubernetes.io/docs/": { + "https://github.com/helm/helm-www/issues": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:05.343069-04:00" + "LastSeen": "2026-04-16T21:15:15.019817-04:00" }, - "https://kubernetes.io/ja/docs/contribute/localization/#style-guide": { + "https://github.com/helm/helm-www/pull/1629": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:03.476847-04:00" + "LastSeen": "2026-04-16T21:15:18.636091-04:00" }, - "https://lunrjs.com/": { + "https://github.com/helm/helm/pull/13154": { "StatusCode": 206, - "LastSeen": "2026-03-30T15:42:04.679563-04:00" + "LastSeen": "2026-04-16T21:15:24.220093-04:00" }, - "https://prometheus.io/community/": { - "StatusCode": 200, - "LastSeen": "2026-03-30T15:42:07.210126-04:00" - }, - "https://prometheus.io/docs": { - "StatusCode": 200, - "LastSeen": "2026-03-30T15:42:04.092013-04:00" + "https://github.com/helm/helm/pull/13604": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.549796-04:00" }, - "https://servicedesk.cncf.io": { - "StatusCode": 200, - "LastSeen": "2026-03-30T15:42:06.388194-04:00" + "https://github.com/helm/helm/pull/13655": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.66461-04:00" }, - "https://servicedesk.cncf.io/": { - "StatusCode": 200, - "LastSeen": "2026-03-30T15:42:04.134716-04:00" + "https://github.com/helm/helm/pull/30718": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.908322-04:00" + }, + "https://github.com/hhiroshell": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:08.051467-04:00" + }, + "https://github.com/in-toto": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.301203-04:00" + }, + "https://github.com/in-toto/ITE/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.241852-04:00" + }, + "https://github.com/in-toto/ITE/blob/master/ITE/1/README.adoc": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.663409-04:00" + }, + "https://github.com/in-toto/ITE/blob/master/ITE/1/README.adoc#abstract": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.413874-04:00" + }, + "https://github.com/in-toto/ITE/blob/master/README.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.302249-04:00" + }, + "https://github.com/in-toto/attestation": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.398208-04:00" + }, + "https://github.com/in-toto/community/blob/main/CODE-OF-CONDUCT.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.408941-04:00" + }, + "https://github.com/in-toto/community/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.680529-04:00" + }, + "https://github.com/in-toto/community/blob/main/GOVERNANCE.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.326623-04:00" + }, + "https://github.com/in-toto/community/blob/main/README.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.936592-04:00" + }, + "https://github.com/in-toto/community/issues/9": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.792814-04:00" + }, + "https://github.com/in-toto/demo": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.38875-04:00" + }, + "https://github.com/in-toto/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.211333-04:00" + }, + "https://github.com/in-toto/docs/blob/master/in-toto-spec.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.636339-04:00" + }, + "https://github.com/in-toto/docs/blob/master/in-toto-spec.md#17-terminology": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.97615-04:00" + }, + "https://github.com/in-toto/docs/blob/master/in-toto-spec.md#2-system-overview": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.347521-04:00" + }, + "https://github.com/in-toto/docs/blob/v1.0/in-toto-spec.md#51-workflow-description": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.199922-04:00" + }, + "https://github.com/in-toto/docs/tree/master/in-toto-spec.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.331788-04:00" + }, + "https://github.com/in-toto/friends": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.040143-04:00" + }, + "https://github.com/in-toto/in-toto": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.150198-04:00" + }, + "https://github.com/in-toto/in-toto-golang": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.720203-04:00" + }, + "https://github.com/in-toto/in-toto-java": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.36451-04:00" + }, + "https://github.com/in-toto/in-toto-rs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.045346-04:00" + }, + "https://github.com/in-toto/in-toto.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.115131-04:00" + }, + "https://github.com/in-toto/in-toto/blob/develop/doc/source/index.rst": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.017921-04:00" + }, + "https://github.com/jonasrosland": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:10.181949-04:00" + }, + "https://github.com/kaitoii11": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:06.157469-04:00" + }, + "https://github.com/kedacore/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.636185-04:00" + }, + "https://github.com/kedacore/governance": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.937812-04:00" + }, + "https://github.com/kedacore/keda": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.854043-04:00" + }, + "https://github.com/kedacore/keda-docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.324575-04:00" + }, + "https://github.com/kedacore/keda-docs/blob/main/README.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.825739-04:00" + }, + "https://github.com/kedacore/keda-docs/issues/1361": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.875875-04:00" + }, + "https://github.com/kedacore/sample-azure-functions-on-ocp4": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.799328-04:00" + }, + "https://github.com/kedacore/sample-go-rabbitmq": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.892284-04:00" + }, + "https://github.com/kedacore/sample-hello-world-azure-functions": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.047455-04:00" + }, + "https://github.com/kedacore/samples": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.718527-04:00" + }, + "https://github.com/kenta-iijima": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:18.391798-04:00" + }, + "https://github.com/knative/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.167424-04:00" + }, + "https://github.com/knative/client": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.441899-04:00" + }, + "https://github.com/knative/client/releases": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:28.171686-04:00" + }, + "https://github.com/knative/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.602361-04:00" + }, + "https://github.com/knative/community/blob/main/GOVERNANCE.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.806022-04:00" + }, + "https://github.com/knative/community/blob/main/working-groups/security/threat-model.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.162198-04:00" + }, + "https://github.com/knative/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.719469-04:00" + }, + "https://github.com/knative/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.91018-04:00" + }, + "https://github.com/knative/docs/blob/main/contribute-to-docs/style-guide/voice-and-language.md#avoid-statements-that-will-soon-be-out-of-date": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.389714-04:00" + }, + "https://github.com/knative/docs/blob/main/mkdocs.yml": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:28.723936-04:00" + }, + "https://github.com/knative/docs/issues/5331": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.374086-04:00" + }, + "https://github.com/knative/docs/issues/6216": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.562871-04:00" + }, + "https://github.com/knative/docs/tree/main/contribute-to-docs/style-guide": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.892835-04:00" + }, + "https://github.com/knative/eventing": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.586198-04:00" + }, + "https://github.com/knative/func": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.17485-04:00" + }, + "https://github.com/knative/serving": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.892016-04:00" + }, + "https://github.com/krator-rs/krator": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.453262-04:00" + }, + "https://github.com/krator-rs/krator/blob/main/CODEOWNERS": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.957144-04:00" + }, + "https://github.com/krator-rs/krator/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.230322-04:00" + }, + "https://github.com/krator-rs/krator/blob/main/docs/community/developers.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.771294-04:00" + }, + "https://github.com/krator-rs/krator/blob/main/docs/community/release-checklist.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.560197-04:00" + }, + "https://github.com/krator-rs/krator/tree/main/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.988366-04:00" + }, + "https://github.com/krook": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:54:06.299038-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.191889-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api#readme": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.171353-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api/blob/master/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.691754-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api/blob/master/OWNERS_ALIASES": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.134575-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api/blob/master/hack/make-docs.sh": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.976302-04:00" + }, + "https://github.com/kubernetes-sigs/gateway-api/issues": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.962786-04:00" + }, + "https://github.com/kubernetes/community/blob/master/contributors/guide/help-wanted.md#good-first-issue": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.213473-04:00" + }, + "https://github.com/kubernetes/community/blob/master/governance.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.391385-04:00" + }, + "https://github.com/kubernetes/website/blob/072d4b41b45f5311538c24d375432a755f9e3f4c/layouts/partials/navbar-version-selector.html": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:13.428114-04:00" + }, + "https://github.com/kubernetes/website/blob/7462297ee388332a7b0d27625929fbf44d0c1ea9/config.toml": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:14.486692-04:00" + }, + "https://github.com/kubernetes/website/blob/main/hugo.toml": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:05.75394-04:00" + }, + "https://github.com/kubernetes/website/blob/main/layouts/partials/navbar-version-selector.html": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:04.868363-04:00" + }, + "https://github.com/kubernetes/website/issues/13864": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.06314-04:00" + }, + "https://github.com/kubernetes/website/issues/28621": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:31.582512-04:00" + }, + "https://github.com/layer5io/layer5": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.532337-04:00" + }, + "https://github.com/litmuschaos/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.783258-04:00" + }, + "https://github.com/litmuschaos/litmus": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.780778-04:00" + }, + "https://github.com/litmuschaos/litmus-docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.432153-04:00" + }, + "https://github.com/litmuschaos/litmus-docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.392069-04:00" + }, + "https://github.com/litmuschaos/litmus-docs/issues": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.513993-04:00" + }, + "https://github.com/litmuschaos/litmus-docs/issues/271": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.659577-04:00" + }, + "https://github.com/litmuschaos/litmus-docs/issues/296": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.652514-04:00" + }, + "https://github.com/litmuschaos/litmus-website-2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.301134-04:00" + }, + "https://github.com/litmuschaos/litmus/issues": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.614924-04:00" + }, + "https://github.com/litmuschaos/litmus/tree/master/mkdocs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.497985-04:00" + }, + "https://github.com/litmuschaos/spectaql": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.525703-04:00" + }, + "https://github.com/litmuschaos/tutorials": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.322779-04:00" + }, + "https://github.com/litmuschaos/v1-litmus-docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.694362-04:00" + }, + "https://github.com/litmuschaos/website-litmuschaos": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.564631-04:00" + }, + "https://github.com/longhorn/website": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:06.890572-04:00" + }, + "https://github.com/mehabhalodiya": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.08246-04:00" + }, + "https://github.com/naonishijima": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:05.474373-04:00" + }, + "https://github.com/nate-double-u": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:04.498525-04:00" + }, + "https://github.com/nate-double-u/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.989244-04:00" + }, + "https://github.com/nate-double-u/technical-documentation-versioning": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:07.210219-04:00" + }, + "https://github.com/nats-io/nats-site/blob/master/MAINTAINERS.md": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:06.212203-04:00" + }, + "https://github.com/notaryproject": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.437344-04:00" + }, + "https://github.com/notaryproject/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.383959-04:00" + }, + "https://github.com/notaryproject/notaryproject": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.989505-04:00" + }, + "https://github.com/notaryproject/notaryproject#notary-v2-overview": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.181955-04:00" + }, + "https://github.com/notaryproject/notaryproject.dev": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.210183-04:00" + }, + "https://github.com/notaryproject/notaryproject.dev/blob/main/.github/settings.yml": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.819182-04:00" + }, + "https://github.com/notaryproject/notaryproject/pull/78": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.182172-04:00" + }, + "https://github.com/notaryproject/nv2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.912985-04:00" + }, + "https://github.com/notaryproject/specifications/issues/55": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.039582-04:00" + }, + "https://github.com/notaryproject/specifications/issues/77": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.939274-04:00" + }, + "https://github.com/nrb": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:08.823263-04:00" + }, + "https://github.com/opentracing/opentracing.io/issues": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:08.233122-04:00" + }, + "https://github.com/paigecalvert/helm-www/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:28.941618-04:00" + }, + "https://github.com/projectcontour/contour/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.77682-04:00" + }, + "https://github.com/projectcontour/contour/blob/main/SITE_CONTRIBUTION.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.305264-04:00" + }, + "https://github.com/projectcontour/contour/issues/2053": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.150586-04:00" + }, + "https://github.com/projectcontour/contour/issues/2183": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.006132-04:00" + }, + "https://github.com/sftim": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:13.756388-04:00" + }, + "https://github.com/tbatard": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:07.630335-04:00" + }, + "https://github.com/thanos-io/thanos": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.634724-04:00" + }, + "https://github.com/theupdateframework": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.923327-04:00" + }, + "https://github.com/theupdateframework/artwork": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.9861-04:00" + }, + "https://github.com/theupdateframework/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.231609-04:00" + }, + "https://github.com/theupdateframework/notary#getting-started-with-the-notary-cli": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.538672-04:00" + }, + "https://github.com/theupdateframework/notary#overview": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.922427-04:00" + }, + "https://github.com/theupdateframework/notary/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.895-04:00" + }, + "https://github.com/theupdateframework/notary/tree/master/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.557684-04:00" + }, + "https://github.com/theupdateframework/python-tuf": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.776227-04:00" + }, + "https://github.com/theupdateframework/specification": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.091267-04:00" + }, + "https://github.com/theupdateframework/taps": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.726706-04:00" + }, + "https://github.com/theupdateframework/theupdateframework.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.660311-04:00" + }, + "https://github.com/theupdateframework/tuf-on-ci": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.486389-04:00" + }, + "https://github.com/thisisobate": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:05.996396-04:00" + }, + "https://github.com/thisisobate/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.101649-04:00" + }, + "https://github.com/tremor-rs/tremor-rfcs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:35.047408-04:00" + }, + "https://github.com/tremor-rs/tremor-www-docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.341727-04:00" + }, + "https://github.com/tremor-rs/tremor-www-docs/blob/main/RELEASE_PROCESS.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.20203-04:00" + }, + "https://github.com/tremor-rs/tremor-www-docs/issues": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:30.20175-04:00" + }, + "https://github.com/tremor-rs/tremor-www-docs/issues/101": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:30.884319-04:00" + }, + "https://github.com/tremor-rs/tremor-www-docs/tree/main/python_scripts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.751946-04:00" + }, + "https://github.com/tremor-rs/tremor-www-main": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:34.46766-04:00" + }, + "https://github.com/vitessio": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.826164-04:00" + }, + "https://github.com/vitessio/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.503145-04:00" + }, + "https://github.com/vitessio/vitess/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.614838-04:00" + }, + "https://github.com/vitessio/website": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.022327-04:00" + }, + "https://github.com/vitessio/website/pull/1119": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:06.694925-04:00" + }, + "https://github.com/vmware-tanzu/velero/blob/1fd49f4fd66ecf6cd959ce258efbd9a549d8902b/site/config.yaml": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:11.324475-04:00" + }, + "https://github.com/vmware-tanzu/velero/blob/db403c6c54b0048fada2b5db628c44be4ac0fd79/site/layouts/docs/versions.html": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:08.409221-04:00" + }, + "https://goharbor.io/": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:13.037058-04:00" + }, + "https://gohugo.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.294301-04:00" + }, + "https://gohugo.io/hugo-modules/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.286722-04:00" + }, + "https://helm.sh/": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:12.576727-04:00" + }, + "https://helm.sh/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:29.099856-04:00" + }, + "https://helm.sh/community/#your-first-contribution": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:29.608839-04:00" + }, + "https://helm.sh/community/communication/#mailing-lists": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:29.370955-04:00" + }, + "https://helm.sh/community/developers": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:29.519893-04:00" + }, + "https://helm.sh/community/developers/#troubleshooting": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.332766-04:00" + }, + "https://helm.sh/community/governance/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:29.722506-04:00" + }, + "https://helm.sh/community/localization": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:27.269331-04:00" + }, + "https://helm.sh/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.291215-04:00" + }, + "https://helm.sh/docs/changelog": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.425333-04:00" + }, + "https://helm.sh/docs/chart_best_practices/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.664074-04:00" + }, + "https://helm.sh/docs/chart_best_practices/rbac": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.676026-04:00" + }, + "https://helm.sh/docs/chart_template_guide/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.699721-04:00" + }, + "https://helm.sh/docs/chart_template_guide/accessing_files": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.945671-04:00" + }, + "https://helm.sh/docs/chart_template_guide/helm_ignore_file": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.047479-04:00" + }, + "https://helm.sh/docs/chart_template_guide/notes_files": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.420225-04:00" + }, + "https://helm.sh/docs/chart_template_guide/wrapping_up": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.987693-04:00" + }, + "https://helm.sh/docs/glossary/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.423754-04:00" + }, + "https://helm.sh/docs/helm/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.999255-04:00" + }, + "https://helm.sh/docs/howto/chart_releaser_action": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.326399-04:00" + }, + "https://helm.sh/docs/howto/chart_repository_sync_example": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.750377-04:00" + }, + "https://helm.sh/docs/howto/charts_tips_and_tricks": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.212443-04:00" + }, + "https://helm.sh/docs/howto/charts_tips_and_tricks/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.317179-04:00" + }, + "https://helm.sh/docs/intro/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.685683-04:00" + }, + "https://helm.sh/docs/intro/CheatSheet": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.865562-04:00" + }, + "https://helm.sh/docs/intro/install": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.051467-04:00" + }, + "https://helm.sh/docs/intro/quickstart": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.433911-04:00" + }, + "https://helm.sh/docs/intro/using_helm": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.389309-04:00" + }, + "https://helm.sh/docs/intro/using_helm#three-big-concepts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.946169-04:00" + }, + "https://helm.sh/docs/overview": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.858111-04:00" + }, + "https://helm.sh/docs/plugins/developer/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.459373-04:00" + }, + "https://helm.sh/docs/plugins/developer/tutorial-cli-plugin": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.593133-04:00" + }, + "https://helm.sh/docs/plugins/overview": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.871322-04:00" + }, + "https://helm.sh/docs/plugins/user/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.199791-04:00" + }, + "https://helm.sh/docs/sdk/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.225307-04:00" + }, + "https://helm.sh/docs/topics/advanced#post-rendering": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.393506-04:00" + }, + "https://helm.sh/docs/topics/advanced#storage-backends": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.501562-04:00" + }, + "https://helm.sh/docs/topics/architecture": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.098308-04:00" + }, + "https://helm.sh/docs/topics/chart_repository": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.769442-04:00" + }, + "https://helm.sh/docs/topics/chart_tests": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.16043-04:00" + }, + "https://helm.sh/docs/topics/charts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.555624-04:00" + }, + "https://helm.sh/docs/topics/charts_hooks": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.800441-04:00" + }, + "https://helm.sh/docs/topics/charts_hooks#writing-a-hook": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.102411-04:00" + }, + "https://helm.sh/docs/topics/kubernetes_distros": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.542047-04:00" + }, + "https://helm.sh/docs/topics/library_charts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.40521-04:00" + }, + "https://helm.sh/docs/topics/permissions_sql_storage_backend": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.772863-04:00" + }, + "https://helm.sh/docs/topics/provenance": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.866272-04:00" + }, + "https://helm.sh/docs/topics/rbac": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.219986-04:00" + }, + "https://helm.sh/docs/topics/registries": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.934576-04:00" + }, + "https://helm.sh/docs/topics/registries/#migrating-from-chart-repos": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:28.317824-04:00" + }, + "https://helm.sh/docs/topics/version_skew": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.947673-04:00" + }, + "https://in-toto.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.902204-04:00" + }, + "https://in-toto.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.241065-04:00" + }, + "https://in-toto.io/in-toto": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.995829-04:00" + }, + "https://in-toto.io/in-toto/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.454705-04:00" + }, + "https://in-toto.readthedocs.io/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:12.695186-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:12.453284-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/api.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:19.890227-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/command-line-tools/index.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:19.653039-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/configuration.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:20.484951-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/installing.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:19.455026-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/layout-creation-example.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:20.689266-04:00" + }, + "https://in-toto.readthedocs.io/en/latest/model.html": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:20.130292-04:00" + }, + "https://inclusivenaming.org": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:04.342304-04:00" + }, + "https://inclusivenaming.org/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.029923-04:00" + }, + "https://inclusivenaming.org/word-lists/tier-1/abort": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.187853-04:00" + }, + "https://keda.sh": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.184747-04:00" + }, + "https://keda.sh/docs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.034676-04:00" + }, + "https://keda.sh/docs/2.13/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.058881-04:00" + }, + "https://keda.sh/docs/2.13/authentication-providers/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.202323-04:00" + }, + "https://keda.sh/docs/2.13/authentication-providers/aws/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.439459-04:00" + }, + "https://keda.sh/docs/2.13/authentication-providers/secret/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.600027-04:00" + }, + "https://keda.sh/docs/2.13/concepts/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.216315-04:00" + }, + "https://keda.sh/docs/2.13/concepts/admission-webhooks/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.460554-04:00" + }, + "https://keda.sh/docs/2.13/concepts/admission-webhooks/#prevention-rules": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.43557-04:00" + }, + "https://keda.sh/docs/2.13/concepts/authentication/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.252269-04:00" + }, + "https://keda.sh/docs/2.13/concepts/external-scalers/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.051467-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-deployments/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.966422-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-deployments/#caching-metrics": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.35194-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-deployments/#pause-autoscaling": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.421103-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-deployments/#scaledobject-spec": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.65206-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-deployments/#triggers": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.456835-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-jobs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.546279-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-jobs/#pause-autoscaling": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.463419-04:00" + }, + "https://keda.sh/docs/2.13/concepts/scaling-jobs/#scaledjob-spec": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.690045-04:00" + }, + "https://keda.sh/docs/2.13/concepts/troubleshooting/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.822116-04:00" + }, + "https://keda.sh/docs/2.13/deploy/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.915384-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#helm": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.102684-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#install": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.151751-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#install-1": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.295424-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#install-2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.427294-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#install-3": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.578361-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#microk8s": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.53162-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#operatorhub": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.250964-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#uninstall": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.199998-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#uninstall-1": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.339678-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#uninstall-2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.477321-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#uninstall-3": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.112648-04:00" + }, + "https://keda.sh/docs/2.13/deploy/#yaml": { + "StatusCode": 206, + "LastSeen": "2026-04-16T22:00:04.379284-04:00" + }, + "https://keda.sh/docs/2.13/integrations/opentelemetry/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.735599-04:00" + }, + "https://keda.sh/docs/2.13/integrations/prometheus/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.329004-04:00" + }, + "https://keda.sh/docs/2.13/migration/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.35194-04:00" + }, + "https://keda.sh/docs/2.13/operate/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.542485-04:00" + }, + "https://keda.sh/docs/2.13/operate/admission-webhooks/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.322131-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.349279-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#cluster-capacity": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.838089-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#firewall": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.942783-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#http-connection-disable-keep-alive": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.709179-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#http-proxies": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.945286-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#http-timeouts": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.52744-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#kubernetes-compatibility": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.626802-04:00" + }, + "https://keda.sh/docs/2.13/operate/cluster/#requirements": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.332827-04:00" + }, + "https://keda.sh/docs/2.13/operate/events/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.971356-04:00" + }, + "https://keda.sh/docs/2.13/operate/metrics-server/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.664275-04:00" + }, + "https://keda.sh/docs/2.13/operate/metrics-server/#how-to-get-metric-names-from-scaledobject": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.734035-04:00" + }, + "https://keda.sh/docs/2.13/operate/metrics-server/#querying-metrics-exposed-by-keda-metrics-server": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.657483-04:00" + }, + "https://keda.sh/docs/2.13/operate/security/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.14093-04:00" + }, + "https://keda.sh/docs/2.13/reference/faq/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.228235-04:00" + }, + "https://keda.sh/docs/2.13/scalers/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.264076-04:00" + }, + "https://keda.sh/docs/2.13/scalers/activemq/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.39999-04:00" + }, + "https://keda.sh/docs/2.13/scalers/redis-sentinel-lists/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.870219-04:00" + }, + "https://keda.sh/docs/2.13/scalers/redis-sentinel-lists/#authentication-parameters": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.487219-04:00" + }, + "https://keda.sh/docs/2.13/scalers/solr/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.659639-04:00" + }, + "https://keda.sh/docs/2.13/troubleshooting/#google-kubernetes-engine-gke": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.970308-04:00" + }, + "https://knative.dev/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.075461-04:00" + }, + "https://knative.dev/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.516162-04:00" + }, + "https://knative.dev/docs/bookstore/disclaimer/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.959778-04:00" + }, + "https://knative.dev/docs/bookstore/page-0.5/environment-setup/#troubleshooting": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.968352-04:00" + }, + "https://knative.dev/docs/bookstore/page-0/welcome-knative-bookstore-tutorial/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.849012-04:00" + }, + "https://knative.dev/docs/bookstore/page-1/send-review-comment-to-broker/#step-2-create-broker": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.856493-04:00" + }, + "https://knative.dev/docs/bookstore/page-2/sentiment-analysis-service-for-bookstore-reviews/#prerequisite-1-install-knative-func-cli": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.132102-04:00" + }, + "https://knative.dev/docs/client/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.240375-04:00" + }, + "https://knative.dev/docs/client/install-kn/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.033719-04:00" + }, + "https://knative.dev/docs/client/install-kn/#__tabbed_1_2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.821352-04:00" + }, + "https://knative.dev/docs/eventing/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.764778-04:00" + }, + "https://knative.dev/docs/eventing/brokers/broker-types/kafka-broker/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.70699-04:00" + }, + "https://knative.dev/docs/eventing/configuration/broker-configuration/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.215497-04:00" + }, + "https://knative.dev/docs/eventing/event-mesh/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.192416-04:00" + }, + "https://knative.dev/docs/eventing/reference/eventing-api/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.323491-04:00" + }, + "https://knative.dev/docs/getting-started/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.515779-04:00" + }, + "https://knative.dev/docs/getting-started/next-steps/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.598674-04:00" + }, + "https://knative.dev/docs/getting-started/tutorial/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:14.791403-04:00" + }, + "https://knative.dev/docs/install/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.950364-04:00" + }, + "https://knative.dev/docs/install/installing-backstage-plugins/#troubleshooting": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.251157-04:00" + }, + "https://knative.dev/docs/install/operator/knative-with-operator-cli/#__tabbed_1_1": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:27.073432-04:00" + }, + "https://knative.dev/docs/install/operator/knative-with-operator-cli/#__tabbed_1_2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:27.150691-04:00" + }, + "https://knative.dev/docs/install/quickstart-install/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.686357-04:00" + }, + "https://knative.dev/docs/install/quickstart-install/#__tabbed_1_2": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.737381-04:00" + }, + "https://knative.dev/docs/install/troubleshooting/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:23.726326-04:00" + }, + "https://knative.dev/docs/reference/security/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.349726-04:00" + }, + "https://knative.dev/docs/serving/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.214727-04:00" + }, + "https://knative.dev/docs/serving/architecture/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.226196-04:00" + }, + "https://knative.dev/docs/serving/autoscaling/autoscaling-metrics/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.340025-04:00" + }, + "https://knative.dev/docs/serving/encryption/encryption-overview/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.341184-04:00" + }, + "https://knative.dev/docs/serving/request-flow/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:18.562472-04:00" + }, + "https://knative.dev/docs/serving/revisions/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.077178-04:00" + }, + "https://knative.dev/docs/serving/troubleshooting/debugging-application-issues/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:24.577411-04:00" + }, + "https://kubernetes.io": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:13.503668-04:00" + }, + "https://kubernetes.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.319809-04:00" + }, + "https://kubernetes.io/docs/": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:05.343069-04:00" + }, + "https://kubernetes.io/docs/home/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.666117-04:00" + }, + "https://kubernetes.io/docs/setup/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:25.677659-04:00" + }, + "https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.110744-04:00" + }, + "https://kubernetes.io/ja/docs/contribute/localization/#style-guide": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:03.476847-04:00" + }, + "https://litmus.com/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.638313-04:00" + }, + "https://litmuschaos.github.io/litmus/graphql/v2.0.0/api.html": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.753792-04:00" + }, + "https://litmuschaos.github.io/tutorials/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.775668-04:00" + }, + "https://litmuschaos.github.io/tutorials/tutorial-getting-started/index.html#0": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.764757-04:00" + }, + "https://litmuschaos.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.39621-04:00" + }, + "https://litmuschaos.io/blog/analysing-chaos-workflows-with-litmus-portal-4e67": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:24.065721-04:00" + }, + "https://litmuschaos.io/blog/chaos-engineering-with-litmus-portal-on-okteto-cloud-3g57": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:24.495952-04:00" + }, + "https://litmuschaos.io/blog/declarative-approach-to-chaos-hypothesis-using-litmus-probes-5157": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:25.406382-04:00" + }, + "https://litmuschaos.io/blog/frontend-optimization-at-litmuschaos-1p14": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:21.418819-04:00" + }, + "https://litmuschaos.io/blog/gcp-iam-integration-for-litmuschaos-with-workload-identity-2eai": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:21.024101-04:00" + }, + "https://litmuschaos.io/blog/getting-started-with-litmus-2-0-in-google-kubernetes-engine-4obf": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:22.585469-04:00" + }, + "https://litmuschaos.io/blog/how-to-contribute-blog-posts-for-litmuschaos-3cnp": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:22.267946-04:00" + }, + "https://litmuschaos.io/blog/how-to-use-react-hooks-in-apollo-client-for-graphql-33bh": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:24.99689-04:00" + }, + "https://litmuschaos.io/blog/introduction-to-http-chaos-in-litmuschaos-3hn": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:20.580029-04:00" + }, + "https://litmuschaos.io/blog/introduction-to-k6-load-chaos-in-litmuschaos-4l2k": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:20.305119-04:00" + }, + "https://litmuschaos.io/blog/litmuschaos-gitlab-remote-templates-6l2": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:25.860184-04:00" + }, + "https://litmuschaos.io/blog/litmuschaos-in-2021-the-year-in-review-38cl": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:21.722837-04:00" + }, + "https://litmuschaos.io/blog/litmuschaos-is-joining-kubecon-cloudnativecon-north-america-2024-3blg": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:19.711761-04:00" + }, + "https://litmuschaos.io/blog/litmuschaos-node-memory-hog-experiment-2nj6": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:23.631911-04:00" + }, + "https://litmuschaos.io/blog/part-1-a-beginner-s-practical-guide-to-containerisation-and-chaos-engineering-with-litmuschaos-2-0-3h5c": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:23.286315-04:00" + }, + "https://litmuschaos.io/blog/part-2-a-beginner-s-practical-guide-to-containerisation-and-chaos-engineering-with-litmuschaos-2-0-253i": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:22.890587-04:00" + }, + "https://litmuschaos.io/community": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.992011-04:00" + }, + "https://lunrjs.com/": { + "StatusCode": 206, + "LastSeen": "2026-03-30T15:42:04.679563-04:00" + }, + "https://miro.com/app/board/uXjVO_1cS9k=/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:16.509278-04:00" + }, + "https://opentelemetry.io/docs/contributing/localization/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.200107-04:00" + }, + "https://pkg.go.dev/github.com/in-toto/in-toto-golang": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:19.489116-04:00" + }, + "https://pkg.go.dev/github.com/theupdateframework/go-tuf": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:17.738928-04:00" + }, + "https://pkg.go.dev/helm.sh/helm/v4": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:26.767923-04:00" + }, + "https://projectcontour.io/docs/v1.13.1/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.790281-04:00" + }, + "https://projectcontour.io/docs/v1.13.1/architecture": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.228114-04:00" + }, + "https://projectcontour.io/docs/v1.13.1/config/annotations/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.199887-04:00" + }, + "https://projectcontour.io/docs/v1.13.1/config/cors/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.683829-04:00" + }, + "https://projectcontour.io/docs/v1.13.1/start-contributing/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.211177-04:00" + }, + "https://projectcontour.io/getting-started/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.920148-04:00" + }, + "https://projectcontour.io/getting-started/#troubleshooting": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.510367-04:00" + }, + "https://projectcontour.io/resources/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.406083-04:00" + }, + "https://projectcontour.io/resources/how-we-work/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:15.780367-04:00" + }, + "https://projectcontour.io/resources/philosophy": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.065719-04:00" + }, + "https://projectcontour.io/resources/philosophy/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:20.970764-04:00" + }, + "https://prometheus.io/community/": { + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:07.210126-04:00" + }, + "https://prometheus.io/docs": { + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:04.092013-04:00" + }, + "https://repository-service-tuf.readthedocs.io": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:18.888139-04:00" + }, + "https://rfcs.tremor.rs": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:33.902088-04:00" + }, + "https://rfcs.tremor.rs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:33.641556-04:00" + }, + "https://servicedesk.cncf.io": { + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:06.388194-04:00" + }, + "https://servicedesk.cncf.io/": { + "StatusCode": 200, + "LastSeen": "2026-03-30T15:42:04.134716-04:00" }, "https://slack.cncf.io": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:20.296404-04:00" }, + "https://smi-spec.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.919783-04:00" + }, "https://support.google.com/analytics/answer/10089681": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:04.053319-04:00" @@ -575,6 +2359,38 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:06.907337-04:00" }, + "https://theupdateframework.github.io/python-tuf": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:21.148934-04:00" + }, + "https://theupdateframework.github.io/specification/latest": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.229847-04:00" + }, + "https://theupdateframework.github.io/specification/latest/#detailed-client-workflow": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.509863-04:00" + }, + "https://theupdateframework.github.io/specification/latest/#fix-time": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:19.37832-04:00" + }, + "https://theupdateframework.io": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.120647-04:00" + }, + "https://theupdateframework.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.793576-04:00" + }, + "https://theupdateframework.io/docs/getting-started/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.170405-04:00" + }, + "https://theupdateframework.readthedocs.io": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:17.255427-04:00" + }, "https://tockify.com/cncf.public.events/monthly": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:03.99942-04:00" @@ -591,9 +2407,29 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:03.711888-04:00" }, + "https://vitess.io/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:11.80468-04:00" + }, + "https://vitess.io/docs/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.138339-04:00" + }, + "https://vitess.io/docs/contributing/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:16.830153-04:00" + }, + "https://wiki.python.org/moin/BeginnersGuide": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:26.649189-04:00" + }, "https://www.apache.org/licenses/LICENSE-2.0": { "StatusCode": 206, - "LastSeen": "2025-03-19T11:52:39.424491-04:00" + "LastSeen": "2026-04-16T21:18:01.719097-04:00" + }, + "https://www.cncf.io/case-studies/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:30.884332-04:00" }, "https://www.cncf.io/project-metrics": { "StatusCode": 200, @@ -607,10 +2443,22 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.342318-04:00" }, + "https://www.docsy.dev/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.222444-04:00" + }, "https://www.docsy.dev/docs/content/feedback/#adding-analytics": { "StatusCode": 206, "LastSeen": "2026-03-30T15:50:23.907648-04:00" }, + "https://www.flatcar.org": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:13.457255-04:00" + }, + "https://www.flatcar.org/docs/latest": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:12.609579-04:00" + }, "https://www.fluentd.org/testimonials": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:12.835994-04:00" @@ -619,6 +2467,10 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:11.842922-04:00" }, + "https://www.linuxfoundation.org/": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:14.534947-04:00" + }, "https://www.linuxfoundation.org/legal/privacy-policy": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:03.931341-04:00" @@ -639,6 +2491,22 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:03.825892-04:00" }, + "https://www.tremor.rs/community/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:31.843318-04:00" + }, + "https://www.usenix.org/conference/usenixsecurity19/presentation/torres-arias": { + "StatusCode": 200, + "LastSeen": "2026-04-16T21:15:17.884666-04:00" + }, + "https://www.usenix.org/system/files/sec19-torres-arias.pdf": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:17.340116-04:00" + }, + "https://www.w3.org/WAI/WCAG21/Understanding/": { + "StatusCode": 206, + "LastSeen": "2026-04-16T21:15:22.934277-04:00" + }, "https://zoom-lfx.platform.linuxfoundation.org/meeting/95471930872": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:03.487723-04:00" diff --git a/tsconfig.json b/tsconfig.json index 920d7a65..7117c4fa 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,8 @@ // This file is not used in compilation. It is here just for a nice editor experience. "extends": "@docusaurus/tsconfig", "compilerOptions": { - "baseUrl": "." + "ignoreDeprecations": "6.0", + "allowImportingTsExtensions": true }, "exclude": [".docusaurus", "build"] } From b50d224937587306b7b70eba3a3466b34a6fbdd5 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Tue, 21 Apr 2026 17:35:52 -0400 Subject: [PATCH 18/50] Rename analyses/YEAR/PROJ/PROJ-slug.md to slug.md (#352) Signed-off-by: BruceHamilton --- .../{backstage-analysis.md => analysis.md} | 17 +++++++------- .../{backstage-glossary.md => glossary.md} | 0 ...ge-implementation.md => implementation.md} | 6 ++--- analyses/2023/backstage/index.md | 22 +++++++++---------- ...nsights-summary.md => insights-summary.md} | 0 .../{backstage-issues.md => issues.md} | 0 .../etcd/{etcd-analysis.md => analysis.md} | 21 +++++++++--------- ...cd-implementation.md => implementation.md} | 4 ++-- analyses/2023/etcd/index.md | 12 +++++----- .../2023/etcd/{etcd-issues.md => issues.md} | 2 +- .../{in-toto-analysis.md => analysis.md} | 10 ++++----- .../{in-toto-doc-issues.md => doc-issues.md} | 0 ...to-implementation.md => implementation.md} | 0 analyses/2023/in-toto/index.md | 6 ++--- .../keda/{keda-analysis.md => analysis.md} | 17 +++++++------- ...da-implementation.md => implementation.md} | 4 ++-- analyses/2024/keda/index.md | 12 +++++----- .../2024/keda/{keda-issues.md => issues.md} | 0 .../{litmuschaos-analysis.md => analysis.md} | 6 ++--- ...os-implementation.md => implementation.md} | 8 +++---- .../{litmuschaos-issues.md => issues.md} | 0 .../helm/{helm-analysis.md => analysis.md} | 4 ++-- ...lm-implementation.md => implementation.md} | 2 +- .../{helm-issues-list.md => issues-list.md} | 12 +++++----- lib/remarkRewriteLinks/index.test.mts | 8 +++---- 25 files changed, 85 insertions(+), 88 deletions(-) rename analyses/2023/backstage/{backstage-analysis.md => analysis.md} (98%) rename analyses/2023/backstage/{backstage-glossary.md => glossary.md} (100%) rename analyses/2023/backstage/{backstage-implementation.md => implementation.md} (99%) rename analyses/2023/backstage/{backstage-insights-summary.md => insights-summary.md} (100%) rename analyses/2023/backstage/{backstage-issues.md => issues.md} (100%) rename analyses/2023/etcd/{etcd-analysis.md => analysis.md} (98%) rename analyses/2023/etcd/{etcd-implementation.md => implementation.md} (99%) rename analyses/2023/etcd/{etcd-issues.md => issues.md} (99%) rename analyses/2023/in-toto/{in-toto-analysis.md => analysis.md} (97%) rename analyses/2023/in-toto/{in-toto-doc-issues.md => doc-issues.md} (100%) rename analyses/2023/in-toto/{in-toto-implementation.md => implementation.md} (100%) rename analyses/2024/keda/{keda-analysis.md => analysis.md} (97%) rename analyses/2024/keda/{keda-implementation.md => implementation.md} (99%) rename analyses/2024/keda/{keda-issues.md => issues.md} (100%) rename analyses/2024/litmuschaos/{litmuschaos-analysis.md => analysis.md} (99%) rename analyses/2024/litmuschaos/{litmuschaos-implementation.md => implementation.md} (97%) rename analyses/2024/litmuschaos/{litmuschaos-issues.md => issues.md} (100%) rename analyses/2025/helm/{helm-analysis.md => analysis.md} (99%) rename analyses/2025/helm/{helm-implementation.md => implementation.md} (99%) rename analyses/2025/helm/{helm-issues-list.md => issues-list.md} (90%) diff --git a/analyses/2023/backstage/backstage-analysis.md b/analyses/2023/backstage/analysis.md similarity index 98% rename from analyses/2023/backstage/backstage-analysis.md rename to analyses/2023/backstage/analysis.md index 5797d831..254b7882 100644 --- a/analyses/2023/backstage/backstage-analysis.md +++ b/analyses/2023/backstage/analysis.md @@ -80,17 +80,16 @@ Each section begins with summary ratings based on a rubric with appropriate - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -An accompanying document, [backstage-implementation.md][implementation-doc], -breaks the recommendations down into concrete actions that can be implemented by -project contributors. Its focus is on drilling down to specific, achievable work -that can be completed in constrained blocks of time. Ultimately, the -implementation items should be tracked as a series of Github -[issues][backstage-issues]. +An accompanying document, [implementation.md][implementation-doc], breaks the +recommendations down into concrete actions that can be implemented by project +contributors. Its focus is on drilling down to specific, achievable work that +can be completed in constrained blocks of time. Ultimately, the implementation +items should be tracked as a series of Github [issues][backstage-issues]. ### How to use this document Readers interested only in actionable improvements should skip this document and -read [backstage-implementation.md][implementation-doc]. +read [implementation.md][implementation-doc]. Readers interested in the current state of the documentation and the reasoning behind the recommendations should read this document or the section pertaining @@ -595,7 +594,7 @@ Improve compliance in these areas: [backstage-github-project]: https://github.com/backstage [backstage-governance]: https://github.com/backstage/community/blob/main/GOVERNANCE.md -[backstage-insights-summary]: ./backstage-insights-summary.md +[backstage-insights-summary]: ./insights-summary.md [backstage-issues]: https://github.com/backstage/backstage/issues [backstage-io-overview-benefits]: https://backstage.io/docs/overview/what-is-backstage#benefits @@ -618,7 +617,7 @@ Improve compliance in these areas: https://expertsupport.com/library/the-ideal-documentation-suite-for-software-developers/ [github-archiving]: https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories -[implementation-doc]: ./backstage-implementation.md +[implementation-doc]: ./implementation.md [inclusive-naming]: https://inclusivenaming.org [rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 [wcag-understanding]: https://www.w3.org/WAI/WCAG21/Understanding/ diff --git a/analyses/2023/backstage/backstage-glossary.md b/analyses/2023/backstage/glossary.md similarity index 100% rename from analyses/2023/backstage/backstage-glossary.md rename to analyses/2023/backstage/glossary.md diff --git a/analyses/2023/backstage/backstage-implementation.md b/analyses/2023/backstage/implementation.md similarity index 99% rename from analyses/2023/backstage/backstage-implementation.md rename to analyses/2023/backstage/implementation.md index c831e7b3..bd502d3d 100644 --- a/analyses/2023/backstage/backstage-implementation.md +++ b/analyses/2023/backstage/implementation.md @@ -12,7 +12,7 @@ This document provides actionable suggestions for improving the Backstage technical documentation. For an analysis and general discussion of recommendations on Backstage technical -documentation, see [backstage-analysis.md][backstage-analysis]]. +documentation, see [analysis.md][backstage-analysis]. ### Recommendations, requirements, and best practices @@ -297,8 +297,8 @@ Improve compliance in these areas: -[backstage-analysis]: ./backstage-analysis.md +[backstage-analysis]: ./analysis.md [backstage-backstage]: https://github.com/backstage/backstage [backstage-github-project]: https://github.com/backstage -[backstage-insights-summary]: ./backstage-insights-summary.md +[backstage-insights-summary]: ./insights-summary.md [user-roles]: #user-roles diff --git a/analyses/2023/backstage/index.md b/analyses/2023/backstage/index.md index 29e1428b..0e59e7ee 100644 --- a/analyses/2023/backstage/index.md +++ b/analyses/2023/backstage/index.md @@ -3,21 +3,21 @@ title: Backstage TechDocs Analysis tags: [backstage] --- -- [Backstage Doc Analysis](backstage-analysis.md) - Analyzes the existing - Backstage documentation and provides recommendations. -- [Backstage Implementation](backstage-implementation.md) - Provides detailed - and actionable recommendations, intended to be worked on as GitHub issues. +- [Backstage Doc Analysis](analysis.md) - Analyzes the existing Backstage + documentation and provides recommendations. +- [Backstage Implementation](implementation.md) - Provides detailed and + actionable recommendations, intended to be worked on as GitHub issues. - [User Roles](user-roles.md) - A discussion of Backstage stakeholders with respect to how they use documentation. Folded into the Implementation doc. Reference. -- [Backstage Insights Summary](backstage-insights-summary.md) - A summary of - conclusions from Spotify's survey of Backstage adopters. Background. -- [Backstage Issues](backstage-issues.md) - A list of documentation improvements - derived from Backstage Implementation, to be entered as issues in the +- [Backstage Insights Summary](insights-summary.md) - A summary of conclusions + from Spotify's survey of Backstage adopters. Background. +- [Backstage Issues](issues.md) - A list of documentation improvements derived + from Backstage Implementation, to be entered as issues in the [backstage/backstage repo](https://github.com/backstage/backstage/issues/21893). - [Backstage Docs Survey](backstage-doc-survey.csv) - A spreadsheet of every page of the Backstage technical documentation at the time of the analysis. About 200 lines. -- [Backstage Glossary](backstage-glossary.md) - A glossary of terms for the - Backstage project, the Backstage product, and this analysis. Edit to use as - the Glossary for the Backstage technical documentation. +- [Backstage Glossary](glossary.md) - A glossary of terms for the Backstage + project, the Backstage product, and this analysis. Edit to use as the Glossary + for the Backstage technical documentation. diff --git a/analyses/2023/backstage/backstage-insights-summary.md b/analyses/2023/backstage/insights-summary.md similarity index 100% rename from analyses/2023/backstage/backstage-insights-summary.md rename to analyses/2023/backstage/insights-summary.md diff --git a/analyses/2023/backstage/backstage-issues.md b/analyses/2023/backstage/issues.md similarity index 100% rename from analyses/2023/backstage/backstage-issues.md rename to analyses/2023/backstage/issues.md diff --git a/analyses/2023/etcd/etcd-analysis.md b/analyses/2023/etcd/analysis.md similarity index 98% rename from analyses/2023/etcd/etcd-analysis.md rename to analyses/2023/etcd/analysis.md index ca277a54..cb9ad7ea 100644 --- a/analyses/2023/etcd/etcd-analysis.md +++ b/analyses/2023/etcd/analysis.md @@ -26,14 +26,14 @@ efforts. This document was written to analyze the current state of etcd documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. The companion document, -etcd-implementation.md, outlines an actionable plan for improvement. +implementation.md, outlines an actionable plan for improvement. This document: - Analyzes the current etcd technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on - investment. The companion document, etcd-implementation.md, provides specific + investment. The companion document, implementation.md, provides specific actionable suggestions and recommendations for overall organization and presentation of documentation @@ -79,17 +79,16 @@ Each section begins with summary ratings based on a rubric with appropriate - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -An accompanying document, [etcd-implementation.md][implementation-doc], breaks -the recommendations down into concrete actions that can be implemented by -project contributors. Its focus is on drilling down to specific, achievable work -that can be completed in constrained blocks of time. Ultimately, the -implementation items should be tracked as a series of Github -[issues][etcd-issues]. +An accompanying document, [implementation.md][implementation-doc], breaks the +recommendations down into concrete actions that can be implemented by project +contributors. Its focus is on drilling down to specific, achievable work that +can be completed in constrained blocks of time. Ultimately, the implementation +items should be tracked as a series of Github [issues][etcd-issues]. ### How to use this document Readers interested only in actionable improvements should skip this document and -read [etcd-implementation.md][implementation-doc]. +read [implementation.md][implementation-doc]. Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -717,11 +716,11 @@ Consider securing the [demo server][] using HTTPS. [etcd-io]: https://etcd.io [cncf-doc-criteria]: ../../docs/analysis/criteria.md -[implementation-doc]: ./etcd-implementation.md +[implementation-doc]: ./implementation.md [proj-doc]: ../../docs/analysis/criteria.md#project-documentation [contributor-doc]: ../../docs/analysis/criteria.md#contributor-documentation [website]: ../../docs/analysis/criteria.md#website -[etcd-issues]: ./etcd-issues.md +[etcd-issues]: ./issues.md [rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 [inclusive-naming]: https://inclusivenaming.org [install-check]: https://etcd.io/docs/v3.5/install/#installation-check diff --git a/analyses/2023/etcd/etcd-implementation.md b/analyses/2023/etcd/implementation.md similarity index 99% rename from analyses/2023/etcd/etcd-implementation.md rename to analyses/2023/etcd/implementation.md index 409cee38..23d607d1 100644 --- a/analyses/2023/etcd/etcd-implementation.md +++ b/analyses/2023/etcd/implementation.md @@ -9,7 +9,7 @@ This document provides actionable suggestions for improving the etcd technical documentation. For an analysis and general discussion of recommendations on etcd technical -documentation, see [etcd-analysis.md][etcd-analysis]. +documentation, see [analysis.md][etcd-analysis]. ## Recommendations, requirements, and best practices @@ -312,6 +312,6 @@ Release notes should include: -[etcd-analysis]: ./etcd-analysis.md +[etcd-analysis]: ./analysis.md [rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 [access-tutorial]: https://github.com/etcd-io/website/issues/790 diff --git a/analyses/2023/etcd/index.md b/analyses/2023/etcd/index.md index a6e3ae81..8f434710 100644 --- a/analyses/2023/etcd/index.md +++ b/analyses/2023/etcd/index.md @@ -3,10 +3,10 @@ title: etcd TechDocs Analysis tags: [etcd] --- -- [etcd Doc Analysis](etcd-analysis.md) - Analyzes the existing etcd - documentation and provides recommendations. -- [etcd Implementation](etcd-implementation.md) - Provides detailed and - actionable recommendations, intended to be worked on as GitHub issues. -- [etcd Issues](etcd-issues.md) - A list of documentation improvements derived - from etcd Implementation, entered as issues in the +- [etcd Doc Analysis](analysis.md) - Analyzes the existing etcd documentation + and provides recommendations. +- [etcd Implementation](implementation.md) - Provides detailed and actionable + recommendations, intended to be worked on as GitHub issues. +- [etcd Issues](issues.md) - A list of documentation improvements derived from + etcd Implementation, entered as issues in the [etcd-io/website repo](https://github.com/etcd-io/website/issues/766). diff --git a/analyses/2023/etcd/etcd-issues.md b/analyses/2023/etcd/issues.md similarity index 99% rename from analyses/2023/etcd/etcd-issues.md rename to analyses/2023/etcd/issues.md index 2ad360fa..3f2a4b5c 100644 --- a/analyses/2023/etcd/etcd-issues.md +++ b/analyses/2023/etcd/issues.md @@ -399,6 +399,6 @@ each path. If such a guide isn't needed, then remove this page. -[etcd-analysis]: ./etcd-analysis.md +[etcd-analysis]: ./analysis.md [rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 [access-tutorial]: https://github.com/etcd-io/website/issues/790 diff --git a/analyses/2023/in-toto/in-toto-analysis.md b/analyses/2023/in-toto/analysis.md similarity index 97% rename from analyses/2023/in-toto/in-toto-analysis.md rename to analyses/2023/in-toto/analysis.md index 9f3fc462..a501d87c 100644 --- a/analyses/2023/in-toto/in-toto-analysis.md +++ b/analyses/2023/in-toto/analysis.md @@ -13,7 +13,7 @@ September 2023. Documentation is analyzed with respect to CNCF criteria for completeness, discoverability, and usability. The analysis forms the basis for the recommendations and doc plan presented in -the companion [Implementation document](./in-toto-implementation.md). +the companion [Implementation document](./implementation.md). ## Scope of analysis @@ -49,8 +49,8 @@ appropriate criteria for the section, then proceeds to: - Recommendations: suggested changes that would improve the effectiveness of the documentation in a specific area. -The companion [Implementation document](./in-toto-implementation.md) organizes -the recommendations into concrete actions that can be implemented by project +The companion [Implementation document](./implementation.md) organizes the +recommendations into concrete actions that can be implemented by project contributors. The intention is to drill down to specific, achievable documentation tasks that @@ -62,8 +62,8 @@ documentation issues that can be undertaken by contributors. ## How to use this document Readers interested only in actionable improvements can skip to the -[implementation recommendations](./in-toto-implementation.md). For more context, -read the recommendations for each of the three areas of analysis: +[implementation recommendations](./implementation.md). For more context, read +the recommendations for each of the three areas of analysis: - [Project documentation recommendations](#recommendations-1) diff --git a/analyses/2023/in-toto/in-toto-doc-issues.md b/analyses/2023/in-toto/doc-issues.md similarity index 100% rename from analyses/2023/in-toto/in-toto-doc-issues.md rename to analyses/2023/in-toto/doc-issues.md diff --git a/analyses/2023/in-toto/in-toto-implementation.md b/analyses/2023/in-toto/implementation.md similarity index 100% rename from analyses/2023/in-toto/in-toto-implementation.md rename to analyses/2023/in-toto/implementation.md diff --git a/analyses/2023/in-toto/index.md b/analyses/2023/in-toto/index.md index 1d527af3..719bcba8 100644 --- a/analyses/2023/in-toto/index.md +++ b/analyses/2023/in-toto/index.md @@ -39,6 +39,6 @@ presented in these files: - [Survey of existing documentation](./survey-of-existing-doc.md) (as of September 2023) -- [Analysis](./in-toto-analysis.md) -- [Recommendations and implementation](./in-toto-implementation.md) -- [Proposed actionable issues](./in-toto-doc-issues.md) +- [Analysis](./analysis.md) +- [Recommendations and implementation](./implementation.md) +- [Proposed actionable issues](./doc-issues.md) diff --git a/analyses/2024/keda/keda-analysis.md b/analyses/2024/keda/analysis.md similarity index 97% rename from analyses/2024/keda/keda-analysis.md rename to analyses/2024/keda/analysis.md index 9cf11356..24be7ec5 100644 --- a/analyses/2024/keda/keda-analysis.md +++ b/analyses/2024/keda/analysis.md @@ -26,14 +26,14 @@ efforts. This document was written to analyze the current state of KEDA documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. The companion document, -keda-implementation.md, outlines an actionable plan for improvement. +implementation.md, outlines an actionable plan for improvement. This document: - Analyzes the current KEDA technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on - investment. The companion document, keda-implementation.md, provides specific + investment. The companion document, implementation.md, provides specific actionable suggestions and recommendations for overall organization and presentation of documentation @@ -79,17 +79,16 @@ Each section begins with summary ratings based on a rubric with appropriate - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -An accompanying document, [keda-implementation.md](./keda-implementation.md), -breaks the recommendations down into concrete actions that can be implemented by -project contributors. Its focus is on drilling down to specific, achievable work -that can be completed in constrained blocks of time. Ultimately, the -implementation items should be tracked as a series of Github -[issues](keda-issues.md). +An accompanying document, [implementation.md](./implementation.md), breaks the +recommendations down into concrete actions that can be implemented by project +contributors. Its focus is on drilling down to specific, achievable work that +can be completed in constrained blocks of time. Ultimately, the implementation +items should be tracked as a series of Github [issues](issues.md). ### How to use this document Readers interested only in actionable improvements should skip this document and -read [keda-implementation.md](./keda-implementation.md). +read [implementation.md](./implementation.md). Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining diff --git a/analyses/2024/keda/keda-implementation.md b/analyses/2024/keda/implementation.md similarity index 99% rename from analyses/2024/keda/keda-implementation.md rename to analyses/2024/keda/implementation.md index 489c1595..963ee93b 100644 --- a/analyses/2024/keda/keda-implementation.md +++ b/analyses/2024/keda/implementation.md @@ -11,7 +11,7 @@ This document provides actionable suggestions for improving the KEDA technical documentation. For an analysis and general discussion of recommendations on KEDA technical -documentation, see [keda-analysis.md][keda-analysis]. +documentation, see [analysis.md][keda-analysis]. ### Recommendations, requirements, and best practices @@ -257,5 +257,5 @@ either in the new OWNERS file or the governance MAINTAINERS file. -[keda-analysis]: ./keda-analysis.md +[keda-analysis]: ./analysis.md [rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 diff --git a/analyses/2024/keda/index.md b/analyses/2024/keda/index.md index c5fe2485..602cb488 100644 --- a/analyses/2024/keda/index.md +++ b/analyses/2024/keda/index.md @@ -3,10 +3,10 @@ title: KEDA TechDocs Analysis tags: [KEDA] --- -- [KEDA Doc Analysis](keda-analysis.md) - Analyzes the existing KEDA - documentation and provides recommendations. -- [KEDA Implementation](keda-implementation.md) - Provides detailed and - actionable recommendations, intended to be worked on as GitHub issues. -- [KEDA Issues](keda-issues.md) - A list of documentation improvements derived - from KEDA Implementation, entered as issues in the +- [KEDA Doc Analysis](analysis.md) - Analyzes the existing KEDA documentation + and provides recommendations. +- [KEDA Implementation](implementation.md) - Provides detailed and actionable + recommendations, intended to be worked on as GitHub issues. +- [KEDA Issues](issues.md) - A list of documentation improvements derived from + KEDA Implementation, entered as issues in the [kedacore/keda-docs repo](https://github.com/kedacore/keda-docs/issues/1361). diff --git a/analyses/2024/keda/keda-issues.md b/analyses/2024/keda/issues.md similarity index 100% rename from analyses/2024/keda/keda-issues.md rename to analyses/2024/keda/issues.md diff --git a/analyses/2024/litmuschaos/litmuschaos-analysis.md b/analyses/2024/litmuschaos/analysis.md similarity index 99% rename from analyses/2024/litmuschaos/litmuschaos-analysis.md rename to analyses/2024/litmuschaos/analysis.md index 0a935ebd..693d2f15 100644 --- a/analyses/2024/litmuschaos/litmuschaos-analysis.md +++ b/analyses/2024/litmuschaos/analysis.md @@ -713,9 +713,9 @@ The numeric rating values used in this document are as follows: [api-site]: https://litmuschaos.github.io/litmus/graphql/v2.0.0/api.html [criteria]: ../../docs/analysis/criteria.md -[implementation]: ./litmuschaos-implementation.md -[issues]: ./litmuschaos-implementation.md -[issues list]: ./litmuschaos-implementation.md +[implementation]: ./implementation.md +[issues]: ./implementation.md +[issues list]: ./implementation.md [project-website]: https://litmuschaos.io/ [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 [website guidelines]: ../../docs/website-guidelines-checklist.md diff --git a/analyses/2024/litmuschaos/litmuschaos-implementation.md b/analyses/2024/litmuschaos/implementation.md similarity index 97% rename from analyses/2024/litmuschaos/litmuschaos-implementation.md rename to analyses/2024/litmuschaos/implementation.md index 427430ba..8ad2dbee 100644 --- a/analyses/2024/litmuschaos/litmuschaos-implementation.md +++ b/analyses/2024/litmuschaos/implementation.md @@ -14,7 +14,7 @@ This document provides actionable suggestions for improving the LitmusChaos technical documentation. For an analysis and general discussion of recommendations on LitmusChaos -technical documentation, see [the analysis](./litmuschaos-analysis.md). +technical documentation, see [the analysis](./analysis.md). ### Recommendations, requirements, and best practices @@ -162,9 +162,9 @@ be its own page. Ensure that installation, setup, and verification have a clear workflow. If these instructions vary significantly between user roles, write a separate workflow for each user role. See -[New user content](litmuschaos-analysis.md#new-user-content). Rename "Learn -more" at the end of procedures and tasks to "Next steps". Explain who would want -to do each item and why in a short paragraph. +[New user content](analysis.md#new-user-content). Rename "Learn more" at the end +of procedures and tasks to "Next steps". Explain who would want to do each item +and why in a short paragraph. Limit on-site search to the current version of the documentation. diff --git a/analyses/2024/litmuschaos/litmuschaos-issues.md b/analyses/2024/litmuschaos/issues.md similarity index 100% rename from analyses/2024/litmuschaos/litmuschaos-issues.md rename to analyses/2024/litmuschaos/issues.md diff --git a/analyses/2025/helm/helm-analysis.md b/analyses/2025/helm/analysis.md similarity index 99% rename from analyses/2025/helm/helm-analysis.md rename to analyses/2025/helm/analysis.md index 7b48cdf0..46de0e99 100644 --- a/analyses/2025/helm/helm-analysis.md +++ b/analyses/2025/helm/analysis.md @@ -728,8 +728,8 @@ The numeric rating values used in this document are as follows 5. Exemplary [criteria]: /docs/analysis/criteria.md -[implementation]: ./helm-implementation.md -[issues list]: ./helm-issues-list.md +[implementation]: ./implementation.md +[issues list]: ./issues-list.md [project-website]: https://helm.sh/ [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 diff --git a/analyses/2025/helm/helm-implementation.md b/analyses/2025/helm/implementation.md similarity index 99% rename from analyses/2025/helm/helm-implementation.md rename to analyses/2025/helm/implementation.md index d09a4095..d560f38a 100644 --- a/analyses/2025/helm/helm-implementation.md +++ b/analyses/2025/helm/implementation.md @@ -12,7 +12,7 @@ This document provides actionable suggestions for improving the Helm technical documentation. For an analysis and general discussion of recommendations on Helm technical -documentation, see [analysis.md](helm-analysis.md). +documentation, see [the analysis](analysis.md). ### Recommendations, requirements, and best practices diff --git a/analyses/2025/helm/helm-issues-list.md b/analyses/2025/helm/issues-list.md similarity index 90% rename from analyses/2025/helm/helm-issues-list.md rename to analyses/2025/helm/issues-list.md index 78ac570d..6a0e01c0 100644 --- a/analyses/2025/helm/helm-issues-list.md +++ b/analyses/2025/helm/issues-list.md @@ -43,17 +43,17 @@ TO DO: Create the GitHub issues in helm-www repo and add links here > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. -Reorganize the sidebar (using the proposed sidebar in `helm-implementation.md` -as a guide) by creating new folders for each category and moving files -accordingly. Add redirects and update links as needed. Needs to be done for each -locale for v4 only. +Reorganize the sidebar (using the proposed sidebar in `implementation.md` as a +guide) by creating new folders for each category and moving files accordingly. +Add redirects and update links as needed. Needs to be done for each locale for +v4 only. ### Issue: Add a technical/conceptual overview of Helm Use existing content in [Helm Architecture](https://helm.sh/docs/topics/architecture) to add a -high-level Helm overview page. See the proposed sidebar in -`helm-implementation.md` for instruction on where to put it. +high-level Helm overview page. See the proposed sidebar in `implementation.md` +for instruction on where to put it. ### Issue: Prune out-of-date content diff --git a/lib/remarkRewriteLinks/index.test.mts b/lib/remarkRewriteLinks/index.test.mts index e8c0c371..560dda02 100644 --- a/lib/remarkRewriteLinks/index.test.mts +++ b/lib/remarkRewriteLinks/index.test.mts @@ -75,7 +75,7 @@ describe('rewriteHref (cross-plugin links)', () => { assert.strictEqual( rewriteHref( '../../docs/analysis/criteria.md#website', - 'analyses/2023/etcd/etcd-analysis.md', + 'analyses/2023/etcd/analysis.md', ), '/docs/analysis/criteria/#website', ); @@ -87,8 +87,8 @@ describe('rewriteHref (cross-plugin links)', () => { '/docs/analysis/criteria/', ); assert.strictEqual( - rewriteHref('/analyses/2024/keda/keda-analysis.md', 'docs/howto.md'), - '/analyses/2024/keda/keda-analysis/', + rewriteHref('/analyses/2024/keda/analysis.md', 'docs/howto.md'), + '/analyses/2024/keda/analysis/', ); }); }); @@ -163,7 +163,7 @@ describe('remarkRewriteLinks (full pipeline)', () => { ![arch](../../../docs/images/gapi_info_arch.png) `); - const out = await run(md, 'analyses/2023/backstage/backstage-analysis.md'); + const out = await run(md, 'analyses/2023/backstage/analysis.md'); assert.match(out, /\[criteria\]\(\/docs\/analysis\/criteria\/\)/); assert.match( out, From d136aa52b60e3f55a4efb4f4977d99ba8ce438af Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 7 May 2026 15:12:07 -0700 Subject: [PATCH 19/50] Flatcar docs analysis - writing and updates (#349) * Contribor docs section updated Signed-off-by: Bruce Hamilton * more updates Signed-off-by: Bruce Hamilton * more writing Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton * spelling fix Signed-off-by: Bruce Hamilton * Contribor docs section updated Signed-off-by: Bruce Hamilton * more updates Signed-off-by: Bruce Hamilton * more writing Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton * spelling fix Signed-off-by: Bruce Hamilton * contributor section updates Signed-off-by: Bruce Hamilton * misc fixes Signed-off-by: Bruce Hamilton * spelling fix Signed-off-by: Bruce Hamilton * spelling fix -> Linux Signed-off-by: Bruce Hamilton * more writing Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton * format fixes Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Patrice Chalin Signed-off-by: Bruce Hamilton * writing updates Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton * spellling fix Signed-off-by: Bruce Hamilton * removed inclusivity as spelling error false it Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton * added issues.md Signed-off-by: Bruce Hamilton * url fix Signed-off-by: Bruce Hamilton * removed problematic link Signed-off-by: Bruce Hamilton * more issues written Signed-off-by: Bruce Hamilton * more updates Signed-off-by: Bruce Hamilton * issues near complete Signed-off-by: Bruce Hamilton * spelling and prittier fixes Signed-off-by: Bruce Hamilton * false positive spelling fix Signed-off-by: Bruce Hamilton * misc fixes Signed-off-by: Bruce Hamilton * removed duplidated section Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/analysis.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/issues.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * Update analyses/2026/flatcar/issues.md Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: Bruce Hamilton * format fixes Signed-off-by: Bruce Hamilton * Made Dave's suggestions in analysis.md Signed-off-by: Bruce Hamilton * Made Dave's sugggestions to issues.doc Signed-off-by: Bruce Hamilton * removed link placeholder Signed-off-by: Bruce Hamilton * moved ai agents isssue to a recommendation Signed-off-by: Bruce Hamilton * edits from Dave Signed-off-by: Bruce Hamilton * misc edits Signed-off-by: Bruce Hamilton * added implementation doc Signed-off-by: Bruce Hamilton * metdata fix Signed-off-by: Bruce Hamilton * minor tweaks Signed-off-by: Bruce Hamilton --------- Signed-off-by: Bruce Hamilton Signed-off-by: Bruce Hamilton Co-authored-by: Bruce Hamilton Co-authored-by: Patrice Chalin Co-authored-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com> Signed-off-by: BruceHamilton --- analyses/2026/flatcar/analysis.md | 511 +++++++++++++++--------- analyses/2026/flatcar/implementation.md | 97 +++++ analyses/2026/flatcar/issues.md | 400 +++++++++++++++++++ 3 files changed, 817 insertions(+), 191 deletions(-) create mode 100644 analyses/2026/flatcar/implementation.md create mode 100644 analyses/2026/flatcar/issues.md diff --git a/analyses/2026/flatcar/analysis.md b/analyses/2026/flatcar/analysis.md index a3a3120e..2bda88ac 100644 --- a/analyses/2026/flatcar/analysis.md +++ b/analyses/2026/flatcar/analysis.md @@ -2,12 +2,11 @@ title: Flatcar Documentation Analysis tags: [Flatcar] created: 2026-02-26 -modified: 2026-04-04 +modified: 2026-05-05 author: Bruce Hamilton (@iRaindrop) --- - - + ## Introduction @@ -26,10 +25,11 @@ efforts. This document was written to analyze the current state of Flatcar documentation. It aims to provide project leaders with an informed understanding of potential -problems in current project documentation. A second [implementation] document -outlines an actionable plan for improvement. A third document is an [issues -list] of issues to be added to the project documentation repository. These -issues can be taken up by contributors to improve the documentation. +problems in current project documentation. A second implementation document, +[Implementation](implementation.md), outlines an actionable plan for +improvement. A third document, [Issues](issues.md) is an issues list of issues +to be added to the project documentation repository. These issues can be taken +up by contributors to improve the documentation. This document: @@ -89,7 +89,7 @@ into a series of issues and entered as GitHub project-doc-website/issues. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation][] plan and [issues list][]. +read the **issues list**. Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -119,46 +119,49 @@ to legal requirements such as copyright and licensing issues. Flatcar is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. -| Criterion | [Rating (1-5)] | -| -------------------------- | -------------- | -| Information architecture | 3 | -| New user content | 3 | -| Content maintainability | 3 | -| Content creation processes | 4 | -| Inclusive language | 4 | +| Criterion | Rating (1-5) | +| -------------------------------- | --------------------- | +| Information architecture | 2 - Needs improvement | +| New user content | 2 - Needs improvement | +| Content maintainability | 2 - Needs improvement | +| Content creation processes meets | 2 - Needs improvement | +| Inclusive language | 3 - Meets standards | ### Comments The following sections contain brief assessments of each element of the project documentation. -The current Flatcar documentation table of contents defines the needed areas of -knowledge to install and provision Flatcar, but it does not readily show the -different paths for new users depending on their environment. +The current Flatcar documentation navigation structure, the _table of contents_ +(TOC), defines the areas of knowledge needed to install and provision Flatcar, +but it does not show the different paths for new users depending on their +environment and expectations. -The following comments regard the top-tier nodes in the current table of -contents: +The following comments are in regard to the top-tier nodes in the current table +of contents: - The top "Flatcar Container Linux" page contains references and links that - appear to an alternate version of the table of contents. While its good to - provide quick links, the user wonders whether the TOC node reference the same - content, or if the links in the overview are supplemental. -- The "Installing" node contains the large "Cloud Providers" node, that might be - better as top tier node, same with "Bare Metal". The team agrees that + appear to refer to an alternate version of the TOC. While its good to provide + quick links, the user wonders whether the TOC node references the same + content, or if the links in the overview (right side) are supplemental. On + mobile the left-side TOC is not available, so the links in this overview serve + as the navigation. + +- The "Installing" node contains the large "Cloud Providers" node, which might + be better as top tier node. The same with "Bare Metal". The team agrees that "Community supported platforms" could be merged into the "Cloud Providers" node. - The installation node should address all the new user paths, providing an installation roadmap or strategy. The "Learning Series" node, introduced into - the documentation recently, outlines the key steps for installing, - configuring, and managing Flatcar conveying the life cycle. It would be good - for the top nodes to have a similar flow. + the documentation recently, outlines the key steps for provisioning, + configuring, and managing Flatcar throughout the life cycle. - The "Provisioning Tools" title is descriptive, but its unclear how other areas of the docs relate to this section. - The "Nebraska" node is about updates, but a top node should convey the functionality rather than a product name. -- The "Setup and Operations" node casts too much of a wide net in its title. How - does "setup" differ from installation? The node contains several important - content areas that should be more discoverable, for instance: +- The "Setup and Operations" node casts too wide a net in its heading. How does + "setup" differ from installation? The node contains several important content + areas that should be more discoverable. For instance: - "Managing Clusters" might be better at a higher level because it's an initial evaluation in deploying Flatcar. - The Storage and Security nodes are typically at a higher level. @@ -171,48 +174,45 @@ contents: - The "Migrating from CoreOS" node might be better placed earlier or within an Installation node, as it is an installation scenario. - The "Reference" node contains expected look-up information such as "Constants - and IDs" and "Supply chain security mechanisms" but the following sections - could have better placement: + and IDs" and "Supply chain security mechanisms" but these sections could be + better placed: - "Integrations" could be incorporated into the Cloud Providers documentation. - "Developer Guides" contains conceptual content typically not found in a - Reference section, so "Developer Guides" or something more descriptive like - "Flatcar Development Guides" should be a top-tier node. + Reference section and would be better as a top-tier node. - The "How to Contribute" node is well-placed and has the expected content. The documentation also includes an FAQ, accessible from the top banner of the -home page. This FAQ has some content that would be prudent to verify that it's -also in the docs, such as historical context and how images are updated. -Conversely, there should be a few top-of-mind installation and support FAQ items -derived from the docs. +home page. This FAQ has some content that could also be in the docs, such as +historical context and how images are updated. Conversely, there should be a few +top-of-mind installation and support FAQ items derived from the docs. -Code blocks are different from other documentation sets as they are not +Code blocks are different from those in other documentation sets as they are not bordered, don't have a different fill background, don't have a copy button, and -the language is not indicated. - -New users might not be sure of the context for a given block of code. Is the -Linux prompt in a VM, in a client computer, or in a CLI session with a cloud -provider? Normally this can be deduced by the narrative, such as starting a -procedure with "In the VM window, use the following command to ..." or similar -guidance. - -In pages with code examples the narrative follows a casual and conversational -flow, introducing the steps such as "First do this", show a block of code, -followed by "Now do this", followed by the next block of code. While at first -this tone may seem refreshing from sterile nature of technical documentation, it -inhibits learning because it inhibits scanning and the ability to reference the -exact steps. It's easier to go back a numbered step in a procedure that to read -the narrative again to find that step. - -Essentially, the pertinent areas of knowledge to install and run Flatcar have -been identified and documented. They just need to be better organized. The next -step is to structure the documentation so that it meets these objectives: +the language is not indicated. There is already a GitHub issue on this. + +In several topics, new users might not be sure of the context for a given block +of code. Is the Linux prompt on a VM, in a client computer, or in a CLI session +with a cloud provider? Normally this can be reinforced by the narrative, such as +starting a procedure with "In the VM window, use the following command to ..." +or similar guidance. + +In pages with code examples the narrative follows a conversational flow, +introducing the steps such as "First do this", show a block of code, followed by +"Now do this", followed by the next block of code. While at first this tone may +seem refreshing from sterile nature of technical documentation, it inhibits +learning because it inhibits scanning and the ability to reference the exact +steps. It's easier to go back a numbered step in a procedure that to read the +narrative again to find that step. + +The pertinent areas of knowledge to install and run Flatcar have been identified +and documented. They just need to be better organized. The next task is to +structure the documentation so that it meets these objectives: - The node and topic titles provide expected guidance, such as "Getting Started", with nodes and sections organized for precise purposes, rather than headings that serve as broad categories such as "Setup and Operations". - The structure provides the expected flow and orientation so that users can - identify a pathway for learning about and deploying Flatcar efficiently and - optimally. + identify a pathway for learning about and deploying Flatcar efficiently. - The structure provides effective navigation and identification of the tools and technologies so that users can identify the ones they need to learn about and use. @@ -225,40 +225,38 @@ documentation. We evaluate on the following: ##### Is there high-level conceptual or About content? The current content is comprehensive on the key concepts needed for -understanding the processes and technologies involved. It's just a matter of -organizing discussion of the concepts to map to the user the path for installing -and configuring Flatcar. +understanding the processes and technologies involved. Now the objective is to +organize the concepts to map to the user the path for provisioning and +configuring Flatcar. - **Is the documentation feature complete?** - Yes, given that Flatcar is essentially an operating system and new features - and capabilities would be readily documented. Those features and areas need to - be continuously updated. + There are GitHub issues to document how to use Flatcar with particular + providers and tools. - **Are there step-by-step instructions (tasks, tutorials) documented for features?** Procedures, mainly invoking bash commands, are introduced informally and do not follow the typical style of numbered steps that read "Use the following - command to ..." verbiage. It would be easy to rewrite for meet that - conformity. + command to ..." verbiage that would clarify the context. - **Are there any key features which are documented but missing task documentation?** - Not so much regarding features, but there are tasks in using provisioning - tools where step-by-step guidance would be appreciated. + Yes, there are such features identified in GitHub issues. - **Are tasks clearly named according to user goals providing a happy path for users to get their tasks accomplished?** - Not currently. The content areas are established and just need to be - coordinated into a "Flatcar installation roadmap" for most user paths. + Not currently. The content areas are established but should be coordinated + into a "Flatcar provisioning roadmap" for most user paths. - **If the documentation does not suffice, is there a clear escalation path for users needing more help? (FAQ)** - The current FAQ does not provide this information. + The FAQ does not currently provide that guidance. Flatcar users of the GitHub + Flatcar repository can find help and community support in the README file. - **If the product exposes an API, is there a complete reference?** @@ -273,40 +271,42 @@ specifically for them. We evaluate on the following: - **Is “getting started” or similar clearly labeled?** -The "Learning Series" is a well-documented getting started guide. There is a -Heading 3 heading "Getting started" in the overview. + The "Learning Series" is a well-documented getting started guide. There is a + Heading 3 heading "Getting started" in the overview. - **Is installation documented step-by-step?** -Procedures are not formal step-by-steps, but rather sufficient descriptions of -the purpose and result of running the provided code example. + Procedures are not formal step-by-steps, but rather sufficient descriptions of + the purpose and result of running the provided code example. -Even if the new user does not know anything about the technologies, the guidance -still works but would be helped greatly with numbered steps. + Even if the new user does not know anything about the technologies, the + guidance still works but would be helped greatly with numbered steps. - **If needed, are multiple OSes documented?** -Users are typically running a Linux machine, or a Virtual Machine running on -Windows or macOS. It would be beneficial to acquaint the user with any specific -client guidance, particularly when installing tools and images. For example, -brew may not install all components one gets from directly installing binaries. + Users are typically running a Linux machine, or a Virtual Machine running on + Windows or macOS. It would be beneficial to acquaint the user with any + specific client guidance, particularly when installing tools and images. For + example, brew may not install all components one gets from directly installing + binaries. - **Do users know where to go after reading the getting started guide?** -Intuitively perhaps, as the Learning Services provides sufficient content to get -Flatcar instances running. It would be good to have listings of next steps for -the various deployment scenarios. + The Learning Series section provides sufficient content to get Flatcar + instances running. It would be good to have listings of next steps for the + various deployment scenarios. - **Is your new user content clearly signposted on your site’s homepage or at the top of your information architecture?** -Other than being a top level node in the table of contents, no. + Other than being a top level node in the TOC, no. - **Is there sample code or other example content that can easily be copy-pasted?** -Yes, most pages have code samples, but currently the UI does not show code -example blocks with copy buttons. The code is simply in a different font. + Yes, most pages have code samples, but currently the UI does not show code + example blocks with copy buttons. The code is simply in a different font. + There is a GitHub issue to fix this. ##### Content maintainability & site mechanics @@ -317,12 +317,12 @@ We evaluate on the following: - **Is your documentation searchable?** -Yes, the home page has a search bar where any results populate a dropdown for -selection. + Yes, the home page has a search bar where any results populate a dropdown for + selection. - **Are you planning for localization/internationalization?** -There are currently no plans for localization. + There are currently no plans for localization. - **Do you have a clearly documented method for versioning your content?** @@ -338,21 +338,23 @@ We evaluate on the following: - **Is there a clearly documented (ongoing) contribution process for documentation?** -Yes. There is a 'How to contribute' node with guidance for using the GitHub -repository, formatting, and style. + Yes. There is a 'How to contribute' section with guidance for using the GitHub + repository, formatting, and style. - **Does your code release process account for documentation creation & updates?** -The team regularly updates content as the project is incubating. + Not yet a formal process, but the team regularly updates content. - **Who reviews and approves documentation pull requests?** -Maintainers delegate doc approval to experienced code contributors. + Maintainers delegate doc approval to experienced code contributors. - **Does the website have a clear owner/maintainer?** -Yes. + Yes, the GitHub repository has a + [Maintainers](https://github.com/flatcar/Flatcar/blob/main/MAINTAINERS.md) + document. ##### Inclusive language @@ -369,50 +371,49 @@ those only "abort" would necessitate a fix on eight occurrences. - **Does the project use language like "simple", "easy", etc.?** -Yes, there are about 53 hits of "easy" to replace. The word "simple" is used, -but the context is a simpler piece of code or process rather than a task being -simple. + Yes, there are about 53 hits of "easy" to replace. The word "simple" is used, + but the context is a simpler piece of code or process rather than a task being + simple. ### Recommendations -The Flatcar documentation is naturally evolving into comprehensive and -understandable guidance. Technical savvy readers are well suited to gather the -information they need. New users can still find their path, but they need more -context of the technologies and tools involved, why they're needed, and the -environments they're used in. +The Flatcar documentation is evolving into comprehensive and understandable +guidance. Technical savvy readers are well suited to gather the information they +need. New users can still find their path, but they need more context of the +technologies and tools involved, why they're needed, and the environments +they're used in. #### Information architecture -The high-level recommendations follow a three tier approach to Flatcar -documentation. The first tier (node) should be a Getting Started, followed by -several nodes devoted to operations that span several categories organized by -functionality, and the last tier or group will be related content such as the -Reference and Contributor Documentation. These recommendations are designed to -be malleable. +At a high level, we recommend organizing the Flatcar documentation into three +segments: + +- The first segment is a Getting Started guide. +- The second segment comprises several chapters or guides devoted to operations + that span several categories organized by functionality. +- The last segment contains supporting content such as the Reference and + Contributor Documentation. + +These recommendations are intended to be malleable; as always, the documentation +should serve the needs of the project, and the maintainers and contributors are +the best arbiters of what changes are appropriate to the project. - Create a Getting Started node with the following sections: - - Create an "Installation roadmap" page for users that enables them to - determine how they want to deploy containers with Flatcar. The starting - points for the discussion are whether the user comes from an on-prem or - cloud environment and many users will use both. This purpose of this page is - to provide users with a procedure for installation. - - Prerequisites regarding client operating systems including running VMs from - macOS and Windows. - - Prerequisites for the Quickstart. - - Any guidance on installing binaries directly or using programs like brew. - - Create a "Configuration and Provisioning" page that covers the YAML coding, - using Butane and employing other configurations. Link this page from the - "Installation roadmap". - - Create a "Deployment" page, covering scenarios for Kubernetes, clustering - and distributed systems. Cover on-prem and cloud. Link from the - "Installation roadmap". - -- For the middle functional nodes of the table of contents, devise the - categories of tools, technologies, products, and terms pertinent areas for - Flatcar. While these could be under a broader umbrella, such as Operations, - nine or headings in the navigation bar is not too much, and speeds up - discovery. Given a list of about 60 tools, technologies, etc., Copilot devised - the following categories: + - Create an "Roadmap" page for users that enables them to determine how they + want to deploy containers with Flatcar. The starting points for the + discussion are whether the user comes from an on-prem or cloud environment + and many users will use both. This purpose of this page is to provide users + with a procedure for installation. + - Prerequisites regarding client operating systems including running VMs + from macOS and Windows. + - Prerequisites for the Quickstart. + - Any guidance on installing binaries directly or using programs like brew. + +- For the middle functional nodes of the TOC, devise the categories of tools, + technologies, products, and terms pertinent areas for Flatcar. While these + could be under a broader umbrella, such as Operations, nine or headings in the + navigation bar is not too much, and speeds up discovery. Given a list of about + 60 tools, technologies, etc., Copilot devised the following categories: - Virtualization and Hypervisors - Cloud and Hosting Platforms - Bare Metal Booting and Installation @@ -422,26 +423,38 @@ be malleable. - Provisioning Configuration and Automation - Container and Orchestration - Work with the team to devise the categories and keep to it! - - Update the top Overview page to accommodate an introduction to the overall documentation to guide users into determining their happy path to accomplish their Flatcar objectives. -- Add at least one architectural diagram to top overviews that depict a - container, a container with Flatcar, and perhaps nodes and clusters. +- Add at least one architectural diagram that depicts a Flatcar container, + clusters, capabilities or other ideas for diagrams. + +- Sections like "Virtual Machines" and "Cloud Providers" have subtopics where + common tasks and concepts could be discussed in the overview, leaving the + subtopics with simpler procedures and minimal repetition. + +- CNCF suggests that all CNCF doc maintainers run check with this tool that + measures how well AI agents can read, navigate, and use a documentation site + using this tool: https://afdocs.dev/ + + One of the main ways to improve AI capabilities is by creating an index file + to reside at the root of the repository that contains links to key sections, + essentially a high level index. AI agents look for this file to navigate the + site. + + Visit https://llmstxt.org to learn about the index file. Consult with the + Flatcar team to determine key sections and check in the file. #### Content maintainability and site mechanics -- Edit each procedural topic, page with code examples, into a semiformal How-to - topic with numbered steps. While the conversational flow is inviting, it - inhibits scanning, predictability, and troubleshooting when needed to - reference a particular code block. No need to go granular, but at least have - then main steps numbered. +- Edit each procedural topic into a formal How-to topic with numbered steps. + While the conversational flow is inviting, it inhibits scanning, + predictability, and troubleshooting when needed to reference a particular code + block. No need to go granular, but at least have then main steps numbered. -- For most, but not every, code block make sure the user has the right context - of where the code is being run. Preceded each step with clauses such as the - following: +- For all code blocks, clearly indicate where the code is to be run. Preceded + each step with clauses such as the following: - On your local machine, use the following command to... - Inside the Flatcar instance, ... - SSH into the instance and then run ... @@ -452,56 +465,120 @@ be malleable. #### Inclusive language and tone - Consider replacing the eight occurrences of "abort". -- Remove occurrences of "easy" where it's implied that a task is easy. +- Remove occurrences of "easy" that could be construed as ableist or + condescending; that is, where they imply that a task should be trivial for the + user. ## Contributor documentation Flatcar is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. -| Criterion | [Rating (1-5)] | -| ----------------------------------------- | -------------- | -| Communication methods documented | [rating (1-5)] | -| Beginner friendly issue backlog | [rating (1-5)] | -| “New contributor” getting started content | [rating (1-5)] | -| Project governance documentation | [rating (1-5)] | +| Criterion | Rating (1-5) | +| ----------------------------------------- | --------------------- | +| Communication methods documented | 3 - meets standards | +| Beginner friendly issue backlog | 2 - needs improvement | +| “New contributor” getting started content | 2 - needs improvement | +| Project governance documentation | 4 - meets standards | ### Comments -> AUTHOR NOTE: make any overall comments about the Contributor Documentation -> here. - The following sections contain brief assessments of each element of the Contributor Documentation rubric. -> AUTHOR NOTE: For each heading below, discuss how well the in-scope items meet -> these criteria. Keep in mind that much of the contributor documentation might -> be contained in the documentation repository. (Criteria are copied from -> criteria.md) - #### Communication methods documented One of the easiest ways to attract new contributors is making sure they know how to reach you. +The Flatcar team casts a wide net for gathering feedback and contributions. +Their effort spans documentation, code, community platforms, Flatcar apps, +blogs, presentations, workshops, bug fixing events, developer challenges, and +web design workshops. + +The team provides links to aggregated GitHub issues for newcomers and advanced +users to work on. + +The team encourages users to create a Flatcar app, a reference implementation +showing how to run a specific service on Flatcar, as a compelling way learn +Flatcar and help the user community. + We evaluate on the following: -- Is there a Slack/Discord/Discourse/etc. community and is it prominently linked - from your website? -- Is there a direct link to your GitHub organization/repository? -- Are weekly/monthly project meetings documented? Is it clear how someone can - join those meetings? -- Are mailing lists documented? +- **Is there a Slack or similar resource and is it linked from your website?** + + Yes, however these chat and social media links are on the README file of the + Flatcar GitHub repository: https://github.com/flatcar/Flatcar. + + Chats: + - Matrix: https://app.element.io/#/room/#flatcar:matrix.org + - Slack: https://kubernetes.slack.com/archives/C03GQ8B5XNJ + + Social media: + - Mastodon: https://hachyderm.io/@flatcar + - X: https://x.com/flatcar + +- **Is there a direct link to your GitHub organization/repository?** + + Not from the `Flatcar.org` website, but listed in the README file of the + Flatcar GitHub repository. + +- **Are project meetings documented? Is it clear how someone can join those + meetings?** + + Yes. Office Hours are promoted and scheduled monthly. + - When: 2nd Wednesday of every month at 2:30pm UTC + - Where: https://meet.flatcar.org/OfficeHours + - Agenda: + https://github.com/flatcar/Flatcar/discussions/categories/flatcar-office-hours + + There are also Developer Syncs. + - When: 4th Wednesday of every month at 2:30pm UTC + - Where: https://meet.flatcar.org/OfficeHours + - Agenda: Developer Sync Discussions + +- **Are mailing lists documented?** + + Yes, in the README of the Flatcar GitHub repository: + - Flatcar Users: https://groups.google.com/g/flatcar-linux-user + - Flatcar Developers: https://groups.google.com/g/flatcar-linux-dev #### Beginner-friendly issue backlog We evaluate on the following: -- Are docs issues well-triaged? -- Is there a clearly marked way for new contributors to make code or - documentation contributions (i.e. a “good first issue” label)? -- Are issues well-documented (i.e., more than just a title)? -- Are issues maintained for staleness? +- **Are docs issues well-triaged?** + + Yes, this URL shows doc issues being tracked in GitHub: + https://github.com/flatcar/Flatcar/issues?q=state%3Aopen%20label%3Akind%2Fdocs + +- **Is it easy for new contributors to make contributions (i.e. a “good first + issue” label)?** + + The Contributing Guide, + https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md, linked from the + repository README file welcomes new contributors. The "Finding issues" + subsection has these helpful links: + - **Good first issue** - Displays pages of coding and documentation tasks + marked `good first issue` in DevOps. These issues have guidance to help + newcomers with the task. + - **Help wanted issues** - suitable for non-core maintainers. + + Each documentation page has these two links at the bottom: + - **Edit this page** - link opens the page for editing in GitHub if a fork + exists, otherwise shows the option to fork the repository. + - **File documentation issue** - link opens a new GitHub issue. + +- **Are issues well-documented (i.e., more than just a title)?** + + Yes, most issues are thoroughly described with detailed proposed solutions. + See the + [Finding Issues](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md#finding-issues) + section in the Contributing document in the repository. + +- **Are issues maintained for staleness?** + + Yes. Confident the team has freshness as a continuing objective. #### New contributor getting started content @@ -511,9 +588,35 @@ in easily? We evaluate on the following: -- Do you have a community repository or section on your website? -- Is there a document specifically for new contributors/your first contribution? -- Do new users know where to get help? +- **Do you have a community repository or section on your website?** + + Not currently. + +- **Is there a document specifically for new contributors/your first + contribution?** + + Yes. There is a + [How to contribute](https://www.flatcar.org/docs/latest/contribute/) section + at the bottom of the navigation tree, and contains guidance on making pull + requests in the Flatcar GitHub repository. Also included is guidance style and + formatting with links to style guides. + + In addition to the website, there is guidance for contributors on the README + page of the Flatcar GitHub repository, in + [Participate and Contribute](https://github.com/flatcar/Flatcar/tree/main?tab=readme-ov-file#participate-and-contribute) + section. + +- **Do new users know where to get help?** + + That would be Flatcar's Slack and Matrix chat channels. + - Matrix (preferred): `#flatcar:matrix.org` + - Slack: `#flatcar` (Kubernetes Slack) + - GitHub Discussions: `flatcar/Flatcar/discussions` + - Mailing List (Users): `#flatcar-Linux-user` + + These and other resources are listed in the + [Onboarding](https://github.com/flatcar/Flatcar/blob/main/ONBOARDING.md) + guide. #### Project governance documentation @@ -521,24 +624,55 @@ One of the CNCF’s core project values is open governance. We evaluate on the following: -- Is project governance clearly documented? +- **Is project governance clearly documented?** + + Yes, the + [Flatcar Project Governance](https://github.com/flatcar/Flatcar/blob/main/governance.md) + document projects values of openness, fairness, community and participation. + For an incubating project, Flatcar is laying the foundation for vigorous + community participation. ### Recommendations -> AUTHOR NOTE: Write general recommendations based on the comments from the -> previous section. +The Flatcar team has a robust Community outreach effort and seems to have good +participation. All the criteria have been met for an incubating project. As the +project evolves, the following recommendations should be considered: + +- Put a link to community participation portal content on the main Flatcar.org + website. +- Include direct links to documentation issues in the + [Finding Issues](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md#finding-issueslistings) + section of the Contributing guide. #### Communication methods documented +Information is well documented and discoverable from the repository's +[Contributing](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md) and +[Onboarding](https://github.com/flatcar/Flatcar/blob/main/ONBOARDING.md) guides +linked to from the README file. + #### Beginner-friendly issue backlog +Suggest adding a link to documentation issues in the Contributing guide's +[Finding Issues](https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md#finding-issues) +section. + #### New contributor getting started content +The team plans to expand the guidance in +[How to contribute](https://www.flatcar.org/docs/latest/contribute/) section on +the website to parallel the guidance in the repository's Contributing guide as +appropriate. + #### Project governance documentation +The +[Flatcar Project Governance](https://github.com/flatcar/Flatcar/blob/main/governance.md) +document is comprehensive, and appears well-maintained and up-to-date. + ## Website and infrastructure -> AUTHOR NOTE: Pick the CNCF maturity level of the project: +> The analysis for this section is not complete. Flatcar is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -701,8 +835,8 @@ We evaluate on the following: #### Other -- Is your website accessible via HTTPS? -- Does HTTP access, if any, redirect to HTTPS? +- Is your website accessible via HTTPS? Yes +- Does HTTP access, if any, redirect to HTTPS? Yes ### Recommendations @@ -725,12 +859,6 @@ We evaluate on the following: #### Other -#### Companion documents - -Separate implementation and issues-list documents are not yet available for this -analysis. Use this page's recommendations and notes as the current source for -follow-up work. - #### References and notes ##### Rating values @@ -743,10 +871,11 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: /docs/analysis/criteria.md -[implementation]: #companion-documents -[issues list]: #companion-documents + diff --git a/analyses/2026/flatcar/implementation.md b/analyses/2026/flatcar/implementation.md new file mode 100644 index 00000000..214151f5 --- /dev/null +++ b/analyses/2026/flatcar/implementation.md @@ -0,0 +1,97 @@ +--- +title: Implementing Flatcar Doc Improvements +created: 2026-05-05 +modified: 2026-05-05 +author: Bruce Hamilton (@iRaindrop) +--- + + + +## Introduction + +This document provides actionable suggestions for improving the Flatcar +technical documentation. + +For an analysis and general discussion of recommendations on Flatcar technical +documentation, see [analysis.md](analysis.md). See [issues.md](issues.md) for +details on addressing and implementing suggested changes. + +### Recommendations, requirements, and best practices + +This analysis measures documentation against CNCF project maturity standards and +suggests possible improvements. In most cases there is more than one way to do +things. Few recommendations here are meant to be prescriptive. Rather, +recommendations are based on documentation best practices as understood by the +reviewers. The recommended implementations represent the reviewers' experience +with how to apply those best practices. In other words, borrowing terminology +from the lexicon of [RFC Keywords](https://www.rfc-editor.org/rfc/rfc2119), the +changes described here should be understood as "recommended" or "should" at the +strongest, and "optional" or "may" in many cases. Any "must" or "required" +actions are clearly denoted as such, and pertain to legal requirements such as +copyright and licensing issues. + +The top-level documentation recommendations for this project are: + +## Sign off and create the documentation restructure + +The Flatcar team initially approved the documentation restructure provided by +the analysis in a spreadsheet. See the team for that link. + +For better housekeeping, the team prefers to restructure the repository (or +create a new branch) instead of using a mapping file such as a Nav.yaml file. + +The spreadsheet contains names for the destination directories as well as topic +titles. To aid in restructuring, a bash script of `git mv` commands could move +files and create directories accordingly. + +As files are being moved into or created in their new locations is a good time +to implement suggestions based upon the following issues. + +### Create or update overviews for top sections + +Each overview page for a section needs to assure the reader they're in the right +place and provide brief and concise guidance about its subsections. If the +subsections are complex and technical, ascertain common concepts in the overview +and if practical consolidate common procedures into one topic. As an example, +see +[Update concepts in Virtual Machines Overview](issues.md#consolidate-concepts-in-virtual-machines-overview). + +### Add step numbering and context to procedures + +The current Flatcar topics with code blocks have a conversational and procedural +flow, but there is no numbering to the procedures and their steps. Not only will +adding numbering add value by being able to refer to specific steps, but will +differentiate conceptual content from procedural content. + +Also, where appropriate, introduce a code block with verbiage of where there +code is being run. See +[Add step numbering and context to procedures](issues.md#add-step-numbering-and-context-to-procedures). + +### Add Content Type to metadata + +For content health and maintenance, effective metadata is key. As topics are +being updated or moved, or as global task using a script, adding the content +type would be great for consistency and reporting. For more information, see +[Add content type and make other updates to metadata](issues.md#add-content-type-and-make-other-updates-to-metadata). + +### Write a roadmap topic + +In the documentation restructure spreadsheet, there's a placeholder for the +Roadmap topic in the Getting Started section. This topic can be an effective and +popular topic in guiding users to ascertain what they need to know to create a +container hosting the Flatcar operating system. + +After the structure is in place would be a good time to create this topic. For +more information, see [Write a roadmap topic](issues.md#write-a-roadmap-topic). + +## Create architectural diagrams + +At a minimum, the top overview page should have an architectural diagram +depicting a Flatcar container, a Flatcar app, and its orchestration in the +cluster. + +Ideally each top section overview could have a diagram depicting that area of +provisioning and deployment. + +Store the images in Mermaid code for easier maintenance and updates. AI is an +effective tool to generate Mermaid code based on a prompt. diff --git a/analyses/2026/flatcar/issues.md b/analyses/2026/flatcar/issues.md new file mode 100644 index 00000000..504d174e --- /dev/null +++ b/analyses/2026/flatcar/issues.md @@ -0,0 +1,400 @@ +--- +title: Flatcar Issues +tags: [Flatcar] +created: 2026-04-24 +modified: 2026-04-30 +author: Bruce Hamilton (@iRaindrop) +--- + + + +The issues described in this document follow the recommendations for Flatcar in +the [analysis](analysis.md) document. Not all recommendations become issues. + +Teams are encouraged to create GitHub issues based on this document. + +As part of the CNCF analysis process, the analyst has added these issues to the +Flatcar documentation GitHub repository. + +## Sign-off and create the documentation restructure + +### Overview + +The recommended structure of this analysis agrees with the Flatcar team's own +restructuring proposal. Both arrive at a navigation structure similar with other +container and Kubernetes projects that follow a natural progression: learn → +provision → configure → deploy → other guides, and so on. + +Flatcar's processes differ from those of a typical application because they are +less about installation and more about provisioning a container by installing an +operating system image. As such, the user path throughout the documentation has +the goal of enabling an efficient first boot of the container with a set of +desired OS capabilities. + +The recommended structure is a table of contents (TOC) two nodes deep. While +deeper heading levels exist in the documentation, two levels are recommended for +the TOC to improve discoverability. + +The structure should have all the most important concepts and technologies in +the first and second tiers. Some of these nodes need to be broader categories to +group concepts and procedures. Contributors should arrive at a consensus on a +structure that features the important information without extensive +re-architecting of the structure. + +Here is the recommended TOC. + +| Level A | Level B | +| ---------------------------------- | ----------------------------- | +| Flatcar Container Linux | Top intro/overview | +| Getting Started | Overview | +| | Roadmap | +| | Quickstart | +| | Learning Series | +| | Minecraft Flatcar Apps | +| First Boot & Provisioning | Overview | +| | Butane Config Transpiler | +| | Ignition | +| | Infrastructure as Code | +| | Image Customization | +| | Virtual Machines | +| OS Configuration | Overview | +| | Systemd & Process Management | +| | Host Configuration | +| | Networking & Remote Access | +| | Storage & File Systems | +| System Extensions | Overview | +| | Ready to Use Extensions | +| Deployments | Overview | +| | Cloud Providers | +| | Virtualization Options | +| | Bare Metal | +| Orchestration & Container Runtimes | Overview | +| | Managing Clusters | +| | Kubernetes | +| | Container Runtimes | +| Nebraska Update Manager & Releases | Overview | +| | Nebraska Update Manager | +| | Managing Releases | +| Security | Overview | +| | Hardening & Compliance | +| | Encryption & Storage | +| | Certificates & Authentication | +| | Supply Chain | +| | Integrations | +| | Constants & IDs | +| Diagnostics & Fixing Issues | Overview | +| | Debugging Guide | +| CoreOS Migration | Overview | +| | Updating from CoreOS | +| Developer Guides | Overview | +| | SDK | +| How to Contribute | Overview | +| | Docs Style & Formatting | + +Audience: All + +Type: All + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Related material in the current doc: + +https://www.flatcar.org/docs/latest + +Refers to the entire left-hand navigation table of contents. + +The recommended detailed and summary structures are available in the "Flatcar +Analysis" Google sheet made available to the team. + +The detailed sheet has a row for each of the current files in the repository. +The files under node level 2 are not listed in the summary tab of spreadsheet +(but are on the detailed tab), because the recommended structure does not +prescriptively map the hierarchical positions of these files on the website. We +assume that lower-level files will move around the structure, including up and +down the hierarchy. + +At this writing, there is initial approval of the recommended structure and +after a final approval from the team the structure would be ready to +incorporate. The team prefers restructuring the repository instead of using +mapping file such as Nav.yaml. + +The spreadsheet has `old path` and `new path` columns. The team needs to +determine the names of the directories that correspond to the names of the +nodes, e.g. the "First Boot & Provisioning" could have 'provisioning' as the +name of the directory (folder). + +## Write a Roadmap topic + +### Overview + +This topic is needed to guide users along a role-determined learning path and +workflow to set up a Flatcar container based on their operational needs. + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +The roadmap should be a narrative starting with the list of paths and each path +should have a checklist of prerequisites and high-level steps that cover +provisioning tools and deployment. + +The user paths include: + +- Novice user to learn and test +- Cloud only user to work with a provider +- On-premises bare metal user +- Hybrid users + +Each path should incorporate lists of needed provisioning tools such as VMs with +reference to container runtimes and orchestration. Include any pertinent notes +on configuration and deployment. + +## Create or Update Overviews for Top Nodes + +### Overview + +Update or create the overview pages for each of the top two tiers of nodes. The +overview should be a brief tour of the node's content. Also update the very top +introduction page. + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Create or update Overview.md in each top node in the Flatcar documentation. See +[Consolidate Concepts in Virtual Machines Overview](#consolidate-concepts-in-virtual-machines-overview) +issue for an example. + +## Create Architectural Diagrams + +### Overview + +An architectural flow diagram will optimize the documentation with a visual +representation of the technology. At least one is needed for the top page and +others where applicable and helpful. + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +The writer should propose a diagram to illustrate the provisioning process flow. + +## Add Step Numbering and Context to Procedures + +### Overview + +Add numbering to introduce code blocks with context of where the code is run. + +Currently few of the procedural how-to topics have numbered steps. Users expect +numbering. Use a bullet rather than a number for a one-step procedure. + +New users may be confused as to where a particular code block is run. Is it on +the client machine, in a VM, in a CLI? Introduce code blocks with verbiage such +as "In the VM window in a container, run the following command...". This can be +omitted for commands that are clearly a continuation of a command-line session +in the same series of steps. + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +This implementation requires a global approach of working with an inventory of +all topics with code blocks to make these changes. + +## Add Content Type and make other updates to metadata + +### Overview + +The current metadata at the top of Flatcar Markdown files has values for +`title`, `link title`, and `weight`. + +Adding a `content-type` or `type` value to the metadata will help with managing +the repository and achieving consistency in the content. For example, getting +all the files whose `content-type` equals `how-to` would aid in the adding +numbering to procedures task. + +Apparently the `weight` value is no longer of benefit for the team and there's +discussion of removing it. + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +This requires a global approach to update each Markdown file. Here's a short +list of common content types that apply to most files: + +- tutorial +- how-to +- explanation +- reference + +## Consolidate Concepts in Virtual Machines Overview + +### Overview + +The Virtual Machines topic, https://www.flatcar.org/docs/latest/installing/vms/, +has a minimal overview with several complex subtopics. Each of the subtopics in +this topic contain a similar workflow that differ only by platform. + +Here are the common steps determined by Copilot without the details. + +1. Select a Release Channel +1. Download the Appropriate VM Image +1. Verify the Image (GPG) +1. Prepare an Ignition (or Butane) Configuration +1. Create or Define the Virtual Machine +1. Boot the VM for the First Time +1. Access the Instance (SSH) +1. Optional: Automate Deployment (Terraform, CLI tools) + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Document key concepts that are common to each subtopic in the topic overview. +Consider consolidating common procedures into one procedure that works for all +the subtopics. + +## Consolidate Concepts in the Cloud Providers Overview + +### Overview + +The Cloud Providers node, https://www.flatcar.org/docs/latest/installing/cloud/, +has a minimal overview with several complex subtopics. Each of the subtopics in +this node contain a very similar workflow that differ only by platform. To +determine the commonalities among the subtopics, you can use AI. Here is a +suggested AI prompt: "Review the subtopics in this link (link) and provide a +list of common tasks that each of the Cloud Providers topics have in common. The +aim is to make the overview page contain most of the concepts so that each of +the subtopics can be simpler How-to topics." + +Here are the common steps determined by Copilot without the details. Run the +prompt for full context. + +1. Choose a Flatcar Release Channel +2. Obtain or Reference the Flatcar Image +3. Prepare an Ignition (or Butane) Configuration +4. Create or Launch the Instance +5. Pass Ignition to the Instance +6. Boot and Verify the Instance +7. Access the Instance (SSH) +8. Optional: Automate Deployment + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Document key concepts that are common to each subtopic in the topic overview. +Consider consolidating common procedures into one procedure that works for all +the subtopics. + +## Consolidate Concepts in the Bare Metal Overview + +### Overview + +The Cloud Providers node, +https://www.flatcar.org/docs/latest/installing/bare-metal/, has a minimal +overview with several complex subtopics. Each of the subtopics in this node +contain a very similar workflow that differ only by platform. + +To determine the commonalities among the subtopics, you can use AI. Here is a +suggested AI prompt: "Review the subtopics in this link (link) and provide a +list of common tasks that each of the Bare Metal topics have in common. The aim +is to make the overview page contain most of the concepts so that each of the +subtopics can be simpler How-to topics." + +Here are the common steps determined by Copilot without the details. Run the +prompt for full context. + +1. Obtain or Prepare Flatcar Artifacts +2. Understand the Boot Flow +3. Provide an Ignition (or Butane) Configuration +4. Configure the Bootloader or Boot Environment +5. Perform the Installation (Optional but Common) +6. Hardware‑Specific Considerations +7. Validate the System After Boot + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Document key concepts that are common to each subtopic in the topic overview. +Consider consolidating common procedures into one procedure that works for all +the subtopics. + +## Consolidate Concepts in the Community Supported Platforms overview + +### Overview + +Note: This node will be renamed to "Virtualization Options". + +The Community Supported Platforms node, +https://www.flatcar.org/docs/latest/installing/community-platforms/, has a +minimal overview with several complex subtopics. Each of the subtopics in this +node contain a very similar workflow that differ only by platform. To determine +the commonalities among the subtopics, you can use AI. Here is a suggested AI +prompt: "Review the subtopics in this link (link) and provide a list of common +tasks that each of the Community Supported Platform topics have in common. The +aim is to make the overview page contain most of the concepts so that each of +the subtopics can be simpler How-to topics." + +Here are the common steps determined by Copilot without the details. Run the +prompt for full context. + +1. Choose the Correct Flatcar Image for the Platform +2. Provide an Ignition (or Butane) Configuration +3. Understand the Platform’s Boot Mechanism +4. Pass User Data / Metadata to the VM +5. Networking Basics +6. Validate Ignition and System State After First Boot +7. Optional: Customize or Replace the Disk Image + +### Context + +This issue tracks recommended changes resulting from an analysis of the Flatcar +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026/Flatcar`. + +### Possible Implementation + +Document key concepts that are common to each subtopic in the topic overview. +Consider consolidating common procedures into one procedure that works for all +the subtopics. From bd89571ff04e8da7d8d741fdc35dde36c403844b Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Fri, 15 May 2026 15:45:22 -0700 Subject: [PATCH 20/50] Flatcar analysis - additional updates (#353) * removed website analysis section Signed-off-by: Bruce Hamilton * ran prittier Signed-off-by: Bruce Hamilton --------- Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/flatcar/analysis.md | 231 ++---------------------------- 1 file changed, 9 insertions(+), 222 deletions(-) diff --git a/analyses/2026/flatcar/analysis.md b/analyses/2026/flatcar/analysis.md index 2bda88ac..4654f2c4 100644 --- a/analyses/2026/flatcar/analysis.md +++ b/analyses/2026/flatcar/analysis.md @@ -2,7 +2,7 @@ title: Flatcar Documentation Analysis tags: [Flatcar] created: 2026-02-26 -modified: 2026-05-05 +modified: 2026-05-11 author: Bruce Hamilton (@iRaindrop) --- @@ -12,9 +12,9 @@ author: Bruce Hamilton (@iRaindrop) This document is an analysis of the effectiveness and completeness of the [Flatcar](https://www.flatcar.org/docs/latest) open source software (OSS) -project's documentation and website. It is funded by the CNCF Foundation as part -of its overall effort to incubate, grow, and graduate open source cloud native -software projects. +project's documentation. It is funded by the CNCF Foundation as part of its +overall effort to incubate, grow, and graduate open source cloud native software +projects. According to CNCF best practices guidelines, effective documentation is a prerequisite for program graduation. The documentation analysis is the first @@ -33,15 +33,15 @@ up by contributors to improve the documentation. This document: -- Analyzes the current Flatcar technical documentation and website +- Analyzes the current Flatcar technical documentation - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment ### Scope of analysis -The documentation discussed here includes the entire contents of the website, -the technical documentation, and documentation for contributors and users on the -Flatcar GitHub repository. +The documentation discussed here includes the entire contents of the technical +documentation and documentation for contributors and users on the Flatcar GitHub +repository. The Flatcar website and documentation are written in Markdown and are compiled using the Hugo generator with the Flatcar theme and served from a GitHub @@ -69,8 +69,6 @@ concern: software, aimed at people who intend to use the project software - **Contributor documentation:** concerns documentation for new and existing contributors to the Flatcar OSS project -- **Website:** concerns the mechanics of publishing the documentation, and - includes branding, website structure, and maintainability Each section begins with summary ratings based on a rubric with appropriate criteria for the section, then proceeds to: @@ -97,10 +95,9 @@ to their area of concern: - [Project documentation](#project-documentation) - [Contributor documentation](#contributor-documentation) -- [Website and documentation infrastructure](#website-and-infrastructure) Examples of CNCF documentation that demonstrate the analysis criteria are linked -from the [criteria] specification. +from the [criteria](../../../docs/analysis/criteria.md) specification. #### Recommendations, requirements, and best practices @@ -669,213 +666,3 @@ appropriate. The [Flatcar Project Governance](https://github.com/flatcar/Flatcar/blob/main/governance.md) document is comprehensive, and appears well-maintained and up-to-date. - -## Website and infrastructure - -> The analysis for this section is not complete. - -Flatcar is an **incubating** project of CNCF. This means that the project should -be developing professional-quality documentation alongside the project code. - -| Criterion | [Rating (1-5)] | -| ------------------------------------------- | -------------- | -| Single-source for all files | [rating (1-5)] | -| Meets min website req. (for maturity level) | [rating (1-5)] | -| Usability, accessibility, and design | [rating (1-5)] | -| Branding and design | [rating (1-5)] | -| Case studies/social proof | [rating (1-5)] | -| SEO, Analytics, and site-local search | [rating (1-5)] | -| Maintenance planning | [rating (1-5)] | -| A11y plan & implementation | [rating (1-5)] | -| Mobile-first plan & implementation | [rating (1-5)] | -| HTTPS access & HTTP redirect | [rating (1-5)] | -| Google Analytics 4 for production only | [rating (1-5)] | -| Indexing allowed for production server only | [rating (1-5)] | -| Within site / local search | [rating (1-5)] | -| Account custodians are documented | [rating (1-5)] | - -### Comments - -> AUTHOR NOTE: make any overall comments about the Website and documentation -> infrastructure here. - -The following sections contain brief assessments of each element of the Website -and documentation infrastructure rubric. - -> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet -> these criteria. Keep in mind that much of the website infrastructure criteria -> depend on the tools (static site generator, website framework and hosting, -> analytics tools, etc.) and processes (project CI, release procedures, -> governance, etc.) used to produce the documentation. (Criteria are copied from -> criteria.md) - -#### Single-source requirement - -Source files for _all website pages_ should reside in a single repo. Among other -problems, keeping source files in two places: - -- confuses contributors -- requires you to keep two sources in sync -- increases the likelihood of errors -- makes it more complicated to generate the documentation from source files - -Ideally, all website files should be in the **website repo** itself. -Alternatively, files should be brought into the website repo via [git -submodules][git-submodules]. - -If a project chooses to keep source files in multiple repos, they need a clearly -documented strategy for managing mirrored files and new contributions. - -#### Minimal website requirements - -Listed here are the minimal website requirements for projects based on their -[maturity level][maturity-level], either incubating or graduated. (These are the -only two levels for which a tech docs analysis can be requested.) - - - -| Criterion | Incubating Requirement | Graduated Requirement | -| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | -| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | -| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | -| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | -| **Project doc**: hosting | Hosted directly | All Hosted directly | -| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | - - - -[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules -[maturity-level]: - https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations -[cncf-servicedesk]: https://servicedesk.cncf.io - -#### Usability, accessibility and devices - -Most CNCF websites are accessed from mobile and other non-desktop devices at -least 10-20% of the time. Planning for this early in your website's design will -be much less effort than retrofitting a desktop-first design. - -- Is the website usable from mobile? -- Are doc pages readable? -- Are all / most website features accessible from mobile -- such as the top-nav, - site search and in-page table of contents? -- Might a [mobile-first] design make sense for your project? - -[mobile-first]: - https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first - -Plan for suitable [accessibility][] measures for your website. For example: - -- Are color contrasts significant enough for color-impaired readers? -- Are most website features usable using a keyboard only? -- Does text-to-speech offer listeners a good experience? - -It is up to each project to set their own guidelines. - -[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility - -#### Branding and design - -CNCF seeks to support enterprise-ready open source software. A key aspect of -this is branding and marketing. - -We evaluate on the following: - -- Is there an easily recognizable brand for the project (logo + color scheme) - clearly identifiable? -- Is the brand used across the website consistently? -- The website’s typography clean and well-suited for reading? - -#### Case studies/social proof - -One of the best ways to advertise an open source project is to show other -organizations using it. - -We evaluate on the following: - -- Are there case studies available for the project and are they documented on - the website? -- Are there user testimonials available? -- Is there an active project blog? -- Are there community talks for the project and are they present on the website? -- Is there a logo wall of users/participating organizations? - -#### SEO, Analytics and site-local search - -SEO helps users find your project, and it's documentation, and analytics helps -you monitor site traffic and diagnose issues like page 404s. Intra-site search, -while optional, can offer your readers a site-focused search results. - -We evaluate on the following: - -- Analytics: - - Is analytics enabled for the production server? - - Is analytics disabled for all other deploys? - - If your project used Google Analytics, have you migrated to GA4? - - Can Page-not-found (404) reports easily be generated from your site - analytics? Provide a sample of the site's current top-10 404s. -- Is site indexing supported for the production server, while disabled for - website previews and builds for non-default branches? -- Is local intra-site search available from the website? -- Are the current custodian(s) of the following accounts clearly documented: - analytics, Google Search Console, site-search (such as Google CSE or Algolia) - -#### Maintenance planning - -Website maintenance is an important part of project success, especially when -project maintainers aren’t web developers. - -We evaluate on the following: - -- Is your website tooling well-supported by the community (i.e., Hugo with the - Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) -- Are you actively cultivating website maintainers from within the community? -- Are site build times reasonable? -- Do site maintainers have adequate permissions? - -#### Other - -- Is your website accessible via HTTPS? Yes -- Does HTTP access, if any, redirect to HTTPS? Yes - -### Recommendations - -> AUTHOR NOTE: Write general recommendations based on the comments from the -> previous section. - -#### Single-source requirement - -#### Minimal website requirements - -#### Usability, accessibility and devices - -#### Branding and design - -#### Case studies/social proof - -#### SEO, Analytics and site-local search - -#### Maintenance planning - -#### Other - -#### References and notes - -##### Rating values - -The numeric rating values used in this document are as follows - -1. Not present -2. Needs improvement -3. Meets standards -4. Meets or exceeds standards -5. Exemplary - - From 6f13c3ec3fead8a1a31a199bca13aa7838272aa0 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 19:17:27 -0700 Subject: [PATCH 21/50] created files Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 523 +++++++++++++++++++++++ analyses/2026/kubevirt/implementation.md | 52 +++ analyses/2026/kubevirt/issues-list.md | 55 +++ analyses/2026/kubevirt/issues.md | 64 +++ 4 files changed, 694 insertions(+) create mode 100644 analyses/2026/kubevirt/analysis.md create mode 100644 analyses/2026/kubevirt/implementation.md create mode 100644 analyses/2026/kubevirt/issues-list.md create mode 100644 analyses/2026/kubevirt/issues.md diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md new file mode 100644 index 00000000..514afd0d --- /dev/null +++ b/analyses/2026/kubevirt/analysis.md @@ -0,0 +1,523 @@ +--- +title: KubeVirt Documentation Analysis +tags: KubeVirt +created: 2026-05-24 +modified: 2026-05-31 +author: @iRaindrop +--- + + + +## Introduction + +This document is an analyzes the effectiveness and completeness of the +[KubeVirt](https://kubevirt.io) open source software (OSS) project's +documentation and website. It is funded by the Cloud Native Computing Foundation +(CNCF) Foundation as part of its overall effort to incubate, grow, and graduate +open source cloud native software projects. + +According to CNCF best practices guidelines, effective documentation is a +prerequisite for program graduation. The documentation analysis is the first +step of a CNCF process aimed at assisting projects with their documentation +efforts. + +### Purpose + +This document was written to analyze the current state of KubeVirt +documentation. It aims to provide project leaders with an informed understanding +of potential problems in current project documentation. A second +[implementation](implementation.md) document outlines an actionable plan for +improvement. A third document is an [issues list](issues-list.md) of issues to +be added to the project documentation repository. These issues can be taken up +by contributors to improve the documentation. + +This document: + +- Analyzes the current KubeVirt technical documentation and website +- Compares existing documentation against the CNCF’s standards +- Recommends a program of key improvements with the largest return on investment + +### Scope of analysis + +The documentation discussed here includes the entire contents of the website, +the technical documentation, and documentation for contributors and users on the +KubeVirt GitHub repository. + +The KubeVirt website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static +site generator with the [Docsy, other] theme and served from [the Netlify +platform, other]. The site's code is stored on the KubeVirt GitHub repo. + +#### In scope + +- Website: https://kubevirt.io +- Documentation: https://kubevirt.io/user-guide +- Website repo: https://github.com/kubevirt/user-guide + + +#### Out of scope + +- Other KubeVirt GitHub repositories besides `user-guide`. + +### How this document is organized + +This document is divided into two sections that represent two major areas of +concern: + +- **Project documentation:** concerns documentation for users of the KubeVirt + software, aimed at people who intend to use the project software. +- **Contributor documentation:** concerns documentation for new and existing + contributors to the KubeVirt OSS project. + +Each section begins with summary ratings based on a rubric with appropriate +[criteria] for the section, then proceeds to: + +- **Comments**: observations about the existing documentation, with a focus on + how it does or does not help KubeVirt users achieve their goals. +- **Recommendations**: suggested changes that would improve the effectiveness of + the documentation. + +The accompanying [implementation](./implementation.md) document breaks the recommendations down into +concrete actions that can be implemented by project contributors. Its focus is +on drilling down to specific, achievable work that can be completed in +constrained blocks of time. Ultimately, the implementation items are decomposed +into a series of issues and entered on GitHub `https://github.com/kubevirt/kubevirt/issues`. + +### How to use this document + +Readers interested only in actionable improvements should skip this document and +read the [implementation](./implementation.md) plan and [issues list](./issues-list.md). + +Readers interested in the current state of the documentation and the reasoning +behind the recommendations should read the section of this document pertaining +to their area of concern: + +- [Project documentation](#project-documentation) +- [Contributor documentation](#contributor-documentation) + +Examples of CNCF documentation that demonstrate the analysis criteria are linked +from the [criteria] specification. + +#### Recommendations, requirements, and best practices + +This analysis measures documentation against CNCF project maturity standards, +and suggests possible improvements. In most cases there is more than one way to +do things. Few recommendations here are meant to be prescriptive. Rather, the +recommended implementations represent the reviewers' experience with how to +apply documentation best practices. In other words, borrowing terminology from +the lexicon of RFCs, the changes described here should be understood +as "recommended" or "should" at the strongest, and "optional" or "may" in many +cases. Any "must" or "required" actions are clearly denoted as such, and pertain +to legal requirements such as copyright and licensing issues. + +## Project documentation + +KubeVirt is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project code. + +| Criterion | [Rating (1-5)] | +| -------------------------- | -------------- | +| Information architecture | [rating (1-5)] | +| New user content | [rating (1-5)] | +| Content maintainability | [rating (1-5)] | +| Content creation processes | [rating (1-5)] | +| Inclusive language | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Project Documentation here. + +The following sections contain brief assessments of each element of the Project +Documentation rubric. + +> AUTHOR NOTE: For each heading below, discuss how well the in-scope items, and +> especially the technical documentation, meet these criteria. (Criteria are +> copied from criteria.md) + +#### Information architecture + +The overall structure (pages/subpages/sections/subsections) of your project +documentation. We evaluate on the following: + +- Is there high level conceptual/“About” content? Is the documentation feature + complete? (i.e., each product feature is documented) +- Are there step-by-step instructions (tasks, tutorials) documented for + features? +- Are there any key features which are documented but missing task + documentation? +- Is the “happy path”/most common use case documented? Does task and tutorial + content demonstrate atomicity and isolation of concerns? (Are tasks clearly + named according to user goals?) +- If the documentation does not suffice, is there a clear escalation path for + users needing more help? (FAQ, Troubleshooting) +- If the product exposes an API, is there a complete reference? +- Is content up to date and accurate? + +#### New user content + +New users are the most avid users of documentation, and need content +specifically for them. We evaluate on the following: + +- Is “getting started” clearly labeled? (“Getting started”, “Installation”, + “First steps”, etc.) +- Is installation documented step-by-step? +- If needed, are multiple OSes documented? +- Do users know where to go after reading the getting started guide? +- Is your new user content clearly signposted on your site’s homepage or at the + top of your information architecture? +- Is there sample code or other example content that can easily be copy-pasted? + +#### Content maintainability & site mechanics + +As a project scales, concerns like localized (translated) content and versioning +become large maintenance burdens, particularly if you don’t plan for them. + +We evaluate on the following: + +- Is your documentation searchable? +- Are you planning for localization/internationalization with regards to site + directory structure? Is a localization framework present? +- Do you have a clearly documented method for versioning your content? + +#### Content creation processes + +Documentation is only as useful as it is accurate and well-maintained, and +requires the same kind of review and approval processes as code. + +We evaluate on the following: + +- Is there a clearly documented (ongoing) contribution process for + documentation? +- Does your code release process account for documentation creation & updates? +- Who reviews and approves documentation pull requests? +- Does the website have a clear owner/maintainer? + +#### Inclusive language + +Creating inclusive project communities is a key goal for all CNCF projects. + +We evaluate on the following: + +- Are there any customer-facing utilities, endpoints, class names, or feature + names that use non-recommended words as documented by the + [Inclusive Naming Initiative](https://inclusivenaming.org) website? +- Does the project use language like "simple", "easy", etc.? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Information architecture + +#### New user content + +#### Content maintainability & site mechanics + +#### Content creation processes + +#### Inclusive language + +## Contributor documentation + +> AUTHOR NOTE: Pick the CNCF maturity level of the project: + +KubeVirt is a **graduated** project of CNCF. This means that the project should +have [_very high_][criteria] standards for documentation. + +> AUTHOR NOTE: or + +KubeVirt is an **incubating** project of CNCF. This means that the project +should be [_developing_][criteria] professional-quality documentation alongside +the project code. + +| Criterion | [Rating (1-5)] | +| ----------------------------------------- | -------------- | +| Communication methods documented | [rating (1-5)] | +| Beginner friendly issue backlog | [rating (1-5)] | +| “New contributor” getting started content | [rating (1-5)] | +| Project governance documentation | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Contributor Documentation +> here. + +The following sections contain brief assessments of each element of the +Contributor Documentation rubric. + +> AUTHOR NOTE: For each heading below, discuss how well the in-scope items meet +> these criteria. Keep in mind that much of the contributor documentation might +> be contained in the documentation repository. (Criteria are copied from +> criteria.md) + +#### Communication methods documented + +One of the easiest ways to attract new contributors is making sure they know how +to reach you. + +We evaluate on the following: + +- Is there a Slack/Discord/Discourse/etc. community and is it prominently linked + from your website? +- Is there a direct link to your GitHub organization/repository? +- Are weekly/monthly project meetings documented? Is it clear how someone can + join those meetings? +- Are mailing lists documented? + +#### Beginner friendly issue backlog + +We evaluate on the following: + +- Are docs issues well-triaged? +- Is there a clearly marked way for new contributors to make code or + documentation contributions (i.e. a “good first issue” label)? +- Are issues well-documented (i.e., more than just a title)? +- Are issues maintained for staleness? + +#### New contributor getting started content + +Open source is complex and projects have many processes to manage that. Are +processes easy to understand and written down so that new contributors can jump +in easily? + +We evaluate on the following: + +- Do you have a community repository or section on your website? +- Is there a document specifically for new contributors/your first contribution? +- Do new users know where to get help? + +#### Project governance documentation + +One of the CNCF’s core project values is open governance. + +We evaluate on the following: + +- Is project governance clearly documented? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Communication methods documented + +#### Beginner friendly issue backlog + +#### New contributor getting started content + +#### Project governance documentation + +## Website and infrastructure + +> AUTHOR NOTE: Pick the CNCF maturity level of the project: + +KubeVirt is a **graduated** project of CNCF. This means that the project should +have [_very high_][criteria] standards for documentation. + +> AUTHOR NOTE: or + +KubeVirt is an **incubating** project of CNCF. This means that the project +should be [_developing_][criteria] professional-quality documentation alongside +the project code. + +| Criterion | [Rating (1-5)] | +| ------------------------------------------- | -------------- | +| Single-source for all files | [rating (1-5)] | +| Meets min website req. (for maturity level) | [rating (1-5)] | +| Usability, accessibility, and design | [rating (1-5)] | +| Branding and design | [rating (1-5)] | +| Case studies/social proof | [rating (1-5)] | +| SEO, Analytics, and site-local search | [rating (1-5)] | +| Maintenance planning | [rating (1-5)] | +| A11y plan & implementation | [rating (1-5)] | +| Mobile-first plan & impl. | [rating (1-5)] | +| HTTPS access & HTTP redirect | [rating (1-5)] | +| Google Analytics 4 for production only | [rating (1-5)] | +| Indexing allowed for production server only | [rating (1-5)] | +| Intra-site / local search | [rating (1-5)] | +| Account custodians are documented | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Website and documentation +> infrastructure here. + +The following sections contain brief assessments of each element of the Website +and documentation infrastructure rubric. + +> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet +> these criteria. Keep in mind that much of the website infrastructure criteria +> depend on the tools (static site generator, website framework and hosting, +> analytics tools, etc.) and processes (project CI, release procedures, +> governance, etc.) used to produce the documentation. (Criteria are copied from +> criteria.md) + +#### Single-source requirement + +Source files for _all website pages_ should reside in a single repo. Among other +problems, keeping source files in two places: + +- confuses contributors +- requires you to keep two sources in sync +- increases the likelihood of errors +- makes it more complicated to generate the documentation from source files + +Ideally, all website files should be in the **website repo** itself. +Alternatively, files should be brought into the website repo via [git +submodules][git-submodules]. + +If a project chooses to keep source files in multiple repos, they need a clearly +documented strategy for managing mirrored files and new contributions. + +#### Minimal website requirements + +Listed here are the minimal website requirements for projects based on their +[maturity level][maturity-level], either incubating or graduated. (These are the +only two levels for which a tech docs analysis can be requested.) + + + +| Criterion | Incubating Requirement | Graduated Requirement | +| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | +| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | +| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | +| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | +| **Project doc**: hosting | Hosted directly | Hosted directly | +| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | + + + +[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules +[maturity-level]: + https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations +[cncf-servicedesk]: https://servicedesk.cncf.io + +#### Usability, accessibility and devices + +Most CNCF websites are accessed from mobile and other non-desktop devices at +least 10-20% of the time. Planning for this early in your website's design will +be much less effort than retrofitting a desktop-first design. + +- Is the website usable from mobile? +- Are doc pages readable? +- Are all / most website features accessible from mobile -- such as the top-nav, + site search and in-page table of contents? +- Might a [mobile-first] design make sense for your project? + +[mobile-first]: + https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first + +Plan for suitable [accessibility][] measures for your website. For example: + +- Are color contrasts significant enough for color-impaired readers? +- Are most website features usable using a keyboard only? +- Does text-to-speech offer listeners a good experience? + +It is up to each project to set their own guidelines. + +[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility + +#### Branding and design + +CNCF seeks to support enterprise-ready open source software. A key aspect of +this is branding and marketing. + +We evaluate on the following: + +- Is there an easily recognizable brand for the project (logo + color scheme) + clearly identifiable? +- Is the brand used across the website consistently? +- Is the website’s typography clean and well-suited for reading? + +#### Case studies/social proof + +One of the best ways to advertise an open source project is to show other +organizations using it. + +We evaluate on the following: + +- Are there case studies available for the project and are they documented on + the website? +- Are there user testimonials available? +- Is there an active project blog? +- Are there community talks for the project and are they present on the website? +- Is there a logo wall of users/participating organizations? + +#### SEO, Analytics and site-local search + +SEO helps users find your project and it's documentation, and analytics helps +you monitor site traffic and diagnose issues like page 404s. Intra-site search, +while optional, can offer your readers a site-focused search results. + +We evaluate on the following: + +- Analytics: + - Is analytics enabled for the production server? + - Is analytics disabled for all other deploys? + - If your project used Google Analytics, have you migrated to GA4? + - Can Page-not-found (404) reports easily be generated from you site + analytics? Provide a sample of the site's current top-10 404s. +- Is site indexing supported for the production server, while disabled for + website previews and builds for non-default branches? +- Is local intra-site search available from the website? +- Are the current custodian(s) of the following accounts clearly documented: + analytics, Google Search Console, site-search (such as Google CSE or Algolia) + +#### Maintenance planning + +Website maintenance is an important part of project success, especially when +project maintainers aren’t web developers. + +We evaluate on the following: + +- Is your website tooling well supported by the community (i.e., Hugo with the + Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) +- Are you actively cultivating website maintainers from within the community? +- Are site build times reasonable? +- Do site maintainers have adequate permissions? + +#### Other + +- Is your website accessible via HTTPS? +- Does HTTP access, if any, redirect to HTTPS? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Single-source requirement + +#### Minimal website requirements + +#### Usability, accessibility and devices + +#### Branding and design + +#### Case studies/social proof + +#### SEO, Analytics and site-local search + +#### Maintenance planning + +#### Other + +#### References and notes + +##### Rating values + +The numeric rating values used in this document are as follows + +1. Not present +2. Needs improvement +3. Meets standards +4. Meets or exceeds standards +5. Exemplary + +[criteria]: ../criteria.md +[implementation]: ./implementation.md +[issues list]: ./issues-list.md +[project-website]: ?fixme-target-dne=https://kubevirt.o +[Rating (1-5)]: #rating-values +[rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 +[website guidelines]: ../../website-guidelines-checklist.md diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md new file mode 100644 index 00000000..a87456d2 --- /dev/null +++ b/analyses/2026/kubevirt/implementation.md @@ -0,0 +1,52 @@ +--- +title: Implementing KubeVirt Doc Improvements +tags: KubeVirt +created: 2026-05-24 +modified: 2026-05-31 +author: @iRaindrop +--- + + + +## Introduction + +This document provides actionable suggestions for improving the _PROJECT_ +technical documentation. + +For an analysis and general discussion of recommendations on _PROJECT_ technical +documentation, see [analysis.md](analysis.md). + +### Recommendations, requirements, and best practices + +This analysis measures documentation against CNCF project maturity standards and +suggests possible improvements. In most cases there is more than one way to do +things. Few recommendations here are meant to be prescriptive. Rather, +recommendations are based on documentation best practices as understood by the +reviewers. The recommended implementations represent the reviewers' experience +with how to apply those best practices. In other words, borrowing terminology +from the lexicon of [RFCs][rfc-keywords], the changes described here should be +understood as "recommended" or "should" at the strongest, and "optional" or +"may" in many cases. Any "must" or "required" actions are clearly denoted as +such, and pertain to legal requirements such as copyright and licensing issues. + +The top-level documentation recommendations for this project are: + +> AUTHOR NOTE: Provide a summary or outline of the recommendations. Depending on +> the analysis findings, recommended actions might be organized into two or +> three high-level items that contain multiple actions, or might just be a list +> of independent changes. For examples, see a completed implementation plan such +> as 0008-Backstage or 0010-etcd. + +## High-level action 1 + +### Issue 1 + +### Issue 2 + +## High-level action 2 + +### Issue 1 + +### Issue 2 + +[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 \ No newline at end of file diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md new file mode 100644 index 00000000..d87cb3c1 --- /dev/null +++ b/analyses/2026/kubevirt/issues-list.md @@ -0,0 +1,55 @@ +--- +title: KubeVirt Umbrella Issue and Issues List +tags: KubeVirt +created: 2026-05-24 +modified: 2026-05-31 +author: @iRaindrop +--- + +## Overview + +> AUTHOR NOTES: +> +> - Provide an outline or high-level description of the recommended changes. +> Note any general patterns that occur throughout the documentation, such as a +> lack of step-by-step procedures. +> +> -Items might be disjoint and unrelated; that's OK. If there are high-level +> items that must be broken down into smaller issues, use the high-level items +> to organize the issues in this plan. Otherwise, list issues in order from the +> analysis document. This is an improvement plan, not a legal brief. +> +> - The following is boilerplate language to include in the umbrella issue in +> the repo: + +This issue tracks recommended changes resulting from an analysis of the +_PROJECT_ documentation commissioned by CNCF. The analysis and supporting +documents are here: https://github.com/cncf/techdocs/tree/main/analyses under +`00NN-project`. + +The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: +https://github.com/cncf/techdocs/issues + +## Umbrella issue + +> AUTHOR NOTE: Link to the umbrella issue in the project's documentation repo + +## Issues + +This is a list of issues representing the recommended work on the _PROJECT_ +website and technical documentation. + +> AUTHOR NOTE: Consider using the [issue](issue.md) template. + +### Issue: Item 1 + +> AUTHOR NOTE: Summarize the documentation changes prescribed by this issue. Use +> enough detail to estimate the scope of the issue. Fine-grained detail can go +> in the issue itself. In the GitHub umbrella issue, link to the sub-issue using +> a Markdown checkbox as shown below. + +- [ ] `https://github.com/_PROJECT_/repo/issues/NNN` + +### Issue: Item 2 + +> AUTHOR NOTE: ... and so on. \ No newline at end of file diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md new file mode 100644 index 00000000..920bc16c --- /dev/null +++ b/analyses/2026/kubevirt/issues.md @@ -0,0 +1,64 @@ +--- +title: KubeVirt Issue +tags: KubeVirt +created: 2026-05-24 +modified: 2026-05-31 +author: @iRaindrop +--- + +> AUTHOR NOTE: This template provides one possible format for the individual +> issues filed in the Issues of a project repository. Within the CNCF tech docs +> repo, include all issues in one document, `_PROJECT_-issues.md`. See any +> completed analysis for an example. + +## Overview + +> AUTHOR NOTE: +> +> - Summarize the documentation changes prescribed by this issue. +> - For the audience, provide the user role to which the issue is most +> applicable. + +Audience: + +Type: + +> AUTHOR NOTE: What type of documentation topic the change affects. One of Task, +> Reference, or Conceptual. + +## Context + +> AUTHOR NOTE: This is boilerplate text linking back to the doc analysis. + +This issue tracks recommended changes resulting from an analysis of the etcd +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `00NN-project`. + +## Possible Implementation + +> AUTHOR NOTE: Include a bullet list of links to pages that are affected by the +> change: + +Related material in the current doc: + +- For example, + `https://github.com/_PROJECT_/website/tree/main/content/en/docs/v3.5/tutorials` + +> AUTHOR NOTE: Describe in detail a suggested way to achieve the goals of the +> issue. This should be specific enough to provide a contributor with a recipe +> for making the change; however, the contributor should feel free to solve the +> problem differently if they have an idea how it should be done. +> +> An EXAMPLE is provided next. + +Suggested changes: + +Use the following outline to write a procedure for each task: + +- Prerequisites (bullet list of prerequisite conditions, if any) +- Procedure + 1. Step 1 (keep steps discrete and atomic. Put command-line input and expected + output in a code block.) + 2. Step 2 ... +- Result (optional; describe output or side effects if they're notable or + unexpected.) \ No newline at end of file From 12de76e2e1223e98cc970a0d9dd3521d09d91873 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 19:59:29 -0700 Subject: [PATCH 22/50] spelling fixes - prittier Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 69 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 6 +-- analyses/2026/kubevirt/issues-list.md | 6 +-- analyses/2026/kubevirt/issues.md | 6 +-- 4 files changed, 45 insertions(+), 42 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 514afd0d..b22d01be 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Documentation Analysis -tags: KubeVirt +title: Kubevirt Documentation Analysis +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: @iRaindrop @@ -11,7 +11,7 @@ author: @iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVirt](https://kubevirt.io) open source software (OSS) project's +[Kubevirt](https://Kubevirt.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -23,17 +23,17 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVirt +This document was written to analyze the current state of Kubevirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second -[implementation](implementation.md) document outlines an actionable plan for +[implementation](.implementation.md) document outlines an actionable plan for improvement. A third document is an [issues list](issues-list.md) of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. This document: -- Analyzes the current KubeVirt technical documentation and website +- Analyzes the current Kubevirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -41,51 +41,53 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVirt GitHub repository. +Kubevirt GitHub repository. -The KubeVirt website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static -site generator with the [Docsy, other] theme and served from [the Netlify -platform, other]. The site's code is stored on the KubeVirt GitHub repo. +The Kubevirt website and documentation are written in Markdown and are compiled +using the [Hugo, Docusaurus, Sphinx, other] static site generator with the +[Docsy, other] theme and served from [the Netlify platform, other]. The site's +code is stored on the Kubevirt GitHub repo. #### In scope -- Website: https://kubevirt.io -- Documentation: https://kubevirt.io/user-guide -- Website repo: https://github.com/kubevirt/user-guide - +- Website: https://Kubevirt.io +- Documentation: https://Kubevirt.io/user-guide +- Website repo: https://github.com/Kubevirt/user-guide #### Out of scope -- Other KubeVirt GitHub repositories besides `user-guide`. +- Other Kubevirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVirt +- **Project documentation:** concerns documentation for users of the Kubevirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVirt OSS project. + contributors to the Kubevirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVirt users achieve their goals. + how it does or does not help Kubevirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -The accompanying [implementation](./implementation.md) document breaks the recommendations down into -concrete actions that can be implemented by project contributors. Its focus is -on drilling down to specific, achievable work that can be completed in -constrained blocks of time. Ultimately, the implementation items are decomposed -into a series of issues and entered on GitHub `https://github.com/kubevirt/kubevirt/issues`. +The accompanying [implementation](./implementation.md) document breaks the +recommendations down into concrete actions that can be implemented by project +contributors. Its focus is on drilling down to specific, achievable work that +can be completed in constrained blocks of time. Ultimately, the implementation +items are decomposed into a series of issues and entered on GitHub +`https://github.com/Kubevirt/Kubevirt/issues`. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation](./implementation.md) plan and [issues list](./issues-list.md). +read the [implementation](./implementation.md) plan and +[issues list](./issues-list.md). Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -104,15 +106,16 @@ and suggests possible improvements. In most cases there is more than one way to do things. Few recommendations here are meant to be prescriptive. Rather, the recommended implementations represent the reviewers' experience with how to apply documentation best practices. In other words, borrowing terminology from -the lexicon of RFCs, the changes described here should be understood -as "recommended" or "should" at the strongest, and "optional" or "may" in many +the lexicon of RFCs, the changes described here should be understood as +"recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVirt is an **incubating** project of CNCF. This means that the project -should be developing professional-quality documentation alongside the project code. +Kubevirt is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project +code. | Criterion | [Rating (1-5)] | | -------------------------- | -------------- | @@ -221,12 +224,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -KubeVirt is a **graduated** project of CNCF. This means that the project should +Kubevirt is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -KubeVirt is an **incubating** project of CNCF. This means that the project +Kubevirt is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -311,12 +314,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -KubeVirt is a **graduated** project of CNCF. This means that the project should +Kubevirt is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -KubeVirt is an **incubating** project of CNCF. This means that the project +Kubevirt is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -517,7 +520,7 @@ The numeric rating values used in this document are as follows [criteria]: ../criteria.md [implementation]: ./implementation.md [issues list]: ./issues-list.md -[project-website]: ?fixme-target-dne=https://kubevirt.o +[project-website]: ?fixme-target-dne=https://Kubevirt.o [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 [website guidelines]: ../../website-guidelines-checklist.md diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index a87456d2..597aa34a 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,6 +1,6 @@ --- -title: Implementing KubeVirt Doc Improvements -tags: KubeVirt +title: Implementing Kubevirt Doc Improvements +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: @iRaindrop @@ -49,4 +49,4 @@ The top-level documentation recommendations for this project are: ### Issue 2 -[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 \ No newline at end of file +[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index d87cb3c1..b712bcfb 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Umbrella Issue and Issues List -tags: KubeVirt +title: Kubevirt Umbrella Issue and Issues List +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: @iRaindrop @@ -52,4 +52,4 @@ website and technical documentation. ### Issue: Item 2 -> AUTHOR NOTE: ... and so on. \ No newline at end of file +> AUTHOR NOTE: ... and so on. diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 920bc16c..c3bcf0d2 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Issue -tags: KubeVirt +title: Kubevirt Issue +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: @iRaindrop @@ -61,4 +61,4 @@ Use the following outline to write a procedure for each task: output in a code block.) 2. Step 2 ... - Result (optional; describe output or side effects if they're notable or - unexpected.) \ No newline at end of file + unexpected.) From 251101a409473eaca2ad18cca01b2e6e077e5b96 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 21:43:52 -0700 Subject: [PATCH 23/50] format fixes Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 50 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 8 ++-- analyses/2026/kubevirt/issues-list.md | 9 ++--- analyses/2026/kubevirt/issues.md | 6 +-- 4 files changed, 36 insertions(+), 37 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index b22d01be..bfdfd1a1 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,9 +1,9 @@ --- -title: Kubevirt Documentation Analysis -tags: Kubevirt +title: KubeVIRT Documentation Analysis +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 -author: @iRaindrop +author: iRaindrop --- @@ -11,7 +11,7 @@ author: @iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[Kubevirt](https://Kubevirt.io) open source software (OSS) project's +[KubeVIRT](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -23,7 +23,7 @@ efforts. ### Purpose -This document was written to analyze the current state of Kubevirt +This document was written to analyze the current state of KubeVIRT documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -33,7 +33,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current Kubevirt technical documentation and website +- Analyzes the current KubeVIRT technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -41,38 +41,38 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -Kubevirt GitHub repository. +KubeVIRT GitHub repository. -The Kubevirt website and documentation are written in Markdown and are compiled +The KubeVIRT website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with the [Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the Kubevirt GitHub repo. +code is stored on the KubeVIRT GitHub repo. #### In scope -- Website: https://Kubevirt.io -- Documentation: https://Kubevirt.io/user-guide -- Website repo: https://github.com/Kubevirt/user-guide +- Website: https://KubeVIRT.io +- Documentation: https://KubeVIRT.io/user-guide +- Website repo: https://github.com/KubeVIRT/user-guide #### Out of scope -- Other Kubevirt GitHub repositories besides `user-guide`. +- Other KubeVIRT GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the Kubevirt +- **Project documentation:** concerns documentation for users of the KubeVIRT software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the Kubevirt OSS project. + contributors to the KubeVIRT OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help Kubevirt users achieve their goals. + how it does or does not help KubeVIRT users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -81,7 +81,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/Kubevirt/Kubevirt/issues`. +`https://github.com/KubeVIRT/KubeVIRT/issues`. ### How to use this document @@ -113,7 +113,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -224,12 +224,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -Kubevirt is a **graduated** project of CNCF. This means that the project should +KubeVIRT is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -314,12 +314,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -Kubevirt is a **graduated** project of CNCF. This means that the project should +KubeVIRT is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -517,10 +517,10 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: ../criteria.md + diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index 597aa34a..afbeae46 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,9 +1,9 @@ --- -title: Implementing Kubevirt Doc Improvements -tags: Kubevirt +title: Implementing KubeVIRT Doc Improvements +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 -author: @iRaindrop +author: iRaindrop --- @@ -49,4 +49,4 @@ The top-level documentation recommendations for this project are: ### Issue 2 -[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 + diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index b712bcfb..3eb4d8ac 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,9 +1,9 @@ --- -title: Kubevirt Umbrella Issue and Issues List -tags: Kubevirt +title: KubeVIRT Umbrella Issue and Issues List +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 -author: @iRaindrop +author: iRaindrop --- ## Overview @@ -48,8 +48,7 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. -- [ ] `https://github.com/_PROJECT_/repo/issues/NNN` + ### Issue: Item 2 -> AUTHOR NOTE: ... and so on. diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index c3bcf0d2..22bf54ef 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,9 +1,9 @@ --- -title: Kubevirt Issue -tags: Kubevirt +title: KubeVIRT Issue +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 -author: @iRaindrop +author: iRaindrop --- > AUTHOR NOTE: This template provides one possible format for the individual From a0397aa4bcc9e87f65cb2013ff5ad964611f0a53 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 22:15:39 -0700 Subject: [PATCH 24/50] more format fixes Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 1 - analyses/2026/kubevirt/implementation.md | 1 - analyses/2026/kubevirt/issues-list.md | 2 -- analyses/2026/kubevirt/issues.md | 1 - 4 files changed, 5 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index bfdfd1a1..00ecaa7a 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Documentation Analysis -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index afbeae46..5f4a6d98 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,6 +1,5 @@ --- title: Implementing KubeVIRT Doc Improvements -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index 3eb4d8ac..1284b55f 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Umbrella Issue and Issues List -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -51,4 +50,3 @@ website and technical documentation. ### Issue: Item 2 - diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 22bf54ef..e4efe4ec 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Issue -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From d5b4e03336895ec3e4a1d1047a1fe823b7a176d4 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 22:40:53 -0700 Subject: [PATCH 25/50] KubeVirt spelling false hit fix 1 Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 258 ++------------------------ analyses/2026/kubevirt/issues-list.md | 15 +- 2 files changed, 25 insertions(+), 248 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 00ecaa7a..8b9d99b6 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Documentation Analysis +title: "KubeVirt" Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVIRT](https://KubeVIRT.io) open source software (OSS) project's +["KubeVirt"](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVIRT +This document was written to analyze the current state of "KubeVirt" documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current KubeVIRT technical documentation and website +- Analyzes the current "KubeVirt" technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,12 +40,12 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVIRT GitHub repository. +"KubeVirt" GitHub repository. -The KubeVIRT website and documentation are written in Markdown and are compiled -using the [Hugo, Docusaurus, Sphinx, other] static site generator with the -[Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the KubeVIRT GitHub repo. +The "KubeVirt" website and documentation are written in Markdown and are +compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with +the [Docsy, other] theme and served from [the Netlify platform, other]. The +site's code is stored on the "KubeVirt" GitHub repo. #### In scope @@ -55,23 +55,23 @@ code is stored on the KubeVIRT GitHub repo. #### Out of scope -- Other KubeVIRT GitHub repositories besides `user-guide`. +- Other "KubeVirt" GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVIRT +- **Project documentation:** concerns documentation for users of the "KubeVirt" software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVIRT OSS project. + contributors to the "KubeVirt" OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVIRT users achieve their goals. + how it does or does not help "KubeVirt" users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -80,7 +80,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/KubeVIRT/KubeVIRT/issues`. +`https://github.com/KubeVirt/KubeVIRT/issues`. ### How to use this document @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVIRT is an **incubating** project of CNCF. This means that the project +"KubeVirt" is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,16 +221,9 @@ We evaluate on the following: ## Contributor documentation -> AUTHOR NOTE: Pick the CNCF maturity level of the project: - -KubeVIRT is a **graduated** project of CNCF. This means that the project should -have [_very high_][criteria] standards for documentation. - -> AUTHOR NOTE: or - -KubeVIRT is an **incubating** project of CNCF. This means that the project -should be [_developing_][criteria] professional-quality documentation alongside -the project code. +"KubeVirt" is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project +code. | Criterion | [Rating (1-5)] | | ----------------------------------------- | -------------- | @@ -308,218 +301,3 @@ We evaluate on the following: #### New contributor getting started content #### Project governance documentation - -## Website and infrastructure - -> AUTHOR NOTE: Pick the CNCF maturity level of the project: - -KubeVIRT is a **graduated** project of CNCF. This means that the project should -have [_very high_][criteria] standards for documentation. - -> AUTHOR NOTE: or - -KubeVIRT is an **incubating** project of CNCF. This means that the project -should be [_developing_][criteria] professional-quality documentation alongside -the project code. - -| Criterion | [Rating (1-5)] | -| ------------------------------------------- | -------------- | -| Single-source for all files | [rating (1-5)] | -| Meets min website req. (for maturity level) | [rating (1-5)] | -| Usability, accessibility, and design | [rating (1-5)] | -| Branding and design | [rating (1-5)] | -| Case studies/social proof | [rating (1-5)] | -| SEO, Analytics, and site-local search | [rating (1-5)] | -| Maintenance planning | [rating (1-5)] | -| A11y plan & implementation | [rating (1-5)] | -| Mobile-first plan & impl. | [rating (1-5)] | -| HTTPS access & HTTP redirect | [rating (1-5)] | -| Google Analytics 4 for production only | [rating (1-5)] | -| Indexing allowed for production server only | [rating (1-5)] | -| Intra-site / local search | [rating (1-5)] | -| Account custodians are documented | [rating (1-5)] | - -### Comments - -> AUTHOR NOTE: make any overall comments about the Website and documentation -> infrastructure here. - -The following sections contain brief assessments of each element of the Website -and documentation infrastructure rubric. - -> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet -> these criteria. Keep in mind that much of the website infrastructure criteria -> depend on the tools (static site generator, website framework and hosting, -> analytics tools, etc.) and processes (project CI, release procedures, -> governance, etc.) used to produce the documentation. (Criteria are copied from -> criteria.md) - -#### Single-source requirement - -Source files for _all website pages_ should reside in a single repo. Among other -problems, keeping source files in two places: - -- confuses contributors -- requires you to keep two sources in sync -- increases the likelihood of errors -- makes it more complicated to generate the documentation from source files - -Ideally, all website files should be in the **website repo** itself. -Alternatively, files should be brought into the website repo via [git -submodules][git-submodules]. - -If a project chooses to keep source files in multiple repos, they need a clearly -documented strategy for managing mirrored files and new contributions. - -#### Minimal website requirements - -Listed here are the minimal website requirements for projects based on their -[maturity level][maturity-level], either incubating or graduated. (These are the -only two levels for which a tech docs analysis can be requested.) - - - -| Criterion | Incubating Requirement | Graduated Requirement | -| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | -| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | -| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | -| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | -| **Project doc**: hosting | Hosted directly | Hosted directly | -| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | - - - -[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules -[maturity-level]: - https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations -[cncf-servicedesk]: https://servicedesk.cncf.io - -#### Usability, accessibility and devices - -Most CNCF websites are accessed from mobile and other non-desktop devices at -least 10-20% of the time. Planning for this early in your website's design will -be much less effort than retrofitting a desktop-first design. - -- Is the website usable from mobile? -- Are doc pages readable? -- Are all / most website features accessible from mobile -- such as the top-nav, - site search and in-page table of contents? -- Might a [mobile-first] design make sense for your project? - -[mobile-first]: - https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first - -Plan for suitable [accessibility][] measures for your website. For example: - -- Are color contrasts significant enough for color-impaired readers? -- Are most website features usable using a keyboard only? -- Does text-to-speech offer listeners a good experience? - -It is up to each project to set their own guidelines. - -[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility - -#### Branding and design - -CNCF seeks to support enterprise-ready open source software. A key aspect of -this is branding and marketing. - -We evaluate on the following: - -- Is there an easily recognizable brand for the project (logo + color scheme) - clearly identifiable? -- Is the brand used across the website consistently? -- Is the website’s typography clean and well-suited for reading? - -#### Case studies/social proof - -One of the best ways to advertise an open source project is to show other -organizations using it. - -We evaluate on the following: - -- Are there case studies available for the project and are they documented on - the website? -- Are there user testimonials available? -- Is there an active project blog? -- Are there community talks for the project and are they present on the website? -- Is there a logo wall of users/participating organizations? - -#### SEO, Analytics and site-local search - -SEO helps users find your project and it's documentation, and analytics helps -you monitor site traffic and diagnose issues like page 404s. Intra-site search, -while optional, can offer your readers a site-focused search results. - -We evaluate on the following: - -- Analytics: - - Is analytics enabled for the production server? - - Is analytics disabled for all other deploys? - - If your project used Google Analytics, have you migrated to GA4? - - Can Page-not-found (404) reports easily be generated from you site - analytics? Provide a sample of the site's current top-10 404s. -- Is site indexing supported for the production server, while disabled for - website previews and builds for non-default branches? -- Is local intra-site search available from the website? -- Are the current custodian(s) of the following accounts clearly documented: - analytics, Google Search Console, site-search (such as Google CSE or Algolia) - -#### Maintenance planning - -Website maintenance is an important part of project success, especially when -project maintainers aren’t web developers. - -We evaluate on the following: - -- Is your website tooling well supported by the community (i.e., Hugo with the - Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) -- Are you actively cultivating website maintainers from within the community? -- Are site build times reasonable? -- Do site maintainers have adequate permissions? - -#### Other - -- Is your website accessible via HTTPS? -- Does HTTP access, if any, redirect to HTTPS? - -### Recommendations - -> AUTHOR NOTE: Write general recommendations based on the comments from the -> previous section. - -#### Single-source requirement - -#### Minimal website requirements - -#### Usability, accessibility and devices - -#### Branding and design - -#### Case studies/social proof - -#### SEO, Analytics and site-local search - -#### Maintenance planning - -#### Other - -#### References and notes - -##### Rating values - -The numeric rating values used in this document are as follows - -1. Not present -2. Needs improvement -3. Meets standards -4. Meets or exceeds standards -5. Exemplary - - diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index 1284b55f..ffd5712c 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -21,12 +21,11 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the -_PROJECT_ documentation commissioned by CNCF. The analysis and supporting -documents are here: https://github.com/cncf/techdocs/tree/main/analyses under -`00NN-project`. +This issue tracks recommended changes resulting from an analysis of the KubeVIRT +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. -The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF KubeVIRT documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -35,10 +34,10 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the _PROJECT_ +This is a list of issues representing the recommended work on the KubeVIRT website and technical documentation. -> AUTHOR NOTE: Consider using the [issue](issue.md) template. +> AUTHOR NOTE: Consider using the issue.md template. ### Issue: Item 1 @@ -47,6 +46,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 From 593fbfd0d6ab14415571ddf3b6a4dbd0fcf57f20 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 12:54:59 -0700 Subject: [PATCH 26/50] digging out Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 30 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 4 ++-- analyses/2026/kubevirt/issues-list.md | 10 ++++---- analyses/2026/kubevirt/issues.md | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 8b9d99b6..81962673 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: "KubeVirt" Documentation Analysis +title: KubeVirt Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -["KubeVirt"](https://KubeVIRT.io) open source software (OSS) project's +[KubeVirt](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of "KubeVirt" +This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current "KubeVirt" technical documentation and website +- Analyzes the current KubeVirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,12 +40,12 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -"KubeVirt" GitHub repository. +KubeVirt GitHub repository. -The "KubeVirt" website and documentation are written in Markdown and are -compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with -the [Docsy, other] theme and served from [the Netlify platform, other]. The -site's code is stored on the "KubeVirt" GitHub repo. +The KubeVirt website and documentation are written in Markdown and are compiled +using the [Hugo, Docusaurus, Sphinx, other] static site generator with the +[Docsy, other] theme and served from [the Netlify platform, other]. The site's +code is stored on the KubeVirt GitHub repo. #### In scope @@ -55,23 +55,23 @@ site's code is stored on the "KubeVirt" GitHub repo. #### Out of scope -- Other "KubeVirt" GitHub repositories besides `user-guide`. +- Other KubeVirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the "KubeVirt" +- **Project documentation:** concerns documentation for users of the KubeVirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the "KubeVirt" OSS project. + contributors to the KubeVirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help "KubeVirt" users achieve their goals. + how it does or does not help KubeVirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -"KubeVirt" is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,7 +221,7 @@ We evaluate on the following: ## Contributor documentation -"KubeVirt" is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index 5f4a6d98..f8fe4bc6 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,5 +1,5 @@ --- -title: Implementing KubeVIRT Doc Improvements +title: Implementing KubeVirt Doc Improvements created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -23,7 +23,7 @@ things. Few recommendations here are meant to be prescriptive. Rather, recommendations are based on documentation best practices as understood by the reviewers. The recommended implementations represent the reviewers' experience with how to apply those best practices. In other words, borrowing terminology -from the lexicon of [RFCs][rfc-keywords], the changes described here should be +from the lexicon of RFCs (rfc-keywords), the changes described here should be understood as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index ffd5712c..e06198d7 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Umbrella Issue and Issues List +title: KubeVirt Umbrella Issue and Issues List created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -21,11 +21,11 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the KubeVIRT +This issue tracks recommended changes resulting from an analysis of the KubeVirt documentation commissioned by CNCF. The analysis and supporting documents are here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. -The CNCF KubeVIRT documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF KubeVirt documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -34,7 +34,7 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the KubeVIRT +This is a list of issues representing the recommended work on the KubeVirt website and technical documentation. > AUTHOR NOTE: Consider using the issue.md template. @@ -46,6 +46,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index e4efe4ec..be18ad6a 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Issue +title: KubeVirt Issue created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From 1bcf86953dceed832ad6bd47c7ae721575131d54 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:16:11 -0700 Subject: [PATCH 27/50] spelling issues fixes Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 81962673..66c89db9 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -25,7 +25,7 @@ efforts. This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second -[implementation](.implementation.md) document outlines an actionable plan for +[implementation](implementation.md) document outlines an actionable plan for improvement. A third document is an [issues list](issues-list.md) of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. @@ -75,7 +75,7 @@ Each section begins with summary ratings based on a rubric with appropriate - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -The accompanying [implementation](./implementation.md) document breaks the +The accompanying [implementation](implementation.md) document breaks the recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation @@ -85,7 +85,7 @@ items are decomposed into a series of issues and entered on GitHub ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation](./implementation.md) plan and +read the [implementation](implementation.md) plan and [issues list](./issues-list.md). Readers interested in the current state of the documentation and the reasoning From e2c212ddfdbbd3a18988cddf399dc943bd5d8e09 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:31:33 -0700 Subject: [PATCH 28/50] spelling extentsions test Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/implementation.md | 2 +- analyses/2026/kubevirt/issues-list.md | 15 ++++++++------- analyses/2026/kubevirt/issues.md | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index f8fe4bc6..ab4a2d43 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,5 +1,5 @@ --- -title: Implementing KubeVirt Doc Improvements +title: Implementing _PROJECT_ Doc Improvements created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index e06198d7..3c5acdb9 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Umbrella Issue and Issues List +title: _PROJECT_ Umbrella Issue and Issues List created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -21,11 +21,12 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the KubeVirt -documentation commissioned by CNCF. The analysis and supporting documents are -here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. +This issue tracks recommended changes resulting from an analysis of the +_PROJECT_ documentation commissioned by CNCF. The analysis and supporting +documents are here: https://github.com/cncf/techdocs/tree/main/analyses under +`2026`. -The CNCF KubeVirt documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -34,7 +35,7 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the KubeVirt +This is a list of issues representing the recommended work on the _PROJECT_ website and technical documentation. > AUTHOR NOTE: Consider using the issue.md template. @@ -46,6 +47,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index be18ad6a..4d91874f 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Issue +title: _PROJECT_ Issue created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From c202093f8e0ac7d3da8b692e24e0f5385561ea42 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:37:14 -0700 Subject: [PATCH 29/50] replaced KubeVirt with _PROJECT_ until fix Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 66c89db9..2b9aa0d1 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Documentation Analysis +title: _PROJECT_ Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVirt](https://KubeVIRT.io) open source software (OSS) project's +[_PROJECT_](https://_PROJECT_.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVirt +This document was written to analyze the current state of _PROJECT_ documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current KubeVirt technical documentation and website +- Analyzes the current _PROJECT_ technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,38 +40,38 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVirt GitHub repository. +_PROJECT_ GitHub repository. -The KubeVirt website and documentation are written in Markdown and are compiled +The _PROJECT_ website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with the [Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the KubeVirt GitHub repo. +code is stored on the _PROJECT_ GitHub repo. #### In scope -- Website: https://KubeVIRT.io -- Documentation: https://KubeVIRT.io/user-guide -- Website repo: https://github.com/KubeVIRT/user-guide +- Website: https://_PROJECT_.io +- Documentation: https://_PROJECT_.io/user-guide +- Website repo: https://github.com/_PROJECT_/user-guide #### Out of scope -- Other KubeVirt GitHub repositories besides `user-guide`. +- Other _PROJECT_ GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVirt +- **Project documentation:** concerns documentation for users of the _PROJECT_ software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVirt OSS project. + contributors to the _PROJECT_ OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVirt users achieve their goals. + how it does or does not help _PROJECT_ users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -80,7 +80,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/KubeVirt/KubeVIRT/issues`. +`https://github.com/_PROJECT_/_PROJECT_/issues`. ### How to use this document @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVirt is an **incubating** project of CNCF. This means that the project +_PROJECT_ is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,7 +221,7 @@ We evaluate on the following: ## Contributor documentation -KubeVirt is an **incubating** project of CNCF. This means that the project +_PROJECT_ is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. From 2ca7c6aac5368ff40dab6989f7e312e237431b9d Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:43:55 -0700 Subject: [PATCH 30/50] link fix Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 2b9aa0d1..486cee95 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -9,11 +9,11 @@ author: iRaindrop ## Introduction -This document is an analyzes the effectiveness and completeness of the -[_PROJECT_](https://_PROJECT_.io) open source software (OSS) project's -documentation and website. It is funded by the Cloud Native Computing Foundation -(CNCF) Foundation as part of its overall effort to incubate, grow, and graduate -open source cloud native software projects. +This document is an analyzes the effectiveness and completeness of the _PROJECT_ +open source software (OSS) project's documentation and website. It is funded by +the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall +effort to incubate, grow, and graduate open source cloud native software +projects. According to CNCF best practices guidelines, effective documentation is a prerequisite for program graduation. The documentation analysis is the first From 52361b4d3c64e2d94a7144128d627e2238f092f9 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 14:05:39 -0700 Subject: [PATCH 31/50] misc fixes Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 9 +++++---- analyses/2026/kubevirt/issues.md | 8 -------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 486cee95..8aa1dc22 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -49,9 +49,9 @@ code is stored on the _PROJECT_ GitHub repo. #### In scope -- Website: https://_PROJECT_.io + #### Out of scope @@ -79,8 +79,9 @@ The accompanying [implementation](implementation.md) document breaks the recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation -items are decomposed into a series of issues and entered on GitHub -`https://github.com/_PROJECT_/_PROJECT_/issues`. +items are decomposed into a series of issues and entered on GitHub. + +(provide link) ### How to use this document diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 4d91874f..3bd20921 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -5,11 +5,6 @@ modified: 2026-05-31 author: iRaindrop --- -> AUTHOR NOTE: This template provides one possible format for the individual -> issues filed in the Issues of a project repository. Within the CNCF tech docs -> repo, include all issues in one document, `_PROJECT_-issues.md`. See any -> completed analysis for an example. - ## Overview > AUTHOR NOTE: @@ -40,9 +35,6 @@ here: https://github.com/cncf/techdocs/tree/main/analyses under `00NN-project`. Related material in the current doc: -- For example, - `https://github.com/_PROJECT_/website/tree/main/content/en/docs/v3.5/tutorials` - > AUTHOR NOTE: Describe in detail a suggested way to achieve the goals of the > issue. This should be specific enough to provide a contributor with a recipe > for making the change; however, the contributor should feel free to solve the From 2d95db8a6e0a5139c71210d44d6120ba729a4b1a Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 14:46:40 -0700 Subject: [PATCH 32/50] minor edit to rebuild Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 8aa1dc22..a01f90a2 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -9,9 +9,9 @@ author: iRaindrop ## Introduction -This document is an analyzes the effectiveness and completeness of the _PROJECT_ -open source software (OSS) project's documentation and website. It is funded by -the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall +This document is an analyzes the effectiveness and completeness of the open +source software (OSS) project's documentation and website. It is funded by the +Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. From 8de5f4017bc279faebe03edac8642f93e4111f2f Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 15:15:08 -0700 Subject: [PATCH 33/50] minor edit Signed-off-by: Bruce Hamilton Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index a01f90a2..1c05f85d 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,7 +1,7 @@ --- title: _PROJECT_ Documentation Analysis created: 2026-05-24 -modified: 2026-05-31 +modified: 2026-06-02 author: iRaindrop --- From 2ce2ad712263eefe57c69e0dbda09df4ce5ac6b8 Mon Sep 17 00:00:00 2001 From: Arpit Jain <3242828+arpitjain099@users.noreply.github.com> Date: Wed, 3 Jun 2026 23:45:35 +0900 Subject: [PATCH 34/50] ci: declare least-privilege permissions in workflows (#354) Signed-off-by: BruceHamilton --- .github/workflows/format-check.yml | 3 +++ .github/workflows/link-check.yml | 3 +++ .github/workflows/spell-check.yml | 3 +++ .github/workflows/trigger-contribute-site-netlify.yml | 2 ++ 4 files changed, 11 insertions(+) diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml index 0a31794a..25a9d434 100644 --- a/.github/workflows/format-check.yml +++ b/.github/workflows/format-check.yml @@ -3,6 +3,9 @@ name: Format checks on: pull_request: +permissions: + contents: read + jobs: format-check: name: FILE FORMAT diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index bb003298..a3449c66 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -3,6 +3,9 @@ name: Link checks on: pull_request: +permissions: + contents: read + jobs: link-check: name: LINK checking diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 71217d81..3a7d882a 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -3,6 +3,9 @@ name: Spelling checks on: pull_request: +permissions: + contents: read + jobs: spelling-check: name: SPELLING check diff --git a/.github/workflows/trigger-contribute-site-netlify.yml b/.github/workflows/trigger-contribute-site-netlify.yml index db819727..fd54d029 100644 --- a/.github/workflows/trigger-contribute-site-netlify.yml +++ b/.github/workflows/trigger-contribute-site-netlify.yml @@ -4,6 +4,8 @@ on: push: branches: [main] +permissions: {} + jobs: trigger: runs-on: ubuntu-latest From 26ad88d5151022d0524b78579316de0bc0430069 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 19:17:27 -0700 Subject: [PATCH 35/50] created files Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin --- analyses/2026/kubevirt/analysis.md | 295 ++++++++++++++++++++--- analyses/2026/kubevirt/implementation.md | 7 +- analyses/2026/kubevirt/issues-list.md | 11 +- analyses/2026/kubevirt/issues.md | 11 +- 4 files changed, 278 insertions(+), 46 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 1c05f85d..e882edb1 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,7 +1,8 @@ --- -title: _PROJECT_ Documentation Analysis +title: KubeVirt Documentation Analysis +tags: KubeVirt created: 2026-05-24 -modified: 2026-06-02 +modified: 2026-05-31 author: iRaindrop --- @@ -9,11 +10,11 @@ author: iRaindrop ## Introduction -This document is an analyzes the effectiveness and completeness of the open -source software (OSS) project's documentation and website. It is funded by the -Cloud Native Computing Foundation (CNCF) Foundation as part of its overall -effort to incubate, grow, and graduate open source cloud native software -projects. +This document is an analyzes the effectiveness and completeness of the +[KubeVirt](https://kubevirt.io) open source software (OSS) project's +documentation and website. It is funded by the Cloud Native Computing Foundation +(CNCF) Foundation as part of its overall effort to incubate, grow, and graduate +open source cloud native software projects. According to CNCF best practices guidelines, effective documentation is a prerequisite for program graduation. The documentation analysis is the first @@ -22,7 +23,7 @@ efforts. ### Purpose -This document was written to analyze the current state of _PROJECT_ +This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](implementation.md) document outlines an actionable plan for @@ -32,7 +33,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current _PROJECT_ technical documentation and website +- Analyzes the current KubeVirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,54 +41,51 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -_PROJECT_ GitHub repository. +KubeVirt GitHub repository. -The _PROJECT_ website and documentation are written in Markdown and are compiled -using the [Hugo, Docusaurus, Sphinx, other] static site generator with the -[Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the _PROJECT_ GitHub repo. +The KubeVirt website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static +site generator with the [Docsy, other] theme and served from [the Netlify +platform, other]. The site's code is stored on the KubeVirt GitHub repo. #### In scope - +- Website: https://kubevirt.io +- Documentation: https://kubevirt.io/user-guide +- Website repo: https://github.com/kubevirt/user-guide + #### Out of scope -- Other _PROJECT_ GitHub repositories besides `user-guide`. +- Other KubeVirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the _PROJECT_ +- **Project documentation:** concerns documentation for users of the KubeVirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the _PROJECT_ OSS project. + contributors to the KubeVirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help _PROJECT_ users achieve their goals. + how it does or does not help KubeVirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -The accompanying [implementation](implementation.md) document breaks the -recommendations down into concrete actions that can be implemented by project -contributors. Its focus is on drilling down to specific, achievable work that -can be completed in constrained blocks of time. Ultimately, the implementation -items are decomposed into a series of issues and entered on GitHub. - -(provide link) +The accompanying [implementation](./implementation.md) document breaks the recommendations down into +concrete actions that can be implemented by project contributors. Its focus is +on drilling down to specific, achievable work that can be completed in +constrained blocks of time. Ultimately, the implementation items are decomposed +into a series of issues and entered on GitHub `https://github.com/kubevirt/kubevirt/issues`. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation](implementation.md) plan and -[issues list](./issues-list.md). +read the [implementation](./implementation.md) plan and [issues list](./issues-list.md). Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -106,16 +104,15 @@ and suggests possible improvements. In most cases there is more than one way to do things. Few recommendations here are meant to be prescriptive. Rather, the recommended implementations represent the reviewers' experience with how to apply documentation best practices. In other words, borrowing terminology from -the lexicon of RFCs, the changes described here should be understood as -"recommended" or "should" at the strongest, and "optional" or "may" in many +the lexicon of RFCs, the changes described here should be understood +as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. ## Project documentation -_PROJECT_ is an **incubating** project of CNCF. This means that the project -should be developing professional-quality documentation alongside the project -code. +KubeVirt is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project code. | Criterion | [Rating (1-5)] | | -------------------------- | -------------- | @@ -222,9 +219,16 @@ We evaluate on the following: ## Contributor documentation -_PROJECT_ is an **incubating** project of CNCF. This means that the project -should be developing professional-quality documentation alongside the project -code. +> AUTHOR NOTE: Pick the CNCF maturity level of the project: + +KubeVirt is a **graduated** project of CNCF. This means that the project should +have [_very high_][criteria] standards for documentation. + +> AUTHOR NOTE: or + +KubeVirt is an **incubating** project of CNCF. This means that the project +should be [_developing_][criteria] professional-quality documentation alongside +the project code. | Criterion | [Rating (1-5)] | | ----------------------------------------- | -------------- | @@ -302,3 +306,218 @@ We evaluate on the following: #### New contributor getting started content #### Project governance documentation + +## Website and infrastructure + +> AUTHOR NOTE: Pick the CNCF maturity level of the project: + +KubeVirt is a **graduated** project of CNCF. This means that the project should +have [_very high_][criteria] standards for documentation. + +> AUTHOR NOTE: or + +KubeVirt is an **incubating** project of CNCF. This means that the project +should be [_developing_][criteria] professional-quality documentation alongside +the project code. + +| Criterion | [Rating (1-5)] | +| ------------------------------------------- | -------------- | +| Single-source for all files | [rating (1-5)] | +| Meets min website req. (for maturity level) | [rating (1-5)] | +| Usability, accessibility, and design | [rating (1-5)] | +| Branding and design | [rating (1-5)] | +| Case studies/social proof | [rating (1-5)] | +| SEO, Analytics, and site-local search | [rating (1-5)] | +| Maintenance planning | [rating (1-5)] | +| A11y plan & implementation | [rating (1-5)] | +| Mobile-first plan & impl. | [rating (1-5)] | +| HTTPS access & HTTP redirect | [rating (1-5)] | +| Google Analytics 4 for production only | [rating (1-5)] | +| Indexing allowed for production server only | [rating (1-5)] | +| Intra-site / local search | [rating (1-5)] | +| Account custodians are documented | [rating (1-5)] | + +### Comments + +> AUTHOR NOTE: make any overall comments about the Website and documentation +> infrastructure here. + +The following sections contain brief assessments of each element of the Website +and documentation infrastructure rubric. + +> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet +> these criteria. Keep in mind that much of the website infrastructure criteria +> depend on the tools (static site generator, website framework and hosting, +> analytics tools, etc.) and processes (project CI, release procedures, +> governance, etc.) used to produce the documentation. (Criteria are copied from +> criteria.md) + +#### Single-source requirement + +Source files for _all website pages_ should reside in a single repo. Among other +problems, keeping source files in two places: + +- confuses contributors +- requires you to keep two sources in sync +- increases the likelihood of errors +- makes it more complicated to generate the documentation from source files + +Ideally, all website files should be in the **website repo** itself. +Alternatively, files should be brought into the website repo via [git +submodules][git-submodules]. + +If a project chooses to keep source files in multiple repos, they need a clearly +documented strategy for managing mirrored files and new contributions. + +#### Minimal website requirements + +Listed here are the minimal website requirements for projects based on their +[maturity level][maturity-level], either incubating or graduated. (These are the +only two levels for which a tech docs analysis can be requested.) + + + +| Criterion | Incubating Requirement | Graduated Requirement | +| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | +| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | +| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | +| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | +| **Project doc**: hosting | Hosted directly | Hosted directly | +| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | + + + +[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules +[maturity-level]: + https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations +[cncf-servicedesk]: https://servicedesk.cncf.io + +#### Usability, accessibility and devices + +Most CNCF websites are accessed from mobile and other non-desktop devices at +least 10-20% of the time. Planning for this early in your website's design will +be much less effort than retrofitting a desktop-first design. + +- Is the website usable from mobile? +- Are doc pages readable? +- Are all / most website features accessible from mobile -- such as the top-nav, + site search and in-page table of contents? +- Might a [mobile-first] design make sense for your project? + +[mobile-first]: + https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first + +Plan for suitable [accessibility][] measures for your website. For example: + +- Are color contrasts significant enough for color-impaired readers? +- Are most website features usable using a keyboard only? +- Does text-to-speech offer listeners a good experience? + +It is up to each project to set their own guidelines. + +[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility + +#### Branding and design + +CNCF seeks to support enterprise-ready open source software. A key aspect of +this is branding and marketing. + +We evaluate on the following: + +- Is there an easily recognizable brand for the project (logo + color scheme) + clearly identifiable? +- Is the brand used across the website consistently? +- Is the website’s typography clean and well-suited for reading? + +#### Case studies/social proof + +One of the best ways to advertise an open source project is to show other +organizations using it. + +We evaluate on the following: + +- Are there case studies available for the project and are they documented on + the website? +- Are there user testimonials available? +- Is there an active project blog? +- Are there community talks for the project and are they present on the website? +- Is there a logo wall of users/participating organizations? + +#### SEO, Analytics and site-local search + +SEO helps users find your project and it's documentation, and analytics helps +you monitor site traffic and diagnose issues like page 404s. Intra-site search, +while optional, can offer your readers a site-focused search results. + +We evaluate on the following: + +- Analytics: + - Is analytics enabled for the production server? + - Is analytics disabled for all other deploys? + - If your project used Google Analytics, have you migrated to GA4? + - Can Page-not-found (404) reports easily be generated from you site + analytics? Provide a sample of the site's current top-10 404s. +- Is site indexing supported for the production server, while disabled for + website previews and builds for non-default branches? +- Is local intra-site search available from the website? +- Are the current custodian(s) of the following accounts clearly documented: + analytics, Google Search Console, site-search (such as Google CSE or Algolia) + +#### Maintenance planning + +Website maintenance is an important part of project success, especially when +project maintainers aren’t web developers. + +We evaluate on the following: + +- Is your website tooling well supported by the community (i.e., Hugo with the + Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) +- Are you actively cultivating website maintainers from within the community? +- Are site build times reasonable? +- Do site maintainers have adequate permissions? + +#### Other + +- Is your website accessible via HTTPS? +- Does HTTP access, if any, redirect to HTTPS? + +### Recommendations + +> AUTHOR NOTE: Write general recommendations based on the comments from the +> previous section. + +#### Single-source requirement + +#### Minimal website requirements + +#### Usability, accessibility and devices + +#### Branding and design + +#### Case studies/social proof + +#### SEO, Analytics and site-local search + +#### Maintenance planning + +#### Other + +#### References and notes + +##### Rating values + +The numeric rating values used in this document are as follows + +1. Not present +2. Needs improvement +3. Meets standards +4. Meets or exceeds standards +5. Exemplary + +[criteria]: ../criteria.md +[implementation]: ./implementation.md +[issues list]: ./issues-list.md +[project-website]: ?fixme-target-dne=https://kubevirt.o +[Rating (1-5)]: #rating-values +[rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 +[website guidelines]: ../../website-guidelines-checklist.md diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index ab4a2d43..0ed54ff6 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,5 +1,6 @@ --- -title: Implementing _PROJECT_ Doc Improvements +title: Implementing KubeVirt Doc Improvements +tags: KubeVirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -23,7 +24,7 @@ things. Few recommendations here are meant to be prescriptive. Rather, recommendations are based on documentation best practices as understood by the reviewers. The recommended implementations represent the reviewers' experience with how to apply those best practices. In other words, borrowing terminology -from the lexicon of RFCs (rfc-keywords), the changes described here should be +from the lexicon of [RFCs][rfc-keywords], the changes described here should be understood as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. @@ -48,4 +49,4 @@ The top-level documentation recommendations for this project are: ### Issue 2 - +[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index 3c5acdb9..dff25610 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,5 +1,6 @@ --- -title: _PROJECT_ Umbrella Issue and Issues List +title: KubeVirt Umbrella Issue and Issues List +tags: KubeVirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -24,7 +25,7 @@ author: iRaindrop This issue tracks recommended changes resulting from an analysis of the _PROJECT_ documentation commissioned by CNCF. The analysis and supporting documents are here: https://github.com/cncf/techdocs/tree/main/analyses under -`2026`. +`00NN-project`. The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues @@ -38,7 +39,7 @@ https://github.com/cncf/techdocs/issues This is a list of issues representing the recommended work on the _PROJECT_ website and technical documentation. -> AUTHOR NOTE: Consider using the issue.md template. +> AUTHOR NOTE: Consider using the [issue](issue.md) template. ### Issue: Item 1 @@ -47,6 +48,8 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - +- [ ] `https://github.com/_PROJECT_/repo/issues/NNN` ### Issue: Item 2 + +> AUTHOR NOTE: ... and so on. diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 3bd20921..75b8b198 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,10 +1,16 @@ --- -title: _PROJECT_ Issue +title: KubeVirt Issue +tags: KubeVirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop --- +> AUTHOR NOTE: This template provides one possible format for the individual +> issues filed in the Issues of a project repository. Within the CNCF tech docs +> repo, include all issues in one document, `_PROJECT_-issues.md`. See any +> completed analysis for an example. + ## Overview > AUTHOR NOTE: @@ -35,6 +41,9 @@ here: https://github.com/cncf/techdocs/tree/main/analyses under `00NN-project`. Related material in the current doc: +- For example, + `https://github.com/_PROJECT_/website/tree/main/content/en/docs/v3.5/tutorials` + > AUTHOR NOTE: Describe in detail a suggested way to achieve the goals of the > issue. This should be specific enough to provide a contributor with a recipe > for making the change; however, the contributor should feel free to solve the From 6662b24327805b9ecdd563f55433ac9198ec1875 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 19:59:29 -0700 Subject: [PATCH 36/50] spelling fixes - prittier Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 69 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 4 +- analyses/2026/kubevirt/issues-list.md | 4 +- analyses/2026/kubevirt/issues.md | 4 +- 4 files changed, 42 insertions(+), 39 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index e882edb1..d309c622 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Documentation Analysis -tags: KubeVirt +title: Kubevirt Documentation Analysis +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -11,7 +11,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVirt](https://kubevirt.io) open source software (OSS) project's +[Kubevirt](https://Kubevirt.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -23,17 +23,17 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVirt +This document was written to analyze the current state of Kubevirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second -[implementation](implementation.md) document outlines an actionable plan for +[implementation](.implementation.md) document outlines an actionable plan for improvement. A third document is an [issues list](issues-list.md) of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. This document: -- Analyzes the current KubeVirt technical documentation and website +- Analyzes the current Kubevirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -41,51 +41,53 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVirt GitHub repository. +Kubevirt GitHub repository. -The KubeVirt website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static -site generator with the [Docsy, other] theme and served from [the Netlify -platform, other]. The site's code is stored on the KubeVirt GitHub repo. +The Kubevirt website and documentation are written in Markdown and are compiled +using the [Hugo, Docusaurus, Sphinx, other] static site generator with the +[Docsy, other] theme and served from [the Netlify platform, other]. The site's +code is stored on the Kubevirt GitHub repo. #### In scope -- Website: https://kubevirt.io -- Documentation: https://kubevirt.io/user-guide -- Website repo: https://github.com/kubevirt/user-guide - +- Website: https://Kubevirt.io +- Documentation: https://Kubevirt.io/user-guide +- Website repo: https://github.com/Kubevirt/user-guide #### Out of scope -- Other KubeVirt GitHub repositories besides `user-guide`. +- Other Kubevirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVirt +- **Project documentation:** concerns documentation for users of the Kubevirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVirt OSS project. + contributors to the Kubevirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVirt users achieve their goals. + how it does or does not help Kubevirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -The accompanying [implementation](./implementation.md) document breaks the recommendations down into -concrete actions that can be implemented by project contributors. Its focus is -on drilling down to specific, achievable work that can be completed in -constrained blocks of time. Ultimately, the implementation items are decomposed -into a series of issues and entered on GitHub `https://github.com/kubevirt/kubevirt/issues`. +The accompanying [implementation](./implementation.md) document breaks the +recommendations down into concrete actions that can be implemented by project +contributors. Its focus is on drilling down to specific, achievable work that +can be completed in constrained blocks of time. Ultimately, the implementation +items are decomposed into a series of issues and entered on GitHub +`https://github.com/Kubevirt/Kubevirt/issues`. ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation](./implementation.md) plan and [issues list](./issues-list.md). +read the [implementation](./implementation.md) plan and +[issues list](./issues-list.md). Readers interested in the current state of the documentation and the reasoning behind the recommendations should read the section of this document pertaining @@ -104,15 +106,16 @@ and suggests possible improvements. In most cases there is more than one way to do things. Few recommendations here are meant to be prescriptive. Rather, the recommended implementations represent the reviewers' experience with how to apply documentation best practices. In other words, borrowing terminology from -the lexicon of RFCs, the changes described here should be understood -as "recommended" or "should" at the strongest, and "optional" or "may" in many +the lexicon of RFCs, the changes described here should be understood as +"recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVirt is an **incubating** project of CNCF. This means that the project -should be developing professional-quality documentation alongside the project code. +Kubevirt is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project +code. | Criterion | [Rating (1-5)] | | -------------------------- | -------------- | @@ -221,12 +224,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -KubeVirt is a **graduated** project of CNCF. This means that the project should +Kubevirt is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -KubeVirt is an **incubating** project of CNCF. This means that the project +Kubevirt is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -311,12 +314,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -KubeVirt is a **graduated** project of CNCF. This means that the project should +Kubevirt is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -KubeVirt is an **incubating** project of CNCF. This means that the project +Kubevirt is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -517,7 +520,7 @@ The numeric rating values used in this document are as follows [criteria]: ../criteria.md [implementation]: ./implementation.md [issues list]: ./issues-list.md -[project-website]: ?fixme-target-dne=https://kubevirt.o +[project-website]: ?fixme-target-dne=https://Kubevirt.o [Rating (1-5)]: #rating-values [rfc-spec]: https://www.rfc-editor.org/rfc/rfc2119 [website guidelines]: ../../website-guidelines-checklist.md diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index 0ed54ff6..6d91fa2e 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,6 +1,6 @@ --- -title: Implementing KubeVirt Doc Improvements -tags: KubeVirt +title: Implementing Kubevirt Doc Improvements +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index dff25610..f410fbf8 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Umbrella Issue and Issues List -tags: KubeVirt +title: Kubevirt Umbrella Issue and Issues List +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 75b8b198..2169d207 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,6 +1,6 @@ --- -title: KubeVirt Issue -tags: KubeVirt +title: Kubevirt Issue +tags: Kubevirt created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From cce2d088a084330443320bc8e3f0a58524c36c4c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 21:43:52 -0700 Subject: [PATCH 37/50] format fixes Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 48 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 6 +-- analyses/2026/kubevirt/issues-list.md | 7 ++-- analyses/2026/kubevirt/issues.md | 4 +- 4 files changed, 32 insertions(+), 33 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index d309c622..bfdfd1a1 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,6 +1,6 @@ --- -title: Kubevirt Documentation Analysis -tags: Kubevirt +title: KubeVIRT Documentation Analysis +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -11,7 +11,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[Kubevirt](https://Kubevirt.io) open source software (OSS) project's +[KubeVIRT](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -23,7 +23,7 @@ efforts. ### Purpose -This document was written to analyze the current state of Kubevirt +This document was written to analyze the current state of KubeVIRT documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -33,7 +33,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current Kubevirt technical documentation and website +- Analyzes the current KubeVIRT technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -41,38 +41,38 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -Kubevirt GitHub repository. +KubeVIRT GitHub repository. -The Kubevirt website and documentation are written in Markdown and are compiled +The KubeVIRT website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with the [Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the Kubevirt GitHub repo. +code is stored on the KubeVIRT GitHub repo. #### In scope -- Website: https://Kubevirt.io -- Documentation: https://Kubevirt.io/user-guide -- Website repo: https://github.com/Kubevirt/user-guide +- Website: https://KubeVIRT.io +- Documentation: https://KubeVIRT.io/user-guide +- Website repo: https://github.com/KubeVIRT/user-guide #### Out of scope -- Other Kubevirt GitHub repositories besides `user-guide`. +- Other KubeVIRT GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the Kubevirt +- **Project documentation:** concerns documentation for users of the KubeVIRT software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the Kubevirt OSS project. + contributors to the KubeVIRT OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help Kubevirt users achieve their goals. + how it does or does not help KubeVIRT users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -81,7 +81,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/Kubevirt/Kubevirt/issues`. +`https://github.com/KubeVIRT/KubeVIRT/issues`. ### How to use this document @@ -113,7 +113,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -224,12 +224,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -Kubevirt is a **graduated** project of CNCF. This means that the project should +KubeVIRT is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -314,12 +314,12 @@ We evaluate on the following: > AUTHOR NOTE: Pick the CNCF maturity level of the project: -Kubevirt is a **graduated** project of CNCF. This means that the project should +KubeVIRT is a **graduated** project of CNCF. This means that the project should have [_very high_][criteria] standards for documentation. > AUTHOR NOTE: or -Kubevirt is an **incubating** project of CNCF. This means that the project +KubeVIRT is an **incubating** project of CNCF. This means that the project should be [_developing_][criteria] professional-quality documentation alongside the project code. @@ -517,10 +517,10 @@ The numeric rating values used in this document are as follows 4. Meets or exceeds standards 5. Exemplary -[criteria]: ../criteria.md + diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index 6d91fa2e..afbeae46 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,6 +1,6 @@ --- -title: Implementing Kubevirt Doc Improvements -tags: Kubevirt +title: Implementing KubeVIRT Doc Improvements +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -49,4 +49,4 @@ The top-level documentation recommendations for this project are: ### Issue 2 -[rfc-keywords]: https://www.rfc-editor.org/rfc/rfc2119 + diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index f410fbf8..3eb4d8ac 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,6 +1,6 @@ --- -title: Kubevirt Umbrella Issue and Issues List -tags: Kubevirt +title: KubeVIRT Umbrella Issue and Issues List +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -48,8 +48,7 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. -- [ ] `https://github.com/_PROJECT_/repo/issues/NNN` + ### Issue: Item 2 -> AUTHOR NOTE: ... and so on. diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 2169d207..22bf54ef 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,6 +1,6 @@ --- -title: Kubevirt Issue -tags: Kubevirt +title: KubeVIRT Issue +tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From a7e3f6cee835d9819fe1cd921a03ca989f9d42ce Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 22:15:39 -0700 Subject: [PATCH 38/50] more format fixes Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 1 - analyses/2026/kubevirt/implementation.md | 1 - analyses/2026/kubevirt/issues-list.md | 2 -- analyses/2026/kubevirt/issues.md | 1 - 4 files changed, 5 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index bfdfd1a1..00ecaa7a 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Documentation Analysis -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index afbeae46..5f4a6d98 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,6 +1,5 @@ --- title: Implementing KubeVIRT Doc Improvements -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index 3eb4d8ac..1284b55f 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Umbrella Issue and Issues List -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -51,4 +50,3 @@ website and technical documentation. ### Issue: Item 2 - diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 22bf54ef..e4efe4ec 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,6 +1,5 @@ --- title: KubeVIRT Issue -tags: KubeVIRT created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From 2f9ceb5fde95399c630a8d96e4bfe343049ffbb9 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Jun 2026 22:40:53 -0700 Subject: [PATCH 39/50] KubeVirt spelling false hit fix 1 Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 258 ++------------------------ analyses/2026/kubevirt/issues-list.md | 15 +- 2 files changed, 25 insertions(+), 248 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 00ecaa7a..8b9d99b6 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Documentation Analysis +title: "KubeVirt" Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVIRT](https://KubeVIRT.io) open source software (OSS) project's +["KubeVirt"](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVIRT +This document was written to analyze the current state of "KubeVirt" documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current KubeVIRT technical documentation and website +- Analyzes the current "KubeVirt" technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,12 +40,12 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVIRT GitHub repository. +"KubeVirt" GitHub repository. -The KubeVIRT website and documentation are written in Markdown and are compiled -using the [Hugo, Docusaurus, Sphinx, other] static site generator with the -[Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the KubeVIRT GitHub repo. +The "KubeVirt" website and documentation are written in Markdown and are +compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with +the [Docsy, other] theme and served from [the Netlify platform, other]. The +site's code is stored on the "KubeVirt" GitHub repo. #### In scope @@ -55,23 +55,23 @@ code is stored on the KubeVIRT GitHub repo. #### Out of scope -- Other KubeVIRT GitHub repositories besides `user-guide`. +- Other "KubeVirt" GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVIRT +- **Project documentation:** concerns documentation for users of the "KubeVirt" software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVIRT OSS project. + contributors to the "KubeVirt" OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVIRT users achieve their goals. + how it does or does not help "KubeVirt" users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -80,7 +80,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/KubeVIRT/KubeVIRT/issues`. +`https://github.com/KubeVirt/KubeVIRT/issues`. ### How to use this document @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVIRT is an **incubating** project of CNCF. This means that the project +"KubeVirt" is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,16 +221,9 @@ We evaluate on the following: ## Contributor documentation -> AUTHOR NOTE: Pick the CNCF maturity level of the project: - -KubeVIRT is a **graduated** project of CNCF. This means that the project should -have [_very high_][criteria] standards for documentation. - -> AUTHOR NOTE: or - -KubeVIRT is an **incubating** project of CNCF. This means that the project -should be [_developing_][criteria] professional-quality documentation alongside -the project code. +"KubeVirt" is an **incubating** project of CNCF. This means that the project +should be developing professional-quality documentation alongside the project +code. | Criterion | [Rating (1-5)] | | ----------------------------------------- | -------------- | @@ -308,218 +301,3 @@ We evaluate on the following: #### New contributor getting started content #### Project governance documentation - -## Website and infrastructure - -> AUTHOR NOTE: Pick the CNCF maturity level of the project: - -KubeVIRT is a **graduated** project of CNCF. This means that the project should -have [_very high_][criteria] standards for documentation. - -> AUTHOR NOTE: or - -KubeVIRT is an **incubating** project of CNCF. This means that the project -should be [_developing_][criteria] professional-quality documentation alongside -the project code. - -| Criterion | [Rating (1-5)] | -| ------------------------------------------- | -------------- | -| Single-source for all files | [rating (1-5)] | -| Meets min website req. (for maturity level) | [rating (1-5)] | -| Usability, accessibility, and design | [rating (1-5)] | -| Branding and design | [rating (1-5)] | -| Case studies/social proof | [rating (1-5)] | -| SEO, Analytics, and site-local search | [rating (1-5)] | -| Maintenance planning | [rating (1-5)] | -| A11y plan & implementation | [rating (1-5)] | -| Mobile-first plan & impl. | [rating (1-5)] | -| HTTPS access & HTTP redirect | [rating (1-5)] | -| Google Analytics 4 for production only | [rating (1-5)] | -| Indexing allowed for production server only | [rating (1-5)] | -| Intra-site / local search | [rating (1-5)] | -| Account custodians are documented | [rating (1-5)] | - -### Comments - -> AUTHOR NOTE: make any overall comments about the Website and documentation -> infrastructure here. - -The following sections contain brief assessments of each element of the Website -and documentation infrastructure rubric. - -> AUTHOR NOTE: for each heading below, discuss how well the in-scope items meet -> these criteria. Keep in mind that much of the website infrastructure criteria -> depend on the tools (static site generator, website framework and hosting, -> analytics tools, etc.) and processes (project CI, release procedures, -> governance, etc.) used to produce the documentation. (Criteria are copied from -> criteria.md) - -#### Single-source requirement - -Source files for _all website pages_ should reside in a single repo. Among other -problems, keeping source files in two places: - -- confuses contributors -- requires you to keep two sources in sync -- increases the likelihood of errors -- makes it more complicated to generate the documentation from source files - -Ideally, all website files should be in the **website repo** itself. -Alternatively, files should be brought into the website repo via [git -submodules][git-submodules]. - -If a project chooses to keep source files in multiple repos, they need a clearly -documented strategy for managing mirrored files and new contributions. - -#### Minimal website requirements - -Listed here are the minimal website requirements for projects based on their -[maturity level][maturity-level], either incubating or graduated. (These are the -only two levels for which a tech docs analysis can be requested.) - - - -| Criterion | Incubating Requirement | Graduated Requirement | -| ----------------------------- | ------------------------------------------------------- | ----------------------------------------- | -| [Website guidelines] | All guidelines satisfied | All guidelines satisfied | -| **Docs analysis** (this) | Requested through CNCF [service desk][cncf-servicedesk] | All follow-up actions addressed | -| **Project doc**: stakeholders | Roles identified and doc needs documented | All stakeholder need identified | -| **Project doc**: hosting | Hosted directly | Hosted directly | -| **Project doc**: user docs | Comprehensive, addressing most stakeholder needs | Fully addresses needs of key stakeholders | - - - -[git-submodules]: https://git-scm.com/book/en/v2/Git-Tools-Submodules -[maturity-level]: - https://github.com/cncf/toc/tree/main/process#ii-stages---definitions--expectations -[cncf-servicedesk]: https://servicedesk.cncf.io - -#### Usability, accessibility and devices - -Most CNCF websites are accessed from mobile and other non-desktop devices at -least 10-20% of the time. Planning for this early in your website's design will -be much less effort than retrofitting a desktop-first design. - -- Is the website usable from mobile? -- Are doc pages readable? -- Are all / most website features accessible from mobile -- such as the top-nav, - site search and in-page table of contents? -- Might a [mobile-first] design make sense for your project? - -[mobile-first]: - https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first - -Plan for suitable [accessibility][] measures for your website. For example: - -- Are color contrasts significant enough for color-impaired readers? -- Are most website features usable using a keyboard only? -- Does text-to-speech offer listeners a good experience? - -It is up to each project to set their own guidelines. - -[accessibility]: https://developer.mozilla.org/en-US/docs/Web/Accessibility - -#### Branding and design - -CNCF seeks to support enterprise-ready open source software. A key aspect of -this is branding and marketing. - -We evaluate on the following: - -- Is there an easily recognizable brand for the project (logo + color scheme) - clearly identifiable? -- Is the brand used across the website consistently? -- Is the website’s typography clean and well-suited for reading? - -#### Case studies/social proof - -One of the best ways to advertise an open source project is to show other -organizations using it. - -We evaluate on the following: - -- Are there case studies available for the project and are they documented on - the website? -- Are there user testimonials available? -- Is there an active project blog? -- Are there community talks for the project and are they present on the website? -- Is there a logo wall of users/participating organizations? - -#### SEO, Analytics and site-local search - -SEO helps users find your project and it's documentation, and analytics helps -you monitor site traffic and diagnose issues like page 404s. Intra-site search, -while optional, can offer your readers a site-focused search results. - -We evaluate on the following: - -- Analytics: - - Is analytics enabled for the production server? - - Is analytics disabled for all other deploys? - - If your project used Google Analytics, have you migrated to GA4? - - Can Page-not-found (404) reports easily be generated from you site - analytics? Provide a sample of the site's current top-10 404s. -- Is site indexing supported for the production server, while disabled for - website previews and builds for non-default branches? -- Is local intra-site search available from the website? -- Are the current custodian(s) of the following accounts clearly documented: - analytics, Google Search Console, site-search (such as Google CSE or Algolia) - -#### Maintenance planning - -Website maintenance is an important part of project success, especially when -project maintainers aren’t web developers. - -We evaluate on the following: - -- Is your website tooling well supported by the community (i.e., Hugo with the - Docsy theme) or commonly used by CNCF projects (our recommended tech stack?) -- Are you actively cultivating website maintainers from within the community? -- Are site build times reasonable? -- Do site maintainers have adequate permissions? - -#### Other - -- Is your website accessible via HTTPS? -- Does HTTP access, if any, redirect to HTTPS? - -### Recommendations - -> AUTHOR NOTE: Write general recommendations based on the comments from the -> previous section. - -#### Single-source requirement - -#### Minimal website requirements - -#### Usability, accessibility and devices - -#### Branding and design - -#### Case studies/social proof - -#### SEO, Analytics and site-local search - -#### Maintenance planning - -#### Other - -#### References and notes - -##### Rating values - -The numeric rating values used in this document are as follows - -1. Not present -2. Needs improvement -3. Meets standards -4. Meets or exceeds standards -5. Exemplary - - diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index 1284b55f..ffd5712c 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -21,12 +21,11 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the -_PROJECT_ documentation commissioned by CNCF. The analysis and supporting -documents are here: https://github.com/cncf/techdocs/tree/main/analyses under -`00NN-project`. +This issue tracks recommended changes resulting from an analysis of the KubeVIRT +documentation commissioned by CNCF. The analysis and supporting documents are +here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. -The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF KubeVIRT documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -35,10 +34,10 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the _PROJECT_ +This is a list of issues representing the recommended work on the KubeVIRT website and technical documentation. -> AUTHOR NOTE: Consider using the [issue](issue.md) template. +> AUTHOR NOTE: Consider using the issue.md template. ### Issue: Item 1 @@ -47,6 +46,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 From c0dd843fa5d79796df0b85da0673c8c059bca504 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 12:54:59 -0700 Subject: [PATCH 40/50] digging out Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 30 ++++++++++++------------ analyses/2026/kubevirt/implementation.md | 4 ++-- analyses/2026/kubevirt/issues-list.md | 10 ++++---- analyses/2026/kubevirt/issues.md | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 8b9d99b6..81962673 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: "KubeVirt" Documentation Analysis +title: KubeVirt Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -["KubeVirt"](https://KubeVIRT.io) open source software (OSS) project's +[KubeVirt](https://KubeVIRT.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of "KubeVirt" +This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](.implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current "KubeVirt" technical documentation and website +- Analyzes the current KubeVirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,12 +40,12 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -"KubeVirt" GitHub repository. +KubeVirt GitHub repository. -The "KubeVirt" website and documentation are written in Markdown and are -compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with -the [Docsy, other] theme and served from [the Netlify platform, other]. The -site's code is stored on the "KubeVirt" GitHub repo. +The KubeVirt website and documentation are written in Markdown and are compiled +using the [Hugo, Docusaurus, Sphinx, other] static site generator with the +[Docsy, other] theme and served from [the Netlify platform, other]. The site's +code is stored on the KubeVirt GitHub repo. #### In scope @@ -55,23 +55,23 @@ site's code is stored on the "KubeVirt" GitHub repo. #### Out of scope -- Other "KubeVirt" GitHub repositories besides `user-guide`. +- Other KubeVirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the "KubeVirt" +- **Project documentation:** concerns documentation for users of the KubeVirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the "KubeVirt" OSS project. + contributors to the KubeVirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help "KubeVirt" users achieve their goals. + how it does or does not help KubeVirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -"KubeVirt" is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,7 +221,7 @@ We evaluate on the following: ## Contributor documentation -"KubeVirt" is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index 5f4a6d98..f8fe4bc6 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,5 +1,5 @@ --- -title: Implementing KubeVIRT Doc Improvements +title: Implementing KubeVirt Doc Improvements created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -23,7 +23,7 @@ things. Few recommendations here are meant to be prescriptive. Rather, recommendations are based on documentation best practices as understood by the reviewers. The recommended implementations represent the reviewers' experience with how to apply those best practices. In other words, borrowing terminology -from the lexicon of [RFCs][rfc-keywords], the changes described here should be +from the lexicon of RFCs (rfc-keywords), the changes described here should be understood as "recommended" or "should" at the strongest, and "optional" or "may" in many cases. Any "must" or "required" actions are clearly denoted as such, and pertain to legal requirements such as copyright and licensing issues. diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index ffd5712c..e06198d7 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Umbrella Issue and Issues List +title: KubeVirt Umbrella Issue and Issues List created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -21,11 +21,11 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the KubeVIRT +This issue tracks recommended changes resulting from an analysis of the KubeVirt documentation commissioned by CNCF. The analysis and supporting documents are here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. -The CNCF KubeVIRT documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF KubeVirt documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -34,7 +34,7 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the KubeVIRT +This is a list of issues representing the recommended work on the KubeVirt website and technical documentation. > AUTHOR NOTE: Consider using the issue.md template. @@ -46,6 +46,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index e4efe4ec..be18ad6a 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,5 +1,5 @@ --- -title: KubeVIRT Issue +title: KubeVirt Issue created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From 89500ad32c0036bb3db2139acccaa78265f3da35 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:16:11 -0700 Subject: [PATCH 41/50] spelling issues fixes Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 81962673..66c89db9 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -25,7 +25,7 @@ efforts. This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second -[implementation](.implementation.md) document outlines an actionable plan for +[implementation](implementation.md) document outlines an actionable plan for improvement. A third document is an [issues list](issues-list.md) of issues to be added to the project documentation repository. These issues can be taken up by contributors to improve the documentation. @@ -75,7 +75,7 @@ Each section begins with summary ratings based on a rubric with appropriate - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. -The accompanying [implementation](./implementation.md) document breaks the +The accompanying [implementation](implementation.md) document breaks the recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation @@ -85,7 +85,7 @@ items are decomposed into a series of issues and entered on GitHub ### How to use this document Readers interested only in actionable improvements should skip this document and -read the [implementation](./implementation.md) plan and +read the [implementation](implementation.md) plan and [issues list](./issues-list.md). Readers interested in the current state of the documentation and the reasoning From e00bd18a2a42d50b5fd42a00bf6132cc77d29758 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:31:33 -0700 Subject: [PATCH 42/50] spelling extentsions test Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/implementation.md | 2 +- analyses/2026/kubevirt/issues-list.md | 15 ++++++++------- analyses/2026/kubevirt/issues.md | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/analyses/2026/kubevirt/implementation.md b/analyses/2026/kubevirt/implementation.md index f8fe4bc6..ab4a2d43 100644 --- a/analyses/2026/kubevirt/implementation.md +++ b/analyses/2026/kubevirt/implementation.md @@ -1,5 +1,5 @@ --- -title: Implementing KubeVirt Doc Improvements +title: Implementing _PROJECT_ Doc Improvements created: 2026-05-24 modified: 2026-05-31 author: iRaindrop diff --git a/analyses/2026/kubevirt/issues-list.md b/analyses/2026/kubevirt/issues-list.md index e06198d7..3c5acdb9 100644 --- a/analyses/2026/kubevirt/issues-list.md +++ b/analyses/2026/kubevirt/issues-list.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Umbrella Issue and Issues List +title: _PROJECT_ Umbrella Issue and Issues List created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -21,11 +21,12 @@ author: iRaindrop > - The following is boilerplate language to include in the umbrella issue in > the repo: -This issue tracks recommended changes resulting from an analysis of the KubeVirt -documentation commissioned by CNCF. The analysis and supporting documents are -here: https://github.com/cncf/techdocs/tree/main/analyses under `2026`. +This issue tracks recommended changes resulting from an analysis of the +_PROJECT_ documentation commissioned by CNCF. The analysis and supporting +documents are here: https://github.com/cncf/techdocs/tree/main/analyses under +`2026`. -The CNCF KubeVirt documentation effort is tracked in the CNCF Tech Docs repo: +The CNCF _PROJECT_ documentation effort is tracked in the CNCF Tech Docs repo: https://github.com/cncf/techdocs/issues ## Umbrella issue @@ -34,7 +35,7 @@ https://github.com/cncf/techdocs/issues ## Issues -This is a list of issues representing the recommended work on the KubeVirt +This is a list of issues representing the recommended work on the _PROJECT_ website and technical documentation. > AUTHOR NOTE: Consider using the issue.md template. @@ -46,6 +47,6 @@ website and technical documentation. > in the issue itself. In the GitHub umbrella issue, link to the sub-issue using > a Markdown checkbox as shown below. - + ### Issue: Item 2 diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index be18ad6a..4d91874f 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Issue +title: _PROJECT_ Issue created: 2026-05-24 modified: 2026-05-31 author: iRaindrop From c31d10dcde539baf32c4928cdf536ca723bb305d Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:37:14 -0700 Subject: [PATCH 43/50] replaced KubeVirt with _PROJECT_ until fix Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 66c89db9..2b9aa0d1 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: KubeVirt Documentation Analysis +title: _PROJECT_ Documentation Analysis created: 2026-05-24 modified: 2026-05-31 author: iRaindrop @@ -10,7 +10,7 @@ author: iRaindrop ## Introduction This document is an analyzes the effectiveness and completeness of the -[KubeVirt](https://KubeVIRT.io) open source software (OSS) project's +[_PROJECT_](https://_PROJECT_.io) open source software (OSS) project's documentation and website. It is funded by the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of KubeVirt +This document was written to analyze the current state of _PROJECT_ documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current KubeVirt technical documentation and website +- Analyzes the current _PROJECT_ technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,38 +40,38 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -KubeVirt GitHub repository. +_PROJECT_ GitHub repository. -The KubeVirt website and documentation are written in Markdown and are compiled +The _PROJECT_ website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with the [Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the KubeVirt GitHub repo. +code is stored on the _PROJECT_ GitHub repo. #### In scope -- Website: https://KubeVIRT.io -- Documentation: https://KubeVIRT.io/user-guide -- Website repo: https://github.com/KubeVIRT/user-guide +- Website: https://_PROJECT_.io +- Documentation: https://_PROJECT_.io/user-guide +- Website repo: https://github.com/_PROJECT_/user-guide #### Out of scope -- Other KubeVirt GitHub repositories besides `user-guide`. +- Other _PROJECT_ GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the KubeVirt +- **Project documentation:** concerns documentation for users of the _PROJECT_ software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the KubeVirt OSS project. + contributors to the _PROJECT_ OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help KubeVirt users achieve their goals. + how it does or does not help _PROJECT_ users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -80,7 +80,7 @@ recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation items are decomposed into a series of issues and entered on GitHub -`https://github.com/KubeVirt/KubeVIRT/issues`. +`https://github.com/_PROJECT_/_PROJECT_/issues`. ### How to use this document @@ -112,7 +112,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -KubeVirt is an **incubating** project of CNCF. This means that the project +_PROJECT_ is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -221,7 +221,7 @@ We evaluate on the following: ## Contributor documentation -KubeVirt is an **incubating** project of CNCF. This means that the project +_PROJECT_ is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. From 9b536b85efcb37334c8f128308acbaecba6abab2 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 13:43:55 -0700 Subject: [PATCH 44/50] link fix Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 2b9aa0d1..486cee95 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -9,11 +9,11 @@ author: iRaindrop ## Introduction -This document is an analyzes the effectiveness and completeness of the -[_PROJECT_](https://_PROJECT_.io) open source software (OSS) project's -documentation and website. It is funded by the Cloud Native Computing Foundation -(CNCF) Foundation as part of its overall effort to incubate, grow, and graduate -open source cloud native software projects. +This document is an analyzes the effectiveness and completeness of the _PROJECT_ +open source software (OSS) project's documentation and website. It is funded by +the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall +effort to incubate, grow, and graduate open source cloud native software +projects. According to CNCF best practices guidelines, effective documentation is a prerequisite for program graduation. The documentation analysis is the first From 4537c7e98e50f8f1260dcf21d6e80b4dc7060cdb Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 14:05:39 -0700 Subject: [PATCH 45/50] misc fixes Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 9 +++++---- analyses/2026/kubevirt/issues.md | 8 -------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 486cee95..8aa1dc22 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -49,9 +49,9 @@ code is stored on the _PROJECT_ GitHub repo. #### In scope -- Website: https://_PROJECT_.io + #### Out of scope @@ -79,8 +79,9 @@ The accompanying [implementation](implementation.md) document breaks the recommendations down into concrete actions that can be implemented by project contributors. Its focus is on drilling down to specific, achievable work that can be completed in constrained blocks of time. Ultimately, the implementation -items are decomposed into a series of issues and entered on GitHub -`https://github.com/_PROJECT_/_PROJECT_/issues`. +items are decomposed into a series of issues and entered on GitHub. + +(provide link) ### How to use this document diff --git a/analyses/2026/kubevirt/issues.md b/analyses/2026/kubevirt/issues.md index 4d91874f..3bd20921 100644 --- a/analyses/2026/kubevirt/issues.md +++ b/analyses/2026/kubevirt/issues.md @@ -5,11 +5,6 @@ modified: 2026-05-31 author: iRaindrop --- -> AUTHOR NOTE: This template provides one possible format for the individual -> issues filed in the Issues of a project repository. Within the CNCF tech docs -> repo, include all issues in one document, `_PROJECT_-issues.md`. See any -> completed analysis for an example. - ## Overview > AUTHOR NOTE: @@ -40,9 +35,6 @@ here: https://github.com/cncf/techdocs/tree/main/analyses under `00NN-project`. Related material in the current doc: -- For example, - `https://github.com/_PROJECT_/website/tree/main/content/en/docs/v3.5/tutorials` - > AUTHOR NOTE: Describe in detail a suggested way to achieve the goals of the > issue. This should be specific enough to provide a contributor with a recipe > for making the change; however, the contributor should feel free to solve the From 55f5d9f508aa67c590366a20a7eb1af52218a4b8 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 14:46:40 -0700 Subject: [PATCH 46/50] minor edit to rebuild Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 8aa1dc22..a01f90a2 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -9,9 +9,9 @@ author: iRaindrop ## Introduction -This document is an analyzes the effectiveness and completeness of the _PROJECT_ -open source software (OSS) project's documentation and website. It is funded by -the Cloud Native Computing Foundation (CNCF) Foundation as part of its overall +This document is an analyzes the effectiveness and completeness of the open +source software (OSS) project's documentation and website. It is funded by the +Cloud Native Computing Foundation (CNCF) Foundation as part of its overall effort to incubate, grow, and graduate open source cloud native software projects. From 1dd52611f5c04259214f1abe089c875fbd9c8990 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Jun 2026 15:15:08 -0700 Subject: [PATCH 47/50] minor edit Signed-off-by: Bruce Hamilton Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index a01f90a2..1c05f85d 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,7 +1,7 @@ --- title: _PROJECT_ Documentation Analysis created: 2026-05-24 -modified: 2026-05-31 +modified: 2026-06-02 author: iRaindrop --- From b1b85434ba4479f2b345678f73adaae097c5994e Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Fri, 5 Jun 2026 09:09:45 -0400 Subject: [PATCH 48/50] Update refcache.json Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- static/refcache.json | 96 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/static/refcache.json b/static/refcache.json index 6263bffb..e04e3920 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -1,8 +1,16 @@ { + "https://afdocs.dev/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.375771-04:00" + }, "https://analytics.google.com": { "StatusCode": 200, "LastSeen": "2026-03-30T15:42:08.467987-04:00" }, + "https://app.element.io/#/room/%23flatcar:matrix.org": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:42.38701-04:00" + }, "https://app.harness.io/auth/#/signin": { "StatusCode": 206, "LastSeen": "2026-04-16T21:15:16.171631-04:00" @@ -795,6 +803,46 @@ "StatusCode": 206, "LastSeen": "2026-04-16T21:15:22.154617-04:00" }, + "https://github.com/flatcar/Flatcar": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:42.207107-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:47.649257-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md#finding-issues": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:48.217076-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/CONTRIBUTING.md#finding-issueslistings": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:51.447963-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/MAINTAINERS.md": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.164136-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/ONBOARDING.md": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:49.789502-04:00" + }, + "https://github.com/flatcar/Flatcar/blob/main/governance.md": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:50.505453-04:00" + }, + "https://github.com/flatcar/Flatcar/discussions/categories/flatcar-office-hours": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:45.366911-04:00" + }, + "https://github.com/flatcar/Flatcar/issues": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:47.005443-04:00" + }, + "https://github.com/flatcar/Flatcar/tree/main": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:49.08531-04:00" + }, "https://github.com/flatcar/flatcar-website": { "StatusCode": 206, "LastSeen": "2026-04-16T21:15:14.378227-04:00" @@ -1475,6 +1523,18 @@ "StatusCode": 206, "LastSeen": "2026-04-16T21:15:20.286722-04:00" }, + "https://groups.google.com/g/flatcar-linux-dev": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:45.962441-04:00" + }, + "https://groups.google.com/g/flatcar-linux-user": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:45.679295-04:00" + }, + "https://hachyderm.io/@flatcar": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:43.844389-04:00" + }, "https://helm.sh/": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:12.576727-04:00" @@ -2131,6 +2191,10 @@ "StatusCode": 206, "LastSeen": "2026-03-30T15:42:03.476847-04:00" }, + "https://kubernetes.slack.com/archives/C03GQ8B5XNJ": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:42.871005-04:00" + }, "https://litmus.com/": { "StatusCode": 206, "LastSeen": "2026-04-16T21:15:15.638313-04:00" @@ -2219,10 +2283,18 @@ "StatusCode": 206, "LastSeen": "2026-04-16T21:15:19.992011-04:00" }, + "https://llmstxt.org": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.57083-04:00" + }, "https://lunrjs.com/": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:04.679563-04:00" }, + "https://meet.flatcar.org/OfficeHours": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:44.522066-04:00" + }, "https://miro.com/app/board/uXjVO_1cS9k=/": { "StatusCode": 200, "LastSeen": "2026-04-16T21:15:16.509278-04:00" @@ -2459,6 +2531,26 @@ "StatusCode": 206, "LastSeen": "2026-04-16T21:15:12.609579-04:00" }, + "https://www.flatcar.org/docs/latest/contribute/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:48.396805-04:00" + }, + "https://www.flatcar.org/docs/latest/installing/bare-metal/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.854798-04:00" + }, + "https://www.flatcar.org/docs/latest/installing/cloud/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.403718-04:00" + }, + "https://www.flatcar.org/docs/latest/installing/community-platforms/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:42.372936-04:00" + }, + "https://www.flatcar.org/docs/latest/installing/vms/": { + "StatusCode": 206, + "LastSeen": "2026-06-05T09:08:41.004954-04:00" + }, "https://www.fluentd.org/testimonials": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:12.835994-04:00" @@ -2507,6 +2599,10 @@ "StatusCode": 206, "LastSeen": "2026-04-16T21:15:22.934277-04:00" }, + "https://x.com/flatcar": { + "StatusCode": 200, + "LastSeen": "2026-06-05T09:08:44.027814-04:00" + }, "https://zoom-lfx.platform.linuxfoundation.org/meeting/95471930872": { "StatusCode": 206, "LastSeen": "2026-03-30T15:42:03.487723-04:00" From ae0c4c5089d1b3b5022b142475b15193cfec8dd8 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Fri, 5 Jun 2026 09:23:26 -0400 Subject: [PATCH 49/50] Add KubeVirt to analysis title and cSpell word list Signed-off-by: Patrice Chalin Signed-off-by: BruceHamilton --- .cspell.yml | 3 ++- analyses/2026/kubevirt/analysis.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.cspell.yml b/.cspell.yml index bf753dbd..5d4ad7a3 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -29,10 +29,11 @@ words: - fluxcd - github - keda - - knative - kedacore + - knative - krator - krook + - kubevirt - mkdocs - nate - nvmrc diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index 1c05f85d..bbaba7c2 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,5 +1,5 @@ --- -title: _PROJECT_ Documentation Analysis +title: KubeVirt Documentation Analysis created: 2026-05-24 modified: 2026-06-02 author: iRaindrop From 349a45ae4338c7af3faf3071270b79604e402a44 Mon Sep 17 00:00:00 2001 From: BruceHamilton Date: Wed, 10 Jun 2026 23:01:29 -0700 Subject: [PATCH 50/50] minor edits - from Linux box Signed-off-by: BruceHamilton --- analyses/2026/kubevirt/analysis.md | 40 +++++++++++++----------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/analyses/2026/kubevirt/analysis.md b/analyses/2026/kubevirt/analysis.md index bbaba7c2..de062c0a 100644 --- a/analyses/2026/kubevirt/analysis.md +++ b/analyses/2026/kubevirt/analysis.md @@ -1,7 +1,7 @@ --- title: KubeVirt Documentation Analysis created: 2026-05-24 -modified: 2026-06-02 +modified: 2026-06-11 author: iRaindrop --- @@ -22,7 +22,7 @@ efforts. ### Purpose -This document was written to analyze the current state of _PROJECT_ +This document was written to analyze the current state of KubeVirt documentation. It aims to provide project leaders with an informed understanding of potential problems in current project documentation. A second [implementation](implementation.md) document outlines an actionable plan for @@ -32,7 +32,7 @@ by contributors to improve the documentation. This document: -- Analyzes the current _PROJECT_ technical documentation and website +- Analyzes the current KubeVirt technical documentation and website - Compares existing documentation against the CNCF’s standards - Recommends a program of key improvements with the largest return on investment @@ -40,38 +40,38 @@ This document: The documentation discussed here includes the entire contents of the website, the technical documentation, and documentation for contributors and users on the -_PROJECT_ GitHub repository. +KubeVirt GitHub repository. -The _PROJECT_ website and documentation are written in Markdown and are compiled +The KubeVirt website and documentation are written in Markdown and are compiled using the [Hugo, Docusaurus, Sphinx, other] static site generator with the [Docsy, other] theme and served from [the Netlify platform, other]. The site's -code is stored on the _PROJECT_ GitHub repo. +code is stored on the KubeVirt GitHub repo. #### In scope - + #### Out of scope -- Other _PROJECT_ GitHub repositories besides `user-guide`. +- Other KubeVirt GitHub repositories besides `user-guide`. ### How this document is organized This document is divided into two sections that represent two major areas of concern: -- **Project documentation:** concerns documentation for users of the _PROJECT_ +- **Project documentation:** concerns documentation for users of the KubeVirt software, aimed at people who intend to use the project software. - **Contributor documentation:** concerns documentation for new and existing - contributors to the _PROJECT_ OSS project. + contributors to the KubeVirt OSS project. Each section begins with summary ratings based on a rubric with appropriate [criteria] for the section, then proceeds to: - **Comments**: observations about the existing documentation, with a focus on - how it does or does not help _PROJECT_ users achieve their goals. + how it does or does not help KubeVirt users achieve their goals. - **Recommendations**: suggested changes that would improve the effectiveness of the documentation. @@ -113,7 +113,7 @@ to legal requirements such as copyright and licensing issues. ## Project documentation -_PROJECT_ is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -127,15 +127,9 @@ code. ### Comments -> AUTHOR NOTE: make any overall comments about the Project Documentation here. - The following sections contain brief assessments of each element of the Project Documentation rubric. -> AUTHOR NOTE: For each heading below, discuss how well the in-scope items, and -> especially the technical documentation, meet these criteria. (Criteria are -> copied from criteria.md) - #### Information architecture The overall structure (pages/subpages/sections/subsections) of your project @@ -222,7 +216,7 @@ We evaluate on the following: ## Contributor documentation -_PROJECT_ is an **incubating** project of CNCF. This means that the project +KubeVirt is an **incubating** project of CNCF. This means that the project should be developing professional-quality documentation alongside the project code. @@ -235,8 +229,8 @@ code. ### Comments -> AUTHOR NOTE: make any overall comments about the Contributor Documentation -> here. +The KubeVirt documentation provides a well-organzied documemation set that can +accommodate recommended improvements without a major restructure. The following sections contain brief assessments of each element of the Contributor Documentation rubric.