From d5b04540d64d632e0faac0126694da74c841e9ce Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 13:30:08 +0000 Subject: [PATCH 01/16] Restructure repository: reorganize spec, add tests, governance docs, and roadmap --- .github/workflows/release.yml | 75 + .github/workflows/test.yml | 44 + .gitignore | 3 - CHANGELOG.md | 8 + CODE_OF_CONDUCT.md | 119 + CONTRIBUTING.md | 155 + LICENSE | 21 + README.md | 79 +- ROADMAP.md | 54 + examples/comprehensive.json | 253 + examples/minimal.json | 26 + examples/with-diagnostics.json | 56 + examples/with-insights.json | 78 + examples/with-retries.json | 54 + schema/ctrf.schema.json | 623 + spec/ctrf.md | 2986 +++ specification/schema-0.0.0.json | 251 - tests/ctrf.test.json | 193 + .../normative/additional-properties.test.json | 216 + tests/normative/enum-constraints.test.json | 58 + tests/normative/required-properties.test.json | 403 + tests/normative/string-constraints.test.json | 84 + tests/normative/type-validation.test.json | 809 + tests/normative/valid-documents.test.json | 31 + website/.gitignore | 20 - website/CHANGELOG.md | 31 - website/README.md | 28 - website/babel.config.js | 3 - website/blog/2023-12-10-introduce-ctrf.md | 14 - ...2023-12-11-official-playwright-reporter.md | 8 - .../blog/2023-12-18-official-jest-reporter.md | 8 - .../2023-12-20-official-cypress-reporter.md | 8 - .../blog/2023-12-20-official-wdio-reporter.md | 8 - .../2023-12-24-official-mocha-reporter.md | 8 - .../2024-01-30-official-postman-reporter.md | 8 - ...2024-02-01-official-codeceptjs-reporter.md | 8 - .../2024-02-01-official-jasmine-reporter.md | 8 - .../2024-02-02-official-golang-reporter.md | 8 - .../blog/2024-04-18-official-github-plugin.md | 8 - .../blog/2024-05-30-official-slack-plugin.md | 8 - .../blog/2024-06-03-official-teams-plugin.md | 8 - .../2024-07-04-official-jenkins-plugin.md | 8 - .../2024-07-20-official-mattermost-plugin.md | 8 - ...24-09-18-official-anthropic-plugin copy.md | 8 - .../blog/2024-09-19-official-openai-plugin.md | 8 - .../2025-02-08-official-deepseek-plugin.md | 8 - ...025-02-08-official-google-gemini-plugin.md | 8 - .../blog/2025-02-08-official-grok-plugin.md | 8 - .../2025-02-08-official-mistral-plugin.md | 8 - .../2025-02-08-official-open-router-plugin.md | 8 - .../2025-02-08-official-perplexity-plugin.md | 8 - website/blog/authors.yml | 6 - website/docs/contributing/_category_.json | 7 - website/docs/contributing/contributing.md | 23 - .../contributing/img/docsVersionDropdown.png | Bin 25427 -> 0 bytes .../docs/contributing/img/localeDropdown.png | Bin 27841 -> 0 bytes website/docs/full-schema.md | 261 - website/docs/integrators/_category_.json | 7 - .../integrators/img/docsVersionDropdown.png | Bin 25427 -> 0 bytes .../docs/integrators/img/localeDropdown.png | Bin 27841 -> 0 bytes website/docs/integrators/integration.md | 5 - website/docs/intro.md | 97 - website/docs/plugins/_category_.json | 7 - website/docs/plugins/anthropic.md | 9 - website/docs/plugins/deepseek.md | 9 - website/docs/plugins/gemini.md | 9 - website/docs/plugins/github.md | 9 - website/docs/plugins/gitlab.md | 6 - website/docs/plugins/grok.md | 9 - .../docs/plugins/img/docsVersionDropdown.png | Bin 25427 -> 0 bytes website/docs/plugins/img/localeDropdown.png | Bin 27841 -> 0 bytes website/docs/plugins/jenkins.md | 10 - website/docs/plugins/jira.md | 7 - website/docs/plugins/mattermost.md | 9 - website/docs/plugins/mistral.md | 9 - website/docs/plugins/openai.md | 9 - website/docs/plugins/openrouter.md | 9 - website/docs/plugins/overview.md | 13 - website/docs/plugins/perplexity.md | 9 - website/docs/plugins/slack.md | 9 - website/docs/plugins/teams.md | 9 - website/docs/reporters/_category_.json | 7 - website/docs/reporters/codeceptjs.md | 9 - website/docs/reporters/cypress.md | 9 - website/docs/reporters/go.md | 9 - .../reporters/img/docsVersionDropdown.png | Bin 25427 -> 0 bytes website/docs/reporters/img/localeDropdown.png | Bin 27841 -> 0 bytes website/docs/reporters/jasmine.md | 9 - website/docs/reporters/jest.md | 9 - website/docs/reporters/junit.md | 6 - website/docs/reporters/mocha.md | 9 - website/docs/reporters/mstest.md | 9 - website/docs/reporters/nightwatch.md | 9 - website/docs/reporters/nunit.md | 9 - website/docs/reporters/overview.md | 27 - website/docs/reporters/playwright.md | 9 - website/docs/reporters/postman.md | 9 - website/docs/reporters/selenium.md | 7 - website/docs/reporters/testcafe.md | 6 - website/docs/reporters/testng.md | 6 - website/docs/reporters/webdriverio.md | 9 - website/docs/reporters/xunit.md | 10 - website/docs/specification/_category_.json | 8 - website/docs/specification/baseline.md | 40 - website/docs/specification/environment.md | 31 - website/docs/specification/examples.md | 128 - website/docs/specification/extra.md | 45 - website/docs/specification/insights.md | 97 - .../docs/specification/metrics-reference.md | 81 - website/docs/specification/overview.md | 35 - website/docs/specification/results.md | 43 - website/docs/specification/root.md | 19 - website/docs/specification/status.md | 17 - website/docs/specification/summary.md | 45 - website/docs/specification/terminology.md | 51 - website/docs/specification/test.md | 124 - website/docs/specification/tests.md | 26 - website/docs/specification/tool.md | 28 - website/docusaurus.config.ts | 108 - website/package-lock.json | 15196 ---------------- website/package.json | 49 - website/sidebars.ts | 31 - .../src/components/homepage/Code/index.tsx | 167 - .../homepage/Code/styles.module.css | 74 - .../homepage/DeveloperTools/index.tsx | 42 - .../homepage/DeveloperTools/styles.module.css | 89 - .../components/homepage/Features/index.tsx | 64 - .../homepage/Features/styles.module.css | 37 - .../components/homepage/OpenSource/index.tsx | 32 - .../homepage/OpenSource/styles.module.css | 50 - .../src/components/homepage/Schema/index.tsx | 15 - .../homepage/Schema/styles.module.css | 11 - .../src/components/homepage/Tooling/index.tsx | 83 - .../homepage/Tooling/styles.module.css | 64 - website/src/css/custom.css | 48 - website/src/pages/Card.module.css | 44 - website/src/pages/index.module.css | 73 - website/src/pages/index.tsx | 86 - website/src/pages/integrations.module.css | 230 - website/src/pages/integrations.tsx | 636 - website/src/styles/Integrations.module.scss | 37 - website/static/.nojekyll | 0 website/static/assets/github/alert.svg | 1 - website/static/assets/github/arrow-right.svg | 1 - website/static/assets/github/beaker.svg | 1 - website/static/assets/github/check-circle.svg | 1 - website/static/assets/github/clock.svg | 1 - website/static/assets/github/commit.svg | 1 - website/static/assets/github/gear.svg | 1 - website/static/assets/github/git-branch.svg | 1 - .../static/assets/github/git-pull-request.svg | 1 - website/static/assets/github/heart-fill.svg | 1 - website/static/assets/github/hourglass.svg | 1 - website/static/assets/github/info.svg | 1 - website/static/assets/github/link.svg | 1 - website/static/assets/github/play.svg | 1 - website/static/assets/github/pulse.svg | 1 - website/static/assets/github/question.svg | 1 - website/static/assets/github/skip.svg | 1 - website/static/assets/github/star-fill.svg | 1 - website/static/assets/github/star.svg | 1 - website/static/assets/github/stop.svg | 1 - website/static/assets/github/sync.svg | 1 - website/static/assets/github/tools.svg | 1 - website/static/assets/github/versions.svg | 1 - website/static/assets/github/workflow.svg | 1 - website/static/assets/github/x-circle.svg | 1 - website/static/ctrf-schema.json | 251 - website/static/img/anthropic-dark.svg | 16 - website/static/img/anthropic.svg | 16 - website/static/img/azure.svg | 1 - website/static/img/code-example.png | Bin 495868 -> 0 bytes website/static/img/code.png | Bin 174972 -> 0 bytes website/static/img/codeceptjs.svg | 1 - website/static/img/cucumber.svg | 1 - website/static/img/cypress-dark.svg | 98 - website/static/img/cypress.svg | 54 - website/static/img/deepseek.svg | 1 - website/static/img/docusaurus.png | Bin 5142 -> 0 bytes website/static/img/dotnet.svg | 2 - website/static/img/favicon-16x16.png | Bin 444 -> 0 bytes website/static/img/favicon.ico | Bin 15406 -> 0 bytes website/static/img/gemini.svg | 1 - website/static/img/github-dark.svg | 3 - website/static/img/github.svg | 1 - website/static/img/go.svg | 1 - website/static/img/grok-dark.svg | 1 - website/static/img/grok.svg | 1 - website/static/img/jasmine.svg | 28 - website/static/img/jenkins.svg | 1 - website/static/img/jest.svg | 1 - website/static/img/jira.svg | 1 - website/static/img/jira2.svg | 15 - website/static/img/junit.svg | 4 - website/static/img/katalon.svg | 6 - website/static/img/logo.png | Bin 888 -> 0 bytes website/static/img/logo.svg | 1 - website/static/img/mattermost.svg | 8 - website/static/img/mistral.svg | 1 - website/static/img/mochajs.svg | 1 - website/static/img/nightwatch.svg | 22 - website/static/img/no-image.svg | 3 - website/static/img/nunit.svg | Bin 5870 -> 0 bytes website/static/img/openai-dark.svg | 10 - website/static/img/openai.svg | 1 - website/static/img/openrouter-dark.svg | 1 - website/static/img/openrouter.svg | 1 - website/static/img/perplexity.svg | 1 - website/static/img/playwright.svg | 1 - website/static/img/postman.svg | 1 - website/static/img/pytest.svg | 1 - website/static/img/rspec.svg | 1 - website/static/img/rust.svg | 1 - website/static/img/selenium.svg | 1 - website/static/img/slack.svg | 1 - website/static/img/teams.svg | 22 - website/static/img/vitest.svg | 1 - website/static/img/wdio.svg | 30 - website/static/img/xunit.svg | 1 - website/tsconfig.json | 7 - 220 files changed, 6386 insertions(+), 20031 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml delete mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 ROADMAP.md create mode 100644 examples/comprehensive.json create mode 100644 examples/minimal.json create mode 100644 examples/with-diagnostics.json create mode 100644 examples/with-insights.json create mode 100644 examples/with-retries.json create mode 100644 schema/ctrf.schema.json create mode 100644 spec/ctrf.md delete mode 100644 specification/schema-0.0.0.json create mode 100644 tests/ctrf.test.json create mode 100644 tests/normative/additional-properties.test.json create mode 100644 tests/normative/enum-constraints.test.json create mode 100644 tests/normative/required-properties.test.json create mode 100644 tests/normative/string-constraints.test.json create mode 100644 tests/normative/type-validation.test.json create mode 100644 tests/normative/valid-documents.test.json delete mode 100644 website/.gitignore delete mode 100644 website/CHANGELOG.md delete mode 100644 website/README.md delete mode 100644 website/babel.config.js delete mode 100644 website/blog/2023-12-10-introduce-ctrf.md delete mode 100644 website/blog/2023-12-11-official-playwright-reporter.md delete mode 100644 website/blog/2023-12-18-official-jest-reporter.md delete mode 100644 website/blog/2023-12-20-official-cypress-reporter.md delete mode 100644 website/blog/2023-12-20-official-wdio-reporter.md delete mode 100644 website/blog/2023-12-24-official-mocha-reporter.md delete mode 100644 website/blog/2024-01-30-official-postman-reporter.md delete mode 100644 website/blog/2024-02-01-official-codeceptjs-reporter.md delete mode 100644 website/blog/2024-02-01-official-jasmine-reporter.md delete mode 100644 website/blog/2024-02-02-official-golang-reporter.md delete mode 100644 website/blog/2024-04-18-official-github-plugin.md delete mode 100644 website/blog/2024-05-30-official-slack-plugin.md delete mode 100644 website/blog/2024-06-03-official-teams-plugin.md delete mode 100644 website/blog/2024-07-04-official-jenkins-plugin.md delete mode 100644 website/blog/2024-07-20-official-mattermost-plugin.md delete mode 100644 website/blog/2024-09-18-official-anthropic-plugin copy.md delete mode 100644 website/blog/2024-09-19-official-openai-plugin.md delete mode 100644 website/blog/2025-02-08-official-deepseek-plugin.md delete mode 100644 website/blog/2025-02-08-official-google-gemini-plugin.md delete mode 100644 website/blog/2025-02-08-official-grok-plugin.md delete mode 100644 website/blog/2025-02-08-official-mistral-plugin.md delete mode 100644 website/blog/2025-02-08-official-open-router-plugin.md delete mode 100644 website/blog/2025-02-08-official-perplexity-plugin.md delete mode 100644 website/blog/authors.yml delete mode 100644 website/docs/contributing/_category_.json delete mode 100644 website/docs/contributing/contributing.md delete mode 100644 website/docs/contributing/img/docsVersionDropdown.png delete mode 100644 website/docs/contributing/img/localeDropdown.png delete mode 100644 website/docs/full-schema.md delete mode 100644 website/docs/integrators/_category_.json delete mode 100644 website/docs/integrators/img/docsVersionDropdown.png delete mode 100644 website/docs/integrators/img/localeDropdown.png delete mode 100644 website/docs/integrators/integration.md delete mode 100644 website/docs/intro.md delete mode 100644 website/docs/plugins/_category_.json delete mode 100644 website/docs/plugins/anthropic.md delete mode 100644 website/docs/plugins/deepseek.md delete mode 100644 website/docs/plugins/gemini.md delete mode 100644 website/docs/plugins/github.md delete mode 100644 website/docs/plugins/gitlab.md delete mode 100644 website/docs/plugins/grok.md delete mode 100644 website/docs/plugins/img/docsVersionDropdown.png delete mode 100644 website/docs/plugins/img/localeDropdown.png delete mode 100644 website/docs/plugins/jenkins.md delete mode 100644 website/docs/plugins/jira.md delete mode 100644 website/docs/plugins/mattermost.md delete mode 100644 website/docs/plugins/mistral.md delete mode 100644 website/docs/plugins/openai.md delete mode 100644 website/docs/plugins/openrouter.md delete mode 100644 website/docs/plugins/overview.md delete mode 100644 website/docs/plugins/perplexity.md delete mode 100644 website/docs/plugins/slack.md delete mode 100644 website/docs/plugins/teams.md delete mode 100644 website/docs/reporters/_category_.json delete mode 100644 website/docs/reporters/codeceptjs.md delete mode 100644 website/docs/reporters/cypress.md delete mode 100644 website/docs/reporters/go.md delete mode 100644 website/docs/reporters/img/docsVersionDropdown.png delete mode 100644 website/docs/reporters/img/localeDropdown.png delete mode 100644 website/docs/reporters/jasmine.md delete mode 100644 website/docs/reporters/jest.md delete mode 100644 website/docs/reporters/junit.md delete mode 100644 website/docs/reporters/mocha.md delete mode 100644 website/docs/reporters/mstest.md delete mode 100644 website/docs/reporters/nightwatch.md delete mode 100644 website/docs/reporters/nunit.md delete mode 100644 website/docs/reporters/overview.md delete mode 100644 website/docs/reporters/playwright.md delete mode 100644 website/docs/reporters/postman.md delete mode 100644 website/docs/reporters/selenium.md delete mode 100644 website/docs/reporters/testcafe.md delete mode 100644 website/docs/reporters/testng.md delete mode 100644 website/docs/reporters/webdriverio.md delete mode 100644 website/docs/reporters/xunit.md delete mode 100644 website/docs/specification/_category_.json delete mode 100644 website/docs/specification/baseline.md delete mode 100644 website/docs/specification/environment.md delete mode 100644 website/docs/specification/examples.md delete mode 100644 website/docs/specification/extra.md delete mode 100644 website/docs/specification/insights.md delete mode 100644 website/docs/specification/metrics-reference.md delete mode 100644 website/docs/specification/overview.md delete mode 100644 website/docs/specification/results.md delete mode 100644 website/docs/specification/root.md delete mode 100644 website/docs/specification/status.md delete mode 100644 website/docs/specification/summary.md delete mode 100644 website/docs/specification/terminology.md delete mode 100644 website/docs/specification/test.md delete mode 100644 website/docs/specification/tests.md delete mode 100644 website/docs/specification/tool.md delete mode 100644 website/docusaurus.config.ts delete mode 100644 website/package-lock.json delete mode 100644 website/package.json delete mode 100644 website/sidebars.ts delete mode 100644 website/src/components/homepage/Code/index.tsx delete mode 100644 website/src/components/homepage/Code/styles.module.css delete mode 100644 website/src/components/homepage/DeveloperTools/index.tsx delete mode 100644 website/src/components/homepage/DeveloperTools/styles.module.css delete mode 100644 website/src/components/homepage/Features/index.tsx delete mode 100644 website/src/components/homepage/Features/styles.module.css delete mode 100644 website/src/components/homepage/OpenSource/index.tsx delete mode 100644 website/src/components/homepage/OpenSource/styles.module.css delete mode 100644 website/src/components/homepage/Schema/index.tsx delete mode 100644 website/src/components/homepage/Schema/styles.module.css delete mode 100644 website/src/components/homepage/Tooling/index.tsx delete mode 100644 website/src/components/homepage/Tooling/styles.module.css delete mode 100644 website/src/css/custom.css delete mode 100644 website/src/pages/Card.module.css delete mode 100644 website/src/pages/index.module.css delete mode 100644 website/src/pages/index.tsx delete mode 100644 website/src/pages/integrations.module.css delete mode 100644 website/src/pages/integrations.tsx delete mode 100644 website/src/styles/Integrations.module.scss delete mode 100644 website/static/.nojekyll delete mode 100644 website/static/assets/github/alert.svg delete mode 100644 website/static/assets/github/arrow-right.svg delete mode 100644 website/static/assets/github/beaker.svg delete mode 100644 website/static/assets/github/check-circle.svg delete mode 100644 website/static/assets/github/clock.svg delete mode 100644 website/static/assets/github/commit.svg delete mode 100644 website/static/assets/github/gear.svg delete mode 100644 website/static/assets/github/git-branch.svg delete mode 100644 website/static/assets/github/git-pull-request.svg delete mode 100644 website/static/assets/github/heart-fill.svg delete mode 100644 website/static/assets/github/hourglass.svg delete mode 100644 website/static/assets/github/info.svg delete mode 100644 website/static/assets/github/link.svg delete mode 100644 website/static/assets/github/play.svg delete mode 100644 website/static/assets/github/pulse.svg delete mode 100644 website/static/assets/github/question.svg delete mode 100644 website/static/assets/github/skip.svg delete mode 100644 website/static/assets/github/star-fill.svg delete mode 100644 website/static/assets/github/star.svg delete mode 100644 website/static/assets/github/stop.svg delete mode 100644 website/static/assets/github/sync.svg delete mode 100644 website/static/assets/github/tools.svg delete mode 100644 website/static/assets/github/versions.svg delete mode 100644 website/static/assets/github/workflow.svg delete mode 100644 website/static/assets/github/x-circle.svg delete mode 100644 website/static/ctrf-schema.json delete mode 100644 website/static/img/anthropic-dark.svg delete mode 100644 website/static/img/anthropic.svg delete mode 100644 website/static/img/azure.svg delete mode 100644 website/static/img/code-example.png delete mode 100644 website/static/img/code.png delete mode 100644 website/static/img/codeceptjs.svg delete mode 100644 website/static/img/cucumber.svg delete mode 100644 website/static/img/cypress-dark.svg delete mode 100644 website/static/img/cypress.svg delete mode 100644 website/static/img/deepseek.svg delete mode 100644 website/static/img/docusaurus.png delete mode 100644 website/static/img/dotnet.svg delete mode 100644 website/static/img/favicon-16x16.png delete mode 100644 website/static/img/favicon.ico delete mode 100644 website/static/img/gemini.svg delete mode 100644 website/static/img/github-dark.svg delete mode 100644 website/static/img/github.svg delete mode 100644 website/static/img/go.svg delete mode 100644 website/static/img/grok-dark.svg delete mode 100644 website/static/img/grok.svg delete mode 100644 website/static/img/jasmine.svg delete mode 100644 website/static/img/jenkins.svg delete mode 100644 website/static/img/jest.svg delete mode 100644 website/static/img/jira.svg delete mode 100644 website/static/img/jira2.svg delete mode 100644 website/static/img/junit.svg delete mode 100644 website/static/img/katalon.svg delete mode 100644 website/static/img/logo.png delete mode 100644 website/static/img/logo.svg delete mode 100644 website/static/img/mattermost.svg delete mode 100644 website/static/img/mistral.svg delete mode 100644 website/static/img/mochajs.svg delete mode 100644 website/static/img/nightwatch.svg delete mode 100644 website/static/img/no-image.svg delete mode 100644 website/static/img/nunit.svg delete mode 100644 website/static/img/openai-dark.svg delete mode 100644 website/static/img/openai.svg delete mode 100644 website/static/img/openrouter-dark.svg delete mode 100644 website/static/img/openrouter.svg delete mode 100644 website/static/img/perplexity.svg delete mode 100644 website/static/img/playwright.svg delete mode 100644 website/static/img/postman.svg delete mode 100644 website/static/img/pytest.svg delete mode 100644 website/static/img/rspec.svg delete mode 100644 website/static/img/rust.svg delete mode 100644 website/static/img/selenium.svg delete mode 100644 website/static/img/slack.svg delete mode 100644 website/static/img/teams.svg delete mode 100644 website/static/img/vitest.svg delete mode 100644 website/static/img/wdio.svg delete mode 100644 website/static/img/xunit.svg delete mode 100644 website/tsconfig.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..d020939 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,75 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +permissions: + contents: write + +jobs: + test: + name: Validate Schema + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run conformance tests (normative) + uses: docker://sourcemeta/jsonschema:latest + with: + args: test tests/normative --json > ctrf-normative.json + + - name: Run informative tests + uses: docker://sourcemeta/jsonschema:latest + continue-on-error: true + with: + args: test tests/informative --json > ctrf-informative.json + + - name: Validate example documents + uses: docker://sourcemeta/jsonschema:latest + with: + args: validate schema/ctrf.schema.json examples/*.json + + - name: Publish Conformance Test Results + uses: ctrf-io/github-test-reporter@v1 + if: always() + with: + report-path: ctrf-normative.json + + - name: Publish Informative Test Results + uses: ctrf-io/github-test-reporter@v1 + if: always() + with: + report-path: ctrf-informative.json + + release: + name: Create Release + runs-on: ubuntu-latest + needs: test + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Extract version from tag + id: version + run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + name: CTRF ${{ steps.version.outputs.version }} + draft: true + make_latest: true + generate_release_notes: true + files: | + schema/ctrf.schema.json + spec/ctrf.md + examples/*.json + CHANGELOG.md + LICENSE + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..389e5fc --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,44 @@ +name: Test + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + test: + name: Validate Schema + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run conformance tests (normative) + uses: docker://sourcemeta/jsonschema:latest + with: + args: test tests/normative --json > ctrf-normative.json + + - name: Run informative tests + uses: docker://sourcemeta/jsonschema:latest + continue-on-error: true + with: + args: test tests/informative --json > ctrf-informative.json + + - name: Validate example documents + uses: docker://sourcemeta/jsonschema:latest + with: + args: validate schema/ctrf.schema.json examples/*.json + + - name: Publish Conformance Test Results + uses: ctrf-io/github-test-reporter@v1 + if: always() + with: + report-path: ctrf-normative.json + + - name: Publish Informative Test Results + uses: ctrf-io/github-test-reporter@v1 + if: always() + with: + report-path: ctrf-informative.json diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 4f28dd7..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -**/.DS_Store -scripts \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..15a61af --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..964c2c3 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,119 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +Matthew Thomas Poulton-White. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..669b0c0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,155 @@ +# Contributing to CTRF + +> **Status:** Work in Progress +> This contributing model is evolving as the CTRF project matures. Feedback and suggestions are welcome. + +Thank you for your interest in contributing to CTRF. + +--- + +## Quick Reference: What Process Do I Need? + +| Change Type | Examples | Process | +| ----------- | -------- | ------- | +| **Docs** | Documentation updates | Direct PR | +| **Fixes** | Typos, grammar, broken links, formatting | Direct PR | +| **Examples** | New or improved example documents (see `examples/`) | Direct PR | +| **Tests** | New or updated tests (see `tests/`) | Direct PR | +| **Clarifications** | Wording changes that may affect interpretation | Issue → PR | +| **Schema Changes** | Constraints, formats, validation rules | Issue → PR | +| **New Features** | New properties | Discussion → Issue → PR | +| **Breaking Changes** | Removed fields, changed semantics | Design discussion → Issue → PR | + +Use Discussions for: + +- Open-ended questions about design direction +- Feature requests that need broader feedback +- Clarifying interpretation before proposing changes + +Use Issues for: + +- Specific bugs, ambiguities, or inconsistencies +- Concrete proposals ready for implementation + +Issues SHOULD describe: + +- the problem or proposal +- motivation and use cases +- compatibility considerations +- examples, if applicable + +If you are unsure which category applies, open an issue first. + +--- + +### Pull Requests + +Pull requests are required for all contributions. + +When submitting a PR: + +- keep changes focused and well-scoped +- reference related issues +- update both spec and schema when applicable +- ensure examples remain valid + +--- + +## Specification Guidelines + +- Use normative language (**MUST**, **SHOULD**, **MAY**) per RFC 2119 +- Clearly distinguish normative vs informative text +- Avoid unnecessary complexity +- Do not introduce breaking changes without discussion + +The written specification lives at: + +`spec/ctrf.md` + +--- + +## Schema Guidelines + +The normative JSON Schema lives at: + +`schema/ctrf.schema.json` + +Schema changes MUST: + +- match the written specification +- avoid breaking existing valid documents +- use consistent validation constraints + +If the schema and specification disagree, the **written specification takes precedence**. + +--- + +## Backward Compatibility + +Backward compatibility is a core CTRF principle. + +- PATCH and MINOR releases MUST NOT introduce breaking changes +- Breaking changes MUST be explicit and well-justified + +--- + +## Versioning + +CTRF follows **Semantic Versioning (SemVer 2.0.0)**. + +Versioning decisions are managed by the maintainer(s). + +--- + +## Validating Changes + +Before submitting a PR: + +- Ensure the JSON Schema is syntactically valid +- Validate example documents against the schema +- Check that the specification and schema remain aligned +- Verify that cross-references and section numbers are correct + +--- + +## Testing + +CTRF includes a comprehensive test suite to validate the schema and ensure conformance. + +Normative tests define conformance requirements. All normative tests MUST pass for a valid CTRF implementation. + +Informative tests cover edge cases and additional examples. These SHOULD pass but are not strictly required for conformance. + +Tests use the [sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema) CLI. + +### Adding Tests for Changes + +When contributing changes, you SHOULD add or update tests: + +| Change Type | Test Action | +| ----------- | ----------- | +| New required property | Add test to `required-properties.test.json` | +| New enum value | Add test to `enum-constraints.test.json` | +| New string constraint | Add test to `string-constraints.test.json` | +| New example document | Add valid test to `valid-documents.test.json` | +| Bug fix | Add regression test demonstrating the fix | + +--- + +## Review and Governance + +CTRF is currently maintained by a single maintainer. + +Feedback and consensus are encouraged, but the maintainer makes final decisions as described in `GOVERNANCE.md`. + +--- + +## Code of Conduct + +All contributors are expected to engage respectfully. + +This project follows the [Contributor Covenant](https://www.contributor-covenant.org/). + +--- + +Thank you for helping improve CTRF. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c52b0a1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Matthew Poulton-White + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 7f2c93b..9295cf1 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,77 @@ # Common Test Report Format -Generate the same JSON test report, no matter the test framework. +**The open standard for test reporting.** -## Introduction +CTRF provides a unified JSON format for test outcomes that works across all languages and frameworks. -CTRF is a language and framework-agnostic JSON format for test results with first class tooling and integrations. It standardizes how test results are represented, making them easy to share, analyze, and visualize across tools and platforms. +By standardizing the output of test execution, it enables results to be shared, validated, aggregated, and analyzed consistently across tools and platforms. -Designed to be universal, CTRF works with any programming language, test framework, and developer tool. +## Project Status -## Support Us - -You can support the project by: - -- Giving this repository a ⭐ -- Following the organization [@ctrf](https://github.com/ctrf-io) +> The CTRF specification is ready for use. +> +> We are maintaining a pre-1.0 version to allow for community-driven refinements before locking the v1.0.0 standard. +> +> CTRF was released in 2023 and has been gathering community feedback and real-world usage since. For details on the planned evolution of CTRF, see the [CTRF Roadmap](ROADMAP.md). +> +> We encourage you to adopt CTRF today and help shape the final specification. ## Schema -The schema is defined in [schema-0.0.0.json](specification/schema-0.0.0.json) +The schema is defined in [`schema/ctrf.schema.json`](schema/ctrf.schema.json). + +The JSON Schema is normative and used for validation. ## Specification -The full specification is defined in the [documentation](https://ctrf.io/docs/specification/overview). +The specification is defined in [`spec/ctrf.md`](spec/ctrf.md). + +The written specification defines the semantics and rules. ## Versioning -You'll notice that v1 of the specification hasn't been released yet, **we want to build a specification that reflects the needs of its users** and we are still receiving feedback. There might be changes but these will be tracked in the changelog. +CTRF follows Semantic Versioning. + +## Reference Implementation -specVersion is currently 0.0.0 +The reference implementation, written in TypeScript, provides utilities for working with CTRF reports and is maintained alongside the specification. It serves as the canonical guide for implementing CTRF in any language. -## Core Tooling +- [ctrf-js](https://github.com/ctrf-io/ctrf-js) -Core tooling provides utilities for working with CTRF reports, including validation and processing capabilities. +Community implementations should follow the design principles and API surface of the reference implementation as closely as possible to ensure consistency across the ecosystem. -- [Node.js Core](https://github.com/ctrf-io/ctrf-core-js) +We welcome contributions to build implementations for the following languages: Python, Java, Go, C#/.NET, Rust, and Ruby. Each implementation should reference the TypeScript implementation for guidance on module structure, method signatures, and error handling. ## CLI Tooling -The CTRF CLI is a command-line interface for working with CTRF reports. It allows you to validate and process CTRF reports from the terminal. +The CTRF CLI is a command-line interface for working with CTRF reports. It is maintained alongside the specification and provides validation, conformance checking, and report processing capabilities from the terminal. - [CLI](https://github.com/ctrf-io/ctrf-cli) ## Integrations -Many integrations with popular testing frameworks and developer tools are available. - -- [Integrations](https://ctrf.io/integrations) +The CTRF ecosystem includes community built integrations for popular testing frameworks and developer tools. -## Contributing +- [View integrations](https://ctrf.io/integrations) -CTRF is community-built and open source. Contributions and feedback are welcome. +## Adopters -- [Contribute](https://ctrf.io/docs/contributing/) -- [Discuss](https://github.com/orgs/ctrf-io/discussions) +Tools and frameworks with native CTRF support. -## Repository Layout +- [View adopters](https://ctrf.io/adopters) -- Schema: [specification/schema-0.0.0.json](specification/schema-0.0.0.json) -- Website & documentation: [website/README.md](website/README.md) +## Contributing -## Example +CTRF is community-built and open source. -![CTRF Example](./website/static/img/code.png) +Contributions and feedback are welcome. -## Useful Links +- [Contribute](CONTRIBUTING.md) +- [Discuss](https://github.com/orgs/ctrf-io/discussions) -Docs -
-Specification -
-Integrations -
-Discuss +## Repository Layout - +- Schema: [schema/ctrf.schema.json](schema/ctrf.schema.json) +- Specification: [spec/ctrf.md](spec/ctrf.md) +- Examples: [examples/](examples/) +- Tests: [tests/](tests/) diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..22477c0 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,54 @@ +# CTRF Roadmap + +This roadmap outlines the planned development and evolution of the CTRF specification. + +_CTRF was released in 2023 and has been gathering community feedback and real-world usage since._ + +## Q1 2026 - Governance & Initial Tooling + +### Contribution Guidelines + +- [X] Establish contribution guidelines + +### Release Terms & Versioning + +- [ ] Create release process documentation + +### Governance + +- [ ] Establish governance model and decision-making process +- [ ] Define roles and responsibilities (maintainers, contributors, community) +- [ ] Create governance documentation + +### Reference Implementation + +- [ ] Develop official reference implementation + +### CLI Tool + +- [ ] Develop official CTRF CLI tool + +## Q2-Q3 2026 - Specification Finalization + +### Specification Refinement + +- [ ] Complete specification review and refinement +- [ ] Finalize schema validation rules +- [ ] Comprehensive documentation and examples +- [ ] Final specification review + +## Q3 2026 - Version 1.0.0 Release + +### Version 1.0.0 Release + +- [ ] Version 1.0.0 release + +## Future Direction Beyond 1.0.0 + +- [ ] Define long-term governance and maintenance strategy + +--- + +**Last Updated:** January 2026 + +For questions or suggestions about this roadmap, please open an issue or discussion in the repository. diff --git a/examples/comprehensive.json b/examples/comprehensive.json new file mode 100644 index 0000000..aa68c4f --- /dev/null +++ b/examples/comprehensive.json @@ -0,0 +1,253 @@ +{ + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "reportId": "9d2c6a10-3f7a-4e22-9a8f-1a2b3c4d5e6f", + "timestamp": "2025-11-24T12:00:00Z", + "generatedBy": "example-ci", + "extra": { + "pipelineStage": "e2e", + "trigger": "pull_request" + }, + "results": { + "tool": { + "name": "example-runner", + "version": "3.5.0", + "extra": { + "plugins": ["retry", "screenshots", "video"] + } + }, + "summary": { + "tests": 3, + "passed": 2, + "failed": 1, + "pending": 0, + "skipped": 0, + "other": 0, + "flaky": 1, + "suites": 2, + "start": 1609459200000, + "stop": 1609459220000, + "duration": 20000 + }, + "tests": [ + { + "id": "550e8400-e29b-41d4-a716-446655440000", + "name": "user can login", + "status": "passed", + "duration": 3500, + "start": 1609459200000, + "stop": 1609459203500, + "suite": ["Authentication", "Login"], + "type": "e2e", + "tags": ["smoke", "critical"], + "filePath": "tests/auth/login.test.js", + "browser": "chromium", + "threadId": "worker-1", + "insights": { + "passRate": { + "current": 1.0, + "baseline": 0.95, + "change": 0.05 + }, + "averageTestDuration": { + "current": 3500, + "baseline": 3200, + "change": 300 + }, + "executedInRuns": 15 + } + }, + { + "id": "550e8400-e29b-41d4-a716-446655440001", + "name": "user can checkout", + "status": "passed", + "duration": 5200, + "start": 1609459203500, + "stop": 1609459208700, + "suite": ["Checkout"], + "type": "e2e", + "tags": ["smoke"], + "filePath": "tests/checkout/checkout.test.js", + "browser": "chromium", + "threadId": "worker-2", + "flaky": true, + "retries": 1, + "retryAttempts": [ + { + "attempt": 1, + "status": "failed", + "duration": 5100, + "start": 1609459203500, + "stop": 1609459208600, + "message": "Payment gateway timeout", + "trace": "Error: Payment gateway timeout\n at processPayment (payment.js:23:10)", + "attachments": [ + { + "name": "attempt-1-screenshot.png", + "contentType": "image/png", + "path": "/artifacts/retry-1.png" + } + ] + }, + { + "attempt": 2, + "status": "passed", + "duration": 5200, + "start": 1609459208700, + "stop": 1609459213900 + } + ], + "insights": { + "passRate": { + "current": 1.0, + "baseline": 0.9, + "change": 0.1 + }, + "flakyRate": { + "current": 0.2, + "baseline": 0.3, + "change": -0.1 + }, + "executedInRuns": 15 + } + }, + { + "id": "550e8400-e29b-41d4-a716-446655440002", + "name": "admin dashboard loads", + "status": "failed", + "duration": 8000, + "start": 1609459213900, + "stop": 1609459221900, + "suite": ["Admin", "Dashboard"], + "type": "e2e", + "tags": ["regression"], + "filePath": "tests/admin/dashboard.test.js", + "line": 42, + "browser": "chromium", + "threadId": "worker-1", + "message": "Element not found: .dashboard-metrics", + "trace": "Error: Element not found: .dashboard-metrics\n at waitForElement (test.js:45:10)\n at Object. (dashboard.test.js:42:5)", + "snippet": "const metrics = await page.locator('.dashboard-metrics');\nawait expect(metrics).toBeVisible();", + "screenshot": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==", + "stdout": [ + "Loading admin dashboard", + "Checking authentication" + ], + "stderr": [ + "Warning: Slow network detected", + "Error: Timeout waiting for .dashboard-metrics" + ], + "attachments": [ + { + "name": "failure-screenshot.png", + "contentType": "image/png", + "path": "/artifacts/screenshots/admin-dashboard-fail.png" + }, + { + "name": "trace.zip", + "contentType": "application/zip", + "path": "/artifacts/traces/admin-dashboard.trace.zip" + }, + { + "name": "video.webm", + "contentType": "video/webm", + "path": "/artifacts/videos/admin-dashboard.webm" + } + ], + "parameters": { + "userRole": "admin", + "environment": "staging" + }, + "steps": [ + { + "name": "Navigate to dashboard", + "status": "passed" + }, + { + "name": "Wait for metrics", + "status": "failed" + } + ], + "insights": { + "passRate": { + "current": 0.0, + "baseline": 0.8, + "change": -0.8 + }, + "executedInRuns": 15 + } + } + ], + "environment": { + "reportName": "PR #123 E2E Tests", + "appName": "example-app", + "appVersion": "2.5.0", + "buildId": "build-456", + "buildName": "PR #123", + "buildNumber": 456, + "buildUrl": "https://ci.example.com/builds/456", + "repositoryName": "example-app", + "repositoryUrl": "https://github.com/example/example-app", + "commit": "a1b2c3d4e5f6", + "branchName": "feature/new-dashboard", + "osPlatform": "linux", + "osRelease": "5.10.0", + "osVersion": "Ubuntu 20.04", + "testEnvironment": "staging", + "healthy": false, + "extra": { + "nodeVersion": "18.0.0", + "region": "us-west-2" + } + }, + "extra": { + "shardIndex": 1, + "totalShards": 4 + } + }, + "insights": { + "passRate": { + "current": 0.67, + "baseline": 0.85, + "change": -0.18 + }, + "failRate": { + "current": 0.33, + "baseline": 0.15, + "change": 0.18 + }, + "flakyRate": { + "current": 0.33, + "baseline": 0.2, + "change": 0.13 + }, + "averageRunDuration": { + "current": 20000, + "baseline": 18000, + "change": 2000 + }, + "p95RunDuration": { + "current": 22000, + "baseline": 20000, + "change": 2000 + }, + "averageTestDuration": { + "current": 5567, + "baseline": 5100, + "change": 467 + }, + "runsAnalyzed": 10 + }, + "baseline": { + "reportId": "2f8c9a90-3e1a-4c3d-9b3a-8f0a9c123456", + "timestamp": "2025-11-23T12:00:00Z", + "source": "main", + "buildNumber": 442, + "buildName": "Nightly Build", + "buildUrl": "https://ci.example.com/builds/442", + "commit": "f6e5d4c3b2a1", + "extra": { + "branch": "main" + } + } +} diff --git a/examples/minimal.json b/examples/minimal.json new file mode 100644 index 0000000..61b4482 --- /dev/null +++ b/examples/minimal.json @@ -0,0 +1,26 @@ +{ + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { + "name": "example-runner" + }, + "summary": { + "tests": 1, + "passed": 1, + "failed": 0, + "pending": 0, + "skipped": 0, + "other": 0, + "start": 1609459200000, + "stop": 1609459201000 + }, + "tests": [ + { + "name": "should pass", + "status": "passed", + "duration": 100 + } + ] + } +} diff --git a/examples/with-diagnostics.json b/examples/with-diagnostics.json new file mode 100644 index 0000000..20f6946 --- /dev/null +++ b/examples/with-diagnostics.json @@ -0,0 +1,56 @@ +{ + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { + "name": "example-runner", + "version": "2.0.0" + }, + "summary": { + "tests": 1, + "passed": 0, + "failed": 1, + "pending": 0, + "skipped": 0, + "other": 0, + "start": 1609459200000, + "stop": 1609459205000 + }, + "tests": [ + { + "name": "should render homepage", + "status": "failed", + "duration": 5000, + "message": "Expected element to be visible", + "trace": "Error: Expected element to be visible\n at checkVisibility (test.js:45:10)\n at Object. (test.js:12:5)", + "screenshot": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==", + "stdout": [ + "Starting test execution", + "Loading page: https://example.com", + "Waiting for element: .hero-section" + ], + "stderr": [ + "Warning: Network slow", + "Error: Element not found after 5000ms" + ], + "attachments": [ + { + "name": "full-page-screenshot.png", + "contentType": "image/png", + "path": "/artifacts/screenshots/test-1.png" + }, + { + "name": "console-logs.txt", + "contentType": "text/plain", + "path": "/artifacts/logs/console-1.txt" + }, + { + "name": "network-trace.har", + "contentType": "application/json", + "path": "/artifacts/traces/network-1.har" + } + ] + } + ] + } +} diff --git a/examples/with-insights.json b/examples/with-insights.json new file mode 100644 index 0000000..690c7ae --- /dev/null +++ b/examples/with-insights.json @@ -0,0 +1,78 @@ +{ + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "reportId": "7c4e1c20-7c89-4f30-9b52-1f6f9d6b8f21", + "results": { + "tool": { + "name": "example-runner", + "version": "3.0.0" + }, + "summary": { + "tests": 2, + "passed": 2, + "failed": 0, + "pending": 0, + "skipped": 0, + "other": 0, + "start": 1609459200000, + "stop": 1609459205000 + }, + "tests": [ + { + "name": "login test", + "status": "passed", + "duration": 2500, + "insights": { + "passRate": { + "current": 1.0, + "baseline": 0.95, + "change": 0.05 + }, + "averageTestDuration": { + "current": 2500, + "baseline": 2200, + "change": 300 + }, + "executedInRuns": 10 + } + }, + { + "name": "checkout test", + "status": "passed", + "duration": 3200, + "insights": { + "passRate": { + "current": 1.0, + "baseline": 1.0, + "change": 0 + }, + "averageTestDuration": { + "current": 3200, + "baseline": 3100, + "change": 100 + }, + "executedInRuns": 10 + } + } + ] + }, + "insights": { + "passRate": { + "current": 1.0, + "baseline": 0.97, + "change": 0.03 + }, + "averageRunDuration": { + "current": 5700, + "baseline": 5300, + "change": 400 + }, + "runsAnalyzed": 10 + }, + "baseline": { + "reportId": "2f8c9a90-3e1a-4c3d-9b3a-8f0a9c123456", + "timestamp": "2025-11-23T12:00:00Z", + "source": "main", + "buildNumber": 142 + } +} diff --git a/examples/with-retries.json b/examples/with-retries.json new file mode 100644 index 0000000..b237970 --- /dev/null +++ b/examples/with-retries.json @@ -0,0 +1,54 @@ +{ + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { + "name": "example-runner", + "version": "1.0.0" + }, + "summary": { + "tests": 2, + "passed": 2, + "failed": 0, + "pending": 0, + "skipped": 0, + "other": 0, + "flaky": 1, + "start": 1609459200000, + "stop": 1609459210000 + }, + "tests": [ + { + "name": "stable test", + "status": "passed", + "duration": 150 + }, + { + "name": "flaky test", + "status": "passed", + "duration": 300, + "flaky": true, + "retries": 2, + "retryAttempts": [ + { + "attempt": 1, + "status": "failed", + "duration": 120, + "message": "Connection timeout" + }, + { + "attempt": 2, + "status": "failed", + "duration": 130, + "message": "Connection timeout" + }, + { + "attempt": 3, + "status": "passed", + "duration": 140 + } + ] + } + ] + } +} diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json new file mode 100644 index 0000000..2912ad0 --- /dev/null +++ b/schema/ctrf.schema.json @@ -0,0 +1,623 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CTRF Report", + "description": "Common Test Report Format - a standardized JSON format for test execution results", + "type": "object", + "properties": { + "reportFormat": { + "type": "string", + "enum": ["CTRF"], + "description": "Document format identifier. Must be 'CTRF'" + }, + "specVersion": { + "type": "string", + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$", + "description": "CTRF specification version in SemVer format (MAJOR.MINOR.PATCH)" + }, + "reportId": { + "type": "string", + "format": "uuid", + "description": "Unique identifier for this report instance (UUID)" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Report generation time (RFC 3339 / ISO 8601)" + }, + "generatedBy": { + "type": "string", + "description": "Tool or system that produced this CTRF document" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + }, + "results": { + "type": "object", + "description": "Results of a single test execution run", + "properties": { + "tool": { + "type": "object", + "description": "Tool or framework that produced the test results", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the testing tool or framework" + }, + "version": { + "type": "string", + "description": "Version of the testing tool" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["name"] + }, + "summary": { + "type": "object", + "description": "Aggregated statistics and timing for the test run", + "properties": { + "tests": { + "type": "integer", + "description": "Total number of tests executed" + }, + "passed": { + "type": "integer", + "description": "Count of tests with status 'passed'" + }, + "failed": { + "type": "integer", + "description": "Count of tests with status 'failed'" + }, + "skipped": { + "type": "integer", + "description": "Count of tests with status 'skipped'" + }, + "pending": { + "type": "integer", + "description": "Count of tests with status 'pending'" + }, + "other": { + "type": "integer", + "description": "Count of tests with status 'other'" + }, + "flaky": { + "type": "integer", + "description": "Count of flaky tests (passed after failed attempts)" + }, + "suites": { + "type": "integer", + "description": "Number of test suites in the run" + }, + "start": { + "type": "integer", + "description": "Run start time (milliseconds since Unix epoch)" + }, + "stop": { + "type": "integer", + "description": "Run end time (milliseconds since Unix epoch)" + }, + "duration": { + "type": "integer", + "description": "Total run duration (milliseconds)" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["tests", "passed", "failed", "skipped", "pending", "other", "start", "stop"] + }, + "tests": { + "type": "array", + "description": "List of test cases executed during the run", + "items": { + "type": "object", + "description": "Individual test case result", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Unique, stable identifier for the test case (UUID)" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "Name or title of the test case" + }, + "status": { + "type": "string", + "enum": ["passed", "failed", "skipped", "pending", "other"], + "description": "Final outcome of the test case" + }, + "duration": { + "type": "integer", + "description": "Test execution time (milliseconds)" + }, + "start": { + "type": "integer", + "description": "Test start time (milliseconds since Unix epoch)" + }, + "stop": { + "type": "integer", + "description": "Test end time (milliseconds since Unix epoch)" + }, + "suite": { + "type": "array", + "items": { "type": "string" }, + "minItems": 1, + "description": "Suite hierarchy from top-level to immediate parent" + }, + "message": { + "type": "string", + "description": "Error or failure message" + }, + "trace": { + "type": "string", + "description": "Stack trace or failure trace information" + }, + "snippet": { + "type": "string", + "description": "Code snippet associated with the failure" + }, + "ai": { + "type": "string", + "description": "AI-generated diagnostic data or suggestions" + }, + "line": { + "type": "integer", + "description": "Line number of the test definition" + }, + "rawStatus": { + "type": "string", + "description": "Original status from source tool before normalization" + }, + "tags": { + "type": "array", + "items": { "type": "string" }, + "description": "User-defined tags" + }, + "type": { + "type": "string", + "description": "Test classification (e.g., 'unit', 'integration', 'e2e')" + }, + "filePath": { + "type": "string", + "description": "Path to the file defining this test" + }, + "retries": { + "type": "integer", + "description": "Number of retry attempts performed" + }, + "retryAttempts": { + "type": "array", + "description": "List of retry attempts for this test", + "items": { + "type": "object", + "description": "Single retry attempt result", + "properties": { + "attempt": { + "type": "integer", + "minimum": 1, + "description": "Attempt number (1 = first execution)" + }, + "status": { + "type": "string", + "enum": ["passed", "failed", "skipped", "pending", "other"], + "description": "Outcome of this attempt" + }, + "duration": { + "type": "integer", + "description": "Attempt execution time (milliseconds)" + }, + "message": { + "type": "string", + "description": "Error or failure message for this attempt" + }, + "trace": { + "type": "string", + "description": "Stack trace for this attempt" + }, + "line": { + "type": "integer", + "description": "Line number associated with failure" + }, + "snippet": { + "type": "string", + "description": "Code snippet for this attempt" + }, + "stdout": { + "type": "array", + "items": { "type": "string" }, + "description": "Standard output lines from this attempt" + }, + "stderr": { + "type": "array", + "items": { "type": "string" }, + "description": "Standard error lines from this attempt" + }, + "start": { + "type": "integer", + "description": "Attempt start time (milliseconds since Unix epoch)" + }, + "stop": { + "type": "integer", + "description": "Attempt end time (milliseconds since Unix epoch)" + }, + "attachments": { + "type": "array", + "description": "Artifacts from this attempt", + "items": { + "type": "object", + "description": "External file or resource reference", + "properties": { + "name": { + "type": "string", + "description": "Display name of the attachment" + }, + "contentType": { + "type": "string", + "description": "MIME type of the attachment" + }, + "path": { + "type": "string", + "description": "Path or URI to the attachment" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["name", "contentType", "path"] + } + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["attempt", "status"] + } + }, + "flaky": { + "type": "boolean", + "description": "True if test passed after one or more failed attempts" + }, + "stdout": { + "type": "array", + "items": { "type": "string" }, + "description": "Standard output lines from test execution" + }, + "stderr": { + "type": "array", + "items": { "type": "string" }, + "description": "Standard error lines from test execution" + }, + "threadId": { + "type": "string", + "description": "Thread or worker identifier" + }, + "browser": { + "type": "string", + "description": "Browser used for browser-based tests" + }, + "device": { + "type": "string", + "description": "Device or device profile used" + }, + "screenshot": { + "type": "string", + "description": "Single base64-encoded screenshot image" + }, + "attachments": { + "type": "array", + "description": "Additional artifacts (screenshots, logs, videos, etc.)", + "items": { + "type": "object", + "description": "External file or resource reference", + "properties": { + "name": { + "type": "string", + "description": "Display name of the attachment" + }, + "contentType": { + "type": "string", + "description": "MIME type of the attachment" + }, + "path": { + "type": "string", + "description": "Path or URI to the attachment" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["name", "contentType", "path"] + } + }, + "parameters": { + "type": "object", + "additionalProperties": true, + "description": "Test parameters or input values" + }, + "steps": { + "type": "array", + "description": "Test steps or sub-operations", + "items": { + "type": "object", + "description": "Individual test step", + "properties": { + "name": { + "type": "string", + "description": "Name of the step" + }, + "status": { + "type": "string", + "enum": ["passed", "failed", "skipped", "pending", "other"], + "description": "Outcome of the step" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["name", "status"] + } + }, + "insights": { + "type": "object", + "description": "Derived metrics for this test across runs", + "properties": { + "passRate": { + "$ref": "#/definitions/metricDelta", + "description": "Pass rate metric with baseline comparison" + }, + "failRate": { + "$ref": "#/definitions/metricDelta", + "description": "Fail rate metric with baseline comparison" + }, + "flakyRate": { + "$ref": "#/definitions/metricDelta", + "description": "Flaky rate metric with baseline comparison" + }, + "averageTestDuration": { + "$ref": "#/definitions/metricDelta", + "description": "Average duration metric with baseline comparison" + }, + "p95TestDuration": { + "$ref": "#/definitions/metricDelta", + "description": "95th percentile duration with baseline comparison" + }, + "executedInRuns": { + "type": "integer", + "description": "Number of runs this test was executed in" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["name", "status", "duration"] + } + }, + "environment": { + "type": "object", + "description": "Execution environment, system configuration, and build context", + "properties": { + "reportName": { + "type": "string", + "description": "Human-readable name for this report" + }, + "appName": { + "type": "string", + "description": "Name of the application under test" + }, + "appVersion": { + "type": "string", + "description": "Version of the application under test" + }, + "buildId": { + "type": "string", + "description": "Unique identifier for the CI/CD build" + }, + "buildName": { + "type": "string", + "description": "Name of the CI/CD build or pipeline" + }, + "buildNumber": { + "type": "integer", + "description": "Sequential build number" + }, + "buildUrl": { + "type": "string", + "description": "URL to the CI/CD build" + }, + "repositoryName": { + "type": "string", + "description": "Name of the source code repository" + }, + "repositoryUrl": { + "type": "string", + "description": "URL of the source code repository" + }, + "commit": { + "type": "string", + "description": "Git commit SHA or VCS revision identifier" + }, + "branchName": { + "type": "string", + "description": "Git branch or VCS branch name" + }, + "osPlatform": { + "type": "string", + "description": "Operating system platform (e.g., 'linux', 'darwin', 'win32')" + }, + "osRelease": { + "type": "string", + "description": "Operating system release version" + }, + "osVersion": { + "type": "string", + "description": "Operating system version string" + }, + "testEnvironment": { + "type": "string", + "description": "Logical test environment (e.g., 'staging', 'production')" + }, + "healthy": { + "type": "boolean", + "description": "Indicates if the run is considered healthy" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false, + "required": ["tool", "summary", "tests"] + }, + "insights": { + "type": "object", + "description": "Aggregated metrics computed across multiple test runs", + "properties": { + "passRate": { + "$ref": "#/definitions/metricDelta", + "description": "Overall pass rate with baseline comparison" + }, + "failRate": { + "$ref": "#/definitions/metricDelta", + "description": "Overall fail rate with baseline comparison" + }, + "flakyRate": { + "$ref": "#/definitions/metricDelta", + "description": "Overall flaky rate with baseline comparison" + }, + "averageRunDuration": { + "$ref": "#/definitions/metricDelta", + "description": "Average run duration with baseline comparison" + }, + "p95RunDuration": { + "$ref": "#/definitions/metricDelta", + "description": "95th percentile run duration with baseline comparison" + }, + "averageTestDuration": { + "$ref": "#/definitions/metricDelta", + "description": "Average test duration with baseline comparison" + }, + "runsAnalyzed": { + "type": "integer", + "description": "Number of historical runs analyzed for insights" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "additionalProperties": false + }, + "baseline": { + "type": "object", + "description": "Reference to a previous report used for comparison", + "properties": { + "reportId": { + "type": "string", + "format": "uuid", + "description": "UUID of the baseline report" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Generation time of the baseline report" + }, + "source": { + "type": "string", + "description": "Origin or location of the baseline report" + }, + "buildNumber": { + "type": "integer", + "description": "Build number of the baseline run" + }, + "buildName": { + "type": "string", + "description": "Build name of the baseline run" + }, + "buildUrl": { + "type": "string", + "format": "uri", + "description": "URL to the baseline build" + }, + "commit": { + "type": "string", + "description": "Git commit SHA of the baseline run" + }, + "extra": { + "type": "object", + "additionalProperties": true, + "description": "Extension point for arbitrary metadata" + } + }, + "required": ["reportId"], + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": ["results", "reportFormat", "specVersion"], + "definitions": { + "metricDelta": { + "type": "object", + "description": "Metric value with baseline comparison", + "properties": { + "current": { + "type": "number", + "description": "Current metric value" + }, + "baseline": { + "type": "number", + "description": "Baseline metric value for comparison" + }, + "change": { + "type": "number", + "description": "Computed difference between current and baseline" + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/spec/ctrf.md b/spec/ctrf.md new file mode 100644 index 0000000..606a74e --- /dev/null +++ b/spec/ctrf.md @@ -0,0 +1,2986 @@ +# CTRF Specification + +## Common Test Report Format + +**Version:** 0.0.0 +(This version corresponds directly to the CTRF `specVersion` field.) + +**Date:** 2025-11-24 + +**Status:** Working Draft + +**Author:** Matthew Poulton-White (@ma11hewthomas) + +**License:** MIT + +> ⚠️ **Pre-1.0 Notice** +> CTRF is currently in pre-1.0 development. +> While the overall structure is stabilizing, field semantics and constraints +> may still change based on feedback. Consumers SHOULD treat versions below 1.0.0 +> as evolving. + +--- + +## Abstract + +**Common Test Report Format (CTRF)** is a standardized JSON-based interchange format for representing test execution results across tools, languages, and platforms. CTRF enables consistent reporting, aggregation, and analysis of test outcomes. This specification describes the required document structure, field semantics, conformance requirements, and versioning rules. A normative JSON Schema is provided in Appendix A. + +--- + +## Status of This Document + +This document is a Working Draft and reflects pre-1.0 versions of CTRF. +Implementers should expect potential changes between releases until CTRF 1.0.0 +is published. + +--- + +## Normative References + +**[RFC2119]** Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. + + +**[RFC4122]** Leach, P., Mealling, M., Salz, R., “A Universally Unique IDentifier (UUID) URN Namespace”, RFC 4122, July 2005. + + +**[RFC3986]** Berners-Lee, T., Fielding, R., Masinter, L., “Uniform Resource Identifier (URI): Generic Syntax”, RFC 3986, January 2005. + + +**[SemVer]** Preston-Werner, T., “Semantic Versioning 2.0.0”, June 2013. + + +--- + +## Informative References + +**[RFC8259]** Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, December 2017. + + +**[ISO8601]** ISO 8601:2019, "Date and time - Representations for information interchange". + + +## Table of Contents + +--- + +## 1. Introduction (Informative) + +Software engineering teams rely on a wide variety of testing tools to assess the quality and correctness of their systems. These tools produce results that describe how tests were executed, what outcomes were observed, and any diagnostic information that may help teams understand failures. Tests may run in different environments, on different devices, in different stages of a pipeline, and with different execution frameworks. Each tool typically emits its own proprietary report format, often incompatible with others. + +To form a complete picture of test health, teams must aggregate and analyze results from many sources: unit tests, integration tests, end-to-end tests, component tests, API tests, and other forms of testing. This aggregation becomes increasingly difficult when each tool reports results in a different structure, with different field names, inconsistent metadata, and limited machine-readability. + +**CTRF** defines a standardized JSON-based format for representing test execution results across tools, languages, and platforms. + +The goals of CTRF are to: + +1. Define a common data model for test results across diverse frameworks and execution environments +2. Serve as both a native output format and an interchange format for tool-specific conversions +3. Enable consistent interpretation of results regardless of source tool or platform +4. Support aggregation, analysis, and visualization across CI systems and quality platforms +5. Capture execution metadata, environment details, and diagnostics +6. Enable cross-run analysis including historical trends, flakiness detection, and baseline comparisons +7. Represent results for automated, manual, distributed, and hybrid test workflows + +This document defines: + +- the normative CTRF data model +- required and optional fields +- expected semantics and constraints +- producer and consumer conformance rules + +The JSON Schema in Appendix A is normative. + +--- + +## 2. Design Principles (Informative) + +CTRF is designed to be a stable, interoperable, and machine-friendly representation of test results. The following principles guided the design of the specification and explain key structural decisions. + +These principles are informative and do not impose additional conformance requirements beyond those defined elsewhere in this document. + +--- + +### 2.1. Single Logical Run Representation + +A CTRF document represents the results of a single **logical** test execution run. + +A logical run MAY consist of multiple physical executions (for example, sharded runs, parallel workers, or distributed environments) that together form one coordinated execution context. Results from such executions MAY be merged into a single CTRF document. + +While the core `results` object describes a single run, the optional `insights` and `baseline` fields MAY include aggregated metrics computed across multiple historical runs. This enables cross-run analysis and trend detection while maintaining the single-run foundation. + +This model enables CTRF to support modern CI/CD workflows while preserving a clear and consistent unit of reporting. + +--- + +### 2.2. Machine-First, Human-Readable + +CTRF is designed primarily for machine processing, aggregation, and analysis. + +The format emphasizes: + +- strict structure +- predictable field semantics +- deterministic data representation + +At the same time, CTRF remains human-readable JSON to support debugging, inspection, and tooling integration. + +--- + +### 2.3. Flat Test Result Representation + +CTRF represents test results as a flat collection of test cases rather than a nested suite hierarchy. + +Logical grouping and hierarchy are expressed through explicit metadata fields such as `suite`, `filePath`, `tags`, and `parameters`, rather than through document structure. + +This approach: + +- simplifies merging of sharded or parallel executions +- avoids assumptions imposed by specific test frameworks +- enables stable test identification across runs +- supports efficient aggregation and filtering + +Consumers MAY reconstruct hierarchical views for presentation purposes, but such hierarchy is not encoded structurally in the CTRF document. + +--- + +### 2.4. Deterministic Test Identity + +CTRF supports stable identification of test cases across runs. + +While test identifiers are OPTIONAL, producers are encouraged to generate deterministic identifiers (for example, using UUID version 5) derived from stable test attributes such as name, suite path, and file location. + +Deterministic identifiers enable: + +- cross-run analysis +- flakiness detection +- historical trend analysis +- baseline comparisons + +--- + +### 2.5. Strict Core, Explicit Extensibility + +CTRF enforces a strict core schema to ensure interoperability across tools and platforms. + +Fields not defined by the specification are prohibited except within explicitly designated `extra` objects. This ensures: + +- predictable parsing behavior +- forward compatibility +- consistent interpretation of data + +The `extra` object provides a controlled extension mechanism that allows producers and consumers to include tool-specific or domain-specific metadata without fragmenting the core format. + +--- + +### 2.6. Tool and Framework Agnosticism + +CTRF is intentionally agnostic to: + +- programming languages +- test frameworks +- execution environments +- CI/CD systems + +The specification avoids framework-specific concepts and terminology wherever possible, focusing instead on universally applicable test execution concepts. + +This enables CTRF to function as a true interchange format rather than a framework-specific report. + +--- + +### 2.7. Explicit Semantics Over Implicit Behavior + +CTRF favors explicit fields and documented semantics over inferred or implicit behavior. + +For example: + +- test retries are represented explicitly as retry attempts +- derived metrics are represented as insights rather than inferred +- hierarchy is expressed as metadata rather than structure + +This reduces ambiguity and ensures consistent interpretation across consumers. + +--- + +### 2.8. Forward Compatibility and Evolution + +CTRF follows Semantic Versioning and is designed to evolve without breaking existing consumers. + +Backward-compatible additions are introduced through: + +- optional fields +- new insight metrics +- use of `extra` objects + +Breaking changes are reserved for major version increments. + +--- + +### 2.9. Interoperability Over Optimization + +CTRF prioritizes clarity, consistency, and interoperability over compactness or minimal payload size. + +While documents may be large (for example, when including diagnostics or screenshots), this trade-off enables richer analysis and more powerful tooling across diverse environments. + +--- + +### 2.10. Consumer Flexibility + +CTRF defines how data is represented, not how it must be consumed or displayed. + +Consumers are free to: + +- compute additional metrics +- visualize data hierarchically +- merge documents +- discard unused fields + +As long as the document structure and semantics are respected, CTRF does not constrain consumer behavior. + +--- + +## 3. Terminology + +The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHALL**, **SHALL NOT**, +**SHOULD**, **SHOULD NOT**, **RECOMMENDED**, **MAY**, and **OPTIONAL** are to be +interpreted as described in [RFC2119]. + +**Report**: +The complete CTRF document. A report always contains the results of a single test execution run, and MAY additionally include derived insights computed across multiple runs. + +**Run**: +A single **logical** execution of a test suite or collection of tests. +A run MAY consist of multiple physical executions (for example, shards or parallel workers) that are part of the same coordinated execution context. + +**Producer**: +A tool, system, or process that generates CTRF reports by capturing and structuring test execution data. + +**Consumer**: +A tool, system, or process that reads and interprets CTRF reports for purposes such as analysis, visualization, alerting, or trend detection. + +**Test Case**: +An individual executable test, represented in CTRF as an entry within the `tests` array. + +**Status**: +The final outcome of a test case. The `status` field MUST be one of: `passed`, `failed`, `skipped`, `pending`, or `other`. + +**Attempt**: +A single execution of a test case. The first execution is attempt number 1. Subsequent executions of the same test case, performed because the test was retried, are also attempts with incrementing attempt numbers. + +**Retry** / **Retry Attempt**: +Any attempt with an attempt number greater than 1. Retries occur when a test is re-executed after a failure or based on a retry policy. + +**Flaky Test**: +A test is considered flaky only if its final status is `passed` and it experienced one or more failed attempts before passing. + +**Environment**: +The system, platform, or context in which tests were executed, including build, commit, branch, OS, and other metadata. + +**Build**: +The CI/CD pipeline execution or build context in which the tests were run. Build metadata appears in the `environment` object. + +**Baseline**: +A previously generated CTRF report used as a reference for comparison with the current report when evaluating trends or regressions. + +**Insights**: +Derived or aggregated metrics calculated across one or more test runs. Insights MAY be applied at the run-level or at the individual test case level. + +**Metric**: +A quantitative value describing some property of a set of tests or runs (for example, pass rate or average duration). Metrics are often represented as `metricDelta` objects within insights. + +**Metric Delta**: +A structure describing a metric’s `current` value, the corresponding value from a `baseline` run, and the computed `change` between them. + +**Attachment**: +An external file or resource referenced by a test case or retry attempt, such as a screenshot, log file, or other artifact. + +--- + +## 4. Overall Document Structure + +A valid CTRF document MUST conform to the following structural requirements: + +### 4.1. JSON Encoding + +- The document MUST be a single JSON object. +- The document MUST be encoded in UTF-8 without a byte order mark (BOM). +- The document MUST be syntactically valid JSON as defined in [RFC8259]. + +### 4.2. Required Top-Level Fields + +A CTRF document MUST include: + +- `reportFormat` - MUST be the string `"CTRF"`. +- `specVersion` - MUST follow Semantic Versioning 2.0.0. +- `results` - MUST contain the results of a single test execution run. + + Additional top-level fields MAY be included. + +### 4.3. Schema Conformance + +The document MUST validate against the normative JSON Schema provided in Appendix A. +Consumers MUST reject documents that do not conform to the schema, except where explicitly permitted. + +### 4.4. Unknown or Unexpected Properties + +Properties not defined in this specification MUST NOT appear outside an `extra` object. +Consumers MUST reject any document containing unknown properties outside of `extra`. + +### 4.5. Top-Level Object Semantics + +- A CTRF document describes exactly **one** test execution run. +- Derived or aggregated data MAY appear in `insights` and `baseline`. +- Consumers MUST NOT infer the presence of multiple raw runs unless explicitly represented in insights. + +### 4.6. Extension Mechanism + +- Objects named `extra` MAY contain arbitrary data and are the only supported extensibility points in CTRF. +- Producers MAY include tool-specific or domain-specific metadata within an `extra` object. +- Consumers MAY require particular fields within an `extra` object for their platform or workflow; such fields MUST NOT appear outside `extra`. +- Consumers SHOULD ignore unrecognized fields inside any `extra` object unless they explicitly depend on them. + +### 4.7. Versioning and Forward Compatibility + +- The `specVersion` field identifies the CTRF specification version to which the document conforms. +- Consumers SHOULD support all PATCH-level changes within a given MAJOR.MINOR version. +- Consumers MUST NOT assume compatibility across MAJOR versions. + +These rules ensure that CTRF documents are consistent, strict, and interoperable across tools, languages, and platforms. + +### 4.8. Time Units + +Unless otherwise specified in this document, all timestamps and duration values in a CTRF document MUST be expressed as integers representing milliseconds. + +This applies to all fields representing points in time or elapsed durations, +including (but not limited to) `start`, `stop`, and `duration` fields at all levels. + +--- + +## 5. Top-Level Fields + +The root object defines all top-level properties of a CTRF document. +Each field in this section includes a short description of its purpose along with its normative requirements. + +Unknown fields MUST NOT appear outside an `extra` object. + +--- + +### 5.1. `reportFormat` + +**Description:** +Identifies the format of the document. + +**Requirements:** +`reportFormat` MUST be present and MUST be exactly: + +```text +"CTRF" +``` + +Consumers MUST reject documents with any other value. + +--- + +### 5.2. `specVersion` + +**Description:** +Specifies the CTRF specification version that the document conforms to. + +**Requirements:** +`specVersion` MUST follow Semantic Versioning 2.0.0: + +```text +MAJOR.MINOR.PATCH +``` + +Consumers MUST NOT assume compatibility across different MAJOR versions. + +--- + +### 5.3. `reportId` + +**Description:** +A unique identifier for this report instance. + +**Requirements:** +`reportId` is OPTIONAL. +If present, it MUST be a valid UUID as defined in [RFC4122]. + +--- + +### 5.4. `timestamp` + +**Description:** +The time at which the report was generated. + +**Requirements:** +`timestamp` is OPTIONAL. +If present, it MUST be a valid RFC 3339 / ISO 8601 date-time string. + +--- + +### 5.5. `generatedBy` + +**Description:** +Identifies the tool, framework, or system that produced the CTRF document. + +**Requirements:** +`generatedBy` is OPTIONAL. +No specific format or structure is required. + +--- + +### 5.6. `results` + +**Description:** +Contains the results of a single test execution run. + +**Requirements:** +`results` MUST be present. +It MUST follow the structure defined in Section 6 (Results Object). + +--- + +### 5.7. `insights` + +**Description:** +Contains aggregated or derived metrics computed across multiple test runs. + +**Requirements:** +`insights` is OPTIONAL. +If present, it MUST follow the structure described in Section 14 (Run-Level Insights Object). + +--- + +### 5.8. `baseline` + +**Description:** +Identifies a previous report used as a comparison reference when computing insights. + +**Requirements:** +`baseline` is OPTIONAL. +If present, it MUST follow the structure described in Section 17 (Baseline Object). + +--- + +### 5.9. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point at the top level of a CTRF document. + +--- + +## 6. Results Object + +The `results` object is the core component of a CTRF document. + +A `results` object represents the outcomes of a single logical run, which MAY include merged results from multiple shards or workers. + +The `results` object MUST be present and MUST follow the structure defined in this section. + +Unknown fields MUST NOT appear in the `results` object except within an `extra` object. + +Each field within the `results` object is described in the subsections below. + +--- + +### 6.1. `tool` + +**Description:** +Identifies the tool, framework, or system that produced the test results. + +**Requirements:** +`tool` MUST be present. +It MUST follow the structure defined in Section 7 (Tool Object). + +--- + +### 6.2. `summary` + +**Description:** +Provides aggregated statistics and timing data describing the test run. + +**Requirements:** +`summary` MUST be present. +It MUST follow the structure defined in Section 8 (Summary Object). + +--- + +### 6.3. `tests` + +**Description:** +Contains the list of test cases executed during the test run. + +**Requirements:** +`tests` MUST be present. +It MUST be an array. +Each element MUST follow the structure defined in Section 9 (Test Object). + +--- + +### 6.4. `environment` + +**Description:** +Describes the execution environment, system configuration, and build context for the test run. + +**Requirements:** +`environment` is OPTIONAL. +If present, it MUST follow the structure defined in Section 10 (Environment Object). + +--- + +### 6.5. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under the `results` object. + +--- + +## 7. Tool Object + +The `tool` object identifies the tool, framework, or system that produced the test results. +It provides metadata describing the producer responsible for generating the CTRF document. + +The `tool` object MUST be present within the `results` object. + +Unknown fields MUST NOT appear in the `tool` object except within an `extra` object. + +Each field within the `tool` object is described in the subsections below. + +### 7.1. `name` + +**Description:** +The name of the testing tool, framework, or system that produced the results. + +**Requirements:** +`name` MUST be present. +It MUST be a non-empty string. +It MUST identify the primary tool responsible for generating the CTRF data. + +### 7.2. `version` + +**Description:** +The version of the testing tool or framework. + +**Requirements:** +`version` is OPTIONAL. +If present, it SHOULD follow semantic versioning or a tool-defined versioning scheme. +No specific format is required. + +### 7.3. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under the `tool` object. + +--- + +## 8. Summary Object + +The `summary` object provides a high-level overview of the test run, including counts of test outcomes and timing information. It offers an at-a-glance representation of the overall state of the run. + +The `summary` object MUST be present within the `results` object. + +Unknown fields MUST NOT appear in the `summary` object except within an `extra` object. + +Each field within the `summary` object is described in the subsections below. + +### 8.1. `tests` + +**Description:** +The total number of tests executed in the run. + +**Requirements:** +`tests` MUST be present. +It MUST be a non-negative integer. +It SHOULD equal the length of the `tests` array in the `results` object. + +### 8.2. `passed` + +**Description:** +The count of tests that completed with a status of `passed`. + +**Requirements:** +`passed` MUST be present. +It MUST be a non-negative integer. + +### 8.3. `failed` + +**Description:** +The count of tests that completed with a status of `failed`. + +**Requirements:** +`failed` MUST be present. +It MUST be a non-negative integer. + +### 8.4. `pending` + +**Description:** +The count of tests whose status is `pending`. + +**Requirements:** +`pending` MUST be present. +It MUST be a non-negative integer. + +### 8.5. `skipped` + +**Description:** +The count of tests whose status is `skipped`. + +**Requirements:** +`skipped` MUST be present. +It MUST be a non-negative integer. + +### 8.6. `other` + +**Description:** +The count of tests whose status is `other`. + +**Requirements:** +`other` MUST be present. +It MUST be a non-negative integer. + +### 8.7. `flaky` + +**Description:** +The count of tests that were identified as flaky. + +**Requirements:** +`flaky` is OPTIONAL. +If present, it MUST be a non-negative integer. +A test is considered flaky only if its final status is `passed` and it experienced one or more failed attempts before passing. + +### 8.8. `suites` + +**Description:** +The number of test suites included in the run. + +**Requirements:** +`suites` is OPTIONAL. +If present, it MUST be a non-negative integer. + +### 8.9. `start` + +**Description:** +The timestamp indicating when test execution began. + +**Requirements:** +`start` MUST be present. +It MUST be an integer representing milliseconds since the Unix epoch. + +### 8.10. `stop` + +**Description:** +The timestamp indicating when test execution ended. + +**Requirements:** +`stop` MUST be present. +It MUST be an integer representing milliseconds since the Unix epoch. +`stop` SHOULD be greater than or equal to `start`. + +### 8.11. `duration` + +**Description:** +The total duration of the test run. + +**Requirements:** +`duration` is OPTIONAL. +If present, it MUST be an integer representing milliseconds. +Consumers SHOULD ignore `duration` if they prefer to compute it as `stop - start`. + +### 8.12. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under the `summary` object. + +--- + +## 9. Test Object + +Each entry in the `tests` array represents a single executed test case. +A test object captures the identity, outcome, timing, diagnostics, and optional retry data for that test. + +Each element of the `tests` array MUST follow the structure defined in this section. + +Unknown fields MUST NOT appear in the test object except within an `extra` object (or within `extra` objects nested inside child structures such as `retryAttempts` and `attachments`). + +Each field within the test object is described in the subsections below. + +### 9.1. `id` + +**Description:** +A unique, stable identifier for the test case. + +**Requirements:** +`id` is OPTIONAL. +If present, it MUST be a valid UUID as defined in [RFC4122]. +If a producer chooses to assign test identifiers, they SHOULD be deterministic for a given test case and stable across runs, machines, and environments. + +CTRF RECOMMENDS using UUID version 5 (name-based UUID) derived from stable test properties such as the test name, suite path, and file path. + +Consumers MUST treat the `id` value as opaque. + +### 9.2. `name` + +**Description:** +The name or title of the test case. + +**Requirements:** +`name` MUST be present. +It MUST be a non-empty string. + +### 9.3. `status` + +**Description:** +The final outcome of the test case. + +**Requirements:** +`status` MUST be present. +It MUST be one of: `passed`, `failed`, `skipped`, `pending`, or `other`. + +### 9.4. `duration` + +**Description:** +The total execution time for the test case. + +**Requirements:** +`duration` MUST be present. +It MUST be an integer representing milliseconds. + +### 9.5. `start` + +**Description:** +The timestamp when test execution began. + +**Requirements:** +`start` is OPTIONAL. +If present, it MUST be an integer representing milliseconds since the Unix epoch. + +### 9.6. `stop` + +**Description:** +The timestamp when test execution ended. + +**Requirements:** +`stop` is OPTIONAL. +If present, it MUST be an integer representing milliseconds since the Unix epoch. +If both `start` and `stop` are present, `stop` SHOULD be greater than or equal to `start`. + +### 9.7. `suite` + +**Description:** +An ordered list of suite or grouping names to which this test belongs, ordered from the top-level suite to the immediate parent of the test. + +**Requirements:** +`suite` is OPTIONAL. +If present, it MUST be an array of strings containing at least one entry. +The array MUST be ordered from the top-level suite to the immediate parent suite of the test. + +### 9.8. `message` + +**Description:** +A user-visible error or failure message associated with the test result. + +**Requirements:** +`message` is OPTIONAL. +If present, it MUST be a string. + +### 9.9. `trace` + +**Description:** +A stack trace or structured trace information describing the failure. + +**Requirements:** +`trace` is OPTIONAL. +If present, it MUST be a string. + +### 9.10. `snippet` + +**Description:** +A code snippet or relevant source excerpt associated with the failure. + +**Requirements:** +`snippet` is OPTIONAL. +If present, it MUST be a string. + +### 9.11. `ai` + +**Description:** +AI-generated diagnostic data, commentary, or suggestions related to the test. + +**Requirements:** +`ai` is OPTIONAL. +If present, it MUST be a string. + +### 9.12. `line` + +**Description:** +The line number associated with the test definition. + +**Requirements:** +`line` is OPTIONAL. +If present, it MUST be an integer. + +### 9.13. `rawStatus` + +**Description:** +The unmodified status reported by the source tool before CTRF normalization. + +**Requirements:** +`rawStatus` is OPTIONAL. +If present, it MUST be a string. + +### 9.14. `tags` + +**Description:** +A list of user-defined tags or labels associated with the test. + +**Requirements:** +`tags` is OPTIONAL. +If present, it MUST be an array of strings. + +### 9.15. `type` + +**Description:** +A classification or category for the test (for example, `"unit"`, `"integration"`, or `"e2e"`). + +**Requirements:** +`type` is OPTIONAL. +If present, it MUST be a string. + +### 9.16. `filePath` + +**Description:** +The path to the file that defines the test case. + +**Requirements:** +`filePath` is OPTIONAL. +If present, it MUST be a string. + +### 9.17. `retries` + +**Description:** +The number of retries performed for this test case. + +**Requirements:** +`retries` is OPTIONAL. +If present, it MUST be a non-negative integer. +It SHOULD equal the count of entries in `retryAttempts`. + +### 9.18. `retryAttempts` + +**Description:** +A list of retry attempts performed for this test case. + +**Requirements:** +`retryAttempts` is OPTIONAL. +If present, it MUST be an array. +Each entry MUST follow the structure defined in Section 11 (Retry Attempt Object). + +### 9.19. `flaky` + +**Description:** +Indicates whether the test is considered flaky. + +A test is considered flaky only if its final status is `passed` and it experienced one or more failed attempts before passing. + +**Requirements:** +`flaky` is OPTIONAL. +If present, it MUST be a boolean. + +### 9.20. `stdout` + +**Description:** +Lines of standard output generated during test execution. + +**Requirements:** +`stdout` is OPTIONAL. +If present, it MUST be an array of strings. + +### 9.21. `stderr` + +**Description:** +Lines of standard error output generated during test execution. + +**Requirements:** +`stderr` is OPTIONAL. +If present, it MUST be an array of strings. + +### 9.22. `threadId` + +**Description:** +Identifies the thread or worker on which the test executed. + +**Requirements:** +`threadId` is OPTIONAL. +If present, it MUST be a string. + +### 9.23. `browser` + +**Description:** +Identifies the browser used during test execution (for browser-based tests). + +**Requirements:** +`browser` is OPTIONAL. +If present, it MUST be a string. + +### 9.24. `device` + +**Description:** +Identifies the device or device profile used during test execution. + +**Requirements:** +`device` is OPTIONAL. +If present, it MUST be a string. + +### 9.25. `screenshot` + +**Description:** +A single base64-encoded screenshot captured during execution of the test case. + +**Requirements:** +`screenshot` is OPTIONAL. +If present, it MUST be a base64-encoded string. +`screenshot` MUST represent exactly one screenshot image. +`screenshot` MUST NOT contain a URL, file path, or reference to an external resource. +The schema does not validate base64; producers/consumers MAY validate. +Producers MUST use the `attachments` array if providing additional screenshots or non-inline images. + +**Implementation Note:** +Screenshots are base64-encoded and may significantly increase document size. +Producers SHOULD prefer file-based attachments for large images. + +### 9.26. `attachments` + +**Description:** +A list of additional artifacts associated with the test case (screenshots, logs, videos, etc.). + +**Requirements:** +`attachments` is OPTIONAL. +If present, it MUST be an array. +Each entry MUST follow the structure defined in Section 12 (Attachment Object). + +### 9.27. `parameters` + +**Description:** +A set of test parameters, input values, or contextual data relevant to the execution. + +**Requirements:** +`parameters` is OPTIONAL. +If present, it MUST be an object. +It MAY contain arbitrary fields. + +### 9.28. `steps` + +**Description:** +A list of test steps or sub-operations performed during the test. + +**Requirements:** +`steps` is OPTIONAL. +If present, it MUST be an array. +Each element MUST follow the structure defined in Section 13 (Step Object). + +### 9.29. `insights` + +**Description:** +Derived or aggregated insights specific to this test case. + +**Requirements:** +`insights` is OPTIONAL. +If present, it MUST follow the structure defined in Section 15 (Test-Level Insights Object). + +### 9.30. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under the test object. + +--- + +## 10. Environment Object + +The environment object describes the execution environment, system configuration, and CI/CD context in which the test run was executed. It provides metadata that may influence test behavior or help consumers interpret test results. + +The environment object is OPTIONAL within the results object. + +Unknown fields MUST NOT appear in the environment object except within an `extra` object. + +Each field within the environment object is described in the subsections below. + +### 10.1. `reportName` + +**Description:** +A human-readable name for the test report or test run. + +**Requirements:** +`reportName` is OPTIONAL. +If present, it MUST be a string. + +### 10.2. `appName` + +**Description:** +The name of the application or service under test. + +**Requirements:** +`appName` is OPTIONAL. +If present, it MUST be a string. + +### 10.3. `appVersion` + +**Description:** +The version of the application or service under test. + +**Requirements:** +`appVersion` is OPTIONAL. +If present, it MUST be a string. + +### 10.4. `buildId` + +**Description:** +An identifier for the CI/CD build or job in which the tests were executed. + +**Requirements:** +`buildId` is OPTIONAL. +If present, it MUST be a string. + +### 10.5. `buildName` + +**Description:** +A human-readable name for the CI/CD build or job. + +**Requirements:** +`buildName` is OPTIONAL. +If present, it MUST be a string. + +### 10.6. `buildNumber` + +**Description:** +A numeric build counter or sequential identifier associated with the CI/CD pipeline execution. + +**Requirements:** +`buildNumber` is OPTIONAL. +If present, it MUST be an integer. + +### 10.7. `buildUrl` + +**Description:** +A URL linking to the CI/CD build, job, or pipeline run. + +**Requirements:** +`buildUrl` is OPTIONAL. +If present, it MUST be a string. +Consumers MAY interpret it as a URI, but no validation is required by producers. + +### 10.8. `repositoryName` + +**Description:** +The name of the source code repository associated with the test run. + +**Requirements:** +`repositoryName` is OPTIONAL. +If present, it MUST be a string. + +### 10.9. `repositoryUrl` + +**Description:** +A URL referencing the repository associated with the test run. + +**Requirements:** +`repositoryUrl` is OPTIONAL. +If present, it MUST be a string. +Consumers MAY attempt to interpret it as a URI, but no validation is required by producers. + +### 10.10. `commit` + +**Description:** +The commit hash or revision identifier of the code under test. + +**Requirements:** +`commit` is OPTIONAL. +If present, it MUST be a string. + +### 10.11. `branchName` + +**Description:** +The name of the source control branch from which the test run was executed. + +**Requirements:** +`branchName` is OPTIONAL. +If present, it MUST be a string. + +### 10.12. `osPlatform` + +**Description:** +The operating system platform (e.g., linux, darwin, win32). + +**Requirements:** +`osPlatform` is OPTIONAL. +If present, it MUST be a string. + +### 10.13. `osRelease` + +**Description:** +The operating system release version (e.g., kernel version or OS distribution version). + +**Requirements:** +`osRelease` is OPTIONAL. +If present, it MUST be a string. + +### 10.14. `osVersion` + +**Description:** +The operating system version or build identifier. + +**Requirements:** +`osVersion` is OPTIONAL. +If present, it MUST be a string. + +### 10.15. `testEnvironment` + +**Description:** +A label indicating the environment under which tests were executed (e.g., local, staging, production, qa). + +**Requirements:** +`testEnvironment` is OPTIONAL. +If present, it MUST be a string. + +### 10.16. `healthy` + +**Description:** +Indicates whether the overall system or environment was considered healthy during the test run. + +**Requirements:** +`healthy` is OPTIONAL. +If present, it MUST be a boolean. + +### 10.17. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under the environment object. + +--- + +## 11. Retry Attempt Object + +The `retryAttempts` array within a test object contains zero or more retry attempt objects. +Each retry attempt represents a single re-execution of a test after an initial failure or according to a retry policy. + +A retry attempt object provides detailed information about that specific execution, including its outcome, duration, diagnostics, and attachments. + +Retry attempts SHOULD be ordered by ascending attempt number. + +Unknown fields MUST NOT appear in a retry attempt object except within an `extra` object. + +Each field within a retry attempt object is described in the subsections below. + +### 11.1. `attempt` + +**Description:** +The attempt number for this execution of the test case. + +**Requirements:** +`attempt` MUST be present. +It MUST be an integer greater than or equal to 1. +Attempt number 1 represents the first execution; higher numbers represent retries. + +### 11.2. `status` + +**Description:** +The outcome of this retry attempt. + +**Requirements:** +`status` MUST be present. +It MUST be one of the following values: `passed`, `failed`, `skipped`, `pending`, or `other`. + +### 11.3. `duration` + +**Description:** +The execution time of this retry attempt, in milliseconds. + +**Requirements:** +`duration` is OPTIONAL. +If present, it MUST be an integer. + +### 11.4. `message` + +**Description:** +A human-readable message associated with the attempt outcome, commonly used for error or failure messages. + +**Requirements:** +`message` is OPTIONAL. +If present, it MUST be a string. + +### 11.5. `trace` + +**Description:** +A stack trace or diagnostic trace captured during the attempt. + +**Requirements:** +`trace` is OPTIONAL. +If present, it MUST be a string. + +### 11.6. `line` + +**Description:** +The line number in the source file where the failure occurred, if applicable. + +**Requirements:** +`line` is OPTIONAL. +If present, it MUST be a number. + +### 11.7. `snippet` + +**Description:** +A source code snippet or excerpt relevant to the attempt. + +**Requirements:** +`snippet` is OPTIONAL. +If present, it MUST be a string. + +### 11.8. `stdout` + +**Description:** +A list of standard output lines captured during the attempt. + +**Requirements:** +`stdout` is OPTIONAL. +If present, it MUST be an array of strings. + +### 11.9. `stderr` + +**Description:** +A list of standard error lines captured during the attempt. + +**Requirements:** +`stderr` is OPTIONAL. +If present, it MUST be an array of strings. + +### 11.10. `start` + +**Description:** +The timestamp indicating when the attempt began, in milliseconds since the Unix epoch. + +**Requirements:** +`start` is OPTIONAL. +If present, it MUST be an integer. + +### 11.11. `stop` + +**Description:** +The timestamp indicating when the attempt ended, in milliseconds since the Unix epoch. + +**Requirements:** +`stop` is OPTIONAL. +If present, it MUST be an integer. +If both `start` and `stop` are present, `stop` SHOULD be greater than or equal to `start`. + +### 11.12. `attachments` + +**Description:** +An array of attachment objects associated with this retry attempt. + +**Requirements:** +`attachments` is OPTIONAL. +If present, it MUST be an array. +Each element MUST follow the structure defined in Section 12 (Attachment Object). + +### 11.13. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under a retry attempt object. + +--- + +## 12. Attachment Object + +The `attachments` array provides references to external artifacts associated with a test case or retry attempt. Attachments may include screenshots, logs, videos, performance traces, or any other files needed for diagnostic or reporting purposes. + +Each attachment object describes a single artifact. + +Unknown fields MUST NOT appear in an attachment object except within an `extra` object. + +Each field within an attachment object is described in the subsections below. + +### 12.1. `name` + +**Description:** +A human-readable name for the attachment. + +**Requirements:** +`name` MUST be present. +It MUST be a string. + +### 12.2. `contentType` + +**Description:** +The MIME type of the attached resource (e.g., `image/png`, `application/json`, `text/plain`). + +**Requirements:** +`contentType` MUST be present. +It MUST be a string. +It SHOULD follow standard MIME type conventions. + +### 12.3. `path` + +**Description:** +A reference to the location of the attachment resource. +This MAY be a URL or a file path, depending on the producer’s environment. + +**Requirements:** +`path` MUST be present. +It MUST be a string. +The specification does not impose any particular URI or path semantics. +Consumers MUST treat attachment paths as opaque references and MUST NOT assume +local filesystem access unless explicitly documented by the producer. + +### 12.4. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under an attachment object. + +--- + +## 13. Step Object + +The `steps` array within a test object provides a structured representation of the actions performed during the execution of a test case. +Steps may be used to document sub-actions, checkpoints, validations, or diagnostic events that occurred during the test. + +Each step object describes a single action. + +Unknown fields MUST NOT appear in a step object except within an `extra` object. + +Each field within a step object is described in the subsections below. + +### 13.1. `name` + +**Description:** +A human-readable name or description of the step. + +**Requirements:** +`name` MUST be present. +It MUST be a string. + +### 13.2. `status` + +**Description:** +The outcome of this step. + +**Requirements:** +`status` MUST be present. +It MUST be one of the following values: `passed`, `failed`, `skipped`, `pending`, or `other`. + +A step's `status` does not determine the test case's final status, but may provide diagnostic detail. + +### 13.3. `extra` + +**Description:** +An extensibility object containing arbitrary metadata related to the step. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point directly under a step object. + +--- + +## 14. Run-Level Insights Object + +The run-level insights object appears at the root of a CTRF document. +It provides aggregated metrics computed across multiple test runs. + +The run-level insights object is OPTIONAL. +Unknown fields MUST NOT appear in this object except within an `extra` object. + +Insights are most commonly generated by consumers as part of post-processing or historical analysis. + +Producers MAY include insights directly, but consumers MUST NOT require their presence. + +Each field within the run-level insights object is described in the subsections below. + +### 14.1. `passRate` + +**Description:** +A `metricDelta` object representing the overall pass rate across all analyzed runs. + +**Requirements:** +`passRate` is OPTIONAL. +If present, it MUST follow the metric delta structure. + +### 14.2. `failRate` + +**Description:** +A `metricDelta` object representing the overall failure rate. + +**Requirements:** +`failRate` is OPTIONAL. +If present, it MUST be a valid metric delta object. + +### 14.3. `flakyRate` + +**Description:** +A `metricDelta` object representing the rate of flaky tests across all analyzed runs. + +**Requirements:** +`flakyRate` is OPTIONAL. +If present, it MUST follow the metric delta structure. + +### 14.4. `averageRunDuration` + +**Description:** +A `metricDelta` object representing the average total duration of test runs. + +**Requirements:** +`averageRunDuration` is OPTIONAL. +If present, it MUST be a valid metric delta object. + +### 14.5. `p95RunDuration` + +**Description:** +A `metricDelta` object representing the 95th percentile of run durations. + +**Requirements:** +`p95RunDuration` is OPTIONAL. +If present, it MUST follow the metric delta structure. + +### 14.6. `averageTestDuration` + +**Description:** +A `metricDelta` object representing the average duration of individual tests across all runs. + +**Requirements:** +`averageTestDuration` is OPTIONAL. +If present, it MUST be a valid metric delta object. + +### 14.7. `runsAnalyzed` + +**Description:** +The number of test runs included when calculating these insights. + +**Requirements:** +`runsAnalyzed` is OPTIONAL. +If present, it MUST be a non-negative integer. + +### 14.8. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point in the run-level insights object. + +--- + +## 15. Test-Level Insights Object + +The test-level insights object appears inside an individual test object. +It provides aggregated metrics for that specific test case across multiple runs. + +The test-level insights object is OPTIONAL. +Unknown fields MUST NOT appear in this object except within an `extra` object. + +Insights are most commonly generated by consumers as part of post-processing or historical analysis. + +Producers MAY include insights directly, but consumers MUST NOT require their presence. + +Each field within the test-level insights object is described in the subsections below. + +### 15.1. `passRate` + +**Description:** +A `metricDelta` object representing the pass rate for this test case across analyzed runs. + +**Requirements:** +`passRate` is OPTIONAL. +If present, it MUST follow the structure defined in Section 16 (Metric Delta Object). + +### 15.2. `failRate` + +**Description:** +A `metricDelta` object representing the failure rate for this test case. + +**Requirements:** +`failRate` is OPTIONAL. +If present, it MUST be a valid metric delta object. + +### 15.3. `flakyRate` + +**Description:** +A `metricDelta` object representing the flakiness rate of this test case. + +**Requirements:** +`flakyRate` is OPTIONAL. +If present, it MUST follow the metric delta structure. + +### 15.4. `averageTestDuration` + +**Description:** +A `metricDelta` object representing the average duration of this specific test case across runs. + +**Requirements:** +`averageTestDuration` is OPTIONAL. +If present, it MUST be a valid metric delta object. + +### 15.5. `p95TestDuration` + +**Description:** +A `metricDelta` object representing the 95th percentile execution duration for this test case. + +**Requirements:** +`p95TestDuration` is OPTIONAL. +If present, it MUST be a metric delta object. + +### 15.6. `executedInRuns` + +**Description:** +The number of runs in which this test case was executed. + +**Requirements:** +`executedInRuns` is OPTIONAL. +If present, it MUST be a non-negative integer. + +### 15.7. `extra` + +**Description:** +An extensibility object containing arbitrary metadata. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point within a test-level insights object. + +--- + +## 16. Metric Delta Object + +The `metricDelta` object represents a numeric metric and its change relative to a baseline. + +A `metricDelta` object MAY contain any subset of these fields depending on the availability of baseline data and the metric computation performed. + +Consumers MUST NOT assume the presence of any specific field within a `metricDelta` object. + +Unknown fields MUST NOT appear in a `metricDelta` object. + +Unlike other objects in this specification, the `metricDelta` object does not include an `extra` field. +This is intentional: metric deltas are simple, self-contained numeric structures that represent computed values. +Extensibility at the metric level is not required; producers requiring additional context SHOULD use the `extra` object on the parent insights object instead. + +### 16.1. `current` + +**Description:** +The current value of the metric. + +**Requirements:** +`current` is OPTIONAL. +If present, it MUST be a number. + +### 16.2. `baseline` + +**Description:** +The metric value from the selected baseline run. + +**Requirements:** +`baseline` is OPTIONAL. +If present, it MUST be a number. + +### 16.3. `change` + +**Description:** +The computed difference between `current` and `baseline`. + +**Requirements:** +`change` is OPTIONAL. +If present, it MUST be a number. + +--- + +## 17. Baseline Object + +The `baseline` object identifies a previously generated CTRF report that is used as a reference point when computing insights and metric deltas. + +The `baseline` object is OPTIONAL and appears at the top level of a CTRF document. + +If present, the `baseline` object MUST follow the structure defined in this section. +Unknown fields MUST NOT appear in the `baseline` object except within an `extra` object. + +Each field within the `baseline` object is described in the subsections below. + +### 17.1. `reportId` + +**Description:** +The unique identifier of the baseline report. + +**Requirements:** +`reportId` MUST be present. +It MUST be a valid UUID as defined in [RFC4122]. +The referenced report SHOULD correspond to a valid CTRF document. + +### 17.2. `timestamp` + +**Description:** +The timestamp indicating when the baseline report was generated. + +**Requirements:** +`timestamp` is OPTIONAL. +If present, it MUST be a valid RFC 3339 / ISO 8601 date-time string. + +### 17.3. `source` + +**Description:** +A human-readable identifier describing the origin of the baseline report. + +This value MAY be a descriptive label (for example, a branch name or environment) or a URL pointing to the baseline report location or source system. + +**Requirements:** +`source` is OPTIONAL. +No specific format is required. + +### 17.4. `buildNumber` + +**Description:** +The build number associated with the baseline report. + +**Requirements:** +`buildNumber` is OPTIONAL. +If present, it MUST be an integer. + +### 17.5. `buildName` + +**Description:** +The name or label of the build associated with the baseline report. + +**Requirements:** +`buildName` is OPTIONAL. +No specific format is required. + +### 17.6. `buildUrl` + +**Description:** +A URL pointing to the build or pipeline execution associated with the baseline report. + +**Requirements:** +`buildUrl` is OPTIONAL. +If present, it MUST be a valid URI as defined in [RFC3986]. + +### 17.7. `commit` + +**Description:** +The source control commit identifier associated with the baseline report. + +**Requirements:** +`commit` is OPTIONAL. +No specific format is required. + +### 17.8. `extra` + +**Description:** +An extensibility object containing arbitrary metadata related to the baseline. + +**Requirements:** +`extra` is OPTIONAL. +It MAY contain arbitrary fields. +It is the ONLY permitted extension point within the baseline object. + +## 18. Versioning + +CTRF follows **Semantic Versioning**. + +- MAJOR = breaking changes +- MINOR = backward-compatible additions +- PATCH = non-breaking fixes + +Consumers MUST reject incompatible MAJOR versions. + +Producers MUST set `specVersion` to the highest CTRF version they fully support. + +The `specVersion` field in a CTRF document MUST follow these versioning rules. + +--- + +## 19. Conformance Requirements + +### 19.1. Producer Conformance + +Producers: + +- MUST output UTF-8 JSON +- MUST set `reportFormat = "CTRF"` +- MUST include all required fields +- MUST follow rules for retry attempts +- MUST NOT introduce fields outside `extra` objects +- MUST NOT emit invalid enum values (status, etc.) +- MAY include `insights` if historical or aggregate data is available + +Producers SHOULD: + +- provide timestamps +- provide environment/build metadata +- provide diagnostics when available + +--- + +## 19.2. Consumer Conformance + +Consumers: + +- MUST validate required fields +- MUST reject unknown fields not in `extra` +- SHOULD handle missing optional fields gracefully +- SHOULD compute missing `duration` when possible +- MUST NOT require optional fields to be present +- MUST NOT assume the presence of `insights` +- SHOULD compute insights when sufficient historical data is available + +--- + +## 20. Security Considerations + +CTRF documents may contain sensitive information such as: + +- file paths +- logs +- stack traces +- environment metadata + +Consumers MUST treat documents as untrusted input and SHOULD sanitize fields appropriately. + +Consumers SHOULD treat base64-encoded screenshots and attachments as potentially large and untrusted payloads. + +Consumers SHOULD consider size limits when processing attachments or screenshots. + +--- + +## 21. IANA Considerations + +This document registers **no** IANA resources. + +--- + +## Appendix A - CTRF JSON Schema (Normative) + +This appendix contains the normative JSON Schema that defines the complete +structure and validation rules for CTRF documents. + +A document that does not validate against this schema does not conform +to this specification. + +```json title="CTRF JSON Schema" +{ + "$schema":"http://json-schema.org/draft-07/schema#", + "type":"object", + "properties":{ + "reportFormat":{ + "type":"string", + "enum":[ + "CTRF" + ] + }, + "specVersion":{ + "type":"string", + "pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$" + }, + "reportId":{ + "type":"string", + "format":"uuid" + }, + "timestamp":{ + "type":"string", + "format":"date-time" + }, + "generatedBy":{ + "type":"string" + }, + "extra":{ + "type":"object", + "additionalProperties":true + }, + "results":{ + "type":"object", + "properties":{ + "tool":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "minLength":1 + }, + "version":{ + "type":"string" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "name" + ] + }, + "summary":{ + "type":"object", + "properties":{ + "tests":{ + "type":"integer" + }, + "passed":{ + "type":"integer" + }, + "failed":{ + "type":"integer" + }, + "skipped":{ + "type":"integer" + }, + "pending":{ + "type":"integer" + }, + "other":{ + "type":"integer" + }, + "flaky":{ + "type":"integer" + }, + "suites":{ + "type":"integer" + }, + "start":{ + "type":"integer" + }, + "stop":{ + "type":"integer" + }, + "duration":{ + "type":"integer" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "tests", + "passed", + "failed", + "skipped", + "pending", + "other", + "start", + "stop" + ] + }, + "tests":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "id":{ + "type":"string", + "format":"uuid" + }, + "name":{ + "type":"string", + "minLength":1 + }, + "status":{ + "type":"string", + "enum":[ + "passed", + "failed", + "skipped", + "pending", + "other" + ] + }, + "duration":{ + "type":"integer" + }, + "start":{ + "type":"integer" + }, + "stop":{ + "type":"integer" + }, + "suite":{ + "type":"array", + "items":{ + "type":"string" + }, + "minItems":1 + }, + "message":{ + "type":"string" + }, + "trace":{ + "type":"string" + }, + "snippet":{ + "type":"string" + }, + "ai":{ + "type":"string" + }, + "line":{ + "type":"integer" + }, + "rawStatus":{ + "type":"string" + }, + "tags":{ + "type":"array", + "items":{ + "type":"string" + } + }, + "type":{ + "type":"string" + }, + "filePath":{ + "type":"string" + }, + "retries":{ + "type":"integer" + }, + "retryAttempts":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "attempt":{ + "type":"integer", + "minimum":1 + }, + "status":{ + "type":"string", + "enum":[ + "passed", + "failed", + "skipped", + "pending", + "other" + ] + }, + "duration":{ + "type":"integer" + }, + "message":{ + "type":"string" + }, + "trace":{ + "type":"string" + }, + "line":{ + "type":"integer" + }, + "snippet":{ + "type":"string" + }, + "stdout":{ + "type":"array", + "items":{ + "type":"string" + } + }, + "stderr":{ + "type":"array", + "items":{ + "type":"string" + } + }, + "start":{ + "type":"integer" + }, + "stop":{ + "type":"integer" + }, + "attachments":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + }, + "contentType":{ + "type":"string" + }, + "path":{ + "type":"string" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "name", + "contentType", + "path" + ] + } + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "attempt", + "status" + ] + } + }, + "flaky":{ + "type":"boolean" + }, + "stdout":{ + "type":"array", + "items":{ + "type":"string" + } + }, + "stderr":{ + "type":"array", + "items":{ + "type":"string" + } + }, + "threadId":{ + "type":"string" + }, + "browser":{ + "type":"string" + }, + "device":{ + "type":"string" + }, + "screenshot":{ + "type":"string" + }, + "attachments":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + }, + "contentType":{ + "type":"string" + }, + "path":{ + "type":"string" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "name", + "contentType", + "path" + ] + } + }, + "parameters":{ + "type":"object", + "additionalProperties":true + }, + "steps":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + }, + "status":{ + "type":"string", + "enum":[ + "passed", + "failed", + "skipped", + "pending", + "other" + ] + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "name", + "status" + ] + } + }, + "insights":{ + "type":"object", + "properties":{ + "passRate":{ + "$ref":"#/definitions/metricDelta" + }, + "failRate":{ + "$ref":"#/definitions/metricDelta" + }, + "flakyRate":{ + "$ref":"#/definitions/metricDelta" + }, + "averageTestDuration":{ + "$ref":"#/definitions/metricDelta" + }, + "p95TestDuration":{ + "$ref":"#/definitions/metricDelta" + }, + "executedInRuns":{ + "type":"integer" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "name", + "status", + "duration" + ] + } + }, + "environment":{ + "type":"object", + "properties":{ + "reportName":{ + "type":"string" + }, + "appName":{ + "type":"string" + }, + "appVersion":{ + "type":"string" + }, + "buildId":{ + "type":"string" + }, + "buildName":{ + "type":"string" + }, + "buildNumber":{ + "type":"integer" + }, + "buildUrl":{ + "type":"string" + }, + "repositoryName":{ + "type":"string" + }, + "repositoryUrl":{ + "type":"string" + }, + "commit":{ + "type":"string" + }, + "branchName":{ + "type":"string" + }, + "osPlatform":{ + "type":"string" + }, + "osRelease":{ + "type":"string" + }, + "osVersion":{ + "type":"string" + }, + "testEnvironment":{ + "type":"string" + }, + "healthy":{ + "type":"boolean" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false, + "required":[ + "tool", + "summary", + "tests" + ] + }, + "insights":{ + "type":"object", + "properties":{ + "passRate":{ + "$ref":"#/definitions/metricDelta" + }, + "failRate":{ + "$ref":"#/definitions/metricDelta" + }, + "flakyRate":{ + "$ref":"#/definitions/metricDelta" + }, + "averageRunDuration":{ + "$ref":"#/definitions/metricDelta" + }, + "p95RunDuration":{ + "$ref":"#/definitions/metricDelta" + }, + "averageTestDuration":{ + "$ref":"#/definitions/metricDelta" + }, + "runsAnalyzed":{ + "type":"integer" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "additionalProperties":false + }, + "baseline":{ + "type":"object", + "properties":{ + "reportId":{ + "type":"string", + "format":"uuid" + }, + "timestamp":{ + "type":"string", + "format":"date-time" + }, + "source":{ + "type":"string" + }, + "buildNumber":{ + "type":"integer" + }, + "buildName":{ + "type":"string" + }, + "buildUrl":{ + "type":"string", + "format":"uri" + }, + "commit":{ + "type":"string" + }, + "extra":{ + "type":"object", + "additionalProperties":true + } + }, + "required":[ + "reportId" + ], + "additionalProperties":false + } + }, + "additionalProperties":false, + "required":[ + "results", + "reportFormat", + "specVersion" + ], + "definitions":{ + "metricDelta":{ + "type":"object", + "properties":{ + "current":{ + "type":"number" + }, + "baseline":{ + "type":"number" + }, + "change":{ + "type":"number" + } + }, + "additionalProperties":false + } + } +} +``` + +--- + +## Appendix B - Test Identifier Generation (Informative) + +Although the `id` field of a test object is OPTIONAL, producers that assign test identifiers SHOULD ensure that they are stable and deterministic across runs. + +Producers SHOULD normalize input values (e.g., trimming whitespace and using consistent path separators) before generating deterministic identifiers. + +CTRF RECOMMENDS the following approach: + +- Use UUID version 5 (name-based UUID, SHA-1). +- Construct a stable identifier string using test properties such as: + - test name + - suite path + - file path +- Combine these properties into a canonical string and generate a UUID v5 using a fixed namespace UUID. + +This approach ensures that the same test retains the same identifier across runs, enabling consumers to analyze historical trends, flakiness, and stability. + +When generating deterministic test identifiers, producers SHOULD: + +- Use a consistent ordering of input components. +- Use a fixed delimiter between components. +- Normalize string inputs (e.g., case, path separators) consistently. + +The namespace UUID is intentionally not fixed by this specification. + +--- + +## Appendix C - Metrics Reference (Informative) + +This appendix defines the standard metrics used by CTRF when computing insights at both the run-level and test-level. +These definitions are informative, not normative. +Consumers MAY compute additional metrics or use different historical windows, but SHOULD follow these definitions when computing standard CTRF metrics to ensure consistency across tools. + +A metric is a quantitative measurement derived from one or more test runs. +Metrics may represent proportions (percentage metrics) or raw numerical values (absolute metrics). + +The selection of runs, time windows, and statistical methods used to compute metrics is implementation-defined. + +### C.1. Run-Level Metrics + +Run-level metrics are computed using all tests from all runs in consideration. +These metrics are typically generated by consumers that analyze multiple CTRF documents. + +#### C.1.1. `passRate` + +**Description:** +The proportion of tests that completed with status `passed` out of all tests executed across the analyzed runs. + +**Type:** Percentage metric (0-1). + +#### C.1.2. `failRate` + +**Description:** +The proportion of tests that completed with status `failed` out of all tests executed across the analyzed runs. + +**Type:** Percentage metric (0-1). + +#### C.1.3. `flakyRate` + +**Description:** +The proportion of tests that were flaky across the analyzed runs. + +A test is considered flaky only if: + +- Its final recorded status is `passed`, and +- It encountered one or more failed attempts before passing. + +Retries that never pass (tests whose final status is `failed`) do not count toward flakiness. + +**Type:** Percentage metric (0-1). + +#### C.1.4. `averageRunDuration` + +**Description:** +The average total duration of all considered test runs. + +**Type:** Absolute metric (milliseconds). + +#### C.1.5. `p95RunDuration` + +**Description:** +The 95th percentile of run durations across all analyzed runs. + +**Type:** Absolute metric (milliseconds). + +#### C.1.6. `averageTestDuration` + +**Description:** +The average duration of all test executions across the analyzed runs. + +**Type:** Absolute metric (milliseconds). + +### C.2. Test-Level Metrics + +Test-level metrics are computed using all executions of a single test case across analyzed runs. +These metrics characterize long-term stability and performance of individual tests. + +#### C.2.1. `passRate` + +**Description:** +The proportion of runs in which this test ended with status `passed`. + +**Type:** Percentage metric (0-1). + +#### C.2.2. `failRate` + +**Description:** +The proportion of runs in which this test ended with status `failed`. + +**Type:** Percentage metric (0-1). + +#### C.2.3. `flakyRate` + +**Description:** +The proportion of runs in which this test was flaky. + +A test is flaky if its final status was `passed` but it experienced one or more failed attempts. + +**Type:** Percentage metric (0-1). + +#### C.2.4. `averageTestDuration` + +**Description:** +The average duration of all attempts of this specific test across analyzed runs. + +**Type:** Absolute metric (milliseconds). + +#### C.2.5. `p95TestDuration` + +**Description:** +The 95th percentile duration of all executions of this specific test. + +**Type:** Absolute metric (milliseconds). + +#### C.2.6. `executedInRuns` + +**Description:** +The total number of runs in which this test appeared. + +**Type:** Absolute metric (integer). + +### C.3. Percentage Metrics + +Percentage metrics represent proportions using fractional values between 0 and 1, not percentages from 0 to 100. + +**Examples:** + +- `0.25` → 25% +- `1.0` → 100% +- `0` → 0% + +### C.4. Absolute Metrics + +Absolute metrics represent raw counts or durations. +CTRF uses milliseconds for all duration metrics. + +Examples include: + +- durations (e.g., `averageTestDuration`) +- counts (e.g., `executedInRuns`) +- percentiles represented as numeric values in milliseconds + +--- + +## Appendix D - Example Documents (Informative) + +The examples in this appendix are illustrative and MAY omit fields that are OPTIONAL in the specification. + +All examples in this appendix are valid against the CTRF JSON Schema in Appendix A. + +Examples are illustrative and omit fields not relevant to the scenario being demonstrated. + +Metrics shown are illustrative and may not reflect exact counts implied by the example data. + +See Sections 5-16 for normative definitions of the objects shown below. + +### D.1. Minimal CTRF Document + +This example shows the smallest valid CTRF document. + +It includes: + +- required top-level fields +- required `results` object +- minimal `tool`, `summary`, and `tests` data + +```json title="Minimal CTRF document" +{ + "reportFormat": "CTRF", + "specVersion": "0.0.0", + "results": { + "tool": { + "name": "example-runner" + }, + "summary": { + "tests": 1, + "passed": 1, + "failed": 0, + "skipped": 0, + "pending": 0, + "other": 0, + "start": 1700000000000, + "stop": 1700000001000 + }, + "tests": [ + { + "name": "example test", + "status": "passed", + "duration": 1000 + } + ] + } +} +``` + +### D.2. CTRF Document with Retries + +This example demonstrates how CTRF represents retry attempts and flaky tests. + +It includes: + +- multiple test cases +- retry attempts recorded in `retryAttempts` +- a test that fails initially and passes on retry +- a flaky test indicated by `flaky: true` +- a final test status of `passed` after retries + +```json title="CTRF document with retries" +{ + "reportFormat": "CTRF", + "specVersion": "0.0.0", + "results": { + "tool": { + "name": "example-runner", + "version": "2.1.0" + }, + "summary": { + "tests": 2, + "passed": 2, + "failed": 0, + "skipped": 0, + "pending": 0, + "other": 0, + "flaky": 1, + "start": 1700000000000, + "stop": 1700000003000 + }, + "tests": [ + { + "name": "retries then passes", + "status": "passed", + "duration": 1800, + "retries": 1, + "flaky": true, + "retryAttempts": [ + { + "attempt": 1, + "status": "failed", + "duration": 900, + "message": "Assertion failed" + }, + { + "attempt": 2, + "status": "passed", + "duration": 900 + } + ] + }, + { + "name": "passes without retry", + "status": "passed", + "duration": 500 + } + ] + } +} +``` + +### D.3. CTRF Document with Diagnostics + +This example demonstrates how CTRF represents diagnostic information when a test fails. + +It includes: + +- failure message and stack trace +- stdout and stderr output +- a base64-encoded screenshot string +- file-based attachments + +```json title="CTRF document with diagnostics" +{ + "reportFormat": "CTRF", + "specVersion": "0.0.0", + "results": { + "tool": { + "name": "example-runner", + "version": "3.0.0" + }, + "summary": { + "tests": 1, + "passed": 0, + "failed": 1, + "skipped": 0, + "pending": 0, + "other": 0, + "start": 1700000100000, + "stop": 1700000102500 + }, + "tests": [ + { + "name": "fails with diagnostics", + "status": "failed", + "duration": 2500, + "message": "Expected status code 200 but received 500", + "trace": "AssertionError: Expected 200\n at api.test.js:42:13", + "stdout": [ + "Starting API test", + "Sending request to /health" + ], + "stderr": [ + "Received unexpected response" + ], + "screenshot": "iVBORw0KGgoAAAANSUhEUgAAAAUA", + "attachments": [ + { + "name": "response-body.json", + "contentType": "application/json", + "path": "artifacts/response-body.json" + }, + { + "name": "server-log.txt", + "contentType": "text/plain", + "path": "artifacts/server-log.txt" + } + ] + } + ] + } +} +``` + +### D.4. CTRF Document with Insights and Baseline + +This example demonstrates how CTRF represents derived insights computed across multiple runs and how a baseline is referenced for comparison. + +It includes: + +- run-level insights +- test-level insights +- metrics expressed using `metricDelta` +- a baseline report reference used for comparison +- insights computed across multiple historical runs + +```json title="CTRF document with insights and baseline" +{ + "reportFormat": "CTRF", + "specVersion": "0.0.0", + "reportId": "7c4e1c20-7c89-4f30-9b52-1f6f9d6b8f21", + "results": { + "tool": { + "name": "example-runner", + "version": "4.0.0" + }, + "summary": { + "tests": 2, + "passed": 1, + "failed": 1, + "skipped": 0, + "pending": 0, + "other": 0, + "start": 1700000200000, + "stop": 1700000204000 + }, + "tests": [ + { + "id": "c6c9f8c0-8b5e-5f7a-9e2d-3c91f8a7d7c1", + "name": "login succeeds", + "status": "passed", + "duration": 1200, + "insights": { + "passRate": { + "current": 0.9, + "baseline": 0.85, + "change": 0.05 + }, + "averageTestDuration": { + "current": 1100, + "baseline": 1000, + "change": 100 + }, + "executedInRuns": 10 + } + }, + { + "id": "1e2d4a40-92a4-5d3f-9e3d-3a77fbc2c123", + "name": "login fails with invalid credentials", + "status": "failed", + "duration": 1800, + "insights": { + "failRate": { + "current": 0.4, + "baseline": 0.2, + "change": 0.2 + }, + "flakyRate": { + "current": 0.1 + }, + "executedInRuns": 10 + } + } + ] + }, + "insights": { + "passRate": { + "current": 0.5, + "baseline": 0.7, + "change": -0.2 + }, + "failRate": { + "current": 0.5, + "baseline": 0.3, + "change": 0.2 + }, + "averageRunDuration": { + "current": 4000, + "baseline": 3500, + "change": 500 + }, + "runsAnalyzed": 10 + }, + "baseline": { + "reportId": "2f8c9a90-3e1a-4c3d-9b3a-8f0a9c123456", + "source": "main branch - previous stable build", + "buildNumber": 142 + } +} +``` + +### D.5. Comprehensive CTRF Document + +This example demonstrates a comprehensive CTRF document that exercises most features of the specification. + +It includes: + +- tool metadata and versioning +- summary statistics and timing data +- multiple test cases +- retries and flaky test behavior +- diagnostic information (messages, traces, stdout, stderr) +- base64-encoded screenshots +- file-based attachments +- execution environment metadata +- run-level and test-level insights +- baseline reference data +- use of `extra` extension objects at multiple levels + +```json title="Comprehensive CTRF document" +{ + "reportFormat": "CTRF", + "specVersion": "0.0.0", + "reportId": "9d2c6a10-3f7a-4e22-9a8f-1a2b3c4d5e6f", + "timestamp": "2025-11-24T12:00:00Z", + "generatedBy": "example-ci", + "extra": { + "pipelineStage": "e2e", + "trigger": "pull_request" + }, + "results": { + "tool": { + "name": "example-runner", + "version": "5.0.0", + "extra": { + "parallel": true + } + }, + "summary": { + "tests": 3, + "passed": 2, + "failed": 1, + "skipped": 0, + "pending": 0, + "other": 0, + "flaky": 1, + "suites": 1, + "start": 1700000300000, + "stop": 1700000312000, + "duration": 12000, + "extra": { + "reportedBy": "summary-module" + } + }, + "tests": [ + { + "id": "c6c9f8c0-8b5e-5f7a-9e2d-3c91f8a7d7c1", + "name": "user can log in", + "suite": ["auth", "login"], + "filePath": "tests/auth/login.test.js", + "status": "passed", + "duration": 3000, + "retries": 1, + "flaky": true, + "retryAttempts": [ + { + "attempt": 1, + "status": "failed", + "duration": 1500, + "message": "Timeout waiting for response", + "stdout": ["Submitting login form"], + "stderr": ["Request timed out"] + }, + { + "attempt": 2, + "status": "passed", + "duration": 1500 + } + ], + "stdout": ["Test completed successfully"], + "insights": { + "passRate": { + "current": 0.9, + "baseline": 0.8, + "change": 0.1 + }, + "flakyRate": { + "current": 0.2 + }, + "executedInRuns": 10 + } + }, + { + "id": "1e2d4a40-92a4-5d3f-9e3d-3a77fbc2c123", + "name": "invalid login is rejected", + "suite": ["auth", "login"], + "filePath": "tests/auth/login.test.js", + "status": "failed", + "duration": 4000, + "message": "Expected error message not shown", + "trace": "AssertionError: error message missing\n at login.test.js:42", + "stdout": ["Submitting invalid credentials"], + "stderr": ["Validation error"], + "screenshot": "iVBORw0KGgoAAAANSUhEUgAAAAUA", + "attachments": [ + { + "name": "browser-log.txt", + "contentType": "text/plain", + "path": "artifacts/browser-log.txt" + } + ], + "insights": { + "failRate": { + "current": 0.3, + "baseline": 0.1, + "change": 0.2 + }, + "averageTestDuration": { + "current": 3800 + }, + "executedInRuns": 10 + } + }, + { + "name": "health check endpoint", + "status": "passed", + "duration": 500 + } + ], + "environment": { + "reportName": "E2E Tests", + "appName": "example-app", + "appVersion": "1.12.0", + "buildId": "build-9876", + "buildName": "CI Build", + "buildNumber": 9876, + "buildUrl": "https://ci.example.com/builds/9876", + "repositoryName": "example-repo", + "repositoryUrl": "https://github.com/example/example-repo", + "commit": "abc123def", + "branchName": "feature/login", + "osPlatform": "linux", + "osRelease": "ubuntu", + "osVersion": "22.04", + "testEnvironment": "staging", + "healthy": false, + "extra": { + "container": "node:18" + } + }, + "extra": { + "runShard": 1 + } + }, + "insights": { + "passRate": { + "current": 0.66, + "baseline": 0.8, + "change": -0.14 + }, + "flakyRate": { + "current": 0.33 + }, + "averageRunDuration": { + "current": 12000, + "baseline": 10000, + "change": 2000 + }, + "runsAnalyzed": 10 + }, + "baseline": { + "reportId": "2f8c9a90-3e1a-4c3d-9b3a-8f0a9c123456", + "source": "main branch - last stable build", + "buildNumber": 9800, + "extra": { + "note": "Release candidate baseline" + } + } +} +``` diff --git a/specification/schema-0.0.0.json b/specification/schema-0.0.0.json deleted file mode 100644 index 623223a..0000000 --- a/specification/schema-0.0.0.json +++ /dev/null @@ -1,251 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "reportFormat": { - "type": "string", - "enum": ["CTRF"] - }, - "specVersion": { - "type": "string", - "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" - }, - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "generatedBy": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true }, - "results": { - "type": "object", - "properties": { - "tool": { - "type": "object", - "properties": { - "name": { "type": "string", "minLength": 1 }, - "version": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - }, - "summary": { - "type": "object", - "properties": { - "tests": { "type": "integer" }, - "passed": { "type": "integer" }, - "failed": { "type": "integer" }, - "skipped": { "type": "integer" }, - "pending": { "type": "integer" }, - "other": { "type": "integer" }, - "flaky": { "type": "integer" }, - "suites": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "duration": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tests", "passed", "failed", "skipped", "pending", "other", "start", "stop"] - }, - "tests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { "type": "string", "format": "uuid" }, - "name": { "type": "string", "minLength": 1 }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "duration": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "suite": { - "type": "array", - "items": { "type": "string" }, - "minItems": 1 - }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "snippet": { "type": "string" }, - "ai": { "type": "string" }, - "line": { "type": "integer" }, - "rawStatus": { "type": "string" }, - "tags": { "type": "array", "items": { "type": "string" } }, - "type": { "type": "string" }, - "filePath": { "type": "string" }, - "retries": { "type": "integer" }, - "retryAttempts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "attempt": { "type": "integer", "minimum": 1 }, - "status": { - "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"] - }, - "duration": { "type": "integer" }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "line": { "type": "integer" }, - "snippet": { "type": "string" }, - "stdout": { - "type": "array", - "items": { "type": "string" } - }, - "stderr": { - "type": "array", - "items": { "type": "string" } - }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": ["attempt", "status"] - } - }, - "flaky": { "type": "boolean" }, - "stdout": { "type": "array", "items": { "type": "string" } }, - "stderr": { "type": "array", "items": { "type": "string" } }, - "threadId": { "type": "string" }, - "browser": { "type": "string" }, - "device": { "type": "string" }, - "screenshot": { "type": "string" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "parameters": { "type": "object", "additionalProperties": true }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status"] - } - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "p95TestDuration": { "$ref": "#/definitions/metricDelta" }, - "executedInRuns": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status", "duration"] - } - }, - "environment": { - "type": "object", - "properties": { - "reportName": { "type": "string" }, - "appName": { "type": "string" }, - "appVersion": { "type": "string" }, - "buildId": { "type": "string" }, - "buildName": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildUrl": { "type": "string" }, - "repositoryName": { "type": "string" }, - "repositoryUrl": { "type": "string" }, - "commit": { "type": "string" }, - "branchName": { "type": "string" }, - "osPlatform": { "type": "string" }, - "osRelease": { "type": "string" }, - "osVersion": { "type": "string" }, - "testEnvironment": { "type": "string" }, - "healthy": { "type": "boolean" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tool", "summary", "tests"] - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageRunDuration": { "$ref": "#/definitions/metricDelta" }, - "p95RunDuration": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "runsAnalyzed": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "baseline": { - "type": "object", - "properties": { - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "source": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildName": { "type": "string" }, - "buildUrl": { "type": "string", "format": "uri" }, - "commit": { "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "required": ["reportId"], - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": ["results", "reportFormat", "specVersion"], - "definitions": { - "metricDelta": { - "type": "object", - "properties": { - "current": { "type": "number" }, - "baseline": { "type": "number" }, - "change": { "type": "number" } - }, - "additionalProperties": false - } - } -} \ No newline at end of file diff --git a/tests/ctrf.test.json b/tests/ctrf.test.json new file mode 100644 index 0000000..ae18393 --- /dev/null +++ b/tests/ctrf.test.json @@ -0,0 +1,193 @@ +{ + "target": "../schema/ctrf.schema.json", + "$comment": "CTRF Schema Reference Test Suite - Valid documents reference examples/, invalid documents are inline", + "tests": [ + { + "description": "Minimal valid CTRF document", + "valid": true, + "dataPath": "../examples/minimal.json" + }, + { + "description": "Comprehensive CTRF document", + "valid": true, + "dataPath": "../examples/comprehensive.json" + }, + { + "description": "Document with diagnostics", + "valid": true, + "dataPath": "../examples/with-diagnostics.json" + }, + { + "description": "Document with insights", + "valid": true, + "dataPath": "../examples/with-insights.json" + }, + { + "description": "Document with retries", + "valid": true, + "dataPath": "../examples/with-retries.json" + }, + { + "description": "Missing reportFormat - invalid", + "valid": false, + "data": { + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Missing specVersion - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Missing results - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0" + } + }, + { + "description": "Missing tests array - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 } + } + } + }, + { + "description": "Invalid test status - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "invalid-status", "duration": 100 }] + } + } + }, + { + "description": "Unknown property at top level - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "unknownProperty": "should fail", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Unknown property in test object - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "unknownField": true }] + } + } + }, + { + "description": "Invalid reportFormat value - invalid", + "valid": false, + "data": { + "reportFormat": "NOT-CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Invalid specVersion format - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "v1.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Missing test name - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Missing test duration - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed" }] + } + } + }, + { + "description": "Missing tool name - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": {}, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Empty tool name - invalid", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + } + ] +} diff --git a/tests/normative/additional-properties.test.json b/tests/normative/additional-properties.test.json new file mode 100644 index 0000000..f9fb13a --- /dev/null +++ b/tests/normative/additional-properties.test.json @@ -0,0 +1,216 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - Unknown properties MUST be rejected (additionalProperties: false)", + "tests": [ + { + "description": "Document with unknown property at root level", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "unknownProperty": "should fail", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Test object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "unknownField": true }] + } + } + }, + { + "description": "Tool object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner", "unknownField": true }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000, "unknownField": true }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Results object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }], + "unknownField": true + } + } + }, + { + "description": "Environment object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }], + "environment": { "appName": "test-app", "unknownField": true } + } + } + }, + { + "description": "Attachment object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": [{ "name": "screenshot", "contentType": "image/png", "path": "/path/to/file", "unknownField": true }] }] + } + } + }, + { + "description": "Step object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": [{ "name": "step1", "status": "passed", "unknownField": true }] }] + } + } + }, + { + "description": "RetryAttempt object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": 1, "status": "failed", "unknownField": true }] }] + } + } + }, + { + "description": "Test insights object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "insights": { "passRate": { "current": 0.95 }, "unknownField": true } }] + } + } + }, + { + "description": "Root-level insights object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { + "passRate": { "current": 0.95 }, + "unknownField": true + } + } + }, + { + "description": "Baseline object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "baseline": { + "reportId": "550e8400-e29b-41d4-a716-446655440000", + "unknownField": true + } + } + }, + { + "description": "MetricDelta object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { + "passRate": { "current": 0.95, "baseline": 0.90, "unknownField": true } + } + } + }, + { + "description": "RetryAttempt attachment object with unknown property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ + "name": "test", + "status": "passed", + "duration": 100, + "retryAttempts": [{ + "attempt": 1, + "status": "failed", + "attachments": [{ + "name": "screenshot", + "contentType": "image/png", + "path": "/path/to/file", + "unknownField": true + }] + }] + }] + } + } + } + ] +} diff --git a/tests/normative/enum-constraints.test.json b/tests/normative/enum-constraints.test.json new file mode 100644 index 0000000..1251fc5 --- /dev/null +++ b/tests/normative/enum-constraints.test.json @@ -0,0 +1,58 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - Invalid enum values MUST be rejected", + "tests": [ + { + "description": "Test with invalid status enumeration value", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "invalid-status", "duration": 100 }] + } + } + }, + { + "description": "Document with invalid reportFormat enumeration value", + "valid": false, + "data": { + "reportFormat": "NOT-CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "RetryAttempt with invalid status enumeration value", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": 1, "status": "invalid-status" }] }] + } + } + }, + { + "description": "Step with invalid status enumeration value", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": [{ "name": "step1", "status": "invalid-status" }] }] + } + } + } + ] +} diff --git a/tests/normative/required-properties.test.json b/tests/normative/required-properties.test.json new file mode 100644 index 0000000..d360984 --- /dev/null +++ b/tests/normative/required-properties.test.json @@ -0,0 +1,403 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - Missing required properties MUST be rejected", + "tests": [ + { + "description": "Document missing required reportFormat property", + "valid": false, + "data": { + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document missing required specVersion property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document missing required results property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0" + } + }, + { + "description": "Results object missing required tool property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Results object missing required summary property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Results object missing required tests property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 } + } + } + }, + { + "description": "Test object missing required name property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Test object missing required status property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "duration": 100 }] + } + } + }, + { + "description": "Test object missing required duration property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed" }] + } + } + }, + { + "description": "Tool object missing required name property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": {}, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required tests property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required passed property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required failed property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required skipped property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required pending property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required other property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required start property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary object missing required stop property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "RetryAttempt object missing required attempt property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "status": "failed" }] }] + } + } + }, + { + "description": "RetryAttempt object missing required status property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": 1 }] }] + } + } + }, + { + "description": "Attachment object missing required name property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": [{ "contentType": "image/png", "path": "/path" }] }] + } + } + }, + { + "description": "Attachment object missing required contentType property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": [{ "name": "screenshot", "path": "/path" }] }] + } + } + }, + { + "description": "Attachment object missing required path property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": [{ "name": "screenshot", "contentType": "image/png" }] }] + } + } + }, + { + "description": "Step object missing required name property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": [{ "status": "passed" }] }] + } + } + }, + { + "description": "Step object missing required status property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": [{ "name": "step1" }] }] + } + } + }, + { + "description": "Baseline object missing required reportId property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "baseline": { + "timestamp": "2021-01-01T00:00:00Z" + } + } + }, + { + "description": "RetryAttempt attachment object missing required name property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ + "name": "test", + "status": "passed", + "duration": 100, + "retryAttempts": [{ + "attempt": 1, + "status": "failed", + "attachments": [{ "contentType": "image/png", "path": "/path" }] + }] + }] + } + } + }, + { + "description": "RetryAttempt attachment object missing required contentType property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ + "name": "test", + "status": "passed", + "duration": 100, + "retryAttempts": [{ + "attempt": 1, + "status": "failed", + "attachments": [{ "name": "screenshot", "path": "/path" }] + }] + }] + } + } + }, + { + "description": "RetryAttempt attachment object missing required path property", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "skipped": 0, "pending": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ + "name": "test", + "status": "passed", + "duration": 100, + "retryAttempts": [{ + "attempt": 1, + "status": "failed", + "attachments": [{ "name": "screenshot", "contentType": "image/png" }] + }] + }] + } + } + } + ] +} diff --git a/tests/normative/string-constraints.test.json b/tests/normative/string-constraints.test.json new file mode 100644 index 0000000..f52540a --- /dev/null +++ b/tests/normative/string-constraints.test.json @@ -0,0 +1,84 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - String constraint violations MUST be rejected", + "tests": [ + { + "description": "Document with specVersion violating pattern constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "v1.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Tool with name violating minLength constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Test with name violating minLength constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Test with suite violating minItems constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "suite": [] }] + } + } + }, + { + "description": "RetryAttempt with attempt value of zero violating minimum constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": 0, "status": "failed" }] }] + } + } + }, + { + "description": "RetryAttempt with negative attempt value violating minimum constraint", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": -1, "status": "failed" }] }] + } + } + } + ] +} diff --git a/tests/normative/type-validation.test.json b/tests/normative/type-validation.test.json new file mode 100644 index 0000000..05d8eb9 --- /dev/null +++ b/tests/normative/type-validation.test.json @@ -0,0 +1,809 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - Type constraint violations MUST be rejected", + "tests": [ + { + "description": "Document with reportFormat as number instead of string", + "valid": false, + "data": { + "reportFormat": 123, + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with specVersion as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": 1.0, + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with reportId as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "reportId": 12345, + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with timestamp as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "timestamp": 1609459200000, + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with generatedBy as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "generatedBy": 12345, + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with extra as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "extra": ["invalid"], + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Document with results as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": [] + } + }, + { + "description": "Results with tool as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": [], + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Tool with name as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": 12345 }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Tool with version as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner", "version": 1.0 }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Results with summary as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": [], + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with tests as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": "1", "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with passed as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": "1", "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with failed as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": "0", "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with skipped as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": "0", "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with pending as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": "0", "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with other as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": "0", "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with flaky as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "flaky": "0", "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with suites as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "suites": "5", "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with start as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": "1609459200000", "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with stop as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": "1609459201000" }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Summary with duration as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000, "duration": "1000" }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Results with tests as object instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": { "name": "test", "status": "passed", "duration": 100 } + } + } + }, + { + "description": "Test array containing non-object item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": ["invalid"] + } + } + }, + { + "description": "Test with name as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": 12345, "status": "passed", "duration": 100 }] + } + } + }, + { + "description": "Test with status as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": 1, "duration": 100 }] + } + } + }, + { + "description": "Test with duration as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": "100" }] + } + } + }, + { + "description": "Test with start as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "start": "1609459200000" }] + } + } + }, + { + "description": "Test with stop as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "stop": "1609459201000" }] + } + } + }, + { + "description": "Test with suite as string instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "suite": "suite1" }] + } + } + }, + { + "description": "Test with suite array containing non-string item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "suite": ["suite1", 123] }] + } + } + }, + { + "description": "Test with line as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "line": "42" }] + } + } + }, + { + "description": "Test with tags as string instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "tags": "smoke" }] + } + } + }, + { + "description": "Test with tags array containing non-string item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "tags": ["smoke", 123] }] + } + } + }, + { + "description": "Test with retries as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retries": "2" }] + } + } + }, + { + "description": "Test with retryAttempts as object instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": { "attempt": 1, "status": "failed" } }] + } + } + }, + { + "description": "Test with retryAttempts array containing non-object item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": ["invalid"] }] + } + } + }, + { + "description": "RetryAttempt with attempt as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": "1", "status": "failed" }] }] + } + } + }, + { + "description": "RetryAttempt with status as number instead of string", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "retryAttempts": [{ "attempt": 1, "status": 1 }] }] + } + } + }, + { + "description": "Test with flaky as string instead of boolean", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "flaky": "true" }] + } + } + }, + { + "description": "Test with stdout as string instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "stdout": "output line" }] + } + } + }, + { + "description": "Test with stdout array containing non-string item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "stdout": ["line1", 123] }] + } + } + }, + { + "description": "Test with stderr as string instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "stderr": "error line" }] + } + } + }, + { + "description": "Test with stderr array containing non-string item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "stderr": ["error1", 123] }] + } + } + }, + { + "description": "Test with attachments as object instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": { "name": "file", "contentType": "text/plain", "path": "/path" } }] + } + } + }, + { + "description": "Test with attachments array containing non-object item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "attachments": ["invalid"] }] + } + } + }, + { + "description": "Test with parameters as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "parameters": ["param1"] }] + } + } + }, + { + "description": "Test with steps as object instead of array", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": { "name": "step1", "status": "passed" } }] + } + } + }, + { + "description": "Test with steps array containing non-object item", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "steps": ["invalid"] }] + } + } + }, + { + "description": "Test with insights as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "insights": [] }] + } + } + }, + { + "description": "Test insights with executedInRuns as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100, "insights": { "executedInRuns": "10" } }] + } + } + }, + { + "description": "Results with environment as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }], + "environment": [] + } + } + }, + { + "description": "Environment with buildNumber as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }], + "environment": { "buildNumber": "123" } + } + } + }, + { + "description": "Environment with healthy as string instead of boolean", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }], + "environment": { "healthy": "true" } + } + } + }, + { + "description": "Document with insights as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": [] + } + }, + { + "description": "Root insights with runsAnalyzed as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { "runsAnalyzed": "50" } + } + }, + { + "description": "Document with baseline as array instead of object", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "baseline": [] + } + }, + { + "description": "Baseline with buildNumber as string instead of integer", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "baseline": { "reportId": "550e8400-e29b-41d4-a716-446655440000", "buildNumber": "123" } + } + }, + { + "description": "MetricDelta with current as string instead of number", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { "passRate": { "current": "0.95" } } + } + }, + { + "description": "MetricDelta with baseline as string instead of number", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { "passRate": { "current": 0.95, "baseline": "0.90" } } + } + }, + { + "description": "MetricDelta with change as string instead of number", + "valid": false, + "data": { + "reportFormat": "CTRF", + "specVersion": "1.0.0", + "results": { + "tool": { "name": "runner" }, + "summary": { "tests": 1, "passed": 1, "failed": 0, "pending": 0, "skipped": 0, "other": 0, "start": 1609459200000, "stop": 1609459201000 }, + "tests": [{ "name": "test", "status": "passed", "duration": 100 }] + }, + "insights": { "passRate": { "current": 0.95, "baseline": 0.90, "change": "0.05" } } + } + } + ] +} diff --git a/tests/normative/valid-documents.test.json b/tests/normative/valid-documents.test.json new file mode 100644 index 0000000..792cd7a --- /dev/null +++ b/tests/normative/valid-documents.test.json @@ -0,0 +1,31 @@ +{ + "target": "../../schema/ctrf.schema.json", + "$comment": "Normative test suite - Valid CTRF documents that MUST be accepted by conformant implementations", + "tests": [ + { + "description": "Minimal valid CTRF document", + "valid": true, + "dataPath": "../../examples/minimal.json" + }, + { + "description": "Comprehensive CTRF document", + "valid": true, + "dataPath": "../../examples/comprehensive.json" + }, + { + "description": "Document with diagnostics", + "valid": true, + "dataPath": "../../examples/with-diagnostics.json" + }, + { + "description": "Document with insights", + "valid": true, + "dataPath": "../../examples/with-insights.json" + }, + { + "description": "Document with retries", + "valid": true, + "dataPath": "../../examples/with-retries.json" + } + ] +} diff --git a/website/.gitignore b/website/.gitignore deleted file mode 100644 index b2d6de3..0000000 --- a/website/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/website/CHANGELOG.md b/website/CHANGELOG.md deleted file mode 100644 index b2e2e9c..0000000 --- a/website/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -# Changelog - -You'll notice that v1 of the specification hasn't been released yet, we want to build a specification that reflects the needs of its users. We are still getting feedback. There might be changes but these will be tracked in this changelog. specVersion is currently 0.0.0 - -## [0.0.0] - 2025-08-29 - -### Added - -- test id property -- test retryAttempts property -- environment buildId property -- Root Run level insights object -- Test level insights object -- Metrics Reference object -- metricsDelta object -- metrics reference -- Root level baseline object -- summary flaky property -- summary duration property -- baseline commit property -- suite as array of strings in test object - ---- - -## [0.0.0] - 2024-01-30 - -### Added - -- Initial schema definition. - ---- diff --git a/website/README.md b/website/README.md deleted file mode 100644 index cc88732..0000000 --- a/website/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Common Test Report Format Website - -This is the source code for the Common Test Report Format (CTRF) website, which provides documentation and resources related to the CTRF specification. - -## Getting Started - -To run the website locally: - -```bash -npm install -npm start -``` - -This will start a local development server. You can view the website by navigating to `http://localhost:3000` in your web browser. - -## Building the Website - -To build the website for production, run: - -```bash -npm run build -``` - -This will generate a `build` directory containing the static files for the website. - -## Contributing - -Contributions to the CTRF website are welcome! If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request. \ No newline at end of file diff --git a/website/babel.config.js b/website/babel.config.js deleted file mode 100644 index e00595d..0000000 --- a/website/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/website/blog/2023-12-10-introduce-ctrf.md b/website/blog/2023-12-10-introduce-ctrf.md deleted file mode 100644 index 6c35f6a..0000000 --- a/website/blog/2023-12-10-introduce-ctrf.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -slug: introducing-ctrf -title: Introducing CTRF -authors: mt -tags: [ctrf, release, announcement] ---- - -Introducing Common Test Report Format - -CTRF is a JSON schema designed to standardize test reports, ensuring that the same JSON report can be generated no matter which tool is used. It provides a consistent structure across all test frameworks and makes it easy to exchange test results between tools using our favorite data exchange format, JSON. - -It's open source, community-driven, fully documented, and versioned. Easy to programmatically integrate with, simple enough to comprehend, customizable, and packed with properties that modern engineering frameworks support. - -See the documentation for more information. diff --git a/website/blog/2023-12-11-official-playwright-reporter.md b/website/blog/2023-12-11-official-playwright-reporter.md deleted file mode 100644 index 4423e98..0000000 --- a/website/blog/2023-12-11-official-playwright-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: playwright-reporter -title: Playwright CTRF reporter -authors: mt -tags: [playwright, release, announcement] ---- - -CTRF has released an official Playwright reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/playwright-ctrf-json-report) for upto date information diff --git a/website/blog/2023-12-18-official-jest-reporter.md b/website/blog/2023-12-18-official-jest-reporter.md deleted file mode 100644 index b879b0e..0000000 --- a/website/blog/2023-12-18-official-jest-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: jest-reporter -title: Jest CTRF reporter -authors: mt -tags: [jest, release, announcement] ---- - -CTRF has released an official Jest reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/jest-ctrf-json-reporter) for upto date information diff --git a/website/blog/2023-12-20-official-cypress-reporter.md b/website/blog/2023-12-20-official-cypress-reporter.md deleted file mode 100644 index 8c6c9f8..0000000 --- a/website/blog/2023-12-20-official-cypress-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: cypress-reporter -title: Cypress CTRF reporter -authors: mt -tags: [cypress, release, announcement] ---- - -CTRF has released an official Cypress reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/cypress-ctrf-json-reporter) for upto date information diff --git a/website/blog/2023-12-20-official-wdio-reporter.md b/website/blog/2023-12-20-official-wdio-reporter.md deleted file mode 100644 index 8d68053..0000000 --- a/website/blog/2023-12-20-official-wdio-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: wdio-reporter -title: WebDriverIO CTRF reporter -authors: mt -tags: [wdio, release, announcement] ---- - -CTRF has released an official WebDriverIO reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/wdio-ctrf-json-reporter) for upto date information diff --git a/website/blog/2023-12-24-official-mocha-reporter.md b/website/blog/2023-12-24-official-mocha-reporter.md deleted file mode 100644 index cc781a5..0000000 --- a/website/blog/2023-12-24-official-mocha-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: mocha-reporter -title: Mocha CTRF reporter -authors: mt -tags: [mocha, release, announcement] ---- - -CTRF has released an official Mocha reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/mocha-ctrf-json-reporter) for upto date information diff --git a/website/blog/2024-01-30-official-postman-reporter.md b/website/blog/2024-01-30-official-postman-reporter.md deleted file mode 100644 index 0a70ad0..0000000 --- a/website/blog/2024-01-30-official-postman-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: newman-reporter -title: Newman CTRF reporter -authors: mt -tags: [newman, release, announcement] ---- - -CTRF has released an official Newman reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/newman-ctrf-json-reporter) for upto date information diff --git a/website/blog/2024-02-01-official-codeceptjs-reporter.md b/website/blog/2024-02-01-official-codeceptjs-reporter.md deleted file mode 100644 index 795489a..0000000 --- a/website/blog/2024-02-01-official-codeceptjs-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: codeceptjs-reporter -title: CodeceptJS CTRF reporter -authors: mt -tags: [codeceptjs, release, announcement] ---- - -CTRF has released an official CodeceptJS reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/codeceptjs-ctrf-json-reporter) for upto date information diff --git a/website/blog/2024-02-01-official-jasmine-reporter.md b/website/blog/2024-02-01-official-jasmine-reporter.md deleted file mode 100644 index 6856fc1..0000000 --- a/website/blog/2024-02-01-official-jasmine-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: jasmine-reporter -title: Jasmine CTRF reporter -authors: mt -tags: [jasmine, release, announcement] ---- - -CTRF has released an official Jasmine reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/jasmine-ctrf-json-reporter) for upto date information diff --git a/website/blog/2024-02-02-official-golang-reporter.md b/website/blog/2024-02-02-official-golang-reporter.md deleted file mode 100644 index 99603d2..0000000 --- a/website/blog/2024-02-02-official-golang-reporter.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: golang-reporter -title: Go CTRF reporter -authors: mt -tags: [golang, release, announcement] ---- - -CTRF has released an official Golang reporter, that can be used to generate CTRF compliant test reports. See [GitHub](https://github.com/ctrf-io/go-ctrf-json-reporter) for upto date information diff --git a/website/blog/2024-04-18-official-github-plugin.md b/website/blog/2024-04-18-official-github-plugin.md deleted file mode 100644 index 1f06c17..0000000 --- a/website/blog/2024-04-18-official-github-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: github-plugin -title: GitHub CTRF plugin -authors: mt -tags: [github, release, announcement] ---- - -CTRF has released an official GitHub plugin, that can be used to publish and view test results in GitHub Actions. See [GitHub](https://github.com/ctrf-io/github-actions-ctrf) for upto date information diff --git a/website/blog/2024-05-30-official-slack-plugin.md b/website/blog/2024-05-30-official-slack-plugin.md deleted file mode 100644 index fd82de9..0000000 --- a/website/blog/2024-05-30-official-slack-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: slack-plugin -title: Slack CTRF plugin -authors: mt -tags: [slack, release, announcement] ---- - -CTRF has released an official Slack plugin, that can be used to send Slack notifications with test results. See [GitHub](https://github.com/ctrf-io/slack-ctrf) for upto date information diff --git a/website/blog/2024-06-03-official-teams-plugin.md b/website/blog/2024-06-03-official-teams-plugin.md deleted file mode 100644 index f8c1734..0000000 --- a/website/blog/2024-06-03-official-teams-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: teams-plugin -title: Microsoft Teams CTRF plugin -authors: mt -tags: [teams, release, announcement] ---- - -CTRF has released an official MatterMost plugin, that can be used to send MatterMost notifications with test results. See [GitHub](https://github.com/ctrf-io/mattermost-ctrf) for upto date information diff --git a/website/blog/2024-07-04-official-jenkins-plugin.md b/website/blog/2024-07-04-official-jenkins-plugin.md deleted file mode 100644 index 1ce8ec9..0000000 --- a/website/blog/2024-07-04-official-jenkins-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: jenkins-plugin -title: Jenkins CTRF plugin -authors: mt -tags: [jenkins, release, announcement] ---- - -CTRF has released an official Jenkins plugin, that can be used to publish and view test results in Jenkins. See [GitHub](https://github.com/jenkinsci/ctrf-json-plugin) for upto date information diff --git a/website/blog/2024-07-20-official-mattermost-plugin.md b/website/blog/2024-07-20-official-mattermost-plugin.md deleted file mode 100644 index 23d33a7..0000000 --- a/website/blog/2024-07-20-official-mattermost-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: mattermost-plugin -title: MatterMost CTRF plugin -authors: mt -tags: [mattermost, release, announcement] ---- - -CTRF has released an official MatterMost plugin, that can be used to send Teams notifications with test results. See [GitHub](https://github.com/ctrf-io/mattermost-ctrf) for upto date information diff --git a/website/blog/2024-09-18-official-anthropic-plugin copy.md b/website/blog/2024-09-18-official-anthropic-plugin copy.md deleted file mode 100644 index ec2065d..0000000 --- a/website/blog/2024-09-18-official-anthropic-plugin copy.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: anthropic-plugin -title: Anthropic CTRF plugin -authors: mt -tags: [anthropic, release, announcement] ---- - -CTRF has released an official Anthropic plugin, that can be used to integrate with the Anthropic Claude API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2024-09-19-official-openai-plugin.md b/website/blog/2024-09-19-official-openai-plugin.md deleted file mode 100644 index b6ea348..0000000 --- a/website/blog/2024-09-19-official-openai-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: openai-plugin -title: OpenAI CTRF plugin -authors: mt -tags: [openai, release, announcement] ---- - -CTRF has released an official OpenAI plugin, that can be used to integrate with the OpenAI API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-deepseek-plugin.md b/website/blog/2025-02-08-official-deepseek-plugin.md deleted file mode 100644 index bd68cbb..0000000 --- a/website/blog/2025-02-08-official-deepseek-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: deepseek-plugin -title: DeepSeek CTRF plugin -authors: mt -tags: [deepseek, release, announcement] ---- - -CTRF has released an official DeepSeek plugin, that can be used to integrate with the DeepSeek API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-google-gemini-plugin.md b/website/blog/2025-02-08-official-google-gemini-plugin.md deleted file mode 100644 index 90d2c48..0000000 --- a/website/blog/2025-02-08-official-google-gemini-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: google-gemini-plugin -title: Google Gemini CTRF plugin -authors: mt -tags: [google, release, announcement] ---- - -CTRF has released an official Google Gemini plugin, that can be used to integrate with the Gemini API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-grok-plugin.md b/website/blog/2025-02-08-official-grok-plugin.md deleted file mode 100644 index 78fe393..0000000 --- a/website/blog/2025-02-08-official-grok-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: grok-plugin -title: Grok CTRF plugin -authors: mt -tags: [grok, release, announcement] ---- - -CTRF has released an official Grok plugin, that can be used to integrate with the Grok API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-mistral-plugin.md b/website/blog/2025-02-08-official-mistral-plugin.md deleted file mode 100644 index 1b80a92..0000000 --- a/website/blog/2025-02-08-official-mistral-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: mistral-plugin -title: Mistral CTRF plugin -authors: mt -tags: [mistral, release, announcement] ---- - -CTRF has released an official Mistral plugin, that can be used to integrate with the Mistral API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-open-router-plugin.md b/website/blog/2025-02-08-official-open-router-plugin.md deleted file mode 100644 index d112fe3..0000000 --- a/website/blog/2025-02-08-official-open-router-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: openrouter-plugin -title: OpenRouter CTRF plugin -authors: mt -tags: [openrouter, release, announcement] ---- - -CTRF has released an official OpenRouter plugin, that can be used to integrate with the OpenRouter API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/2025-02-08-official-perplexity-plugin.md b/website/blog/2025-02-08-official-perplexity-plugin.md deleted file mode 100644 index 13828e8..0000000 --- a/website/blog/2025-02-08-official-perplexity-plugin.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: perplexity-plugin -title: Perplexity CTRF plugin -authors: mt -tags: [perplexity, release, announcement] ---- - -CTRF has released an official Perplexity plugin, that can be used to integrate with the Perplexity API to generate test summaries. See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information diff --git a/website/blog/authors.yml b/website/blog/authors.yml deleted file mode 100644 index 0aceac0..0000000 --- a/website/blog/authors.yml +++ /dev/null @@ -1,6 +0,0 @@ -mt: - name: Matthew Thomas - title: Creator of CTRF - url: https://github.com/Ma11hewThomas - image_url: https://github.com/Ma11hewThomas.png - diff --git a/website/docs/contributing/_category_.json b/website/docs/contributing/_category_.json deleted file mode 100644 index 59b9270..0000000 --- a/website/docs/contributing/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Contributing", - "position": 7, - "link": { - "type": "generated-index" - } -} diff --git a/website/docs/contributing/contributing.md b/website/docs/contributing/contributing.md deleted file mode 100644 index 5b01b61..0000000 --- a/website/docs/contributing/contributing.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 1 -title: Contributing -description: Contributing to CTRF ---- - -We welcome contributions from the community! - -## Contributing to the Schema - -For new ideas and suggestions about the schema, we encourage you to share them with us through GitHub Discussions. [Click here](https://github.com/orgs/ctrf-io/discussions) to start a new discussion and let us know your thoughts. - -## Suggest New Reporters or Plugins - -Looking to expand CTRF with new reporters or plugins? We use GitHub Discussions for these requests as well. [Click here](https://github.com/orgs/ctrf-io/discussions) to share your suggestion or request for a new reporter or plugin by starting a new discussion. - -## Contributing to Existing Reporters or Plugins - -If you're interested in contributing to the development of existing reporters and plugins, please visit the specific repository of the reporter or plugin you're interested in. Look for the CONTRIBUTING.md document in the repository, which will guide you through the process of making your contribution. - -## Build Your Own Reporters and Plugins - -We welcome and encourage community-built plugins! Share these with the community by posting them in the [discussions](https://github.com/orgs/ctrf-io/discussions). diff --git a/website/docs/contributing/img/docsVersionDropdown.png b/website/docs/contributing/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 zcmXte1yoes_ckHYAgy#tNK1DKBBcTn3PU5^T}n!qfaD-4ozfv4LwDEEJq$50_3{4x z>pN@insx5o``P<>PR`sD{a#y*n1Gf50|SFt{jJJJ3=B;7$BQ2i`|(aulU?)U*ArVs zEkz8BxRInHAp)8nI>5=Qj|{SgKRHpY8Ry*F2n1^VBGL?Y2BGzx`!tfBuaC=?of zbp?T3T_F&N$J!O-3J!-uAdp9^hx>=e$CsB7C=`18SZ;0}9^jW37uVO<=jZ2lcXu$@ zJsO3CUO~?u%jxN3Xeb0~W^VNu>-zc%jYJ_3NaW)Og*rVsy}P|ZAyHRQ=>7dY5`lPt zBOb#d9uO!r^6>ERF~*}E?CuV73AuO-adQoSc(}f~eKdXqKq64r*Ec7}r}qyJ7w4C& zYnwMWH~06jqoX6}6$F7oAQAA>v$K`84HOb_2fMqxfLvZ)Jm!ypKhlC99vsjyFhih^ zw5~26sa{^4o}S)ZUq8CfFD$QZY~RD-k7(-~+Y5^;Xe9d4YHDVFW_Dp}dhY!E;t~Sc z-`_twJHLiPPmYftdEeaJot~XuLN5Ok;SP3xcYk(%{;1g9?cL4o&HBdH!NCE4sP5eS z5)5{?w7d>Sz@gXBqvPX;d)V3e*~!Vt`NbpN`QF~%>G8?k?d{p=+05MH^2++^>gL7y z`OWR^!qO_h+;V4U=ltx9H&l0NdF}M{WO-%d{NfymLh?uGFRreeSy+L=;K`|3Bnl0M zUM>D-bGEXv<>loyv#@k=dAYW}1%W`P<`!PiGcK&G-`-w7>aw=6xwN*)z{qlNbg;3t z^O)Pi!#xywEfk@@yuK+QDEwCaUH{;SoPy%*&Fy2_>@T??kjrXND+-B>Ysz{4{Q2bO zytdB!)SqeR7Z*b#V`wz;Q9sbwBsm#*a%;Z0xa6Pm3dtYF3Ne7}oV>>#H$FLyfFpTc z@fjI^X>4kV`VsTHpy&bqaD992>*x36$&m_u8MOgAKnr zix1C^4Kv*>^8IV-8_jZkZSn%yscddBFqkpaRTTAnS5A$!9KdgBseck^JSIQS`wRWHIZ&85f`i++% z68t8XiOy$@M67#u+Xi6bxpuq+`HWa<2?N@OcnUhX?Fa0ucuMgFJFc-@1+=(NlQ>>F zRDxG-|GOh}P`zp=#(X0xY7b!pCjittaWhLjHXBB#-Po`?sO81ZebXXp;sg3B6U;yT z7ltQRr)1+s9JQ^V!592xtqynFYr$yy)8J4=_Fovpb*N%#EBk3~TNxng@wp@YN7Lqp zrjUU+o-9X*B{;#FfWF+8xsS-jI`K=*Kw`Xfb@RSO_U)QsNHa<|mWk9yQ?OwtR*_xq zmD=jg&|q#_bdPo=j-*xO@t@Lx#ApL+J`iqWlGkq6;4fv@4RCK_O9tc(xtrrh=-c5R z69GA#i8S&gK?|;>DM8&0G0qF?C*`-kOcVP3)1oi%f47pC4CS=HBdpf`E)$Hno3D*LM*Mxsl@|fX(Xf%aXWP!}X9^S#Vk`h=79=r%L^l^YWXw_fRl+4teQ3x9_*k%}TKmP12k&)U zMNC;?1$T%`tp^#EZUUbydm4SOs@A)}3PP>tiL3j_W06pb3vSHu)DJU-0m)ledRGV0 zJ|rcZ1U@_hCyPE6_-wiimvjR3t);y*Qdi`BKX*PP29RBAsD8W-^u0fLrRq zwCLWC=t#&Nb(JimFikS-+jq}=-klKJuPf|#4pY8f?a%e6U2$1>GPfs~QJLAlns4;O zgz6*qdCCdKNu92Gtjo^ob%T4S7Qi-4NMGg1!+m0yH08I3TITyT6-g}m=2u_lckZ^e zq;^$v+pjrNbh#BOPdii=sJ1bq8F?sZTJcTI5o-P0V#bJPYY`?awnv-41^CJh$BpLP z@aNtrc;&0^lO>O1M4Is=8YA9!yo9_AI^mA7`Aw!579-QByLL>P$1D=@r}QPn38D;% zpBWvkXSRS?b^4Pq$yjf%7Lcq#0#b>rLc!^-G|4-BD83fHp~~6CQ_U~u{@(n0go&P^ zDHT6>h=0KJ)xPF^Wh5@tUEbM@gb&7vU*9YcX;|;ESv3bj^6HmWbTMt;Zj&y(k;?)$ z!J2pIQeCULGqRb5%F}d?EV$v(x+Zqs7+Bj<=5FIW5H^? z1(+h@*b0z+BK^~jWy5DgMK&%&%93L?Zf|KQ%UaTMX@IwfuOw_Jnn?~71naulqtvrM zCrF)bGcGsZVHx6K%gUR%o`btyOIb@);w*? z0002^Q&|A-)1GGX(5lYp#|Rrzxbtv$Z=Yht;8I!nB~-^7QUe4_dcuTfjZzN&*WCjy z{r9Sr^dv=I%5Td#cFz>iZ_RSAK?IMTz<%#W)!YSnmft3Nlq~(I`{`Uk-Wm83Cik$W zA>ZEh#UqV*jtmtV`p(`VsJb>H>??z9lR#V(`9^UEGvTix4$!-_w1?L1)oZ^W!E0k* zCB7_q(G~1Q3x6mPdH1`hse+Jq;+?Cw?F&D*LQhHFoFJdd@$J@~sOg%)cymn7a4znI zCjvkBKBOSb2*i~|Qom$yT*r{rc!0nX+M`4zPT|h~`eXtS!4FPTH0(?%$=fr9Tr*nb z(TR6>{L$7k2WHlqIT4J->W-mYgM)ac(R(z56AY2Kiex&W>I$p+&x#bMNS&|p@eWOy zGD7es5=6U#uG^J26B@SERc=i`I+l4_*`E_OxW=&=4|rH=p;$GB!%As!i|~ypyq`M{ zX5L!TI*|QR-pt7Y$irT5b=w9KcWKG5oX;$>v|GNckJ5XfdZ#KHirMyigcqZ9UvabrO{ z8rDp1z0Fr%{{|@&ZFm^_46S#?HL)}=bp45eUvA1gf(mODfe+cGcF$6-ZaI;NvMu;v zcbHrkC+lE z7RwO#m?)*hw^|}s-z?wPDEMJ2%Ne3)j0Dnt?e(@i?bf<+s^BM?g^S5YKU~rg%aeTl zJf0#GyUY|~Y;9SV_?#uV9<{xsFjl^YeW{@1$61GkUgc9Xv6cL@uB^M?d@o7H zHKV^XV(Q|Q%Geas3dw$Jn&atPqxYB>>Ii<#Zv+@N8GYs#vrxfbS_%zJ#18<+55b3yBCV#A}|5J8EAtdUd zn{=~8r&YaM_GB^l@6D_xfSvmbrbJP^&RZ{np(I^~Osf9d>=xz;@EnY?(Egg`%_&Vt zJA2@>$gsV@XFKh@>0z#d4B>B{^W%bCgT;)f6R|f%yK=!bN2w`BOC_5VHz(Q+!7ID^ zl#oQ>nDe2!w&7tLJ8#8wzN%$7@_>{Hh2xdID<0$kb*>G$17$S3grFXLJQ>4!n!>-B zn>~N~Ri%vU@ccS?y8BTR)1#fe2q zlqzp;&z9I1lrZ*4NJn00*0|iPY)Z0d$3NTJ9HNQ+?JI;37?VSbqMkdoqyCsG=yp1B z-3WO8>t^=Fj^?PT?(-0dZ8y_FL2Z9`D!m-7Dgr7r>V~Rm8RQ@w>_PrbFo$N_#jGzx zKC&6u^^M`8cdv1&AJ-O}jSqCR94J?FnYw!JN3(k7cejfuS`7-j*t4GNaKH@|kkrB_uY?<%tF27r;kVj(nzxph1JsFr z#*%R0;+(NAevpx|F8|sz9}SI%^z@E#+KR{}h1fyNXo6z$e*+nNx|qKR4DoCl0?&Q@ zs8_MHOw&gA$VQz4yIo@Zg{!M@m9v_4{_V!x@I>5ZaG$rcOvUm9O0DW9tR>#oyg@l8O!7%+a(wcN zU}SdcI3?TjNeNXmMJ!GUx@tFbszrKU5?ewMLA zJ)^SSUMDXb)yO8<*A&?2bBN&NEk{+9q~*w%k^+OUs)b@Fs#!)#9E-|}*u zWAn}H61Uy!41$}d1d44D;guxTx^kD367XWM%5Dea)6$5&n;))D;D^r~G=m$CqS7L! zmLX|kejC<`PU-rS#;n2Y0*4;&?(ROps&9eVSDoY%G@-4kyG5AX|Fu&1M5Gm0(-Z6v%1@fS9$`LGCB zlH8i;1e!(dUd#1c@G(-^QedB)$yJ~Yke{h3 z$#|*Md8c7)??v!utM3QJT7mN@DE%_r@BYhvf))3qME|n>shVP(03fO0{Iye<3)wv9 zoYDZ$wDak&n*QW`-s6KKDk5X1OQ_ramOCv4gjh1}jy%9GX!s!hq`NW)&%o9y+YrmT z+u!YGVhHBA*{|c;^}Xg)elpF+dMcpHNALqheHQIX<8J#~;Ah^+Dw~L#CynKWfTWCu zCEbY3ybkQ225nUxd$i6(3SN^?}z{r>!_8$YiwX~LE`rzuT=q!8;h{UbMWDGL@VpWm; zZtr3$23sHj`&Co0No!R|5#Vt7{9}j|TwplkHdT=aUeQ*;9XQ2uW1WUTbA%kHwMR|UUq0xTEetKps9KmNYAS5aY+L31z8w-k=r7r5hSK=6A!^nU z8C>n~S?X}?D5`5c5&2wA0cxo;KgFAi4N2T%LF4fWoMQ=CTo>=1mjvBvW;|iPUB>xW z?K5>~6VIpJYo28I)EFl&7dAhqrB6A-(e-)leVf;X*$GA~eVokc6j+rvRq{{fZth{*dW0`N_!2w6Ll9fV z{aJuKFd-zavy0~QH9hD;H%Q(_Zn7nY>AkaeKuL7Q@G02wArkDPH53Qg5JGaH{_ehi z35yHf_=pB1wY&Ak3EZ-^Ml}MxJh6d_Z}jDN7RTDy68ton&H$4=>#b4w904+;t6CcZ zMtV{hLGR06a?g$sZA#7RlKPF4Bqk=}`#oc=#~O;oUX7hbb^NY3f2Nin?(&;E?zVkm zN}OTyV%mP6T5(MT-syZn(K?c9sk)z$K0AQvvk9#%4%)evu)aOXbB;x-*G5ljx|A;$ zZmCV}y(IS$SYPVS%g#3~I9lE#erA)7BgOkZC}~2)7B_BBStEVtr1+0nv{(A%zhmjT zsE;^zwY5(ZCyf%wwr*SJyK_?Gv_p!Oc-8$W?a03T_8q zb=XB6)**gF9AoG(=dN9-4yO7)FI}g2!0UFua`5ASTp*W2K#(fpZHPv2}6 zuI3YRPb*T9uhpKUc zPNT}NbGpABC}F~2UYA?vuN z*c2)mWKvZn<+PL%-Oq3lAhrw_j}+<$Tfvgoo)dRh((_MP7Iz=PwI|1>aObW5-b8qW zI@O0@c{EbVHN5a6k}i4y2?Jh~=Jd-MZnv)h^T1;2CAllrl%EHm`1{XUiW<7g+6{XS z&hVyh5*+TiVaO)+4PE3HcnsJajGx>gwo1EcWg^*Rn0l!#MVM%(Ywui_UjM8Dgspk@ z4`gne14lZ*`698%UOOx^(v_~kQiYj`WkY>(f5KDC5I{-Wi!KoINK)H^9m|SUliD=d zE;N>?`0x*{61(==UBrN}mpsdhOZ2N~I>oQ1avz|nvyfQQW_R6VAnn;IzqlxDB)0_Zw_Csf#5sdmb4LBwIyBk zv$NL*@acUJc4`FtA^-PzoHR zKXm{;9xP9kWW6MEPYuCeDqX@UiY(8GShF|L{-)R4_acdmp+&W~4nBxde z;pI70##wwE$hfIrpx@VQ`Yc>|xSP$S8~WoVKTg5Z*KMWE)Yp>$m>ZoNQ(u!z-#`mL z1jJZHKZ}Tc5Ap^(*KIg6ol~wx)s~So91kdWaF2c{?F58%EDiT9uV&xYWvS{aFS{hE zg--eu{(>bL!0h)=md^{aR(APus_Mr}+}|%Rb(>B&dHn3fw9>d3rkDH6x0-@)^Dkwj zjb75;-8>7gmW&$y_4x~rPX!&!>l3d<-kfo+g{PIl%s;UQ)Y+u z4&z}r;Sd{hco!{2a3}F*4CAcydj7`#V0_iRg%G&NxtQpm=(5VbGfiRW^NoBJ1rPE# zzYktZRk7>`{fdU((V`a+T{&n=cnr4LaS!S|hDOtXWb>_e-LwH+@FmdGw>6+B9J6~} zcBaNb(<-c6&|ghc-%o3xG(Op-q&pXd1CfV zgPNdKX~vGy-LS;4Q=161sLAoMaXGG7weBcT%KmWHZ${+6bC6yehCjqK36LdH>fR!{ z>Xe}eUaWsRp8U1&?E`K@0*oHDY-p{^+u0T&$b)J}|G6C(lSRuN&WgUd(rH=0h9hUz zj|U@1UmNWdbn)SLk^KR_nRxbB`hNKP>?@ocdEL;;1l||Q0{~Zx5N5FT_ z8{|xM9~@McIdv|?#WPK>1b&f`?=bvMO>?(;W^}|VZ|%*&C_rsnS5&E~%`>$1I#;~* zn=Wx?omuI3X^Q4D$;n_~HEv`6`Rwl7C)iTwB5O~BB+$PgQTGE~V(6h;78q+*a8tK* zi)1P_7BY;9ea2|o@l#u>z4b#X%;a|nTq^l*V({7P;k z=t-%I--DL{uv#dVtaWg|q`lNci7#N7sC(@vBesWbHEY@Gb4`DozcU20N<=vl;-%s5 z!WzFm74mydG1Hjwdk!c_6!|q+Noz5>DrCZ!jSQ+Yjti$3pBqeRl}Wv|eimpd!GOY~ zDw@@tGZHFbmVLNc^ilgjPQ1os7*AOkb2*LRb{O-+C97i_n z2I@>^O)#WwMhxr4s;^U&se%2V#g)$UMXcXHU)C<7ih`meC7t?9h6U9|gRL%vjBW=4 zyJ(KaCRlNg`fO6a(x7h==WMvQG|_Skr4D&0<8t`N`#*Y0lJn{f4xjR5Q%h*qiJ!9l z{{3xuZ%nm38N+XqLO_y}X{{=Z1sg+iy?Wk0(xmzIV8KVwj}M}&csjjc2tOdzyInRf zj&mB~+`^C>=hnyxW|Ah^U8Pcl0}jx|K^QWjuTpX%S?_Y({asp@tk2!qmNiJscA|3v`}jyo*ALZ(Rr*ar91T`}p~N<62j4RJ|PDBQI3t8Cdh) z?R$X25f31}sp@&0jG5+in zs$WmohuauhuK4uZ1iNJsy2T@EuDDT=`&$LT=jKS^o}44OK5cA$zAzZq&gS)a(=xC7 zC(q}(#ncl6@1^p;YG?lVnJ)t^7Ky53%ZtMKP6FKlx|zSaeDQD~}Xbf@cZU>-AI+P+4hN52dWFDA$qg=0!5}U9qLoblC z?2V$GDKb=Lv@me&d%DST)ouSOrEAoGtLxcGg1~Kmzbq?}YUf=NjR9D?F9<}N_ZiNa zZhdC>2_z-iy!(9g9{n11i3|~!hxmAYX6z9olmC=&YcsiKI;&XK#&iSd&6&{u1@Hd^ z&}sU>_G+y}Gi-8`-k*Exr{a$>MNGj_u%u$;s_fOjknwYR-qt1G|mi}nQ%CB|0Vp`=0tc2y(3 zJ}XmzSQQ~(SfJW-|mT1TaDmxNCml#nWVyhIvX z5(>8xARd*joOU-U;Dfj+E+nUJC25bpe>!0L^f@BXZEW73UVfjT$=FTfw8u@h@$hDQ zVua*ub@?Dlc%%H2Kt+bYLb>$(@roZ+vrM&so0RO(eTY12?=Hk4*qI39-0yU@%aQU) zh(=Pxi6yISqhKQ$i^SEeyiioo-1GNY25sM+qoj*Y3&qp^8_)87sMwbecGG~;>|9TP zREo(Axioj6Z+vp*b2~Yp&YghcPwB1H+J6C`1#2tPkLCkZ%eJSah9>34C6}Wx52PW# z^-a1fn~bY&PC$SE9!mvprG5JAMZ8#PQ1utYB%g4fm*YwmC=|j!Ynky<|7ZL;!BWr3 zFawY3dr};&T$Ip3YmV+)De<*8`l~v0VwiNIPNf3|&X$o&6@|n6LRM@CjYQR1 zWBH=K@#i3!;27}0=N!39tP9ZWSn8M>14nC%WHmBMuFJAk%Lb z3uC1S9h$5}_+BVizP47z7mQl9&0QY+JB+^dI{s zw`OaYK6by8i7`3&)Phx%c((j7B1YUWiF2MMqu4sv*rJ!i;BLj(fq}XbxPz*4fPY?O z@*Ky#cmpT^|NpZ9uUqz`68dgR9jtzXj=}e&QRIn}pQRT9PLxt|PUrc*i*0b!XrG!5 zn0}>27K&TEtQcrzD<@JD6Z~^YE+@bp^w7O54P0!hf0Y2>E)Q-^2GDnxCg+6##J=z7 z@ngMS&`rDgl6d+JcSuka%Z?(3I;F~=S0|1#j5>jeKEQlh=sBqfv!hBN|;yTWLomu=my`^LYikzJ(>0epsIY)kU18UXtB-3pcSlnHT_D|^@nAOvSZ&U8G z2j{}BU*x=`J<)n1d{C?*L9G7(UY zOa>7`PWnsf0_A36hyo=b^S{8-brz>TuX+X?u5rOaa-i+Qwt#GO{msTqNOcGW+e>Es zB9jlrN(d>)QU5{6)p@F-7=X4^mJ_o0PmD`XJxKX3yEPtUxGs`3c=nmm=R})T1N{pn z-4`5~hgSH{OLb&X7JJ{Kc!m~cw^Px|bf;E_^&_m2-RyF$>hpwb^&OK2x<&5mZY$DQ zM*Ba9X2yg~f2CrRi%7#Gmj8ToW&RX3woB;vaQS~RStNrN_ip=L(D5O`5ARa1*tbl$ zz*z9~cch#eZ(SfXecVU8>@a)YoW^a+0f3~j0Y?^-$NJeZx)){fSvT?~Oz zr|rs5)}M)5nL!oe|LIs_Tje3%Izv_8s~up;gZHa$tJ2apK4+*%@ezaqN}(Z)Knf?w z50}vMb<0<55q_7mTNOQDi&W|)caK!E^KS2+JE#Q+@^xmQv>inXC5o`mvE&$TOke$B zV8GSwhlTR2rzJ#_;)bk${WP%Ih)i=EYN8{o&z8%2I_q?VymrtR;v$zLkjrg{wpYbS zvAcy#5)@jAvZp4FuHHU2=>%7yAaF;Pr;R4Fs{JD~J3=fZ1&XUJg-%A~!KmHC3n)>YIEi}NEb z%--g1St?_*DOh+gnZHtmEkxs@isI}eRrc0wU8l;2b@mCiAM#Nn997Q+LV*)|qbtKQkb_f0o-p5pdd)@GMF*DshM3Aa+3F#`qRIwJ0hm)o|YEL#OaBEakx*CoYj z!aPt=uH3>5{Lo)X0vnhRQ)s3fJD8{|J(JOpEw+)Rk z`bt&Qmfn=@fB#v0H(jRr&%qMgqOh#^u@wR@511#rdFm|rRDW^uR0I;SFNFONvL|T< zNgTUA$F0a)aQgw8fuB6MGPB@qT?~BCYk5+Jsf=?}Mb;HKNTkLenT0K8t8|H}D?|hE zSgX!{rJBv{`q@9kgrWLKN$Lc=(eX|?lLDj zTIgDs2{@)$i(H$~)t&t0ljddg!CF6;h;#+vfsiOq1m6z-@3HjZf9Cwjssl8*? z-Zk;h*SQd?Jne_EnSeuFHFb<4o#^De>LcvXXN-SWl?t8{*wYg3myaD#!ASmyRX(M* zGTP9W!pDwsi#ZmX__)rLPoItw3NlJ2we~Weclgdr7?3%+JE=SOCt;iGP}}vJ5Q|LG zVyV6tvP?5JtW=tF&6vZPw&HPWnzz1x|7JWQiR85>W`0|GOLyooBAJSsXr;fTClQ*2 zaK)sev-vb*PP9gBV5`_Qo%^@(nz4=7wneRMzW!+lzgV`U{S>?Un=WkYC)GrP*^Co~ z39gtoderj4l0kRRPB`Ahk_XC*5YRAEO&?q0Mzru!IeuE^lBSp;^j8_6-!y50K|n_p zGMdRWFh-Fi>Ry&?gYb(4RdA{FOqob;0q^4FiX*<}mB;zWot5?G&X7RqtC)_A4|jTu z$#`}>b~R$z#yqsMjRktG(!I2WS~hnaPgt1B%D#`8tL9}l{0BaIb*@{Pzt#{=K}Oe* zDAsQ#vX=-a{P_Eyl10+;FIVppTs>K45GY321_I8QO(l>aZ1$65njm1IL>Tmd^bv>K zqvaOE2UgLp-Yu%rF$JfIMhMuRr(^h3Hp`{LBoH54u5@YGjy6Wg?Q*O?XEIX6kMCO~ z<_kZcb1u98AU{a8r7g=xIgs_PH3)hJ5I+6utGV-%RP@*Qi)z02$Wuo9%2dn$3FhdS z;i52o@P_mdzh~c5s^ah~8Ps7Wp+76`e#%y5agtQuPd3{4@zh;+PJ;Ul(o51qE_WV^ zg+~a_eJ|*Xi=4jabrA&e^&&@I6=VSbgQoPeA2W5wnF#LY-O>}Ljj#`MCRMaV%vO{76cz-Og(S_6~uR>qnR(*x+nLISCR#;o3%W_6?D!w;_CpEp6{@(I+A~0_7 zs}lPdr=NoC&$L2h;r!KHMBq)8eU7#yV&?{?? z=4x^BMDRXs3k2G`S|TGIzZ0Hg;o-%T^9GFBO*20Lb>W?krt$`*_Y)pIqLTXjE~di< ziI$JBW{M?JgMOp7XK0RqD!` zyjnzWp^?d+&R3;V!S}YBsE3^$ov%4ipg*$x>0&cLpey(^IE*D!A^->G&P+M7+J2(; zwd>Ep{Zo-~HYh#S%R%s38W8{Ca=WoD??Y3{$m(9%xV*`*LEmoP1$uIW>TgrB$+onv z_ndvbMOIqVFhw~TrM%u2A6A4v!m5V5;SK21dr|_++u|ReV)&#sK6$=&(H*ZZXM7U< z=e@Z}9GCKoq)cAQ9euu8+|}amPkIa3BNZHT6d18a1P&$d5_02Ht2I0xoGDxi-;5;j0tI=XFRNl62_x%#|RTOCW zg*`>@ux)y<;|r##9cIl^Q&4#~Z3CkHHz`X=;xCJy_@caXbk+{w{=u4_bgn+6>EKRa z8dA{~?4*L&vu;0?5LGS{cbn;+@q!-7usGB$?e_1K0#gE|Ot9ixD#X(4>uu)f#}~A3 z3@nGY`HD_hpAqWw8U%*?yVSuzvJm;5G+nq@Cd+=}W!n*06lvdQCuXal{9Xs<5I5oC zcw%nh=Wg?~Ugk@T1@^y}Np7w%vxB-A9tdKDt{<)FX^ubm$7SZacAr-%L-a1JwG)#C1c0gU_I^Cd_qciW@*(2ezbRpD6!<$ zQ+C*RGs|w;)ZO`^revsDl);H7f(3E%K@i2Y%eE!3cq&}mnmjtQ*Z=hEWe2W_A^XH?Nys^bJZp5h>K5an>5p6yjNY zREWvikLx;$(K_`V*R=<8<|J@62`31~=7iCV$p6c%Lg1YAc$h-uj ziA#pcUoF0HIj*$$+!IpLE!H*6%e?c8aHZ~W{8>f@QlFmqcJUBtER_3}jheE>hx}mv zf%%k^5;hsmrzrQC;sDn(d(nBjd1K!gR*&*-DQ4;zv;)vaatjg36nGZ?Rq_l;c6lQA zQhH0eWpKygvHd1%l_?G78|(|eJ53Tsg#N4Hvjo0QDebJQL;DKH#&_8b>p%_AdE^@3 zLP(ASqIYgP6n3POQ=*_HPw&ScHtu&nQK-?0+ z8>8|df?xb$oR$yQ8MoZfbQyr0elR$(MT?`-AAlb&Ga4F{{$^zoyi|S#Y2?CZrv_8g zaK5GIo1kiS5{V~y@0UpiT9TI|Vx*t!eaK9kRthIgdFvr#q?-1&t(a;pT=yrB*xZmb zYw8R5P*fjZoZoV$hSYocS7&0+G_-lb)kFC+Q>p$|lmq`}9KRe3H$HuG_y|Xz*Ykic zBp$CVTqZL0olc9!_rqG86IPu{8Iq!Y?GKoMknsM|jFN<nmkWW$R)0;=-v0xAm_otSVoWlb^RlPVJ7p1U|d^4=E>-zP*-Rmrv6} ze|&GPS7f_&uWb1R`Q&)TSwU~0v1a<`-)o6LgtM9rGA0LiJ@Ue`$XcxSFf)nQC^6NuI4*n18HDDl~3>VPbX+k7zOT>bP zjw?xBP7GAvQDt>BQx!=@sw8)=gBtaH=3ce`T>Xns6feL{J+BW8)Q#=W-7NmHaV*F~ z>UmFhh7MkTGy+xsl^XpR;qG_do8Awha7b-nS4*taqw15O=A{`zjy!fUT4*O~Px9G* z&%KU#?o;#N;>89$=?gplzj3XFNdj^3RMIHRL=~;oyK7Quk=^>0g#CAZ(QGGeUGLU* zWPaROHN4T{eRhQdB8Y!9jcDKvnUVfi)uLU;QxRVsz{0S7@3sEf+Q?Ls|HWY4W83@} zlSXj&#g|UeKk!d^F8}ntYOtDT?R^m4cwFr4JG~o|z8Zm1yM5aW({Yy@f~BU11L!v#Td7eeD4W$>lcjaG!42YE?~f3MI=4r% zoOf_vBji`oQ?lj_PxRf%pt#H=+;A1r#K4^1?Htf{euOeDW4^2m#LA%gz+PfcvYKB@ z{l5(10Q&Plb>;K9_`Jn-xRvcD^qdB-b$9yeMaHX`lv9~f(0}6fFn#1NHFDl)U4XX~ zltY}5+&}s?L_h~eET8)X6I%nfweCW?o!6vD{DiG}w?pr%+YfFCFf-a6yId6Ra|pe; zDl_g&Cv!gUMl0Z_t9nh5KE)coN>{ zg&1(j`%gkFBL`Uj=dI12!|rM*w?!U{waw}fJ_H(zB}-9=p|eJ;sfV<_S)YhAe7eDS z{-N^pB#iLATr#NLu{RO!>S;pwW=9=;trCin9igtoOlB&izD{7ASKh z(CzzkugUVut^bL;3>2f~%R9WEhM%m4uk8P(3g_CM>~SJy%}G!J2{hm1T1XXM;$Nx< zvJ>kKg7*&8803!xLR5KkS8}@!TpVFYhM@Q4tv7{NMwN?-8Ku8G-eOxwZUgt(3=6ku z31x;jRmhmiv^Xlb2w?7W5OlqdT#XaE5q-_MGSi%fF7Ds>Ic$5Otyo1~V#Yyo$>HZh zPZe}g8O%F1w+%SQX;*l^WxmvUQ&N5%JYQ;hfA9Y5s8Xx?TASV~=_EpR32`iLB7uC4Lj=X$lBnh3I zAtk%flc?{lm>QjJhL6FP*IzJugn z5FL63L);PtTf0G#iPK0T&aY7OESEL@kG;N>SRc>->6$NM z2j0(*rwMhfDRh0gf$lx8dvfpYx#D2>k7XT8!~5PqGifS5zl^X|?z;dW>t6;)d<#^U zqpau3c!`tBk%yTSPM>VZLXi$PMqeV1LgvwnFtkPxPgjRfvVg7ax0Xr^R;&%IPtWN` zA5SCheRx72%iHFEbeJaExY1ElK+?^&?iS>TAUdMBcMr@A%n{(^2RH+ud)j7?B;I^^ z7rkfli|k(%_b%e@w{>p57WU-$O{YdI+TV+mby<|-#*lt?XmB#+(b(wfKEBm`AY(B} zAZnYZD|DDnpBb>>Q7ZEq95BDq z&uh}x=%dYlNY1S?M_&pI&)5JYVBPFYqUc-8!Vem&)86BebiW?QAtFDVy}0NH26r_( zC_^CO?cMW|=e_!Nd;`}}wIe#2rjbs;ifve-VvB7)GI_S+Nsq$S5JY$8#w^grTZsOb zUyoAYclwpn;7>Ci@(v@DI(;8$4<&tHXlW*;hWslB|D-5>6-zKX+2bVjkSQ8?!9MgK zl=N~I!}?@~Kx<^NrI^q0srRS28Q~9lflYBLXVmE~H-TOQPE~(*4@#$PheP8^EAU}f zm+WSP;g*ei&p2L;l@4F7HzwvVyZLh&&an%n~F2LIKZGsoGGdXNS^^gkCKD8wC{ zOn978*5SMH1Cf!Pil1ixa+!!Ro4xRSy)@zYLPs7Fyinlr`RnQAu(hV9V3Uz}C;^ z-~Y9jxm+%8+u;v_3xQt^9}E{~dg`y&k_IL-boMLUMr9GA>}o>^!B)g*B8rgz=En8c zEK9pm`|y*X?2q_#wSx_BP5}w*8X6!2tqcCUtG(2FdmF>*`x6R~l!xbak@?Q#VXxG=k(YY-43Z+D2$B08B6(u7e=DG~ z*%5MY)s?k;<$!wd{Mz})9SNS2BBclkhNAYGR=Yc9eI@Gtv!DgL3xps?>l1#V*6K|I z@g6biLi{Ynk8TBO%+c=d^WA~VrcEsG)?TmrPdXwVR*O*orI~)IESKLQEv<$euHRV0 zUPn>T+x>w-@sS`pGlN?9>_rh7SfhqmoWUbl!t=cqsYqT!VHZ?eccRCm5S-9?!v&=- z+Jeh%?!&){ecKh#*;pOrlRLHF|528F&6}$#V0U~vK(#a_$BEQ`{zWkUKYenVJE9>7;rk|eSgj=7Uhnz3xm0Qy^^Hui9 zY7}x$DkL_sWncCgDbupk5VZMn-;o*FQ1Mt z2U`xQCp(2}Bg4`+`iC%H9Tf4sY*L~$W{*be^*Y%4MZV8(`SR)b@`qbsSWL5$uZ%GF zjM=n+$!a%_F=CE3MuW3+McnFQ1MtXU-E6p(YrX)pV>Dqtp-+cnY_W zd6t8G6`!Bvka-in3^?bveED>Ixf3Gl)fQG*Y`aenBlz0qAXALrc|ep17;{X9@R-8v zbs8||w|x0@eEHTEGPjTjRUj%~kJ_aIh4Cph9?uqYMFN32jbQ<|1u4J2l3al~zvauP z$SrpD^VHWJ3&Q$?NSEJQ}*?%ctYZ@oc|`spkf7Fia_oS2yFCcrly1 z1B*s!8Iz$^^q*A|3`=7QzC4t=pD)K`zthg^Ep3E}5G|MBU&RLp#o|IPI}ghR$q+u@ zJc5{|sde-oO!?>VTH%FCKcI-(x=FE!a+1wn)^OP3S z(e#KhTllu^uAeWD&p01Gr5^Y5;c%fFa$K72}j&d--OdYuktp4cwI{afY9wWwjpF#aIES^M$8mK{XJxHGf9|=N=EJAbe+>37@0iVs&W_;h*kQQ?1r-@eW+XFHl4c>?#k=+r=%NW>Ns-Y9A@!k)T?e6*WHg!^ zZ*0Y^BoAG^SUXT#3*y5Xg0uru4D^-_w7Ja<7f}O-7K+riTwU5)p$~=j{lfnLnTbiJ ztqb?QEjgM@GJobA=9_=M^Pe-{{NpBw-~L>F?&eA9|5hLVo9&$cPoK+Qju$*3*X&2z2QXa0Jn?Fjrh&=BsW6$h6(K|%>!6&+!pvWwM{YSE z-2liDar?!20&>3lzSo(znGVlddBXUF`MD5V%%BUKj&q%DB? z?(HOR|MMsL%d7R%4K@2w_Mb<|Q^^Uhgn&XATZ;2|AYPH?##y0*@^LUOfpalPq!6JvF303@uKISoQlV}P z;dN)hq%Sw?ryFYaqwE5Y!yq-CZt6$H z#2>jt`9vS*VVD%krkk(_CHEw{n=AF@X8p8Te_pef?agkSTuDb&SHOk(^L9eyq9lor z*!d1Y5E7ImLI=ua!rZa?6dV^A1}7KA)>ih>xDY`v_jyH+B!yE9gV&ovv`fV)MfWhzOU)&HxmiDL)}Pnx zy8SCjpR-l1*1x;@QGd?Z+JU#FR!L$ZLW}^hTu4yAh@yn@#CC>hw6)NkH2692`O@_X zew2#*_2<$AS*3p3tUs^W8yf!5EHv``gq`TK@^r`*qK;7+j`0vpxpx(Yp5vD$g-eM9 zH6}_iz+3_=Lp3!9T4*(@5+yFCWwqN^Fip$M%(wVx5R#GzQ$J5ljbNE2WqEdanY@g$ zu#n9z9G3g#<^B8jjTQHY4oh$-iHqcKEKeMcz4u4{La%=)7%a6{daG(5?Aa&#PYOXf zh(*(6@=2C8MOG9gPWF`SH10itp@(GrL@D{qK-xH#q@m^9#<5jU(+%Vb85aHSqaLE@AhvVfD_AhL| zf45ltDTva)W|!2{Sm z86>a_1xtQO>^f??ee3bw!=voDab>}uYT0#Y%du9`e(>NYhh83JWevavq&4tvcmd#d z;_(p^-~jm#SBQ@2sfOHC z02lPvx8w_uh2!BT_A)%xW$S;~Ki&T6n&S|1S*MR69`L{Ipy8nczO7)95$-tB%3$2U zd*s~dA7J10>>uCu04Os918r@$0P*WMeK>5jMAh@O1%{n}WWo%C-6V9DbE_=dA^3$v z;=&0(5DPo+ljeOMpEF#a$)zYN0HaVf+J~XyG=CjMy90W5)~h{-pd0i8zCK%x`Yd`n zK(4#{!m{D+`j_%&8Bbr$ID<6}(a6Gy{ft2J7Iu7JKjROc7Z9o;&2Z2{K}W6dJXyxG zWPkS|TMhC-R;OdAAK!qUvB@Mux{Nz{)tT7JFeV`qmK^`4#L|A!aY(Z zaXnwzl^OErpkBLubZKJRdfmO5Co{G%2x?@Qb{mG|qB!qc9iQ|^#ydJrbay9CA>?1f zae%Nz^5qyO>Zb!3wO9aiYuC~eZ@1sF542&fQ0zr}DnZvt-Ej2^*wM>@Xpn4X&Ax6x zj^3q_y~U4m$C*7o)K3-1wcLetu|!?CmVkU);Bh*Pg)FRWKEN|l}@@xnE+VKi1y@|grKE@d29@hVW94nddvm$4qF@#)iA38?`kMa(2 zYwTE)C8**5;vjk5s9+S_|0@ts!2e0iPma&S#*51^=serm*Vs>^+9ku}GMrO_zSE2N zLeCi)PjsKS-2Lz4)Ht~L7z+a;>_RyPM?`hUC>Rl?t)a7BdVJ2?r|sk+=H#KEGo(#& zZW*p_5X@n?UdWo5=92Q)dx8-r=HGd__BDaOFbg${6W zaB?IT;lI3HZAe>L8kYUhKZR}xNvu)P^hf_V7!U?*tOKbv=?^6{11&C*FmiFa+Qv+@ z7TuBr{1{sGj^3^$5iF%wRu?7}XP1$wRwqA7M_Ee?L)mJ}^v?7{7=|v>|Al>?_axO0 z`)^@RYQE07_w+vJxzGE)=bpS5m=6p#whwX|*Bx~(JGp+^cBp%CA>X@EzGo?k?$@gM@@XA3JdtC;1BMaq#z94|#pA zSblq+=4^r@uwC3NLk-o3i=cwX==$aF$juKEYOkB@LO z7Ru4DiFqxeK}|GB3gE`WD&pP4-20>QyG~EoQ+-|lFE5`t>DzEHBLy#Z9w@1G%48NW z4Fp{9R${JLU#Kz(+d1sDLs(*P8P~=FjiqaTe}ntR0cRE0Paiud(=7|WF6K9%o~&*` zcr_OfXP{w#T_ye($O-!CJ-WlTZ*J}r_{;R(FYiO2PYLk^_T*9^r?R}9cp$nmk)TxE zLLpP%2;{HliSvXw)n`_ot#Y&k@&p^-=P1m7357@`u3-dd{0QX(?jMi&NMt_owo5|3 z*FRbQ1L`B1uw2QBL9`9cGBndP3JQ)x?&0xgGBwP|*TSTH%uha9w%}Mi_NO)kopsCt z;=F-KhpRpVuFnPrE0P2CaLM~C`vWxqiCa z)@^h2N`CV)-;8g%d}i8HJw2X*q-RD2bs6@z0&|KP{-tbg?pOHJ^6z~N!Rd3wLBO$S z^XlB?I}nt%ipoO$T_Fqr@6Ha(vz?t+i7f@Wz?Im3dH=a+dqg1Lo>xfI-hD;v=LtDD zJ1>w&G!Wb}*b)8+tQFA+`M&-sX8b=H*wGowqLyfuX_U}X1aW3DnI#R-NCv%*Pj!=2C7QHA3)eS_FkwD{$YQAhj%#G^mTu*B-j@lfSkj3 z^poc>p?)_aRqt;;}`z4RAb{PNh?NI+sq*GA2=eIP*7E%lh$h$p-J6 zTv%Li*t$ErJGuTGKHrT7KVTg6w+F^JnMHgnlc8X!Y1rF>9YegHyH#;ht;kU+hIMes8y?Bjt{=Q~0N`J=28lA*{@BFxf?_V00KyGLc zZ!t8Y6OU8Fump1KRzYqU7>Rplr7P*iDnO2RteG&496k42uW71pli)@!mDYiGPEYHz zvss;xd*U^jxlu4~T5g*v6i4L3x!SVMHrp{-e}03%PyuZbbs`2@8wA5c6|oD!%H)ON zCa>2XeDX&?-hZL5qGBvYp@(xG@WX>|a8^aDBtJL&%tK{7aX5v}+zO&DBQ4|A>6bG(`TZ# z#t%;m-+#Mn7y>yUeB1c`r%>W+0;pyQN~bEcll z0dO;&0@kxSo^;(a2ZABC$8ooW$?$@v^dd}$sMr?UB)@sI%E<_*!OaUnH>boQzc3I= zChIHVk~evWKeit(Nmd4vNlu>M0^GN@#H<4M9;G?N{~!BNH))$pu}_A84zGYu^bDV0mm14lT~SlmoA^kU z@1T)|%^uvM@w{{OEZPX<+`iEGr-zhaLeBjQTEF##Q7qsqij4$vZMHe8|-k-8PCs6~sXt@<3^0X#ifJ zYmAfRN$PmA!`syV!4tdP4wiQ$JNkIFA5EYwXd7@ti=auhPDut>XRFK8MPGDqE!Rot zOZ7#ldYDe*h{U9xj6|jkl15M9Z)=MwqKDoV1-v>57)+cRO6SNW92t%_ZKebcv*00+ zh{Ar$c=+b=t|9Dvw_bboV3YM`PQFz24}X2U{pq{gt9n?#t!=0TWWvl*ogvb1``_9| z|2e!*?|%R6`=4`JAP%T!iMFo)0<>GRt-rK#D&;&Syo-d}DBJLr`-F##e(Lg)-+Y}rKBaBHumqDMK=C9B_F zbjmb!IpS1`Fy!t_OJe}Be}msy8?CC9{M~t5XJ==f4P zs|jyy6^trzzoPUe!!NF=Q8+RB7aW)HNzUF>+RWv|JxHUZ;3TB!nc-c^)Ct%BSx?@I zC>MIn3WN9hf46=q+e~h^egS%Cv(3$|&0n#Hg&*X`TF?3?Dpd&cCR-X><=ZmswITz)b-g- zsQHweYoeX&QRlMC-_2D;2Rj!&bSyaXBI%OZ;`2$l?=xI=YWu~J>N!LSaX=2^PR_?Y zO6O0|tG!Yf2EzVVIY`oqq>_V`lNlTz;ewUr2KTbx-AMfU)^1L@B(UeDw;(`zj{5M*?krKO|L&2$Sxi)o#+n zncgm~q*C7@`JV5o_kG^C-n>B|3azO3xLkTX&ia-=$o}21SrCi^<^Wntv@SlM$an>| zsxUEcwian+o^b&tE-nx)J^2$<6;@yh;lnd1EW~VYpZq9n|C6^5U-7CH(@X#7XPTLJ zKi@#X$DiK)B%UQazkWRZDxH+?1vv4(uNrsXACLb#o=jh-0d(WE0gBtrrgil9ojoDK z_m)K9vlLl^4G+uu@ggYx$C95n-TZyT_}C6>yz@4jDbEVmnMmZJ5MywiiSwA^Fu%eQ zWFXG-nKDs_J%8z5*AExwS^6KJ9_KAl*}wZSP#@v z4OsJ))wG(nW!uS4AR6$|o6zL@H#G{q^A5Y_P^u?qMx{r5_@EDnVfSSytzg{ky{~EmH3< zISG2j=?e(ZWr7#Mfn|ZYNne@+1LX0zKLi~0!wK_OHn}Rk>r9v7^$>oWr#54tv1AZ-) zPmP)NvCQ*~NGm>gNhhl73+p!(|lwi6D8DHy?kYV`#y z9(4PM4}qQU18+e6RX9}m*R8G9?XB%apuhNr(K7be4KX`82S9; zP1um;k%fPd+aT(Nf@RqS<9$^802Vc2r7hmE1p3(l5n zFN3N47|aLpO=z)8Zz6H2Y@90&ubB^pOwc@K=IgVpe}2B}e%f=3s3;yM=%W7I)%V}@ z?_OC^bCIH2q)~@h_f;g(&wRW;jn7uC0`eCkB(843&A$kU1W=Vh6fSUp0m0IeD1VGb z*`Hzm16P5V@9nGx&H}@YH?LRaVKp$tDK?L6!6%?$+nhQKC(+=6FASA ztfDNRJ5IEOxf#;nQS*Skp3ey70>pQPL|>Qn=U{ucG)W~i?BC7$>2OXh!k_rsEoXbh zNzvXC>8}s_csvuNkM7B9Alf>ME=h|h8wBoDC*IqJMT<$o*}S9y#1W72hhyx&%XmR< zhTJVfKr9)}2V*$i=@bgs|Hb~}&hY5t@CcRiaQ>xf%0ky1#k8m&pZ7qekgLQm2sKi# zn`0q3%8hX8;S#7^irtCd}uAhI4M}>Md9A9L0MApc=UB@7ro?1Tm%E- z`q;l4pz}jSL=vX$qicb^YdI_X`>p8Sqn)#l2%o|1?C^=Y_K|S89RHys=WdWywjn2P z$juTI`#+3#q`FshJiC;Z426ZTa zH4`AX7TeU6Wo1UVPp@_v+stDzHbY}r8ev;%wY8W0YRjQpkAvwRkNDXqe;i9&0_d*W z{@sxkFg+Y@5AdPDbt&61nZH~))@PP=!`{!ShA-6$Lx_V0#p%#reg`w<}`0l9$Q+4@@8d9r^X0tj&>w3wavvd2eQAFk%q+^7nQ zN7UQ?<>SNov)Ygel`Dx4G>7}J)(i3u5QF>-*sFz1VaKs~&l8Gr{tY;;+;e#0OL1;f z6G3SzMeR~AXP5#DvL4{6yT|%y&wP(p(d3-&clBM}exJ3|cl&$i?lXru;607vKlY17 z6};!}Z22laDw~K1TPqPtEoY_DTH;I2`^y-=`}x(!x1axR|8m##L0{ay>GB>i;Q-jI z&u5mFHU%O6S}>TZv-U7WII&B7V>85i`F!Iq_Z$jN#OP4-=2vC{#)VF_z7~}AMNEjX zXb~6AmCh16e;f{DQj)zpJvn~xX@BoraiD(p9X~(fvysSvGzqH%JV(@AF}%WYIQ=hv z{L}vBu09kS1WK2`c-wC_U&3OKcm3m&U045; z{@&kyEBbpwzCRv~jKCP;5@i}6v*dh6N5aLH$}9Iv8~^40)- diff --git a/website/docs/contributing/img/localeDropdown.png b/website/docs/contributing/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/website/docs/full-schema.md b/website/docs/full-schema.md deleted file mode 100644 index 6b833f1..0000000 --- a/website/docs/full-schema.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -sidebar_position: 10 ---- - -# JSON Schema Reference - -[Download the JSON Schema](/ctrf-schema.json) - -``` js -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "reportFormat": { - "type": "string", - "enum": ["CTRF"] - }, - "specVersion": { - "type": "string", - "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" - }, - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "generatedBy": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true }, - "results": { - "type": "object", - "properties": { - "tool": { - "type": "object", - "properties": { - "name": { "type": "string", "minLength": 1 }, - "version": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - }, - "summary": { - "type": "object", - "properties": { - "tests": { "type": "integer" }, - "passed": { "type": "integer" }, - "failed": { "type": "integer" }, - "skipped": { "type": "integer" }, - "pending": { "type": "integer" }, - "other": { "type": "integer" }, - "flaky": { "type": "integer" }, - "suites": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "duration": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tests", "passed", "failed", "skipped", "pending", "other", "start", "stop"] - }, - "tests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { "type": "string", "format": "uuid" }, - "name": { "type": "string", "minLength": 1 }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "duration": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "suite": { - "type": "array", - "items": { "type": "string" }, - "minItems": 1 - }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "snippet": { "type": "string" }, - "ai": { "type": "string" }, - "line": { "type": "integer" }, - "rawStatus": { "type": "string" }, - "tags": { "type": "array", "items": { "type": "string" } }, - "type": { "type": "string" }, - "filePath": { "type": "string" }, - "retries": { "type": "integer" }, - "retryAttempts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "attempt": { "type": "integer", "minimum": 1 }, - "status": { - "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"] - }, - "duration": { "type": "integer" }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "line": { "type": "integer" }, - "snippet": { "type": "string" }, - "stdout": { - "type": "array", - "items": { "type": "string" } - }, - "stderr": { - "type": "array", - "items": { "type": "string" } - }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": ["attempt", "status"] - } - }, - "flaky": { "type": "boolean" }, - "stdout": { "type": "array", "items": { "type": "string" } }, - "stderr": { "type": "array", "items": { "type": "string" } }, - "threadId": { "type": "string" }, - "browser": { "type": "string" }, - "device": { "type": "string" }, - "screenshot": { "type": "string" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "parameters": { "type": "object", "additionalProperties": true }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status"] - } - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "p95TestDuration": { "$ref": "#/definitions/metricDelta" }, - "executedInRuns": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status", "duration"] - } - }, - "environment": { - "type": "object", - "properties": { - "reportName": { "type": "string" }, - "appName": { "type": "string" }, - "appVersion": { "type": "string" }, - "buildId": { "type": "string" }, - "buildName": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildUrl": { "type": "string" }, - "repositoryName": { "type": "string" }, - "repositoryUrl": { "type": "string" }, - "commit": { "type": "string" }, - "branchName": { "type": "string" }, - "osPlatform": { "type": "string" }, - "osRelease": { "type": "string" }, - "osVersion": { "type": "string" }, - "testEnvironment": { "type": "string" }, - "healthy": { "type": "boolean" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tool", "summary", "tests"] - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageRunDuration": { "$ref": "#/definitions/metricDelta" }, - "p95RunDuration": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "runsAnalyzed": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "baseline": { - "type": "object", - "properties": { - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "source": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildName": { "type": "string" }, - "buildUrl": { "type": "string", "format": "uri" }, - "commit": { "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "required": ["reportId"], - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": ["results", "reportFormat", "specVersion"], - "definitions": { - "metricDelta": { - "type": "object", - "properties": { - "current": { "type": "number" }, - "baseline": { "type": "number" }, - "change": { "type": "number" } - }, - "additionalProperties": false - } - } -} -``` diff --git a/website/docs/integrators/_category_.json b/website/docs/integrators/_category_.json deleted file mode 100644 index c39d5b5..0000000 --- a/website/docs/integrators/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Integration Developers", - "position": 6, - "link": { - "type": "generated-index" - } -} diff --git a/website/docs/integrators/img/docsVersionDropdown.png b/website/docs/integrators/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/website/docs/integrators/img/localeDropdown.png b/website/docs/integrators/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/website/docs/integrators/integration.md b/website/docs/integrators/integration.md deleted file mode 100644 index 25dd2b4..0000000 --- a/website/docs/integrators/integration.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Integration diff --git a/website/docs/intro.md b/website/docs/intro.md deleted file mode 100644 index 7aa2add..0000000 --- a/website/docs/intro.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 1 -title: What is CTRF? -description: Common Test Report Format is a JSON test report schema that provides standardized JSON test results reports ---- - -CTRF is a JSON based test report specification designed to standardize the structure of test results reports across all tools and frameworks. - -**Consistency Across Tools:** Testing frameworks and tools generate reports in diverse formats, making integration, comparison and analysis difficult. CTRF defines a common schema, ensuring uniformity across reports regardless of the test tool used. - -**Language & Framework Agnostic:** As a universal reporting specification, CTRF is designed to work seamlessly with any programming language and testing framework. - -**Structured for Programmatic Use:** By enforcing a standardized format, CTRF simplifies automated processing of test results, enabling easy aggregation, analysis, and integration with external systems. - -**Seamless DeveloperTooling Integration:** CTRF reports can be integrated into modern development workflows, including CI/CD pipelines, build automation tools, project management platforms, and bug tracking systems, using open-source plugins. - -By providing a consistent, structured, and extensible test reporting format, CTRF enhances test result visibility, analysis, and interoperability across the software development lifecycle. 🚀 - -``` js -{ - "results": { - "tool": { - "name": "AnyTool" - }, - "summary": { - "tests": 1, - "passed": 1, - "failed": 0, - "pending": 0, - "skipped": 0, - "other": 0, - "start": 1706828654274, - "stop": 1706828655782 - }, - "tests": [ - { - "name": "API Status code is 200", - "status": "passed", - "duration": 801 - } - ], - "environment": { - "appName": "MyApp", - "buildName": "MyApp", - "buildNumber": "100" - } - } -} -``` - -## What Does CTRF Solve? - -### Bridging the Gap in Test Reporting - -Often you want to do something programatically with your test results, like analysing test outcomes or integrating results into other tools. For this, a standardized data serialisation format is helpful. - -### Moving Beyond JUnit XML - -While JUnit XML reports have been the de facto standard, originating from the JUnit testing library created in the late '90s, the evolving landscape of software testing calls for a more modern solution. There is no official specification for the JUnit XML file format and various tools generate and support different flavors of this format. While JUnit's longevity is commendable, the dynamic and diverse needs of contemporary software engineering often deserve a more adaptable and versatile reporting format. - -### Embracing Modern Engineering with JSON - -JSON stands out as the ideal format for test reports, its widespread adoption and ease of use make it perfect. Although many test frameworks and libraries recognise this by offering built in JSON reporters, the lack of standardisation leads to inconsistent report structures across different tools. - -### Catering to a Diverse Testing Ecosystem - -The testing framework and library scene is increasingly diverse. It’s common for projects and teams to employ multiple libraries and frameworks, each suited to specific testing needs like unit tests, end-to-end scenarios and so on. CTRF aims to unify this diversity, offering a consistent JSON reporting format that encompasses all types of modern test data. - -### Main Features - -## Key Features of the CTRF Specification - -| **Feature** | **Description** | -|--------------------------------------|------------------------------------------------------------------------------------------------------| -| **Universal Test Compatibility** | Supports all types of tests, including end-to-end (E2E), unit, API, and component tests—ensuring a consistent reporting format across all testing methodologies. | -| **Well-Defined & Versioned Schema** | CTRF provides a fully documented and versioned specification, making integration clear and predictable for tooling and automation. | -| **One Report for Any Tool** | Designed to be universally adaptable, CTRF can be used with any testing library, framework, or language while maintaining a consistent structure. | -| **Minimal yet Effective Design** | The schema follows a simple structure with just three required fields per test—**name, duration, and status**—keeping reports lightweight yet informative. | -| **Rich, Detailed Reporting** | In addition to core fields, CTRF includes a wide range of optional properties, capturing details about tests, tools, environments, and builds. | -| **Highly Extendable** | Built with extensibility in mind, CTRF allows the addition of custom properties to accommodate project-specific reporting needs. | -| **Official Reporters for Easy Integration** | A collection of open-source reporters ensures seamless CTRF integration with popular testing frameworks, simplifying report generation. | -| **First-Class Plugin Support** | Open-source official plugins extend CTRF’s capabilities, allowing integration with common build tools and CI/CD systems. | -| **JSON-Based – No More XML** | CTRF embraces JSON as its reporting format, offering a modern, flexible alternative to traditional XML-based test reports. | - -### Who might use CTRF? - -**QA Engineers:** Simplifies test reporting for QA engineers by standardizing results across frameworks, enabling faster failure analysis, seamless CI/CD integration, and better collaboration with developers. Its structured format supports automation, trend tracking, and defect reporting, reducing manual effort and improving test efficiency. - -**Developers:** Simplifies post-test execution workflows. With a standardized schema, you can write backend logic once and reuse it across all test frameworks, reducing duplication and enhancing efficiency when handling test reports. - -**Platform Engineers/DevOps:** Modern development teams rely on a diverse ecosystem of tools, including CI/CD platforms, build automation tools, project management systems, and bug trackers. CTRF’s standardized JSON format bridges the gap between testing frameworks and these tools With open-source plugins, you can seamlessly integrate CTRF into your toolchain - -**Teams using multiple testing frameworks:** For teams using multiple testing frameworks, CTRF provides a unified reporting format, making it easier to aggregate, analyze, and compare test results from different sources. - -**Dashboard developers:** For developers building test result dashboards, CTRF removes complexity by offering a single schema across all test frameworks. With official reporters for most frameworks, parsing logic only needs to be written once, ensuring easier integration and compatibility. - -**Data analysts:** CTRF’s uniform JSON structure allows for streamlined test data analysis. Instead of maintaining multiple, framework-specific transformations, a single data transformation logic can be applied across all test reports, enabling effortless aggregation, trend analysis, and insights into test performance. diff --git a/website/docs/plugins/_category_.json b/website/docs/plugins/_category_.json deleted file mode 100644 index ca76192..0000000 --- a/website/docs/plugins/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Plugins", - "position": 5, - "link": { - "type": "generated-index" - } -} diff --git a/website/docs/plugins/anthropic.md b/website/docs/plugins/anthropic.md deleted file mode 100644 index 253db61..0000000 --- a/website/docs/plugins/anthropic.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 10 -title: Anthropic -description: Anthropic CTRF Plugin ---- - -Integrate CTRF reports with the Anthropic Claude API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/deepseek.md b/website/docs/plugins/deepseek.md deleted file mode 100644 index 6cabaed..0000000 --- a/website/docs/plugins/deepseek.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 16 -title: Deepseek -description: Deepseek CTRF Plugin ---- - -Integrate CTRF reports with the Deepseek API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/gemini.md b/website/docs/plugins/gemini.md deleted file mode 100644 index 5de1800..0000000 --- a/website/docs/plugins/gemini.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 11 -title: Google Gemini -description: Google Gemini CTRF Plugin ---- - -Integrate CTRF reports with the Google Gemini API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/github.md b/website/docs/plugins/github.md deleted file mode 100644 index 3075413..0000000 --- a/website/docs/plugins/github.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 3 -title: GitHub -description: GitHub CTRF Plugin ---- - -Publish and view test results in GitHub Actions. - -See [GitHub](https://github.com/ctrf-io/github-actions-ctrf) for upto date information. diff --git a/website/docs/plugins/gitlab.md b/website/docs/plugins/gitlab.md deleted file mode 100644 index 9e47a97..0000000 --- a/website/docs/plugins/gitlab.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_position: 4 -title: Gitlab -description: Gitlab CTRF Plugin ---- -Coming soon! diff --git a/website/docs/plugins/grok.md b/website/docs/plugins/grok.md deleted file mode 100644 index f2358f5..0000000 --- a/website/docs/plugins/grok.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 12 -title: Grok -description: Grok CTRF Plugin ---- - -Integrate CTRF reports with the Grok API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/img/docsVersionDropdown.png b/website/docs/plugins/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/website/docs/plugins/img/localeDropdown.png b/website/docs/plugins/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/website/docs/plugins/jenkins.md b/website/docs/plugins/jenkins.md deleted file mode 100644 index 23b4817..0000000 --- a/website/docs/plugins/jenkins.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 2 -title: Jenkins -description: Jenkins CTRF plugin ---- - -Publish and view test results in Jenkins. - -See [GitHub](https://github.com/jenkinsci/ctrf-json-plugin) for upto date information. - diff --git a/website/docs/plugins/jira.md b/website/docs/plugins/jira.md deleted file mode 100644 index 751f4e6..0000000 --- a/website/docs/plugins/jira.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 11 -title: Jira -description: Atlassian Jira Plugin ---- - -Coming Soon! diff --git a/website/docs/plugins/mattermost.md b/website/docs/plugins/mattermost.md deleted file mode 100644 index a19283d..0000000 --- a/website/docs/plugins/mattermost.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 6 -title: MatterMost -description: Slack CTRF Plugin ---- - -Send MatterMost notifications with test results from a CTRF report. - -See [GitHub](https://github.com/ctrf-io/mattermost-ctrf) for upto date information. diff --git a/website/docs/plugins/mistral.md b/website/docs/plugins/mistral.md deleted file mode 100644 index f49b0db..0000000 --- a/website/docs/plugins/mistral.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 13 -title: Mistral -description: Mistral CTRF Plugin ---- - -Integrate CTRF reports with the Mistral API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/openai.md b/website/docs/plugins/openai.md deleted file mode 100644 index b993af1..0000000 --- a/website/docs/plugins/openai.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 9 -title: OpenAI -description: OpenAI CTRF Plugin ---- - -Integrate CTRF reports with the OpenAI API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/openrouter.md b/website/docs/plugins/openrouter.md deleted file mode 100644 index e173cad..0000000 --- a/website/docs/plugins/openrouter.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 14 -title: OpenRouter -description: OpenRouter CTRF Plugin ---- - -Integrate CTRF reports with the OpenRouter API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/overview.md b/website/docs/plugins/overview.md deleted file mode 100644 index 67b64bb..0000000 --- a/website/docs/plugins/overview.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_position: 1 -title: Open Source Plugins -description: CTRF report examples ---- - -We are developing a range of open source plugins tailored to enhance and simplify the integration of CTRF with your favourite Developer Tools. - -### **Open Source Community and Contributions** - -Our plugins are open source, we welcome you to contribute, helping us expand their capabilities and reach. Your contributions are invaluable and help us grow CTRF. - -See [Contributing](/docs/contributing) for more information. diff --git a/website/docs/plugins/perplexity.md b/website/docs/plugins/perplexity.md deleted file mode 100644 index 0deea18..0000000 --- a/website/docs/plugins/perplexity.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 15 -title: Perplexity -description: Perplexity CTRF Plugin ---- - -Integrate CTRF reports with the Perplexity API. - -See [GitHub](https://github.com/ctrf-io/ai-test-reporter) for upto date information. diff --git a/website/docs/plugins/slack.md b/website/docs/plugins/slack.md deleted file mode 100644 index 6491084..0000000 --- a/website/docs/plugins/slack.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 7 -title: Slack -description: Slack CTRF Plugin ---- - -Send Slack notifications with test results from a CTRF report. - -See [GitHub](https://github.com/ctrf-io/slack-ctrf) for upto date information. diff --git a/website/docs/plugins/teams.md b/website/docs/plugins/teams.md deleted file mode 100644 index 69262fe..0000000 --- a/website/docs/plugins/teams.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 8 -title: Microsoft Teams -description: Teams CTRF Plugin ---- - -Send Teams notifications with test results from a CTRF report. - -See [GitHub](https://github.com/ctrf-io/teams-ctrf) for upto date information. diff --git a/website/docs/reporters/_category_.json b/website/docs/reporters/_category_.json deleted file mode 100644 index 0b88e39..0000000 --- a/website/docs/reporters/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Reporters", - "position": 4, - "link": { - "type": "generated-index" - } -} diff --git a/website/docs/reporters/codeceptjs.md b/website/docs/reporters/codeceptjs.md deleted file mode 100644 index 2b743c8..0000000 --- a/website/docs/reporters/codeceptjs.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 10 -title: Codeceptjs -description: A codeceptjs JSON test results report ---- - -A CodeCeptJS JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/codeceptjs-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/cypress.md b/website/docs/reporters/cypress.md deleted file mode 100644 index 4f3f65f..0000000 --- a/website/docs/reporters/cypress.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 3 -title: Cypress -description: A Cypress JSON test results report ---- - -A Cypress JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/cypress-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/go.md b/website/docs/reporters/go.md deleted file mode 100644 index 7188b35..0000000 --- a/website/docs/reporters/go.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 10 -title: Go -description: A Go JSON test results report ---- - -A Go JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/go-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/img/docsVersionDropdown.png b/website/docs/reporters/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/website/docs/reporters/img/localeDropdown.png b/website/docs/reporters/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 zcmXt9WmFtZ(*=S%B)EHUciG??+-=biEVw%f7J?HT77G@f5ZpbB1Pku&vgoqxemw6v z-;X&{JzZV*cFmohnLgcd+M3FE*p%2vNJx09Dhj$tNXVWq2M^|}mn)^e9a~;bs1CC4 zWs#5?l5k+wXfI`CFI{Chq}oa9BP66(NZK0uiU1Kwn&3K0m`=xIMoxdVZ#+ zp?hKSLSSimjhdEzWp#6Tbpr;2A08YY9vwczVR!d;r)Q^kw|6h$pbtRyO;c2US2)Ho=#3q?{4m1GWOCI`k&9;zl9YDhH|l{oVck{{HdF$xGeh(%RX@ITa1V-QE4arPZ_3^N0KUo15FS^Rt74gNyU?f6HsD z>zmu#+n1LY=NIRf7Z*oIN2_aF7nc`%dwaXPyVf>#Q`56+>svGPi|1!&J3Bj8*0u|a zE61nDOKTge8(T{&>(jIU{?5$PF)%N#t}iaHQc%;Ky=4F7L{Hzy*Vp$Mj`%zGZ+7k< zCpRC^+V1HYCi6}{?rS`Ew80CL%d5-LF)(<1lJAQ_QE}I< z?$m+XE%JR|)Y|g5*Z=3YjLfXkvht|tSaC_|$oh1*A78S&%grr-Q|oi0ai*n%^?I3Z zz4Ifn)p1zW0ShuJU zjT*W!;4n~Y)3m5E=4m0n9;cN(k*j`y5!~j2)ij4x1#tx zB&it>z`(yY6BF>DU9?)rvOb2G!4AbPa`$!ju_}{}N=X3%ljy@XN?Dz5W~L8#vn;(% zS0y`!_FK8bT{5iuza9iPzyFntcC0hEUgCyxwZgrs_lXv54ZHujy!d4_U`~v!&Xq6w z_%CfMkDLt!D3SDYg>XEZ!YJH*s~-dg$LmS&Mt_;Y7X9a!>IDr+ded%2&q%}2^ODhk zoJMHe1;<*D7+WnelW=pb#;#*9m22_D0Uy+B;{x z(r=4T(e9>b$HL=1ZhtTnMZ8m?T*4WlE1nANJoY~M+S`a~oAzPxq?IY|K;|faC(Qf6 z6st=g2Oa&+>GJF*AU5<{Q1pIIjk9IOz}i1XThs0R)dBg}u}I!L^(JejuqE{$Bx0WH zK_L%2hekVKCo%({=C&4>8XPbm?HVjtj7;pR;Nl%bO7u_%gfl5w5S;(8b>qCb9KY=2 zcH1B8#T*pZQMR+_zF|mDvyu5p%arE^>?K|9F#FDuJCyu6$KPjjPBMq7j0f$|h@y!QXH+UdeH3iv*9ArYX^V-S2rxolaBRROkUH4!AxVghY-$mqUuOg%w5X}J1K z3LIKED&GtI+|Bu|l2OgJXS@ z##5m-UU-??q5BVBs3e%jt&;*!MXilSO_r%{gmW&qj$2WWx8M1Us?Tzp=Of?r=^y=m zDDr>5Z2+yUUf9O3Kqm?KxT9VJX#G6EP&E+e7EkxJF5QqcBPy@TsIFiD!!LWKz2ftR za<|^DinsXw>aBe|0DWOEi#5cV&B>!$i8?+vTr3ZDMK}XFeg)Ime5=*V++LLjj6sSf>5d+I|6V|cU`LfQPC z;p|(TN|j&~8CO`*qIi-79281;uL=cj-kt$ zx5MwWh>2LRlqjdUEGgk)P@$`Rs3-3sSlqxdxpG@!K`;a)V2m#wvau8$FIZuT9T00v znI8L>LHCkAZsu+5PUedUKs5fY2Ehv7Lqr}Ue$h;p6jBeeweEDUn2p#fwkvxk%Z<-6 zlgcD$>a-9H1#>^}Ku>>wLa`FkP^$V?ys$YQ&1L$o#0R}|{e?+I{K?~0CPz_*Bh#mo zh#!|PeV|ebfXa=JD#~>$?!*)i)b@eZZ`$qTk#-n$b{Cnhx2wH9N;PkqOwfS5FPe4A z!^5G+7=f|QUkN8gZmRRF-gxA&%`!7|FLGzf?uPu9E>P4d zrO@YSB$ z8Q{^@GSty5G&7xHSPy#pErSb3Yym^l5+QhvVlc)ItslUVgKOTQyYw8QX+2%`A%uhb zCJ{CE9{zUB(&-v8uRN|49S2Np{L4XRjFWz9R?)%ikl#d@WJtzM$=odVE^A1_CR5$l zs~b7y&?qM}RqSq1_-7&^wqiGh$yZuM2alHG{5LL=^QiF^u2prn!rcZ9%AF_!mJaxS9)8?8ha{9;`m^(Fx7`o(9*^- zI+OEv7<`;JEbKrNAh#EhBOA3x9E1Hr;lS)5pbY@p_LBMGn<&!Nxl41i9>dX%V}P+N zR;}+{G5WqCjnW#@f9ZNd^d5R<+ViQpx-L3$P}Nkiph3->K~K9)Sw$@INj*8YJLj@f z*+Rh+naB!_+NtSnzwWfLhq1;bmSozM80Xik(oGSLM*c)>iC_Wvd=JP|df1=roC3iU zoG&xR@$6d-6s0^VR}3V5OFQndgqfbboOay9Tf7RQmygGWgZ+DD(=|p9Aw+)O_j8?HRA#~+mIn^!H zQ6fcNW1FIjQ#SN_nK%EQV_F{VV77VfT5B(ea{vC|K#&-RTdcH#OR%(Mr#R1?jLzzq zSC-hN{(b^Ik^Q{uB|gq70;JUnM+#nmHCHA@PxC-sYqdnHZfEu1VHP*(8?jf)TsXH7 z`d(w{qU>V+81-UywGHL+AD7SV`|6-5PENL9RC02nnu15q_;*RRA_g8|!M(z88r&2? zCYs;1K=%c4QceJr-h+O=+K2tbY%HGQfyO1=9--HP5(yo2@2ad|TVK+$67(dBRpKI9 zcTvYDh?n^D9&qCvQhZoHb7DSvql}UJ8B+>~m5-ISatyypAR9WnfzbiDmXq*ctR3Xu z(~YwCAKYipx{EI8!HwsIlC6i`0rhcb>6<%+Cp)h@mK*_1d8_q6dg4>n}&ihP)NGiUvb81U?bXk&I< zbcqui@YB^CK-jFfu@*XpEERc^Mh(aJ)LBA@| ze4m|#Gs|Rc+0u4VvgE2s^$ ztYjCc@_u6&>iu~fe+ed*pr>hTdj(LcVf&SE`t2uXleZ(mhZd7kd|U$5HrJHPQ@IZ7 zz1w#&@Hi?VMVg$?DV~d{6LYoL8SFlWmuiYZxE8-M?^q32JSt7GoOVzZ8#I13;Ax`h zy=DXkH>H2B>%O@Ual0AO#Lh>Z`q=%r{iaZi3fZKcmBtmff&=e!GF%sO1~^L| z<3g?B>etUeZ?Suv6A<@bH;i=|KtG0mk@t4!qPRX4+^*osf+?77qg=U_OjVUxbTvh% z8DC!P=LlXRVFEd#m0i*Ka(b7e+3E&CC^Yv2#TgpoU(C>Wsp4))0%aRYtPxSr1x zO6uJUAMROWMj1L@;~jX6gRh(+e1ZqC_CTY4s&GfB-E;b?6+vEb;^bSE6j9xTFW;oq z9(1ndc$4}qdAB6ta4BN@p|T{**jB2P48}=Ya*Jc5#3mv|J&XRD;~yH>^DLwT>bp@)BbsVm+*3t=;598_Aj{ zF(?v`d_@ky*e%9dvu#A7+LtE~P$5VDCRJz{ZCt3Qh5aQ==>mF~k7bTCZxZg$!jnP8he7?WmJYT*1>c{*tJR|Ie+ScEevd4@gG>!gnL_ZL0 zKC)4$4wIXHIG~yE4+vZ~gh~Du9&92xJVUy91zt6P+$SZ9%)_wNU7KW~uGu2PF`KM6 z)UjHJQr%bRkMmIKABTD;BRcKhrdAbU;gFURvdg`TDW)T{)k8(vFbmtSAMueO{E8RHEQz-$F2C0;smk?8Q*e=qM%6O z6aGCJV;h1Tf3qvPEYi~fsz?&nlrg71v(eKqA!&F7d&p(^Xy#{`bl-!6%zc6pwsB;^ z+s#(uj7tu(L!ti&l1T51?Zuxg`16)sS-XNZm6tV-9#MfVeX#M39*XRuyFiJrxU@lO zA94#H%u0U~Ea9b26Qf{o;FeeG*!6uF*bYv#%%B^zN~9gqX{FS&&Ba|4AuSA${f^sf z7tg9}O%6m})g#&j5f%_eXA&}AZI!vQtzb=^sQxVZi~_}R^pgdM?5WD3%5Gx)%~qaP zgb4y1pEi3Ut}qG#QQ8SxhEkYe1Iy%QMz~|VS zKNsn5WGa%en;uc#7;LpDxYo4^@zL&dT*?Movr0f}Fry~2?+=LVy&$9SKV5+@SE-{M z4E!tmqebqFV%O~LO=L7??~zNUu90ECkq2Dut+Q$C#QJ*uQ33)=L?sH^oM|)e*HvE5J+C=qp79zhoRrLcNRA%1 zo?(m~(so82vOoC7`kQMWO5~^(`_b!C)8yq_VgnO5blD*sV`=DhQ}{$VtHxJJ@hixJ@hcZ z!Y6lPxZ6KphBnMJ)Ki2qFXY=iKs$GnX#1@Z7~hW~TuZju?)u=y?>z5W?Gv0-coA#k zCeo>mYl2HbT(xw!L&23l5KXaDk)yq}eBc&oPdWOPI`+f_o2cgW5QeU+)?Z2SHRplP z^{WM#a*z=ndtAjrTjbW0xE@*Ir~X+Bi-n#;6t1um9|^H4v%4b8X{_t71*TeupTOxB zM!=Yir}l!cM!GzQSnjS?@tOr){-JXhj8oH5p=g?cX47@jYyLLVq#|_Nsv3>>?X=ey zqHoKr;KTdI-GBAo?{+YUsVsacvsXS>8d?dLdU_)>MB*glDaE}%bBrd^98i+k4NQ8s zc0?8Fbqr&)Wq3Wd=YVyyUH$oZkbSRGYQQj1NofbRth{_t5aE##Z zRgYXbJ@On89x{nXLRlW`84WcfoXw=cPcZZH9T^b zcb#iuU7-qyv~G@U`}AkosbCYozUSeB3Hxyoirpqhcbvd|soGDf8>z48$4OE>XaW4E zM`Bd>uV&vA8~mC0n0*yWn z!;O|1HnCN1ghEB898BR#@4Bo&&oP9!4dcdtLZ@`un@&0 zzvF-GJhEY|FLF{hrM=dB7|h@3bEZZVJc3@GCJk0{ONwS8^g2F0`roJtV2uvN1O)|| zIfYh)=}lZzT`5BbTHcM6zo=WwB7-gyvx+Cm)a}&MT+1M^^h@h5kMVlZF*~3?Y5n)L zG9~s#<;5)1%>+_Ny*GZHAebop+bfp3&+eUH&4)I7Bc%5<40;DxP0G8{l|7Ufj)b!u zw?zWRNHyLJzYlCQj^pLwN#g~68@bp>+KA=l8QJkW-|B;3+XPeez-@9TIs${Q*6_9g zgZY+gF6*%)arn3AJUkn5bhfZ9zut{n6VIK=XKt|=rtOVmc&6zImd8%#b}Bw)vQ<=y zZ*)E`F>yPlf=T61Cm%u&Swgy**c63kVp0V|yM7_vkz7jkw+1H3?_NcbXa2QR`&1S! z+&YBgY5aZe3Oz3Y&y0-J_SoE$OJ?^Y5E^umyENba+t#hf=fjWb@y_QD-S_*?k6rg& zYCqi76Dk6v!l>?hqKLvuFrKkCcX`eYORriHtB{LekCARf*i6xO%HyN*j5mwg%*8!T z_-nF5R#R3`E%JC%un?Z*bLKZbmC(`y?h5hS4~y5*hgyC*ji|t|>+*|`-dcqG*G|Tt zEST8(?OF|TW>rp<0OymrGE9zAlwD*|y}VO>>~H8Z91s2Imik`Rq+^-6$BW;-O~_dA z!0~$@ir)8VZEok*1Z^bx^25FUR#w|5ZBYL3o!iz3!TIR!4dM0kJ3M$Uu6oT8;CKYy50-UD6m_X=r8s9+5$+sA0zy6pqH_&Z@W^+??+HTsDpji* zpJYPs-t|l<_3g9}ngwho*oRGjLvmgR^?mB%vOAB;nrI30-@eap3v)1iCsy6LJHpO1J< zyJZ4Wh4TL8e$;A)3J{xrvG(WSc=))?Jb7Ude7PQzrs^QKFUs80=y)usVamepIs@|w z`Iz`#mm;4!p8c?~+N=@YBv*C$SE3I503HJZ0R|PT!IyVtgvYdpEy__RjV?qXKeZS8 zQn;w-0EHEP$J1*7n@+9+ndkivReVrStsXO#HIyz74ueJ3uc5Y(sVEe}?RntR{lQiH z`Z!qQ;Og%AD&~>mulH;=Kz}3H2_E@LZb@~4srs2{vY?%@)Kl!Nap4D79D{9}Z!`{& z?#?MOm>og((zofbkjOl>6O9@pvqoooVcjc^C-#xV?L|D3rXAR!rX4PzRkgx;H70*D zI_Pqi!x-h~CVp;&e0Ji8#XXONI@+S1=SSfqMQ>WVhhw!ZpqKaFLfG@O*E!;9JweoR z?{TX1XS6B@-~)hQV+wZL_soD`{+?KKnJh{Y4z>ugj&n-b6_}jBe(jSLX6P z&9H{W>AHrLNjvzbPKRmV@tT%0mYUCuBT1kvP^GO=`ICpra+8UwYXrd(pWPuzm_4{& zWk{u~y0Zv8Qlt(vtPO(#zX5n?`VDW3Ct(plTSM;$<*Wqlw`Z7-AN6CITh2!btkaDu zrf!`e&u14f%tSP&(Dnr<9bp(XcXW%tYO*s963nBWA=#0746gunNA6vAeP1s zh3fwN_Xo-D)nJ}kr8L9iLhlp8zQQ{nY4Q$@E9VtETvY3caFqEe?wB~cpWg4cy=Whdd?Z? zXPs;EKDvGsP6*bHo;Asedj+UOAyPE`Cwl8av`E7KMRPx4{M5Nm)na^3~o1fyYQucv~N{FBO$#$%a?f> z_2b|tKXBB$5)5npHFNe?Zy-grTI8sM+$}L__i>e2nemkwx%9r!i}lDhBEL!$_8+d6 z#LJ6vr&OO=-?Wf@W*)yvCLByyX|NQV|ecCy7=VAOB)9BI*Nhl6$m2&;G5gX z7X%M-WD-iH8(`K^IByV*KC4pkE;Q%d_{*#4?^g1OlJz4do+x=4js7@ z4A1i5J{^EH#kWeooG$|j7@#2|@kwpNNOp2q5tS?TUv|0sCwg@^U#G?D|NVyEHk3@4 zh9QWPx@!?z6UooVSfd6QY0LCJiII2vLNZ0~Jqnz~Z^l-ou^A;QU;}AhM{s6oqmA>R zx?|OM=&u!W1Uio$0m&-Ry7O|=MSkJHZ2nMCm3cd2v986rcYhXj>{)~`rp~In^`jTf zFrXGkn7tKYRu$h+~JfC4LO`D=-Is- z`O52#2dQHUn`kg1yFQXPBn)1doD3>%Z#Qc1db!Om^YRfrJIQst z-;fRaT=uTy2I$-qS|{FdP~V|NDf7ik?ZkYCef!_RSVV*5*a4(SshTJnq8S~a`-xao zsx;}%hcFK5ULvK;gHS_-z^^qx#frvEWpEI~{rtfbuS8wSnx+wfU>o`2dC=x3`D zBhoCot?)M$PTo$u&5L;JYCKUEb(v4VM%h4az4C?X?!Y6cb3KdhwS}?e9dC7;HdnO7P%wI_DM;;s)@@Z%bXbtAz>;d_JUlP#%eF{9 z&G?mfv!)Kp4BGm-`S$V!e>YW%_7wOu6Y@dH03UOV54u#?t3zN87%+2DV4y8UA)tjRAF;L2r0P4{}i zS>CSrwAQsVg`0^P+-P9(t8Inr_eUS#5t?4*HluhdNj63cJr5&s250OW1_Y*Veacuo z)0zW>;IdzS14@>TV9}D^5NujBuLsVE+*^zGaRsMzd40GW&lUtN9c}wb{~oH-rn5i@ z8}x~^(V56NJ>0RjWulsd{#z*g#MP3;$Kift?|Xb^>Pq7n-uera3;fa&%Kqq+sTISU z>9I?T5p%nzkJI+%EB3-pvu^_`-K4BPitQJr=<|A1pF^2$^d||Im4!Lx+DZc#;0d%Z zU}NxmZU|4p(!59eAHdzA{rqw6Ka=ssc2YVTy@Kr%TweSx7~PHI0$Ux(MH2xP>83k; zbDo^brmW`!))Eo*!~#*~(W4nwS!=Y1;yzh_{9+ERu~TOO)jk9Zv~B;)rYQX6mHFEK z$FpwAYy(lY1r9y+I7I{>9?geW)UF1iXT09htM#|*5w)gCZMKyi*_Ji;8TO`jkr6_D z6d^;@Cn2~1@1t9zQh@LC&YnCIm}xot2eOM8;p8qUQN8+;{_dBN&^VM~s_~5G#LV6m z_E3xKqtq!foUe8JYAMWpG6L66c?}#MBe-snYIx34#${6zQ+joY8Si;6OdZ&ke9RI9 zhJVE8S27lRcxM1to&zo06ulR~=)s2%EoSb-}Kq8vZm%56`3bWG&{95m-EEyf%f3 zH>Hp1P(-{>oBt2RmrZ0^^02K|$)u`-lkn!CnYo`C98s@Jf)-Nt3YGS7qu+WJ#ig-Q zFrQrF(9BS8SkgJ;+Ad7Nb-pL%EFha^nT1{-?E>u#tIcaiqZ19=37#rTd8pgB7g#`{ z3R`W-FmER}xBCpl>6-zNKPtsGV+;sy5|;j2PzH**0v8xbiA$I)z;nGF=f0kD;9o80 zk9RY17@+hFh@PzHbGN#U;3$|?cr@7<-4>(%aAapZ`iHIwt+VtBy0LH(1}{C)3kg3a z$axD|Iyt-X`@2lAY5noiw7Ges2e_Qy#ZG7g7!r}~R1hs0kXTsZV6s<#V!mFs#>11$)A=<$Kuz z!efePeRv291X1dfQaDLD&pz&rySTeJ)gM_}RHN4$p39$|V&}Hy&}+?dW^|({y!MySY<7Jzg!O zf^s9Ppls*TLgM-SI9c;jdIIB_?_E}SC2dbL5<#e@~e!>h*T}3V7Qjuwb}kpd$k{i8yIhNxcWp5 zmhr}|T%BZqGQI3rUBDr76MVryhwI4_s>U>$O&%JFqpibpT73JynWfVyP9vAd8#TkF z@b21lX~Xp&JvEw!njH%gzR#bLZ(HQc-x>V%ncNiNZVJK&R)GfUJ{=r%@BYj|e?tAE z^QvUXJVicpo4=Ku(9&oBMNT}AFs6q4)YmcNKs}&Yl3qAPrANKvAX)cQ0-_JnGLH^% zib2!LEZ+!2?9Xjt;Vsr#lw0vn26t$134ju@;-k>6A|D<1f9{NA&6lpAq^(bHU;73`4+N|^gyuiqNV6V>4tiHuh2}gS>rpliJMYF> z8oV`hL{!l3Cr!jFuS`U(PLYOcg;mf+q*tapy-Rrq73i4^Zr_D8w5!nj+I0u!FF(jA zaa|Fie9MYyVD zY+|f$aJ?0^#q(7Bv(_Rf>!-!26{dkm`vv5_{yhqlfE=-JnrnR3CE&==9oG^BPJ~kT zwR#L%pm6XWo_o>~-xFwsnFCS-K3SEG*9n3OmOIw$y|;&`Jh_54%d_jy$;Tc2Y_spR zsaIH2IH@qw%s;q1T8%_~*JZ&ytt);Fy%vh>g z0w_CsOn#JW{R5GsH?OEs1xr47FZzM7B-{&lNe2bAnJ#CYkWk}CK065tB0jzXv_Ue+ z&!kU}(r(0*6z9AtXe^RO8lX0D<%I!#-wUlmC}2X3R^;0)cuXyXl#01U9aAYGBNq07 zQ0C`^>CvlIsr|X$a@#JlI=!B?psUQx$bJ$^?{z*pe0X~bm^`c#V&s{0MlZ2T-y>}F z;qPquk(Pkc+@>~ButddAyRL%Hp<*0=QjboBwPSW-PHOEB-@Y}(p8aa|yNnqY5iwd} zMW09Non<@D_S6*Yt^2H1H_*KaVR?1$sYP$fe%28z_TYR*uvmX_{;5wg$t{cwp()qhVL2-qx3)1wM*a1-Qko7WOS|m_n5#TglB_)$&TDF_|oOK~F z5`+$vb~~{DgX@<_1p#;oVwb#0EZ3TI6$r55L4sS>BE@dTA#G0aD>84pQZg}wEWXX` zi!o|(wQ#4Y+7TC_zH2&(JiwOOYq`B)ZMOS$()lGjP?Re|ONa!QYMvwZxST#y zqxy;V%ft%25Xi@T@m(kD!pOvW$-@7ISP-Y%N|Ru>0)+_1!Xqh6yx_LcFNm{O`PE!f z1~@)qX~N_wIEb^f5u-?lm)di~;Jr!!^i2p381+NQa^Cc41Q-KE0Pi#aTB>o!<@$c% z*Q&0@cBXHDTZ2s@7*To0m*BYhWJwxEsgU+sx@6~uz6~lY%RS;a{p~AC-LG>IUop{T zr=uIPav^B@XZ77ba;qQ)w|Dxt$Q-fY!I+bh=a*g~Nhdb4cY<~1N)F-&Ui>SR1l(Zm@ zU~{AX%FoF4u=?X-SNV(5k>HE$9dJyNJ1i`5o7!u7exC)~47YqFkDvB6Qvg#`GnW$m zy^C0qY~lL3`HdJoR6L$C-K(+><84eipiDHzaN)Qv$Lvk($43+H>IVoTphDA%<1OV7 zN*wIOIb>eQ)`8RyzvwEjennj>vn!@tYo7b3bB?40+SdR)E#yrS^OTn6TmN05HqK%l zP)ZuCwf1Dqt9nt}M75{7)xl28WCdmP&nv%F5L&v^Csh6lR4+6qW$%QBQl1y9g2m&zLQodlxDQe5t ze74A-pBpIlCOSp+vzs<1{?Jh<5)t`U7lpH47Ax0o_SFnzt-ale`H{M8h&qB)qshbx7Ad#HNB$| zo={%npyBI&{m}+3+ngQmW@l~dYovp+my{i|_PyEoYucnl>EfHm=~;&)!6SYGXW9S; zu#fmK+2v+_G46lfe~J+}-wMrzj+?*^#t`G>E$l*-E7%bPB)Ef578L#cU|%dTi4@hk zp;+bBv%g-&D%NlYIGgkRvGc3A&8QgDxkHez9M?flQx3A$cKc(&?EFW$uDMSdb(QMw9odi zQA?zO%QwiY&D&*2_|La;le8f+v*;YqftP=UX(~GO>fBxRS{^y4gbh*RyJXj3%v!%! zELfdXKw~e(B^eo_RBX;Th4TrEi|2p2@Hg*5bt%Y7ZIk$P-}GUj)gwz0gIBAGiFNn8 zU4&Na+V|69<~TqZyxqSPaeGkw<_`ynX{4vBxwIX_Ypq#9SqSJ=W^R4opKAeSa3L{m z&lHRtdQy{5Ggy~SFu34>`lJ%Zqqg`)p0E)ulwxhQ-;}L>tXPKb-xTPBQs}1)CSM*$ z)G0-&fr8_TI{4boZwExp&4Rt|u<&mI1_Iy+`yv2(?Zm>&!E#z5*xWy{v=^H#tjEA3 z;?O-=$gFu6kw*5=S@@t1PtJM?AR~Jb<+?`D@ni^f9@rf(6M@{G_~V?Cy-fQf^8)n? zQMliUqyBPjXiOCQo#z#uU#^qooR+z_tHzkiIsIG6rn#gWN}koO1iCdnJ2E?}15?Vb zHv1jpiRE-A-RvipUQ>D1lRSvmj z7W3Og%mVd(!g)KZzdxx03y^c4IMqbhs;z8!D&FY;i56b*oQ6$WJxRAsvOKW!wE>ua zD0mc=bW>_*_Ph03EUervAR2#dSHw8J{!GR_N!df0ZL;vK+=3WRYyZ#GgT>l0+k}~1qIqt zS6WmMZM)!rz7z_m`fK9CHVM8F$z&G%jWzFH!hm|FYpam-1QF?Z)lPOHi8}0f1o9EZ zDHf!)*@a?vnvbdJDr!`&Cqj=g-f;y=uFs7+Jzk$Lqc5IOB(A-BqFIgF5T*Qh4dUC& z&KPT!3?JZJ?!2FGI-p$Yz1pL2ZT@|G!_!$1J@*9lY>pk*)lpl#C(!j;vJ^FY@2K3n z2bIo|a*SE!HzHgWM{6~I(^a*s15DV0tUv$zES9Amg!xeS8?y}$1Z}K#^z*n0>1~He8ZPz~6(W>wyBjvX_I$UA!VL?CFEa)<61QoPZ6E_lJpjc$tmFIQ8ZC{iPDf zO2-9y&-i(=bBR|;{%~gM8=O_tg<9F|DLGA&TZU$Dmt&g50M3#7f)z&Uh;BRwc9Fuz z-1wDw3C{{c-~!Wkhp>&;jVmvmxQJZfG-RppOg1^@pFD4B;*!n~lLSmHhRBGUZW=wL zrq<~HsA?@Fl|25*Z_6NPzj7X+}j+I5Z=nZ2_bWFC7 zTuxY^a9H;EY7yk(wd>FO+r1&Q=A6pE#dPEy^vWSAqgg}SUq@acOCxOw#+d|Qm9XIz zRGFSu)D?W`_1iH$=?m+!uJ;FT$Ox9sW_Mi@heywtUNevsjY|GZ+9y&g$4FCA5uwfk% zf*2q%_Xk{=xlxR0V-lrZ<8c^ny0kflt5f{jx54mj|S>kwam*Tak1b3;( z5uPT_RKvI3-JN1xNUUV?slZ3MO>r6QL6oc6t-jxIO{GxTrzD(yK)QDPpLm+v`7|p} z2gy(VZGC&YNw^Sa`UGiI9uXm!9PVra7Ew3o^o&h~XSGDkY zs;^`*cxA6xHK0$Wic0L>UEZ->|DkX6j1#<+RIHQm=vtR9K&^UG7kBp zohssHdJ&9qvGa3a$c)-8t8?K+cH6&N!v~A?-<*cwix;^Kx->T5?74h9@7rrK!RqW( zo2vJoGt#1rN>*x0wCL^Iy~m|a9o+HOx%%|#GJ$IR^@H56PS~Nk&64x4VbME}59a@h zAqcjHo2qUpv4ru+gtljF5cq0UfGkddYadJBa9qH5nTqNu$*6Eyt0)uW)o4o zI;X)D{>#dI8(%wELz1GF@W7BU?iTh#pd^;0(7A|qgmkyuW5DgLce~io- ziyf8;ON`-an0(auAd<+A^E&OM70amakbMh9ou51y1A4-pKz;ftECew{C|lR<2EG2V zc_YNUU-=dDwpU#60DATW|2Y$&LhL{Md zgU?Q#<3)i(y#qZ1bzpAfA$a(p99$lv#>L?Q)GTy zvV36GhERupL#v>^msU5ZmKGe6Pb0Y50Z_*r_EQ}YYljZ+66G=_SknIB zZ29q((LiBZotu{WaHM14bGk|AaDkw7pRRF+J)Lu6k|cfbwnXs?-X|W_s!|@*zFqbI zKH(l_gt(*O6YGy(ey6N?m_zU{`f$GyG}a%6%QeTyYV_*9CTC!O*p|m9#!SnxQYjCr zx0?Pz4pbv$bbm($)?Vpu@0tzWHsS2>)v#t> z@)vmMMS@d6sl1*mp^|5P{sVa2Ydr|^bT4x;;m;G%!7jv|MnM$?)5Ax-e8U)PJP1|j zw%heI;oCzyygq;2y=EfJqsY192X~vsQkXUXIO-m*UbQ!I#`v`?SW-Wg`74otU4C1v*?+r{tKmsUFh+cJOFn%ei*x1dOd6 zFdTHO)IfMfuFw1>5}qFUpQ-y^y)mXc>I%0whfG<;p=IXi5i)%>S(gUE5DNjBWKBzr z_#Wcq8RL0%$M(|1pAfjAhgbM^y%{*VI1Cxpv0wt>7i8%;SsQ+%*i3Mo@%ohOIdc9n_pG$ewjs26kJ$SwQbo^Sk8@-{F@9Fe^jtAAGY004(QP$Jw zW%MMJ!r8%+p2x)wEYW>%pS&FodEgu=HP#p6`0Pp&o4ydp&i>(Z~^F0082|Xag}ZxCR2>ZQ5t; z>A|WQnDS?znrt%Ye7if=pzl|H131>3+~^IjMyPz5ZIm@Fg=5~D$N*x02W!5TwV`kb z5cs|uy{8RXJNs9M*y;%C*|n%;`^I*cHg&PuVYA{FO+N1V#OU2-1R1gU@ug@Xa?q>b ze*(Sl%OV@%(h7UJ-Bu0-x!o!4QqeLO#F)tNvHiyS;USp!I+M=xg@Z(rv47_0_;K4l zshut-0EL`c=&=BxhuXPiRDTm2%{M?W6#9@tfK~EMaZ8WoQZWLcVe@du#-RsW4+z}g zO%&Y$Psw`fY1m|z2k?BkJbNCMBPap;?iM?k=FSWB*Y9pWRVL?x;LPus(N-8_gAb^2 zM!(Sv0At)38Cm$o>ww`vVSsgov{ zCdYVS8Njokqj9l98H3CsY7CH3qo`^|-M;Kkwb$*2&=wdc*1-MVk+~=0au2!?|GVoi zlb*^0KS?Cd6dOGkZxX~LQMUMnNLwVqKjApVqAuG@J2V4|Fd>bG08(u4#?aCTUfwsl z{TWl42|bHA2xHp6o%d%^K-JUV6R+VEJtB_j^juRPb}G3*dpx1g1>G$4D|Q=s2G}3F z;M%u%O4iu*46HuCLsus<$^K?YHU&?^`|2hfnKp0+1Y(JBc(8|T9J{KMB=@c(b3ro2 zd}F1=?F9afZ~ia~4`SjA>gbccd%Z9QB@zWr+A5TT>sE|}xp#hA#&LC`+{fA1q~Mmx z+3>dUL=K{Nck=f3=8SQ@%l>15p%Xoytnks;MkrQJ`6T31H;fuO#pNAfE-KSZmMP3@ zdV?m2M1M4Ni5x`?cm$`5?d(F2Rn)Mc246oiYT~1vAZvcRa4>RjEnY z8NB%znB~)cz7NJ}j%6vQisQW~_;r>G41dCv^mugKaMV#j1*e|WaXQam%?@nx(d*kR z@V)Bo;iEq2(L+y3>yNCS^$`W~tUB=5o*d2ik0YLVGl&)hCY;~+g$9;+2nOIL&ClSa zTuN#y(f|?&^pdT#|Ez4cA^jTq_=Y?0|BCwVa5kW}eTrH&O080>)LunxYP43(*4|X@ zy@`aP_O8aBMb+LrYL6iH9yKCnjTi~R=Y7B5`2U<|Ki74x^W5h?g}(n)O**8@D0X7% zVv1o98ti#psHl7+4G@z!_b)r-6_a96mysLGA`sTw(Ba-7OH=r)+EA&MQ`L_4tX0x^ zh97RKX4$v-B12RoBIkh@0H=2|>nW{0opXR%ix!QX23G=kLL=*dp`Khm?uTVT%=5qU zl4gELxb+XDu+fPBS<+5c=0N?{hS8o(nA9d9b3JdK`8G~5DcxJQ00$!y=d99=`xY)w zp-=NHMv)Qjt9j(z87hEilFo(355}q1@Z61JoxzK+smK_6!asIS7%bE2S{&+M-m`xqaH!!UdGuQ{MHaAnI2l0j<#hiPzCyfQYWoGe0;pPvFm9 zT-J;f{>>*8e=-gaW$IrStoFN!%a~L;Qa~w)fv1KAARO8J#5#Sm8Z{j z#VBuH3O4+H@pkC~JCMTsw_Q%vgPKQz$H#I*U>;hwTpuL-h7cqpS2-lF(*F7RD~i67 zB&2SfG7B>msr15LAdW>s7Alqm5I~DQGk<7+a$^#JgrrLh9s~7$Xle9d(Mgo*vsD77 z{XEUQAQbTUUiSPIpf#1~#b0Qe-(P5Lc5fhIUulw)PBL~)2q*Ap5kw1*lb26_XnqN}@H)z34&U z?4Hgp4HD1g^PpCA;OR=)fDO?6y6cAq?_jC(#}EdCh`QU>IwX)KN;^qF`M~?}m)5JT zP`Yj~INK=K`7hKcie~x|80v(_XO498{ z%^s9ZU(A!qoHI=zrty!fwL9+QM|?owwFzMRf6~AS2FK|Vrouv>ZbLV&|7K8fNZY)u z_sZaM(dD5>N()A^cp|44v_qzt)7Vu!$_hUiHdi!+Gsi3aMT~4UHg=v|7Nr$)@50{9 z>sQQ{(kob4m;|9pD;r0~k%Nr~Vsm~KY04(B>;tCiYDmM}oAtAst`I3MB8-^1o2*4y zg=}#5@v$pYJIkkeVAjPefCS@EAtJ8tvw2n~bX5N#2M1`#1Ca#)q+jL=(#NqNRit|l zV;QlZ#8SMO5qsok2-sFZGbtrhPJ{>uIw=e`rw!G+gd*hp>*aCy>? zvFOe+_1UcHYR?BD$%7t)pjqZN4t<aVv#X#4^luROO`zvzKdla_cXG4rX=K-zCu|J>K`0jQkZn&>rh- z>q*zkKe)=0ROa|p#N4B4M6USBET+lU%s<_26PUl6swgZeP}E@(*;cNu1~k7XyBjLZ z`HpJ}_F3G%AAjI!fpx$zz!qTGfrip=ZgX!>06=%A<7x8awY>DVcI!75wXO&#Uzb9A zHpP!eJ}**?zDle*Ov-CgAC3N^=C%f#m_;69M2Pse-+jVicE?|p7pHyz$4(J<~(i=wYOGLEU<%oiQ19w`jb~5lv3X_mQZu-QAF5j zyURDVYTRjBr8W-84N##WY~6PKt5@Up{EN%>@?_At1##d*91dmXm79_9O;V`0J-&J- zpK)+*(;)3(T5-M#g*qaET^f{}zKnLz!3M-K{r>y{M~!|6dK$UU0{mKS1)jh089wp^ zYd{j+YOQw%d+yQ?e0FVr=dgLi!3zTw+BkM`_el7$gU;YJ$1KNg&gTayx7TlO%4d!M zt?uykNvryn@^{l4w$F`sbSjz%J*O15cln`|JisON88##nfPU9$(VI2@VJ)y4#^{%M z6js!13fnZP*!`ln;HMR^%EyNq@W#*DCvh1TYB6&#vZSlKwm19H~JQ6?WU;JO# z5kR7Ld^&MB&Ca1I>0t!MCA?GexWe&E#x3p=}c>M%Vwn0Sj)w5+(Zh1v781%P3 z*?dm@r{9L5rIzX@KJW$=;>v3tbcad25&#QagCiBE75^)48;W>{K&Dj_?+f*XXBZ!F zR_V>eQ`v_Q#P&x7ry?n1VXlqKT`eXnzX*Ztign-ZO&3fsm%QACV)MCjOiNwT=Rf@? zyE>F^p~Y9X(2UW~pQF3J5l>#Y@4~0|SZ<;CC`X;(%hUO7L*CnkziIFKcH-Xvw5TOh z`hM3OpEVQYrK*@}CPu^F?*}utYCbXE)Y)67QZjfd%Vop$A`N=Hdo30DIIr^(gHF1G zvq(BMeUX^Ne34-3H7~e>%PNPbHFdm}aWQ!^X#P(YL}d5S-T0_|l4n;p!5Gm?U+7fP z!jB{4W`p$yzKYNU-Cx{?4&c<=Xpg`J$C=E?Pll3-8jyKO;5-)-tLhVDbw&n{oQEfp zof$G!Uf&fSJbY-BLUn8LXFT7c=|_TU%MEA`XW4~ncv(2+JJ8ZUq^W_ev5BP!uL%Av z=w6fluf(qR<`3BpQd!vW)pW8Y%HvP2CAg_7n2!jK^-iTP%`tGDw?^{a6(7LAxz1Rv z3)Vtc$M>Et-r$@L&XwlS{{#* z%?2{~t{;8&ntME~&j1RJ1vVdO;f_^L8v1izz0`GA82%;8E0G;Q!Jbk=Rk*Q9ykP{9 zwvb)l!HhkuHYv7Ct~*nRc}1w4!c$`~1^wOja3=&Y)f{t1-=17-oH(8FS!4=SyXujR zcIH(75Xghz3@T(Jzoi37k;X zrbjpVDeqg4O?>>{{~ew0*i0`}sgF>o_H#p@!M32sD=a(I5fiV}V0=RFX)h@kwli7; z{v~k=mD0CJ@X^Ot(aifPRR8Z|g=rE&)N^HKn|fz(F`b91J~!2` zpdH(30GLb5bz4^RmU)Qg7O?xh9x>9j);4v{eWiVeBtoCjmo1|`ldGQ<_GkYnREV0? zsed4$`tejon3!}p!kRPMC4qh3`uXcD?cG!Wnq;f%-WdXr5n&=$7Hf3o7kgRFmrzTP za(2#kiBiBUD&q6^jT@>qc~U25YJpM&x~wo)d1K&e6S9=jH+B`JWUvQAqO;(17FZBK zcx^2vQ;a>m^3e;)2OBOjk*fw3<-QOGF4nJh-Fe7D@)QHwu-olV&mk**>sJ#6D_-mi z1iuSrns!P{xpKoTmeFUY_g+8@<#l$B09pU8vjyc5#dh9+T8)M76ckFg{#yX@SDV~_ z(eN_~_V>2%zB;6U?-2mK>NM_WQG4enWns>yR_=e-!J)2Xsl~^w{mOUq`;0#r6oN5}O5)y#~?c?S*h_@upl zQSy^#c-Szn|MpDkzu#dd+?fu+QO0NO2y=9U~R?6EJ(#tAM3y9Y}Pi`s}tCNwwa2 zq;(h27Sf=*EPTSC>bujBTN7ViPPcB#Ecj15jlExHvqY+ehUaeG>K1x~-ZQ!Nl=-kn zbP)|!kLykq(9nektRqYaa2aJ4Y+HX~@SiSv>0jRh`im5=!Js~^^?mSxJKTMHjY?v8 zVIE67<#Il@C2JLsypu8oPFN?4$Q&t=oadNY1q>5`q0I*^QX6R zD4HPWPxKb^tRKjS|8J1^U8ka6>G!fSg0%b(KS1{x<2i#afYzM<)w5L?N~eI>r8^bS zwB=5inr;qxZGSPSOpxdJUgs4XN6ekD1eco*;qL{MrcO!6N!%)#{81Sf_ZdZ0`s`&5J~>IzYFU(_%TMg&eCB69q)8it?8MkVAL;BV zxo%KgVZB&PE1{6*vo?tl;p6&BEidXAq~a!gR4^!UgbY4PvXoo}g@|oO-m(Et2NS!F zkxPjdsj0BVqIu_(Px80y`06F@sNN1iwwb6x_Vg18aeQURHJ&uTdSTCpvrO)&fEYq6 z3kicA_FqElr+57>tMvTaU`FZ;BtE3n-*3WeS*+rcB3msBs|q#%!*V=^&TH|tO#lug zbPPScgFy-h)yjm{HnbHr;gvzdYz}3F9Hr66nP~TxkIrmX8^Z`nJ)!Zys*x~i5yyiA zFG+l@ZEzN{bPSEKyJWqYPfKh0%D~e4Nnf9$+>x0>>jaPv0B}yxMjKK9dN#INB!6n$ z#~M#K9cC)sbjALErQN{AgfN~}r#G-nd^BSA!%)DPSJ#9DdyI8_|DY6uymG~$2jpi$ zQ>-1y;*M|Wxt4FZ0VYXZ%}P5%g)eAZQA2i3lr@%Rh9>Gi;cZ+?2|6M>ll z>J}}1wB{2?<>u6mTRIXu8b_BX{J-6><*dVT$eTBT8J{L&!+3C;BD1rvuYuhHF;8{8 zQ)^BjmNlgbTkeqPm6b2sPbI>@NHly0`qJ%m4~6m$k2 zIZ(#DZ)glNu@M>{^c+DeTglVV*KE3 zz`=sp7EzVg64RmB#$|Cuymg-H0)A)kf%y1%`aw98n5=6hg=p&P? z9q7RG#bI#wICqbtjv;#y(GF+nK1a}HbB-7tdu9GF$2Pgu_4T~DPkel(q8XK3CJq(1 zAC&RiyOk-5UhcMTr#5%4ji@2Unq*H7_EX#ugj1x}^sm_IViJ>6VtXUE;R+luu`SxS zid2!9y_hO<`fuf*arD<-?Ha_lOOseuPzM8$bU4?A*sC9cZMMek1n--73oL!8@)pjyO^GmWJ17DxbFwwZ?>PB5AxD)L!t0M6y6OJ=5Dsw^k3~)39Ki*1MN7*Gu^uS zcn2ap+}(4ZHAsif2>)KEH>p06lgOv6=0G_2N5}_XW_dM9l$k0lJwQQXB6!9yMal|@ zbXo@n?{+f2J1Zi(fb&EZvlPlPkN^fu8K=Oj}FISvK!kkR6w62xmiS0Lm;_ZMs)w*hs^uk@r zi!K5FkcuzOzxd}}b#6y?Y{2IK?54LDxNG%A1Hq!38nzu+3^^G z<9OWrZhVDE;@Z)L7>Oi}<6d6_9`57qhu@MG<&LdMm}#<#QEi@u&Rwx*`77q-=GEcA z5F^+3wRv~92WIm^XWqu4T34W-bOy5BHI>DC-7&le9XJIc-9a6loj73@iXV;nNy(qJ z_}?B;Rr^s#lI0NVq)>6Gt&Yoi$uQ7-F1?^sOvJTP^G;16O92yqCD%ml3T*6hMT^cD zRhluHrmM&l%HA}1HO(I6d}*G`{Da!T;rmwPC#YHqvN=t^<_i>b>q;Ga&Zq?e7X9hi z^?Kf3tyT`bv}nw;|Liab90mNtt3>fU=4x!t!~U%^>pt;8zx2nV9QVoSvRJMyNuDV4 zv5Vj@Ls|1FBE98xkWy@yx@M=zr+cT&=69&P=^Oe9ecMjl?YCGkkH3tAX6!->L<26a z-Kg!x>&h_wj#OmYG;#eU#N4-U&PK*y#A8;EmkrSyt!&*P^jcaJE-URVhK(k7!I#}7 zc=cQy|EzTJo#&*)%~(VeI)E)Fhz_~56ulIyB(s=2bG$Zhg}O%hcQ48ZpVFc$ty_g! z4u*znqi}Gr_df07jntKq-7VeVMQ z)(4M;)lp~vVqfa%Obd9n-rQ>an>tT`U`AzYOGZSDWm!PYkg=p9;0|orKEhTn=sgt0 zhEQj=P+%$H{P0mS#W^G^8rz;o_v)Z*!`XJw>E^K0rOCb_mN4MOJoyKdyMC7uIc9qs zcSVNQ;d+48Hzg}l)fE*^wjps=YV?!StX^Q@=F8I-e<4F+{+B)Oc60S=0(*9F(Hart!5pnRV_aE_nI zmVuGYkmwOX`_Pu(_Iy=PLlpa;@!Cpv8tCA_a?yVJ`_lSP840FezVboo0}!P7RvJ_R z%{uS@n$mvYl=vgv5%DPIfOfiRRw~*9b@9XND9E9zK|!HOJx+0-$jkGj_(bsap={g} zQgi#dC#hM3c>CmNhb(dN^QiHh$UML0pU2DRz+b5=D+ zsWOWdnM5vx4IeU1IiE;bL5t6G0A|xb+X}sS=8pMK%zk{f4%bmba?HMRt}ek7-rEj< z#fvb0@~Yr8mUaE@v77VUg8ua)b|$=-eH(N0^zd8^ZAeN-cw2_QKw=y(qF13Q6{n|f z|M!)oB>&Kr5_DKHr=^+*rB_gt7sZaMNyJ}&uajMfm8{TL@{0JBCfq;$D#C+yezLb; zd|T_|=f&VkKRy^BFvXaF=-a-5{Z`eS_5AaebP?Q=PG&*LD`(%8Pp%pH^}ee7-`+;_ zFL-A9o*_P$zCSMt-D2j$k$5#MG<@eFcOUf4^oNC|Q?dlH2houFlWYcmg=05|%bh7? zeM~}MtKI5_4Fr&Wj2)r15)|}*x_nSwq*UyI@@N`xST2oVpT5N!XHi{}D^t3LW z)QWYzln?}cv`F-@tpJ-bx;2s|w(^WsB^_*bQKh+#fV_AwFOu0j+L zhwf}0{96B>DmmoSin7%d_O_O{J?}3_-K{!xpZ7NQ_1O(piGa>BCsb~N8fz(%;B5`S z><96Y71j{(#eq3vk|K+edR73!{2M5dH}c1Qy|cIIhJzvK@RXPKN|HlJ7Jc}YZ)x@R z=6GiB+z>kK;_-@eC`_D*ELPO!BWtwUb{4TlSlBi^{-ZU3lRqhQOT4Oj1Jq$=W>0VM z+{dD6A_66!;&N;G?v>?NJnBa*+$P)Xf=(NM%N(uPBV1I>u+xMQdzMejPXd3a z9q)SU?37-g=>@v+(O*b`k6cy3-Gpik&WnP&pu)H1!R2pc?@srJhOS1qYmqM9$E}w4 z(b&5mLotm9<t93*u}%_?&I@<({Y~xI@y}YYbBk;1;BMyD z;^O|%)9HzryP2v{H^`S(=iy}m#Zv?v-Rx5NHb-kYv%5T}@YGaUER3yRC;>xehpD!es1gMDY)rLAZ4`DY_hw!C7jR>u(TKM-eB8GtSm3a zstZT$5maSzy-rWzwtu?^K)ymZW95bGe{|MtH1A7e^2Jj zh&aEAV%iw0dSO6u2A+JGRA_OB+bc^SPqbZ!3Txk_Z=2>rQN z=Vock1nN#SB$^R)M-Sle9ulB-9$_v3b(duYR-=9@OfkQ`+}vu!_ReUIg6erUr9` z7^=Hgn6q0LrwQ1a{$~BSfVntOrqCTWDg;%v-waLrPIGb1|1^KhHvi0K29+EG$LGB| zUTFD@uEmy}4Gw1v9*w+?J$S?KW>^EXx)N2+TC zhONu}Nda!+B~dT04W+#&CLTBJcxA6 zPcr?5?VaFqQp3@hM6^I-40PiJ{kS5$gGlOXz$JK?u_l-{sk z^&S$X))sE=9Q3;%q{FW@Czd1#hf#5VtC(ppQgOw7E`vkrTc^}|fQ-3!v_JhmiKM|HrA2=Bl&?)2e)`;lG^#ZViDV4_R$p6~Js? ztK4U6+^#q|xg*yn)6VP}v(xi9#8;AAr`&=Zn~=W#0?9ANmZ)LzXh=a~C+wtPXUDyM z6h@*TXZ5@<{^5>Hy!mSll$Etg)A9XMn_4$PVj>{!fBQm>(Uu>GWFg-A1U3%q- zIW{nU5#n6K@#^b}C`pGruWVi~g0^OSuGJqe-QckH;(U>ljsE?j&C@rLrKlj?dw~zF zSm$QbZSRUF!86E4BvL`}S%M4Jt+2-qE~L|xS~P;Wva@JQTSLutv&NZLtoo~^Vt0tb zmjFzeDM|3wz>BmVNP=3eCmeQOYTx*7sZ1kyw%Bu;z85%+ zq@9l@iwHik5aU-k`WKtEIk@&K@n2U<)!}T5MvHm-%|$QF;vQ0)G6^N?rpU-HIrwZR z;|I7qQ_QvKy}ZrK1%N&Zke^v|DL2$UYEX<&c;LkykuJR<52H7suV3J^j*J6JKh0PN z#Oy6qY&&6Fk5bo94sA$KmQvJsD9MwS`}qFif2tL-SS$0dpI?Zc(v;*oAHxCD4|MA- z4F(8{p5fONvZqT8@lF=nGL{2+4*D_s$B(k5}$UmeZ7|j zD(=(@Hiu`Ke7^e^)z#Ito@z{&pknX+4Hje$XR;()V40J6`k3|ScoU!Pabun5@9%mP zmE0H)8ujqF3@j`{ssH>D@QaMH5^8TCZ^LDO{!!%PNEn6MW7YyC+i#)^Ow8An7w4hu zJ@(nP%+vtDo!CBc0r?3jw%d0#ygUU24b7gQ#AL4HJ^wT?jFCKsgZ06I)s3?0qQi$N zB1!(9M3$G;5+Nl%L^iTl=&#ok5~E5*pOeBWrLW$koe8@$Zw6)W)1O4YY46?P5(SAV zQT%^;4ds0^Zq*?DWKH2F&`MIl^ zWEn%ensMHAjJ3`FI1qZl*{@K`N&MXJDJ!0e+qa*e+GM{4^Tk)bR+MV8-stG&VK7`i zKAqZPTO9O+%>d^;IPwo^(&- z+FY-X4}F7=lL%`%MHaXyLv>oz)~+?>bxYyv?uV!4Q$xcnTb0^<-wehR<%%U;Jo>Og9FXpA z7+m9CzO^|~+=lCrvnjn1kK-e#&g&3sd&NfXGTJ0kul{Ll{gzl81UqJ8_%IE*41!RmC`9Gbpt%HjA}7%@P?8(&foUCm1E*2&oP zA?!^}75N2RqeGh;addDgdKQg0I&z5<894GRqif|!!3NMzWJqa_F-WrD_LYmrp1Hn| z-7Lagf`8mNvVumy?6;R;ff`k9|FlT-ilx{F(5Q|&)E(*xCmJ>xaZjpw`2yF}9d;*_1R z_t7&i=K$3fV-{5>8-EF-Ja#@rS&T{rkI-8f{%WI`b)?cK3Er*wIuc1Bfos##&3)2p zP)wC7<6gKp`E7wy8J?h-et+SU-WxMo1qIc0l;u17=TaMHv%A&z!NcLz_iUq}^ALcRQGp zO3#doE5|#DE|A17N&RrT%=+<_Q}UAjR}>vMemq*pZZSq4keZc7wkj?Tyw0KDeUqAX zGZq}z9c5m3xA==aFv2W4<~sN*{{4?ULGuufMXW;sxyI+iSm?i7hO@%9UYV(+`Q>Nos%vF8g!Usd2P z;4~-_8`!v6@(tpz_4Q(RM26{pkU|)UyNr=ihw-ukPHw<UpU+AXw!RaEXpRZ`!! zYg8dc?5IoMJQ2hB>hz-+?AEJm77QYbCtHtF_p0^ms1x@`UMtAF;}i{5AxiVl9DDpj zl)*5)Ng<4^TDD4i$KlbhQ-E&f_bUF+KzD6OX^sBayL(UNNV{|$loE2{yD|2UlLV?J z@Ig(y`w&7yeCv-`?uUV^&4RXrHsy&k@i}adNm;XgZ!a@xnvjG)yI_LjRiUqV%gYIh zTK1D&S;x6J%jL!y86wNhlMbcxK=q;CDA?OTEGBAUdVZ$JYB=ElyA%2HUEC_MuhHw9 zfP)~1CR0x8cHDC6+A8>NSYxQ2z$vA2UJn>pzZdq@C^#Xoh zdqe|=^fm{HmPOP#EjbbH25nT$CZP%K7azkF(mG$3cnFnvV!sc|V%0fVJ$l8KpsRTu zO8L$dH*_-Z+K;9`{p&$Rca2+turcwk=8~cyK0rNk55^Im*gM#q=U-^i{<0)$3uHRn zH_J=aK6A*?VLE!3Hi&0;r$KN%3v1#-jxKH%pl+cXKmYXX5gm8@@y1#xCav0t9od(z z48bdZip}mIsrXig{8+&@W$YEwRGTr);Lw|2E0DvqPPPlK%Q*y-eRpGMtZQa*dHiOB zm&!{b3*PxxlCIhz1he8Qe_ituN*=VlqosmzZgl~c62oxde$5Fm7!q248t=D%7jc(T&EAIMN0uPq5-R!nvG8HJu)x# z2l7Bbq!k*ScO@_{>}1p$JUt%!O}$q309mlnN$TVTn`5E)<0cDkchxB5N9ij>^1C4R z#OSfF27Mj!AhRy0lnNE`7ddO(RS@~@s9$AV72Rat8_}SIGlyS`bO`b4OLVX-@+it2;l!x9Kc))(Q=DJL~4JFw^ z(QdVI!ny}MfWXZX+W7j09)ZfAZ3qAKqN*1(7zzgC2SM1%t1q&GJt^ZKz5~NjeW$5Z JrC|B>e*nH7H{}2T diff --git a/website/docs/reporters/jasmine.md b/website/docs/reporters/jasmine.md deleted file mode 100644 index 6b4e428..0000000 --- a/website/docs/reporters/jasmine.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 6 -title: Jasmine -description: A jasmine JSON test results report ---- - -A Jasmine JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/jasmine-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/jest.md b/website/docs/reporters/jest.md deleted file mode 100644 index 1332b5b..0000000 --- a/website/docs/reporters/jest.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 4 -title: Jest -description: A Jest JSON test results report ---- - -A Jest JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/jest-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/junit.md b/website/docs/reporters/junit.md deleted file mode 100644 index 32286e3..0000000 --- a/website/docs/reporters/junit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_position: 11 -title: JUnit -description: A JUnit JSON test results report ---- -Coming soon! diff --git a/website/docs/reporters/mocha.md b/website/docs/reporters/mocha.md deleted file mode 100644 index 12a476d..0000000 --- a/website/docs/reporters/mocha.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 5 -title: Mocha -description: A Mocha JSON test results report ---- - -A Mocha JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/mocha-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/mstest.md b/website/docs/reporters/mstest.md deleted file mode 100644 index 4457945..0000000 --- a/website/docs/reporters/mstest.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 13 -title: MSTest -description: A MSTest JSON test results report ---- - -A MSTest JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/dotnet-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/nightwatch.md b/website/docs/reporters/nightwatch.md deleted file mode 100644 index 288c255..0000000 --- a/website/docs/reporters/nightwatch.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 8 -title: Nightwatch -description: A nightwatchjs JSON test results report ---- - -A NightwatchJS JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/nightwatch-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/nunit.md b/website/docs/reporters/nunit.md deleted file mode 100644 index 270a568..0000000 --- a/website/docs/reporters/nunit.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 14 -title: NUnit -description: A NUnit JSON test results report ---- - -A NUnit JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/dotnet-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/overview.md b/website/docs/reporters/overview.md deleted file mode 100644 index 22707f7..0000000 --- a/website/docs/reporters/overview.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -sidebar_position: 1 -title: Open Source Reporters -description: CTRF report examples ---- - -We have developed a collection of open source reporter plugins to generate CTRF compliant reports. These plugins are specifically designed to integrate seamlessly with a wide array of test libraries and frameworks across various programming languages. - -## Easy Integration and Customisable Reporting - -The mission is to make the generation of CTRF reports as effortless as possible, irrespective of testing tool, the official reporters offer: - -**Cover Multiple Languages and Frameworks:** Whether you're working with JavaScript, Python, Java, or any other major programming language, the reporters are built to cater to a broad spectrum of testing frameworks and libraries. - -**Support Various Test Types:** From unit tests to complex e2e, API tests and so on, the reporters are versatile enough to handle different testing methodologies. - -**Configurability:** Recognising that different teams have different reporting needs, the plugins are designed to be configurable. You can enable or disable specific properties based on your requirements, ensuring that your reports are both comprehensive and relevant to your needs. - -**Open Source Community and Contributions** -Our reporters are open source, ensuring transparency and continuous improvement but also opening the door for contributions from the development community. We welcome you to contribute to these plugins, helping us expand their capabilities and reach. Your contributions, whether they're in the form of new features, bug fixes, or enhancements, are invaluable in making these reporters more robust and versatile. See Contributing for more information. - -**Documentation for Each Reporter** -To help you get started with these reporters, we provide detailed documentation for each one. In these separate pages, you'll find specific instructions, configuration options, and usage examples tailored to each reporter plugin. This will guide you through integrating CTRF reporting seamlessly into your existing test suites and workflows. - -## Missing a reporter for your test tool? - -While our collection of open source reporters is extensive, we understand the vast landscape of testing tools and libraries is always evolving. If you find that a specific library or framework is not currently supported, we encourage you to get involved! You can request a reporter by raising an RFC, refer to the [RFC (Request for Comments)](/docs/contributing//contributing.md) docs to propose new ideas or request the addition of specific reporters. \ No newline at end of file diff --git a/website/docs/reporters/playwright.md b/website/docs/reporters/playwright.md deleted file mode 100644 index 9a4122d..0000000 --- a/website/docs/reporters/playwright.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 2 -title: Playwright -description: A Playwright JSON test results report ---- - -A Playwright JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/playwright-ctrf-json-report) for upto date information. diff --git a/website/docs/reporters/postman.md b/website/docs/reporters/postman.md deleted file mode 100644 index 09edac8..0000000 --- a/website/docs/reporters/postman.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 17 -title: Postman / Newman -description: A Postman Newman JSON test results report ---- - -A Newman JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/newman-reporter-ctrf-json) for upto date information. diff --git a/website/docs/reporters/selenium.md b/website/docs/reporters/selenium.md deleted file mode 100644 index 6087a83..0000000 --- a/website/docs/reporters/selenium.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 16 -title: Selenium -description: A Selenium JSON test reporter to create test reports that follow the CTRF standard. ---- - -Selenium tests can be written in a variety of programming languages, including Javascript, C#, Java, Python, Ruby, and others. Because of this versatility, there's no one-size-fits-all reporter for Selenium tests. Instead, you should choose the reporter that is compatible with the testing framework and language you're using in your Selenium tests. diff --git a/website/docs/reporters/testcafe.md b/website/docs/reporters/testcafe.md deleted file mode 100644 index 79a4e6a..0000000 --- a/website/docs/reporters/testcafe.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_position: 9 -title: Testcafe -description: A Testcafe JSON test results report ---- -Coming soon! diff --git a/website/docs/reporters/testng.md b/website/docs/reporters/testng.md deleted file mode 100644 index f33f486..0000000 --- a/website/docs/reporters/testng.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_position: 11 -title: TestNG -description: A TestNG JSON test results report ---- -Coming soon! diff --git a/website/docs/reporters/webdriverio.md b/website/docs/reporters/webdriverio.md deleted file mode 100644 index 96e4c06..0000000 --- a/website/docs/reporters/webdriverio.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 7 -title: Webdriverio -description: A WebDriverIO JSON test results report ---- - -A WDIO JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/wdio-ctrf-json-reporter) for upto date information. diff --git a/website/docs/reporters/xunit.md b/website/docs/reporters/xunit.md deleted file mode 100644 index 245822a..0000000 --- a/website/docs/reporters/xunit.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -sidebar_position: 15 -title: XUnit -description: A XUnit JSON test results report ---- - - -A XUnit JSON test reporter to create test reports that follow the CTRF standard. - -See [GitHub](https://github.com/ctrf-io/dotnet-ctrf-json-reporter) for upto date information. diff --git a/website/docs/specification/_category_.json b/website/docs/specification/_category_.json deleted file mode 100644 index 72b5bdd..0000000 --- a/website/docs/specification/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Specification", - "position": 3, - "link": { - "type": "generated-index", - "description": "CTRF specification" - } -} diff --git a/website/docs/specification/baseline.md b/website/docs/specification/baseline.md deleted file mode 100644 index 1e95a19..0000000 --- a/website/docs/specification/baseline.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 11 -title: Baseline Object -description: Details of the Baseline Object in CTRF. ---- - -The `baseline` object within the `root` level object contains information about the baseline run. - -The `baseline` object is optional and is usually added by **consumers with post-processing**. - -A baseline run is used to compare against the current run. - -## Properties - -| Property | Type | Required | Description | -| ------------------ | -------------- | -------- | ----------------------------------------------------------| -| `reportId` | `string` | Yes | The ID of the baseline report. | -| `source` | `string` | No | The source of the baseline report. | -| `timestamp` | `string` | No | The timestamp of the baseline report. | -| `buildName` | `string` | No | The name of the build. | -| `buildNumber` | `number` | No | The number of the build. | -| `buildUrl` | `string` | No | The URL of the build. | -| `commit` | `string` | No | The commit hash of the baseline report. | -| `extra` | `object` | No | Custom data relevant to the baseline report. | - -## Example - -Below is an example of the `baseline` object: - -```json -"baseline": { - "reportId": "123", - "source": "https://example.com/baseline", - "timestamp": "2025-01-01T00:00:00Z", - "buildName": "1.0.0", - "buildNumber": 1, - "buildUrl": "https://example.com/1.0.0", - "commit": "abc123", -} -``` diff --git a/website/docs/specification/environment.md b/website/docs/specification/environment.md deleted file mode 100644 index 5214470..0000000 --- a/website/docs/specification/environment.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 6 -title: Environment Object -description: Details of the Environment Object in CTRF. ---- - -The `environment` object within [`results`](/docs/specification/results) is an optional property. - -## Environment Object Properties - -The `environment` object contains the following properties: - -| Name | Type | Required | Details | -|----------------|----------|----------|--------------------------------------------------------------| -| `reportName` | `String` | No | The name of the CTRF report. | -| `appName` | `String` | No | The name of the application being tested. | -| `appVersion` | `String` | No | The version of the application being tested. | -| `buildId` | `String` | No | The unique identifier for the build. | -| `buildName` | `String` | No | The name of the build (e.g., feature branch name). | -| `buildNumber` | `Number` | No | The build number or identifier. | -| `buildUrl` | `String` | No | The URL to the build in the CI/CD system. | -| `repositoryName`| `String`| No | The name of the repository where the code is hosted. | -| `repositoryUrl`| `String` | No | The URL of the repository. | -| `commit` | `String` | No | The commit hash. | -| `branchName` | `String` | No | The name of the branch from which the tests were run. | -| `osPlatform` | `String` | No | The operating system platform (e.g., Windows, Linux). | -| `osRelease` | `String` | No | The release version of the operating system. | -| `osVersion` | `String` | No | The version number of the operating system. | -| `testEnvironment`| `String`| No | The environment where the tests were run (e.g., staging, production). | -| `healthy` | `Boolean`| No | Indicates whether the environment is healthy. | -| `extra` | `Object` | Optional | custom data relevant to the environment | diff --git a/website/docs/specification/examples.md b/website/docs/specification/examples.md deleted file mode 100644 index 43d90ec..0000000 --- a/website/docs/specification/examples.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -sidebar_position: 14 -title: Examples -description: CTRF examples ---- - -### Minimal report - -``` js -{ - "reportFormat": "CTRF", - "specVersion": "0.0.0", - "results": { - "tool": { - "name": "jest" - }, - "summary": { - "tests": 3, - "passed": 1, - "failed": 1, - "pending": 0, - "skipped": 1, - "other": 0, - "start": 1706644023, - "stop": 1706644043 - }, - "tests": [ - { - "name": "User should be able to login", - "status": "passed", - "duration": 1200 - }, - { - "name": "User profile information should be correct", - "status": "failed", - "duration": 800 - }, - { - "name": "User should be able to logout", - "status": "skipped", - "duration": 0 - } - ] - } -} -``` - -### Comprehensive report - -``` js -{ - "reportFormat": "CTRF", - "specVersion": "0.0.0", - "results": { - "tool": { - "name": "playwright", - "version": "1.27.0" - }, - "summary": { - "tests": 3, - "passed": 1, - "failed": 1, - "pending": 0, - "skipped": 1, - "other": 0, - "suites": 2, - "start": 1706644023, - "stop": 1706644043 - }, - "tests": [ - { - "name": "User should be able to login", - "status": "passed", - "duration": 1200, - "start": 1679812091000, - "stop": 1679812092200, - "suite": "Authentication", - "rawStatus": "passed", - "tags": ["UI", "Auth", "Critical"], - "type": "e2e", - "filePath": "/tests/auth/login.test.js", - "retries": 0, - "flaky": false, - "browser": "Chrome 98", - "extra": { - "customMetric": "200ms" - }, - "screenshot": "data:image/png;base64,iVBORw0KG..." - }, - { - "name": "User profile information should be correct", - "status": "failed", - "duration": 800, - "start": 1679812093000, - "stop": 1679812093800, - "suite": "User Data", - "message": "Profile information mismatch", - "trace": "Error at /tests/user/profile.test.js:45", - "rawStatus": "failed", - "tags": ["API", "Non-Critical"], - "type": "Integration", - "filePath": "/tests/user/profile.test.js", - "retries": 0, - "flaky": false, - "browser": "Safari 14", - "screenshot": "data:image/png;base64,aGVsbG93b3JsZA==", - "extra": { - "relatedIssue": "USER-123" - } - }, - { - "name": "User should be able to logout", - "status": "skipped", - "duration": 0, - "start": 1679812094000, - "stop": 1679812094000, - "tags": ["UI", "Auth"], - "type": "e2e", - "suite": "Authentication", - "filePath": "/tests/auth/logout.test.js", - "flaky": false, - "retries": 0, - "browser": "Firefox 92" - } - ] - } - } -``` diff --git a/website/docs/specification/extra.md b/website/docs/specification/extra.md deleted file mode 100644 index 328a2b4..0000000 --- a/website/docs/specification/extra.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 7 -title: Extra Object -description: Extra Object in the CTRF specification for custom extensions. ---- - -The `extra` object is a flexible optional property designed for custom extensions. It allows users to include additional key-value pairs that are not predefined in the standard specification providing a powerful way to capture and include custom data. - -## Structure and Flexibility - -`extra` is an unstructured object, meaning it does not have a set format or predefined key-value pairs. This design allows for tailoring the information it contains based on unique requirements. It's possible to add any number of custom fields with values that best represent the additional data to include in the test reports. - -## Conceptual Properties - -While the `extra` object does not have a fixed structure, below are examples of the types of custom key-value pairs that might be included. These are illustrative and should be tailored to fit specific testing needs: - -| Example Key | Example Value Type | Description | -|-------------------|--------------------|--------------------------------------------------------- | -| `customMetric` | `Number` | A custom metric relevant to the test, like memory usage. | -| `relatedTicket` | `String` | Identifier for a related issue or ticket in a tracking system. | - -These examples are not exhaustive but demonstrate the kind of custom data that can be included in the `extra` object. - -## Example - -Below is an example of the `extra` object in [`results`](/docs/specification/results) and [`test`](/docs/specification/test). - -```js -{ - "results": { - ... - "extra": { - "logLink": "http://example.com/logs/12345" - }, - "tests": [ - { - ... - "extra": { - "relatedTicket": "Sample diagnostic information", - } - } - ... - ] - } -} diff --git a/website/docs/specification/insights.md b/website/docs/specification/insights.md deleted file mode 100644 index 3d5cfc8..0000000 --- a/website/docs/specification/insights.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 10 -title: Insights Object -description: Details of the Insights Object in CTRF. ---- - -The `insights` object contains metrics derived from multiple test runs. Insights help identify trends, patterns, and changes in test behavior over time. - -The `insights` object is optional and is usually added by **consumers with post-processing**. - -Insights are computed at two primary levels: - -### Run Level Insights - -The `insights` object within the `root` level object contains metrics from across **all runs in consideration**. These insights provide a run level view of the test runs. - -### Test Level Insights - -The `insights` object within the `test` object contains metrics fromt across **all executions of a specific test case in consideration**. These insights provide a test level view of the of the test. - -### Metrics Definitions - -See the [metrics reference](/docs/specification/metrics-reference) for definitions of the metrics contained in the `insights` object. - -## Run Level Insights Properties - -The run level `insights` object includes the following properties: - -| Property | Type | Required | Description | -| ------------------ | -------------- | -------- | ----------------------------------------------------------| -| `passRate` | [`metricDelta`](#/definitions/metricDelta) | No | Pass rate across all tests. | -| `failRate` | [`metricDelta`](#/definitions/metricDelta) | No | Failure rate across all tests. | -| `flakyRate` | [`metricDelta`](#/definitions/metricDelta) | No | Flaky test rate across all tests. | -| `averageRunDuration` | [`metricDelta`](#/definitions/metricDelta) | No | Average total test run duration. | -| `p95RunDuration` | [`metricDelta`](#/definitions/metricDelta) | No | 95th percentile total test run duration. | -| `averageTestDuration`| [`metricDelta`](#/definitions/metricDelta) | No | Average duration per test. | -| `runsAnalyzed` | `Number` | No | Number of test runs included in the insights calculation. | -| `extra` | `Object` | No | Optional custom metrics or data. | - -## Test Level Insights Properties - -The test level `insights` object includes the following properties: - -| Property | Type | Required | Description | -| ---------------- | -------------- | -------- | ----------------------------------------------------------| -| `passRate` | [`metricDelta`](#/definitions/metricDelta) | No | Pass rate for this test. | -| `failRate` | [`metricDelta`](#/definitions/metricDelta) | No | Failure rate for this test. | -| `flakyRate` | [`metricDelta`](#/definitions/metricDelta) | No | Flaky rate for this test. | -| `averageTestDuration`| [`metricDelta`](#/definitions/metricDelta) | No | Average execution duration for this test. | -| `p95TestDuration` | [`metricDelta`](#/definitions/metricDelta) | No | 95th percentile execution duration for this test. | -| `executedInRuns` | `Number` | No | Number of runs in which this test was executed. | -| `extra` | `Object` | No | Custom data relevant to the insights | - -## Metric Delta - -The `metricDelta` object represents the change in a metric over time, it contains the following properties: - -| Property | Type | Required | Description | -| ---------- | ------- | -------- | --------------------------------------------------------------------------------------------| -| `current` | `Number` | No | Current value of the metric. | -| `baseline` | `Number` | No | Value of the metric from the baseline run. | -| `change` | `Number` | No | Absolute change between current and baseline values. | - -## Baseline - -See the [baseline documentation](/docs/specification/baseline) for more information on baselines. - -## Example - -Here is an example of an `insights` object at the report and test level: - -```json -{ - "insights": { - "runsAnalyzed": 5, - "flakyRate": { "current": 0.10, "previous": 0.08, "change": 0.02 }, - "failRate": { "current": 0.05, "previous": 0.07, "change": -0.02 }, - "averageRunDuration": { "current": 1000, "previous": 900, "change": 0.1 } - }, - "results": { - "tests": [ - { - "name": "test_example", - "status": "failed", - "duration": 300, - "insights": { - "flakyRate": { "current": 0.15, "previous": 0.10, "change": 0.05 }, - "failRate": { "current": 0.20, "previous": 0.15, "change": 0.05 }, - "averageTestDuration": { "current": 100, "previous": 90, "change": 0.1 }, - "p95TestDuration": { "current": 150, "previous": 120, "change": 0.25 }, - "executedInRuns": 4 - } - } - ] - } -} -``` diff --git a/website/docs/specification/metrics-reference.md b/website/docs/specification/metrics-reference.md deleted file mode 100644 index 4759a87..0000000 --- a/website/docs/specification/metrics-reference.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -sidebar_position: 11 -title: Metrics Reference -description: Definitions for standard metrics used in CTRF insights. ---- - -A metric is a quantitative measurement or calculation from a collection of runs or tests. - -### Run Level Metrics - -Run level metrics are calculated using **all tests from all runs in consideration**. These metrics provide a holistic view of tests across multiple runs. - -### Test Level Metrics - -Test level metrics are calculated using **all executions of a specific test case** across all runs in consideration. These metrics help evaluate individual tests over time. - -### Percentage Metrics - -All percentage-based metrics are represented as **fractional decimal values between `0` and `1`**. For example: - -- `0.25` represents 25% -- `1.0` represents 100% -- `0` represents 0% - -### Absolute Metrics - -Absolute metrics are represented as raw counts, durations, or measurements with concrete units. Unlike percentage metrics which show proportions, absolute metrics provide actual quantitative values such as milliseconds for duration or numerical counts. - -## Terminology - -See the [terminology](/docs/specification/terminology) for definitions of the terms used in this document. - -## Metrics - -The following metrics are defined by the CTRF specification. - -### `passRate` - -The pass rate is the proportion of tests with status `passed`. - -This is a percentage metric. - -### `failRate` - -The fail rate is the proportion of tests with status `failed`. - -This is a percentage metric. - -### `flakyRate` - -The flaky rate is the proportion of tests attempts that failed, prior to eventually passing. - -A test is considered flaky only if its final status is `passed` and it experienced one or more failed attempts before succeeding. - -Tests that retry but never pass (final status `failed`) are not considered flaky and their retries are ignored. - -This is a percentage metric. - -### `averageRunDuration` - -The average run duration is the average duration of all test runs. - -This is an absolute metric, represented in milliseconds. - -### `averageTestDuration` - -The average test duration is the average duration of all test attempts. - -This is an absolute metric, represented in milliseconds. - -### `p95RunDuration` - -The 95th percentile run duration is the duration of the 95th percentile of test results from all runs. - -This is an absolute metric, represented in milliseconds. - -### `p95TestDuration` - -The 95th percentile test duration is the duration of the 95th percentile of all tests results. - -This is an absolute metric, represented in milliseconds. \ No newline at end of file diff --git a/website/docs/specification/overview.md b/website/docs/specification/overview.md deleted file mode 100644 index 6542cd0..0000000 --- a/website/docs/specification/overview.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 0 -title: Overview -description: Welcome to the CTRF Documentation. ---- - -The specification is divided into several main components, each serving a distinct purpose in the overall test report. These are: - -[**Results:**](/docs/specification/results) The top-level object encapsulating the test run data. - -[**Tool:**](/docs/specification/tool) Provides information about the testing tool, library or framework used during the test run. - -[**Summary:**](/docs/specification/summary) Provides a high-level summary of the test run. - -[**Test:**](/docs/specification/test) Provides detailed information about an individual test's execution and outcome. - -[**Status:**](/docs/specification/status) Allowed values that indicate the outcome of a test - -[**Insights:**](/docs/specification/insights) Metrics derived from multiple test runs to identify trends and patterns. - -[**Metrics Reference:**](/docs/specification/metrics-reference) Definitions for standard metrics used in CTRF insights. - -[**Baseline:**](/docs/specification/baseline) Details on how to define and use a baseline report for comparison. - -[**Environment:**](/docs/specification/environment) Information about the environment in which the tests were executed. - -[**Custom Extras:**](/docs/specification/extra) Flexible property designed for custom extendability - -## Examples - -To help you better understand the application of the CTRF specification, we provide examples demonstrating its use: - -[**Required Properties Example**](/docs/specification/examples#required-properties-only): The most straightforward report, utilising only the required properties of the specification. - -[**Comprehensive Report Example:**](/docs/specification/examples#required-properties-only#comprehensive-report): A report that contains various optional properties capturing a wide range of test data. diff --git a/website/docs/specification/results.md b/website/docs/specification/results.md deleted file mode 100644 index cffa772..0000000 --- a/website/docs/specification/results.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 2 -title: Results Object -description: Details of the Results Object in CTRF. ---- - -The `results` object is the core component that encapsulates the data for a single test run. It contains three required properties [`tool`](/docs/specification/tool), [`summary`](/docs/specification/summary), [`tests`](/docs/specification/tests) and optional properties [environment](/docs/specification/environment) and [extra](/docs/specification/extra) - -## Properties - -The `results` object has the following properties: - -| Name | Type | Required | Details | -| ------- | -------- | -------- | ------------------------------------------- | -| `tool` | `Object` | Required | Information about the tooling used in the test run. | -| `summary`| `Object` | Required | A high-level summary of the test run. | -| `tests` | `Array` of [`test`](/docs/specification/test) | Required | Information about each test. | -| `environment` | `Object` | Optional | Information about the test environment | -| `extra` | `Object` | Optional | custom data relevant to the test run | - -## Example - -Below is an example of the `results` object. Detailed information about each property ([`tool`](/docs/specification/tool), [`summary`](/docs/specification/summary) [`tests`](/docs/specification/tests)), [environment](/docs/specification/environment) and [extra](/docs/specification/extra) will be provided in the respective sections. - -``` js - "results": { - "tool": { - ... - }, - "summary": { - ... - }, - "tests": [ - ... - ], - "environment": { - ... - }, - "extra": { - ... - }, - } -``` diff --git a/website/docs/specification/root.md b/website/docs/specification/root.md deleted file mode 100644 index 3095580..0000000 --- a/website/docs/specification/root.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 1 -title: Root -description: Details of the Root Object in CTRF. ---- - -The root object is the top-level object in the CTRF specification. It contains the following properties: - -| Name | Type | Required | Details | -|----------------|----------|----------|--------------------------------------------------------------| -| `reportFormat` | `String` | Required | The format of the report, this value must be "CTRF" | -| `specVersion` | `String` | Required | The version of the specification. Must be a valid semver string, currently 0.0.0 | -| `reportId` | `String` | Optional | The UUID of the report. | -| `timestamp` | `String` | Optional | The timestamp when the report was generated. | -| `generatedBy` | `String` | Optional | The tool that generated the report. | -| `results` | `Object` | Required | The results of the report. | -| `insights` | `Object` | Optional | The insights from multiple runs. | -| `baseline` | `Object` | Optional | The baseline data for the report. | -| `extra` | `Object` | Optional | Custom data relevant to the report. | diff --git a/website/docs/specification/status.md b/website/docs/specification/status.md deleted file mode 100644 index 56194e8..0000000 --- a/website/docs/specification/status.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 9 -title: Test Status -description: Explanation of the Status property in Test Object within CTRF. ---- - -The `status` property in each [`test`](/docs/specification/test) Object is a key descriptor that indicates the outcome of a test. It's a required field and must be one of the following string values: `passed`, `failed`, `skipped`, or `pending`. Each status value conveys specific information about the test's execution and result. - -## Status Values - -| Status Value | Description | -| -------------- | ----------------------------------------------------------------------------- | -| `passed` | The test successfully met all criteria and passed. | -| `failed` | The test did not meet the necessary criteria and failed. | -| `skipped` | The test was intentionally not executed or was skipped. | -| `pending` | The test is awaiting execution or some condition to be fulfilled. | -| `other` | A catch-all status for test outcomes that cannot be mapped to the predefined statuses, typically indicating a unique or library-specific status. | diff --git a/website/docs/specification/summary.md b/website/docs/specification/summary.md deleted file mode 100644 index c9f9861..0000000 --- a/website/docs/specification/summary.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 4 -title: Summary Object -description: Overview of the Summary object in CTRF. ---- - -The `summary` object within [`results`](/docs/specification/results) is a required property. It provides a high-level summary of the test run, offering an at-a-glance view of the overall test results. - -## Properties - -The `summary` object encompasses the following properties: - -| Name | Type | Required | Details | -| ------------- | -------- | -------- | ----------------------------------------------------- | -| `tests` | `Number` | Required | The total number of tests executed. | -| `passed` | `Number` | Required | The count of tests passed. | -| `failed` | `Number` | Required | The count of tests failed. | -| `pending` | `Number` | Required | The count of tests pending. | -| `skipped` | `Number` | Required | The count of tests skipped. | -| `other` | `Number` | Required | The count of tests with other outcomes. | -| `flaky` | `Number` | Optional | The count of tests that were flaky. | -| `suites` | `Number` | Optional | The count of suites | -| `start` | `Number` | Required | The start time of the test run, in milliseconds since the Unix Epoch. | -| `stop` | `Number` | Required | The stop time of the test run, in milliseconds since the Unix Epoch. | -| `duration` | `Number` | Optional | The total duration of the test run, in milliseconds. | -| `extra` | `Object` | Optional | Custom data relevant to the summary | - -## Example - -Below is an example of the `summary` object. - -```js -"summary": { - "tests": 10, - "passed": 7, - "failed": 2, - "pending": 1, - "skipped": 0, - "other": 0, - "flaky": 1, - "suites": 1, - "start": 1706644023000, - "stop": 1706644043000 -} -``` diff --git a/website/docs/specification/terminology.md b/website/docs/specification/terminology.md deleted file mode 100644 index 35366f5..0000000 --- a/website/docs/specification/terminology.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -sidebar_position: 12 -title: Terminology -description: Definitions for terms used in the CTRF specification. ---- - -This section defines key terms used in the CTRF specification. These terms describe concepts relevant to test execution reporting and analysis. - -### `report` - -The complete CTRF report. - -### `run` - -A logical grouping of test executions. A `run` may include multiple shards or retries that are part of a single coordinated execution context. - -### `result` - -The final outcome of a test. - -### `attempt` - -A single execution of a test case. Multiple attempts may exist for the same test due to retries. - -### `build` - -The CI/CD build or pipeline execution in which the tests were run. - -### `insights` - -Derived data summarizing trends, patterns, or aggregated test results across one or more runs. - -### `metric` - -Quantitative value that describes properties of tests or runs, such as pass rate. - -### `flaky` - -A test is considered flaky if it produces both passing and failing outcomes within the same run (e.g., fails initially, then passes on retry). - -### `consumer` - -A tool, system, or process that reads and interprets CTRF reports for purposes such as analysis, visualization, or alerting. - -### `producer` - -A tool, system, or process that generates CTRF reports by capturing and structuring test execution data. - -### `baseline` - -A previously generated report used as a reference for comparison with the current report to identify regressions or improvements. diff --git a/website/docs/specification/test.md b/website/docs/specification/test.md deleted file mode 100644 index 8bd1b7c..0000000 --- a/website/docs/specification/test.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -sidebar_position: 5 -title: Test Object -description: Details of the Test Object in CTRF. ---- - -The `test` object is situated as an array element within the tests property of the [`results`](/docs/specification/results). Each `test` object provides detailed information about an individual test's execution and outcome. - -## Test Object Properties - -The `test` object contains the following properties: - -| Name | Type | Required | Details | -| ------------ | -------- | -------- | --------------------------------------------------------------- | -| `name` | `String` | Required | The name or identifier of the test. | -| `status` | `String` | Required | The outcome of the test. Must be one of the specified values: [`passed`, `failed`, `skipped`, `pending`, `other`](/docs/specification/status). | -| `duration` | `Number` | Required | The time taken for the test execution, in milliseconds. | -| `start` | `Number` | Optional | The start time of the test as a Unix epoch | -| `stop` | `Number` | Optional | The end time of the test as a Unix epoch timestamp. | -| `suite` | `Array of Strings`| Optional | suites for the test, from top-level suite to the immediate parent of the test | -| `message` | `String` | Optional | A descriptive message or note associated with the test result. | -| `trace` | `String` | Optional | The stack trace captured if the test failed. | -| `snippet` | `String` | Optional | The code snippet that caused the test failure. | -| `ai` | `String` | Optional | An AI generated summary of the test. | -| `rawStatus` | `String`| Optional | The original status of the test before mapping to CTRF status. | -| `tags` | `Array of Strings`| Optional | Labels or categorisation for the test (e.g., ["UI", "Login"]). | -| `type` | `String`| Optional | The type of test (e.g., "unit", "integration", "e2e"). | -| `filePath` | `String` | Optional | The file path where the test is located. | -| `line` | `Number` | Optional | Line number where the test is located. | -| `retries` | `Number` | Optional | The number of retries attempted for the test. | -| `flaky` | `Boolean`| Optional | Indicates whether the test result is flaky | -| `stdout` | `Array of Strings` | Optional | The standard output of the test. | -| `stderr` | `Array of Strings` | Optional | The standard error of the test. | -| `threadId` | `String` | Optional | The thread/worker ID of the test. | -| `browser` | `string` | Optional | The browser used for the test. | -| `device` | `string` | Optional | The device used for the test. | -| `screenshot` | `String` | Optional | A base64 encoded screenshot taken during the test | -| `parameters` | `Object` | Optional | The parameters or data inputs used in the test. | -| `steps` | `Array of Objects` | Optional | Individual steps in the test, especially for BDD-style testing.| -| `attachments` | `Array of Objects` | Optional | Attachments relevant to the test. | -| `insights` | `Object` | Optional | Insights relevant to the test. | -| `extra` | `Object` | Optional | Custom data relevant to the test. | - -## Test Object Example - -Below is an example of the `test` object. - -```js -{ - "name": "should contain required properties", - "status": "passed", - "duration": 1200 -} -``` - -## Attachment Object - -The `attachment` object within the `attachments` array is designed to support additional contextual information for test results, such as screenshots, logs, or traces. This allows for better debugging and enhanced insights into test executions. - -## Attachment Object Properties - -The `attachment` object contains the following properties: - -| Property | Type | Required | Description | -|---------------|----------|----------|-----------------------------------------------------------------------------| -| `name` | `String` | Required | A short, descriptive name for the attachment (e.g., "screenshot"). | -| `contentType` | `String` | Required | The MIME type of the attachment (e.g., `image/png`, `text/plain`). | -| `path` | `String` | Required | The absolute or relative file path to the attachment. | -| `extra` | `Object` | Optional | Custom data relevant to the attachment. | - - -## Attachment Object Example - -```json -{ - "attachments": [ - { - "name": "screenshot", - "contentType": "image/png", - "path": "C:\\path\\to\\screenshot.png", - } - ] -} -``` - -## Step Object - -The `step` object within `steps` array is designed to support Behavior-Driven Development (BDD) style testing. It provides a structured way to describe each step in a test scenario, along with its outcome. - -## Steps Object Properties - -The `step` object contains the following properties: - -| Property | Type | Required | Description | -|----------|----------|----------|-----------------------------------------------------------------| -| `name` | `String` | Required | The description or title of the test step. | -| `status` | `String` | Required | The outcome of the step. Must be one of the specified values: [`passed`, `failed`, `skipped`, `pending`, `other`](/docs/specification/status). | -| `extra` | `Object` | Optional | Custom data relevant to the step. | - -## Step Object Example - -``` js - "steps": [ - {"name": "Step 1: Navigate to login page", "status": "passed"}, - {"name": "Step 2: Enter user credentials", "status": "passed"}, - ] -``` - -## Parameters Object - -The `parameters` object within `test` is designed to support parameterised tests, storing test-specific parameters. This flexible object allows for the inclusion of various key-value pairs, each representing a parameter relevant to the execution of the test. - -`parameters` is an unstructured object, meaning it does not have a set format or predefined key-value pairs, it consists of key-value pairs where each key represents the name of a parameter, and its corresponding value represents the parameter's setting or data. - -## Parameters Object Example - -Below is an example of the `parameters` object - -``` js -"parameters": { - "username": "testUser", - "password": "testPass123", - } -``` diff --git a/website/docs/specification/tests.md b/website/docs/specification/tests.md deleted file mode 100644 index 571cdb6..0000000 --- a/website/docs/specification/tests.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -sidebar_position: 8 -title: Tests Array -description: Detailed overview of the Tests Array in CTRF. ---- - -The `tests` array is a required property of the [`results`](/docs/specification/results) object. It consists of [`test`](/docs/specification/test) objects, each representing a single test's execution and its outcomes. The `tests` array serves as a collection point for the detailed results of each test executed during a test run. - -## Example - -Below is an example of the `tests` array - -```js - "tests": [ - { - "name": "Test1", - "status": "passed", - "duration": 120 - }, - { - "name": "Test2", - "status": "failed", - "duration": 300 - } - ] -``` diff --git a/website/docs/specification/tool.md b/website/docs/specification/tool.md deleted file mode 100644 index 22f824a..0000000 --- a/website/docs/specification/tool.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -sidebar_position: 3 -title: Tool Object -description: Detailed documentation on the Tool object in CTRF. ---- - -The `tool` object within [`results`](/docs/specification/results) is a required property that provides information about the testing tool or framework used during the test run. - -## Properties - -The `tool` object contains the following properties: - -| Name | Type | Required | Details | -| ---------- | -------- | -------- | ------------------------------------------------- | -| `name` | `String` | Required | The name of the testing tool or framework. | -| `version` | `String` | Optional | The version of the tool or framework used. | -| `extra` | `Object` | Optional | Custom data relevant to the test. | - -## Example - -Below is an example of the `tool` object. - -```js - "tool": { - "name": "jest", - "version": "29.4" - }, -``` diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts deleted file mode 100644 index 36c51ba..0000000 --- a/website/docusaurus.config.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { themes as prismThemes } from 'prism-react-renderer'; -import type { Config } from '@docusaurus/types'; -import type * as Preset from '@docusaurus/preset-classic'; - -const config: Config = { - title: 'Common Test Report Format', - tagline: 'A JSON test report schema and integration tooling', - favicon: 'img/favicon.ico', - - // Set the production url of your site here - url: 'https://ctrf.io', - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'ctrf', // Usually your GitHub org/user name. - projectName: 'ctrf', // Usually your repo name. - - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - { - gtag: { - trackingID: 'G-VHP5B22KSH', - anonymizeIP: true, - }, - docs: { - sidebarPath: './sidebars.ts', - editUrl: - 'https://github.com/ctrf-io/ctrf/tree/main/', - }, - blog: { - showReadingTime: true, - editUrl: - 'https://github.com/ctrf-io/ctrf/tree/main/', - }, - theme: { - customCss: './src/css/custom.css', - }, - } satisfies Preset.Options, - ], - ], - - themeConfig: { - metadata: [{name: 'description', content: 'A common universal JSON test report schema that provides standardized format for JSON test results reports'}], - image: 'img/logo.png', - announcementBar: { - id: 'support_us', - content: -'⭐ If you like CTRF, consider following us on GitHubGitHub logo', - backgroundColor: '#d1d1d1', - textColor: '#000000', - isCloseable: true, - }, - navbar: { - title: 'Common Test Report Format', - logo: { - alt: 'CTRF Logo', - src: 'img/logo.png', - }, - items: [ - { - type: 'docSidebar', - sidebarId: 'tutorialSidebar', - position: 'left', - label: 'Docs', - }, - { to: 'docs/specification/overview', label: 'Specification', position: 'left' }, - { to: '/integrations', label: 'Integrations', position: 'left' }, - { to: '/docs/contributing/', label: 'Contribute', position: 'left'}, - { to: '/blog', label: 'Blog', position: 'left' }, - { - href: 'https://github.com/ctrf-io', - position: 'right', - className: 'header-github-link', - 'aria-label': 'GitHub repository', - }, - ], - }, - footer: { - style: 'dark', - copyright: `Built and maintained by CTRF contributors -
- Released under the MIT License. -
- Copyright © ${new Date().getFullYear()}`, - }, - prism: { - theme: prismThemes.github, - darkTheme: prismThemes.dracula, - }, - } satisfies Preset.ThemeConfig, -}; - -export default config; diff --git a/website/package-lock.json b/website/package-lock.json deleted file mode 100644 index d741c4a..0000000 --- a/website/package-lock.json +++ /dev/null @@ -1,15196 +0,0 @@ -{ - "name": "ctrf", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "ctrf", - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/plugin-google-gtag": "^3.1.1", - "@docusaurus/preset-classic": "3.0.0", - "@mdx-js/react": "^3.0.0", - "clsx": "^1.2.1", - "prism-react-renderer": "^2.1.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "react-github-btn": "^1.4.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/tsconfig": "3.0.0", - "@docusaurus/types": "3.0.0", - "typescript": "~5.2.2" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", - "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", - "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz", - "integrity": "sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==", - "dependencies": { - "@algolia/cache-common": "4.20.0" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.20.0.tgz", - "integrity": "sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.20.0.tgz", - "integrity": "sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==", - "dependencies": { - "@algolia/cache-common": "4.20.0" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.20.0.tgz", - "integrity": "sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==", - "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/transporter": "4.20.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.20.0.tgz", - "integrity": "sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==", - "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.20.0.tgz", - "integrity": "sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==", - "dependencies": { - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.20.0.tgz", - "integrity": "sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==", - "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.20.0.tgz", - "integrity": "sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==", - "dependencies": { - "@algolia/client-common": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/transporter": "4.20.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==" - }, - "node_modules/@algolia/logger-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.20.0.tgz", - "integrity": "sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.20.0.tgz", - "integrity": "sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==", - "dependencies": { - "@algolia/logger-common": "4.20.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.20.0.tgz", - "integrity": "sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==", - "dependencies": { - "@algolia/requester-common": "4.20.0" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.20.0.tgz", - "integrity": "sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==" - }, - "node_modules/@algolia/requester-node-http": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.20.0.tgz", - "integrity": "sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==", - "dependencies": { - "@algolia/requester-common": "4.20.0" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.20.0.tgz", - "integrity": "sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==", - "dependencies": { - "@algolia/cache-common": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/requester-common": "4.20.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "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.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "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==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "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==", - "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.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", - "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", - "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz", - "integrity": "sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.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==", - "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==", - "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.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.4.tgz", - "integrity": "sha512-zQyB4MJGM+rvd4pM58n26kf3xbiitw9MHzL8oLiBMKb8MCtVDfV5nDzzJWWzLMtbvKI9wN6XwJYl479qF4JluQ==", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "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==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "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==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==" - }, - "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", - "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", - "algoliasearch": "^4.19.1" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@docusaurus/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.0.tgz", - "integrity": "sha512-bHWtY55tJTkd6pZhHrWz1MpWuwN4edZe0/UWgFF7PW/oJeDZvLSXKqwny3L91X1/LGGoypBGkeZn8EOuKeL4yQ==", - "dependencies": { - "@babel/core": "^7.22.9", - "@babel/generator": "^7.22.9", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.5.1", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^4.2.2", - "cssnano": "^5.1.15", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "wait-on": "^7.0.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.0.tgz", - "integrity": "sha512-FHiRfwmVvIVdIGsHcijUOaX7hMn0mugVYB7m4GkpYI6Mi56zwQV4lH5p7DxcW5CUYNWMVxz2loWSCiWEm5ikwA==", - "dependencies": { - "cssnano-preset-advanced": "^5.3.10", - "postcss": "^8.4.26", - "postcss-sort-media-queries": "^4.4.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.0.tgz", - "integrity": "sha512-6eX0eOfioMQCk+qgCnHvbLLuyIAA+r2lSID6d6JusiLtDKmYMfNp3F4yyE8bnb0Abmzt2w68XwptEFYyALSAXw==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.0.tgz", - "integrity": "sha512-JkGge6WYDrwjNgMxwkb6kNQHnpISt5L1tMaBWFDBKeDToFr5Kj29IL35MIQm0RfrnoOfr/29RjSH4aRtvlAR0A==", - "dependencies": { - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-validation": "3.0.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": "^1.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": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.0.tgz", - "integrity": "sha512-CfC6CgN4u/ce+2+L1JdsHNyBd8yYjl4De2B2CBj2a9F7WuJ5RjV1ciuU7KDg8uyju+NRVllRgvJvxVUjCdkPiw==", - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.0.tgz", - "integrity": "sha512-iA8Wc3tIzVnROJxrbIsU/iSfixHW16YeW9RWsBw7hgEk4dyGsip9AsvEDXobnRq3lVv4mfdgoS545iGWf1Ip9w==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "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": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.0.tgz", - "integrity": "sha512-MFZsOSwmeJ6rvoZMLieXxPuJsA9M9vn7/mUZmfUzSUTeHAeq+fEqvLltFOxcj4DVVDTYlQhgWYd+PISIWgamKw==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-validation": "3.0.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", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.0.tgz", - "integrity": "sha512-EXYHXK2Ea1B5BUmM0DgSwaOYt8EMSzWtYUToNo62Q/EoWxYOQFdWglYnw3n7ZEGyw5Kog4LHaRwlazAdmDomvQ==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.0.tgz", - "integrity": "sha512-gSV07HfQgnUboVEb3lucuVyv5pEoy33E7QXzzn++3kSc/NLEimkjXh3sSnTGOishkxCqlFV9BHfY/VMm5Lko5g==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@microlink/react-json-view": "^1.22.2", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.0.tgz", - "integrity": "sha512-0zcLK8w+ohmSm1fjUQCqeRsjmQc0gflvXnaVA/QVVCtm2yCiBtkrSGQXqt4MdpD7Xq8mwo3qVd5nhIcvrcebqw==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.1.tgz", - "integrity": "sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==", - "dependencies": { - "@docusaurus/core": "3.1.1", - "@docusaurus/types": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.1.tgz", - "integrity": "sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==", - "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.1.1", - "@docusaurus/logger": "3.1.1", - "@docusaurus/mdx-loader": "3.1.1", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-common": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.5.1", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^4.2.2", - "cssnano": "^5.1.15", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/cssnano-preset": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.1.tgz", - "integrity": "sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==", - "dependencies": { - "cssnano-preset-advanced": "^5.3.10", - "postcss": "^8.4.26", - "postcss-sort-media-queries": "^4.4.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/logger": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.1.tgz", - "integrity": "sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/mdx-loader": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.1.tgz", - "integrity": "sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==", - "dependencies": { - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.1.1", - "@docusaurus/utils": "3.1.1", - "@docusaurus/utils-validation": "3.1.1", - "@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": "^1.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": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/types": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz", - "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.1.tgz", - "integrity": "sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==", - "dependencies": { - "@docusaurus/logger": "3.1.1", - "@svgr/webpack": "^6.5.1", - "escape-string-regexp": "^4.0.0", - "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", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/utils-common": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.1.tgz", - "integrity": "sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/utils-validation": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.1.tgz", - "integrity": "sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==", - "dependencies": { - "@docusaurus/logger": "3.1.1", - "@docusaurus/utils": "3.1.1", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.0.tgz", - "integrity": "sha512-lytgu2eyn+7p4WklJkpMGRhwC29ezj4IjPPmVJ8vGzcSl6JkR1sADTHLG5xWOMuci420xZl9dGEiLTQ8FjCRyA==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.0.tgz", - "integrity": "sha512-cfcONdWku56Oi7Hdus2uvUw/RKRRlIGMViiHLjvQ21CEsEqnQ297MRoIgjU28kL7/CXD/+OiANSq3T1ezAiMhA==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.0.tgz", - "integrity": "sha512-90aOKZGZdi0+GVQV+wt8xx4M4GiDrBRke8NO8nWwytMEXNrxrBxsQYFRD1YlISLJSCiHikKf3Z/MovMnQpnZyg==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/plugin-content-blog": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/plugin-content-pages": "3.0.0", - "@docusaurus/plugin-debug": "3.0.0", - "@docusaurus/plugin-google-analytics": "3.0.0", - "@docusaurus/plugin-google-gtag": "3.0.0", - "@docusaurus/plugin-google-tag-manager": "3.0.0", - "@docusaurus/plugin-sitemap": "3.0.0", - "@docusaurus/theme-classic": "3.0.0", - "@docusaurus/theme-common": "3.0.0", - "@docusaurus/theme-search-algolia": "3.0.0", - "@docusaurus/types": "3.0.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.0.tgz", - "integrity": "sha512-asEKavw8fczUqvXu/s9kG2m1epLnHJ19W6CCCRZEmpnkZUZKiM8rlkDiEmxApwIc2JDDbIMk+Y2TMkJI8mInbQ==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.0.tgz", - "integrity": "sha512-wWOHSrKMn7L4jTtXBsb5iEJ3xvTddBye5PjYBnWiCkTAlhle2yMdc4/qRXW35Ot+OV/VXu6YFG8XVUJEl99z0A==", - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/plugin-content-blog": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/plugin-content-pages": "3.0.0", - "@docusaurus/theme-common": "3.0.0", - "@docusaurus/theme-translations": "3.0.0", - "@docusaurus/types": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "@mdx-js/react": "^3.0.0", - "clsx": "^1.2.1", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.43", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.1.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": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.0.tgz", - "integrity": "sha512-PahRpCLRK5owCMEqcNtUeTMOkTUCzrJlKA+HLu7f+8osYOni617YurXvHASCsSTxurjXaLz/RqZMnASnqATxIA==", - "dependencies": { - "@docusaurus/mdx-loader": "3.0.0", - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/plugin-content-blog": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/plugin-content-pages": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-common": "3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^1.2.1", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.0.tgz", - "integrity": "sha512-PyMUNIS9yu0dx7XffB13ti4TG47pJq3G2KE/INvOFb6M0kWh+wwCnucPg4WAOysHOPh+SD9fjlXILoLQstgEIA==", - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.0.0", - "@docusaurus/logger": "3.0.0", - "@docusaurus/plugin-content-docs": "3.0.0", - "@docusaurus/theme-common": "3.0.0", - "@docusaurus/theme-translations": "3.0.0", - "@docusaurus/utils": "3.0.0", - "@docusaurus/utils-validation": "3.0.0", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", - "clsx": "^1.2.1", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.0.tgz", - "integrity": "sha512-p/H3+5LdnDtbMU+csYukA6601U1ld2v9knqxGEEV96qV27HsHfP63J9Ta2RBZUrNhQAgrwFzIc9GdDO8P1Baag==", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/tsconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.0.0.tgz", - "integrity": "sha512-yR9sng4izFudS+v1xV5yboNfc1hATMDpYp9iYfWggbBDwKSm0J1IdIgkygRnqC/AWs1ARUQUpG0gFotPCE/4Ew==", - "dev": true - }, - "node_modules/@docusaurus/types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.0.tgz", - "integrity": "sha512-Qb+l/hmCOVemReuzvvcFdk84bUmUFyD0Zi81y651ie3VwMrXqC7C0E7yZLKMOsLj/vkqsxHbtkAuYMI89YzNzg==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.0.tgz", - "integrity": "sha512-JwGjh5mtjG9XIAESyPxObL6CZ6LO/yU4OSTpq7Q0x+jN25zi/AMbvLjpSyZzWy+qm5uQiFiIhqFaOxvy+82Ekg==", - "dependencies": { - "@docusaurus/logger": "3.0.0", - "@svgr/webpack": "^6.5.1", - "escape-string-regexp": "^4.0.0", - "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", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.0.tgz", - "integrity": "sha512-7iJWAtt4AHf4PFEPlEPXko9LZD/dbYnhLe0q8e3GRK1EXZyRASah2lznpMwB3lLmVjq/FR6ZAKF+E0wlmL5j0g==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.0.tgz", - "integrity": "sha512-MlIGUspB/HBW5CYgHvRhmkZbeMiUWKbyVoCQYvbGN8S19SSzVgzyy97KRpcjCOYYeEdkhmRCUwFBJBlLg3IoNQ==", - "dependencies": { - "@docusaurus/logger": "3.0.0", - "@docusaurus/utils": "3.0.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.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==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "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==", - "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==", - "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.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.0.tgz", - "integrity": "sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-to-js": "^2.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-estree": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "periscopic": "^3.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.0.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.0.tgz", - "integrity": "sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@microlink/react-json-view": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@microlink/react-json-view/-/react-json-view-1.23.0.tgz", - "integrity": "sha512-HYJ1nsfO4/qn8afnAMhuk7+5a1vcjEaS8Gm5Vpr1SqdHDY0yLBJGpA+9DvKyxyVKaUkXzKXt3Mif9RcmFSdtYg==", - "dependencies": { - "flux": "~4.0.1", - "react-base16-styling": "~0.6.0", - "react-lifecycles-compat": "~3.0.4", - "react-textarea-autosize": "~8.3.2" - }, - "peerDependencies": { - "react": ">= 15", - "react-dom": ">= 15" - } - }, - "node_modules/@microlink/react-json-view/node_modules/flux": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz", - "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==", - "dependencies": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - }, - "peerDependencies": { - "react": "^15.0.2 || ^16.0.0 || ^17.0.0" - } - }, - "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==", - "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==", - "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==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "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==", - "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==" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "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.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==" - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "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==" - }, - "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==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "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==", - "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==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.1.0", - "micromark-util-symbol": "^1.0.1" - } - }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", - "engines": { - "node": ">=10" - }, - "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==", - "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==", - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", - "engines": { - "node": ">=10" - }, - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", - "engines": { - "node": ">=10" - }, - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", - "engines": { - "node": ">=10" - }, - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", - "engines": { - "node": ">=10" - }, - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", - "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": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", - "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", - "dependencies": { - "@babel/types": "^7.20.0", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", - "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "^6.0.0" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", - "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", - "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" - }, - "engines": { - "node": ">=10" - }, - "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==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "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==", - "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==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.3.tgz", - "integrity": "sha512-6mfQ6iNvhSKCZJoY6sIG3m0pKkdUcweVNOLuBBKvoWGzl2yRxOJcYOTRyLKt3nxXvBLJWa6QkW//tgbIwJehmA==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.44.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", - "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", - "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==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", - "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" - }, - "node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", - "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==" - }, - "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==" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", - "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==" - }, - "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==", - "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==", - "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==" - }, - "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", - "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==" - }, - "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==" - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "node_modules/@types/node": { - "version": "20.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", - "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.9.tgz", - "integrity": "sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, - "node_modules/@types/prismjs": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", - "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.10", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" - }, - "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==" - }, - "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==" - }, - "node_modules/@types/react": { - "version": "18.2.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", - "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.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==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.10.tgz", - "integrity": "sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==", - "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==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", - "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dependencies": { - "@types/mime": "^1", - "@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==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@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==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/@types/ws": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", - "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", - "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", - "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==" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@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==" - }, - "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==" - }, - "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==", - "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==", - "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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peerDependencies": { - "acorn": "^8" - } - }, - "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==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "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==", - "engines": { - "node": ">= 10.0.0" - } - }, - "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==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.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==", - "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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/algoliasearch": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.20.0.tgz", - "integrity": "sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.20.0", - "@algolia/cache-common": "4.20.0", - "@algolia/cache-in-memory": "4.20.0", - "@algolia/client-account": "4.20.0", - "@algolia/client-analytics": "4.20.0", - "@algolia/client-common": "4.20.0", - "@algolia/client-personalization": "4.20.0", - "@algolia/client-search": "4.20.0", - "@algolia/logger-common": "4.20.0", - "@algolia/logger-console": "4.20.0", - "@algolia/requester-browser-xhr": "4.20.0", - "@algolia/requester-common": "4.20.0", - "@algolia/requester-node-http": "4.20.0", - "@algolia/transporter": "4.20.0" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.15.0.tgz", - "integrity": "sha512-DGUnK3TGtDQsaUE4ayF/LjSN0DGsuYThB8WBgnnDY0Wq04K6lNVruO3LfqJOgSfDiezp+Iyt8Tj4YKHi+/ivSA==", - "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==", - "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==" - }, - "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==", - "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" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "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==" - }, - "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==" - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "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" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "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==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "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==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==" - }, - "node_modules/base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" - }, - "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==" - }, - "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==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "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==", - "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==", - "dependencies": { - "ms": "2.0.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==" - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "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==" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "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": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "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" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "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==" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "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==", - "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/cacheable-request/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "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==", - "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==", - "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==", - "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==", - "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.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", - "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" - } - ] - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "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==", - "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/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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "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" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "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==", - "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==", - "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==" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "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==", - "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==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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==", - "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==" - }, - "node_modules/compression/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==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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==", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "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==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "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==", - "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==", - "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==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "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==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", - "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.3.tgz", - "integrity": "sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ==", - "hasInstallScript": true, - "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==" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "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==", - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.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-minimizer-webpack-plugin/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "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": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "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==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", - "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", - "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.14", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "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==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "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==", - "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/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "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==", - "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==", - "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==" - }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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==", - "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==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "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==", - "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==", - "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==", - "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" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "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==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.589", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", - "integrity": "sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==" - }, - "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==" - }, - "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==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", - "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.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==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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==", - "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==" - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.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==", - "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==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "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==", - "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==", - "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==", - "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==", - "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.0.1", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.0.1.tgz", - "integrity": "sha512-b2tdzTurEIbwRh+mKrEcaWfu1wgb8J1hVsgREg7FFiecWwK/PhO8X0kyc+0bIcKNtD4sqxIdNoRy6/p/TvECEA==", - "dependencies": { - "@types/estree": "^1.0.0", - "is-plain-obj": "^4.0.0" - }, - "engines": { - "node": ">=16.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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "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==", - "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.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "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" - } - }, - "node_modules/express/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==" - }, - "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==", - "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==", - "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==" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "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==", - "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==" - }, - "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==", - "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==" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "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.4" - }, - "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==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "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==", - "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==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^1.0.35" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "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==", - "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.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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==", - "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==" - }, - "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==", - "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/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/fork-ts-checker-webpack-plugin/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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "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==", - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "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, - "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==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "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==" - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-buttons": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.29.1.tgz", - "integrity": "sha512-TV3YgAKda5hPz75n7QXmGCsSzgVya1vvmBieebg3EB5ScmashTZ0FldViG1aU2d4V5rcAGrtQ7k5uAaCo0A4PA==" - }, - "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==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "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==", - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "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.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "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==", - "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==", - "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==" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "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==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "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==", - "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==" - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "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==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.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==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz", - "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==", - "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.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", - "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": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.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.2.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.2.0.tgz", - "integrity": "sha512-wSlp23N45CMjDg/BPW8zvhEi3R+8eRE1qFbjEyAUzMCzu2l1Wzwakq+Tlia9nkCtEl5mDxa7nKHsvYJ6Gfn21A==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.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.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.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==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==" - }, - "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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", - "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": { - "webpack": "^5.20.0" - } - }, - "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==", - "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==", - "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" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "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==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "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==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "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==", - "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==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "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==", - "engines": { - "node": ">=10.17.0" - } - }, - "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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "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==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.43", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz", - "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "engines": { - "node": ">= 10" - } - }, - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "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-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "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==", - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dependencies": { - "@types/estree": "*" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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==" - }, - "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==", - "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==", - "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==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "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==", - "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==", - "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==", - "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.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@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==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "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==" - }, - "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==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "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==", - "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==", - "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==", - "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==", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "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==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "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==", - "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==", - "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.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" - }, - "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==" - }, - "node_modules/lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" - }, - "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==" - }, - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.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.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", - "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==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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==", - "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==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "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.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "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==", - "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==", - "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==", - "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==", - "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.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", - "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.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==", - "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-remove-position": "^5.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==", - "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.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz", - "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==", - "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.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", - "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-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==", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "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==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz", - "integrity": "sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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==", - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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==", - "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.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", - "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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==", - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", - "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", - "dependencies": { - "@types/acorn": "^4.0.0", - "@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-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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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==", - "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==", - "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==", - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", - "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.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-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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" - } - ], - "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" - } - ] - }, - "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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" - } - ], - "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" - } - ] - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/acorn": "^4.0.0", - "@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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "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.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "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" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "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==", - "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==", - "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==", - "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==", - "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==", - "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.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "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==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "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==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "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==", - "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==" - }, - "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==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.2.tgz", - "integrity": "sha512-tH+yFLxh7DayRaNs6yvbCGNSmBF9rmoQ5TuWxGIkVfIYE8GtNV9raqYNiakWrWcpmohLWU2zWdiGdXg4PSiXrw==", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "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==" - }, - "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==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "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==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "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==" - }, - "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==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=12.20" - } - }, - "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==", - "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==", - "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==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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==", - "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==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^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.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "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==", - "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==" - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?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==", - "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==", - "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==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.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==" - }, - "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==", - "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==" - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "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==", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "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" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" - }, - "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-loader/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==", - "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/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", - "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", - "dependencies": { - "sort-css-media-queries": "2.1.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.16" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==" - }, - "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==", - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.2.0.tgz", - "integrity": "sha512-j4AN0VkEr72598+47xDvpzeYyeh/wPPRNTt9nJFZqIZUxwGKwYqYgt7RVigZ3ZICJWJWN84KEuMKPNyypyhNIw==", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^1.2.1" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "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==" - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "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==", - "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==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", - "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==" - }, - "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==", - "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==", - "engines": { - "node": ">= 0.10" - } - }, - "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==" - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "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" - } - ] - }, - "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==", - "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==", - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "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==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "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/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", - "dependencies": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "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==" - }, - "node_modules/react-github-btn": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.4.0.tgz", - "integrity": "sha512-lV4FYClAfjWnBfv0iNlJUGhamDgIq6TayD0kPZED6VzHWdpcHmPfsYOZ/CFwLfPv4Zp+F4m8QKTj0oy2HjiGXg==", - "dependencies": { - "github-buttons": "^2.22.0" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "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", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.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==" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "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==", - "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==", - "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==", - "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/react-textarea-autosize": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", - "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "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==", - "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==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.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==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "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==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "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==", - "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/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", - "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-emoji": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", - "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", - "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==", - "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.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "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.0.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.0.tgz", - "integrity": "sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g==", - "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==", - "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.0.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.0.0.tgz", - "integrity": "sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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" - } - ], - "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==", - "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==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "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==" - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "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==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==" - }, - "node_modules/rtlcss": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", - "integrity": "sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==", - "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-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" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "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" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/search-insights": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.11.0.tgz", - "integrity": "sha512-Uin2J8Bpm3xaZi9Y8QibSys6uJOFZ+REMrf42v20AA3FUDUrshKkMEP6liJbMAHCm71wO6ls4mwAf7a3gFVxLw==", - "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==", - "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==" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "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==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "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==", - "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==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", - "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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==", - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "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==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "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==", - "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==" - }, - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "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==" - }, - "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.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==" - }, - "node_modules/sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", - "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==" - }, - "node_modules/skin-tone": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-3.0.0.tgz", - "integrity": "sha512-+HTlUiUJr3SjmOiKV3dPeGWcl7dgqv09OgFWJxD26vOmYss7DWKCl6sqHEjM1hddov/vXQN2bOKIMr0DMUJVSQ==", - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", - "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", - "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==" - }, - "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==", - "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==", - "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/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "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==", - "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==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "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==", - "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==", - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==", - "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==", - "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==" - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "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==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/svgo/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==", - "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/svgo/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==", - "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/svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "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/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "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/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/terser-webpack-plugin/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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "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==", - "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/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==" - }, - "node_modules/terser-webpack-plugin/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==", - "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/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==", - "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==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "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==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "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==", - "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==", - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "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==", - "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==", - "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.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "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==", - "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.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "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==", - "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==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.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==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "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.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "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==", - "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==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "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" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "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==", - "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==", - "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==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "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==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "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==" - }, - "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==" - }, - "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", - "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==", - "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==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "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==" - }, - "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==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", - "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", - "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.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "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==", - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", - "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", - "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", - "is-plain-object": "^5.0.0", - "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==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "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": "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==", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/webpack/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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/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==" - }, - "node_modules/webpack/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/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==", - "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/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", - "pretty-time": "^1.1.0", - "std-env": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "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==", - "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==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "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==", - "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==" - }, - "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==", - "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-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "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==", - "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.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "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/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "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==", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/website/package.json b/website/package.json deleted file mode 100644 index 19062d0..0000000 --- a/website/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "ctrf", - "version": "0.0.0", - "private": true, - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" - }, - "dependencies": { - "@docusaurus/core": "3.0.0", - "@docusaurus/plugin-google-gtag": "^3.1.1", - "@docusaurus/preset-classic": "3.0.0", - "@mdx-js/react": "^3.0.0", - "clsx": "^1.2.1", - "prism-react-renderer": "^2.1.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "react-github-btn": "^1.4.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.0.0", - "@docusaurus/tsconfig": "3.0.0", - "@docusaurus/types": "3.0.0", - "typescript": "~5.2.2" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 3 chrome version", - "last 3 firefox version", - "last 5 safari version" - ] - }, - "engines": { - "node": ">=18.0" - } -} diff --git a/website/sidebars.ts b/website/sidebars.ts deleted file mode 100644 index d5ef213..0000000 --- a/website/sidebars.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ -const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}, ], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ -}; - -export default sidebars; diff --git a/website/src/components/homepage/Code/index.tsx b/website/src/components/homepage/Code/index.tsx deleted file mode 100644 index a8a4755..0000000 --- a/website/src/components/homepage/Code/index.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import React from 'react'; -import CodeBlock from '@theme/CodeBlock'; -import clsx from 'clsx'; -import styles from './styles.module.css'; -const exampleReport = ` -{ - "results": { - "tool": { - "name": "AnyTool" - }, - "summary": { - "tests": 1, - "passed": 1, - "failed": 0, - "pending": 0, - "skipped": 0, - "other": 0, - "start": 1706828654274, - "stop": 1706828655782 - }, - "tests": [ - { - "name": "should be able to login", - "status": "passed", - "duration": 801 - } - ], - "environment": { - "appName": "MyApp", - "buildName": "MyApp", - "buildNumber": "100" - } - } -} -`; - -const schemaExplanation = [ - { - field: 'stats', - description: 'Overall test execution statistics', - children: [ - { field: 'suites', description: 'Total number of test suites executed' }, - { field: 'tests', description: 'Total number of individual tests run' }, - { field: 'passes', description: 'Number of passing tests' }, - { field: 'failures', description: 'Number of failed tests' }, - { field: 'pending', description: 'Number of skipped or pending tests' }, - { field: 'duration', description: 'Total execution time in milliseconds' }, - { field: 'start', description: 'Test execution start timestamp' }, - { field: 'end', description: 'Test execution end timestamp' }, - ], - }, - { - field: 'results', - description: 'Array of test suite results', - children: [ - { field: 'title', description: 'Name of the test suite' }, - { - field: 'tests', - description: 'Array of test results within the suite', - children: [ - { field: 'title', description: 'Name of the individual test' }, - { field: 'status', description: 'Test result status (passed, failed, pending)' }, - { field: 'duration', description: 'Individual test execution time' }, - { field: 'error', description: 'Error message if the test failed' }, - ], - }, - ], - }, -]; - -function SchemaItem({ field, description, children }) { - return ( -
-
- {field} - {description} -
- {children && ( -
- {children.map((child, idx) => ( - - ))} -
- )} -
- ); -} - -function CodeFrame({ children }) { - return ( -
-
-
- - - -
-
ctrf/ctrf-report.json
-
-
- {children} -
-
- ); -} - -export default function CodeSection(): JSX.Element { - return ( -
-

Straightforward JSON Report

-
-
- - - {exampleReport} - - -
- -
-
-
-
-

Simple Design

-

Just three essential properties required for each test - name, duration, and status, simplifying the test report while capturing crucial information.

-
-
-
-
-

Comprehensive Data

-

Beyond the essential properties, the report includes a variety of optional properties, encompassing extensive detail about the tests, tools, environment, and build.

-
-
-
-
-

Fully Extendable

-

The report is designed with extendability at its core, allowing for the addition of extra properties, catering to additional report requirements.

-
-
-
-
-
-
- ); -} diff --git a/website/src/components/homepage/Code/styles.module.css b/website/src/components/homepage/Code/styles.module.css deleted file mode 100644 index 3ff813f..0000000 --- a/website/src/components/homepage/Code/styles.module.css +++ /dev/null @@ -1,74 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} - -.code-frame { - border-radius: 8px; - overflow: hidden; - margin-bottom: 1rem; - border: 1px solid var(--ifm-color-emphasis-200); - background: var(--ifm-background-surface-color); -} - -.code-frame__header { - padding: 0.75rem; - background: var(--ifm-background-surface-color); - border-bottom: 1px solid var(--ifm-color-emphasis-200); - display: flex; - align-items: center; -} - -.code-frame__buttons { - display: flex; - gap: 0.5rem; - margin-right: 1rem; -} - -.code-frame__button { - width: 12px; - height: 12px; - border-radius: 50%; -} - -.code-frame__button--red { - background-color: #ff5f56; -} - -.code-frame__button--yellow { - background-color: #ffbd2e; -} - -.code-frame__button--green { - background-color: #27c93f; -} - -.code-frame__title { - color: var(--ifm-color-emphasis-600); - font-size: 0.875rem; - font-family: var(--ifm-font-family-monospace); -} - -.code-frame :global(.theme-code-block) { - border-radius: 0; - margin: 0; -} - -.code-frame :global(.theme-code-block pre) { - margin: 0; -} - -.code-frame :global(.margin-bottom--xl) { - margin-bottom: 0 !important; -} - -.code-frame__button:hover { - filter: brightness(0.9); -} diff --git a/website/src/components/homepage/DeveloperTools/index.tsx b/website/src/components/homepage/DeveloperTools/index.tsx deleted file mode 100644 index cba96a8..0000000 --- a/website/src/components/homepage/DeveloperTools/index.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import styles from './styles.module.css'; -import clsx from 'clsx'; - -import ReactIcon from '@site/static/img/playwright.svg'; -import VueIcon from '@site/static/img/jest.svg'; -import AngularIcon from '@site/static/img/jenkins.svg'; -import DevToolsIcon from '@site/static/img/github.svg'; - -const DeveloperTools: React.FC = () => { - return ( -
-
-
-

Connect Any Framework to Developer Tools

-

CTRF seamlessly bridges your favorite frameworks with powerful developer tools

-
- -
-
- - - -
- -
- {/* Animated arrows will be created using CSS */} -
-
-
-
- -
- -
-
-
-
- ); -}; - -export default DeveloperTools; diff --git a/website/src/components/homepage/DeveloperTools/styles.module.css b/website/src/components/homepage/DeveloperTools/styles.module.css deleted file mode 100644 index 79cab10..0000000 --- a/website/src/components/homepage/DeveloperTools/styles.module.css +++ /dev/null @@ -1,89 +0,0 @@ -.container { - padding: 4rem 0; - width: 100%; -} - -.content { - display: flex; - max-width: 1200px; - margin: 0 auto; - align-items: center; - gap: 2rem; -} - -.textSection { - flex: 1; -} - -.visualSection { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - position: relative; -} - -.frameworkIcons { - display: flex; - flex-direction: column; - gap: 2rem; -} - -.icon { - width: 32px; - height: 32px; -} - -.devToolsIcon { - width: 48px; - height: 48px; -} - -.arrows { - position: absolute; - left: 50%; - transform: translateX(-50%); -} - -.arrow { - width: 100px; - height: 2px; - background: var(--ifm-color-primary); - position: relative; - margin: 20px 0; -} - -.arrow::after { - content: ''; - position: absolute; - right: -10px; - top: -4px; - width: 10px; - height: 10px; - border-top: 2px solid var(--ifm-color-primary); - border-right: 2px solid var(--ifm-color-primary); - transform: rotate(45deg); -} - -@keyframes flowRight { - 0% { - opacity: 0; - transform: translateX(-20px); - } - 100% { - opacity: 1; - transform: translateX(0); - } -} - -.arrow { - animation: flowRight 1.5s infinite; -} - -.arrow:nth-child(2) { - animation-delay: 0.2s; -} - -.arrow:nth-child(3) { - animation-delay: 0.4s; -} diff --git a/website/src/components/homepage/Features/index.tsx b/website/src/components/homepage/Features/index.tsx deleted file mode 100644 index 86e6480..0000000 --- a/website/src/components/homepage/Features/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; - -type FeatureItem = { - title: string; - description: JSX.Element; -}; - -const FeatureList: FeatureItem[] = [ - { - title: 'Consistency', - description: ( - <> - The same JSON structure no matter the test framework. - - ), - }, - { - title: 'Developer Tooling', - description: ( - <> - A wide variety of plugins for integration with developer tools. - - ), - }, - { - title: 'Open Source', - description: ( - <> - Created by the community, open-source, licensed under MIT, with millions of user downloads - - ), - }, -]; - -function Feature({ title, description }: FeatureItem) { - return ( -
-
-
-
-
- {title} -

{description}

-
-
-
- ); -} - -export default function Features(): JSX.Element { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- ); -} diff --git a/website/src/components/homepage/Features/styles.module.css b/website/src/components/homepage/Features/styles.module.css deleted file mode 100644 index 926cc46..0000000 --- a/website/src/components/homepage/Features/styles.module.css +++ /dev/null @@ -1,37 +0,0 @@ -.features { - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 96px; - width: 96px; - margin-bottom: 0.5rem; -} - -:global(.card) { - border: none; - box-shadow: 0 8px 28px -6px rgba(24, 39, 75, 0.12), - 0 18px 88px -4px rgba(24, 39, 75, 0.14); - transition: all 0.3s ease-in-out; - height: 100%; -} - -:global(.card:hover) { - transform: translateY(-5px); -} - -:global(.card__header) { - border-bottom: none; - padding: 1.5rem 1rem 0; -} - -:global(.card__body) { - padding: 0.5rem 2rem 1.5rem; -} - -@media screen and (max-width: 996px) { - .features { - padding: 1rem; - } -} diff --git a/website/src/components/homepage/OpenSource/index.tsx b/website/src/components/homepage/OpenSource/index.tsx deleted file mode 100644 index 9f2c946..0000000 --- a/website/src/components/homepage/OpenSource/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import clsx from 'clsx'; -import styles from './styles.module.css'; - -type ToolingItem = { - Svg: React.ComponentType>; - name: string; -}; - -function Tooling({ Svg, name }: ToolingItem) { - return ( -
-
- -
{name}
-
-
- ); -} - -export default function HomepageTooling(): JSX.Element { - return ( -
- -
-
-

CTRF tooling is free and open source

-
-
-
- - ); -} diff --git a/website/src/components/homepage/OpenSource/styles.module.css b/website/src/components/homepage/OpenSource/styles.module.css deleted file mode 100644 index d1e9da7..0000000 --- a/website/src/components/homepage/OpenSource/styles.module.css +++ /dev/null @@ -1,50 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 100px; - width: 100px; -} - -.toolingContainer { - background-color: #1b1b1d; - width: 100%; - color: #f5f6f7; - padding: 20px 0; - text-align: center; -} - -.toolingItem { - position: relative; -} - -.tooltip { - visibility: hidden; - position: absolute; - bottom: 110%; - left: 50%; - transform: translateX(-50%); - background-color: #2b3137; - border: 2px solid #45ba4b; - color: #fff; - text-align: center; - padding: 8px 12px; - border-radius: 4px; - font-size: 0.9rem; - font-weight: 800; - white-space: nowrap; - z-index: 1000; - opacity: 0; - transition: opacity 0.2s ease-in-out; - box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); -} - -.toolingItem:hover .tooltip { - visibility: visible; - opacity: 1; -} - diff --git a/website/src/components/homepage/Schema/index.tsx b/website/src/components/homepage/Schema/index.tsx deleted file mode 100644 index 7c1248a..0000000 --- a/website/src/components/homepage/Schema/index.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import clsx from 'clsx'; -import styles from './styles.module.css'; - -export default function Schema(): JSX.Element { - return ( -
-
-

Why Choose Us?

-

- Our solution is designed to simplify test reporting and enhance team collaboration. -

-
-
- ); -} diff --git a/website/src/components/homepage/Schema/styles.module.css b/website/src/components/homepage/Schema/styles.module.css deleted file mode 100644 index b248eb2..0000000 --- a/website/src/components/homepage/Schema/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} diff --git a/website/src/components/homepage/Tooling/index.tsx b/website/src/components/homepage/Tooling/index.tsx deleted file mode 100644 index 315d2f6..0000000 --- a/website/src/components/homepage/Tooling/index.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import clsx from 'clsx'; -import styles from './styles.module.css'; -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -type ToolingItem = { - name: string; - image: string; - hasDarkVersion?: boolean; -}; - -const FeatureList: ToolingItem[] = [ - { name: 'Playwright', image: '/img/playwright.svg' }, - { name: 'Jest', image: '/img/jest.svg' }, - { name: 'Cypress', image: '/img/cypress.svg', hasDarkVersion: true }, - { name: 'WebdriverIO', image: '/img/wdio.svg' }, - { name: 'Go', image: '/img/go.svg' }, - { name: 'Postman', image: '/img/postman.svg' }, - { name: 'Mocha', image: '/img/mochajs.svg' }, - { name: '.NET', image: '/img/dotnet.svg' }, - { name: 'xUnit', image: '/img/xunit.svg' }, - { name: 'Nightwatch', image: '/img/nightwatch.svg' }, - { name: 'JUnit', image: '/img/junit.svg' }, - { name: 'Selenium', image: '/img/selenium.svg' }, - { name: 'Vitest', image: '/img/vitest.svg' }, - { name: 'Jasmine', image: '/img/jasmine.svg' }, - { name: 'Pytest', image: '/img/pytest.svg' }, - { name: 'RSpec', image: '/img/rspec.svg' }, - { name: 'GitHub', image: '/img/github.svg', hasDarkVersion: true }, - { name: 'Slack', image: '/img/slack.svg' }, - { name: 'Microsoft Teams', image: '/img/teams.svg' }, - { name: 'Jenkins', image: '/img/jenkins.svg' }, - { name: 'Mattermost', image: '/img/mattermost.svg' }, - { name: 'OpenAI', image: '/img/openai.svg', hasDarkVersion: true }, - { name: 'Anthropic', image: '/img/anthropic.svg', hasDarkVersion: true }, - { name: 'Jira', image: '/img/jira2.svg' }, -]; - -function Tooling({ name, image, hasDarkVersion }: ToolingItem) { - const imagePath = image.replace('.svg', ''); - return ( -
-
- {hasDarkVersion ? ( - - ) : ( - {name} - )} -
{name}
-
-
- ); -} - -export default function HomepageTooling(): JSX.Element { - return ( -
-
-
-

Supporting your favorite test frameworks and developer tools

-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
-
- ); -} diff --git a/website/src/components/homepage/Tooling/styles.module.css b/website/src/components/homepage/Tooling/styles.module.css deleted file mode 100644 index 7c787eb..0000000 --- a/website/src/components/homepage/Tooling/styles.module.css +++ /dev/null @@ -1,64 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 100px; - width: 100px; -} - -.toolingContainer { - background: var(--ifm-background-color); - color: var(--ifm-font-color-base); - width: 100%; - padding: 20px 0; - text-align: center; -} - -.toolingItem { - position: relative; -} - -@media screen and (max-width: 996px) { - .toolingContainer { - padding: 2rem; - } -} - -.tooltip { - visibility: hidden; - position: absolute; - bottom: 110%; - left: 50%; - transform: translateX(-50%); - background-color: var(--ifm-background-surface-color); - border: 2px solid var(--ifm-color-primary); - color: var(--ifm-font-color-base); - text-align: center; - padding: 8px 12px; - border-radius: 4px; - font-size: 0.9rem; - font-weight: 800; - white-space: nowrap; - z-index: 1000; - opacity: 0; - transition: opacity 0.2s ease-in-out; - box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); -} - -.toolingItem:hover .tooltip { - visibility: visible; - opacity: 1; -} - -.toolingGrid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); - gap: 2rem; - padding: 2rem; - background: var(--ifm-background-color); -} - diff --git a/website/src/css/custom.css b/website/src/css/custom.css deleted file mode 100644 index 65e0aa2..0000000 --- a/website/src/css/custom.css +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { - --ifm-color-primary: #45ba4b; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} - -.header-github-link:hover { - opacity: 0.6; -} - -.header-github-link::before { - content: ''; - width: 24px; - height: 24px; - display: flex; - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; -} - -[data-theme='dark'] .header-github-link::before { - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") - no-repeat; -} diff --git a/website/src/pages/Card.module.css b/website/src/pages/Card.module.css deleted file mode 100644 index 471bd53..0000000 --- a/website/src/pages/Card.module.css +++ /dev/null @@ -1,44 +0,0 @@ -.card { - margin: 10px; - border: 1px solid #ddd; - border-radius: 8px; - box-shadow: 0 4px 8px rgba(0,0,0,0.1); - overflow: hidden; - transition: transform 0.3s ease, box-shadow 0.3s ease; - } - - .card:hover { - transform: translateY(-5px); - box-shadow: 0 6px 12px rgba(0,0,0,0.2); - } - - .cardImage { - width: 100%; - height: auto; - display: block; - } - - .cardBody { - padding: 15px; - text-align: center; - } - - .cardTitle { - margin: 10px 0; - font-size: 1.2em; - font-weight: bold; - } - - .cardDescription { - font-size: 0.9em; - color: #555; - } - - .cardContainer { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 20px; - padding: 20px; - } - \ No newline at end of file diff --git a/website/src/pages/index.module.css b/website/src/pages/index.module.css deleted file mode 100644 index c11efdc..0000000 --- a/website/src/pages/index.module.css +++ /dev/null @@ -1,73 +0,0 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - - .heroTitle { - font-size: 60px; - color: #f5f6f7; -} - -@media screen and (max-width: 996px) { - .heroTitle { - font-size: 30px; - } - .heroBanner { - padding: 2rem; - } -} - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; - background-color: #2b3137; - text-align: left; -} - -.toolingContainer { - background-color: #2b3137; - width: 100%; - color: #f5f6f7; - padding: 20px 0; - text-align: center; -} - -.customButton { - background-color: transparent !important; - border: 2px solid #45ba4b !important; - color: white !important; - margin: 10px !important; - transition: all 0.3s ease !important; -} - -.customButton:hover { - background-color: #45ba4b !important; - color: #2b3137 !important; - border-color: #45ba4b !important; -} - -@media screen and (max-width: 768px) { - .customButton - { - width: calc(100% - 20px) !important; - display: block !important; - margin: 20px !important; - } -} - -@media screen and (max-width: 768px) { - .githubButtons { - width: calc(100% - 20px) !important; - display: block !important; - margin: 20px auto !important; - gap: 20px !important; - text-align: center !important; - transform: scale(1.5) !important; - transform-origin: center !important; - display: 'inline-flex', - } -} - - diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx deleted file mode 100644 index b6be8fe..0000000 --- a/website/src/pages/index.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Layout from '@theme/Layout'; -import HomepageFeatures from '@site/src/components/homepage/Features'; -import HomepageTooling from '@site/src/components/homepage/Tooling'; -// import DeveloperTools from '@site/src/components/homepage/DeveloperTools'; -import HomepageCode from '../components/homepage/Code'; -import Heading from '@theme/Heading'; - -import styles from './index.module.css'; -import GitHubButton from 'react-github-btn'; - -function HomepageHeader() { - return ( -
-
- - CTRF - Unified JSON Test Report With Seamless Developer Tool Integration - -
- - What is CTRF? - - - Specification - - - Follow - Star - Discuss - -
-
-
- ); -} - -export default function Home(): JSX.Element { - const { siteConfig } = useDocusaurusContext(); - return ( - - - -
-
💚
-

CTRF tooling is free and open source

-

You can support the project by following on GitHub

-
- - - -
- - {/* */} -
-
- ); -} diff --git a/website/src/pages/integrations.module.css b/website/src/pages/integrations.module.css deleted file mode 100644 index d628a3c..0000000 --- a/website/src/pages/integrations.module.css +++ /dev/null @@ -1,230 +0,0 @@ -.container { - display: flex; - padding: 2rem; - gap: 2rem; -} - -.sidebar { - width: 250px; - flex-shrink: 0; -} - -.content { - flex: 1; -} - -.grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 2rem; -} - -.card { - border: 1px solid var(--ifm-color-emphasis-200); - border-radius: 8px; - overflow: hidden; - transition: transform 0.2s ease-in-out; - background: var(--ifm-background-color); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - display: flex; - flex-direction: column; - height: 100%; -} - -.card:hover { - transform: translateY(-4px); -} - -.cardImage { - width: 100%; - height: 160px; - object-fit: contain; - padding: 1rem; - background-color: var(--ifm-background-surface-color); -} - -.cardContent { - padding: 1rem; - display: flex; - flex-direction: column; - flex: 1; - min-height: 0; -} - -.cardHeader { - margin-bottom: 1rem; -} - -.description { - flex: 1; - margin-bottom: 1rem; -} - -.cardFooter { - margin-top: auto; - display: flex; - justify-content: flex-end; -} - -.tags { - display: flex; - gap: 0.5rem; - margin: 0.5rem 0; - flex-wrap: wrap; -} - -.tag { - padding: 0.25rem 0.75rem; - border-radius: 999px; - font-size: 0.875rem; - font-weight: 500; -} - -.officialTag { - background-color: var(--ifm-color-primary); - color: white; -} - -.communityTag { - background-color: #6f42c1; - color: white; -} - -.builtInTag { - background-color: #0366d6; - color: white; -} - -.filterSection { - background: var(--ifm-background-surface-color); - padding: 1.5rem; - border-radius: 8px; - border: 1px solid var(--ifm-color-emphasis-200); -} - -.filterGroup { - margin-bottom: 1rem; -} - -.filterGroup label { - display: block; - margin-bottom: 0.5rem; - font-weight: 500; -} - -.filterGroup select { - width: 100%; - padding: 0.5rem; - border-radius: 4px; - border: 1px solid var(--ifm-color-emphasis-300); - background: var(--ifm-background-color); - color: var(--ifm-color-content); -} - -.githubButton { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - border-radius: 50%; - background-color: transparent; - color: #24292e; - border: none; - transition: transform 0.2s ease; -} - -.githubButton:hover { - transform: translateY(-2px); -} - -[data-theme='dark'] .githubButton { - background-color: transparent; - color: #c9d1d9; -} - -.githubIcon { - fill: currentColor; - width: 80px; - height: 80px; -} - -.checkboxLabel { - display: flex; - align-items: center; - gap: 0.5rem; - margin-bottom: 0.5rem; - cursor: pointer; - user-select: none; - position: relative; - padding-left: 28px; -} - -.checkboxLabel input[type="checkbox"] { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; -} - -.checkboxLabel span::before { - content: ''; - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); - width: 18px; - height: 18px; - border: 2px solid var(--ifm-color-primary); - border-radius: 4px; - background-color: var(--ifm-background-color); - transition: all 0.2s ease-in-out; -} - -.checkboxLabel span::after { - content: ''; - position: absolute; - left: 6px; - top: 50%; - width: 6px; - height: 10px; - border: solid white; - border-width: 0 2px 2px 0; - opacity: 0; - transform: translateY(-65%) rotate(45deg); - transition: all 0.2s ease-in-out; -} - -.checkboxLabel input[type="checkbox"]:checked ~ span::before { - background-color: var(--ifm-color-primary); - border-color: var(--ifm-color-primary); -} - -.checkboxLabel input[type="checkbox"]:checked ~ span::after { - opacity: 1; -} - -.checkboxLabel:hover span::before { - border-color: var(--ifm-color-primary-darker); -} - -.filterGroup h4 { - margin-bottom: 1rem; - font-size: 1rem; - font-weight: 600; -} - -@media (max-width: 768px) { - .container { - flex-direction: column; - } - - .sidebar { - display: none; - } - - .content { - width: 100%; - } -} \ No newline at end of file diff --git a/website/src/pages/integrations.tsx b/website/src/pages/integrations.tsx deleted file mode 100644 index 298d45f..0000000 --- a/website/src/pages/integrations.tsx +++ /dev/null @@ -1,636 +0,0 @@ -import React, { useState } from 'react'; -import Layout from '@theme/Layout'; -import styles from './integrations.module.css'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import ThemedImage from '@theme/ThemedImage'; - -interface Reporter { - name: string; - description: string; - image?: string; - source: 'official' | 'built-in' | 'community'; - language: string; - type: 'reporter' | 'plugin'; - githubUrl: string; - category?: 'CI' | 'Messaging' | 'AI' | 'Platform' | 'Utility'; -} - -const OfficialTag = () => ( - - Official - -); - -const BuiltInTag = () => ( - - Built-in - -); - -const CommunityTag = () => ( - - Community - -); - -const ReporterCard: React.FC = React.memo(({ name, description, image, source, language, type, githubUrl, category }) => { - const hasDarkVersion = ['github', 'cypress', 'openai', 'anthropic', 'openrouter', 'grok']; - - const baseImage = useBaseUrl(image || '/img/no-image.svg'); - const darkImagePath = image && hasDarkVersion.some(name => image.includes(name)) - ? image.replace('.svg', '-dark.svg') - : image || '/img/no-image.svg'; - const darkImage = useBaseUrl(darkImagePath); - - return ( -
- -
-
-

{name}

-
- {source === 'official' && } - {source === 'built-in' && } - {source === 'community' && } -
-
-

{description}

- -
-
- ); -}); - -ReporterCard.displayName = 'ReporterCard'; - -const ReportersPage: React.FC = () => { - const [filters, setFilters] = useState({ - languages: new Set(), - types: new Set(), - sources: new Set(), - categories: new Set(), - showAll: true, - }); - - const reporters: Reporter[] = [ - { - name: 'Jest Reporter', - description: 'Jest is a delightful JavaScript Testing Framework with a focus on simplicity.', - image: '/img/jest.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/jest-ctrf-json-reporter', - }, - { - name: 'Playwright Reporter', - description: 'Playwright enables reliable end-to-end testing for modern web apps.', - image: '/img/playwright.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/playwright-ctrf-json-report', - }, - { - name: 'Cypress Reporter', - description: 'With Cypress, you can easily create tests for your modern web applications, debug them visually, and automatically run them in your continuous integration builds.', - image: '/img/cypress.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/cypress-ctrf-json-reporter', - }, - { - name: 'WebdriverIO Reporter', - description: 'Next-gen browser and mobile automation test framework for Node.js.', - image: '/img/wdio.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/wdio-ctrf-json-reporter', - }, - { - name: 'Go Test Reporter', - description: 'Build simple, secure, scalable systems with Go', - image: '/img/go.svg', - source: 'official', - language: 'Go', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/go-ctrf-json-reporter', - }, - { - name: 'Postman Newman Reporter', - description: 'Newman is a command-line tool for running Postman Collections', - image: '/img/postman.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/newman-reporter-ctrf-json', - }, - { - name: 'Mocha Reporter', - description: 'Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun.', - image: '/img/mochajs.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/mocha-ctrf-json-reporter', - }, - { - name: '.NET Reporter', - description: '.NET is the free, open-source, cross-platform framework for building modern apps and powerful cloud services.', - image: '/img/dotnet.svg', - source: 'official', - language: 'C#', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/dotnet-ctrf-json-reporter', - }, - { - name: 'MSTest Reporter', - description: 'Microsoft Testing Framework is a test framework for .NET applications.', - image: '/img/dotnet.svg', - source: 'official', - language: 'C#', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/dotnet-ctrf-json-reporter', - }, - { - name: 'Nunit Reporter', - description: 'NUnit is a unit-testing framework for all .NET languages.', - image: '/img/dotnet.svg', - source: 'official', - language: 'C#', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/dotnet-ctrf-json-reporter', - }, - { - name: 'xUnit Reporter', - description: 'xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework.', - image: '/img/xunit.svg', - source: 'built-in', - language: 'C#', - type: 'reporter', - githubUrl: 'https://github.com/xunit/xunit', - }, - { - name: 'Nightwatch Reporter', - description: 'No-compromise test automation framework with a powerful set of tools to write, run and debug your tests across web and native mobile applications.', - image: '/img/nightwatch.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/nightwatch-ctrf-json-reporter', - }, - { - name: 'JUnit Reporter', - description: 'Programmer-friendly testing framework for Java and the JVM', - image: '/img/junit.svg', - source: 'community', - language: 'Java', - type: 'reporter', - githubUrl: 'https://github.com/alexshamrai/junit-ctrf-reporter', - }, - { - name: 'Selenium Reporter', - description: 'Selenium automates browsers. That\'s it!', - image: '/img/selenium.svg', - source: 'official', - language: 'Java', - type: 'reporter', - githubUrl: 'https://github.com/orgs/ctrf-io/repositories', - }, - { - name: 'CodeceptJS Reporter', - description: 'Supercharged End 2 End Testing', - image: '/img/codeceptjs.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/codeceptjs-ctrf-json-reporter', - }, - { - name: 'Jasmine Reporter', - description: 'Behavior Driven Development testing framework for JavaScript.', - image: '/img/jasmine.svg', - source: 'official', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/ctrf-io/jasmine-ctrf-json-reporter', - }, - { - name: 'Pytest Reporter', - description: 'The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.', - image: '/img/pytest.svg', - source: 'community', - language: 'Python', - type: 'reporter', - githubUrl: 'https://github.com/infopulse/pytest-common-test-report-json', - }, - { - name: 'RSpec Reporter', - description: 'Behaviour Driven Development for Ruby. Making TDD Productive and Fun.', - image: '/img/rspec.svg', - source: 'community', - language: 'Ruby', - type: 'reporter', - githubUrl: 'https://github.com/dusc-dev/rspec-ctrf', - }, - { - name: 'Rust Reporter', - description: 'A language empowering everyone to build reliable and efficient software.', - image: '/img/rust.svg', - source: 'community', - language: 'Rust', - type: 'reporter', - githubUrl: 'https://gitlab.com/ctrf-rs/ctrf-rs', - }, - { - name: 'Cucumber Ruby Reporter', - description: 'Cucumber Ruby lets you write automated tests in plain language', - image: '/img/cucumber.svg', - source: 'community', - language: 'Ruby', - type: 'reporter', - githubUrl: 'https://github.com/dusc-dev/cucumber-ctrf', - }, - { - name: 'Vitest Reporter', - description: 'Next Generation Testing Framework - D2T implementation', - image: '/img/vitest.svg', - source: 'community', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/david2tm/d2t-vitest-ctrf-json-reporter', - }, - { - name: 'Vitest Reporter', - description: 'Next Generation Testing Framework - Avinya implementation', - image: '/img/vitest.svg', - source: 'community', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/avinyaweb/vitest-ctrf-json-reporter', - }, - // Plugins - { - name: 'GitHub Plugin', - description: 'Build and ship software on a single, collaborative platform', - image: '/img/github.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/github-test-reporter', - category: 'CI' - }, - { - name: 'Slack Plugin', - description: 'Slack is a new way to communicate with your team', - image: '/img/slack.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/slack-test-reporter', - category: 'Messaging' - }, - { - name: 'Microsoft Teams Plugin', - description: 'Connect and collaborate with Teams, the smart place to work—at home, in the office, and on-the-go.', - image: '/img/teams.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/microsoft-teams-test-reporter', - category: 'Messaging' - }, - { - name: 'Jenkins Plugin', - description: 'The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.', - image: '/img/jenkins.svg', - source: 'official', - language: 'Java', - type: 'plugin', - githubUrl: 'https://github.com/jenkinsci/ctrf-json-plugin', - category: 'CI' - }, - { - name: 'Mattermost Plugin', - description: 'Collaboration for Mission-Critical Work.', - image: '/img/mattermost.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/mattermost-test-reporter', - category: 'Messaging' - }, - { - name: 'Katalon Studio Plugin', - description: 'Katalon is the all-in-one test automation platform for easy web, mobile, API, and desktop app testing.', - image: '/img/katalon.svg', - source: 'built-in', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/katalon-studio/katalon-studio-ctrf-report-plugin', - category: 'Platform' - }, - { - name: 'OpenAI Plugin', - description: 'OpenAI is an AI research and deployment company.', - image: '/img/openai.svg', - source: 'official', - language: 'None', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Anthropic Plugin', - description: 'Anthropic is an AI safety and research company that\'s working to build reliable, interpretable, and steerable AI systems.', - image: '/img/anthropic.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Azure OpenAI Plugin', - description: 'Azure OpenAI Service offers industry-leading coding and language AI models that you can fine-tune to your specific needs for a variety of use cases.', - image: '/img/azure.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Jira Plugin', - description: 'The only project management tool you need to plan and track work across every team.', - image: '/img/jira.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/jira-test-reporter', - category: 'Utility' - }, - { - name: 'DeepSeek Plugin', - description: 'DeepSeek, unravel the mystery of AGI with curiosity. Answer the essential question with long-termism.', - image: '/img/deepseek.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Perplexity Plugin', - description: 'Perplexity is a free AI-powered answer engine that provides accurate, trusted, and real-time answers to any question.', - image: '/img/perplexity.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Mistral Plugin', - description: 'Mistral AI is the world\'s greenest and leading independent AI lab', - image: '/img/mistral.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Gemini Plugin', - description: 'Get help with writing, planning, learning, and more from Google AI.', - image: '/img/gemini.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'OpenRouter Plugin', - description: 'A unified interface for LLMs', - image: '/img/openrouter.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'Grok Plugin', - description: 'AI company with the mission of advancing scientific discovery and gaining a deeper understanding of our universe.', - image: '/img/grok.svg', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ai-test-reporter', - category: 'AI' - }, - { - name: 'CTRF Utility', - description: 'Various CTRF utilities available programatically and by command line', - source: 'official', - language: 'JavaScript', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/ctrf-cli', - category: 'Utility' - }, - { - name: 'Junit Converter', - description: 'Convert JUnit reports to CTRF reports', - image: '/img/junit.svg', - source: 'official', - language: 'Java', - type: 'plugin', - githubUrl: 'https://github.com/ctrf-io/junit-to-ctrf', - category: 'Utility' - }, - { - name: 'Cotton', - description: 'Cotton is a markdown-formatted API specification runner. Cotton promotes the readability and understandability of API specification.', - source: 'built-in', - language: 'JavaScript', - type: 'reporter', - githubUrl: 'https://github.com/chonla/cotton', - } - - ]; - - const handleFilterChange = React.useCallback( - (filterType: 'languages' | 'types' | 'sources' | 'categories', value: string) => { - setFilters(prev => { - const newSet = new Set(prev[filterType]); - if (newSet.has(value)) { - newSet.delete(value); - } else { - newSet.add(value); - } - return { - ...prev, - [filterType]: newSet, - showAll: false - }; - }); - }, - [] - ); - - const handleShowAll = React.useCallback(() => { - setFilters({ - languages: new Set(), - types: new Set(), - sources: new Set(), - categories: new Set(), - showAll: true, - }); - }, []); - - const filteredReporters = React.useMemo(() => - reporters.filter(reporter => { - if (filters.showAll) return true; - - if (filters.languages.size > 0 && !filters.languages.has(reporter.language)) return false; - if (filters.types.size > 0 && !filters.types.has(reporter.type)) return false; - if (filters.sources.size > 0 && !filters.sources.has(reporter.source)) return false; - if (filters.categories.size > 0) { - if (reporter.type === 'plugin') { - if (!reporter.category || !filters.categories.has(reporter.category)) return false; - } else { - return false; - } - } - return true; - }), - [filters] - ); - - return ( - -
- - -
-
- {filteredReporters.map((reporter, index) => ( - - ))} -
-
-
-
- ); -}; - -export default ReportersPage; - \ No newline at end of file diff --git a/website/src/styles/Integrations.module.scss b/website/src/styles/Integrations.module.scss deleted file mode 100644 index 32bc5e1..0000000 --- a/website/src/styles/Integrations.module.scss +++ /dev/null @@ -1,37 +0,0 @@ -.tag { - padding: 4px 8px; - border-radius: 4px; - font-size: 0.8rem; - margin-right: 8px; - font-weight: 500; -} - -.officialTag { - background-color: var(--theme-green); - color: white; -} - -.builtInTag { - background-color: #0366d6; - color: white; -} - -.communityTag { - background-color: #6f42c1; - color: white; -} - -.tag.officialTag { - background-color: var(--theme-green); - color: white; -} - -.tag.builtInTag { - background-color: #0366d6; - color: white; -} - -.tag.communityTag { - background-color: #6f42c1; - color: white; -} \ No newline at end of file diff --git a/website/static/.nojekyll b/website/static/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/website/static/assets/github/alert.svg b/website/static/assets/github/alert.svg deleted file mode 100644 index 41097f6..0000000 --- a/website/static/assets/github/alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/arrow-right.svg b/website/static/assets/github/arrow-right.svg deleted file mode 100644 index 661a5ce..0000000 --- a/website/static/assets/github/arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/beaker.svg b/website/static/assets/github/beaker.svg deleted file mode 100644 index aa4be7d..0000000 --- a/website/static/assets/github/beaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/check-circle.svg b/website/static/assets/github/check-circle.svg deleted file mode 100644 index 6d4822c..0000000 --- a/website/static/assets/github/check-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/clock.svg b/website/static/assets/github/clock.svg deleted file mode 100644 index 315420e..0000000 --- a/website/static/assets/github/clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/commit.svg b/website/static/assets/github/commit.svg deleted file mode 100644 index 390c75f..0000000 --- a/website/static/assets/github/commit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/gear.svg b/website/static/assets/github/gear.svg deleted file mode 100644 index 68d5fce..0000000 --- a/website/static/assets/github/gear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/git-branch.svg b/website/static/assets/github/git-branch.svg deleted file mode 100644 index 0095e45..0000000 --- a/website/static/assets/github/git-branch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/git-pull-request.svg b/website/static/assets/github/git-pull-request.svg deleted file mode 100644 index 9ed9413..0000000 --- a/website/static/assets/github/git-pull-request.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/heart-fill.svg b/website/static/assets/github/heart-fill.svg deleted file mode 100644 index 58da3bb..0000000 --- a/website/static/assets/github/heart-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/hourglass.svg b/website/static/assets/github/hourglass.svg deleted file mode 100644 index 6a69483..0000000 --- a/website/static/assets/github/hourglass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/info.svg b/website/static/assets/github/info.svg deleted file mode 100644 index f6a176e..0000000 --- a/website/static/assets/github/info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/link.svg b/website/static/assets/github/link.svg deleted file mode 100644 index e9faad0..0000000 --- a/website/static/assets/github/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/play.svg b/website/static/assets/github/play.svg deleted file mode 100644 index ed87482..0000000 --- a/website/static/assets/github/play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/pulse.svg b/website/static/assets/github/pulse.svg deleted file mode 100644 index c929687..0000000 --- a/website/static/assets/github/pulse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/question.svg b/website/static/assets/github/question.svg deleted file mode 100644 index 7d1900d..0000000 --- a/website/static/assets/github/question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/skip.svg b/website/static/assets/github/skip.svg deleted file mode 100644 index d4bee72..0000000 --- a/website/static/assets/github/skip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/star-fill.svg b/website/static/assets/github/star-fill.svg deleted file mode 100644 index 902d6e7..0000000 --- a/website/static/assets/github/star-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/star.svg b/website/static/assets/github/star.svg deleted file mode 100644 index c0fd2d5..0000000 --- a/website/static/assets/github/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/stop.svg b/website/static/assets/github/stop.svg deleted file mode 100644 index 4f0cfaa..0000000 --- a/website/static/assets/github/stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/sync.svg b/website/static/assets/github/sync.svg deleted file mode 100644 index 143551a..0000000 --- a/website/static/assets/github/sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/tools.svg b/website/static/assets/github/tools.svg deleted file mode 100644 index 808e548..0000000 --- a/website/static/assets/github/tools.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/versions.svg b/website/static/assets/github/versions.svg deleted file mode 100644 index dfa80a3..0000000 --- a/website/static/assets/github/versions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/workflow.svg b/website/static/assets/github/workflow.svg deleted file mode 100644 index 1d8d4ae..0000000 --- a/website/static/assets/github/workflow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/assets/github/x-circle.svg b/website/static/assets/github/x-circle.svg deleted file mode 100644 index b959a1b..0000000 --- a/website/static/assets/github/x-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/ctrf-schema.json b/website/static/ctrf-schema.json deleted file mode 100644 index 623223a..0000000 --- a/website/static/ctrf-schema.json +++ /dev/null @@ -1,251 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "reportFormat": { - "type": "string", - "enum": ["CTRF"] - }, - "specVersion": { - "type": "string", - "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" - }, - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "generatedBy": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true }, - "results": { - "type": "object", - "properties": { - "tool": { - "type": "object", - "properties": { - "name": { "type": "string", "minLength": 1 }, - "version": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name"] - }, - "summary": { - "type": "object", - "properties": { - "tests": { "type": "integer" }, - "passed": { "type": "integer" }, - "failed": { "type": "integer" }, - "skipped": { "type": "integer" }, - "pending": { "type": "integer" }, - "other": { "type": "integer" }, - "flaky": { "type": "integer" }, - "suites": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "duration": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tests", "passed", "failed", "skipped", "pending", "other", "start", "stop"] - }, - "tests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { "type": "string", "format": "uuid" }, - "name": { "type": "string", "minLength": 1 }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "duration": { "type": "integer" }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "suite": { - "type": "array", - "items": { "type": "string" }, - "minItems": 1 - }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "snippet": { "type": "string" }, - "ai": { "type": "string" }, - "line": { "type": "integer" }, - "rawStatus": { "type": "string" }, - "tags": { "type": "array", "items": { "type": "string" } }, - "type": { "type": "string" }, - "filePath": { "type": "string" }, - "retries": { "type": "integer" }, - "retryAttempts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "attempt": { "type": "integer", "minimum": 1 }, - "status": { - "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"] - }, - "duration": { "type": "integer" }, - "message": { "type": "string" }, - "trace": { "type": "string" }, - "line": { "type": "integer" }, - "snippet": { "type": "string" }, - "stdout": { - "type": "array", - "items": { "type": "string" } - }, - "stderr": { - "type": "array", - "items": { "type": "string" } - }, - "start": { "type": "integer" }, - "stop": { "type": "integer" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": ["attempt", "status"] - } - }, - "flaky": { "type": "boolean" }, - "stdout": { "type": "array", "items": { "type": "string" } }, - "stderr": { "type": "array", "items": { "type": "string" } }, - "threadId": { "type": "string" }, - "browser": { "type": "string" }, - "device": { "type": "string" }, - "screenshot": { "type": "string" }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "contentType": { "type": "string" }, - "path": { "type": "string" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] - } - }, - "parameters": { "type": "object", "additionalProperties": true }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "status": { "type": "string", "enum": ["passed", "failed", "skipped", "pending", "other"] }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status"] - } - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "p95TestDuration": { "$ref": "#/definitions/metricDelta" }, - "executedInRuns": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["name", "status", "duration"] - } - }, - "environment": { - "type": "object", - "properties": { - "reportName": { "type": "string" }, - "appName": { "type": "string" }, - "appVersion": { "type": "string" }, - "buildId": { "type": "string" }, - "buildName": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildUrl": { "type": "string" }, - "repositoryName": { "type": "string" }, - "repositoryUrl": { "type": "string" }, - "commit": { "type": "string" }, - "branchName": { "type": "string" }, - "osPlatform": { "type": "string" }, - "osRelease": { "type": "string" }, - "osVersion": { "type": "string" }, - "testEnvironment": { "type": "string" }, - "healthy": { "type": "boolean" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false, - "required": ["tool", "summary", "tests"] - }, - "insights": { - "type": "object", - "properties": { - "passRate": { "$ref": "#/definitions/metricDelta" }, - "failRate": { "$ref": "#/definitions/metricDelta" }, - "flakyRate": { "$ref": "#/definitions/metricDelta" }, - "averageRunDuration": { "$ref": "#/definitions/metricDelta" }, - "p95RunDuration": { "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { "$ref": "#/definitions/metricDelta" }, - "runsAnalyzed": { "type": "integer" }, - "extra": { "type": "object", "additionalProperties": true } - }, - "additionalProperties": false - }, - "baseline": { - "type": "object", - "properties": { - "reportId": { "type": "string", "format": "uuid" }, - "timestamp": { "type": "string", "format": "date-time" }, - "source": { "type": "string" }, - "buildNumber": { "type": "integer" }, - "buildName": { "type": "string" }, - "buildUrl": { "type": "string", "format": "uri" }, - "commit": { "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true - } - }, - "required": ["reportId"], - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": ["results", "reportFormat", "specVersion"], - "definitions": { - "metricDelta": { - "type": "object", - "properties": { - "current": { "type": "number" }, - "baseline": { "type": "number" }, - "change": { "type": "number" } - }, - "additionalProperties": false - } - } -} \ No newline at end of file diff --git a/website/static/img/anthropic-dark.svg b/website/static/img/anthropic-dark.svg deleted file mode 100644 index 9f3de2f..0000000 --- a/website/static/img/anthropic-dark.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/static/img/anthropic.svg b/website/static/img/anthropic.svg deleted file mode 100644 index 135a8b9..0000000 --- a/website/static/img/anthropic.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/static/img/azure.svg b/website/static/img/azure.svg deleted file mode 100644 index 6c0d5a7..0000000 --- a/website/static/img/azure.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/code-example.png b/website/static/img/code-example.png deleted file mode 100644 index 14d242ee2a917d0bc9c3eb305fcb15678ee2cf0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495868 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%0A51{ypOi&K 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

RQ5jk8*gP5PK$x{N`UUT#lAD`v#G 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 diff --git a/website/static/img/code.png b/website/static/img/code.png deleted file mode 100644 index 7441f156400e943b6ae86ac98231670808cdf795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174972 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 z 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%0DL5e|{yf2k*GSzxk1Y<~O|k*Czu7RWBEb{}Q+U z=Pg+LS9P%jSWEaHHJktZ>d6acN-d2c=5O=oKYs@)AtiW+S7-Iyli%+07ebJ1Jvn$9 zlVM-}U~K&ImUnpI9b$`mJNN!`i~k;rzh9XO26F-`JN!rV{>!_>u6Pc~yX?+4|8t9f z?E725M=hE6-rA8q)|Et}VPbr0dEQ4RlnQg$81p*GjRr5wp;P!_=XF5vzMRtsy(zqb zpRqvv;o6AZ6?!>69PKC_N}`TDSyBXV8rK8=^V8ddn7ObeBk~qiDwq2 zlJfyf?~H;WV{+zA=(XD}Thwvuimbz^pj1BOX4h%a5D{)}`9oyDpMdLzI0k-7rjW-e z4zxy4#387B`?et+joaRLe*$J!#qr(xjOOw!{qtkp>xBm&d9-Qoy}y0!QmDqa55Hh$ zy;^Crx$utL2H)eP-(ri`w z=J=6Y4&_e#uRFE70e8(D^VL5!hSzoWBV>CkLjAso8Wv}he}fa2Kd#vtJJtFAyu%PV zIrBG207iwQmxM_K%k!ZU^xOB@T#FwGk3LF;_>E>?PZ2%avp!9B#}|A+&BDH6=NMFe zK~bcdYCIU|e`|6^%ls*bis(t=C*Ee)5z){jhQmU>>7S>k?Q?y80$rIQhfLnlem3cm6`rmbBgcJ2UTamCH@@o^UuUo1 z>N~*>jexSJEbFSyImqqE#65Qs>Z=VGcF>Md&CT@wj2KW`UTTbqLwuOX43XWoIG$_b z3YCwckZLbN;z1)jku{rj{j1TC?jSG9U)nCbyK0M`Rn2kyNSF`9lQ%UQbSUm;s%29B z9JW3NYq_N`+Ct1S<*x5_h(ZiCbU-E##{HHa+# z_U-k8HttbX9u*Wl@G>D2$q@gnHpq0WRIt?IlZA+Lx5e0{6vTAs1^IuPxxAes0nLLp zF615a86ZzJqcO!HS*oGABCZJMw;KBEbOvtc=jt315GUd%sn3_nY246@HvDcvesDm} zj*6_l+8%DEs`|hZ_$`j~Yco>}P+nk|_fLLvIqx8vm?iC$oj`Z%U=)QJEETfPan`w* zJTW|%kw4sIXn~#b##o*rehBsVJp5KT|25_HHo>V4F2rO7tHDF&R_ADqwzO6nt}zK} z{U_SBU%GA()Liv>0R#GVKHv@{idkKJWzbo&b<(aJ5RGJbpp*B>c`n%cGCi09iz#5B z+A*JO2XPt6)hrVla}Qw5JI+?X08lC^Wxn>qt-1D?V&N|MRs%C=^DrSC>b5@s+Zo$j zb)yQ(-Ep~AZzOfS?N;!LTz0jb+y`2pmt%to&jl_bltgsyogPs7I}pD(rMg8PU;dGW{Z5FQ^vX@jyZ(WgSadb zi(=K97rs};wavm&N%Aq~A?z&?hkNx>DpRH1d_*bYjK(-mc)Zd)v_J3o3%8|iSDtP4 zfD01)mPiy7aoS=>eJI^7C93jSj!7YJwKa;(lH@1QvwP+tlP&dVJo3h->R3As)(c-N ztjY)6l*;fPsMD?d_B3t}YI_`5IDfi1Tb}&=vUQvum%N{=>trpc>8sU*H1_p2nyOgG z(o+_>jq%DkK>GM<(&c_^G1wy=^G9acw`waZNBc89wSpCGV)UK?O; zNiK&Um+-l8izhm7yo$MO;_jQIcGqR06xiP?nV^EK1hz*qPqM5hK`lef?^e9-fF{~G z%xa^&2%$*%YJ03}7wqd%dy2PRHCd~gEGn$^pljfBm$1P-C?3Uz@IB|^Pcx$RbI_5zQg(ybRTWZQ=etA_L9qH~23bc+TNk=TD8Vq5DMGGrSfBUlg`?Hf({?*MT z;x2a;i+he0^H8uqI6ABpkmx1AmJ1AOZznPzf3auO8)F?#x$d0)^n;3`t{_Y4!u|oj zQYOKwnh{$NtRS*{uycpsUE@G}r=hVx**lXxq4-T4HVP=cO4sjl9cok<7Ru7(^$^=^6i|-jJ@qL6;BL zY*L}nVUM!6YThBUMKG;ysYycm*Ne~8?VBfYLq4K=@V5s>(7x0Jk+w1OS{XC_!Vl+K z7QbxCo}x221d#g$956%!D*q#u%(rg>0t0VSzJ1N%^0cexrde=EZx6gE@|AqPvaDf& zvMfJ;EKZBBc|Q_wr$0PcAu{BBFQE!&TQDBPc=GZhhxk?h&+?}Z;5n$?5BCyws?uYBza+x9Pf(mtDqE5z^o$ko5XE@~EUm&9-&T`oJ*pHGN0$J-H zd1Rz4lfL|u8uU*q5$`D20&;e(IaZo=O!9Z4jL);)9$n7kQ*90(R(zY(RGI_t6VLAMVq+FvYI_r z?3G0m739rQCLJT_|3Git>~`;j7s|m;f7CnQw$rC{87$bh+-uh7`>C%p31L03cd(W+ za?c^Qf8l7Pcu}%(?z8>x=cg;$x!4;Y3m}xwGHzP>vD2&|@g?>aoBN{0@T*XANMJ|yh znEcV%3>`rl51TPAxnxMzG-oT7Sj>qG;pRjs1~Oznz4n z)ZQ!mpHCS71qvKeVZR*RyNj#w^ELFVB8py}eHpf*ebuXc{*FQ%$^BixnATEU3 zZBA?=qF~}AfIZNNW5dKW!8f1ZVML>6lf3iPHRn!CCX&Qrpenqu?`Z;f=z;hQ3gw@9 zl|uH<()kInP+k}zauFy~XU(T_A$u_j#cw)RjTJT>e6kn{qp9n3UP>1N-nckb&Lm^!fb;3WGBaqI!L^>P zSy>j7YK4e~kAVf?q*ZOz<`mj%hos|le{=)4BWl2IwPTQI&2aPm{+fVcBY5^2`+5^j zS&wGAA1Rz&R8F+Nqln3Cl6pP3Ml+Jv<4V?v(Y9K{rgryesBoA8UUi+;v3}`dhHJsh>)1lY!-3T4BwtVM&zI+s?{zi>?0Fcr zIDU!F39#OPE~UvE!ekyos0WZQDv_hM8}XY=?)V~V>XUAn2xql+LSyaaeu(vOSe;6m zuQ{{fxo>{Q;f$*@QavZ#Rj`A2@;fi2-{MITd9Ta*XAkP9Anx#9|;=lKc#u6BfR zXI_9xo+jb(dbvo(L@@_kzg%k9cSoCdNVfWu2g?EEnaslzZ6-}<1fSh~t@C|XyRJ`% zL)j&{&)wgIEE5?Xiqi}-j0#F2#Fp4I%~)vH5CJl0XBR8~)eg$!VP zV_k*$rwgt z?<<2aV#rKaXsI~t*ER~Gq;XeeH}wnD-%uCy$kNh=z(Yo^)srYWh9NFS*Z5u|yCIv= zNzw8v{n@WBFT7rJC!RWuz~$P~@sW0$z-WDF=_wrY*ldS^%cb4VeIhRW7W)(w^0?57 zx+R7t$oa*@u^YX?k2S81X~jX=XCDp>LZX5Rs|ACLlu)c{&-6xIz8w-x35&Q{d~48p z1eY7Mzte#wLb<%ie!x^ucln8-xZFue9+uS1@oOtfGz7?Hw+?BbVWMDwoTln&R>$1g zjB4c@-W|WZAnj|n(Yu=>(L7Ys>F@?pVKhR~67#THi#1jESf*xjq%NFYPg`quRz-DQ z38GnHEp}|N@v^w80RA>IoeCw34&MPSwfboszqB0E!Ecxpv&Z-CP)SL{=#n8r?sc7_XK7;@5*d)WrnPE9*M(WX1Fs($oTc;ck?#^t$PAxUS> zKwmMIzpoD=sUkcC_Vqc$$}k@-Z(eV;DphOeld?D2%`!dCZ{|%?8}npv5|o}V)&q$m zf`^8`H4%-c7lkb4UCddY5m;k-GAPDJU{bvySdFBYCyI^)`3eAl;3Uy+qlpz}Fip1V;!IZ>1cQ=?NW}QAdgc zCh01P0#9e{CX)L-A1X@UQ2^TTjp`@x~E* z>e~SNDLhD_<|UoBOofzGWnCfht~2nTi{?zzyUz18hF^Y?oUdV(D1j_TRkC!6_BwxU zpN6x?+OurUqIf>F^AA66Qf-{zMHkwwI~;1{Gp0#bJ!hoiw|MW$)d%MeJ0Bk|gI3ae znI5G}X(SD(n-;1|hq~(IJg@DFKhVs7Z42V&q-Y`*ZOw&tM+LThUP#Su=M2}Z@z6W8 zhr-8CNp!9Ue?hb#pVZecW(*}*DzYQNhG>BcBR zanzQpn7PBAGlbOUx#vTHu$F$)wK?l>RwO>3uH-|a@9>bw&=UE2H*6ByThp3osEJ^a8aG{gp3_hhztem{{TW0pBhuaAa+7eAnzA92?zrTL9J2Cg7D;`dm^p&@oMbjv@3gg|s6g4RP8#z0 zN%*Ks==|$ZYhAGsx<^!DDH6I3vMLy!*Dyem=CJ{%L0^ZTlXri$9eA^R5NmFDXJTj* z_08j~pwy+np9-~}J^q+q%U}dpE>{Qbrnvsy6mZaPo#TK0d4xTADKYA1pcgMjYSukt z-ZXGuVWnkNsOr-!*@|h!t>Pu|J3%B*NpWYcGPbNPT~i?uk2=BEMZs13iM=_G<-JZy z)1gTP3l!&_<6~ZvyUrJ1QU>2N4CKZbV}lN-wdL=hQf$Vi<{~Hi2&1)K(LJ><_oI{K z2lKSr)pQbUS93x6Tw!G>*9?#T738RmV|8w1Q7_2nyM>0|f#uxsqIS&6hqU{xGODj# z61bduWh)mwU@`o9Z#6Y=>Lzbyp-g?HFTSTy5T7`7xbJYIgVoYlaK#tDZIKjLTV&S8+^aLfFPNU7p7r5%M-u5dRdVgp zI|9|r_dIl+gZX2OmZNp1A{J%2YT0*z7ZBGNe_(c-JXF^q1jCFhtFo;F3o?Nm>*FyU zPEC>5rMHyzXVnr^6_+TEB?hk9&eHuY`t~%TBM%t@L)!a3hC!Yc+HusSjBVW10ja*P z!^)Q^61K560}rT;fsy;8xwErkrbHevj#+&zI_1l(tGrH1W9{+B&to2%r+WL$hk=&% zL5kVJ4l4*B@{(!TxU#PO{CotHs=p$kd!2*^AN(MGsCoppr|*M99G2v9(V@RyssLGP z`j9RF7Wrre)gce(b;qTHZ~$DQqxq6Kc;DB)Nx`LfMn`kqVoQ|qqDYhUdatqR9V+^Q;T zhL5#WGm$*~KKFPm&c<-ERa$E2H==kk_rh4UxX49>m{L$)fEr!v&qG}#pFQv0GRPOR z@RQzRKNkN1p8e7ji}MqOkAV3Bs0;7+TxMStzX-s1sSWn0e$T?t(#I`I=I)U}q#REI zZkEem))ls_mm^<~?r!f@?rc~O!SEG))(sBOUvXPd3ZGp&HlD!PEl*36+0~|d0xhqr zJgV3~RO`@wEQ#C8VV*~~zYKzslFE}nGu2PA*f9KMbEy(eLwK)&iyv^51=(DPJv0kJsuJWGmjk(v! zjjEZoAD-`wf9#+bT=dxK;@vqc652t;OQlaFgtjK66m$_T@nY=jcoF>?>06h9HsQsm z(d9uB^^}l}$=WXOM;)<)ye0;K`ShNuZ?mW}$k$~vm;(B|&wgmcLq}*pQs237TsvQ6_VJbBD{m#NH#nctp_@l7+GcV5*Fzb)OEm zJ%b{2PqIBW?FWtTpV}u;P*SeP=-0xKD9e2&{;u54>3s1KC{tfxKU#AO?H^e7@GQ5s zEcc$1E?v|dz;+WFLHm`exQ+cdP^?-$X}#Y2#n7_Q1=m6%k1%HAL)3;B8OAM0)g!CP z%?Uo7wo`nEK-e|={Yhp!{e9=UkR5XEjD&P0${D_b#mtfmff;scOKqB4ye^j_sN>D! z2*W#H{T0zWlUj(q&E48h^Mp#YsyswS%C9fQ1xoRqD@v0;@IkCwVLqg9 z)}0kxGngOFZSkzl94!%pgKW~w-#&lmWgElXd~_o3b-s$O0cFoB)1Te})NRS-lNHM- z$z}4S>rSc4luXY{{7w2(2TySzrTUGP>>R=@9dW!wplc#KnNcwOk}l>EJn`&em02~R z8}f{!;CNVqYiV77W2~7BvVvV{=NIE6Bd3{?Q@zC88OLK8#p_bb#+2u2+aNf^OBv1u z$pcj&^Ep$k<-yXlr4j>Jr7K@AS!Jaf2L2sOX^W~=h>2pkQ9*|6f#{GrX@aVdbj8 zq9SUX?P9X)LDi2_OwD!EX*EA4U9*Vxesb?-MN_;AIr0>3#+iSn@YAF768}e$4soR_ z>kDjSXJ0FOHq()pWTmG=4#GP=)%O(VzYw??s^~*(>-8b9zOA0^ss9o z|26ju-Jv7?&uNtV0zp34Nx2%PQ@mteg0AGYbFvkMec5)O>eITfkxwD z;6Y-THTPKj^Krj^#S9&|Dr)-9Ut`XH{(e^$)VsY(W=(ni&pX;C1l`d?Z!Z3Gi@#nS zK{^;nu~8fDUogFYJ{a=$2#WynLngrP*Yf&5gMp<22J-IuV6F01ew z2cPcf#qnV3<#*O_kyxfQX{GmC9m4;|_=$RAg9oGOho)_3yNDO=dTc8n#Tql;DG(^% zcYmMW?Zo~jF)=;x?Tpl`KETipH^cvb?Oka&RqGeu$B-#QBormXEnF%TapI6N4_AiF zx`rsjiG)N>DU_>_Ovg~Bj77+lp~09T^N^{GnNO72|K0cBm<(s4?V@JiCh>2a^_l|@q33(Dp?&mF?10?#iq7EXCM zjWG-#L=a9kWd%7Ma)^5oUa@c^YFH!1-lKq{W`owvCx@@~sf&XiB<;-x^gacY7~K@2 zJhz*|TbZKHV)GLaz}J)@Zr8a(YVE0!5LL}jF`Jg@-wujF$#a&>&lOLfW-tI{VE3-n z1Ery$4$J>G#C#miC|E~X`;j5`#dkb{CAiBk)80s?4+>%XSk@gy1_(|hKTW! zwIz?SX2(ZF8PAI8WjqG9z4vsWkx`QMA?B`>%Q@Swgcuv9a9+hnH0ycxeFDA=T%n_* z`#HX>ZSO2ykNeOY#Rj?awch|tuzLvOx&Q|M;y(A*H^CreNgEV%G}AzHSnh~@*F@*p z4Ltv=_WOsyo_n#&ah^_HcbUdIvNFWaci{jfRdRFlNjF*co#-qwd-(9-;B9wRb(6*t zZu$+WeYkJ_h>r;N8*YYXTu`Wf87;Lo8oe^k6djX_aBD_u! zA?OMXtAGv#GY5wN{m#4~(7D9HAde{yAP=VN5TWbW=(VEZu~VUTz6eu4E+YHQPE?wXfLL-i&H18AcxghRq}dga!0j0@5c zyuT1)oVOx0_SV_Fv6SV&cR2cijgkf+RI8syQBR*l!l@s_Y_{aywCVF zQp*e8m6mv%XEUoZ*6MMW#Vo`XvTsfR-=pD~YLRRLU#l4I9fNnQYaYF22^lWOQf|Hn zj$00>hvs+H61H619yQaCBqGMmV@4@L?5r2*b${LF>_p%O=aQ}0Gzufs-$YBRk%sGp z4W3%xmsZ&klBE7o_2$+wenCN%orfKS05^CZQTG9wrP{$F#apzTWZ!*7$5To5!Cy{l z`28a~#$3+M011;$DWY}-~jRJL}Vv{=kfYLGP|&q&FEVR4x+VA_n^Q#YdrPze4O z_~)t1!C!vFsjN?fQ=Bi(V?QadLg6F4iVxPUg-)OK68lA@l3j{pvXdIdgC}H410+nU@nmO zCd0bu93%U#{MeP28XyG$wjt({s@RCl~Sxe*!V>w}4S^$7YUfi(b0C6um=rQAGq5Zsq1=DL7 z=?fuUOg2CVgf`woUB?l2avu|jZZV}`#ntyJOCdB!NH1|8WS<($K>IVj#`)%jgAHLQ z>hrhmPT$j?k?0PCSi&!Wo7x;>jz9LT)!s$RdcFosR#*_rMIe?!$g)71tZ-mqQbfm0 zT2gg;auS`x+J`{dmO`P(h5{mk!-M>?#Z9&c^wQ7<2AcMzT_=O|O~)*}$csD08DZMP zq1sE}eSfZERadBnj;l)v3^EOohLk!B?R_WuT(v|@O88X6Jo)>st~(otId6q6!T~nB zMR_Edo+d~ov{tpbVm?9shQ}K}oc)qt&nyQ&*15Jg(q{#Hh8eFf0;Bdy3}}w*t+lG{6%P3&@L&ekiO*Q-(#JDN z2$kDY+ublld83L_Qhe1GAm{icIP%UhONK8~VyAbA7;fuMX@Q=I@S%Wf>hckE582nS zqZz9CQH}0+6&NlcOC#iLfjwCq8Y+bz3Oj^}dlyN=_gVI7)Q~eCrk-hQ!a}@`fCChB zYtC-}w=u8vknna|$U5HoY|$u`FYRm0q=?H~3RZC)Kj*DGP* z*v}f&j~S-w&_u}C6K!ACgr+4LeOZ&pJ@z-@`lvzFy7eeaiMnB%o-)|6y_)<3Yssr8T` zG*kMi0>&s3%_pN*IL9Swr(|~2WhsaAwxr0wwo1#_w;TtHrrVj;_%E2vNNzSwnE-Gx zjWOk37^6fmd%%BXv>rh?4HND^(eLK?SE{L63gHyZe|B%bsZJo5tOy`wR^55gq_Jc= ze(d}3Q%hk`YNa$x1_W2|FYp5TnE~ywWka<=O}R#92CI{rrt=d&nDS3oOaZ9OuX;I8 zEbH#;0+3T_tzk{DuJcvjGu7jY+bM3x8x#~&-jSTc0Ra;Pa|f5rfE=S;cL?ATJ1wX$ z==gc3%xum?N0#)kz|X_G-@=5Nn@I;aX5Q4f_PiSxr{)4u+#guDF3u*K*(r7^Kr%Is z8%?D4o^5en!eiaZX(?l%T>mDjwB^!0_02H>7PzJfjsb0FUBd33!$D7=qsJ+hg*V<pIE72vAzLkS#a}^Du~PCjlvhw(I}Tvzq^wnSutALHu(EAOTwa1^ ztOmm#8A0%?ET_*wz}wL-^ecSLjfHpAnruH8&#(n>#yOO!&eX0wM=wA)!Zq5 z*$^DA?an^&hcGj599mH5T1xxNy=zy?V}8%&i-!+`8Kn^L zn=M^|+3?4k`SbD8O}ck96*P+_4c`dt8LEu+%HpzuF(ZV~4+ufdd}sLE>xn8uq@<() z7R}l~t|I%tj^AJxxmc+j{eRLJ536U&mzWSeG*!D_tzF===}$D_}wi5u>F45;f{S+S#O!89dUOS8` z;>tt-f^2v<%l**nXRm1Az83qNvdG)-UMzp42@K)}1xKr@(EXxUWG) z3wfkTQyZ->@9a}O7Lq*p%3sV&Hk|G|1>Ud*w*%pgfv8H7kz=UEfbY;uIr)WH&f2#W zRNj|MUz|`?DxBlsTT#j<%3c+?uc-AGhF+sh(A@JoeOavtTYYRuboY^EkAjhvaazPh z5dVPZ1ix--i;wqi?IX}Fhi7bG(G;R(c3hEcxX!FmjjGL4k4le{7IFed z$Y$B_k3XmB8|ULS7$$n0O?cPeX_oB8#4TG--H>~?T*(_)UEs{dC$)4-H}r)`-G%|s zAFR5HRXIZRhGo@Vjcm)>;o1BcN?EK#mi;@>yq->r#~gn;@?>Xp&u4Zx<5Q9$lj5vT zGu9n&X_+8mcZ+Nr7?7}RiCvwNz#

uvRrX!2-_K1+SM*#$|3N{=)a_%DzTVqS*#B zexp7_LA-7+TRe}Tls3-+6H%d+nB0=tK<5Il($E2-yXYPb(5%9)fQCnla#{ zRnm8d;h9>PP)37^AiI)L@?H{ZNiR@hSW>T`gi{2x89Xz`Dh%B@DBu&ek%>}D%0*Y6 zfXW+#bNh^;JSU_J!-V6mqIB@0uA(mEUT1l@2$LuL3Tg#a&yRP*{U1XnAwgkD(N8}r l@33Kh>DyYk3GfMIMYcD)p6W~vc>n_bluu|VWXhXg`yX+#!VUlc diff --git a/website/static/img/codeceptjs.svg b/website/static/img/codeceptjs.svg deleted file mode 100644 index 4134867..0000000 --- a/website/static/img/codeceptjs.svg +++ /dev/null @@ -1 +0,0 @@ -S \ No newline at end of file diff --git a/website/static/img/cucumber.svg b/website/static/img/cucumber.svg deleted file mode 100644 index 41288e1..0000000 --- a/website/static/img/cucumber.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/cypress-dark.svg b/website/static/img/cypress-dark.svg deleted file mode 100644 index fb8bf6d..0000000 --- a/website/static/img/cypress-dark.svg +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/cypress.svg b/website/static/img/cypress.svg deleted file mode 100644 index a5457b9..0000000 --- a/website/static/img/cypress.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/deepseek.svg b/website/static/img/deepseek.svg deleted file mode 100644 index 3fc2302..0000000 --- a/website/static/img/deepseek.svg +++ /dev/null @@ -1 +0,0 @@ -DeepSeek \ No newline at end of file diff --git a/website/static/img/docusaurus.png b/website/static/img/docusaurus.png deleted file mode 100644 index f458149e3c8f53335f28fbc162ae67f55575c881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5142 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 F{0H{b<4^zq diff --git a/website/static/img/dotnet.svg b/website/static/img/dotnet.svg deleted file mode 100644 index f4a6b61..0000000 --- a/website/static/img/dotnet.svg +++ /dev/null @@ -1,2 +0,0 @@ - -logo_NET \ No newline at end of file diff --git a/website/static/img/favicon-16x16.png b/website/static/img/favicon-16x16.png deleted file mode 100644 index 553466993768cd112bdc8a4f5b831041f37b0f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmV;t0YmPx$c1c7*R5(v#tk@iu!SMfo_kRWk9tIKsBLl-121dqG#)?g$pGnmWvj=1dWBI1g z|HN9%$;!>3Af(A~>(vE@zyJS$wGnLqBLgEtie)W>vWO1Dma7XHj@;WyngOPA&J4l& z=?woF{xi%v*2r-G?KR>J;NuWtD01jy;9%uqIQ4K3!@5he;Jzlx3vs4p3|bN<44;0y zW9Zvo%<$vSSK! mUo$-Ya2Ib%r#v%Jnwk diff --git a/website/static/img/favicon.ico b/website/static/img/favicon.ico deleted file mode 100644 index b4f3641e83c5956b0cbece01cd5838bf99f98cbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeHNS#uOs6mCn)XMFHIPZp2(;jgXzJgd`+{>>(lBWSPwId_Cz&PiJ~&x--+$Q*x_%dYOCHd+)jDo^u4@HQ{w( z*)oCeQNrdo1mQhF5Tc@7@5|p3gtPo@#ftg=-w}l3w*_H2_hAr*aDC^S*A`>5Y>u{C z#-gq9r0ued>4%kQsnb3D@FH36C2Qmkl%4shqw8_~i`r_7sfN`w0ZKuMnY7tiY zsqAYE2!3tmPO9o_lEA36`;q%OxgyOkj+B}kVt=R8N$2WpV*h*3D#dT3)8n);XP-|T zTW=@P!=8Hjwc@h7--et$G%__N;wWOdw2iN8jE!8u(xz!%z({Uxo>+N~MK zrkg*~#Ef0UaqH;=&G3->Wc4)>-bqf{U35}2ju@+j9t}JZaY*B%RiEp#6A3!RJX?TO zUjqw$r1he_FJ%q7V7(dz4Ig1=qWF5BFW4tvEjA-zCF`-4<#PC!O)0D9chIPfO;1<} zo^WT{a|Y0rjcq)ECgcV$M$?w)8K`p)*(LgXH)6ciXlwq?`l8DXIrMC_kIH)+cn{gH z8HY@EO|YwM2~^NoF4`ICr{zT_?`sK~@aUnBJ*;frR!g*{`-QrUkkbEz_l3H_R*BrA z`;=pvzRde6Bs_eUvzOXNx)#w?et`YQ+|Z+2HJB~zpLCD)D@lp(kXhMIRbLMp{jc&4 z(ct8Wk_7LNPP)=`llBy!Cio-rhJ6_Ov6?(uzSnyh?>VM-ruJVq{@c9YD;xX?Ep*iS zDrI-fIp}D`UmmzIFX6W++mZ4GKT8e2zwg(YZ@bZAtoN6m^`I@mA1piX?k7FKufx2R z`slf1E*~npKo{$?C@%kJpSYBMG5COgs)w!~82G<0*$-AWHJ$09;SVOcGEGUI1}2B; z#h&QjNS+8y`He`9w$ID~(RrKQ1 z3I|`QRk3elF0S%8Uuix!XySic!BLu-n|12}dzw}`mfAnD=oH5-swlJd{*w2ErSjqf zKAdL&2d~+%oxfNowex4+@SHzoXJGKcml0zj>Kt0@0PZf{(?Fi*@|j4l4`nj70!fM*s>!2Lt3Wh2LwneWir z-XP-d5qW0bMOm!zJwe26(D+!oF=sFyk;l7ho-EAwh?zH@V{6*A8mK5 z)AEP3#$4i@qiJQ>%yDAyKFe_=Zw=>W#MDBmKfSm==a^pOP&?ra>8rI3chRQY;Kcv* z@+ybJS^S$jzi|Baxi7Ze|6y#>IJUWp*S8!`xSn_1KTgdrI>eZ(n@K+p{Sz-ZH-0Sa z{KGyX{)Kq4)>b#r%IEaZ=QO;HD{?7G4^rK^aW&rOcrEyn?NURwA$b|449Og$?j0Xe zV_W==c=FBmQtEiwquOuCK0><+PZ&CnPS^ZH<1>@0JmC+-aG=|DnY+YXJ;uRXLqEi& z5u;b?C=~DCajeH%EH$sAKX*JDA_#VyXZ+%jr^q1Oi9p|d@JIX{}U0i$q!lpt-Ejn2$Pg>!TwJAwQxOuTlN6 zMo;lRsMg?vr$4z%YZP|aDE2W$D3oB;ESl)BRl(zU*9=wS{X0~2TD^_=Mg4X zP5)yv=XXWlJEOJG>pH+k`|LCwtGr^`F~B^+ne*9buc{2!oAXRXK@!_yDfzn*devj?Ry+yIeevUOE))y$AaQ6F@_qE)oC4{pv>I_?kI|=(lIC;`a z8#Za{tt3(BSQlF1BeQ=b=fGS!`N-5e+a%7PiaB7D+b1>sBKM9Qe1z3LNb9;ss^f6g rZ$wfJgr!@m-;iohAd6TFVcML$Ypr6wi*shaeg^!%YOge)R|Ee6|Hzvc diff --git a/website/static/img/gemini.svg b/website/static/img/gemini.svg deleted file mode 100644 index 878eb62..0000000 --- a/website/static/img/gemini.svg +++ /dev/null @@ -1 +0,0 @@ -Gemini \ No newline at end of file diff --git a/website/static/img/github-dark.svg b/website/static/img/github-dark.svg deleted file mode 100644 index fcb28de..0000000 --- a/website/static/img/github-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/website/static/img/github.svg b/website/static/img/github.svg deleted file mode 100644 index 37fa923..0000000 --- a/website/static/img/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/go.svg b/website/static/img/go.svg deleted file mode 100644 index 4337780..0000000 --- a/website/static/img/go.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/grok-dark.svg b/website/static/img/grok-dark.svg deleted file mode 100644 index f06d5e0..0000000 --- a/website/static/img/grok-dark.svg +++ /dev/null @@ -1 +0,0 @@ -Grok \ No newline at end of file diff --git a/website/static/img/grok.svg b/website/static/img/grok.svg deleted file mode 100644 index 9e4a7e7..0000000 --- a/website/static/img/grok.svg +++ /dev/null @@ -1 +0,0 @@ -Grok \ No newline at end of file diff --git a/website/static/img/jasmine.svg b/website/static/img/jasmine.svg deleted file mode 100644 index ef24d4f..0000000 --- a/website/static/img/jasmine.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/static/img/jenkins.svg b/website/static/img/jenkins.svg deleted file mode 100644 index 2ccb4f3..0000000 --- a/website/static/img/jenkins.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/jest.svg b/website/static/img/jest.svg deleted file mode 100644 index b782455..0000000 --- a/website/static/img/jest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/jira.svg b/website/static/img/jira.svg deleted file mode 100644 index 400b99a..0000000 --- a/website/static/img/jira.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/jira2.svg b/website/static/img/jira2.svg deleted file mode 100644 index 0995602..0000000 --- a/website/static/img/jira2.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/website/static/img/junit.svg b/website/static/img/junit.svg deleted file mode 100644 index 20c4497..0000000 --- a/website/static/img/junit.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/website/static/img/katalon.svg b/website/static/img/katalon.svg deleted file mode 100644 index 9d245e4..0000000 --- a/website/static/img/katalon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/website/static/img/logo.png b/website/static/img/logo.png deleted file mode 100644 index 24e2078304c00c129f5f0b9722c437c912a0c3c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmV-;1Bd*HP)Px&GD$>1R9HvNmwQN5K@`TnS>GwHq>_)q6sa^!tdy+~6)gw?MX{v>L6BX^+&=yn@$&!WV!UTa(c^LWqtKqRBi^q$O!j)X|iu#S~N_BXmw^0>TqYVo7T0 z!6r(n-%7&uEP`fo;c@Kj3Z&i8{x~LpuFCFzLuD1<<+v3=9uXLw8pew@Eykut=GKB- z8E~`r#F^l$FjrUz(2fBe@~br~BS1mSa5nfF+?8H>Af*%;Wrx90P9#E>BM9-1#D1S6 zB2d>*8*;1C<Majy@t#MSBUJetaN# z*_QPPR2%mp$}e67`Z3yrTdz_u!%fR8z`@1|iJ{rBGPe;GUVimud>PakY&FZ20fM7J zso1hEKm>Zz`5Yz91@rc~Wf2gtJ{anNb0W~siGEzKIFG5>33&zBSt^kjmJM4=dl9Jc zZ6;d3*BkBfk{Mvt?CTN;CtFwO`f9-n$&ek|o&bOMJ))oMzg42B{ZSU=lp;w1X%Tr)+BoX{Ii5ptLoOP+tMqHu z=4+4?mIHh1wW7EW-`_xEPxXR!Z!iO_nRq#}*V$jAl*i+iLez9V6BeVlokEaDxX4G> zTZg-~Sqp|66u{2@#I8%CEHGyZit^TCbPj$(yy_wdA$r*4%s6r?k}xtkxO4$5f`g4S zj;k`@Z09;BAgc>YGb_=$wlN>?zLuK=H<*DxQP|Zwrb>sq(sSOxpZi--P;*7dkf~<0 z5wT*63rYri-AEbB#?6<>7#Qm{l`Z%i6~LU>Un{%stT+5?WgqULvZHiS@C6HCj_j2a z<9`}EHiYP5T|@22dz}HE^70E1)Pf+?I|{7#4~+Mrr1=hpC;Ar+Hz@;4qRjL0e=wMo z#x{XsRYo&HNHbxRF(s=soGM7H&`X60nNkg \ No newline at end of file diff --git a/website/static/img/mattermost.svg b/website/static/img/mattermost.svg deleted file mode 100644 index beafe80..0000000 --- a/website/static/img/mattermost.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/website/static/img/mistral.svg b/website/static/img/mistral.svg deleted file mode 100644 index 9ea7556..0000000 --- a/website/static/img/mistral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/mochajs.svg b/website/static/img/mochajs.svg deleted file mode 100644 index 70a1f17..0000000 --- a/website/static/img/mochajs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/nightwatch.svg b/website/static/img/nightwatch.svg deleted file mode 100644 index e91e7a8..0000000 --- a/website/static/img/nightwatch.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/static/img/no-image.svg b/website/static/img/no-image.svg deleted file mode 100644 index c3c964a..0000000 --- a/website/static/img/no-image.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/website/static/img/nunit.svg b/website/static/img/nunit.svg deleted file mode 100644 index 07cfac750064cf4657b3e43a9256282fe3127761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5870 zcmV___@=)3Sk!O^X$yt z&KGJT0$dGlqjlTp-BglXM~P1+b1Nkl}sb0@))%_W%FPfffq3C0Wh_^qu;h znd!W?6kkhMSBumC{`*^h>u>$7zxBek-R}3R)o$&1-p1P;HkW^0K3wlst9=ms+glIz ztF^cB0U*5m@gWT1zApcB{ZHs`y!8c$e{k=YtzS2J-E+vS>u0avc)QgU!7o1g^{(Ap={C@LoyWzYG4!?pA_MSiQ*+03058j8H!FIKgpFFgEQf671^espU z5#X@;Ts8=H4y>Pc+3{y(T`Gnk^gq-Sf}QVR&%@L9ud5t{2wXkEUk9JKeFx8n=olZh z6^XtdzW;n01a7AvrpXamN$Nz1>+J_opYKHb&>Yd#fK#^M?>;5)ZQQ~hbVp)!PC*gE z&FT}Zf8!eU>zD!{uHDjvORf~W*%7uoaF#R8kz9?tINELBYyEC#Uv*6$ADI>BO;^=U z2prxg4!3K$^%qs2WJlr3lD8U)iF~FxqPYTN{P;Dw1dGwd02KP-`2cEl7O^-h^W)4v;waFomHZIF)#3{gbbV{ z0>LZdKV|+&d*3+f0=I8I_f3*C{n?uCUp;{+Cg;WSdSFYI{@aY({?op31a5PJ!rEtx zgI!Y1b=YiY)BnVe7-EY~1GdA-IS5wxg9_z>cvv_upz=Sw#g%n%n|5S22I{Uw2z)66 zTyJ$m0D<)^`M*<#=a#G8b}!q%%REtv{?vw`!a3>#d*b}j7I#?zVdkt4I89VlrM$Hc z)8#;bH~t~bxtIjTA)5eNFz$SK|gz{3O}G`ygP=~)pv z0BI0l6^3Ixz)~%7-~gg7eMXz6lNrz;fPvn^BMgG|3`e;oDC`s@)V({>{npwtwwrJ-r_fN3V6zxL0El~yKBN0|V|0G&W< zJ6XU~1eBM4Fk)}#!QBWApljeV6`axKpW@skd6`E;LHh7_I#X9&bp6sY|C$zP(@<(( zp(?4hScoOYRyl}u0<Qz3e@yvEAjw*c&@nHhvSX12H0d;8@7Q~Q|&H2 z0;CXdayNjmz&CR1*;LNAYBU6R3jjzgq)oSpFcnx@yDoz2@sl+|HR4uLgtSHh)d63v z5|y=0VdHP*9#D-i0L^ODO67Uft*R3%rS+sjH36e^L;Jwm+)Fcp0jT>BIc*%)i&iaK zO~CiBof=ZRSW_MVd<@J}S@uTUin>UMcI>UX63|=-LbSo4)GuSRctQBU-e%0Qhdq%K z^krC&zf#-j6!^4%BdZ>4+I26D0Sc6vGX{0=2D8gyaKTvmd55Lz3{V0Nf1_ z^pX(LVbH`-F3Sfz;5}ei0)Q-u`mXPr+)j^iO2$DGfx%+CNKU*3z8e&$vjdP^FVo%} z58BQ~k%Lii#*%?sz7?}^0271ANI)WP29E$Bj&2v_emZ>Vz?(s$6vUpw9});vA4nvD z&@2V0C=M{I1?2VPqTJ5`rd*teW56tcXg{2J>qSVwGjw1z(gOqlT!$+`D|3E*z*Y(> zlL8r^=sDRS77AggxWS#@U zWeW{x6+sOOTE&~w0!C%fPyrf|*7E_7)f}Hjd`1LDGKBA6t4kW=>;?&#Ey2pY7%T$7 z^4Q3lK@N=J3wqp4ZRi>#U`&e`4FUCze>5KegXLFDFp(hDg&>6Fu$6kZ%*bPmt3*Dp z0tT21fW+2XAL#F`84EC8b>KN%W5K|DC!;BV1t6|%P!{wzw|XwfaDYkzW-6~u3ha4b z%wR46db^&WBjH&YF5sg8K*pb-ss&ekIn+f3@Bj!*spql*P)39p9iaJeWzm9bzOvcP zWdV}s=AN12FsLTLBGB_YSX+WXV;R352Y{fp2y`Gkfi_=56h#pr8$$|umbnPU6YH5Q zK$KCWv=&xf|EVB=AyD&LP@R+jHVC+6LM#CJgx2C60F49bxpPIzW_%npGl62X4&(rk z)m6zS(e{AHK>~r2uZ#xlbZF~JT_OMkWi`NVgg)?tP`rON4Ag8owC4*7k=sZo4M01k zvvhkOU}|Av;81xVXX7iLe|OW0&n8cESwJna02%;A1G7rdz6V7Jm;m%VdgB0yWxqwF zW11r>3G$bZ&OH6B*n(g*qAP3#Ad`$(lI`_x3jn=6PG7yL_r+Z19$OKOVI~fc=?OUV9H6E{-0h>76LSs#WZ_HzMDtjHSs5h|$XGS&u>+FX5&-m* zEkN78>OZJ1&HS;CI-3hqIG-TY&u!|6SDF7BBgn0mkKrGe)9$yoMmjb}#0)S~Ck^`NjFmUCh; zEI6e$SgG@1q^&W)^iz=>0cTK2SGN7^~pIYW6FS?<@s?-3`xzY z1MEdHen?7tww!HD?vru>B?L10V8-Ti+WlE`Lc%s?_bv+nvn+@spq`)^$Fy;ApYIM1 zpJD;xiWu;tvT(578PkTPUD|^$u>d0-1}=>CmLPzIf$GRr)ZV58kP!)73YPq!s6H;g zGO_`6T(5=?(E)fSWFnwlm;f#rM#sfL)qg=2M6~BCBFT(#dDgH1nE%q$EK1Pq z4q_w#{G}=6`n1PalxDd$H`xMA4MgoCthg^B9K)t(I-rW9 z!)L7gt$|WAIhe;&BcXByb2xJs9~C0OlhU1`*--$f_7h@LNwS@sEtE&djt&K<0~LMs zRY?LZXF`DQ06?~0h=D~0@QFeCWpqnaSS_&z8F%ZD*aqn~osFsmpur%0m7BRwUM{~c zffQvXXG*E7<%l5xx(uBk=ri`_Mn%F}@00uqUbZab>?Jhp+By#%05woYK z%dbn&jL4sxC`iu%=y(ZW6^qqqtQk(C4z>eS^-efGZusFBdX}F9@bUoP*NJ_j z6&3}l=ac}E;3bMMaNzAnXQ8h8pj9Z?=aQQ`AWEF*0jz|%$BJFxBnznR4M@$nX$(x#tBbH6w+er_Dqvx_5v~Rsk;!>CYejm8JMVPix z6pvMsw?x+W}}Gg2%J1LjU~wEzeUc#ejD;JFLjp3OCb zZ+?z{u_DrNrmCj^(_Nroe1M(?fFTJG;D}Vk398QAe5e3KT!+h(=F->lKf5bF@1sE; zhmuxT0p6J*ww*Iu3CgmZd)wp$@G%=8?n|EL8S%7VsOWn=J^pX|pb)}{a|GqHr_5S_ z7zPNDN{yXSVDD%O;8rUZ7cYFB+zO1IhJ>ENg8maq8Ccq6WAH1nb}!orjc5Sieh`q! zWmk-UrWnM1g?tps?b>=fRPbQiUqMs0ot$y;2Qu^x4`eXLSQW- z55*uNIp_{Pq5(4(fRrs#Jp1S^qcYNI1LpXLhAMrL zV|&0i$bat)Ly84BQYh8pnwhbI>`Eo(^M=ex`Ul4{Dgi&zHG_VAal2jv+6##TPRY4_ z;0KmrVkAHpk8WzPraD?)>H2h1(GVQ-{PPlM$z>*glJuG_<3Brg{jZavrJMf47W{Mj zz;IKM1F0lMb<)=SYsx3>){ByowNYF?oi`U&%wFv{X*G@8oIAs7zhWG!e1UMEN z>2Ucxy&T(2!uutaPNA-w34ToQ|Bkhp1oqtGiAY_rhcrGPo3yk?oz z31DjU_b{-2gd7{xBybagLX1B;Gc*|v51M4jfAaM|lwi-5az>ha3tymZ&RxNZAuqaf z^FHX~qhzM|y?tQ)AUQ-_C`e#jTt79{CGOJVb`H3m2a2?d&(*Ol*`gpO0q`8_XX)T_ zCV0xU3OBrvZpX%xn%GVC`$$NCD|`8>8qzDG*o zk)j&}fA=Nq--7~RcSA!c>Ct0-?_hls9Xww{1N6C{S^&V8u}_L%r3TE~=sx3q`}^3x ziy$;?0oWc0q4%Ba-*I&_kFd5ZD0a@>f6>;52Z!Ud={o*}fnoq|V0}M1yAWnZycQpN z7sNN~{zL%18rZ%O4H!X#eLJvz6FI#Mz=RFletb7@tlvk09j>x~hYE!DujKyW8F#L~ z$_Kc+!|&z(X$;GR0HM3#G|>=-Ru3_1DoM=*6&SwZY%_tOtJ~?-M!n zg4lVs?Yet+KalIXw(ae9LEu>b3;Lh1`H%k5Kl%;yA0T%WoKWMSGynhq07*qoM6N<$ Eg4?04RR910 diff --git a/website/static/img/openai-dark.svg b/website/static/img/openai-dark.svg deleted file mode 100644 index b3df81f..0000000 --- a/website/static/img/openai-dark.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/website/static/img/openai.svg b/website/static/img/openai.svg deleted file mode 100644 index e04db75..0000000 --- a/website/static/img/openai.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/openrouter-dark.svg b/website/static/img/openrouter-dark.svg deleted file mode 100644 index b3b8048..0000000 --- a/website/static/img/openrouter-dark.svg +++ /dev/null @@ -1 +0,0 @@ -OpenRouter \ No newline at end of file diff --git a/website/static/img/openrouter.svg b/website/static/img/openrouter.svg deleted file mode 100644 index e6cca2a..0000000 --- a/website/static/img/openrouter.svg +++ /dev/null @@ -1 +0,0 @@ -OpenRouter \ No newline at end of file diff --git a/website/static/img/perplexity.svg b/website/static/img/perplexity.svg deleted file mode 100644 index 5f5a5ab..0000000 --- a/website/static/img/perplexity.svg +++ /dev/null @@ -1 +0,0 @@ -Perplexity \ No newline at end of file diff --git a/website/static/img/playwright.svg b/website/static/img/playwright.svg deleted file mode 100644 index 3065efc..0000000 --- a/website/static/img/playwright.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/postman.svg b/website/static/img/postman.svg deleted file mode 100644 index b970f5b..0000000 --- a/website/static/img/postman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/pytest.svg b/website/static/img/pytest.svg deleted file mode 100644 index fe7529f..0000000 --- a/website/static/img/pytest.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/rspec.svg b/website/static/img/rspec.svg deleted file mode 100644 index b4d7eb6..0000000 --- a/website/static/img/rspec.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/rust.svg b/website/static/img/rust.svg deleted file mode 100644 index 4a2bb7b..0000000 --- a/website/static/img/rust.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/selenium.svg b/website/static/img/selenium.svg deleted file mode 100644 index 5dd2892..0000000 --- a/website/static/img/selenium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/slack.svg b/website/static/img/slack.svg deleted file mode 100644 index 69a4eb6..0000000 --- a/website/static/img/slack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/static/img/teams.svg b/website/static/img/teams.svg deleted file mode 100644 index 3409e6c..0000000 --- a/website/static/img/teams.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/static/img/vitest.svg b/website/static/img/vitest.svg deleted file mode 100644 index 45ac612..0000000 --- a/website/static/img/vitest.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/static/img/wdio.svg b/website/static/img/wdio.svg deleted file mode 100644 index 6c81db8..0000000 --- a/website/static/img/wdio.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - Robot-Edit - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/static/img/xunit.svg b/website/static/img/xunit.svg deleted file mode 100644 index 3d6424e..0000000 --- a/website/static/img/xunit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/tsconfig.json b/website/tsconfig.json deleted file mode 100644 index 314eab8..0000000 --- a/website/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@docusaurus/tsconfig", - "compilerOptions": { - "baseUrl": "." - } -} From a15d3d178070fcc3f80a035cb7d742b65b7a6624 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 13:46:13 +0000 Subject: [PATCH 02/16] Clarify usage of `extra` object in CTRF specification --- spec/ctrf.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/ctrf.md b/spec/ctrf.md index 606a74e..e3c5647 100644 --- a/spec/ctrf.md +++ b/spec/ctrf.md @@ -168,7 +168,7 @@ Fields not defined by the specification are prohibited except within explicitly - forward compatibility - consistent interpretation of data -The `extra` object provides a controlled extension mechanism that allows producers and consumers to include tool-specific or domain-specific metadata without fragmenting the core format. +The `extra` object provides a controlled extension mechanism that allows producers and consumers to include tool-specific or domain-specific metadata without fragmenting the core format. This includes user-provided information that producers capture and embed within `extra` objects. --- @@ -313,7 +313,7 @@ A CTRF document MUST include: - `specVersion` - MUST follow Semantic Versioning 2.0.0. - `results` - MUST contain the results of a single test execution run. - Additional top-level fields MAY be included. +Additional top-level fields MUST be included within an `extra` object. ### 4.3. Schema Conformance From e43c0d9a25cf4212694fcd532ab42a9aa218b39a Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:00:13 +0000 Subject: [PATCH 03/16] Add support section to README with encouragement to star the repository --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9295cf1..538b2f1 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,10 @@ By standardizing the output of test execution, it enables results to be shared, > > We encourage you to adopt CTRF today and help shape the final specification. +## Support + +You can support the project by giving this repository a star ⭐ + ## Schema The schema is defined in [`schema/ctrf.schema.json`](schema/ctrf.schema.json). From b518992456e46191bad9eff54010a22dbc9534a5 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:03:03 +0000 Subject: [PATCH 04/16] Fix link text for the Roadmap in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 538b2f1..3f620a6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ By standardizing the output of test execution, it enables results to be shared, > > We are maintaining a pre-1.0 version to allow for community-driven refinements before locking the v1.0.0 standard. > -> CTRF was released in 2023 and has been gathering community feedback and real-world usage since. For details on the planned evolution of CTRF, see the [CTRF Roadmap](ROADMAP.md). +> CTRF was released in 2023 and has been gathering community feedback and real-world usage since. For details on the planned evolution of CTRF, see the [Roadmap](ROADMAP.md). > > We encourage you to adopt CTRF today and help shape the final specification. From 74a530517a5b9ea967e6737d86f2b80098a83648 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:03:55 +0000 Subject: [PATCH 05/16] Update workflow to trigger on all branches for push and pull requests --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 389e5fc..41ae591 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,9 @@ name: Test on: push: - branches: [main] + branches: ['**'] pull_request: - branches: [main] + branches: ['**'] jobs: test: From 0aa4f9d9bc4eab1e07682acdb4d70474e98df00a Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:05:16 +0000 Subject: [PATCH 06/16] Add blank line for improved readability in workflow file --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41ae591..246214b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,6 +3,7 @@ name: Test on: push: branches: ['**'] + pull_request: branches: ['**'] From c9b1bf2e257f4b388aecfca220f84bd6b8c896f7 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:08:37 +0000 Subject: [PATCH 07/16] Update workflow files to use specific version of sourcemeta/jsonschema for consistency --- .github/workflows/release.yml | 6 +++--- .github/workflows/test.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d020939..f9d7170 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,18 +18,18 @@ jobs: uses: actions/checkout@v4 - name: Run conformance tests (normative) - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 with: args: test tests/normative --json > ctrf-normative.json - name: Run informative tests - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 continue-on-error: true with: args: test tests/informative --json > ctrf-informative.json - name: Validate example documents - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 with: args: validate schema/ctrf.schema.json examples/*.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 246214b..cff5b3c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,7 +3,7 @@ name: Test on: push: branches: ['**'] - + pull_request: branches: ['**'] @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name: Run conformance tests (normative) - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 with: args: test tests/normative --json > ctrf-normative.json @@ -28,7 +28,7 @@ jobs: args: test tests/informative --json > ctrf-informative.json - name: Validate example documents - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 with: args: validate schema/ctrf.schema.json examples/*.json From 38cf31eff4a4414a9162f9adc3ec5132b8014a11 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:10:58 +0000 Subject: [PATCH 08/16] Fix versioning for informative tests in workflow file --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cff5b3c..3e9da17 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: args: test tests/normative --json > ctrf-normative.json - name: Run informative tests - uses: docker://sourcemeta/jsonschema:latest + uses: sourcemeta/jsonschema@v14.4.0 continue-on-error: true with: args: test tests/informative --json > ctrf-informative.json From ef79d18bfc5180e6626c8292d0f5e2416e686f25 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:29:13 +0000 Subject: [PATCH 09/16] Refactor test workflow to streamline jsonschema usage and improve clarity --- .github/workflows/test.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e9da17..28c9e00 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,21 +16,18 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Run conformance tests (normative) + - name: Setup jsonschema uses: sourcemeta/jsonschema@v14.4.0 - with: - args: test tests/normative --json > ctrf-normative.json + + - name: Run conformance tests (normative) + run: jsonschema test tests/normative --json > ctrf-normative.json - name: Run informative tests - uses: sourcemeta/jsonschema@v14.4.0 + run: jsonschema test tests/informative --json > ctrf-informative.json continue-on-error: true - with: - args: test tests/informative --json > ctrf-informative.json - name: Validate example documents - uses: sourcemeta/jsonschema@v14.4.0 - with: - args: validate schema/ctrf.schema.json examples/*.json + run: jsonschema validate schema/ctrf.schema.json examples/*.json - name: Publish Conformance Test Results uses: ctrf-io/github-test-reporter@v1 From f669fae65782954f437b9daa3218ceb434c20ff8 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:31:22 +0000 Subject: [PATCH 10/16] Add github-report option to test result publishing steps for clarity --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 28c9e00..9f355cb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,9 +34,11 @@ jobs: if: always() with: report-path: ctrf-normative.json + github-report: true - name: Publish Informative Test Results uses: ctrf-io/github-test-reporter@v1 if: always() with: report-path: ctrf-informative.json + github-report: true From 74f07fbd87c42caf4f411b6683469d4620ecdf56 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:33:15 +0000 Subject: [PATCH 11/16] Rename workflow from "Test" to "Validate Schema" for improved clarity --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9f355cb..b06a9ce 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Test +name: Validate Schema on: push: From 78ac2b05c5ac2d1c7f9c04fa09a4d89057032ba8 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 14:43:45 +0000 Subject: [PATCH 12/16] Refactor workflow files to streamline jsonschema usage and enhance clarity --- .github/workflows/release.yml | 17 +- .github/workflows/test.yml | 3 + schema/ctrf.schema.json | 873 ++++++++++++++++++---------------- 3 files changed, 464 insertions(+), 429 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f9d7170..0c07c2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,33 +17,32 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Run conformance tests (normative) + - name: Setup jsonschema uses: sourcemeta/jsonschema@v14.4.0 - with: - args: test tests/normative --json > ctrf-normative.json + + - name: Run conformance tests (normative) + run: jsonschema test tests/normative --json > ctrf-normative.json - name: Run informative tests - uses: sourcemeta/jsonschema@v14.4.0 + run: jsonschema test tests/informative --json > ctrf-informative.json continue-on-error: true - with: - args: test tests/informative --json > ctrf-informative.json - name: Validate example documents - uses: sourcemeta/jsonschema@v14.4.0 - with: - args: validate schema/ctrf.schema.json examples/*.json + run: jsonschema validate schema/ctrf.schema.json examples/*.json - name: Publish Conformance Test Results uses: ctrf-io/github-test-reporter@v1 if: always() with: report-path: ctrf-normative.json + github-report: true - name: Publish Informative Test Results uses: ctrf-io/github-test-reporter@v1 if: always() with: report-path: ctrf-informative.json + github-report: true release: name: Create Release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b06a9ce..ba05f37 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,9 @@ jobs: - name: Setup jsonschema uses: sourcemeta/jsonschema@v14.4.0 + - name: Run format validation + run: jsonschema fmt schema/ctrf.schema.json --check + - name: Run conformance tests (normative) run: jsonschema test tests/normative --json > ctrf-normative.json diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index 2912ad0..96b1136 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -3,621 +3,654 @@ "title": "CTRF Report", "description": "Common Test Report Format - a standardized JSON format for test execution results", "type": "object", + "required": [ "results", "reportFormat", "specVersion" ], "properties": { - "reportFormat": { - "type": "string", - "enum": ["CTRF"], - "description": "Document format identifier. Must be 'CTRF'" - }, - "specVersion": { + "reportFormat": { + "description": "Document format identifier. Must be 'CTRF'", "type": "string", - "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$", - "description": "CTRF specification version in SemVer format (MAJOR.MINOR.PATCH)" + "enum": [ "CTRF" ] }, - "reportId": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for this report instance (UUID)" + "specVersion": { + "description": "CTRF specification version in SemVer format (MAJOR.MINOR.PATCH)", + "type": "string", + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Report generation time (RFC 3339 / ISO 8601)" + "reportId": { + "description": "Unique identifier for this report instance (UUID)", + "type": "string", + "format": "uuid" }, - "generatedBy": { + "timestamp": { + "description": "Report generation time (RFC 3339 / ISO 8601)", "type": "string", - "description": "Tool or system that produced this CTRF document" + "format": "date-time" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "generatedBy": { + "description": "Tool or system that produced this CTRF document", + "type": "string" }, - "results": { + "extra": { + "description": "Extension point for arbitrary metadata", "type": "object", + "additionalProperties": true + }, + "results": { "description": "Results of a single test execution run", + "type": "object", + "required": [ "tool", "summary", "tests" ], "properties": { "tool": { - "type": "object", "description": "Tool or framework that produced the test results", + "type": "object", + "required": [ "name" ], "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Name of the testing tool or framework" - }, - "version": { + "name": { + "description": "Name of the testing tool or framework", "type": "string", - "description": "Version of the testing tool" + "minLength": 1 + }, + "version": { + "description": "Version of the testing tool", + "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["name"] + "additionalProperties": false }, "summary": { - "type": "object", "description": "Aggregated statistics and timing for the test run", + "type": "object", + "required": [ + "tests", + "passed", + "failed", + "skipped", + "pending", + "other", + "start", + "stop" + ], "properties": { - "tests": { - "type": "integer", - "description": "Total number of tests executed" + "tests": { + "description": "Total number of tests executed", + "type": "integer" }, - "passed": { - "type": "integer", - "description": "Count of tests with status 'passed'" + "passed": { + "description": "Count of tests with status 'passed'", + "type": "integer" }, - "failed": { - "type": "integer", - "description": "Count of tests with status 'failed'" + "failed": { + "description": "Count of tests with status 'failed'", + "type": "integer" }, - "skipped": { - "type": "integer", - "description": "Count of tests with status 'skipped'" + "skipped": { + "description": "Count of tests with status 'skipped'", + "type": "integer" }, - "pending": { - "type": "integer", - "description": "Count of tests with status 'pending'" + "pending": { + "description": "Count of tests with status 'pending'", + "type": "integer" }, - "other": { - "type": "integer", - "description": "Count of tests with status 'other'" + "other": { + "description": "Count of tests with status 'other'", + "type": "integer" }, - "flaky": { - "type": "integer", - "description": "Count of flaky tests (passed after failed attempts)" + "flaky": { + "description": "Count of flaky tests (passed after failed attempts)", + "type": "integer" }, - "suites": { - "type": "integer", - "description": "Number of test suites in the run" + "suites": { + "description": "Number of test suites in the run", + "type": "integer" }, - "start": { - "type": "integer", - "description": "Run start time (milliseconds since Unix epoch)" + "start": { + "description": "Run start time (milliseconds since Unix epoch)", + "type": "integer" }, - "stop": { - "type": "integer", - "description": "Run end time (milliseconds since Unix epoch)" + "stop": { + "description": "Run end time (milliseconds since Unix epoch)", + "type": "integer" }, - "duration": { - "type": "integer", - "description": "Total run duration (milliseconds)" + "duration": { + "description": "Total run duration (milliseconds)", + "type": "integer" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["tests", "passed", "failed", "skipped", "pending", "other", "start", "stop"] - }, + "additionalProperties": false + }, "tests": { - "type": "array", "description": "List of test cases executed during the run", + "type": "array", "items": { - "type": "object", "description": "Individual test case result", + "type": "object", + "required": [ "name", "status", "duration" ], "properties": { - "id": { - "type": "string", - "format": "uuid", - "description": "Unique, stable identifier for the test case (UUID)" + "id": { + "description": "Unique, stable identifier for the test case (UUID)", + "type": "string", + "format": "uuid" }, - "name": { - "type": "string", - "minLength": 1, - "description": "Name or title of the test case" + "name": { + "description": "Name or title of the test case", + "type": "string", + "minLength": 1 }, - "status": { - "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"], - "description": "Final outcome of the test case" + "status": { + "description": "Final outcome of the test case", + "type": "string", + "enum": [ "passed", "failed", "skipped", "pending", "other" ] }, - "duration": { - "type": "integer", - "description": "Test execution time (milliseconds)" + "duration": { + "description": "Test execution time (milliseconds)", + "type": "integer" }, - "start": { - "type": "integer", - "description": "Test start time (milliseconds since Unix epoch)" + "start": { + "description": "Test start time (milliseconds since Unix epoch)", + "type": "integer" }, - "stop": { - "type": "integer", - "description": "Test end time (milliseconds since Unix epoch)" + "stop": { + "description": "Test end time (milliseconds since Unix epoch)", + "type": "integer" }, "suite": { + "description": "Suite hierarchy from top-level to immediate parent", "type": "array", - "items": { "type": "string" }, "minItems": 1, - "description": "Suite hierarchy from top-level to immediate parent" + "items": { + "type": "string" + } }, - "message": { - "type": "string", - "description": "Error or failure message" + "message": { + "description": "Error or failure message", + "type": "string" }, - "trace": { - "type": "string", - "description": "Stack trace or failure trace information" + "trace": { + "description": "Stack trace or failure trace information", + "type": "string" }, - "snippet": { - "type": "string", - "description": "Code snippet associated with the failure" + "snippet": { + "description": "Code snippet associated with the failure", + "type": "string" }, - "ai": { - "type": "string", - "description": "AI-generated diagnostic data or suggestions" + "ai": { + "description": "AI-generated diagnostic data or suggestions", + "type": "string" }, - "line": { - "type": "integer", - "description": "Line number of the test definition" + "line": { + "description": "Line number of the test definition", + "type": "integer" }, - "rawStatus": { - "type": "string", - "description": "Original status from source tool before normalization" + "rawStatus": { + "description": "Original status from source tool before normalization", + "type": "string" }, - "tags": { - "type": "array", - "items": { "type": "string" }, - "description": "User-defined tags" + "tags": { + "description": "User-defined tags", + "type": "array", + "items": { + "type": "string" + } }, - "type": { - "type": "string", - "description": "Test classification (e.g., 'unit', 'integration', 'e2e')" + "type": { + "description": "Test classification (e.g., 'unit', 'integration', 'e2e')", + "type": "string" }, - "filePath": { - "type": "string", - "description": "Path to the file defining this test" + "filePath": { + "description": "Path to the file defining this test", + "type": "string" }, - "retries": { - "type": "integer", - "description": "Number of retry attempts performed" + "retries": { + "description": "Number of retry attempts performed", + "type": "integer" }, "retryAttempts": { - "type": "array", "description": "List of retry attempts for this test", + "type": "array", "items": { - "type": "object", "description": "Single retry attempt result", + "type": "object", + "required": [ "attempt", "status" ], "properties": { - "attempt": { - "type": "integer", - "minimum": 1, - "description": "Attempt number (1 = first execution)" + "attempt": { + "description": "Attempt number (1 = first execution)", + "type": "integer", + "minimum": 1 }, "status": { + "description": "Outcome of this attempt", "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"], - "description": "Outcome of this attempt" + "enum": [ + "passed", + "failed", + "skipped", + "pending", + "other" + ] }, - "duration": { - "type": "integer", - "description": "Attempt execution time (milliseconds)" + "duration": { + "description": "Attempt execution time (milliseconds)", + "type": "integer" }, - "message": { - "type": "string", - "description": "Error or failure message for this attempt" + "message": { + "description": "Error or failure message for this attempt", + "type": "string" }, - "trace": { - "type": "string", - "description": "Stack trace for this attempt" + "trace": { + "description": "Stack trace for this attempt", + "type": "string" }, - "line": { - "type": "integer", - "description": "Line number associated with failure" + "line": { + "description": "Line number associated with failure", + "type": "integer" }, - "snippet": { - "type": "string", - "description": "Code snippet for this attempt" + "snippet": { + "description": "Code snippet for this attempt", + "type": "string" }, "stdout": { + "description": "Standard output lines from this attempt", "type": "array", - "items": { "type": "string" }, - "description": "Standard output lines from this attempt" + "items": { + "type": "string" + } }, "stderr": { + "description": "Standard error lines from this attempt", "type": "array", - "items": { "type": "string" }, - "description": "Standard error lines from this attempt" + "items": { + "type": "string" + } }, - "start": { - "type": "integer", - "description": "Attempt start time (milliseconds since Unix epoch)" + "start": { + "description": "Attempt start time (milliseconds since Unix epoch)", + "type": "integer" }, - "stop": { - "type": "integer", - "description": "Attempt end time (milliseconds since Unix epoch)" + "stop": { + "description": "Attempt end time (milliseconds since Unix epoch)", + "type": "integer" }, "attachments": { - "type": "array", "description": "Artifacts from this attempt", + "type": "array", "items": { - "type": "object", "description": "External file or resource reference", + "type": "object", + "required": [ "name", "contentType", "path" ], "properties": { - "name": { - "type": "string", - "description": "Display name of the attachment" + "name": { + "description": "Display name of the attachment", + "type": "string" }, - "contentType": { - "type": "string", - "description": "MIME type of the attachment" + "contentType": { + "description": "MIME type of the attachment", + "type": "string" }, - "path": { - "type": "string", - "description": "Path or URI to the attachment" + "path": { + "description": "Path or URI to the attachment", + "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] + "additionalProperties": false } }, "extra": { + "description": "Extension point for arbitrary metadata", "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["attempt", "status"] + "additionalProperties": false } }, - "flaky": { - "type": "boolean", - "description": "True if test passed after one or more failed attempts" + "flaky": { + "description": "True if test passed after one or more failed attempts", + "type": "boolean" }, - "stdout": { - "type": "array", - "items": { "type": "string" }, - "description": "Standard output lines from test execution" + "stdout": { + "description": "Standard output lines from test execution", + "type": "array", + "items": { + "type": "string" + } }, - "stderr": { - "type": "array", - "items": { "type": "string" }, - "description": "Standard error lines from test execution" + "stderr": { + "description": "Standard error lines from test execution", + "type": "array", + "items": { + "type": "string" + } }, - "threadId": { - "type": "string", - "description": "Thread or worker identifier" + "threadId": { + "description": "Thread or worker identifier", + "type": "string" }, - "browser": { - "type": "string", - "description": "Browser used for browser-based tests" + "browser": { + "description": "Browser used for browser-based tests", + "type": "string" }, - "device": { - "type": "string", - "description": "Device or device profile used" + "device": { + "description": "Device or device profile used", + "type": "string" }, - "screenshot": { - "type": "string", - "description": "Single base64-encoded screenshot image" + "screenshot": { + "description": "Single base64-encoded screenshot image", + "type": "string" }, "attachments": { - "type": "array", "description": "Additional artifacts (screenshots, logs, videos, etc.)", + "type": "array", "items": { - "type": "object", "description": "External file or resource reference", + "type": "object", + "required": [ "name", "contentType", "path" ], "properties": { - "name": { - "type": "string", - "description": "Display name of the attachment" + "name": { + "description": "Display name of the attachment", + "type": "string" }, - "contentType": { - "type": "string", - "description": "MIME type of the attachment" + "contentType": { + "description": "MIME type of the attachment", + "type": "string" }, - "path": { - "type": "string", - "description": "Path or URI to the attachment" + "path": { + "description": "Path or URI to the attachment", + "type": "string" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["name", "contentType", "path"] + "additionalProperties": false } }, - "parameters": { - "type": "object", - "additionalProperties": true, - "description": "Test parameters or input values" + "parameters": { + "description": "Test parameters or input values", + "type": "object", + "additionalProperties": true }, "steps": { - "type": "array", "description": "Test steps or sub-operations", + "type": "array", "items": { - "type": "object", "description": "Individual test step", + "type": "object", + "required": [ "name", "status" ], "properties": { - "name": { - "type": "string", - "description": "Name of the step" + "name": { + "description": "Name of the step", + "type": "string" }, - "status": { - "type": "string", - "enum": ["passed", "failed", "skipped", "pending", "other"], - "description": "Outcome of the step" + "status": { + "description": "Outcome of the step", + "type": "string", + "enum": [ + "passed", + "failed", + "skipped", + "pending", + "other" + ] }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["name", "status"] + "additionalProperties": false } }, "insights": { - "type": "object", "description": "Derived metrics for this test across runs", + "type": "object", "properties": { - "passRate": { - "$ref": "#/definitions/metricDelta", - "description": "Pass rate metric with baseline comparison" + "passRate": { + "description": "Pass rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "failRate": { - "$ref": "#/definitions/metricDelta", - "description": "Fail rate metric with baseline comparison" + "failRate": { + "description": "Fail rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "flakyRate": { - "$ref": "#/definitions/metricDelta", - "description": "Flaky rate metric with baseline comparison" + "flakyRate": { + "description": "Flaky rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { - "$ref": "#/definitions/metricDelta", - "description": "Average duration metric with baseline comparison" + "averageTestDuration": { + "description": "Average duration metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "p95TestDuration": { - "$ref": "#/definitions/metricDelta", - "description": "95th percentile duration with baseline comparison" + "p95TestDuration": { + "description": "95th percentile duration with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "executedInRuns": { - "type": "integer", - "description": "Number of runs this test was executed in" + "executedInRuns": { + "description": "Number of runs this test was executed in", + "type": "integer" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, "additionalProperties": false }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["name", "status", "duration"] + "additionalProperties": false } }, "environment": { - "type": "object", "description": "Execution environment, system configuration, and build context", + "type": "object", "properties": { - "reportName": { - "type": "string", - "description": "Human-readable name for this report" + "reportName": { + "description": "Human-readable name for this report", + "type": "string" }, - "appName": { - "type": "string", - "description": "Name of the application under test" + "appName": { + "description": "Name of the application under test", + "type": "string" }, - "appVersion": { - "type": "string", - "description": "Version of the application under test" + "appVersion": { + "description": "Version of the application under test", + "type": "string" }, - "buildId": { - "type": "string", - "description": "Unique identifier for the CI/CD build" + "buildId": { + "description": "Unique identifier for the CI/CD build", + "type": "string" }, - "buildName": { - "type": "string", - "description": "Name of the CI/CD build or pipeline" + "buildName": { + "description": "Name of the CI/CD build or pipeline", + "type": "string" }, - "buildNumber": { - "type": "integer", - "description": "Sequential build number" + "buildNumber": { + "description": "Sequential build number", + "type": "integer" }, - "buildUrl": { - "type": "string", - "description": "URL to the CI/CD build" - }, - "repositoryName": { - "type": "string", - "description": "Name of the source code repository" - }, - "repositoryUrl": { - "type": "string", - "description": "URL of the source code repository" - }, - "commit": { - "type": "string", - "description": "Git commit SHA or VCS revision identifier" - }, - "branchName": { - "type": "string", - "description": "Git branch or VCS branch name" + "buildUrl": { + "description": "URL to the CI/CD build", + "type": "string" }, - "osPlatform": { - "type": "string", - "description": "Operating system platform (e.g., 'linux', 'darwin', 'win32')" + "repositoryName": { + "description": "Name of the source code repository", + "type": "string" }, - "osRelease": { - "type": "string", - "description": "Operating system release version" + "repositoryUrl": { + "description": "URL of the source code repository", + "type": "string" }, - "osVersion": { - "type": "string", - "description": "Operating system version string" + "commit": { + "description": "Git commit SHA or VCS revision identifier", + "type": "string" }, - "testEnvironment": { - "type": "string", - "description": "Logical test environment (e.g., 'staging', 'production')" + "branchName": { + "description": "Git branch or VCS branch name", + "type": "string" + }, + "osPlatform": { + "description": "Operating system platform (e.g., 'linux', 'darwin', 'win32')", + "type": "string" + }, + "osRelease": { + "description": "Operating system release version", + "type": "string" + }, + "osVersion": { + "description": "Operating system version string", + "type": "string" + }, + "testEnvironment": { + "description": "Logical test environment (e.g., 'staging', 'production')", + "type": "string" }, - "healthy": { - "type": "boolean", - "description": "Indicates if the run is considered healthy" + "healthy": { + "description": "Indicates if the run is considered healthy", + "type": "boolean" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, "additionalProperties": false }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, - "additionalProperties": false, - "required": ["tool", "summary", "tests"] + "additionalProperties": false }, "insights": { - "type": "object", "description": "Aggregated metrics computed across multiple test runs", + "type": "object", "properties": { - "passRate": { - "$ref": "#/definitions/metricDelta", - "description": "Overall pass rate with baseline comparison" + "passRate": { + "description": "Overall pass rate with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "failRate": { - "$ref": "#/definitions/metricDelta", - "description": "Overall fail rate with baseline comparison" + "failRate": { + "description": "Overall fail rate with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "flakyRate": { - "$ref": "#/definitions/metricDelta", - "description": "Overall flaky rate with baseline comparison" + "flakyRate": { + "description": "Overall flaky rate with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "averageRunDuration": { - "$ref": "#/definitions/metricDelta", - "description": "Average run duration with baseline comparison" + "averageRunDuration": { + "description": "Average run duration with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "p95RunDuration": { - "$ref": "#/definitions/metricDelta", - "description": "95th percentile run duration with baseline comparison" + "p95RunDuration": { + "description": "95th percentile run duration with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "averageTestDuration": { - "$ref": "#/definitions/metricDelta", - "description": "Average test duration with baseline comparison" + "averageTestDuration": { + "description": "Average test duration with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "runsAnalyzed": { - "type": "integer", - "description": "Number of historical runs analyzed for insights" + "runsAnalyzed": { + "description": "Number of historical runs analyzed for insights", + "type": "integer" }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true } }, "additionalProperties": false }, - "baseline": { - "type": "object", - "description": "Reference to a previous report used for comparison", - "properties": { - "reportId": { - "type": "string", - "format": "uuid", - "description": "UUID of the baseline report" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Generation time of the baseline report" - }, - "source": { - "type": "string", - "description": "Origin or location of the baseline report" - }, - "buildNumber": { - "type": "integer", - "description": "Build number of the baseline run" - }, - "buildName": { - "type": "string", - "description": "Build name of the baseline run" - }, - "buildUrl": { - "type": "string", - "format": "uri", - "description": "URL to the baseline build" - }, - "commit": { - "type": "string", - "description": "Git commit SHA of the baseline run" - }, - "extra": { - "type": "object", - "additionalProperties": true, - "description": "Extension point for arbitrary metadata" - } + "baseline": { + "description": "Reference to a previous report used for comparison", + "type": "object", + "required": [ "reportId" ], + "properties": { + "reportId": { + "description": "UUID of the baseline report", + "type": "string", + "format": "uuid" + }, + "timestamp": { + "description": "Generation time of the baseline report", + "type": "string", + "format": "date-time" + }, + "source": { + "description": "Origin or location of the baseline report", + "type": "string" + }, + "buildNumber": { + "description": "Build number of the baseline run", + "type": "integer" + }, + "buildName": { + "description": "Build name of the baseline run", + "type": "string" + }, + "buildUrl": { + "description": "URL to the baseline build", + "type": "string", + "format": "uri" }, - "required": ["reportId"], - "additionalProperties": false - } + "commit": { + "description": "Git commit SHA of the baseline run", + "type": "string" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false + } }, "additionalProperties": false, - "required": ["results", "reportFormat", "specVersion"], "definitions": { "metricDelta": { - "type": "object", "description": "Metric value with baseline comparison", + "type": "object", "properties": { - "current": { - "type": "number", - "description": "Current metric value" + "current": { + "description": "Current metric value", + "type": "number" }, - "baseline": { - "type": "number", - "description": "Baseline metric value for comparison" + "baseline": { + "description": "Baseline metric value for comparison", + "type": "number" }, - "change": { - "type": "number", - "description": "Computed difference between current and baseline" + "change": { + "description": "Computed difference between current and baseline", + "type": "number" } }, "additionalProperties": false } } -} \ No newline at end of file +} From 99378c1bd7f38590a276459df3538f77b5e263e3 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 15:07:28 +0000 Subject: [PATCH 13/16] Enhance schema validation process by adding linting step and updating CONTRIBUTING guidelines --- .github/workflows/test.yml | 3 +++ CONTRIBUTING.md | 23 ++++++++++++++++++ schema/ctrf.schema.json | 48 ++++++++++++-------------------------- 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ba05f37..bb7d4b2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,6 +22,9 @@ jobs: - name: Run format validation run: jsonschema fmt schema/ctrf.schema.json --check + - name: Run schema linting + run: jsonschema lint schema/ctrf.schema.json --exclude top_level_examples + - name: Run conformance tests (normative) run: jsonschema test tests/normative --json > ctrf-normative.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 669b0c0..3cbac8b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -122,6 +122,29 @@ Informative tests cover edge cases and additional examples. These SHOULD pass bu Tests use the [sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema) CLI. +### Schema Validation and Formatting + +Before submitting a PR, ensure the schema passes all validation checks: + +```bash +# Format the schema +jsonschema fmt schema/ctrf.schema.json + +# Lint the schema +jsonschema lint schema/ctrf.schema.json --exclude top_level_examples + +# Run normative tests +jsonschema test tests/normative + +# Run informative tests +jsonschema test tests/informative + +# Validate example documents +jsonschema validate schema/ctrf.schema.json examples/*.json +``` + +The `--exclude top_level_examples` flag is used because CTRF maintains examples in the `examples/` directory rather than embedding them in the schema itself. + ### Adding Tests for Changes When contributing changes, you SHOULD add or update tests: diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index 96b1136..f7c4010 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -7,8 +7,7 @@ "properties": { "reportFormat": { "description": "Document format identifier. Must be 'CTRF'", - "type": "string", - "enum": [ "CTRF" ] + "const": "CTRF" }, "specVersion": { "description": "CTRF specification version in SemVer format (MAJOR.MINOR.PATCH)", @@ -31,8 +30,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" }, "results": { "description": "Results of a single test execution run", @@ -55,8 +53,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -121,8 +118,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -147,7 +143,6 @@ }, "status": { "description": "Final outcome of the test case", - "type": "string", "enum": [ "passed", "failed", "skipped", "pending", "other" ] }, "duration": { @@ -228,7 +223,6 @@ }, "status": { "description": "Outcome of this attempt", - "type": "string", "enum": [ "passed", "failed", @@ -301,8 +295,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -310,8 +303,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -373,8 +365,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -382,8 +373,7 @@ }, "parameters": { "description": "Test parameters or input values", - "type": "object", - "additionalProperties": true + "type": "object" }, "steps": { "description": "Test steps or sub-operations", @@ -399,7 +389,6 @@ }, "status": { "description": "Outcome of the step", - "type": "string", "enum": [ "passed", "failed", @@ -410,8 +399,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -447,16 +435,14 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -532,16 +518,14 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -580,8 +564,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false @@ -624,8 +607,7 @@ }, "extra": { "description": "Extension point for arbitrary metadata", - "type": "object", - "additionalProperties": true + "type": "object" } }, "additionalProperties": false From 157c93c37da73dd4c9ea6c8d0d26701ca189b7ab Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 15:28:24 +0000 Subject: [PATCH 14/16] Update README and schema files for clarity and consistency in descriptions --- CONTRIBUTING.md | 14 + README.md | 13 +- schema/ctrf.schema.json | 4 +- spec/ctrf.md | 1132 +++++++++++++++++++++------------------ 4 files changed, 633 insertions(+), 530 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3cbac8b..9ea0af9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -167,6 +167,20 @@ Feedback and consensus are encouraged, but the maintainer makes final decisions --- +## Building Integrations + +CTRF welcomes community-built integrations. + +Integrations can be built independently and hosted in your own repositories. When ready, you can submit your integration to be listed on [ctrf.io/integrations](https://ctrf.io/integrations). + +For guidance on building integrations: + +- Follow the [reference implementation](https://github.com/ctrf-io/ctrf-js) for best practices +- Ensure your integration produces valid CTRF output +- Open a discussion if you need design feedback + +--- + ## Code of Conduct All contributors are expected to engage respectfully. diff --git a/README.md b/README.md index 3f620a6..8a8d77c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Common Test Report Format -**The open standard for test reporting.** +**An open standard for test reporting.** CTRF provides a unified JSON format for test outcomes that works across all languages and frameworks. @@ -20,6 +20,15 @@ By standardizing the output of test execution, it enables results to be shared, You can support the project by giving this repository a star ⭐ +## Open Standard + +CTRF is an open standard built and shaped by community contributions. + +Your feedback and contributions are essential to the project's success: + +- [Contribute](CONTRIBUTING.md) +- [Discuss](https://github.com/orgs/ctrf-io/discussions) + ## Schema The schema is defined in [`schema/ctrf.schema.json`](schema/ctrf.schema.json). @@ -36,6 +45,8 @@ The written specification defines the semantics and rules. CTRF follows Semantic Versioning. +Releases are defined in [Releases](https://github.com/ctrf-io/ctrf/releases). + ## Reference Implementation The reference implementation, written in TypeScript, provides utilities for working with CTRF reports and is maintained alongside the specification. It serves as the canonical guide for implementing CTRF in any language. diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index f7c4010..6849be1 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CTRF Report", - "description": "Common Test Report Format - a standardized JSON format for test execution results", + "title": "CTRF JSON Schema", + "description": "Common Test Report Format - an open standard JSON format for test results reports", "type": "object", "required": [ "results", "reportFormat", "specVersion" ], "properties": { diff --git a/spec/ctrf.md b/spec/ctrf.md index e3c5647..d8149a1 100644 --- a/spec/ctrf.md +++ b/spec/ctrf.md @@ -1804,564 +1804,642 @@ to this specification. ```json title="CTRF JSON Schema" { - "$schema":"http://json-schema.org/draft-07/schema#", - "type":"object", - "properties":{ - "reportFormat":{ - "type":"string", - "enum":[ - "CTRF" - ] - }, - "specVersion":{ - "type":"string", - "pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$" - }, - "reportId":{ - "type":"string", - "format":"uuid" - }, - "timestamp":{ - "type":"string", - "format":"date-time" - }, - "generatedBy":{ - "type":"string" - }, - "extra":{ - "type":"object", - "additionalProperties":true - }, - "results":{ - "type":"object", - "properties":{ - "tool":{ - "type":"object", - "properties":{ - "name":{ - "type":"string", - "minLength":1 - }, - "version":{ - "type":"string" - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "name" - ] + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CTRF JSON Schema", + "description": "Common Test Report Format - an open standard JSON format for test results reports", + "type": "object", + "required": [ "results", "reportFormat", "specVersion" ], + "properties": { + "reportFormat": { + "description": "Document format identifier. Must be 'CTRF'", + "const": "CTRF" + }, + "specVersion": { + "description": "CTRF specification version in SemVer format (MAJOR.MINOR.PATCH)", + "type": "string", + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" + }, + "reportId": { + "description": "Unique identifier for this report instance (UUID)", + "type": "string", + "format": "uuid" + }, + "timestamp": { + "description": "Report generation time (RFC 3339 / ISO 8601)", + "type": "string", + "format": "date-time" + }, + "generatedBy": { + "description": "Tool or system that produced this CTRF document", + "type": "string" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + }, + "results": { + "description": "Results of a single test execution run", + "type": "object", + "required": [ "tool", "summary", "tests" ], + "properties": { + "tool": { + "description": "Tool or framework that produced the test results", + "type": "object", + "required": [ "name" ], + "properties": { + "name": { + "description": "Name of the testing tool or framework", + "type": "string", + "minLength": 1 }, - "summary":{ - "type":"object", - "properties":{ - "tests":{ - "type":"integer" - }, - "passed":{ - "type":"integer" - }, - "failed":{ - "type":"integer" - }, - "skipped":{ - "type":"integer" - }, - "pending":{ - "type":"integer" - }, - "other":{ - "type":"integer" - }, - "flaky":{ - "type":"integer" - }, - "suites":{ - "type":"integer" - }, - "start":{ - "type":"integer" - }, - "stop":{ - "type":"integer" - }, - "duration":{ - "type":"integer" - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "tests", - "passed", - "failed", - "skipped", - "pending", - "other", - "start", - "stop" - ] + "version": { + "description": "Version of the testing tool", + "type": "string" }, - "tests":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "id":{ - "type":"string", - "format":"uuid" - }, - "name":{ - "type":"string", - "minLength":1 - }, - "status":{ - "type":"string", - "enum":[ - "passed", - "failed", - "skipped", - "pending", - "other" - ] - }, - "duration":{ - "type":"integer" - }, - "start":{ - "type":"integer" - }, - "stop":{ - "type":"integer" - }, - "suite":{ - "type":"array", - "items":{ - "type":"string" - }, - "minItems":1 - }, - "message":{ - "type":"string" - }, - "trace":{ - "type":"string" - }, - "snippet":{ - "type":"string" - }, - "ai":{ - "type":"string" - }, - "line":{ - "type":"integer" - }, - "rawStatus":{ - "type":"string" - }, - "tags":{ - "type":"array", - "items":{ - "type":"string" - } - }, - "type":{ - "type":"string" - }, - "filePath":{ - "type":"string" - }, - "retries":{ - "type":"integer" - }, - "retryAttempts":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "attempt":{ - "type":"integer", - "minimum":1 - }, - "status":{ - "type":"string", - "enum":[ - "passed", - "failed", - "skipped", - "pending", - "other" - ] - }, - "duration":{ - "type":"integer" - }, - "message":{ - "type":"string" - }, - "trace":{ - "type":"string" - }, - "line":{ - "type":"integer" - }, - "snippet":{ - "type":"string" - }, - "stdout":{ - "type":"array", - "items":{ - "type":"string" - } - }, - "stderr":{ - "type":"array", - "items":{ - "type":"string" - } - }, - "start":{ - "type":"integer" - }, - "stop":{ - "type":"integer" - }, - "attachments":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "name":{ - "type":"string" - }, - "contentType":{ - "type":"string" - }, - "path":{ - "type":"string" - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "name", - "contentType", - "path" - ] - } - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "attempt", - "status" - ] - } - }, - "flaky":{ - "type":"boolean" - }, - "stdout":{ - "type":"array", - "items":{ - "type":"string" - } - }, - "stderr":{ - "type":"array", - "items":{ - "type":"string" - } - }, - "threadId":{ - "type":"string" - }, - "browser":{ - "type":"string" - }, - "device":{ - "type":"string" - }, - "screenshot":{ - "type":"string" - }, - "attachments":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "name":{ - "type":"string" - }, - "contentType":{ - "type":"string" - }, - "path":{ - "type":"string" - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "name", - "contentType", - "path" - ] - } - }, - "parameters":{ - "type":"object", - "additionalProperties":true - }, - "steps":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "name":{ - "type":"string" - }, - "status":{ - "type":"string", - "enum":[ - "passed", - "failed", - "skipped", - "pending", - "other" - ] - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "name", - "status" - ] - } - }, - "insights":{ - "type":"object", - "properties":{ - "passRate":{ - "$ref":"#/definitions/metricDelta" - }, - "failRate":{ - "$ref":"#/definitions/metricDelta" - }, - "flakyRate":{ - "$ref":"#/definitions/metricDelta" - }, - "averageTestDuration":{ - "$ref":"#/definitions/metricDelta" - }, - "p95TestDuration":{ - "$ref":"#/definitions/metricDelta" - }, - "executedInRuns":{ - "type":"integer" - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false - }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "name", - "status", - "duration" - ] - } + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + }, + "summary": { + "description": "Aggregated statistics and timing for the test run", + "type": "object", + "required": [ + "tests", + "passed", + "failed", + "skipped", + "pending", + "other", + "start", + "stop" + ], + "properties": { + "tests": { + "description": "Total number of tests executed", + "type": "integer" }, - "environment":{ - "type":"object", - "properties":{ - "reportName":{ - "type":"string" - }, - "appName":{ - "type":"string" - }, - "appVersion":{ - "type":"string" - }, - "buildId":{ - "type":"string" - }, - "buildName":{ - "type":"string" - }, - "buildNumber":{ - "type":"integer" - }, - "buildUrl":{ - "type":"string" - }, - "repositoryName":{ - "type":"string" + "passed": { + "description": "Count of tests with status 'passed'", + "type": "integer" + }, + "failed": { + "description": "Count of tests with status 'failed'", + "type": "integer" + }, + "skipped": { + "description": "Count of tests with status 'skipped'", + "type": "integer" + }, + "pending": { + "description": "Count of tests with status 'pending'", + "type": "integer" + }, + "other": { + "description": "Count of tests with status 'other'", + "type": "integer" + }, + "flaky": { + "description": "Count of flaky tests (passed after failed attempts)", + "type": "integer" + }, + "suites": { + "description": "Number of test suites in the run", + "type": "integer" + }, + "start": { + "description": "Run start time (milliseconds since Unix epoch)", + "type": "integer" + }, + "stop": { + "description": "Run end time (milliseconds since Unix epoch)", + "type": "integer" + }, + "duration": { + "description": "Total run duration (milliseconds)", + "type": "integer" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + }, + "tests": { + "description": "List of test cases executed during the run", + "type": "array", + "items": { + "description": "Individual test case result", + "type": "object", + "required": [ "name", "status", "duration" ], + "properties": { + "id": { + "description": "Unique, stable identifier for the test case (UUID)", + "type": "string", + "format": "uuid" + }, + "name": { + "description": "Name or title of the test case", + "type": "string", + "minLength": 1 + }, + "status": { + "description": "Final outcome of the test case", + "enum": [ "passed", "failed", "skipped", "pending", "other" ] + }, + "duration": { + "description": "Test execution time (milliseconds)", + "type": "integer" + }, + "start": { + "description": "Test start time (milliseconds since Unix epoch)", + "type": "integer" + }, + "stop": { + "description": "Test end time (milliseconds since Unix epoch)", + "type": "integer" + }, + "suite": { + "description": "Suite hierarchy from top-level to immediate parent", + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "message": { + "description": "Error or failure message", + "type": "string" + }, + "trace": { + "description": "Stack trace or failure trace information", + "type": "string" + }, + "snippet": { + "description": "Code snippet associated with the failure", + "type": "string" + }, + "ai": { + "description": "AI-generated diagnostic data or suggestions", + "type": "string" + }, + "line": { + "description": "Line number of the test definition", + "type": "integer" + }, + "rawStatus": { + "description": "Original status from source tool before normalization", + "type": "string" + }, + "tags": { + "description": "User-defined tags", + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "description": "Test classification (e.g., 'unit', 'integration', 'e2e')", + "type": "string" + }, + "filePath": { + "description": "Path to the file defining this test", + "type": "string" + }, + "retries": { + "description": "Number of retry attempts performed", + "type": "integer" + }, + "retryAttempts": { + "description": "List of retry attempts for this test", + "type": "array", + "items": { + "description": "Single retry attempt result", + "type": "object", + "required": [ "attempt", "status" ], + "properties": { + "attempt": { + "description": "Attempt number (1 = first execution)", + "type": "integer", + "minimum": 1 + }, + "status": { + "description": "Outcome of this attempt", + "enum": [ + "passed", + "failed", + "skipped", + "pending", + "other" + ] + }, + "duration": { + "description": "Attempt execution time (milliseconds)", + "type": "integer" + }, + "message": { + "description": "Error or failure message for this attempt", + "type": "string" + }, + "trace": { + "description": "Stack trace for this attempt", + "type": "string" + }, + "line": { + "description": "Line number associated with failure", + "type": "integer" + }, + "snippet": { + "description": "Code snippet for this attempt", + "type": "string" + }, + "stdout": { + "description": "Standard output lines from this attempt", + "type": "array", + "items": { + "type": "string" + } + }, + "stderr": { + "description": "Standard error lines from this attempt", + "type": "array", + "items": { + "type": "string" + } + }, + "start": { + "description": "Attempt start time (milliseconds since Unix epoch)", + "type": "integer" + }, + "stop": { + "description": "Attempt end time (milliseconds since Unix epoch)", + "type": "integer" + }, + "attachments": { + "description": "Artifacts from this attempt", + "type": "array", + "items": { + "description": "External file or resource reference", + "type": "object", + "required": [ "name", "contentType", "path" ], + "properties": { + "name": { + "description": "Display name of the attachment", + "type": "string" + }, + "contentType": { + "description": "MIME type of the attachment", + "type": "string" + }, + "path": { + "description": "Path or URI to the attachment", + "type": "string" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + } + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } }, - "repositoryUrl":{ - "type":"string" + "additionalProperties": false + } + }, + "flaky": { + "description": "True if test passed after one or more failed attempts", + "type": "boolean" + }, + "stdout": { + "description": "Standard output lines from test execution", + "type": "array", + "items": { + "type": "string" + } + }, + "stderr": { + "description": "Standard error lines from test execution", + "type": "array", + "items": { + "type": "string" + } + }, + "threadId": { + "description": "Thread or worker identifier", + "type": "string" + }, + "browser": { + "description": "Browser used for browser-based tests", + "type": "string" + }, + "device": { + "description": "Device or device profile used", + "type": "string" + }, + "screenshot": { + "description": "Single base64-encoded screenshot image", + "type": "string" + }, + "attachments": { + "description": "Additional artifacts (screenshots, logs, videos, etc.)", + "type": "array", + "items": { + "description": "External file or resource reference", + "type": "object", + "required": [ "name", "contentType", "path" ], + "properties": { + "name": { + "description": "Display name of the attachment", + "type": "string" + }, + "contentType": { + "description": "MIME type of the attachment", + "type": "string" + }, + "path": { + "description": "Path or URI to the attachment", + "type": "string" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } }, - "commit":{ - "type":"string" + "additionalProperties": false + } + }, + "parameters": { + "description": "Test parameters or input values", + "type": "object" + }, + "steps": { + "description": "Test steps or sub-operations", + "type": "array", + "items": { + "description": "Individual test step", + "type": "object", + "required": [ "name", "status" ], + "properties": { + "name": { + "description": "Name of the step", + "type": "string" + }, + "status": { + "description": "Outcome of the step", + "enum": [ + "passed", + "failed", + "skipped", + "pending", + "other" + ] + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } }, - "branchName":{ - "type":"string" + "additionalProperties": false + } + }, + "insights": { + "description": "Derived metrics for this test across runs", + "type": "object", + "properties": { + "passRate": { + "description": "Pass rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "osPlatform":{ - "type":"string" + "failRate": { + "description": "Fail rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "osRelease":{ - "type":"string" + "flakyRate": { + "description": "Flaky rate metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "osVersion":{ - "type":"string" + "averageTestDuration": { + "description": "Average duration metric with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "testEnvironment":{ - "type":"string" + "p95TestDuration": { + "description": "95th percentile duration with baseline comparison", + "$ref": "#/definitions/metricDelta" }, - "healthy":{ - "type":"boolean" + "executedInRuns": { + "description": "Number of runs this test was executed in", + "type": "integer" }, - "extra":{ - "type":"object", - "additionalProperties":true + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" } - }, - "additionalProperties":false + }, + "additionalProperties": false + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false, - "required":[ - "tool", - "summary", - "tests" - ] - }, - "insights":{ - "type":"object", - "properties":{ - "passRate":{ - "$ref":"#/definitions/metricDelta" + "additionalProperties": false + } + }, + "environment": { + "description": "Execution environment, system configuration, and build context", + "type": "object", + "properties": { + "reportName": { + "description": "Human-readable name for this report", + "type": "string" }, - "failRate":{ - "$ref":"#/definitions/metricDelta" + "appName": { + "description": "Name of the application under test", + "type": "string" }, - "flakyRate":{ - "$ref":"#/definitions/metricDelta" + "appVersion": { + "description": "Version of the application under test", + "type": "string" }, - "averageRunDuration":{ - "$ref":"#/definitions/metricDelta" + "buildId": { + "description": "Unique identifier for the CI/CD build", + "type": "string" }, - "p95RunDuration":{ - "$ref":"#/definitions/metricDelta" + "buildName": { + "description": "Name of the CI/CD build or pipeline", + "type": "string" }, - "averageTestDuration":{ - "$ref":"#/definitions/metricDelta" + "buildNumber": { + "description": "Sequential build number", + "type": "integer" }, - "runsAnalyzed":{ - "type":"integer" + "buildUrl": { + "description": "URL to the CI/CD build", + "type": "string" }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "additionalProperties":false - }, - "baseline":{ - "type":"object", - "properties":{ - "reportId":{ - "type":"string", - "format":"uuid" + "repositoryName": { + "description": "Name of the source code repository", + "type": "string" }, - "timestamp":{ - "type":"string", - "format":"date-time" + "repositoryUrl": { + "description": "URL of the source code repository", + "type": "string" }, - "source":{ - "type":"string" + "commit": { + "description": "Git commit SHA or VCS revision identifier", + "type": "string" }, - "buildNumber":{ - "type":"integer" + "branchName": { + "description": "Git branch or VCS branch name", + "type": "string" }, - "buildName":{ - "type":"string" + "osPlatform": { + "description": "Operating system platform (e.g., 'linux', 'darwin', 'win32')", + "type": "string" }, - "buildUrl":{ - "type":"string", - "format":"uri" + "osRelease": { + "description": "Operating system release version", + "type": "string" }, - "commit":{ - "type":"string" + "osVersion": { + "description": "Operating system version string", + "type": "string" }, - "extra":{ - "type":"object", - "additionalProperties":true - } - }, - "required":[ - "reportId" - ], - "additionalProperties":false - } - }, - "additionalProperties":false, - "required":[ - "results", - "reportFormat", - "specVersion" - ], - "definitions":{ - "metricDelta":{ - "type":"object", - "properties":{ - "current":{ - "type":"number" + "testEnvironment": { + "description": "Logical test environment (e.g., 'staging', 'production')", + "type": "string" }, - "baseline":{ - "type":"number" + "healthy": { + "description": "Indicates if the run is considered healthy", + "type": "boolean" }, - "change":{ - "type":"number" + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" } - }, - "additionalProperties":false - } - } + }, + "additionalProperties": false + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + }, + "insights": { + "description": "Aggregated metrics computed across multiple test runs", + "type": "object", + "properties": { + "passRate": { + "description": "Overall pass rate with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "failRate": { + "description": "Overall fail rate with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "flakyRate": { + "description": "Overall flaky rate with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "averageRunDuration": { + "description": "Average run duration with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "p95RunDuration": { + "description": "95th percentile run duration with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "averageTestDuration": { + "description": "Average test duration with baseline comparison", + "$ref": "#/definitions/metricDelta" + }, + "runsAnalyzed": { + "description": "Number of historical runs analyzed for insights", + "type": "integer" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + }, + "baseline": { + "description": "Reference to a previous report used for comparison", + "type": "object", + "required": [ "reportId" ], + "properties": { + "reportId": { + "description": "UUID of the baseline report", + "type": "string", + "format": "uuid" + }, + "timestamp": { + "description": "Generation time of the baseline report", + "type": "string", + "format": "date-time" + }, + "source": { + "description": "Origin or location of the baseline report", + "type": "string" + }, + "buildNumber": { + "description": "Build number of the baseline run", + "type": "integer" + }, + "buildName": { + "description": "Build name of the baseline run", + "type": "string" + }, + "buildUrl": { + "description": "URL to the baseline build", + "type": "string", + "format": "uri" + }, + "commit": { + "description": "Git commit SHA of the baseline run", + "type": "string" + }, + "extra": { + "description": "Extension point for arbitrary metadata", + "type": "object" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "definitions": { + "metricDelta": { + "description": "Metric value with baseline comparison", + "type": "object", + "properties": { + "current": { + "description": "Current metric value", + "type": "number" + }, + "baseline": { + "description": "Baseline metric value for comparison", + "type": "number" + }, + "change": { + "description": "Computed difference between current and baseline", + "type": "number" + } + }, + "additionalProperties": false + } + } } ``` From e0c16d9c4535f081add183f69a32dad0b04c93be Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 15:29:37 +0000 Subject: [PATCH 15/16] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 964c2c3..53abf79 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -Matthew Thomas Poulton-White. +Matthew Poulton-White. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the From 4445ae56e6447f9b94b00da21954df3603858581 Mon Sep 17 00:00:00 2001 From: Matthew Thomas Date: Sat, 24 Jan 2026 15:32:07 +0000 Subject: [PATCH 16/16] Update CONTRIBUTING.md to clarify process for breaking changes --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ea0af9..6efd70e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,7 +18,7 @@ Thank you for your interest in contributing to CTRF. | **Clarifications** | Wording changes that may affect interpretation | Issue → PR | | **Schema Changes** | Constraints, formats, validation rules | Issue → PR | | **New Features** | New properties | Discussion → Issue → PR | -| **Breaking Changes** | Removed fields, changed semantics | Design discussion → Issue → PR | +| **Breaking Changes** | Removed fields, changed semantics | Discussion → Issue → PR | Use Discussions for: